Skyward boardcore
|
Base sensor class with has to be extended by any sensor driver. More...
#include <Sensor.h>
Public Types | |
using | DataType = Data |
Public Member Functions | |
Sensor () | |
Sensor (Sensor &&other) | |
virtual | ~Sensor () |
void | sample () override |
Sample the sensor. | |
virtual Data | getLastSample () |
![]() | |
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 |
![]() | |
SensorErrors | lastError = SensorErrors::NO_ERRORS |
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
.
using Boardcore::Sensor< Data >::DataType = Data |
|
inline |
|
inline |
|
inlinevirtual |
|
inlinevirtual |
|
inlineoverridevirtual |
|
protectedpure virtual |
Read a data sample from the sensor. In case of errors, the method should return the last available correct 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.
|
protected |
|
protected |