AMS Advanced Air Mobility Sensors UG
Loading...
Searching...
No Matches
CMmc5983Driver Class Reference
Inheritance diagram for CMmc5983Driver:
CSoftwareComponent< CMmc5983Driver, 1U >

Public Member Functions

void Init () override
 
bool IsInitialized () override
 
void PollSensor (uint64_t uTimestamp)
 Poll the MMC5983 sensor.
 
void PollSensor ()
 A function overload that generates a timestamp without a data-ready interrupt.
 
- Public Member Functions inherited from CSoftwareComponent< CMmc5983Driver, 1U >
 CSoftwareComponent (CSoftwareComponent &)=delete
 
 CSoftwareComponent (CSoftwareComponent &&)=delete
 
CSoftwareComponentoperator= (const CSoftwareComponent &orOther)=delete
 
CSoftwareComponentoperator= (CSoftwareComponent &&orOther)=delete
 
virtual void Init ()=0
 
virtual bool IsInitialized ()=0
 

Private Types

enum class  EMeasurementMode {
  eSkip = 0x00 , e1Hz = 0x01 , e10Hz = 0x02 , e20Hz = 0x03 ,
  e50Hz = 0x04 , e100Hz = 0x05 , e200Hz = 0x06 , e1000Hz = 0x07
}
 An enum of measurement mode. More...
 
enum class  EBandwidth { e100Hz = 0x00 , e200Hz = 0x01 , e400Hz = 0x02 , e800Hz = 0x03 }
 An enum of bandwidth filter. More...
 

Private Member Functions

 CMmc5983Driver (CMmc5983Driver &)=delete
 
 CMmc5983Driver (CMmc5983Driver &&)=delete
 
CMmc5983Driveroperator= (const CMmc5983Driver &orOther)=delete
 
CMmc5983Driveroperator= (CMmc5983Driver &&orOther)=delete
 
 CMmc5983Driver ()=default
 
 ~CMmc5983Driver ()=default
 
void setSoftReset ()
 Full sensor reset.
 
void setBitSet ()
 Request SET function inductor coil integrated into chip See sensor datasheet for more information.
 
void setBitReset ()
 Request RESET function inductor coil integrated into chip See sensor datasheet for more information.
 
void setContinuousModeFrequency (EMeasurementMode eMeasurementMode)
 Set the Measurement Mode value and enable continuous mode.
 
void setFilterBandwidth (EBandwidth eBandwidth)
 Set the Filter Bandwidth value.
 
void setAutoSetReset ()
 Enable auto Set/Reset mode.
 
void getMeasurementXYZ (float &frValueX, float &frValueY, float &frValueZ)
 Get measured magnetic field vector.
 
float getTemperature ()
 Get the Temperature value.
 
uint8_t getProductID ()
 Get the Product ID value.
 
uint8_t getStatusRegValue ()
 Is the data ready to be read.
 
void readFromAddress (uint8_t *upBuffer, uint8_t uReadAddr, uint16_t uNumByteToRead)
 Read from address via SPI.
 
void writeToAddress (uint8_t uWriteAddr, uint8_t uVal)
 Write to address via SPI.
 
void setCsOn ()
 Set the chip select pin is On.
 
void setCsOff ()
 Set the chip select pin is Off.
 
uint8_t spiWriteRead (uint8_t uByte)
 Read/Write via SPI.
 

Static Private Member Functions

static CMmc5983DrivergetInstanceImpl (unsigned uInstanceIndex)
 

Private Attributes

uint8_t uSensorStatus_ = 0
 Sensor status after initialization.
 

Static Private Attributes

static constexpr uint32_t skuReadWriteTimeoutSpi_ {2U}
 
static constexpr uint32_t skuReadWriteTimeoutI2c_ {3U}
 

Friends

class CSoftwareComponent< CMmc5983Driver, 1U >
 

Additional Inherited Members

- Static Public Member Functions inherited from CSoftwareComponent< CMmc5983Driver, 1U >
static CMmc5983DriverGetInstance (unsigned uInstanceIndex=0U)
 
- Static Public Attributes inherited from CSoftwareComponent< CMmc5983Driver, 1U >
static constexpr unsigned skuInstanceCount_
 
- Protected Member Functions inherited from CSoftwareComponent< CMmc5983Driver, 1U >
 CSoftwareComponent ()=default
 
 ~CSoftwareComponent ()=default
 

Member Enumeration Documentation

◆ EBandwidth

enum class CMmc5983Driver::EBandwidth
strongprivate

An enum of bandwidth filter.

Enumerator
e100Hz 

Filter bandwidth 100 Hz.

e200Hz 

Filter bandwidth 200 Hz.

e400Hz 

Filter bandwidth 400 Hz.

e800Hz 

Filter bandwidth 800 Hz.

◆ EMeasurementMode

enum class CMmc5983Driver::EMeasurementMode
strongprivate

An enum of measurement mode.

Enumerator
eSkip 

No continuous measurement mode.

e1Hz 

Frequency 1 Hz.

e10Hz 

Frequency 10 Hz.

e20Hz 

Frequency 20 Hz.

e50Hz 

Frequency 50 Hz.

e100Hz 

Frequency 100 Hz.

e200Hz 

Frequency 200 Hz.

e1000Hz 

Frequency 1000 Hz.

Constructor & Destructor Documentation

◆ CMmc5983Driver() [1/3]

CMmc5983Driver::CMmc5983Driver ( CMmc5983Driver )
privatedelete

◆ CMmc5983Driver() [2/3]

CMmc5983Driver::CMmc5983Driver ( CMmc5983Driver &&  )
privatedelete

◆ CMmc5983Driver() [3/3]

CMmc5983Driver::CMmc5983Driver ( )
privatedefault

◆ ~CMmc5983Driver()

CMmc5983Driver::~CMmc5983Driver ( )
privatedefault

Member Function Documentation

◆ getInstanceImpl()

CMmc5983Driver & CMmc5983Driver::getInstanceImpl ( unsigned  uInstanceIndex)
staticprivate

◆ getMeasurementXYZ()

void CMmc5983Driver::getMeasurementXYZ ( float &  frValueX,
float &  frValueY,
float &  frValueZ 
)
private

Get measured magnetic field vector.

Parameters
frValueXreference to the value X variable
frValueYreference to the value Y variable
frValueZreference to the value Z variable

◆ getProductID()

uint8_t CMmc5983Driver::getProductID ( )
private

Get the Product ID value.

Returns
ProductID value

◆ getStatusRegValue()

uint8_t CMmc5983Driver::getStatusRegValue ( )
private

Is the data ready to be read.

Returns
uint8_t Bit mask

◆ getTemperature()

float CMmc5983Driver::getTemperature ( )
private

Get the Temperature value.

Returns
temperature value
Note
: Temperature and magnetic cannot be measured simultaneously

◆ Init()

void CMmc5983Driver::Init ( )
overridevirtual

Initialize the software component.

Implements CSoftwareComponent< CMmc5983Driver, 1U >.

◆ IsInitialized()

bool CMmc5983Driver::IsInitialized ( )
overridevirtual

Get initialization status of the software component.

Returns
True – the component is initialized, false otherwise.

Implements CSoftwareComponent< CMmc5983Driver, 1U >.

◆ operator=() [1/2]

CMmc5983Driver & CMmc5983Driver::operator= ( CMmc5983Driver &&  orOther)
privatedelete

◆ operator=() [2/2]

CMmc5983Driver & CMmc5983Driver::operator= ( const CMmc5983Driver orOther)
privatedelete

◆ PollSensor() [1/2]

void CMmc5983Driver::PollSensor ( )

A function overload that generates a timestamp without a data-ready interrupt.

◆ PollSensor() [2/2]

void CMmc5983Driver::PollSensor ( uint64_t  uTimestamp)

Poll the MMC5983 sensor.

Parameters
uTimestampTimestamp of the measurement generated by data-ready interrupt handler.

◆ readFromAddress()

void CMmc5983Driver::readFromAddress ( uint8_t *  upBuffer,
uint8_t  uReadAddr,
uint16_t  uNumByteToRead 
)
private

Read from address via SPI.

Parameters
upBufferBuffer for record
uReadAddrRegister address
uNumByteToReadNumber of bytes to read

◆ setAutoSetReset()

void CMmc5983Driver::setAutoSetReset ( )
private

Enable auto Set/Reset mode.

◆ setBitReset()

void CMmc5983Driver::setBitReset ( )
private

Request RESET function inductor coil integrated into chip See sensor datasheet for more information.

◆ setBitSet()

void CMmc5983Driver::setBitSet ( )
private

Request SET function inductor coil integrated into chip See sensor datasheet for more information.

◆ setContinuousModeFrequency()

void CMmc5983Driver::setContinuousModeFrequency ( EMeasurementMode  eMeasurementMode)
private

Set the Measurement Mode value and enable continuous mode.

Parameters
eMeasurementModeMode value

◆ setCsOff()

void CMmc5983Driver::setCsOff ( )
private

Set the chip select pin is Off.

◆ setCsOn()

void CMmc5983Driver::setCsOn ( )
private

Set the chip select pin is On.

◆ setFilterBandwidth()

void CMmc5983Driver::setFilterBandwidth ( EBandwidth  eBandwidth)
private

Set the Filter Bandwidth value.

Parameters
eBandwidthfilter value

◆ setSoftReset()

void CMmc5983Driver::setSoftReset ( )
private

Full sensor reset.

◆ spiWriteRead()

uint8_t CMmc5983Driver::spiWriteRead ( uint8_t  uByte)
private

Read/Write via SPI.

Parameters
uByteRegister add or dummy byte
Returns
The read value via SPI

◆ writeToAddress()

void CMmc5983Driver::writeToAddress ( uint8_t  uWriteAddr,
uint8_t  uVal 
)
private

Write to address via SPI.

Parameters
uWriteAddrRegister address
uValThe resulting value

Friends And Related Function Documentation

◆ CSoftwareComponent< CMmc5983Driver, 1U >

friend class CSoftwareComponent< CMmc5983Driver, 1U >
friend

Member Data Documentation

◆ skuReadWriteTimeoutI2c_

constexpr uint32_t CMmc5983Driver::skuReadWriteTimeoutI2c_ {3U}
staticconstexprprivate

◆ skuReadWriteTimeoutSpi_

constexpr uint32_t CMmc5983Driver::skuReadWriteTimeoutSpi_ {2U}
staticconstexprprivate

◆ uSensorStatus_

uint8_t CMmc5983Driver::uSensorStatus_ = 0
private

Sensor status after initialization.


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