2 #ifdef DEBUG_ACOUSTICDATAFILTER 
    5 #include <boost/date_time/posix_time/posix_time.hpp> 
    7 #define DEBUG_MSG(str,lev) do { if (((uint8_t)lev)>=AcousticDataFilter::DEBUG_LEVEL) { DBG_MSG << boost::posix_time::microsec_clock::local_time() << " ACOUSTICDATAFILTER(" << (void*)this << "): "<< str << '\n'; } }while( false ) 
    9 #define DEBUG_MSG(str,lev) do { } while ( false ) 
   21         std::istringstream iss(d);
 
   27             size_t pos   = token.find(
'=');
 
   28                         std::string key=token.substr(0, pos);
 
   29                         std::string value=token.substr(pos+1);
 
   40         i = 
mmap.equal_range(tag);
 
   43           r.push_back(it->second);
 
   49   std::string 
Find(std::string tag, 
size_t index, std::string value = 
"")
 
   53     if (result.size() > index)
 
   64                                                                                 const std::string& port,\
 
   65                                                                                 const std::string& 
name,\
 
   66                                                                     const std::string& server,\
 
   67                                                                                 const std::string& wisdom,\
 
   68                                                                                 const std::string& output,\
 
   69                                                                                 const std::string& raw,\
 
   71                                                                     const int          level):  KM3NETDAQ::JDAQClient(name,server,logger,level),\
 
   72                                                                                                                                         strand_(trigger_io_service_),\
 
   73                                                                                                                                         server_acceptor_(server_io_service_)
 
  102         boost::asio::ip::tcp::resolver::query l_query(
address_,
port_);
 
  103         boost::asio::ip::tcp::endpoint l_endpoint = *l_resolver.resolve(l_query);
 
  105         server_acceptor_.set_option(boost::asio::ip::tcp::acceptor::reuse_address(
true));
 
  122         for (i=
links_.begin(); i!=
links_.end(); ++i){ (*i)->Disconnect(); }
 
  153                 link->Start_reading();
 
  165                 if (fftwf_import_wisdom_from_file(pfile)==1)
 
  181                 fftwf_export_wisdom_to_file(pfile);
 
  193         Parser dummy(std::string(buffer, length),
';');
 
  196         std::string l_debug_file_path;
 
  197         std::string l_window;
 
  198         std::string l_overlap;
 
  204         l_window            = dummy.
Find(
"ADF_analysis_window_size", 0);
 
  205         l_overlap           = dummy.
Find(
"ADF_analysis_window_overlap", 0);
 
  206         l_probes            = dummy.
Find(
"ADF_waveform");
 
  207         l_dom_configuration = dummy.
Find(
"ADF_DOM_configuration");
 
  209         l_toa_path=dummy.
Find(
"ADF_TOA_path");
 
  211         l_dbg_path=dummy.
Find(
"ADF_DBG_path");
 
  214         DEBUG_MSG(
"SM:Configure. win="<<l_window,2);
 
  215         DEBUG_MSG(
"SM:Configure. ovr="<<l_overlap,2);
 
  219         DEBUG_MSG(
"SM:Configure. n dom="<<l_dom_configuration.size(),2);
 
  220         DEBUG_MSG(
"SM:Configure. n pro="<<l_probes.size(),2);
 
  240         for(
int t=0;t<probes.size();++t)
 
  242                 std::istringstream l_iss(probes.at(t));
 
  249                 l_id=atoi(l_line.c_str());
 
  252                 l_samples=atoi(l_line.c_str());
 
  254                 l_buffer=(real_type*)malloc(l_samples*
sizeof(real_type));
 
  255                 for (uint32_t i=0; i<l_samples; ++i)
 
  258                         real_type l_dummy=atof(l_line.c_str());
 
  263                 pProbe l_probe = boost::make_shared<KM3::TOALIB::CTOAFinder::probeSignalT>(*(
new KM3::TOALIB::CTOAFinder::probeSignalT(window)));
 
  265                 l_probe->copyFromBuffer(l_buffer,l_samples);
 
  276         for(
int t=0;t<dom_configuration.size();++t)
 
  278                 std::istringstream l_iss(dom_configuration.at(t));
 
  282                 uint32_t l_threshold;
 
  283                 uint32_t l_waveforms;
 
  287                 l_dom_id=atoi(l_line.c_str());
 
  296                 l_waveforms=atoi(l_line.c_str());
 
  297                 DEBUG_MSG(
"n waveforms="<<l_waveforms,1);
 
  298                 for (uint32_t i=0; i<l_waveforms; ++i)
 
  301                         l_probe_id=atoi(l_line.c_str());
 
  303                         l_threshold=atoi(l_line.c_str());
 
  304                         DEBUG_MSG(
"adding probe "<<l_probe_id<<
" with threshold "<<l_threshold<<
" to DOM "<<l_dom_id,1);
 
  305                         l_dom->Add_probe(
probes_.find(l_probe_id)->second,l_probe_id,l_threshold);
 
  308         l_test=atoi(l_line.c_str());
 
  310                 l_dom->Set_test(l_test);
 
  337         std::time_t seconds = std::time(0);
 
  338         l_file+=
"TOA_"+
std::to_string((
long long unsigned int)seconds)+
".bin";
 
  339         toa_file_.open(l_file.c_str(),std::ofstream::binary);
 
  340     DEBUG_MSG(
"Toa file opened at "<<seconds,1);
 
virtual void actionReset(int length, const char *buffer)
 
boost::atomic< bool > exit_
 
void Send_toa_async(ToA_Packet packet)
 
std::string Find(std::string tag, size_t index, std::string value="")
 
#define DEBUG_MSG(str, lev)
 
JDAQStateMachine::ev_configure_event ev_configure
 
virtual void actionInit(int length, const char *buffer)
 
boost::shared_ptr< KM3NeT_Acoustic_Link > pLink
 
boost::asio::io_service trigger_io_service_
 
std::map< std::size_t, pProbe > probes_
 
boost::asio::io_service::strand strand_
 
void Create_probes(std::vector< std::string > probes, std::size_t window)
 
boost::asio::io_service::work * server_work_
 
boost::thread_group trigger_threads_
 
Interface for logging messages. 
 
void replaceEvent(const JTag &oldTag, const JTag &newTag, JDAQEvent_t &event)
Replace tag of given event in event table. 
 
std::string trim(const std::string &buffer)
Trim string. 
 
virtual void actionQuit(int length, const char *buffer)
 
virtual void actionConfigure(int length, const char *buffer)
 
boost::shared_ptr< KM3NeT_DOM > pDOM
 
Parser(std::string d, char t)
 
const JNET::JTag & clientTag() const 
 
std::vector< pLink > links_
 
std::istream & getline(std::istream &in, JString &object)
Read string from input stream until end of line. 
 
virtual void actionStop(int length, const char *buffer)
 
virtual ~AcousticDataFilter()
 
std::multimap< std::string, std::string > mmap
 
boost::atomic< bool > running_
 
AcousticDataFilter(const std::string &address, const std::string &port, const std::string &name, const std::string &server, const std::string &wisdom, const std::string &output, const std::string &raw, JLOGGER::JLogger *logger, const int level)
 
std::map< std::size_t, pDOM > doms_
 
then JMuonMCEvt f $INPUT_FILE o $INTERMEDIATE_FILE d
 
void Accept_completed(pLink link, const boost::system::error_code &error)
 
#define TRIGGER_THREAD_POOL
 
boost::thread_group server_threads_
 
boost::asio::ip::tcp::acceptor server_acceptor_
 
virtual void actionStart(int length, const char *buffer)
 
boost::asio::io_service server_io_service_
 
std::string to_string(const T &value)
Convert value to string. 
 
void Send_toa(ToA_Packet packet)
 
std::string debug_file_path_
 
#define SERVER_THREAD_POOL
 
virtual void actionContinue(int length, const char *buffer)
 
boost::asio::io_service::work * trigger_work_
 
static const JNET::JTag RC_CMD
 
void Create_DOMs(std::vector< std::string > doms, std::string &debug_file_path, std::size_t window, std::size_t overlap)
 
boost::shared_ptr< KM3::TOALIB::CTOAFinder::probeSignalT > pProbe
 
std::string toa_file_path_
 
std::vector< std::string > Find(std::string tag)
 
std::pair< std::size_t, pProbe > probe_entry
 
std::pair< std::size_t, pDOM > dom_entry
 
virtual void actionPause(int length, const char *buffer)