summaryrefslogtreecommitdiff
path: root/gr-digital/lib/packet_header_ofdm.cc
diff options
context:
space:
mode:
authorMartin Braun <martin.braun@kit.edu>2013-04-19 12:58:35 +0200
committerMartin Braun <martin.braun@kit.edu>2013-05-11 13:50:34 +0200
commit7be24afbf8857a5e827fb536a80d7a83e7b6aa31 (patch)
treec76cafea7b2d33b0f0de615242d2d48004bc4f79 /gr-digital/lib/packet_header_ofdm.cc
parent728c6e2138d5eb4f0814dcd3d03c65e628746eab (diff)
digital: OFDM passes all tests
Diffstat (limited to 'gr-digital/lib/packet_header_ofdm.cc')
-rw-r--r--gr-digital/lib/packet_header_ofdm.cc11
1 files changed, 7 insertions, 4 deletions
diff --git a/gr-digital/lib/packet_header_ofdm.cc b/gr-digital/lib/packet_header_ofdm.cc
index 6d40fcfffa..9758ee696a 100644
--- a/gr-digital/lib/packet_header_ofdm.cc
+++ b/gr-digital/lib/packet_header_ofdm.cc
@@ -90,15 +90,18 @@ namespace gr {
if (!packet_header_default::header_parser(in, tags)) {
return false;
}
- int packet_len = 0; // # of bytes in this frame
+ int packet_len = 0; // # of symbols in this frame
for (unsigned i = 0; i < tags.size(); i++) {
if (pmt::pmt_equal(tags[i].key, d_len_tag_key)) {
- packet_len = pmt::pmt_to_long(tags[i].value);
+ // Convert bytes to complex symbols:
+ packet_len = pmt::pmt_to_long(tags[i].value) * 8 / d_bits_per_payload_sym;
+ if (pmt::pmt_to_long(tags[i].value) * 8 % d_bits_per_payload_sym) {
+ packet_len++;
+ }
+ tags[i].value = pmt::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;