27 lines
699 B
C
27 lines
699 B
C
|
#include <Wire.h>
|
||
|
|
||
|
#ifndef Adafruit_I2CDevice_h
|
||
|
#define Adafruit_I2CDevice_h
|
||
|
|
||
|
///< The class which defines how we will talk to this device over I2C
|
||
|
class Adafruit_I2CDevice {
|
||
|
public:
|
||
|
Adafruit_I2CDevice(uint8_t addr, TwoWire *theWire=&Wire);
|
||
|
uint8_t address(void);
|
||
|
bool begin(void);
|
||
|
bool detected(void);
|
||
|
|
||
|
bool read(uint8_t *buffer, size_t len, bool stop=true);
|
||
|
bool write(uint8_t *buffer, size_t len, bool stop=true, uint8_t *prefix_buffer=NULL, size_t prefix_len=0);
|
||
|
bool write_then_read(uint8_t *write_buffer, size_t write_len, uint8_t *read_buffer, size_t read_len, bool stop=false);
|
||
|
|
||
|
|
||
|
private:
|
||
|
uint8_t _addr;
|
||
|
TwoWire *_wire;
|
||
|
bool _begun;
|
||
|
|
||
|
};
|
||
|
|
||
|
#endif // Adafruit_I2CDevice_h
|