SensorLib 0.5.0
Multi-platform sensor driver library for Arduino, PlatformIO, and ESP-IDF
Loading...
Searching...
No Matches
AccelerometerBase.hpp
Go to the documentation of this file.
1
33#pragma once
34
35#include "SensorBase.hpp"
37
44class AccelerometerBase : public SensorBase<AccelerometerData>
45{
46protected:
53
57 virtual ~AccelerometerBase() = default;
58
59 // Delete copy operations
62
63public:
64 // Pure virtual interface functions
65
73 virtual bool readData(AccelerometerData &data) override = 0;
74
81 virtual bool isDataReady() override = 0;
82
89 virtual bool reset() override = 0;
90
97 virtual bool selfTest() override = 0;
98
106 virtual bool setFullScaleRange(AccelFullScaleRange range) = 0;
107
115 virtual bool setOutputDataRate(float data_rate_hz) = 0;
116
124 virtual bool setOperationMode(OperationMode mode) = 0;
125
126 // Virtual getter functions with default implementations
127
133 virtual float getFullScaleRange() const
134 {
135 return _config.range;
136 }
137
143 virtual float getOutputDataRate() const
144 {
145 return _config.sample_rate;
146 }
147
154 {
155 return _config.mode;
156 }
157};
@license MIT License
@license MIT License
SensorType
Enumeration of sensor types.
@ ACCELEROMETER
Accelerometer sensor.
OperationMode
Enumeration of sensor operation modes.
AccelFullScaleRange
Enumeration of accelerometer full-scale range settings.
Abstract base class for accelerometer implementations.
virtual OperationMode getOperationMode() const
Get current operation mode setting.
virtual bool setOutputDataRate(float data_rate_hz)=0
Set accelerometer output data rate.
virtual float getFullScaleRange() const
Get current full-scale range setting.
virtual ~AccelerometerBase()=default
Destroy the AccelerometerBase object.
virtual bool readData(AccelerometerData &data) override=0
Read accelerometer data.
AccelerometerBase & operator=(const AccelerometerBase &)=delete
virtual bool setOperationMode(OperationMode mode)=0
Set accelerometer operation mode.
virtual bool selfTest() override=0
Perform accelerometer self-test.
virtual bool isDataReady() override=0
Check if new accelerometer data is available.
AccelerometerBase()
Construct a new AccelerometerBase object.
AccelerometerBase(const AccelerometerBase &)=delete
virtual bool reset() override=0
Reset accelerometer to default state.
virtual bool setFullScaleRange(AccelFullScaleRange range)=0
Set accelerometer full-scale range.
virtual float getOutputDataRate() const
Get current output data rate setting.
Template base class for all sensor implementations.
SensorConfig _config
Current configuration.
Structure representing accelerometer data.
float sample_rate
Sample rate in Hz.
float range
Measurement range.
OperationMode mode
Operation mode.