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