LCOV - code coverage report
Current view: top level - timing/pybindsrc - definitions.cpp (source / functions) Coverage Total Hit
Test: code.result Lines: 0.0 % 113 0
Test Date: 2025-12-21 13:07:08 Functions: 0.0 % 2 0

            Line data    Source code
       1              : /**
       2              :  * @file definitions.cpp
       3              :  *
       4              :  * This is part of the DUNE DAQ Software Suite, copyright 2020.
       5              :  * Licensing/copyright details are in the COPYING file that you should have
       6              :  * received with this code.
       7              :  */
       8              : 
       9              : #include "timing/definitions.hpp"
      10              : #include "timing/EndpointNode.hpp"
      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              : 
      22              : namespace py = pybind11;
      23              : 
      24              : namespace dunedaq {
      25              : namespace timing {
      26              : namespace python {
      27              : 
      28            0 : std::map<std::string, FixedLengthCommandType> swap_commands_map(const std::map<FixedLengthCommandType, std::string>& command_map)
      29              : {
      30            0 :         std::map<std::string, FixedLengthCommandType> swapped_map;
      31            0 :         for (auto& cmd: command_map) {
      32            0 :                 swapped_map.emplace( std::pair<std::string,FixedLengthCommandType>(cmd.second, cmd.first) );
      33              :         }
      34            0 :         return swapped_map;
      35            0 : }
      36              : 
      37              : void
      38            0 : register_definitions(py::module& m)
      39              : {
      40            0 :         py::enum_<BoardType>(m, "BoardType")
      41            0 :         .value("kBoardFMC", kBoardFMC)
      42            0 :         .value("kBoardSim", kBoardSim)
      43            0 :         .value("kBoardPC059", kBoardPC059)
      44            0 :         .value("kBoardMicrozed", kBoardMicrozed)
      45            0 :         .value("kBoardTLU", kBoardTLU)
      46            0 :         .value("kBoardFIB", kBoardFIB)
      47            0 :         .value("kBoardMIB", kBoardMIB)
      48            0 :         .value("kBoardPC069", kBoardPC069)
      49            0 :         .value("kBoardGIB", kBoardGIB)
      50            0 :         .value("kBoardGIBV3", kBoardGIBV3)
      51            0 :         .value("kBoardUnknown", kBoardUnknown)
      52            0 :         .export_values();
      53              : 
      54            0 :     py::enum_<BoardRevision>(m, "BoardRevision")
      55            0 :         .value("kFMCRev1", kFMCRev1)
      56            0 :         .value("kFMCRev2", kFMCRev2)
      57            0 :         .value("kFMCRev3", kFMCRev3)
      58            0 :         .value("kFMCRev4", kFMCRev4)
      59            0 :         .value("kPC059Rev1", kPC059Rev1)
      60            0 :         .value("kTLURev1", kTLURev1)
      61            0 :         .value("kSIMRev1", kSIMRev1)
      62            0 :         .value("kFIBRev1", kFIBRev1)
      63            0 :         .value("kMIBRev1", kMIBRev1)
      64            0 :         .value("kPC069a", kPC069a)
      65            0 :         .value("kPC069b", kPC069b)
      66            0 :         .value("kPC069c", kPC069c)
      67            0 :         .value("kMIBRev2", kMIBRev2)
      68            0 :         .value("kGIBRev1", kGIBRev1)
      69            0 :         .value("kFIBRev2", kFIBRev2)
      70            0 :         .export_values();
      71              : 
      72            0 :     py::enum_<CarrierType>(m, "CarrierType")
      73            0 :         .value("kCarrierEnclustraA35", kCarrierEnclustraA35)
      74            0 :         .value("kCarrierKC705", kCarrierKC705)
      75            0 :         .value("kCarrierMicrozed", kCarrierMicrozed)
      76            0 :         .value("kCarrierATFC", kCarrierATFC)
      77            0 :         .value("kCarrierAFC", kCarrierAFC)
      78            0 :         .value("kCarrierNexusVideo", kCarrierNexusVideo)
      79            0 :         .value("kCarrierTrenzTE0712", kCarrierTrenzTE0712)
      80            0 :         .value("kCarrierUnknown", kCarrierUnknown)
      81            0 :         .export_values();
      82              : 
      83            0 :     py::enum_<DesignType>(m, "DesignType")
      84            0 :         .value("kDesignMaster", kDesignMaster)
      85            0 :         .value("kDesignOuroborosSim", kDesignOuroborosSim)
      86            0 :         .value("kDesignOuroboros", kDesignOuroboros)
      87            0 :         .value("kDesignTest", kDesignTest)
      88            0 :         .value("kDesignEndpoint", kDesignEndpoint)
      89            0 :         .value("kDesignFanout", kDesignFanout)
      90            0 :         .value("kDesignOverlord", kDesignOverlord)
      91            0 :         .value("kDesignEndpoBICRT", kDesignEndpoBICRT)
      92            0 :         .value("kDesignChronos", kDesignChronos)
      93            0 :         .value("kDesignBoreas", kDesignBoreas)
      94            0 :         .value("kDesignKerberos", kDesignKerberos)
      95            0 :         .value("kDesignGaia", kDesignGaia)
      96            0 :         .value("kDesignCharon", kDesignCharon)
      97            0 :         .value("kDesignHades", kDesignHades)
      98            0 :         .value("kDesignUnknown", kDesignUnknown)
      99            0 :         .export_values();
     100              : 
     101            0 :     py::enum_<FixedLengthCommandType>(m, "FixedLengthCommandType")
     102            0 :         .value("TimeSync", TimeSync)
     103            0 :         .value("Echo", Echo)
     104            0 :         .value("SpillStart", SpillStart)
     105            0 :         .value("SpillStop", SpillStop)
     106            0 :         .value("RunStart", RunStart)
     107            0 :         .value("RunStop", RunStop)
     108            0 :         .value("WibCalib", WibCalib)
     109            0 :         .value("SSPCalib", SSPCalib)
     110            0 :         .value("FakeTrig0", FakeTrig0)
     111            0 :         .value("FakeTrig1", FakeTrig1)
     112            0 :         .value("FakeTrig2", FakeTrig2)
     113            0 :         .value("FakeTrig3", FakeTrig3)
     114            0 :         .value("BeamTrig", BeamTrig)
     115            0 :         .value("NoBeamTrig", NoBeamTrig)
     116            0 :         .value("ExtFakeTrig", ExtFakeTrig)
     117            0 :         .export_values();
     118              : 
     119            0 :     py::enum_<ClockSource>(m, "ClockSource")
     120            0 :         .value("kFreeRun", kFreeRun)
     121            0 :         .value("kInput0", kInput0)
     122            0 :         .value("kInput1", kInput1)
     123            0 :         .value("kInput2", kInput2)
     124            0 :         .value("kInput3", kInput3)
     125            0 :         .export_values();
     126              : 
     127            0 :     py::enum_<TimestampSource>(m, "TimestampSource")
     128            0 :         .value("kUpstream", kUpstream)
     129            0 :         .value("kSoftware", kSoftware)
     130            0 :         .value("kMixed", kMixed)
     131            0 :         .export_values();
     132              : 
     133            0 :     py::enum_<TimestampEpoch>(m, "TimestampEpoch")
     134            0 :         .value("kUNIX", kUNIX)
     135            0 :         .value("kCustom", kCustom)
     136            0 :         .export_values();
     137              : 
     138            0 :     py::enum_<TimestampTimebase>(m, "TimestampTimebase")
     139            0 :         .value("kTAI", kTAI)
     140            0 :         .value("kUTC", kUTC)
     141            0 :         .export_values();
     142              : 
     143            0 :         m.attr("kBoardNameMap") = timing::IONode::get_board_type_map();
     144            0 :         m.attr("kCarrierNameMap") = timing::IONode::get_carrier_type_map();
     145            0 :         m.attr("kDesignNameMap") = timing::IONode::get_design_type_map();
     146            0 :         m.attr("kBoardRevisionMap") = timing::IONode::get_board_revision_map();
     147            0 :         m.attr("kUIDRevisionMap") = timing::IONode::get_board_uid_revision_map();
     148            0 :         m.attr("kClockConfigMap") = timing::IONode::get_clock_config_map();
     149            0 :         m.attr("kEpStates") = EndpointNode::get_endpoint_state_map();
     150            0 :         m.attr("kLibrarySupportedBoards") = timing::IONode::get_library_supported_boards();
     151            0 :     m.attr("kLibrarySupportedDesigns") = timing::IONode::get_library_supported_designs();
     152            0 :     m.attr("kMasterFWMajorRequired") = MasterNode::required_major_firmware_version;
     153            0 :     m.attr("kHSIWordsNumber") = HSINode::hsi_buffer_event_words_number;
     154            0 : }
     155              : 
     156              : } // namespace python
     157              : } // namespace timing
     158              : } // namespace dunedaq
        

Generated by: LCOV version 2.0-1