Jpp  16.0.0-rc.2
the software that should make you happy
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
KM3NeT_Audio_Channel.h
Go to the documentation of this file.
1 #ifndef KM3NET_AUDIO_CHANNEL_H_
2 #define KM3NET_AUDIO_CHANNEL_H_
3 /**
4  * \author fsimeone
5  */
6 
7 
8 #include <cstdio>
9 #include <cstdlib>
10 #include <ctime>
11 
12 #include <boost/asio.hpp>
13 #include <boost/bind.hpp>
14 #include <boost/function.hpp>
15 
16 #include "KM3NeT_Audio_Data.h"
17 #include "toalib/km3_toa_lib.hpp"
18 
19 
21 typedef boost::shared_ptr<KM3::TOALIB::CTOAFinder::probeSignalT> pProbe;
22 typedef boost::function<void(ToA_Packet packet)> callback_send_toa;
23 
24 //#define DEBUG_KM3NET_AUDIO_CHANNEL
25 #define MAX_DUMP_SIZE 4194304
26 
28 {
29 public:
30  static const int DEBUG_LEVEL=2;
31 
32  KM3NeT_Audio_Channel( boost::asio::io_service& io_service,\
33  callback_send_toa callback,\
34  uint32_t id,\
35  std::string& debug_path,\
36  uint32_t window=STD_WINDOW,\
37  uint32_t overlap=STD_OVERLAP);
38  virtual ~KM3NeT_Audio_Channel();
39 
40  void Add_probe(pProbe probe, std::size_t id, std::size_t threshold);
41  void Append(real_type sample);
42  void Check_time(Audio_Header header){data_.Check_time(header);};
43  void Set_test(uint32_t id){test_=id;};
44 
45 private:
46  void Analysis(ToA_Packet packet,real_type* buffer,uint32_t length);
47  boost::asio::io_service::strand strand_;
50 
52 
53  uint32_t id_;
54 
55  KM3::TOALIB::CTOAFinder finder_;
57 
58  std::string debug_files_path_;
59  void Open_test_file(uint32_t id, uint8_t ch);
60  uint32_t test_;
61  uint32_t overlap_;
63 };
64 
65 #endif
#define STD_OVERLAP
void Set_test(uint32_t id)
static const int DEBUG_LEVEL
void Analysis(ToA_Packet packet, real_type *buffer, uint32_t length)
KM3::TOALIB::CTOAFinder finder_
callback_send_toa send_toa_
void Append(real_type sample)
std::vector< std::size_t > probes_id_
do FILE
Definition: JFilter.sh:49
void Check_time(Audio_Header header)
void Add_probe(pProbe probe, std::size_t id, std::size_t threshold)
std::map< std::size_t, std::size_t > thresholds_
KM3NeT_Audio_Channel(boost::asio::io_service &io_service, callback_send_toa callback, uint32_t id, std::string &debug_path, uint32_t window=STD_WINDOW, uint32_t overlap=STD_OVERLAP)
bool overlap(const JRange< T, JComparator_t > &first, const JRange< T, JComparator_t > &second)
Test overlap between ranges.
Definition: JRange.hh:650
void Open_test_file(uint32_t id, uint8_t ch)
boost::shared_ptr< KM3::TOALIB::CTOAFinder::probeSignalT > pProbe
KM3NeT_Audio_Data data_
std::pair< std::size_t, std::size_t > threshold_entry
void Check_time(Audio_Header header)
#define STD_WINDOW
boost::function< void(ToA_Packet packet)> callback_send_toa
boost::asio::io_service::strand strand_