SensorLib 0.5.0
Multi-platform sensor driver library for Arduino, PlatformIO, and ESP-IDF
Loading...
Searching...
No Matches
SensorCommCustom Class Reference

#include <SensorCommCustom.hpp>

Inheritance diagram for SensorCommCustom:
[legend]

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 &params) 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)
 

Detailed Description

Definition at line 34 of file SensorCommCustom.hpp.

Member Typedef Documentation

◆ CustomCallback

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.

Constructor & Destructor Documentation

◆ SensorCommCustom()

SensorCommCustom::SensorCommCustom ( CustomCallback  callback,
uint8_t  addr 
)
inline

Definition at line 39 of file SensorCommCustom.hpp.

Member Function Documentation

◆ deinit()

void SensorCommCustom::deinit ( )
inlineoverridevirtual

Deinitialise the communication interface (close device, etc.).

Implements SensorCommBase.

Definition at line 46 of file SensorCommCustom.hpp.

◆ init()

bool SensorCommCustom::init ( )
inlineoverridevirtual

Initialise the communication interface (open device, etc.).

Returns
true if successful, false otherwise.

Implements SensorCommBase.

Definition at line 41 of file SensorCommCustom.hpp.

◆ readBuffer()

int SensorCommCustom::readBuffer ( uint8_t *  buf,
size_t  len 
)
inlineoverridevirtual

Read bytes directly from the device (no register address sent).

Parameters
bufDestination buffer.
lenNumber of bytes to read.
Returns
int Number of bytes read on success, negative error code otherwise.

Implements SensorCommBase.

Definition at line 66 of file SensorCommCustom.hpp.

References buf.

◆ readRegister()

int SensorCommCustom::readRegister ( const uint8_t  reg,
uint8_t *  buf,
size_t  len 
)
inlineoverridevirtual

Read multiple bytes from a register into a buffer.

Parameters
regRegister address.
bufDestination buffer.
lenNumber of bytes to read.
Returns
int Number of bytes read on success, negative error code otherwise.

Implements SensorCommBase.

Definition at line 75 of file SensorCommCustom.hpp.

References buf.

◆ setParams()

void SensorCommCustom::setParams ( const CommParamsBase params)
inlineoverridevirtual

Apply communication parameters (e.g., I2C address, SPI settings).

Parameters
paramsA 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.

◆ writeBuffer()

int SensorCommCustom::writeBuffer ( uint8_t *  buffer,
size_t  len 
)
inlinevirtual

Write a buffer directly to the device (no register address).

Parameters
bufferSource buffer.
lenNumber of bytes to write.
Returns
int Number of bytes written on success, negative error code otherwise.

Implements SensorCommBase.

Definition at line 57 of file SensorCommCustom.hpp.

Referenced by writeThenRead().

◆ writeRegister()

int SensorCommCustom::writeRegister ( const uint8_t  reg,
uint8_t *  buf,
size_t  len 
)
inlineoverridevirtual

Write multiple bytes to a register.

Parameters
regRegister address.
bufSource buffer containing data to write.
lenNumber of bytes to write.
Returns
int Number of bytes written on success, negative error code otherwise.

Implements SensorCommBase.

Definition at line 48 of file SensorCommCustom.hpp.

References buf.

◆ writeThenRead()

int SensorCommCustom::writeThenRead ( const uint8_t *  write_buffer,
size_t  write_len,
uint8_t *  read_buffer,
size_t  read_len 
)
inlineoverridevirtual

Perform a write followed by a read (e.g., for register‑based sensors).

Parameters
write_bufferData to write (usually register address + optional command).
write_lenLength of write buffer.
read_bufferBuffer to store read data.
read_lenNumber of bytes to read.
Returns
int Number of bytes read on success, negative error code otherwise.

Implements SensorCommBase.

Definition at line 84 of file SensorCommCustom.hpp.

References writeBuffer().


The documentation for this class was generated from the following file: