DUNE-DAQ
DUNE Trigger and Data Acquisition software
Toggle main menu visibility
Loading...
Searching...
No Matches
dunedaq
sourcecode
flxlibs
src
CardControllerWrapper.hpp
Go to the documentation of this file.
1
8
#ifndef FLXLIBS_SRC_CARDCONTROLLERWRAPPER_HPP_
9
#define FLXLIBS_SRC_CARDCONTROLLERWRAPPER_HPP_
10
11
#include "
opmonlib/MonitorableObject.hpp
"
12
#include "flxcard/FlxCard.h"
13
14
#include <nlohmann/json.hpp>
15
16
#include <memory>
17
#include <mutex>
18
#include <string>
19
20
namespace
dunedaq
{
21
namespace
appmodel
{
22
class
FelixInterface
;
23
class
FelixDataSender
;
24
}
25
namespace
flxlibs
{
26
27
class
CardControllerWrapper
:
public
opmonlib::MonitorableObject
28
{
29
public
:
33
CardControllerWrapper
(uint32_t device_id,
const
appmodel::FelixInterface
* flx_cfg,
const
std::vector<const appmodel::FelixDataSender*>& flx_senders);
34
~CardControllerWrapper
();
35
CardControllerWrapper
(
const
CardControllerWrapper
&) =
delete
;
36
CardControllerWrapper
&
operator=
(
const
CardControllerWrapper
&) =
delete
;
37
CardControllerWrapper
(
CardControllerWrapper
&&) =
delete
;
38
CardControllerWrapper
&
operator=
(
CardControllerWrapper
&&) =
delete
;
39
40
using
data_t
= nlohmann::json;
41
void
init
();
42
void
configure
(uint16_t super_chunk_size,
bool
emu_fanout);
43
44
uint64_t
get_register
(std::string key);
// NOLINT(build/unsigned)
45
void
set_register
(std::string key, uint64_t value);
// NOLINT(build/unsigned)
46
uint64_t
get_bitfield
(std::string key);
// NOLINT(build/unsigned)
47
void
set_bitfield
(std::string key, uint64_t value);
// NOLINT(build/unsigned)
48
void
gth_reset
();
49
void
check_alignment
(uint64_t aligned);
50
51
protected
:
52
void
generate_opmon_data
()
override
;
53
54
private
:
55
56
// Card
57
void
open_card
();
58
void
close_card
();
59
60
// Card object
61
uint32_t
m_device_id
;
62
63
64
using
UniqueFlxCard
= std::unique_ptr<FlxCard>;
65
66
const
appmodel::FelixInterface
*
m_flx_cfg
;
67
const
std::vector<const appmodel::FelixDataSender*>
m_flx_senders
;
68
69
UniqueFlxCard
m_flx_card
;
70
std::mutex
m_card_mutex
;
71
};
72
73
}
// namespace flxlibs
74
}
// namespace dunedaq
75
76
#endif
// FLXLIBS_SRC_CARDCONTROLLERWRAPPER_HPP_
MonitorableObject.hpp
dunedaq::appmodel::FelixDataSender
Definition
FelixDataSender.hpp:23
dunedaq::appmodel::FelixInterface
Definition
FelixInterface.hpp:27
dunedaq::flxlibs::CardControllerWrapper::gth_reset
void gth_reset()
Definition
CardControllerWrapper.cpp:190
dunedaq::flxlibs::CardControllerWrapper::m_device_id
uint32_t m_device_id
Definition
CardControllerWrapper.hpp:61
dunedaq::flxlibs::CardControllerWrapper::operator=
CardControllerWrapper & operator=(CardControllerWrapper &&)=delete
Not move-assignable.
dunedaq::flxlibs::CardControllerWrapper::check_alignment
void check_alignment(uint64_t aligned)
Definition
CardControllerWrapper.cpp:200
dunedaq::flxlibs::CardControllerWrapper::get_register
uint64_t get_register(std::string key)
Definition
CardControllerWrapper.cpp:156
dunedaq::flxlibs::CardControllerWrapper::configure
void configure(uint16_t super_chunk_size, bool emu_fanout)
Definition
CardControllerWrapper.cpp:89
dunedaq::flxlibs::CardControllerWrapper::close_card
void close_card()
Definition
CardControllerWrapper.cpp:143
dunedaq::flxlibs::CardControllerWrapper::init
void init()
Definition
CardControllerWrapper.cpp:67
dunedaq::flxlibs::CardControllerWrapper::m_flx_card
UniqueFlxCard m_flx_card
Definition
CardControllerWrapper.hpp:69
dunedaq::flxlibs::CardControllerWrapper::open_card
void open_card()
Definition
CardControllerWrapper.cpp:130
dunedaq::flxlibs::CardControllerWrapper::~CardControllerWrapper
~CardControllerWrapper()
Definition
CardControllerWrapper.cpp:58
dunedaq::flxlibs::CardControllerWrapper::UniqueFlxCard
std::unique_ptr< FlxCard > UniqueFlxCard
Definition
CardControllerWrapper.hpp:64
dunedaq::flxlibs::CardControllerWrapper::m_flx_senders
const std::vector< const appmodel::FelixDataSender * > m_flx_senders
Definition
CardControllerWrapper.hpp:67
dunedaq::flxlibs::CardControllerWrapper::CardControllerWrapper
CardControllerWrapper(uint32_t device_id, const appmodel::FelixInterface *flx_cfg, const std::vector< const appmodel::FelixDataSender * > &flx_senders)
CardControllerWrapper Constructor.
Definition
CardControllerWrapper.cpp:40
dunedaq::flxlibs::CardControllerWrapper::m_flx_cfg
const appmodel::FelixInterface * m_flx_cfg
Definition
CardControllerWrapper.hpp:66
dunedaq::flxlibs::CardControllerWrapper::CardControllerWrapper
CardControllerWrapper(const CardControllerWrapper &)=delete
Not copy-constructible.
dunedaq::flxlibs::CardControllerWrapper::set_register
void set_register(std::string key, uint64_t value)
Definition
CardControllerWrapper.cpp:165
dunedaq::flxlibs::CardControllerWrapper::set_bitfield
void set_bitfield(std::string key, uint64_t value)
Definition
CardControllerWrapper.cpp:182
dunedaq::flxlibs::CardControllerWrapper::m_card_mutex
std::mutex m_card_mutex
Definition
CardControllerWrapper.hpp:70
dunedaq::flxlibs::CardControllerWrapper::get_bitfield
uint64_t get_bitfield(std::string key)
Definition
CardControllerWrapper.cpp:173
dunedaq::flxlibs::CardControllerWrapper::operator=
CardControllerWrapper & operator=(const CardControllerWrapper &)=delete
Not copy-assignable.
dunedaq::flxlibs::CardControllerWrapper::data_t
nlohmann::json data_t
Definition
CardControllerWrapper.hpp:40
dunedaq::flxlibs::CardControllerWrapper::generate_opmon_data
void generate_opmon_data() override
Definition
CardControllerWrapper.cpp:225
dunedaq::flxlibs::CardControllerWrapper::CardControllerWrapper
CardControllerWrapper(CardControllerWrapper &&)=delete
Not move-constructible.
dunedaq::opmonlib::MonitorableObject
Definition
MonitorableObject.hpp:74
dunedaq::appmodel
Definition
CardControllerWrapper.hpp:21
dunedaq::flxlibs
Definition
AvailableParserOperations.hpp:27
dunedaq
Including Qt Headers.
Definition
module.cpp:16
Generated on
for DUNE-DAQ by
1.17.0