31 #ifndef BASEI2CDEVICE_H
32 #define BASEI2CDEVICE_H
34 #if defined(ARDUINO) && ARDUINO >= 100
43 inline uint16_t readIntFromBuffer(uint8_t* buf)
45 return buf[0] | (buf[1] << 8);
49 inline uint32_t readLongFromBuffer(uint8_t* buf)
51 return buf[0] | (buf[1] << 8) | (buf[2] << 16) | (buf[3] << 24);
55 inline void writeByteToBuffer(uint8_t* buf, uint8_t data)
60 inline void writeByteToBuffer(uint8_t* buf, int8_t data)
62 writeByteToBuffer(buf, (uint8_t)data);
66 inline void writeIntToBuffer(uint8_t* buf, uint16_t data)
69 buf[1] = (data >> 8) & 0xFF;
72 inline void writeIntToBuffer(uint8_t* buf, int16_t data)
74 writeIntToBuffer(buf, (uint16_t)data);
78 inline void writeLongToBuffer(uint8_t* buf, uint32_t data)
81 buf[1] = (data >> 8) & 0xFF;
82 buf[2] = (data >> 16) & 0xFF;
83 buf[3] = (data >> 24) & 0xFF;
86 inline void writeLongToBuffer(uint8_t* buf, int32_t data)
88 writeLongToBuffer(buf, (uint32_t)data);
114 uint8_t*
readRegisters (uint8_t start_register, uint8_t bytes_to_read,
115 uint8_t* buffer = 0, uint8_t buffer_length = 0,
bool clear_buffer =
false);
121 uint8_t
readByte (uint8_t location);
133 uint32_t
readLong (uint8_t location);
142 char*
readString (uint8_t location, uint8_t bytes_to_read,
143 uint8_t* buffer = 0, uint8_t buffer_length = 0);
151 bool writeRegisters (uint8_t start_register, uint8_t bytes_to_write,
152 uint8_t* buffer = 0);
158 bool writeByte (uint8_t location, uint8_t data);
170 bool writeLong (uint8_t location, uint32_t data);
202 static bool b_initialized;
210 uint8_t _device_address;
211 uint8_t _write_error_code;
214 #endif // BASEI2CDEVICE_H
uint8_t getAddress()
Definition: BaseI2CDevice.cpp:292
void initProtocol()
Definition: BaseI2CDevice.cpp:53
uint32_t readLong(uint8_t location)
Definition: BaseI2CDevice.cpp:133
bool writeLong(uint8_t location, uint32_t data)
Definition: BaseI2CDevice.cpp:202
char * getFirmwareVersion()
Definition: BaseI2CDevice.cpp:222
bool writeRegisters(uint8_t start_register, uint8_t bytes_to_write, uint8_t *buffer=0)
Definition: BaseI2CDevice.cpp:155
uint8_t readByte(uint8_t location)
Definition: BaseI2CDevice.cpp:117
char * getVendorID()
Definition: BaseI2CDevice.cpp:228
uint8_t getWriteErrorCode()
Definition: BaseI2CDevice.cpp:215
bool writeByte(uint8_t location, uint8_t data)
Definition: BaseI2CDevice.cpp:189
bool setAddress(uint8_t i2c_address)
Definition: BaseI2CDevice.cpp:286
bool writeInteger(uint8_t location, uint16_t data)
Definition: BaseI2CDevice.cpp:195
bool checkAddress()
Definition: BaseI2CDevice.cpp:260
char * readString(uint8_t location, uint8_t bytes_to_read, uint8_t *buffer=0, uint8_t buffer_length=0)
Definition: BaseI2CDevice.cpp:141
BaseI2CDevice(uint8_t i2c_address)
Definition: BaseI2CDevice.cpp:39
char * getDeviceID()
Definition: BaseI2CDevice.cpp:234
char * getFeatureSet()
Definition: BaseI2CDevice.cpp:242
static uint8_t * _buffer
Definition: BaseI2CDevice.h:200
int16_t readInteger(uint8_t location)
Definition: BaseI2CDevice.cpp:124
void setWriteErrorCode(uint8_t code)
Definition: BaseI2CDevice.cpp:248
uint8_t * readRegisters(uint8_t start_register, uint8_t bytes_to_read, uint8_t *buffer=0, uint8_t buffer_length=0, bool clear_buffer=false)
Definition: BaseI2CDevice.cpp:65
This class implements hardware I2C protocol used by NXShield on an Arduino.
Definition: BaseI2CDevice.h:94