esp32_Adafruit_BusIO/Adafruit_GenericDevice.cpp

50 lines
1.3 KiB
C++
Raw Normal View History

2025-01-08 03:03:15 +00:00
#include "Adafruit_GenericDevice.h"
2025-01-08 03:08:13 +00:00
Adafruit_GenericDevice::Adafruit_GenericDevice(
busio_genericdevice_read_t read_func,
busio_genericdevice_write_t write_func,
busio_genericdevice_readreg_t readreg_func,
busio_genericdevice_writereg_t writereg_func) {
_read_func = read_func;
_write_func = write_func;
_readreg_func = readreg_func;
_writereg_func = writereg_func;
_begun = false;
2025-01-08 03:03:15 +00:00
}
bool Adafruit_GenericDevice::begin(void) {
2025-01-08 03:08:13 +00:00
_begun = true;
return true;
2025-01-08 03:03:15 +00:00
}
bool Adafruit_GenericDevice::write(const uint8_t *buffer, size_t len) {
2025-01-08 03:08:13 +00:00
if (!_begun)
return false;
return _write_func(buffer, len);
2025-01-08 03:03:15 +00:00
}
bool Adafruit_GenericDevice::read(uint8_t *buffer, size_t len) {
2025-01-08 03:08:13 +00:00
if (!_begun)
return false;
return _read_func(buffer, len);
2025-01-08 03:03:15 +00:00
}
2025-01-08 03:08:13 +00:00
bool Adafruit_GenericDevice::readRegister(uint8_t *addr_buf, uint8_t addrsiz,
uint8_t *buf, uint16_t bufsiz) {
2025-01-08 03:03:15 +00:00
if (!_begun || !_readreg_func)
return false;
2025-01-08 03:08:13 +00:00
2025-01-08 03:03:15 +00:00
return _readreg_func(addr_buf, addrsiz, buf, bufsiz);
}
2025-01-08 03:08:13 +00:00
bool Adafruit_GenericDevice::writeRegister(uint8_t *addr_buf, uint8_t addrsiz,
const uint8_t *buf,
uint16_t bufsiz) {
2025-01-08 03:03:15 +00:00
if (!_begun || !_writereg_func)
return false;
2025-01-08 03:08:13 +00:00
2025-01-08 03:03:15 +00:00
return _writereg_func(addr_buf, addrsiz, buf, bufsiz);
}