DUNE-DAQ
DUNE Trigger and Data Acquisition software
Loading...
Searching...
No Matches
DACNode.hpp
Go to the documentation of this file.
1
12#ifndef TIMING_INCLUDE_TIMING_DACNODE_HPP_
13#define TIMING_INCLUDE_TIMING_DACNODE_HPP_
14
16#include "timing/I2CSlave.hpp"
17
18#include "ers/Issue.hpp"
19#include "logging/Logging.hpp" // NOTE: if ISSUES ARE DECLARED BEFORE include logging/Logging.hpp, TLOG_DEBUG<<issue wont work.
20
21#include <string>
22
23namespace dunedaq {
24
26 DACChannelOutOfRange,
27 " DAC channel out of range: " << channel,
28 ((std::string)channel)
29)
32 " DAC value out of range: " << value,
33 ((std::string)value)
34)
35
36namespace timing {
37
41class DACSlave : public I2CSlave
42{
43public:
44 DACSlave(const I2CMasterNode* i2c_master, uint8_t i2c_device_address); // NOLINT(build/unsigned)
45 virtual ~DACSlave() = default;
46
50 void set_interal_ref(bool internal_ref) const;
51
55 void set_dac(uint8_t channel, uint32_t code) const; // NOLINT(build/unsigned)
56};
57
67 : public I2CMasterNode
68 , public DACSlave
69{
70 UHAL_DERIVEDNODE(DACNode)
71public:
72 explicit DACNode(const uhal::Node& node);
73 DACNode(const DACNode& node);
74 virtual ~DACNode();
75};
76
77} // namespace timing
78} // namespace dunedaq
79
80#endif // TIMING_INCLUDE_TIMING_DACNODE_HPP_
#define ERS_DECLARE_ISSUE(namespace_name, class_name, message, attributes)
uhal::Node implementing single I2C Master Slave connection to control SFP expander chips.
Definition DACNode.hpp:69
DACNode(const uhal::Node &node)
Definition DACNode.cpp:51
Class for dac node.
Definition DACNode.hpp:42
void set_interal_ref(bool internal_ref) const
Use DAC internal reference.
Definition DACNode.cpp:25
DACSlave(const I2CMasterNode *i2c_master, uint8_t i2c_device_address)
Definition DACNode.cpp:18
virtual ~DACSlave()=default
void set_dac(uint8_t channel, uint32_t code) const
Configure DAC channel.
Definition DACNode.cpp:33
Including Qt Headers.
DACValueOutOfRange
< Namespace
Definition DACNode.hpp:31