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)
52 return (uint32_t)buf[0] |
53 (((uint32_t)buf[1]) << 8) |
54 (((uint32_t)buf[2]) << 16) |
55 (((uint32_t)buf[3]) << 24);
59 inline void writeByteToBuffer(uint8_t* buf, uint8_t data)
64 inline void writeByteToBuffer(uint8_t* buf, int8_t data)
66 writeByteToBuffer(buf, (uint8_t)data);
70 inline void writeIntToBuffer(uint8_t* buf, uint16_t data)
73 buf[1] = (data >> 8) & 0xFF;
76 inline void writeIntToBuffer(uint8_t* buf, int16_t data)
78 writeIntToBuffer(buf, (uint16_t)data);
82 inline void writeLongToBuffer(uint8_t* buf, uint32_t data)
85 buf[1] = (data >> 8) & 0xFF;
86 buf[2] = (data >> 16) & 0xFF;
87 buf[3] = (data >> 24) & 0xFF;
90 inline void writeLongToBuffer(uint8_t* buf, int32_t data)
92 writeLongToBuffer(buf, (uint32_t)data);
118 uint8_t*
readRegisters (uint8_t start_register, uint8_t bytes_to_read,
119 uint8_t* buffer = 0, uint8_t buffer_length = 0,
bool clear_buffer =
false);
125 uint8_t
readByte (uint8_t location);
137 uint32_t
readLong (uint8_t location);
146 char*
readString (uint8_t location, uint8_t bytes_to_read,
147 uint8_t* buffer = 0, uint8_t buffer_length = 0);
155 bool writeRegisters (uint8_t start_register, uint8_t bytes_to_write,
156 uint8_t* buffer = 0);
162 bool writeByte (uint8_t location, uint8_t data);
174 bool writeLong (uint8_t location, uint32_t data);
206 static bool b_initialized;
214 uint8_t _device_address;
215 uint8_t _write_error_code;
218 #endif // BASEI2CDEVICE_H uint8_t getAddress()
Definition: BaseI2CDevice.cpp:331
void initProtocol()
Definition: BaseI2CDevice.cpp:68
uint32_t readLong(uint8_t location)
Definition: BaseI2CDevice.cpp:162
bool writeLong(uint8_t location, uint32_t data)
Definition: BaseI2CDevice.cpp:241
char * getFirmwareVersion()
Definition: BaseI2CDevice.cpp:261
bool writeRegisters(uint8_t start_register, uint8_t bytes_to_write, uint8_t *buffer=0)
Definition: BaseI2CDevice.cpp:184
uint8_t readByte(uint8_t location)
Definition: BaseI2CDevice.cpp:146
char * getVendorID()
Definition: BaseI2CDevice.cpp:267
uint8_t getWriteErrorCode()
Definition: BaseI2CDevice.cpp:254
bool writeByte(uint8_t location, uint8_t data)
Definition: BaseI2CDevice.cpp:228
bool setAddress(uint8_t i2c_address)
Definition: BaseI2CDevice.cpp:325
bool writeInteger(uint8_t location, uint16_t data)
Definition: BaseI2CDevice.cpp:234
bool checkAddress()
Definition: BaseI2CDevice.cpp:299
char * readString(uint8_t location, uint8_t bytes_to_read, uint8_t *buffer=0, uint8_t buffer_length=0)
Definition: BaseI2CDevice.cpp:170
BaseI2CDevice(uint8_t i2c_address)
Definition: BaseI2CDevice.cpp:54
char * getDeviceID()
Definition: BaseI2CDevice.cpp:273
char * getFeatureSet()
Definition: BaseI2CDevice.cpp:281
static uint8_t * _buffer
Definition: BaseI2CDevice.h:204
int16_t readInteger(uint8_t location)
Definition: BaseI2CDevice.cpp:153
void setWriteErrorCode(uint8_t code)
Definition: BaseI2CDevice.cpp:287
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:84
This class implements hardware I2C protocol used by EVShield/NXShield on an Arduino.
Definition: BaseI2CDevice.h:98