DUNE-DAQ
DUNE Trigger and Data Acquisition software
Loading...
Searching...
No Matches
dunedaq::fdreadoutlibs::CRTBernFrameProcessor Class Reference

#include <CRTBernFrameProcessor.hpp>

Inheritance diagram for dunedaq::fdreadoutlibs::CRTBernFrameProcessor:
[legend]
Collaboration diagram for dunedaq::fdreadoutlibs::CRTBernFrameProcessor:
[legend]

Public Member Functions

 CRTBernFrameProcessor (std::unique_ptr< datahandlinglibs::FrameErrorRegistry > &error_registry, bool post_processing_enabled)
void conf (const appmodel::DataHandlerModule *conf) override
 Set the emulator mode, if active, timestamps of processed packets are overwritten with new ones.
Public Member Functions inherited from dunedaq::datahandlinglibs::TaskRawDataProcessorModel< types::CRTBernTypeAdapter >
 TaskRawDataProcessorModel (std::unique_ptr< FrameErrorRegistry > &error_registry, bool post_processing_enabled)
 ~TaskRawDataProcessorModel ()
void conf (const appmodel::DataHandlerModule *conf) override
 Set the emulator mode, if active, timestamps of processed packets are overwritten with new ones.
void scrap (const appfwk::DAQModule::CommandData_t &) override
 Unconfigure.
void start (const appfwk::DAQModule::CommandData_t &) override
 Start operation.
void stop (const appfwk::DAQModule::CommandData_t &) override
 Stop operation.
void reset_last_daq_time ()
std::uint64_t get_last_daq_time () override
 Get newest timestamp of last seen packet.
void preprocess_item (types::CRTBernTypeAdapter *item) override
 Preprocess one element.
void postprocess_item (const types::CRTBernTypeAdapter *item) override
 Postprocess one element.
void invoke_postprocess_schedule_timeout_policy (std::uint64_t accumilated_timeout_ticks) override
 Handle postprocess timeout event.
void add_preprocess_task (Task &&task)
void add_postprocess_task (Task &&task)
void invoke_all_preprocess_functions (types::CRTBernTypeAdapter *item)
void launch_all_preprocess_functions (types::CRTBernTypeAdapter *item)
Public Member Functions inherited from dunedaq::datahandlinglibs::RawDataProcessorConcept< types::CRTBernTypeAdapter >
 RawDataProcessorConcept ()
virtual ~RawDataProcessorConcept ()
RawDataProcessorConceptoperator= (const RawDataProcessorConcept &)=delete
 RawDataProcessorConcept is not copy-assginable.
Public Member Functions inherited from dunedaq::opmonlib::MonitorableObject
 MonitorableObject (const MonitorableObject &)=delete
MonitorableObjectoperator= (const MonitorableObject &)=delete
 MonitorableObject (MonitorableObject &&)=delete
MonitorableObjectoperator= (MonitorableObject &&)=delete
virtual ~MonitorableObject ()=default
auto get_opmon_id () const noexcept
auto get_opmon_level () const noexcept

Protected Member Functions

void timestamp_check (types::CRTBernTypeAdapter *fp)
Protected Member Functions inherited from dunedaq::datahandlinglibs::TaskRawDataProcessorModel< types::CRTBernTypeAdapter >
virtual void generate_opmon_data () override
void run_post_processing_thread (std::function< void(const types::CRTBernTypeAdapter *)> &function, folly::ProducerConsumerQueue< const types::CRTBernTypeAdapter * > &queue)
Protected Member Functions inherited from dunedaq::opmonlib::MonitorableObject
 MonitorableObject ()=default
void register_node (ElementId name, NewNodePtr)
void publish (google::protobuf::Message &&, CustomOrigin &&co={}, OpMonLevel l=to_level(EntryOpMonLevel::kDefault)) const noexcept

Additional Inherited Members

Public Types inherited from dunedaq::opmonlib::MonitorableObject
using NodePtr = std::weak_ptr<MonitorableObject>
using NewNodePtr = std::shared_ptr<MonitorableObject>
using ElementId = std::string
Static Public Member Functions inherited from dunedaq::opmonlib::MonitorableObject
static bool publishable_metric (OpMonLevel entry, OpMonLevel system) noexcept
Protected Attributes inherited from dunedaq::datahandlinglibs::TaskRawDataProcessorModel< types::CRTBernTypeAdapter >
std::vector< std::function< void(types::CRTBernTypeAdapter *)> > m_preprocess_functions
std::unique_ptr< FrameErrorRegistry > & m_error_registry
bool m_post_processing_enabled
std::atomic< boolm_run_marker
std::vector< std::function< void(const types::CRTBernTypeAdapter *)> > m_post_process_functions
std::vector< std::unique_ptr< folly::ProducerConsumerQueue< const types::CRTBernTypeAdapter * > > > m_items_to_postprocess_queues
std::vector< std::unique_ptr< utilities::ReusableThread > > m_post_process_threads
size_t m_postprocess_queue_sizes
daqdataformats::SourceID m_sourceid
std::atomic< uint64_t > m_last_processed_daq_ts

Detailed Description

Definition at line 18 of file CRTBernFrameProcessor.hpp.

Constructor & Destructor Documentation

◆ CRTBernFrameProcessor()

dunedaq::fdreadoutlibs::CRTBernFrameProcessor::CRTBernFrameProcessor ( std::unique_ptr< datahandlinglibs::FrameErrorRegistry > & error_registry,
bool post_processing_enabled )
inlineexplicit

Definition at line 21 of file CRTBernFrameProcessor.hpp.

22 : datahandlinglibs::TaskRawDataProcessorModel<types::CRTBernTypeAdapter>(error_registry, post_processing_enabled)
23 {}

Member Function Documentation

◆ conf()

void dunedaq::fdreadoutlibs::CRTBernFrameProcessor::conf ( const appmodel::DataHandlerModule * conf)
overridevirtual

Set the emulator mode, if active, timestamps of processed packets are overwritten with new ones.

Implements dunedaq::datahandlinglibs::RawDataProcessorConcept< types::CRTBernTypeAdapter >.

Definition at line 14 of file CRTBernFrameProcessor.cpp.

15 {
16 TLOG() << "Registering processing tasks...";
18 }
void timestamp_check(types::CRTBernTypeAdapter *fp)
#define TLOG(...)
Definition macro.hpp:22

◆ timestamp_check()

void dunedaq::fdreadoutlibs::CRTBernFrameProcessor::timestamp_check ( types::CRTBernTypeAdapter * fp)
protected

Definition at line 20 of file CRTBernFrameProcessor.cpp.

21 {
22 static const uint64_t k_clock_frequency = 62500000; // NOLINT(build/unsigned)
23 auto current_ts = fp->get_timestamp();
24 TLOG_DEBUG(TLVL_FRAME_RECEIVED) << "Received CRTBern frame timestamp value of " << current_ts << " ticks (..." << std::fixed << std::setprecision(8) << (static_cast<double>(current_ts % (k_clock_frequency*1000)) / static_cast<double>(k_clock_frequency)) << " sec)";// NOLINT
25
26 if(current_ts > m_last_processed_daq_ts) m_last_processed_daq_ts = current_ts;
27 }
#define TLOG_DEBUG(lvl,...)
Definition Logging.hpp:112
@ TLVL_FRAME_RECEIVED

The documentation for this class was generated from the following files: