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

#include <I2CSlave.hpp>

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

Public Member Functions

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
 

Protected Member Functions

 I2CSlave (const I2CMasterNode *i2c_master, uint8_t i2c_device_address)
 

Private Attributes

const I2CMasterNodem_i2c_master
 
uint8_t m_i2c_device_address
 

Friends

class I2CMasterNode
 

Detailed Description

Definition at line 41 of file I2CSlave.hpp.

Constructor & Destructor Documentation

◆ ~I2CSlave()

I2CSlave::~I2CSlave ( )
virtual

Definition at line 40 of file I2CSlave.cpp.

40{}

◆ I2CSlave()

I2CSlave::I2CSlave ( const I2CMasterNode * i2c_master,
uint8_t i2c_device_address )
protected

Definition at line 33 of file I2CSlave.cpp.

34 : m_i2c_master(i2c_master)
35 , m_i2c_device_address(i2c_device_address)
36{}
const I2CMasterNode * m_i2c_master
Definition I2CSlave.hpp:92

Member Function Documentation

◆ get_i2c_address()

uint8_t dunedaq::timing::I2CSlave::get_i2c_address ( ) const
inline

Definition at line 47 of file I2CSlave.hpp.

47{ return m_i2c_device_address; } // NOLINT(build/unsigned)

◆ get_master_id()

std::string I2CSlave::get_master_id ( ) const

Definition at line 179 of file I2CSlave.cpp.

180{
181 return m_i2c_master->getId();
182}

◆ ping()

bool I2CSlave::ping ( ) const

Definition at line 171 of file I2CSlave.cpp.

172{
174}
bool ping(uint8_t i2c_device_address) const

◆ read_i2c() [1/2]

uint8_t I2CSlave::read_i2c ( uint32_t i2c_device_address,
uint32_t i2c_reg_address ) const

comodity functions

Definition at line 46 of file I2CSlave.cpp.

47{
48 return m_i2c_master->read_i2c(i2c_device_address, i2c_reg_address);
49}
virtual uint8_t read_i2c(uint8_t i2c_device_address, uint32_t i2c_reg_address, bool atomic=false) const
commodity functions

◆ read_i2c() [2/2]

uint8_t I2CSlave::read_i2c ( uint32_t i2c_reg_address) const

Definition at line 54 of file I2CSlave.cpp.

55{
56 return m_i2c_master->read_i2c(m_i2c_device_address, i2c_reg_address);
57}

◆ read_i2c_atomic() [1/2]

uint8_t I2CSlave::read_i2c_atomic ( uint32_t i2c_device_address,
uint32_t i2c_reg_address ) const

Definition at line 62 of file I2CSlave.cpp.

63{
64 return m_i2c_master->read_i2c(i2c_device_address, i2c_reg_address, true);
65}

◆ read_i2c_atomic() [2/2]

uint8_t I2CSlave::read_i2c_atomic ( uint32_t i2c_reg_address) const

Definition at line 70 of file I2CSlave.cpp.

71{
72 return m_i2c_master->read_i2c(m_i2c_device_address, i2c_reg_address, true);
73}

◆ read_i2cArray() [1/2]

std::vector< uint8_t > I2CSlave::read_i2cArray ( uint32_t i2c_device_address,
uint32_t i2c_reg_address,
uint32_t number_of_words ) const

Definition at line 97 of file I2CSlave.cpp.

100{
101 return m_i2c_master->read_i2cArray(i2c_device_address, i2c_reg_address, number_of_words);
102}
virtual std::vector< uint8_t > read_i2cArray(uint8_t i2c_device_address, uint32_t i2c_reg_address, uint32_t number_of_words, bool atomic=false) const

◆ read_i2cArray() [2/2]

std::vector< uint8_t > I2CSlave::read_i2cArray ( uint32_t i2c_reg_address,
uint32_t number_of_words ) const

Definition at line 107 of file I2CSlave.cpp.

108{
109 return m_i2c_master->read_i2cArray(m_i2c_device_address, i2c_reg_address, number_of_words);
110}

◆ read_i2cArray_atomic() [1/2]

std::vector< uint8_t > I2CSlave::read_i2cArray_atomic ( uint32_t i2c_device_address,
uint32_t i2c_reg_address,
uint32_t number_of_words ) const

Definition at line 115 of file I2CSlave.cpp.

118{
119 return m_i2c_master->read_i2cArray(i2c_device_address, i2c_reg_address, number_of_words, true);
120}

◆ read_i2cArray_atomic() [2/2]

std::vector< uint8_t > I2CSlave::read_i2cArray_atomic ( uint32_t i2c_reg_address,
uint32_t number_of_words ) const

Definition at line 125 of file I2CSlave.cpp.

126{
127 return m_i2c_master->read_i2cArray(m_i2c_device_address, i2c_reg_address, number_of_words, true);
128}

◆ read_i2cPrimitive()

std::vector< uint8_t > I2CSlave::read_i2cPrimitive ( uint32_t number_of_bytes) const

Definition at line 155 of file I2CSlave.cpp.

156{
157 return m_i2c_master->read_i2cPrimitive(m_i2c_device_address, number_of_bytes);
158}
virtual std::vector< uint8_t > read_i2cPrimitive(uint8_t i2c_device_address, uint32_t number_of_bytes) const

◆ write_i2c() [1/2]

void I2CSlave::write_i2c ( uint32_t i2c_device_address,
uint32_t i2c_reg_address,
uint8_t data,
bool send_stop = true ) const

Definition at line 78 of file I2CSlave.cpp.

82{
83 m_i2c_master->write_i2c(i2c_device_address, i2c_reg_address, data, send_stop);
84}
virtual void write_i2c(uint8_t i2c_device_address, uint32_t i2c_reg_address, uint8_t data, bool send_stop=true) const

◆ write_i2c() [2/2]

void I2CSlave::write_i2c ( uint32_t i2c_reg_address,
uint8_t data,
bool send_stop = true ) const

Definition at line 89 of file I2CSlave.cpp.

90{
91 m_i2c_master->write_i2c(m_i2c_device_address, i2c_reg_address, data, send_stop);
92}

◆ write_i2cArray() [1/2]

void I2CSlave::write_i2cArray ( uint32_t i2c_device_address,
uint32_t i2c_reg_address,
std::vector< uint8_t > data,
bool send_stop = true ) const

Definition at line 133 of file I2CSlave.cpp.

137{
138 m_i2c_master->write_i2cArray(i2c_device_address, i2c_reg_address, data, send_stop);
139}
virtual void write_i2cArray(uint8_t i2c_device_address, uint32_t i2c_reg_address, std::vector< uint8_t > data, bool send_stop=true) const

◆ write_i2cArray() [2/2]

void I2CSlave::write_i2cArray ( uint32_t i2c_reg_address,
std::vector< uint8_t > data,
bool send_stop = true ) const

Definition at line 144 of file I2CSlave.cpp.

147{
148 m_i2c_master->write_i2cArray(m_i2c_device_address, i2c_reg_address, data, send_stop);
149}

◆ write_i2cPrimitive()

void I2CSlave::write_i2cPrimitive ( const std::vector< uint8_t > & data,
bool send_stop = true ) const

Definition at line 163 of file I2CSlave.cpp.

164{
166}
virtual void write_i2cPrimitive(uint8_t i2c_device_address, const std::vector< uint8_t > &data, bool send_stop=true) const

Friends And Related Symbol Documentation

◆ I2CMasterNode

friend class I2CMasterNode
friend

Definition at line 97 of file I2CSlave.hpp.

Member Data Documentation

◆ m_i2c_device_address

uint8_t dunedaq::timing::I2CSlave::m_i2c_device_address
private

Definition at line 95 of file I2CSlave.hpp.

◆ m_i2c_master

const I2CMasterNode* dunedaq::timing::I2CSlave::m_i2c_master
private

Definition at line 92 of file I2CSlave.hpp.


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