Skyward boardcore
Loading...
Searching...
No Matches
Boardcore::Sensor< Data > Class Template Referenceabstract

Base sensor class with has to be extended by any sensor driver. More...

#include <Sensor.h>

Inheritance diagram for Boardcore::Sensor< Data >:
Collaboration diagram for Boardcore::Sensor< Data >:

Public Types

using DataType = Data
 

Public Member Functions

 Sensor ()
 
 Sensor (Sensor &&other)
 
virtual ~Sensor ()
 
void sample () override
 Sample the sensor.
 
virtual Data getLastSample ()
 
- Public Member Functions inherited from Boardcore::AbstractSensor
virtual ~AbstractSensor ()
 
virtual bool init ()=0
 Initialize the sensor.
 
virtual bool selfTest ()=0
 Check if the sensor is working.
 
SensorErrors getLastError ()
 Get last error for debugging purposes. Avoid silent fails.
 

Protected Member Functions

virtual DataType sampleImpl ()=0
 Read a data sample from the sensor. In case of errors, the method should return the last available correct sample.
 

Protected Attributes

DataType lastSample
 
miosix::FastMutex mutex
 
- Protected Attributes inherited from Boardcore::AbstractSensor
SensorErrors lastError = SensorErrors::NO_ERRORS
 

Detailed Description

template<typename Data>
class Boardcore::Sensor< Data >

Base sensor class with has to be extended by any sensor driver.

A sensor driver can define a custom data structure extending any combination of base sensors data structures, defined in SensorData.h.

Definition at line 90 of file Sensor.h.

Member Typedef Documentation

◆ DataType

template<typename Data >
using Boardcore::Sensor< Data >::DataType = Data

Definition at line 93 of file Sensor.h.

Constructor & Destructor Documentation

◆ Sensor() [1/2]

template<typename Data >
Boardcore::Sensor< Data >::Sensor ( )
inline

Definition at line 110 of file Sensor.h.

◆ Sensor() [2/2]

template<typename Data >
Boardcore::Sensor< Data >::Sensor ( Sensor< Data > && other)
inline

Definition at line 112 of file Sensor.h.

◆ ~Sensor()

template<typename Data >
virtual Boardcore::Sensor< Data >::~Sensor ( )
inlinevirtual

Definition at line 114 of file Sensor.h.

Member Function Documentation

◆ getLastSample()

template<typename Data >
virtual Data Boardcore::Sensor< Data >::getLastSample ( )
inlinevirtual
Returns
last available sample from this sensor

Definition at line 131 of file Sensor.h.

◆ sample()

template<typename Data >
void Boardcore::Sensor< Data >::sample ( )
inlineoverridevirtual

Sample the sensor.

Implements Boardcore::AbstractSensor.

Definition at line 116 of file Sensor.h.

◆ sampleImpl()

template<typename Data >
virtual DataType Boardcore::Sensor< Data >::sampleImpl ( )
protectedpure virtual

Read a data sample from the sensor. In case of errors, the method should return the last available correct sample.

Returns
sensor data sample

Implemented in Boardcore::L3GD20, Boardcore::InternalADC, Boardcore::ADS1118, Boardcore::ADS131M04, Boardcore::ADS131M08, Boardcore::AnalogLoadCell, Boardcore::BatteryVoltageSensor, Boardcore::CurrentSensor, Boardcore::Pitot, Boardcore::AnalogPressureSensor< AnalogPressureData >, Boardcore::AnalogPressureSensor< HoneywellPressureData >, Boardcore::AnalogPressureSensor< HSCMAND015PAData >, Boardcore::AnalogPressureSensor< HSCMRNN015PAData >, Boardcore::AnalogPressureSensor< HSCMRNN030PAData >, Boardcore::AnalogPressureSensor< HSCMRNN160KAData >, Boardcore::AnalogPressureSensor< MPX5010Data >, Boardcore::AnalogPressureSensor< MPXH6115AData >, Boardcore::AnalogPressureSensor< MPXH6250AData >, Boardcore::AnalogPressureSensor< MPXH6400AData >, Boardcore::AnalogPressureSensor< MPXHZ6130AData >, Boardcore::AnalogPressureSensor< SSCDANN030PAAData >, Boardcore::AnalogPressureSensor< SSCDRRN015PDAData >, Boardcore::AnalogPressureSensor< SSCMRNN030PAData >, Boardcore::SoftwareDifferentialPressureSensor< FirstPressureData, SecondPressureData >, Boardcore::TrafagPressureSensor, Boardcore::TwoPointAnalogLoadCell, Boardcore::BME280, Boardcore::BME280I2C, Boardcore::BMP280, Boardcore::BMP280I2C, Boardcore::BMX160, Boardcore::BMX160WithCorrection, Boardcore::H3LIS331DL, Boardcore::HX711, Boardcore::LIS2MDL, Boardcore::LIS331HH, Boardcore::LIS3MDL, Boardcore::LPS22DF, Boardcore::LPS28DFW, Boardcore::LPS331AP, Boardcore::LSM6DSRX, Boardcore::MAX31855, Boardcore::MAX31856, Boardcore::MAX6675, Boardcore::MBLoadCell, Boardcore::MPU9250, Boardcore::MS5803, Boardcore::MS5803I2C, Boardcore::ND015A, Boardcore::ND015D, Boardcore::RotatedIMU, Boardcore::UBXGPSSerial, Boardcore::UBXGPSSpi, Boardcore::VN100Serial, Boardcore::VN100Spi, and Boardcore::VN300.

Member Data Documentation

◆ lastSample

template<typename Data >
DataType Boardcore::Sensor< Data >::lastSample
protected

Definition at line 96 of file Sensor.h.

◆ mutex

template<typename Data >
miosix::FastMutex Boardcore::Sensor< Data >::mutex
protected

Definition at line 107 of file Sensor.h.


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