8#ifndef FDREADOUTLIBS_INCLUDE_FDREADOUTLIBS_WIBEth_WIBFRAMEPROCESSOR_HPP_
9#define FDREADOUTLIBS_INCLUDE_FDREADOUTLIBS_WIBEth_WIBFRAMEPROCESSOR_HPP_
50namespace fdreadoutlibs {
63 explicit WIBEthFrameProcessor(std::unique_ptr<datahandlinglibs::FrameErrorRegistry>& error_registry,
bool processing_enabled);
65 void start(
const nlohmann::json& args)
override;
67 void stop(
const nlohmann::json& args)
override;
149 std::shared_ptr<iomanager::SenderConcept<std::vector<trigger::TriggerPrimitiveTypeAdapter>>>
m_tp_sink[3];
162 std::chrono::time_point<std::chrono::high_resolution_clock>
m_t0;
std::atomic< int16_t > m_seq_id_min_jump
std::atomic< uint64_t > m_tps_suppressed_too_long
void use_pattern_generator(frameptr fp)
bool m_ts_problem_reported
bool m_seq_id_error_state
void conf(const appmodel::DataHandlerModule *conf) override
Set the emulator mode, if active, timestamps of processed packets are overwritten with new ones.
WIBEthFrameProcessor(std::unique_ptr< datahandlinglibs::FrameErrorRegistry > &error_registry, bool processing_enabled)
void timestamp_check(frameptr fp)
std::unique_ptr< tpglibs::TPGenerator > m_tp_generator
void find_hits(constframeptr fp)
dunedaq::daqdataformats::timestamp_t m_pattern_generator_previous_ts
uint16_t m_current_seq_id
std::atomic< uint64_t > m_new_tps
std::chrono::time_point< std::chrono::high_resolution_clock > m_t0
std::shared_ptr< iomanager::SenderConcept< std::vector< trigger::TriggerPrimitiveTypeAdapter > > > m_tp_sink[3]
std::atomic< int16_t > m_seq_id_max_jump
std::vector< std::pair< trgdataformats::channel_t, int16_t > > m_channel_plane_numbers
daqdataformats::SourceID m_sourceid
std::vector< trigger::TriggerPrimitiveTypeAdapter > m_tpa_vectors[3]
virtual void generate_opmon_data() override
std::map< uint, std::atomic< int > > m_tp_channel_rate_map
std::vector< std::pair< std::string, nlohmann::json > > m_tpg_configs
dunedaq::daqdataformats::timestamp_t m_current_ts
std::atomic< uint64_t > m_tps_send_failed
dunedaq::daqdataformats::timestamp_t m_previous_ts
bool m_seq_id_problem_reported
void stop(const nlohmann::json &args) override
Stop operation.
uint16_t m_tpg_threshold_selected
uint16_t m_previous_seq_id
std::atomic< int > m_tpg_hits_count
std::set< unsigned int > m_channel_mask_set
bool m_first_ts_missmatch
std::atomic< uint64_t > m_frame_counter
bool m_first_seq_id_mismatch
std::atomic< uint64_t > m_ts_error_ctr
void sequence_check(frameptr fp)
dunedaq::daqdataformats::timestamp_t m_pattern_generator_current_ts
std::shared_ptr< iomanager::SenderConcept< fddetdataformats::WIBEthFrame > > m_err_frame_sink
std::atomic< uint64_t > m_new_hits
std::shared_ptr< detchannelmaps::TPCChannelMap > m_channel_map
void start(const nlohmann::json &args) override
Start operation.
std::atomic< uint64_t > m_seq_id_error_ctr