|
SensorLib 0.5.0
Multi-platform sensor driver library for Arduino, PlatformIO, and ESP-IDF
|
#include <SensorCommCustom.hpp>
Public Types | |
| using | CustomCallback = bool(*)(uint8_t addr, uint8_t reg, uint8_t *buf, size_t len, bool writeReg, bool isWrite) |
Public Member Functions | |
| SensorCommCustom (CustomCallback callback, uint8_t addr) | |
| bool | init () override |
| Initialise the communication interface (open device, etc.). | |
| void | deinit () override |
| Deinitialise the communication interface (close device, etc.). | |
| int | writeRegister (const uint8_t reg, uint8_t *buf, size_t len) override |
| Write multiple bytes to a register. | |
| int | writeBuffer (uint8_t *buffer, size_t len) |
| Write a buffer directly to the device (no register address). | |
| int | readBuffer (uint8_t *buf, size_t len) override |
| Read bytes directly from the device (no register address sent). | |
| int | readRegister (const uint8_t reg, uint8_t *buf, size_t len) override |
| Read multiple bytes from a register into a buffer. | |
| int | writeThenRead (const uint8_t *write_buffer, size_t write_len, uint8_t *read_buffer, size_t read_len) override |
| Perform a write followed by a read (e.g., for register‑based sensors). | |
| void | setParams (const CommParamsBase ¶ms) override |
| Apply communication parameters (e.g., I2C address, SPI settings). | |
Public Member Functions inherited from SensorCommBase | |
| virtual int | readRegister (const uint8_t reg) |
| Read a single byte from a register. | |
| virtual int | writeRegister (const uint8_t reg, uint8_t val) |
| Write a single byte to a register. | |
| virtual int | writeRegister (const uint8_t reg, uint8_t norVal, uint8_t orVal) |
| Modify a register using a NOR and OR mask. | |
| virtual bool | setRegisterBit (const uint8_t reg, uint8_t bit) |
| Set a specific bit in a register. | |
| virtual bool | clrRegisterBit (const uint8_t reg, uint8_t bit) |
| Clear a specific bit in a register. | |
| virtual bool | getRegisterBit (const uint8_t reg, uint8_t bit) |
| Read the state of a specific bit in a register. | |
| virtual int | updateBits (uint8_t reg, uint8_t mask, uint8_t value_shifted) |
| Update specific bits in a register. | |
| virtual | ~SensorCommBase ()=default |
Public Member Functions inherited from SensorErrorMixin | |
| SENSOR_ERROR_CODE | lastError () const |
| void | clearError () |
Additional Inherited Members | |
Protected Member Functions inherited from SensorErrorMixin | |
| void | setError (SENSOR_ERROR_CODE e) |
| SENSOR_ERROR_CODE | setErrorAndReturn (SENSOR_ERROR_CODE e) |
Definition at line 34 of file SensorCommCustom.hpp.
| using SensorCommCustom::CustomCallback = bool(*)(uint8_t addr, uint8_t reg, uint8_t *buf, size_t len, bool writeReg, bool isWrite) |
Definition at line 37 of file SensorCommCustom.hpp.
|
inline |
Definition at line 39 of file SensorCommCustom.hpp.
|
inlineoverridevirtual |
Deinitialise the communication interface (close device, etc.).
Implements SensorCommBase.
Definition at line 46 of file SensorCommCustom.hpp.
|
inlineoverridevirtual |
Initialise the communication interface (open device, etc.).
Implements SensorCommBase.
Definition at line 41 of file SensorCommCustom.hpp.
|
inlineoverridevirtual |
Read bytes directly from the device (no register address sent).
| buf | Destination buffer. |
| len | Number of bytes to read. |
Implements SensorCommBase.
Definition at line 66 of file SensorCommCustom.hpp.
References buf.
|
inlineoverridevirtual |
Read multiple bytes from a register into a buffer.
| reg | Register address. |
| buf | Destination buffer. |
| len | Number of bytes to read. |
Implements SensorCommBase.
Definition at line 75 of file SensorCommCustom.hpp.
References buf.
|
inlineoverridevirtual |
Apply communication parameters (e.g., I2C address, SPI settings).
| params | A CommParamsBase derived object (I2CParam or SPIParam). |
Implements SensorCommBase.
Definition at line 94 of file SensorCommCustom.hpp.
References I2CParam::getType(), I2CParam::I2C_SET_ADDR, and I2CParam::I2C_SET_FLAG.
|
inlinevirtual |
Write a buffer directly to the device (no register address).
| buffer | Source buffer. |
| len | Number of bytes to write. |
Implements SensorCommBase.
Definition at line 57 of file SensorCommCustom.hpp.
Referenced by writeThenRead().
|
inlineoverridevirtual |
Write multiple bytes to a register.
| reg | Register address. |
| buf | Source buffer containing data to write. |
| len | Number of bytes to write. |
Implements SensorCommBase.
Definition at line 48 of file SensorCommCustom.hpp.
References buf.
|
inlineoverridevirtual |
Perform a write followed by a read (e.g., for register‑based sensors).
| write_buffer | Data to write (usually register address + optional command). |
| write_len | Length of write buffer. |
| read_buffer | Buffer to store read data. |
| read_len | Number of bytes to read. |
Implements SensorCommBase.
Definition at line 84 of file SensorCommCustom.hpp.
References writeBuffer().