diff options
Diffstat (limited to 'gr-digital/lib/packet_header_ofdm.cc')
-rw-r--r-- | gr-digital/lib/packet_header_ofdm.cc | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/gr-digital/lib/packet_header_ofdm.cc b/gr-digital/lib/packet_header_ofdm.cc index cd42273285..f163657bab 100644 --- a/gr-digital/lib/packet_header_ofdm.cc +++ b/gr-digital/lib/packet_header_ofdm.cc @@ -23,7 +23,7 @@ #include "config.h" #endif -#include <digital/packet_header_ofdm.h> +#include <gnuradio/digital/packet_header_ofdm.h> namespace gr { namespace digital { @@ -85,7 +85,7 @@ namespace gr { bool packet_header_ofdm::header_parser( const unsigned char *in, - std::vector<gr_tag_t> &tags) + std::vector<tag_t> &tags) { if (!packet_header_default::header_parser(in, tags)) { return false; @@ -93,12 +93,15 @@ namespace gr { int packet_len = 0; // # of bytes in this frame for (unsigned i = 0; i < tags.size(); i++) { if (pmt::equal(tags[i].key, d_len_tag_key)) { - packet_len = pmt::to_long(tags[i].value); + // Convert bytes to complex symbols: + packet_len = pmt::to_long(tags[i].value) * 8 / d_bits_per_payload_sym; + if (pmt::to_long(tags[i].value) * 8 % d_bits_per_payload_sym) { + packet_len++; + } + tags[i].value = pmt::from_long(packet_len); break; } } - // Convert bytes to complex symbols: - packet_len = packet_len * 8 / d_bits_per_payload_sym; // frame_len == # of OFDM symbols in this frame int frame_len = packet_len / d_syms_per_set; @@ -108,7 +111,7 @@ namespace gr { frame_len++; i += d_occupied_carriers[k].size(); } - gr_tag_t tag; + tag_t tag; tag.key = d_frame_len_tag_key; tag.value = pmt::from_long(frame_len); tags.push_back(tag); |