DUNE-DAQ
DUNE Trigger and Data Acquisition software
Loading...
Searching...
No Matches
dunedaq::timing::LM75Node Class Reference

#include <LM75Node.hpp>

Inheritance diagram for dunedaq::timing::LM75Node:
[legend]
Collaboration diagram for dunedaq::timing::LM75Node:
[legend]

Public Member Functions

 LM75Node (const I2CMasterNode *i2c_master, uint8_t i2c_device_address)
 
virtual ~LM75Node ()
 
float read_temperature () const
 Read temperature [C].
 
- Public Member Functions inherited from dunedaq::timing::I2CSlave
virtual ~I2CSlave ()
 
uint8_t get_i2c_address () const
 
uint8_t read_i2c (uint32_t i2c_device_address, uint32_t i2c_reg_address) const
 comodity functions
 
uint8_t read_i2c (uint32_t i2c_reg_address) const
 
uint8_t read_i2c_atomic (uint32_t i2c_device_address, uint32_t i2c_reg_address) const
 
uint8_t read_i2c_atomic (uint32_t i2c_reg_address) const
 
void write_i2c (uint32_t i2c_device_address, uint32_t i2c_reg_address, uint8_t data, bool send_stop=true) const
 
void write_i2c (uint32_t i2c_reg_address, uint8_t data, bool send_stop=true) const
 
std::vector< uint8_t > read_i2cArray (uint32_t i2c_device_address, uint32_t i2c_reg_address, uint32_t number_of_words) const
 
std::vector< uint8_t > read_i2cArray (uint32_t i2c_reg_address, uint32_t number_of_words) const
 
std::vector< uint8_t > read_i2cArray_atomic (uint32_t i2c_reg_address, uint32_t number_of_words) const
 
std::vector< uint8_t > read_i2cArray_atomic (uint32_t i2c_device_address, uint32_t i2c_reg_address, uint32_t number_of_words) const
 
void write_i2cArray (uint32_t i2c_device_address, uint32_t i2c_reg_address, std::vector< uint8_t > data, bool send_stop=true) const
 
void write_i2cArray (uint32_t i2c_reg_address, std::vector< uint8_t > data, bool send_stop=true) const
 
std::vector< uint8_t > read_i2cPrimitive (uint32_t number_of_bytes) const
 
void write_i2cPrimitive (const std::vector< uint8_t > &data, bool send_stop=true) const
 
bool ping () const
 
std::string get_master_id () const
 

Additional Inherited Members

- Protected Member Functions inherited from dunedaq::timing::I2CSlave
 I2CSlave (const I2CMasterNode *i2c_master, uint8_t i2c_device_address)
 

Detailed Description

Definition at line 26 of file LM75Node.hpp.

Constructor & Destructor Documentation

◆ LM75Node()

dunedaq::timing::LM75Node::LM75Node ( const I2CMasterNode * i2c_master,
uint8_t i2c_device_address )

Definition at line 23 of file LM75Node.cpp.

24 : I2CSlave(i2c_master, address)
25{}
I2CSlave(const I2CMasterNode *i2c_master, uint8_t i2c_device_address)
Definition I2CSlave.cpp:33

◆ ~LM75Node()

dunedaq::timing::LM75Node::~LM75Node ( )
virtual

Definition at line 29 of file LM75Node.cpp.

29{}

Member Function Documentation

◆ read_temperature()

float dunedaq::timing::LM75Node::read_temperature ( ) const

Read temperature [C].

Definition at line 34 of file LM75Node.cpp.

35{
36 std::vector<uint8_t> temp_bytes = this->read_i2cPrimitive(2); // NOLINT(build/unsigned)
37 uint16_t temp_raw = (temp_bytes[1] & 0x80) >> 7;
38 temp_raw = temp_raw | (temp_bytes[0] << 1);
39
40 // 1s padding for negative values
41 if (temp_raw & 0x0100)
42 {
43 temp_raw = temp_raw | 0xfe00;
44 }
45 int16_t temp = static_cast<int16_t>(temp_raw);
46
47 TLOG_DEBUG(13) << "LM75 temp data - "
48 << "raw bytes: 0x" << std::hex << (uint)temp_bytes[0] << ", 0x" << (uint)temp_bytes[1] // NOLINT(build/unsigned)
49 << ", combined word: 0x" << temp_raw
50 << ", temp [C]: " << temp*0.5;
51 return temp*0.5;
52}
std::vector< uint8_t > read_i2cPrimitive(uint32_t number_of_bytes) const
Definition I2CSlave.cpp:155
#define TLOG_DEBUG(lvl,...)
Definition Logging.hpp:112
temp(obj)
Definition io.py:353

The documentation for this class was generated from the following files: