Psyllid  v1.12.4
Project 8 Data Acquisisition Software
triggered_writer.hh
Go to the documentation of this file.
1 /*
2  * triggered_writer.hh
3  *
4  * Created on: Dec 30, 2015
5  * Author: nsoblath
6  */
7 
8 #ifndef PSYLLID_TRIGGERED_WRITER_HH_
9 #define PSYLLID_TRIGGERED_WRITER_HH_
10 
11 #include "egg_writer.hh"
12 #include "node_builder.hh"
13 #include "trigger_flag.hh"
14 #include "time_data.hh"
15 
16 #include "consumer.hh"
17 
18 namespace psyllid
19 {
20 
55  public midge::_consumer< midge::type_list< time_data, trigger_flag > >,
56  public egg_writer
57  {
58  public:
60  virtual ~triggered_writer();
61 
62  public:
63  mv_accessible( unsigned, file_num );
64 
65  mv_accessible( unsigned, bit_depth ); // # of bits
66  mv_accessible( unsigned, data_type_size ); // # of bytes
67  mv_accessible( unsigned, sample_size ); // # of components
68  mv_accessible( unsigned, record_size ); // # of samples
69  mv_accessible( unsigned, acq_rate ); // MHz
70  mv_accessible( double, v_offset ); // V
71  mv_accessible( double, v_range ); // V
72  mv_accessible( double, center_freq ); // Hz
73  mv_accessible( double, freq_range ); // Hz
74 
75  public:
76  virtual void prepare_to_write( monarch_wrap_ptr a_mw_ptr, header_wrap_ptr a_hw_ptr );
77 
78  virtual void initialize();
79  virtual void execute( midge::diptera* a_midge = nullptr );
80  virtual void finalize();
81 
82  private:
84  {
88  monarch3::M3Record* f_record_ptr;
89  unsigned f_stream_no;
93  };
94 
97 
99  unsigned f_stream_no;
100  };
101 
102 
103  class triggered_writer_binding : public _node_binding< triggered_writer, triggered_writer_binding >
104  {
105  public:
107  virtual ~triggered_writer_binding();
108 
109  private:
110  virtual void do_apply_config( triggered_writer* a_node, const scarab::param_node& a_config ) const;
111  virtual void do_dump_config( const triggered_writer* a_node, scarab::param_node& a_config ) const;
112  };
113 
114 } /* namespace psyllid */
115 
116 #endif /* PSYLLID_TRIGGERED_WRITER_HH_ */
std::shared_ptr< header_wrapper > header_wrap_ptr
Base class for all writers.
Definition: egg_writer.hh:24
virtual void prepare_to_write(monarch_wrap_ptr a_mw_ptr, header_wrap_ptr a_hw_ptr)
std::shared_ptr< stream_wrapper > stream_wrap_ptr
void exe_loop_is_running(exe_loop_context &a_ctx)
monarch_wrap_ptr f_monarch_ptr
void exe_loop_not_running(exe_loop_context &a_ctx)
std::shared_ptr< monarch_wrapper > monarch_wrap_ptr
A consumer to that writes triggered time ROACH packets to an egg file.
mv_accessible(unsigned, file_num)
virtual void execute(midge::diptera *a_midge=nullptr)