SensorLib 0.5.0
Multi-platform sensor driver library for Arduino, PlatformIO, and ESP-IDF
Loading...
Searching...
No Matches
SensorCommWrapper.hpp
Go to the documentation of this file.
1
30#pragma once
31#include "SensorErr.hpp"
33#include "SensorCommBase.hpp"
34
36{
37public:
38 SensorCommWrapper() = default;
39
40 int readReg(uint8_t reg) const
41 {
43 return getComm()->readRegister(reg);
44 }
45
46 int readRegBuff(uint8_t reg, uint8_t *buf, size_t len) const
47 {
49 return getComm()->readRegister(reg, buf, len);
50 }
51
52 int readBuff(uint8_t *buf, size_t len) const
53 {
55 return getComm()->readBuffer(buf, len);
56 }
57
58 int writeReg(uint8_t reg, uint8_t val)
59 {
61 return getComm()->writeRegister(reg, val);
62 }
63
64 int writeRegBuff(uint8_t reg, uint8_t *buf, size_t len)
65 {
67 return getComm()->writeRegister(reg, buf, len);
68 }
69
70 int writeBuff(uint8_t *buf, size_t len)
71 {
73 return getComm()->writeBuffer(buf, len);
74 }
75
76 int writeThenRead(const uint8_t *write_buffer, size_t write_len,
77 uint8_t *read_buffer, size_t read_len)
78 {
80 return getComm()->writeThenRead(write_buffer, write_len, read_buffer, read_len);
81 }
82
83 bool setRegBit(uint8_t reg, uint8_t bit)
84 {
85 if (!ensureValid()) return false;
86 return getComm()->setRegisterBit(reg, bit);
87 }
88
89 bool clrRegBit(uint8_t reg, uint8_t bit)
90 {
91 if (!ensureValid()) return false;
92 return getComm()->clrRegisterBit(reg, bit);
93 }
94
95 bool getRegBit(uint8_t reg, uint8_t bit)
96 {
97 if (!ensureValid()) return false;
98 return getComm()->getRegisterBit(reg, bit);
99 }
100
101 int updateBits(uint8_t reg, uint8_t mask, uint8_t value_shifted)
102 {
104 return getComm()->updateBits(reg, mask, value_shifted);
105 }
106
107 void setAddress(uint8_t address)
108 {
109 if (!ensureValid()) return;
110 I2CParam params(I2CParam::I2C_SET_ADDR, address);
111 getComm()->setParams(params);
112 }
113
114 void setAck(bool enable)
115 {
116 if (!ensureValid()) return;
117 I2CParam params(I2CParam::I2C_SET_FLAG, enable);
118 getComm()->setParams(params);
119 }
120};
@license MIT License
@license MIT License
@license MIT License
@ SENSOR_ERR_NOT_INITIALIZED
Definition SensorErr.hpp:41
I2C communication parameters.
@ I2C_SET_ADDR
Set device address.
@ I2C_SET_FLAG
Set a generic flag (interpretation depends on driver)
virtual int writeThenRead(const uint8_t *write_buffer, size_t write_len, uint8_t *read_buffer, size_t read_len)=0
Perform a write followed by a read (e.g., for register‑based sensors).
virtual bool clrRegisterBit(const uint8_t reg, uint8_t bit)
Clear a specific bit in a register.
virtual int readBuffer(uint8_t *buf, size_t len)=0
Read bytes directly from the device (no register address sent).
virtual int writeBuffer(uint8_t *buffer, size_t len)=0
Write a buffer directly to the device (no register address).
virtual bool setRegisterBit(const uint8_t reg, uint8_t bit)
Set a specific bit in a register.
virtual void setParams(const CommParamsBase &params)=0
Apply communication parameters (e.g., I2C address, SPI settings).
virtual int updateBits(uint8_t reg, uint8_t mask, uint8_t value_shifted)
Update specific bits in a register.
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 bool getRegisterBit(const uint8_t reg, uint8_t bit)
Read the state of a specific bit in a register.
virtual SensorCommBase * getComm() const =0
virtual bool ensureValid() const =0
bool clrRegBit(uint8_t reg, uint8_t bit)
int writeBuff(uint8_t *buf, size_t len)
bool getRegBit(uint8_t reg, uint8_t bit)
int readReg(uint8_t reg) const
int writeRegBuff(uint8_t reg, uint8_t *buf, size_t len)
int writeReg(uint8_t reg, uint8_t val)
SensorCommWrapper()=default
int writeThenRead(const uint8_t *write_buffer, size_t write_len, uint8_t *read_buffer, size_t read_len)
void setAddress(uint8_t address)
int readRegBuff(uint8_t reg, uint8_t *buf, size_t len) const
int updateBits(uint8_t reg, uint8_t mask, uint8_t value_shifted)
bool setRegBit(uint8_t reg, uint8_t bit)
void setAck(bool enable)
int readBuff(uint8_t *buf, size_t len) const
char buf[64]