1 #include <linux/i2c-dev.h> 15 sprintf(filename,
"/dev/i2c-%d", bus);
17 fd = open(filename, O_RDWR);
20 ROS_FATAL(
"Failed to open I2C bus %d", bus);
24 int rc = ioctl(
fd, I2C_SLAVE, addr);
26 ROS_FATAL(
"Failed to select I2C device with address 0x%02x", addr);
41 if (write(
fd, ®,
sizeof(reg)) < 0) {
45 return read(
fd, pdata, count);
58 *pdata = ntohs(*pdata);
64 uint8_t buf[count +
sizeof(reg)];
68 memcpy(buf, ®,
sizeof(reg));
69 memcpy(buf +
sizeof(reg), pdata, count);
71 return write(
fd, buf, count +
sizeof(reg)) > 0;
bool i2c_writeRegisterByte(uint16_t reg, uint8_t value)
void i2c_setup(uint8_t bus, uint8_t addr)
bool i2c_readRegisterMulti(uint16_t reg, size_t count, void *pdata)
bool i2c_readRegisterByte(int reg, uint8_t *pdata)
ROSCPP_DECL void shutdown()
bool i2c_writeRegisterMulti(uint16_t reg, size_t count, void *pdata)
bool i2c_writeRegisterWord(uint16_t reg, uint16_t value)
bool i2c_readRegisterWord(uint16_t reg, uint16_t *pdata)
unsigned short uint16_t
Typedef defining 16 bit unsigned short type. The developer should modify this to suit the platform be...
unsigned char uint8_t
Typedef defining 8 bit unsigned char type. The developer should modify this to suit the platform bein...