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("kBoardUnknown", kBoardUnknown)
51 .export_values();
52
53 py::enum_<BoardRevision>(m, "BoardRevision")
54 .value("kFMCRev1", kFMCRev1)
55 .value("kFMCRev2", kFMCRev2)
56 .value("kFMCRev3", kFMCRev3)
57 .value("kFMCRev4", kFMCRev4)
58 .value("kPC059Rev1", kPC059Rev1)
59 .value("kTLURev1", kTLURev1)
60 .value("kSIMRev1", kSIMRev1)
61 .value("kFIBRev1", kFIBRev1)
62 .value("kMIBRev1", kMIBRev1)
63 .value("kPC069a", kPC069a)
64 .value("kPC069b", kPC069b)
65 .value("kPC069c", kPC069c)
66 .value("kMIBRev2", kMIBRev2)
67 .value("kGIBRev1", kGIBRev1)
68 .value("kFIBRev2", kFIBRev2)
69 .export_values();
70
71 py::enum_<CarrierType>(m, "CarrierType")
72 .value("kCarrierEnclustraA35", kCarrierEnclustraA35)
73 .value("kCarrierKC705", kCarrierKC705)
74 .value("kCarrierMicrozed", kCarrierMicrozed)
75 .value("kCarrierATFC", kCarrierATFC)
76 .value("kCarrierAFC", kCarrierAFC)
77 .value("kCarrierNexusVideo", kCarrierNexusVideo)
78 .value("kCarrierTrenzTE0712", kCarrierTrenzTE0712)
79 .value("kCarrierUnknown", kCarrierUnknown)
80 .export_values();
81
82 py::enum_<DesignType>(m, "DesignType")
83 .value("kDesignMaster", kDesignMaster)
84 .value("kDesignOuroborosSim", kDesignOuroborosSim)
85 .value("kDesignOuroboros", kDesignOuroboros)
86 .value("kDesignTest", kDesignTest)
87 .value("kDesignEndpoint", kDesignEndpoint)
88 .value("kDesignFanout", kDesignFanout)
89 .value("kDesignOverlord", kDesignOverlord)
90 .value("kDesignEndpoBICRT", kDesignEndpoBICRT)
91 .value("kDesignChronos", kDesignChronos)
92 .value("kDesignBoreas", kDesignBoreas)
93 .value("kDesignKerberos", kDesignKerberos)
94 .value("kDesignGaia", kDesignGaia)
95 .value("kDesignCharon", kDesignCharon)
96 .value("kDesignHades", kDesignHades)
97 .value("kDesignUnknown", kDesignUnknown)
98 .export_values();
99
100 py::enum_<FixedLengthCommandType>(m, "FixedLengthCommandType")
101 .value("TimeSync", TimeSync)
102 .value("Echo", Echo)
103 .value("SpillStart", SpillStart)
104 .value("SpillStop", SpillStop)
105 .value("RunStart", RunStart)
106 .value("RunStop", RunStop)
107 .value("WibCalib", WibCalib)
108 .value("SSPCalib", SSPCalib)
109 .value("FakeTrig0", FakeTrig0)
110 .value("FakeTrig1", FakeTrig1)
111 .value("FakeTrig2", FakeTrig2)
112 .value("FakeTrig3", FakeTrig3)
113 .value("BeamTrig", BeamTrig)
114 .value("NoBeamTrig", NoBeamTrig)
115 .value("ExtFakeTrig", ExtFakeTrig)
116 .export_values();
117
118 py::enum_<ClockSource>(m, "ClockSource")
119 .value("kFreeRun", kFreeRun)
120 .value("kInput0", kInput0)
121 .value("kInput1", kInput1)
122 .value("kInput2", kInput2)
123 .value("kInput3", kInput3)
124 .export_values();
125
126 py::enum_<TimestampSource>(m, "TimestampSource")
127 .value("kUpstream", kUpstream)
128 .value("kSoftware", kSoftware)
129 .value("kMixed", kMixed)
130 .export_values();
131
132 py::enum_<IRIGEpoch>(m, "IRIGEpoch")
133 .value("kTAI", kTAI)
134 .value("kUNIX", kUNIX)
135 .export_values();
136
137 m.attr("kBoardNameMap") = timing::IONode::get_board_type_map();
138 m.attr("kCarrierNameMap") = timing::IONode::get_carrier_type_map();
139 m.attr("kDesignNameMap") = timing::IONode::get_design_type_map();
140 m.attr("kBoardRevisionMap") = timing::IONode::get_board_revision_map();
141 m.attr("kUIDRevisionMap") = timing::IONode::get_board_uid_revision_map();
142 m.attr("kClockConfigMap") = timing::IONode::get_clock_config_map();
143 m.attr("kEpStates") = EndpointNode::get_endpoint_state_map();
144 m.attr("kLibrarySupportedBoards") = timing::IONode::get_library_supported_boards();
145 m.attr("kLibrarySupportedDesigns") = timing::IONode::get_library_supported_designs();
146 m.attr("kMasterFWMajorRequired") = MasterNode::required_major_firmware_version;
147 m.attr("kHSIWordsNumber") = HSINode::hsi_buffer_event_words_number;
148}
149
150} // namespace python
151} // namespace timing
152} // 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:196
static const std::map< std::string, std::string > & get_clock_config_map()
Definition IONode.hpp:195
static const std::vector< DesignType > & get_library_supported_designs()
Definition IONode.hpp:197
static const std::map< uint64_t, BoardRevision > & get_board_uid_revision_map()
Definition IONode.hpp:193
static const std::map< DesignType, std::string > & get_design_type_map()
Definition IONode.hpp:194
static const std::map< BoardRevision, std::string > & get_board_revision_map()
Definition IONode.hpp:192
static const std::map< BoardType, std::string > & get_board_type_map()
Definition IONode.hpp:188
static const std::map< CarrierType, std::string > & get_carrier_type_map()
Definition IONode.hpp:190
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)
Including Qt Headers.