Adafruit Bus IO Library
Adafruit_GenericDevice.h
1 #ifndef ADAFRUIT_GENERICDEVICE_H
2 #define ADAFRUIT_GENERICDEVICE_H
3 
4 #include <Arduino.h>
5 
6 typedef bool (*busio_genericdevice_read_t)(void *obj, uint8_t *buffer,
7  size_t len);
8 typedef bool (*busio_genericdevice_write_t)(void *obj, const uint8_t *buffer,
9  size_t len);
10 typedef bool (*busio_genericdevice_readreg_t)(void *obj, uint8_t *addr_buf,
11  uint8_t addrsiz, uint8_t *data,
12  uint16_t datalen);
13 typedef bool (*busio_genericdevice_writereg_t)(void *obj, uint8_t *addr_buf,
14  uint8_t addrsiz,
15  const uint8_t *data,
16  uint16_t datalen);
17 
22 public:
24  void *obj, busio_genericdevice_read_t read_func,
25  busio_genericdevice_write_t write_func,
26  busio_genericdevice_readreg_t readreg_func = nullptr,
27  busio_genericdevice_writereg_t writereg_func = nullptr);
28 
29  bool begin(void);
30 
31  bool read(uint8_t *buffer, size_t len);
32  bool write(const uint8_t *buffer, size_t len);
33  bool readRegister(uint8_t *addr_buf, uint8_t addrsiz, uint8_t *buf,
34  uint16_t bufsiz);
35  bool writeRegister(uint8_t *addr_buf, uint8_t addrsiz, const uint8_t *buf,
36  uint16_t bufsiz);
37 
38 protected:
40  busio_genericdevice_read_t _read_func;
42  busio_genericdevice_write_t _write_func;
44  busio_genericdevice_readreg_t _readreg_func;
46  busio_genericdevice_writereg_t _writereg_func;
47 
48  bool _begun;
49 
51 private:
52  void *_obj;
53 };
54 
55 #endif // ADAFRUIT_GENERICDEVICE_H
bool read(uint8_t *buffer, size_t len)
Read data into a buffer.
Definition: Adafruit_GenericDevice.cpp:51
busio_genericdevice_read_t _read_func
Function pointer for reading raw data from the device.
Definition: Adafruit_GenericDevice.h:40
bool writeRegister(uint8_t *addr_buf, uint8_t addrsiz, const uint8_t *buf, uint16_t bufsiz)
Write to a register location.
Definition: Adafruit_GenericDevice.cpp:76
bool begin(void)
Simple begin function (doesn&#39;t do much at this time)
Definition: Adafruit_GenericDevice.cpp:32
bool _begun
Definition: Adafruit_GenericDevice.h:48
busio_genericdevice_readreg_t _readreg_func
Function pointer for reading a &#39;register&#39; from the device.
Definition: Adafruit_GenericDevice.h:44
bool readRegister(uint8_t *addr_buf, uint8_t addrsiz, uint8_t *buf, uint16_t bufsiz)
Read from a register location.
Definition: Adafruit_GenericDevice.cpp:63
busio_genericdevice_write_t _write_func
Function pointer for writing raw data to the device.
Definition: Adafruit_GenericDevice.h:42
busio_genericdevice_writereg_t _writereg_func
Function pointer for writing a &#39;register&#39; to the device.
Definition: Adafruit_GenericDevice.h:46
Class for communicating with a device via generic read/write functions.
Definition: Adafruit_GenericDevice.h:21
bool write(const uint8_t *buffer, size_t len)
Write a buffer of data.
Definition: Adafruit_GenericDevice.cpp:41
Adafruit_GenericDevice(void *obj, busio_genericdevice_read_t read_func, busio_genericdevice_write_t write_func, busio_genericdevice_readreg_t readreg_func=nullptr, busio_genericdevice_writereg_t writereg_func=nullptr)
Create a Generic device with the provided read/write functions.
Definition: Adafruit_GenericDevice.cpp:16