Line data Source code
1 : #include "detchannelmaps/PDSChannelMap.hpp"
2 :
3 : #include "logging/Logging.hpp" // NOLINT
4 :
5 : #include <format>
6 :
7 : namespace dunedaq {
8 : namespace detchannelmaps {
9 :
10 : class SimplePDSChannelMap : public PDSChannelMap
11 : {
12 : public:
13 :
14 0 : explicit SimplePDSChannelMap() {}
15 :
16 : SimplePDSChannelMap(const SimplePDSChannelMap&) = delete; ///< SimplePDSChannelMap is not copy-constructible
17 : SimplePDSChannelMap& operator=(const SimplePDSChannelMap&) = delete; ///< SimplePDSChannelMap is not copy-assignable
18 : SimplePDSChannelMap(SimplePDSChannelMap&&) = delete; ///< SimplePDSChannelMap is not move-constructible
19 : SimplePDSChannelMap& operator=(SimplePDSChannelMap&&) = delete; ///< SimplePDSChannelMap is not move-assignable
20 :
21 0 : uint get_offline_channel_from_det_crate_slot_stream_chan(uint , //det
22 : uint , //crate
23 : uint slot,
24 : uint , //stream
25 : uint channel) final {
26 0 : return slot*100+channel;
27 : }
28 :
29 : std::optional<PDSChannelInfo>
30 0 : get_det_crate_slot_fiber_chan_from_offline_channel(uint offchannel) final {
31 :
32 0 : PDSChannelInfo pds_ch_info;
33 0 : pds_ch_info.channel = offchannel%100;
34 0 : pds_ch_info.slot = offchannel/100;
35 0 : pds_ch_info.element = offchannel/100;
36 :
37 0 : return pds_ch_info;
38 : }
39 :
40 :
41 0 : uint get_element_from_offline_channel(uint offchannel) final
42 : {
43 0 : return offchannel/100;
44 : }
45 :
46 0 : std::string get_element_name_from_offline_channel(uint offchannel) final
47 : {
48 0 : return std::format("PDSModule{}",offchannel/100);
49 : }
50 :
51 : };
52 :
53 0 : DEFINE_DUNE_DET_PDSCHANNEL_MAP(dunedaq::detchannelmaps::SimplePDSChannelMap)
54 :
55 :
56 : } // namespace detchannelmaps
57 : } // namespace dunedaq
|