diff options
author | Piotr Krysik <ptrkrysik@gmail.com> | 2016-07-13 10:16:48 +0200 |
---|---|---|
committer | Piotr Krysik <ptrkrysik@gmail.com> | 2016-07-13 10:16:48 +0200 |
commit | 2fef1611e87ece0dd2ab900a137b65c0762b65c9 (patch) | |
tree | f00566eac63d532f782334dcfbae5b7e2c097cde /lib | |
parent | 414acfdb3c193f9eec4483ed1ffff3578eff7a6c (diff) | |
parent | a7976a3b4258c2fdeba15832090dd46a7834026d (diff) |
Merge uplink fix from 'm-alizadeh-master' into development
Diffstat (limited to 'lib')
-rw-r--r-- | lib/receiver/cx_channel_hopper_impl.cc | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/lib/receiver/cx_channel_hopper_impl.cc b/lib/receiver/cx_channel_hopper_impl.cc index 1fe15df..2818278 100644 --- a/lib/receiver/cx_channel_hopper_impl.cc +++ b/lib/receiver/cx_channel_hopper_impl.cc @@ -141,9 +141,21 @@ namespace gr { { pmt::pmt_t header_plus_burst = pmt::cdr(msg); gsmtap_hdr *header = (gsmtap_hdr *)pmt::blob_data(header_plus_burst); + bool uplink_burst = (be16toh(header->arfcn) & 0x4000) ? true : false; uint32_t frame_nr = be32toh(header->frame_number); - uint16_t frame_ca = be16toh(header->arfcn); + uint16_t frame_ca; + + // FIXED for uplink + if (uplink_burst) + { + frame_ca = be16toh(header->arfcn)-16384; //16384 = 0x4000 + } + else + { + frame_ca = be16toh(header->arfcn); + } + int mai = calculate_ma_sfh(d_maio, d_hsn, d_narfcn, frame_nr); if(d_ma[mai] == (int)frame_ca) { |