diff options
author | Johnathan Corgan <johnathan@corganlabs.com> | 2013-05-13 07:36:16 +1000 |
---|---|---|
committer | Johnathan Corgan <johnathan@corganlabs.com> | 2013-05-13 07:36:16 +1000 |
commit | a4fe510a69190162452889cd629fa258084f46ff (patch) | |
tree | 4da725d8bad7641fb8d9db8b153e61beb313715d /gr-digital/lib/packet_header_default.cc | |
parent | c7a2cecdd4e9e04d66b4b20b9debce86696e6290 (diff) | |
parent | 2405532f945576470d1915a4668b91ff35c05775 (diff) |
Merge branch 'next' into runtime_pimpl
Conflicts:
gr-blocks/swig/blocks_swig0.i
gr-digital/lib/ofdm_chanest_vcvc_impl.cc
gr-digital/lib/ofdm_frame_equalizer_vcvc_impl.cc
gr-digital/lib/ofdm_frame_equalizer_vcvc_impl.h
gr-digital/lib/ofdm_sync_sc_cfb_impl.cc
gr-digital/lib/packet_header_default.cc
gr-digital/lib/packet_headerparser_b_impl.cc
Diffstat (limited to 'gr-digital/lib/packet_header_default.cc')
-rw-r--r-- | gr-digital/lib/packet_header_default.cc | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/gr-digital/lib/packet_header_default.cc b/gr-digital/lib/packet_header_default.cc index eb639260c6..ef5f39dc97 100644 --- a/gr-digital/lib/packet_header_default.cc +++ b/gr-digital/lib/packet_header_default.cc @@ -47,7 +47,7 @@ namespace gr { int bits_per_byte) : d_header_len(header_len), d_len_tag_key(pmt::string_to_symbol(len_tag_key)), - d_num_tag_key(pmt::string_to_symbol(num_tag_key)), + d_num_tag_key(num_tag_key.empty() ? pmt::PMT_NIL : pmt::string_to_symbol(num_tag_key)), d_bits_per_byte(bits_per_byte), d_header_number(0) { @@ -64,8 +64,9 @@ namespace gr { bool packet_header_default::header_formatter( long packet_len, unsigned char *out, + const std::vector<tag_t> &tags - ) + ) { packet_len &= 0x0FFF; @@ -107,12 +108,17 @@ namespace gr { if (k >= d_header_len) { return true; } - for (int i = 0; i < 16 && k < d_header_len; i += d_bits_per_byte, k++) { - header_num |= (((int) in[k]) & d_mask) << i; + if (d_num_tag_key == pmt::PMT_NIL) { + k += 16; + } else { + for (int i = 0; i < 16 && k < d_header_len; i += d_bits_per_byte, k++) { + header_num |= (((int) in[k]) & d_mask) << i; + } + tag.key = d_num_tag_key; + tag.value = pmt::from_long(header_num); + tags.push_back(tag); } - tag.key = d_num_tag_key; - tag.value = pmt::from_long(header_num); - tags.push_back(tag); + if (k >= d_header_len) { return true; } |