fun_ofdm  1.0
802.11a Physical Layer for USRP
 All Classes Namespaces Files Functions Variables Enumerations Enumerator Macros Pages
receiver_chain.h
Go to the documentation of this file.
1 
10 #ifndef RECEIVER_CHAIN_H
11 #define RECEIVER_CHAIN_H
12 
13 #include <thread>
14 #include <semaphore.h>
15 
16 #include "fft_symbols.h"
17 #include "channel_est.h"
18 #include "phase_tracker.h"
19 #include "frame_decoder.h"
20 #include "block.h"
21 #include "tagged_vector.h"
22 #include "frame_detector.h"
23 #include "timing_sync.h"
24 
25 namespace fun
26 {
27 
41  {
42  public:
43 
48 
56  std::vector<std::vector<unsigned char> > process_samples(std::vector<std::complex<double> > samples);
57 
58  private:
59 
60  /**********
61  * Blocks *
62  **********/
63 
70 
71  /***********************************
72  * Scheduler Variables and Methods *
73  ***********************************/
74 
80 
86  void run_block(int index, fun::block_base * block);
87 
88 
89  std::vector<std::thread> m_threads;
90 
91 
92  std::vector<sem_t> m_wake_sems;
93 
94 
95  std::vector<sem_t> m_done_sems;
96  };
97 
98 }
99 
100 #endif // RECEIVER_CHAIN_H