diff options
author | Martin Braun <martin.braun@kit.edu> | 2013-04-08 18:11:34 +0200 |
---|---|---|
committer | Martin Braun <martin.braun@kit.edu> | 2013-04-08 18:56:33 +0200 |
commit | b2c7f058878f7a334fd81bb96d3bd9cd11f27f28 (patch) | |
tree | 29e4e8762baa9ffd1b6810bcabe6c8202075c1c0 /gr-digital/include/digital | |
parent | d84b1dd44cdc1d0b798ab2a7a6a0a738d2d10cce (diff) | |
parent | 719c8be76751cb4fb88fa8ca4149bbf1cf1db763 (diff) |
digital: merge from master
Diffstat (limited to 'gr-digital/include/digital')
-rw-r--r-- | gr-digital/include/digital/ofdm_frame_equalizer_vcvc.h | 3 | ||||
-rw-r--r-- | gr-digital/include/digital/packet_header_default.h | 7 | ||||
-rw-r--r-- | gr-digital/include/digital/packet_header_ofdm.h | 39 |
3 files changed, 34 insertions, 15 deletions
diff --git a/gr-digital/include/digital/ofdm_frame_equalizer_vcvc.h b/gr-digital/include/digital/ofdm_frame_equalizer_vcvc.h index 9cf24034a8..f8e15fb577 100644 --- a/gr-digital/include/digital/ofdm_frame_equalizer_vcvc.h +++ b/gr-digital/include/digital/ofdm_frame_equalizer_vcvc.h @@ -52,7 +52,8 @@ namespace gr { static sptr make( ofdm_equalizer_base::sptr equalizer, const std::string &len_tag_key = "frame_len", - bool propagate_channel_state=false + bool propagate_channel_state=false, + int fixed_frame_len=0 ); }; diff --git a/gr-digital/include/digital/packet_header_default.h b/gr-digital/include/digital/packet_header_default.h index 64804e6d6a..e4c994593f 100644 --- a/gr-digital/include/digital/packet_header_default.h +++ b/gr-digital/include/digital/packet_header_default.h @@ -76,7 +76,7 @@ namespace gr { * If the header length is smaller than 29, bits are simply left out. For this * reason, they always start with the LSB. */ - bool header_formatter( + virtual bool header_formatter( long packet_len, unsigned char *out, const std::vector<gr_tag_t> &tags=std::vector<gr_tag_t>() @@ -85,10 +85,9 @@ namespace gr { /*! * \brief Inverse function to header_formatter(). * - * Reads the bit stream in and writes a corresponding tag into \p tags. - * + * Reads the bit stream in \p header and writes a corresponding tag into \p tags. */ - bool header_parser( + virtual bool header_parser( const unsigned char *header, std::vector<gr_tag_t> &tags); diff --git a/gr-digital/include/digital/packet_header_ofdm.h b/gr-digital/include/digital/packet_header_ofdm.h index 50296a9a50..30d6a953cd 100644 --- a/gr-digital/include/digital/packet_header_ofdm.h +++ b/gr-digital/include/digital/packet_header_ofdm.h @@ -41,10 +41,11 @@ namespace gr { packet_header_ofdm( const std::vector<std::vector<int> > &occupied_carriers, int n_syms, - const std::string &len_tag_key="packet_len", - const std::string &frame_len_tag_key="frame_len", - const std::string &num_tag_key="packet_num", - int bits_per_sym=1); + const std::string &len_tag_key, + const std::string &frame_len_tag_key, + const std::string &num_tag_key, + int bits_per_header_sym, + int bits_per_payload_sym); ~packet_header_ofdm(); /*! @@ -61,19 +62,37 @@ namespace gr { const unsigned char *header, std::vector<gr_tag_t> &tags); + /*! + * \param occupied_carriers See carrier allocator + * \param n_syms The number of OFDM symbols the header should be (usually 1) + * \param len_tag_key The tag key used for the packet length (number of bytes) + * \param frame_len_tag_key The tag key used for the frame length (number of + * OFDM symbols, this is the tag key required for the + * frame equalizer etc.) + * \param bits_per_header_sym Bits per complex symbol in the header, e.g. 1 if + * the header is BPSK modulated, 2 if it's QPSK + * modulated etc. + * \param bits_per_payload_sym Bits per complex symbol in the payload. This is + * required to figure out how many OFDM symbols + * are necessary to encode the given number of + * bytes. + */ static sptr make( - const std::vector<std::vector<int> > &occupied_carriers, - int n_syms, - const std::string &len_tag_key="packet_len", - const std::string &frame_len_tag_key="frame_len", - const std::string &num_tag_key="packet_num", - int bits_per_sym=1); + const std::vector<std::vector<int> > &occupied_carriers, + int n_syms, + const std::string &len_tag_key="packet_len", + const std::string &frame_len_tag_key="frame_len", + const std::string &num_tag_key="packet_num", + int bits_per_header_sym=1, + int bits_per_payload_sym=1 + ); protected: pmt::pmt_t d_frame_len_tag_key; const std::vector<std::vector<int> > d_occupied_carriers; //!< Which carriers/symbols carry data int d_syms_per_set; //!< Helper variable: Total number of elements in d_occupied_carriers + int d_bits_per_payload_sym; }; } // namespace digital |