Skyward boardcore
Loading...
Searching...
No Matches
Boardcore::BMX160 Class Reference

BMX160 Driver. More...

#include <BMX160.h>

Inheritance diagram for Boardcore::BMX160:
Collaboration diagram for Boardcore::BMX160:

Public Types

enum  BMX160Errors : uint8_t { INVALID_FIFO_DATA }
 BMX160 Custom errors. More...
 
- Public Types inherited from Boardcore::Sensor< Data >
using DataType = Data
 

Public Member Functions

 BMX160 (SPIBusInterface &bus, miosix::GpioPin cs, BMX160Config config={})
 BMX160 Constructor.
 
 BMX160 (SPIBusInterface &bus, miosix::GpioPin cs, BMX160Config config, SPIBusConfig busConfig)
 BMX160 Constructor.
 
bool init () override
 Initialize the driver.
 
bool selfTest () override
 Perform selftest on the device.
 
BMX160Data sampleImpl () override
 Gather data from FIFO/data registers and temperature sensor.
 
BMX160Temperature getTemperature ()
 Get last read temperature.
 
BMX160FifoStats getFifoStats ()
 Retrieve last fifo stats.
 
void IRQupdateTimestamp (uint64_t ts) override
 Sometimes the sensor pulls down the interrupt pin while reading data. We override this method and update the timestamps only if we are not still reading the fifo (.
 
- Public Member Functions inherited from Boardcore::SensorFIFO< BMX160Data, BMX160Defs::FIFO_SIZE >
 SensorFIFO ()
 
 SensorFIFO (SensorFIFO &&other)
 
const std::array< BMX160Data, FifoSize > getLastFifo (uint16_t &lastFifoSize)
 
- Public Member Functions inherited from Boardcore::Sensor< Data >
 Sensor ()
 
 Sensor (Sensor &&other)
 
virtual ~Sensor ()
 
void sample () override
 Sample the sensor.
 
virtual Data getLastSample ()
 
- Public Member Functions inherited from Boardcore::AbstractSensor
virtual ~AbstractSensor ()
 
SensorErrors getLastError ()
 Get last error for debugging purposes. Avoid silent fails.
 

Additional Inherited Members

- Protected Attributes inherited from Boardcore::SensorFIFO< BMX160Data, BMX160Defs::FIFO_SIZE >
std::array< BMX160Data, FifoSize > lastFifo
 
uint16_t lastFifoLevel
 
uint64_t lastInterruptTimestamp
 
uint64_t interruptTimestampDelta
 
- Protected Attributes inherited from Boardcore::Sensor< Data >
DataType lastSample
 
miosix::FastMutex mutex
 
- Protected Attributes inherited from Boardcore::AbstractSensor
SensorErrors lastError = SensorErrors::NO_ERRORS
 

Detailed Description

BMX160 Driver.

Definition at line 44 of file BMX160.h.

Member Enumeration Documentation

◆ BMX160Errors

BMX160 Custom errors.

Enumerator
INVALID_FIFO_DATA 

The fifo contained invalid data.

Definition at line 50 of file BMX160.h.

Constructor & Destructor Documentation

◆ BMX160() [1/2]

Boardcore::BMX160::BMX160 ( SPIBusInterface & bus,
miosix::GpioPin cs,
BMX160Config config = {} )

BMX160 Constructor.

Parameters
busSPI bus
csSPI Chip Select pin
configBMX160 configuration

Definition at line 31 of file BMX160.cpp.

◆ BMX160() [2/2]

Boardcore::BMX160::BMX160 ( SPIBusInterface & bus,
miosix::GpioPin cs,
BMX160Config config,
SPIBusConfig busConfig )

BMX160 Constructor.

Parameters
busSPI bus
csSPI Chip Select pin
configBMX160 configuration
busConfigSPI bus configuration

Definition at line 40 of file BMX160.cpp.

Member Function Documentation

◆ getFifoStats()

BMX160FifoStats Boardcore::BMX160::getFifoStats ( )

Retrieve last fifo stats.

Definition at line 169 of file BMX160.cpp.

◆ getTemperature()

BMX160Temperature Boardcore::BMX160::getTemperature ( )

Get last read temperature.

Definition at line 161 of file BMX160.cpp.

◆ init()

bool Boardcore::BMX160::init ( )
overridevirtual

Initialize the driver.

Implements Boardcore::AbstractSensor.

Definition at line 49 of file BMX160.cpp.

◆ IRQupdateTimestamp()

void Boardcore::BMX160::IRQupdateTimestamp ( uint64_t ts)
overridevirtual

Sometimes the sensor pulls down the interrupt pin while reading data. We override this method and update the timestamps only if we are not still reading the fifo (.

See also
{irqEnabled} ).

Reimplemented from Boardcore::SensorFIFO< BMX160Data, BMX160Defs::FIFO_SIZE >.

Definition at line 105 of file BMX160.cpp.

◆ sampleImpl()

BMX160Data Boardcore::BMX160::sampleImpl ( )
overridevirtual

Gather data from FIFO/data registers and temperature sensor.

Implements Boardcore::Sensor< Data >.

Definition at line 112 of file BMX160.cpp.

◆ selfTest()

bool Boardcore::BMX160::selfTest ( )
overridevirtual

Perform selftest on the device.

Implements Boardcore::AbstractSensor.

Definition at line 84 of file BMX160.cpp.


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