Line data Source code
1 : /**
2 : * @file TimingHardwareManagerPDII.hpp
3 : *
4 : * TimingHardwareManagerPDII is a DAQModule implementation that
5 : * provides the interface to the timing system hardware.
6 : *
7 : * This is part of the DUNE DAQ Software Suite, copyright 2020.
8 : * Licensing/copyright details are in the COPYING file that you should have
9 : * received with this code.
10 : */
11 :
12 : #ifndef TIMINGLIBS_PLUGINS_TIMINGHARDWAREMANAGERPDII_HPP_
13 : #define TIMINGLIBS_PLUGINS_TIMINGHARDWAREMANAGERPDII_HPP_
14 :
15 : #include "InfoGatherer.hpp"
16 : #include "TimingHardwareManagerBase.hpp"
17 :
18 : #include "timinglibs/TimingIssues.hpp"
19 : #include "timinglibs/timingcmd/Nljs.hpp"
20 : #include "timinglibs/timingcmd/Structs.hpp"
21 :
22 : #include "appfwk/DAQModule.hpp"
23 : #include "ers/Issue.hpp"
24 : #include "logging/Logging.hpp"
25 : #include "timing/BoreasDesign.hpp"
26 : #include "timing/ChronosDesign.hpp"
27 : #include "timing/EndpointDesign.hpp"
28 : #include "timing/FanoutDesign.hpp"
29 : #include "timing/HSINode.hpp"
30 : #include "timing/OuroborosDesign.hpp"
31 : #include "timing/OuroborosMuxDesign.hpp"
32 :
33 : #include "uhal/ConnectionManager.hpp"
34 : #include "uhal/utilities/files.hpp"
35 : #include "utilities/WorkerThread.hpp"
36 :
37 : #include <map>
38 : #include <memory>
39 : #include <regex>
40 : #include <string>
41 : #include <vector>
42 :
43 : namespace dunedaq {
44 : namespace timinglibs {
45 :
46 : /**
47 : * @brief Hardware manager for PD-II hardware.
48 : */
49 :
50 : class TimingHardwareManagerPDII : public TimingHardwareManagerBase
51 : {
52 : public:
53 : /**
54 : * @brief TimingHardwareManagerPDII Constructor
55 : * @param name Instance name for this TimingHardwareManagerPDII instance
56 : */
57 : explicit TimingHardwareManagerPDII(const std::string& name);
58 :
59 : TimingHardwareManagerPDII(const TimingHardwareManagerPDII&) =
60 : delete; ///< TimingHardwareManagerPDII is not copy-constructible
61 : TimingHardwareManagerPDII& operator=(const TimingHardwareManagerPDII&) =
62 : delete; ///< TimingHardwareManagerPDII is not copy-assignable
63 : TimingHardwareManagerPDII(TimingHardwareManagerPDII&&) = delete; ///< TimingHardwareManagerPDII is not move-constructible
64 : TimingHardwareManagerPDII& operator=(TimingHardwareManagerPDII&&) =
65 : delete; ///< TimingHardwareManagerPDII is not move-assignable
66 :
67 : void conf(const CommandData_t& data) override;
68 : void start(const CommandData_t& data);
69 : void stop(const CommandData_t& data);
70 :
71 : // void get_info(opmonlib::InfoCollector& ci, int level) override;
72 :
73 0 : void partition_configure(const timingcmd::TimingHwCmd& /*hw_cmd*/) override {}
74 :
75 : protected:
76 : void register_common_hw_commands_for_design() override;
77 : void register_master_hw_commands_for_design() override;
78 : void register_endpoint_hw_commands_for_design() override;
79 : void register_hsi_hw_commands_for_design() override;
80 : };
81 : } // namespace timinglibs
82 : } // namespace dunedaq
83 :
84 : #endif // TIMINGLIBS_PLUGINS_TIMINGHARDWAREMANAGERPDII_HPP_
85 :
86 : // Local Variables:
87 : // c-basic-offset: 2
88 : // End:
|