Psyllid  v1.12.4
Project 8 Data Acquisisition Software
streaming_frequency_writer.hh
Go to the documentation of this file.
1 /*
2  * streaming_frequency_writer.hh
3  *
4  * Created on: April 3, 2018
5  * Author: laroque
6  * (copied from streaming_writer)
7  */
8 
9 #ifndef PSYLLID_STREAMING_FREQUENCY_WRITER_HH_
10 #define PSYLLID_STREAMING_FREQUENCY_WRITER_HH_
11 
12 #include "egg_writer.hh"
13 #include "node_builder.hh"
14 #include "freq_data.hh"
15 
16 #include "consumer.hh"
17 
18 namespace psyllid
19 {
20 
56  public midge::_consumer< midge::type_list< freq_data > >,
57  public egg_writer
58  {
59  public:
62 
63  public:
64  mv_accessible( unsigned, file_num );
65 
66  mv_accessible( unsigned, bit_depth ); // # of bits
67  mv_accessible( unsigned, data_type_size ); // # of bytes
68  mv_accessible( unsigned, sample_size ); // # of components
69  mv_accessible( unsigned, record_size ); // # of samples
70  mv_accessible( unsigned, acq_rate ); // MHz
71  mv_accessible( double, v_offset ); // V
72  mv_accessible( double, v_range ); // V
73  mv_accessible( double, center_freq ); // Hz
74  mv_accessible( double, freq_range ); // Hz
75 
76  public:
77  virtual void prepare_to_write( monarch_wrap_ptr a_mw_ptr, header_wrap_ptr a_hw_ptr );
78 
79  virtual void initialize();
80  virtual void execute( midge::diptera* a_midge = nullptr );
81  virtual void finalize();
82 
83  private:
85 
87  unsigned f_stream_no;
88 
89  };
90 
91 
92  class streaming_frequency_writer_binding : public _node_binding< streaming_frequency_writer, streaming_frequency_writer_binding >
93  {
94  public:
97 
98  private:
99  virtual void do_apply_config( streaming_frequency_writer* a_node, const scarab::param_node& a_config ) const;
100  virtual void do_dump_config( const streaming_frequency_writer* a_node, scarab::param_node& a_config ) const;
101  };
102 
103 } /* namespace psyllid */
104 
105 #endif /* PSYLLID_STREAMING_FREQUENCY_WRITER_HH_ */
std::shared_ptr< header_wrapper > header_wrap_ptr
Base class for all writers.
Definition: egg_writer.hh:24
virtual void execute(midge::diptera *a_midge=nullptr)
A consumer to that writes all frequency ROACH packets to an egg file.
virtual void prepare_to_write(monarch_wrap_ptr a_mw_ptr, header_wrap_ptr a_hw_ptr)
std::shared_ptr< monarch_wrapper > monarch_wrap_ptr