21#include <boost/lexical_cast.hpp>
22#include <boost/range/adaptor/map.hpp>
23#include <boost/range/algorithm/copy.hpp>
24#include <boost/unordered/unordered_map.hpp>
34 : m_i2c_master(i2c_master)
35 , m_i2c_device_address(i2c_device_address)
48 return m_i2c_master->read_i2c(i2c_device_address, i2c_reg_address);
56 return m_i2c_master->read_i2c(m_i2c_device_address, i2c_reg_address);
64 return m_i2c_master->read_i2c(i2c_device_address, i2c_reg_address,
true);
72 return m_i2c_master->read_i2c(m_i2c_device_address, i2c_reg_address,
true);
79 uint32_t i2c_reg_address,
91 m_i2c_master->write_i2c(m_i2c_device_address, i2c_reg_address, data, send_stop);
98 uint32_t i2c_reg_address,
99 uint32_t number_of_words)
const
101 return m_i2c_master->read_i2cArray(i2c_device_address, i2c_reg_address, number_of_words);
109 return m_i2c_master->read_i2cArray(m_i2c_device_address, i2c_reg_address, number_of_words);
116 uint32_t i2c_reg_address,
117 uint32_t number_of_words)
const
119 return m_i2c_master->read_i2cArray(i2c_device_address, i2c_reg_address, number_of_words,
true);
127 return m_i2c_master->read_i2cArray(m_i2c_device_address, i2c_reg_address, number_of_words,
true);
134 uint32_t i2c_reg_address,
135 std::vector<uint8_t> data,
136 bool send_stop)
const
145 std::vector<uint8_t> data,
146 bool send_stop)
const
157 return m_i2c_master->read_i2cPrimitive(m_i2c_device_address, number_of_bytes);
165 m_i2c_master->write_i2cPrimitive(m_i2c_device_address, data, send_stop);
virtual void write_i2c(uint8_t i2c_device_address, uint32_t i2c_reg_address, uint8_t data, bool send_stop=true) const
virtual void write_i2cArray(uint8_t i2c_device_address, uint32_t i2c_reg_address, std::vector< uint8_t > data, bool send_stop=true) const
bool ping(uint8_t i2c_device_address) const
const I2CMasterNode * m_i2c_master
void write_i2cArray(uint32_t i2c_device_address, uint32_t i2c_reg_address, std::vector< uint8_t > data, bool send_stop=true) const
uint8_t read_i2c(uint32_t i2c_device_address, uint32_t i2c_reg_address) const
comodity functions
uint8_t read_i2c_atomic(uint32_t i2c_device_address, uint32_t i2c_reg_address) const
std::vector< uint8_t > read_i2cPrimitive(uint32_t number_of_bytes) const
uint8_t m_i2c_device_address
std::vector< uint8_t > read_i2cArray(uint32_t i2c_device_address, uint32_t i2c_reg_address, uint32_t number_of_words) const
void write_i2cPrimitive(const std::vector< uint8_t > &data, bool send_stop=true) const
std::string get_master_id() const
void write_i2c(uint32_t i2c_device_address, uint32_t i2c_reg_address, uint8_t data, bool send_stop=true) const
std::vector< uint8_t > read_i2cArray_atomic(uint32_t i2c_reg_address, uint32_t number_of_words) const
I2CSlave(const I2CMasterNode *i2c_master, uint8_t i2c_device_address)