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
 
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
 
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:85

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 145 of file I2CSlave.cpp.

146{
147 return m_i2c_master->getId();
148}

◆ ping()

bool I2CSlave::ping ( ) const

Definition at line 137 of file I2CSlave.cpp.

138{
140}
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) 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_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 81 of file I2CSlave.cpp.

84{
85 return m_i2c_master->read_i2cArray(i2c_device_address, i2c_reg_address, number_of_words);
86}
virtual std::vector< uint8_t > read_i2cArray(uint8_t i2c_device_address, uint32_t i2c_reg_address, uint32_t number_of_words) 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 91 of file I2CSlave.cpp.

92{
93 return m_i2c_master->read_i2cArray(m_i2c_device_address, i2c_reg_address, number_of_words);
94}

◆ read_i2cPrimitive()

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

Definition at line 121 of file I2CSlave.cpp.

122{
123 return m_i2c_master->read_i2cPrimitive(m_i2c_device_address, number_of_bytes);
124}
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 62 of file I2CSlave.cpp.

66{
67 m_i2c_master->write_i2c(i2c_device_address, i2c_reg_address, data, send_stop);
68}
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 73 of file I2CSlave.cpp.

74{
75 m_i2c_master->write_i2c(m_i2c_device_address, i2c_reg_address, data, send_stop);
76}

◆ 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 99 of file I2CSlave.cpp.

103{
104 m_i2c_master->write_i2cArray(i2c_device_address, i2c_reg_address, data, send_stop);
105}
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 110 of file I2CSlave.cpp.

113{
114 m_i2c_master->write_i2cArray(m_i2c_device_address, i2c_reg_address, data, send_stop);
115}

◆ write_i2cPrimitive()

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

Definition at line 129 of file I2CSlave.cpp.

130{
132}
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 90 of file I2CSlave.hpp.

Member Data Documentation

◆ m_i2c_device_address

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

Definition at line 88 of file I2CSlave.hpp.

◆ m_i2c_master

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

Definition at line 85 of file I2CSlave.hpp.


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