LCOV - code coverage report
Current view: top level - snbmodules/plugins - SNBFileReaderModule.cpp (source / functions) Coverage Total Hit
Test: code.result Lines: 0.0 % 72 0
Test Date: 2026-03-29 15:29:34 Functions: 0.0 % 13 0

            Line data    Source code
       1              : /**
       2              :  * @file SNBFileReaderModule.cpp SNBFileReaderModule class implementation
       3              :  *
       4              :  * This is part of the DUNE DAQ , copyright 2020.
       5              :  * Licensing/copyright details are in the COPYING file that you should have
       6              :  * received with this code.
       7              :  */
       8              : #include "SNBFileReaderModule.hpp"
       9              : 
      10              : // #include "appfwk/app/Nljs.hpp"
      11              : // #include "appfwk/cmd/Nljs.hpp"
      12              : #include "logging/Logging.hpp"
      13              : 
      14              : #include "datahandlinglibs/DataHandlingIssues.hpp"
      15              : #include "datahandlinglibs/ReadoutLogging.hpp"
      16              : // #include "snbmodules/sourceemulatorconfig/Nljs.hpp"
      17              : #include "appmodel/DataReaderModule.hpp"
      18              : #include "snbmodules/readout/FileSourceModel.hpp"
      19              : 
      20              : // #include "fdreadoutlibs/DUNEWIBSuperChunkTypeAdapter.hpp"
      21              : #include "fdreadoutlibs/CRTBernTypeAdapter.hpp"
      22              : #include "fdreadoutlibs/CRTGrenobleTypeAdapter.hpp"
      23              : #include "fdreadoutlibs/DAPHNEStreamSuperChunkTypeAdapter.hpp"
      24              : #include "fdreadoutlibs/DAPHNESuperChunkTypeAdapter.hpp"
      25              : #include "fdreadoutlibs/DUNEWIBEthTypeAdapter.hpp"
      26              : #include "fdreadoutlibs/TDEEthTypeAdapter.hpp"
      27              : 
      28              : #include <chrono>
      29              : #include <fstream>
      30              : #include <iomanip>
      31              : #include <limits>
      32              : #include <memory>
      33              : #include <sstream>
      34              : #include <string>
      35              : #include <utility>
      36              : #include <vector>
      37              : 
      38              : using namespace dunedaq::datahandlinglibs::logging;
      39              : 
      40              : namespace dunedaq {
      41              : 
      42              : // DUNE_DAQ_TYPESTRING(dunedaq::fdreadoutlibs::types::DUNEWIBSuperChunkTypeAdapter, "WIB2Frame")
      43              : DUNE_DAQ_TYPESTRING(dunedaq::fdreadoutlibs::types::DUNEWIBEthTypeAdapter, "WIBEthFrame")
      44              : DUNE_DAQ_TYPESTRING(dunedaq::fdreadoutlibs::types::DAPHNESuperChunkTypeAdapter, "PDSFrame")
      45              : DUNE_DAQ_TYPESTRING(dunedaq::fdreadoutlibs::types::DAPHNEStreamSuperChunkTypeAdapter, "PDSStreamFrame")
      46              : DUNE_DAQ_TYPESTRING(dunedaq::fdreadoutlibs::types::TDEEthTypeAdapter, "TDEEthFrame")
      47              : DUNE_DAQ_TYPESTRING(dunedaq::fdreadoutlibs::types::CRTBernTypeAdapter, "CRTBernFrame")
      48              : DUNE_DAQ_TYPESTRING(dunedaq::fdreadoutlibs::types::CRTGrenobleTypeAdapter, "CRTGrenobleFrame")
      49              : 
      50              : namespace fdreadoutmodules {
      51              : 
      52            0 : SNBFileReaderModule::SNBFileReaderModule(const std::string& name)
      53              :   : DAQModule(name)
      54            0 :   , FileReaderBase(name)
      55              : {
      56            0 :   inherited_mod::register_command("conf", &inherited_fcr::do_conf);
      57            0 :   inherited_mod::register_command("scrap", &inherited_fcr::do_scrap);
      58            0 :   inherited_mod::register_command("start", &inherited_fcr::do_start);
      59            0 :   inherited_mod::register_command("stop_trigger_sources", &inherited_fcr::do_stop);
      60            0 : }
      61              : 
      62              : void
      63            0 : SNBFileReaderModule::init(std::shared_ptr<appfwk::ConfigurationManager> cfg)
      64              : {
      65            0 :   TLOG_DEBUG(TLVL_ENTER_EXIT_METHODS) << get_name() << ": Entering init() method";
      66            0 :   inherited_fcr::init(cfg);
      67            0 :   TLOG_DEBUG(TLVL_ENTER_EXIT_METHODS) << get_name() << ": Exiting init() method";
      68            0 : }
      69              : 
      70              : std::shared_ptr<snbmodules::FileSourceConcept>
      71            0 : SNBFileReaderModule::create_source_emulator(const appmodel::DataMoveCallbackConf* cb_conf, std::atomic<bool>& run_marker)
      72              : {
      73              :   //! Values suitable to emulation
      74              : 
      75            0 :   static constexpr int daphnestream_time_tick_diff =
      76              :     fdreadoutlibs::types::DAPHNEStreamSuperChunkTypeAdapter::expected_tick_difference;
      77            0 :   static constexpr double daphnestream_rate_khz =
      78              :     62500. / daphnestream_time_tick_diff / fdreadoutlibs::types::kDAPHNEStreamNumFrames;
      79              : 
      80            0 :   static constexpr int daphne_time_tick_diff =
      81              :     fdreadoutlibs::types::DAPHNESuperChunkTypeAdapter::expected_tick_difference;
      82            0 :   static constexpr double daphne_rate_khz = 62500. / daphne_time_tick_diff / fdreadoutlibs::types::kDAPHNENumFrames;
      83              : 
      84            0 :   static constexpr int wibeth_time_tick_diff = fdreadoutlibs::types::DUNEWIBEthTypeAdapter::expected_tick_difference;
      85            0 :   static constexpr double wibeth_rate_khz = 62500. / wibeth_time_tick_diff;
      86              : 
      87            0 :   static constexpr int tdeeth_time_tick_diff = fdreadoutlibs::types::TDEEthTypeAdapter::expected_tick_difference;
      88            0 :   static constexpr double tdeeth_rate_khz = 62500. / tdeeth_time_tick_diff;
      89            0 :   static constexpr double crtbern_rate_khz = 100;
      90            0 :   static constexpr double crtgrenoble_rate_khz = 100;
      91              : 
      92            0 :   std::string raw_dt = cb_conf->get_data_type();
      93            0 :   TLOG() << "Choosing specialization for SourceEmulator with raw_input" << " [uid:" << cb_conf->UID()
      94            0 :          << " , data_type:" << raw_dt
      95            0 :          << ']';
      96              : 
      97              :   // IF WIBETH
      98            0 :   if (raw_dt.find("WIBEthFrame") != std::string::npos) {
      99            0 :     TLOG_DEBUG(TLVL_WORK_STEPS) << "Creating fake wibeth link";
     100            0 :     auto source_emu_model = std::make_shared<snbmodules::FileSourceModel<fdreadoutlibs::types::DUNEWIBEthTypeAdapter>>(
     101            0 :       cb_conf->UID(), run_marker, wibeth_rate_khz);
     102            0 :     register_node(cb_conf->UID(), source_emu_model);
     103            0 :     return source_emu_model;
     104            0 :   }
     105              : 
     106              :   // IF PDS
     107            0 :   if (raw_dt.find("PDSFrame") != std::string::npos) {
     108            0 :     TLOG_DEBUG(TLVL_WORK_STEPS) << "Creating fake pds link";
     109            0 :     auto source_emu_model =
     110              :       std::make_shared<snbmodules::FileSourceModel<fdreadoutlibs::types::DAPHNESuperChunkTypeAdapter>>(
     111            0 :         cb_conf->UID(), run_marker, daphne_rate_khz);
     112            0 :     register_node(cb_conf->UID(), source_emu_model);
     113            0 :     return source_emu_model;
     114            0 :   }
     115              : 
     116              :   // IF PDSStream
     117            0 :   if (raw_dt.find("PDSStreamFrame") != std::string::npos) {
     118            0 :     TLOG_DEBUG(TLVL_WORK_STEPS) << "Creating fake pds stream link";
     119            0 :     auto source_emu_model =
     120              :       std::make_shared<snbmodules::FileSourceModel<fdreadoutlibs::types::DAPHNEStreamSuperChunkTypeAdapter>>(
     121            0 :         cb_conf->UID(), run_marker, daphnestream_rate_khz);
     122            0 :     register_node(cb_conf->UID(), source_emu_model);
     123            0 :     return source_emu_model;
     124            0 :   }
     125              : 
     126              :   // IF TDEEth
     127            0 :   if (raw_dt.find("TDEEthFrame") != std::string::npos) {
     128            0 :     TLOG_DEBUG(TLVL_WORK_STEPS) << "Creating fake tde link";
     129            0 :     auto source_emu_model = std::make_shared<snbmodules::FileSourceModel<fdreadoutlibs::types::TDEEthTypeAdapter>>(
     130            0 :       cb_conf->UID(), run_marker, tdeeth_rate_khz);
     131            0 :     register_node(cb_conf->UID(), source_emu_model);
     132            0 :     return source_emu_model;
     133            0 :   }
     134              : 
     135              :   // IF CRTBern
     136            0 :   if (raw_dt.find("CRTBernFrame") != std::string::npos) {
     137            0 :     TLOG_DEBUG(TLVL_WORK_STEPS) << "Creating fake crt bern link";
     138            0 :     auto source_emu_model = std::make_shared<snbmodules::FileSourceModel<fdreadoutlibs::types::CRTBernTypeAdapter>>(
     139            0 :       cb_conf->UID(), run_marker, crtbern_rate_khz);
     140            0 :     register_node(cb_conf->UID(), source_emu_model);
     141            0 :     return source_emu_model;
     142            0 :   }
     143              : 
     144              :   // IF CRTGrenoble
     145            0 :   if (raw_dt.find("CRTGrenobleFrame") != std::string::npos) {
     146            0 :     TLOG_DEBUG(TLVL_WORK_STEPS) << "Creating fake crt grenoble link";
     147            0 :     auto source_emu_model = std::make_shared<snbmodules::FileSourceModel<fdreadoutlibs::types::CRTGrenobleTypeAdapter>>(
     148            0 :       cb_conf->UID(), run_marker, crtgrenoble_rate_khz);
     149            0 :     register_node(cb_conf->UID(), source_emu_model);
     150            0 :     return source_emu_model;
     151            0 :   }
     152              : 
     153            0 :   return nullptr;
     154            0 : }
     155              : 
     156              : } // namespace fdreadoutmodules
     157              : } // namespace dunedaq
     158              : 
     159            0 : DEFINE_DUNE_DAQ_MODULE(dunedaq::fdreadoutmodules::SNBFileReaderModule)
        

Generated by: LCOV version 2.0-1