SensorLib 0.5.0
Multi-platform sensor driver library for Arduino, PlatformIO, and ESP-IDF
Loading...
Searching...
No Matches
SensorBase< T > Class Template Referenceabstract

Template base class for all sensor implementations. More...

#include <SensorBase.hpp>

Public Member Functions

 SensorBase (const SensorBase &)=delete
 
SensorBaseoperator= (const SensorBase &)=delete
 
void setOffset (int16_t x, int16_t y, int16_t z)
 Set sensor calibration offsets.
 
float getSensitivity () const
 Get sensor sensitivity.
 
SensorInfo getSensorInfo () const
 Get sensor information.
 
virtual bool readData (T &data)=0
 Read data from sensor.
 
virtual bool isDataReady ()=0
 Check if new data is available.
 
virtual bool reset ()=0
 Reset sensor to default state.
 
virtual bool selfTest ()=0
 Perform sensor self-test.
 
virtual SensorConfig getConfig () const
 Get current sensor configuration.
 

Protected Member Functions

 SensorBase (SensorType sensor_type=SensorType::UNKNOWN)
 Construct a new SensorBase object.
 
virtual ~SensorBase ()=default
 Virtual destructor for proper polymorphic cleanup.
 

Protected Attributes

SensorConfig _config
 Current configuration.
 
SensorInfo _info
 Sensor information.
 
int16_t _x_offset
 
int16_t _y_offset
 
int16_t _z_offset
 
float _sensitivity
 

Detailed Description

template<typename T>
class SensorBase< T >

Template base class for all sensor implementations.

Template Parameters
TSensor data type (e.g., AccelerometerData, GyroscopeData)
Note
This is an abstract base class and cannot be instantiated directly. Derived classes must implement the pure virtual functions.
Warning
Constructor is protected to prevent direct instantiation

Definition at line 82 of file SensorBase.hpp.

Constructor & Destructor Documentation

◆ SensorBase() [1/2]

template<typename T >
SensorBase< T >::SensorBase ( SensorType  sensor_type = SensorType::UNKNOWN)
inlineprotected

Construct a new SensorBase object.

Parameters
sensor_typeType of sensor (default: UNKNOWN)
Note
Constructor is protected to prevent direct instantiation of abstract base class

Definition at line 92 of file SensorBase.hpp.

References SensorBase< T >::_info, and SensorInfo::type.

◆ ~SensorBase()

template<typename T >
virtual SensorBase< T >::~SensorBase ( )
protectedvirtualdefault

Virtual destructor for proper polymorphic cleanup.

◆ SensorBase() [2/2]

template<typename T >
SensorBase< T >::SensorBase ( const SensorBase< T > &  )
delete

Member Function Documentation

◆ getConfig()

template<typename T >
virtual SensorConfig SensorBase< T >::getConfig ( ) const
inlinevirtual

Get current sensor configuration.

Returns
SensorConfig Current configuration

Definition at line 181 of file SensorBase.hpp.

References SensorBase< T >::_config.

Referenced by setup().

◆ getSensitivity()

template<typename T >
float SensorBase< T >::getSensitivity ( ) const
inline

Get sensor sensitivity.

Returns
float Sensitivity value

Definition at line 126 of file SensorBase.hpp.

References SensorBase< T >::_sensitivity.

Referenced by loop(), and setup().

◆ getSensorInfo()

template<typename T >
SensorInfo SensorBase< T >::getSensorInfo ( ) const
inline

Get sensor information.

Returns
SensorInfo Sensor information structure

Definition at line 136 of file SensorBase.hpp.

References SensorBase< T >::_info.

Referenced by setup().

◆ isDataReady()

template<typename T >
virtual bool SensorBase< T >::isDataReady ( )
pure virtual

Check if new data is available.

Returns
true New data available
false No new data

Implemented in SensorBMA4XX, ImuAccelerometerAdapter, ImuGyroscopeAdapter, SensorBMM150, SensorQMC5883L, SensorQMC6309, SensorQSTMagnetic, AccelerometerBase, GyroscopeBase, and MagnetometerBase.

◆ operator=()

template<typename T >
SensorBase & SensorBase< T >::operator= ( const SensorBase< T > &  )
delete

◆ readData()

template<typename T >
virtual bool SensorBase< T >::readData ( T &  data)
pure virtual

Read data from sensor.

Parameters
dataReference to store read data
Returns
true Read successful
false Read failed

Implemented in SensorBMA4XX, ImuAccelerometerAdapter, AccelerometerBase, ImuGyroscopeAdapter, GyroscopeBase, SensorBMM150, SensorQMC5883L, SensorQMC6309, SensorQSTMagnetic, and MagnetometerBase.

◆ reset()

template<typename T >
virtual bool SensorBase< T >::reset ( )
pure virtual

Reset sensor to default state.

Returns
true Reset successful
false Reset failed

Implemented in SensorBMA4XX, ImuAccelerometerAdapter, ImuGyroscopeAdapter, SensorBMM150, SensorQMC5883L, SensorQMC6309, SensorQSTMagnetic, AccelerometerBase, GyroscopeBase, and MagnetometerBase.

◆ selfTest()

template<typename T >
virtual bool SensorBase< T >::selfTest ( )
pure virtual

Perform sensor self-test.

Returns
true Self-test passed
false Self-test failed

Implemented in SensorBMA4XX, ImuAccelerometerAdapter, ImuGyroscopeAdapter, SensorBMM150, SensorQMC5883L, SensorQMC6309, SensorQSTMagnetic, AccelerometerBase, GyroscopeBase, and MagnetometerBase.

◆ setOffset()

template<typename T >
void SensorBase< T >::setOffset ( int16_t  x,
int16_t  y,
int16_t  z 
)
inline

Set sensor calibration offsets.

Parameters
xX-axis offset
yY-axis offset
zZ-axis offset

Definition at line 114 of file SensorBase.hpp.

References SensorBase< T >::_x_offset, SensorBase< T >::_y_offset, SensorBase< T >::_z_offset, x, and y.

Referenced by calibrate().

Member Data Documentation

◆ _config

template<typename T >
SensorConfig SensorBase< T >::_config
protected

Current configuration.

Definition at line 197 of file SensorBase.hpp.

Referenced by SensorBase< T >::getConfig().

◆ _info

template<typename T >
SensorInfo SensorBase< T >::_info
protected

Sensor information.

Definition at line 198 of file SensorBase.hpp.

Referenced by SensorBase< T >::getSensorInfo(), and SensorBase< T >::SensorBase().

◆ _sensitivity

template<typename T >
float SensorBase< T >::_sensitivity
protected

Definition at line 202 of file SensorBase.hpp.

Referenced by SensorBase< T >::getSensitivity().

◆ _x_offset

template<typename T >
int16_t SensorBase< T >::_x_offset
protected

Definition at line 199 of file SensorBase.hpp.

Referenced by SensorBase< T >::setOffset().

◆ _y_offset

template<typename T >
int16_t SensorBase< T >::_y_offset
protected

Definition at line 200 of file SensorBase.hpp.

Referenced by SensorBase< T >::setOffset().

◆ _z_offset

template<typename T >
int16_t SensorBase< T >::_z_offset
protected

Definition at line 201 of file SensorBase.hpp.

Referenced by SensorBase< T >::setOffset().


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