DUNE-DAQ
DUNE Trigger and Data Acquisition software
Loading...
Searching...
No Matches
definitions.cpp
Go to the documentation of this file.
1
11#include "timing/MasterNode.hpp"
12#include "timing/IONode.hpp"
13#include "timing/HSINode.hpp"
14
15#include <pybind11/pybind11.h>
16#include <pybind11/stl.h>
17
18#include <utility>
19#include <map>
20#include <string>
21
22namespace py = pybind11;
23
24namespace dunedaq {
25namespace timing {
26namespace python {
27
28std::map<std::string, FixedLengthCommandType> swap_commands_map(const std::map<FixedLengthCommandType, std::string>& command_map)
29{
30 std::map<std::string, FixedLengthCommandType> swapped_map;
31 for (auto& cmd: command_map) {
32 swapped_map.emplace( std::pair<std::string,FixedLengthCommandType>(cmd.second, cmd.first) );
33 }
34 return swapped_map;
35}
36
37void
39{
40 py::enum_<BoardType>(m, "BoardType")
41 .value("kBoardFMC", kBoardFMC)
42 .value("kBoardSim", kBoardSim)
43 .value("kBoardPC059", kBoardPC059)
44 .value("kBoardMicrozed", kBoardMicrozed)
45 .value("kBoardTLU", kBoardTLU)
46 .value("kBoardFIB", kBoardFIB)
47 .value("kBoardMIB", kBoardMIB)
48 .value("kBoardPC069", kBoardPC069)
49 .value("kBoardGIB", kBoardGIB)
50 .value("kBoardGIBV3", kBoardGIBV3)
51 .value("kBoardUnknown", kBoardUnknown)
52 .export_values();
53
54 py::enum_<BoardRevision>(m, "BoardRevision")
55 .value("kFMCRev1", kFMCRev1)
56 .value("kFMCRev2", kFMCRev2)
57 .value("kFMCRev3", kFMCRev3)
58 .value("kFMCRev4", kFMCRev4)
59 .value("kPC059Rev1", kPC059Rev1)
60 .value("kTLURev1", kTLURev1)
61 .value("kSIMRev1", kSIMRev1)
62 .value("kFIBRev1", kFIBRev1)
63 .value("kMIBRev1", kMIBRev1)
64 .value("kPC069a", kPC069a)
65 .value("kPC069b", kPC069b)
66 .value("kPC069c", kPC069c)
67 .value("kMIBRev2", kMIBRev2)
68 .value("kGIBRev1", kGIBRev1)
69 .value("kFIBRev2", kFIBRev2)
70 .export_values();
71
72 py::enum_<CarrierType>(m, "CarrierType")
73 .value("kCarrierEnclustraA35", kCarrierEnclustraA35)
74 .value("kCarrierKC705", kCarrierKC705)
75 .value("kCarrierMicrozed", kCarrierMicrozed)
76 .value("kCarrierATFC", kCarrierATFC)
77 .value("kCarrierAFC", kCarrierAFC)
78 .value("kCarrierNexusVideo", kCarrierNexusVideo)
79 .value("kCarrierTrenzTE0712", kCarrierTrenzTE0712)
80 .value("kCarrierUnknown", kCarrierUnknown)
81 .export_values();
82
83 py::enum_<DesignType>(m, "DesignType")
84 .value("kDesignMaster", kDesignMaster)
85 .value("kDesignOuroborosSim", kDesignOuroborosSim)
86 .value("kDesignOuroboros", kDesignOuroboros)
87 .value("kDesignTest", kDesignTest)
88 .value("kDesignEndpoint", kDesignEndpoint)
89 .value("kDesignFanout", kDesignFanout)
90 .value("kDesignOverlord", kDesignOverlord)
91 .value("kDesignEndpoBICRT", kDesignEndpoBICRT)
92 .value("kDesignChronos", kDesignChronos)
93 .value("kDesignBoreas", kDesignBoreas)
94 .value("kDesignKerberos", kDesignKerberos)
95 .value("kDesignGaia", kDesignGaia)
96 .value("kDesignCharon", kDesignCharon)
97 .value("kDesignHades", kDesignHades)
98 .value("kDesignUnknown", kDesignUnknown)
99 .export_values();
100
101 py::enum_<FixedLengthCommandType>(m, "FixedLengthCommandType")
102 .value("TimeSync", TimeSync)
103 .value("Echo", Echo)
104 .value("SpillStart", SpillStart)
105 .value("SpillStop", SpillStop)
106 .value("RunStart", RunStart)
107 .value("RunStop", RunStop)
108 .value("WibCalib", WibCalib)
109 .value("SSPCalib", SSPCalib)
110 .value("FakeTrig0", FakeTrig0)
111 .value("FakeTrig1", FakeTrig1)
112 .value("FakeTrig2", FakeTrig2)
113 .value("FakeTrig3", FakeTrig3)
114 .value("BeamTrig", BeamTrig)
115 .value("NoBeamTrig", NoBeamTrig)
116 .value("ExtFakeTrig", ExtFakeTrig)
117 .export_values();
118
119 py::enum_<ClockSource>(m, "ClockSource")
120 .value("kFreeRun", kFreeRun)
121 .value("kInput0", kInput0)
122 .value("kInput1", kInput1)
123 .value("kInput2", kInput2)
124 .value("kInput3", kInput3)
125 .export_values();
126
127 py::enum_<TimestampSource>(m, "TimestampSource")
128 .value("kUpstream", kUpstream)
129 .value("kSoftware", kSoftware)
130 .value("kMixed", kMixed)
131 .export_values();
132
133 py::enum_<TimestampEpoch>(m, "TimestampEpoch")
134 .value("kUNIX", kUNIX)
135 .value("kCustom", kCustom)
136 .export_values();
137
138 py::enum_<TimestampTimebase>(m, "TimestampTimebase")
139 .value("kTAI", kTAI)
140 .value("kUTC", kUTC)
141 .export_values();
142
143 m.attr("kBoardNameMap") = timing::IONode::get_board_type_map();
144 m.attr("kCarrierNameMap") = timing::IONode::get_carrier_type_map();
145 m.attr("kDesignNameMap") = timing::IONode::get_design_type_map();
146 m.attr("kBoardRevisionMap") = timing::IONode::get_board_revision_map();
147 m.attr("kUIDRevisionMap") = timing::IONode::get_board_uid_revision_map();
148 m.attr("kClockConfigMap") = timing::IONode::get_clock_config_map();
149 m.attr("kEpStates") = EndpointNode::get_endpoint_state_map();
150 m.attr("kLibrarySupportedBoards") = timing::IONode::get_library_supported_boards();
151 m.attr("kLibrarySupportedDesigns") = timing::IONode::get_library_supported_designs();
152 m.attr("kMasterFWMajorRequired") = MasterNode::required_major_firmware_version;
153 m.attr("kHSIWordsNumber") = HSINode::hsi_buffer_event_words_number;
154}
155
156} // namespace python
157} // namespace timing
158} // namespace dunedaq
static std::map< uint8_t, std::string > get_endpoint_state_map()
Get the states map.
static constexpr size_t hsi_buffer_event_words_number
Definition HSINode.hpp:133
static const std::vector< BoardType > & get_library_supported_boards()
Definition IONode.hpp:206
static const std::map< std::string, std::string > & get_clock_config_map()
Definition IONode.hpp:205
static const std::vector< DesignType > & get_library_supported_designs()
Definition IONode.hpp:207
static const std::map< uint64_t, BoardRevision > & get_board_uid_revision_map()
Definition IONode.hpp:203
static const std::map< DesignType, std::string > & get_design_type_map()
Definition IONode.hpp:204
static const std::map< BoardRevision, std::string > & get_board_revision_map()
Definition IONode.hpp:202
static const std::map< BoardType, std::string > & get_board_type_map()
Definition IONode.hpp:198
static const std::map< CarrierType, std::string > & get_carrier_type_map()
Definition IONode.hpp:200
static const uint32_t required_major_firmware_version
void register_definitions(py::module &m)
std::map< std::string, FixedLengthCommandType > swap_commands_map(const std::map< FixedLengthCommandType, std::string > &command_map)
The DUNE-DAQ namespace.