fun_ofdm  1.0
802.11a Physical Layer for USRP
 All Classes Namespaces Files Functions Variables Enumerations Enumerator Macros Pages
frame_decoder.h
Go to the documentation of this file.
1 
12 #ifndef FRAME_DECODER_H
13 #define FRAME_DECODER_H
14 
15 #include <complex>
16 #include <deque>
17 
18 #include "tagged_vector.h"
19 #include "rates.h"
20 #include "block.h"
21 
22 namespace fun
23 {
29  struct FrameData
30  {
34  std::vector<std::complex<double> > samples;
35  int length;
37 
42  FrameData(RateParams _rate_params) :
43  rate_params(_rate_params)
44  {
45  samples.reserve(100000);
46  }
47 
57  void Reset(RateParams _rate_params, int _sample_count, int _length)
58  {
59  rate_params = _rate_params;
60  length = _length;
61  sample_count = _sample_count;
62  required_samples = _sample_count / _rate_params.bpsc;
63  samples_copied = 0;
64  }
65  };
66 
80  class frame_decoder : public fun::block<tagged_vector<48>, std::vector<unsigned char> >
81  {
82  public:
83 
84  frame_decoder();
85 
86  virtual void work();
87 
88  private:
89 
91 
92  };
93 
94 }
95 #endif // FRAME_DECODER_H
96