diff --git a/lib/frame_equalizer_impl.cc b/lib/frame_equalizer_impl.cc index 97a1a53..dbe7288 100644 --- a/lib/frame_equalizer_impl.cc +++ b/lib/frame_equalizer_impl.cc @@ -337,7 +337,7 @@ frame_equalizer_impl::parse_signal(uint8_t *decoded_bits) { return true; } -int +const int frame_equalizer_impl::interleaver_pattern[48] = { 0, 3, 6, 9,12,15,18,21, 24,27,30,33,36,39,42,45, diff --git a/lib/frame_equalizer_impl.h b/lib/frame_equalizer_impl.h index 3670f3f..fcd1282 100644 --- a/lib/frame_equalizer_impl.h +++ b/lib/frame_equalizer_impl.h @@ -79,7 +79,7 @@ private: constellation_16qam::sptr d_16qam; constellation_64qam::sptr d_64qam; - static int interleaver_pattern[48]; + static const int interleaver_pattern[48]; }; } // namespace ieee802_11 diff --git a/lib/mapper.cc b/lib/mapper.cc index 73b1c42..c30c2cb 100644 --- a/lib/mapper.cc +++ b/lib/mapper.cc @@ -33,6 +33,7 @@ mapper_impl(Encoding e, bool debug) : d_symbols_offset(0), d_symbols(NULL), d_debug(debug), + d_scrambler(1), d_ofdm(e) { message_port_register_in(pmt::mp("in")); @@ -98,10 +99,9 @@ int general_work(int noutput, gr_vector_int& ninput_items, generate_bits(psdu, data_bits, frame); // scrambling - static uint8_t scrambler = 1; - scramble(data_bits, scrambled_data, frame, scrambler++); - if(scrambler > 127) { - scrambler = 1; + scramble(data_bits, scrambled_data, frame, d_scrambler++); + if(d_scrambler > 127) { + d_scrambler = 1; } // reset tail bits @@ -172,6 +172,7 @@ void set_encoding(Encoding encoding) { } private: + uint8_t d_scrambler; bool d_debug; char* d_symbols; int d_symbols_offset; diff --git a/lib/sync_long.cc b/lib/sync_long.cc index 3d795e0..1765d26 100644 --- a/lib/sync_long.cc +++ b/lib/sync_long.cc @@ -104,6 +104,7 @@ int general_work (int noutput, gr_vector_int& ninput_items, if(d_offset == SYNC_LENGTH) { search_frame_start(); + mylog(boost::format("LONG: frame start at %1%") % d_frame_start); d_offset = 0; d_count = 0; d_state = COPY; diff --git a/lib/sync_short.cc b/lib/sync_short.cc index 1754242..dde1401 100644 --- a/lib/sync_short.cc +++ b/lib/sync_short.cc @@ -73,7 +73,7 @@ int general_work (int noutput_items, gr_vector_int& ninput_items, d_copied = 0; d_freq_offset = arg(in_abs[i]) / 16; d_plateau = 0; - insert_tag(nitems_written(0), d_freq_offset); + insert_tag(nitems_written(0), d_freq_offset, nitems_read(0) + i); dout << "SHORT Frame!" << std::endl; break; } @@ -99,7 +99,7 @@ int general_work (int noutput_items, gr_vector_int& ninput_items, d_copied = 0; d_plateau = 0; d_freq_offset = arg(in_abs[o]) / 16; - insert_tag(nitems_written(0) + o, d_freq_offset); + insert_tag(nitems_written(0) + o, d_freq_offset, nitems_read(0) + o); dout << "SHORT Frame!" << std::endl; break; } @@ -128,8 +128,8 @@ int general_work (int noutput_items, gr_vector_int& ninput_items, return 0; } -void insert_tag(uint64_t item, double freq_offset) { - mylog(boost::format("frame start at %1%") % item); +void insert_tag(uint64_t item, double freq_offset, uint64_t input_item) { + mylog(boost::format("frame start at in: %2% out: %1%") % item % input_item); const pmt::pmt_t key = pmt::string_to_symbol("wifi_start"); const pmt::pmt_t value = pmt::from_double(freq_offset);