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);
63 uint32_t i2c_reg_address,
75 m_i2c_master->write_i2c(m_i2c_device_address, i2c_reg_address, data, send_stop);
82 uint32_t i2c_reg_address,
83 uint32_t number_of_words)
const
85 return m_i2c_master->read_i2cArray(i2c_device_address, i2c_reg_address, number_of_words);
93 return m_i2c_master->read_i2cArray(m_i2c_device_address, i2c_reg_address, number_of_words);
100 uint32_t i2c_reg_address,
101 std::vector<uint8_t> data,
102 bool send_stop)
const
111 std::vector<uint8_t> data,
112 bool send_stop)
const
123 return m_i2c_master->read_i2cPrimitive(m_i2c_device_address, number_of_bytes);
131 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
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
I2CSlave(const I2CMasterNode *i2c_master, uint8_t i2c_device_address)