AMS Advanced Air Mobility Sensors UG
Loading...
Searching...
No Matches
CImuPreFilterSwc Class Reference

Software component that applies a 2nd order Butterworth low-pass filter to raw IMU measurements. Currently, only the specific force signals are filtered. More...

Inheritance diagram for CImuPreFilterSwc:
CSoftwareComponent< CImuPreFilterSwc, 3U >

Classes

struct  SFilterConfiguration

Public Types

enum class  ESensorId : uint8_t { eImu1 , eImu2 , eImu3 }
 IMU sensor identifier for pre-filter instances. More...

Public Member Functions

void Init () override
bool IsInitialized () override
void Run ()
 Apply the Butterworth low-pass filter to the raw IMU measurement and write the result.
Public Member Functions inherited from CSoftwareComponent< CImuPreFilterSwc, 3U >
 CSoftwareComponent (CSoftwareComponent &)=delete
CSoftwareComponentoperator= (const CSoftwareComponent &orOther)=delete

Private Member Functions

 CImuPreFilterSwc (CImuPreFilterSwc &)=delete
 CImuPreFilterSwc (CImuPreFilterSwc &&)=delete
CImuPreFilterSwcoperator= (const CImuPreFilterSwc &orOther)=delete
CImuPreFilterSwcoperator= (CImuPreFilterSwc &&orOther)=delete
 CImuPreFilterSwc (SFilterConfiguration oFilterConfig)
 ~CImuPreFilterSwc ()=default
bool readImuDataPort (struct SImuMeasurement &orInput) const
void writeFilteredImuDataPort (const struct SImuMeasurement &orOutput) const
void resetFilters ()

Static Private Member Functions

static CImuPreFilterSwcgetInstanceImpl (unsigned uInstanceIndex)
template<ESensorId eSensorId>
static constexpr SFilterConfiguration getFilterConfiguration ()

Private Attributes

const ESensorId keSensorId_
const float kfCutoffFrequencyHz_
 Cutoff frequency of the Butterworth low-pass filter, [Hz].
uint8_t uInvalidInputCounter_ { 0U }
bool bIsInitialized_ { false }
CButterworthLowPassFilter2 oFilterSpecificForceX_ {}
CButterworthLowPassFilter2 oFilterSpecificForceY_ {}
CButterworthLowPassFilter2 oFilterSpecificForceZ_ {}

Static Private Attributes

static constexpr float skfSamplingFrequencyHz_ { 200.0F }
 IMU sampling frequency, [Hz].
static constexpr uint8_t skuMaxInvalidInputCount_ { 5U }
 Maximum allowed number of consecutive invalid input datasets before the filter is reset.

Friends

class CSoftwareComponent< CImuPreFilterSwc, 3U >

Additional Inherited Members

Static Public Member Functions inherited from CSoftwareComponent< CImuPreFilterSwc, 3U >
static CImuPreFilterSwcGetInstance (unsigned uInstanceIndex=0U)
Static Public Attributes inherited from CSoftwareComponent< CImuPreFilterSwc, 3U >
static constexpr unsigned skuInstanceCount_
Protected Member Functions inherited from CSoftwareComponent< CImuPreFilterSwc, 3U >
 ~CSoftwareComponent ()=default

Detailed Description

Software component that applies a 2nd order Butterworth low-pass filter to raw IMU measurements. Currently, only the specific force signals are filtered.

Member Enumeration Documentation

◆ ESensorId

enum class CImuPreFilterSwc::ESensorId : uint8_t
strong

IMU sensor identifier for pre-filter instances.

Enumerator
eImu1 
eImu2 
eImu3 

Constructor & Destructor Documentation

◆ CImuPreFilterSwc() [1/3]

CImuPreFilterSwc::CImuPreFilterSwc ( CImuPreFilterSwc & )
privatedelete

◆ CImuPreFilterSwc() [2/3]

CImuPreFilterSwc::CImuPreFilterSwc ( CImuPreFilterSwc && )
privatedelete

◆ CImuPreFilterSwc() [3/3]

CImuPreFilterSwc::CImuPreFilterSwc ( SFilterConfiguration oFilterConfig)
explicitprivate

◆ ~CImuPreFilterSwc()

CImuPreFilterSwc::~CImuPreFilterSwc ( )
privatedefault

Member Function Documentation

◆ getFilterConfiguration()

template<ESensorId eSensorId>
constexpr SFilterConfiguration CImuPreFilterSwc::getFilterConfiguration ( )
staticconstexprprivate

◆ getInstanceImpl()

CImuPreFilterSwc & CImuPreFilterSwc::getInstanceImpl ( unsigned uInstanceIndex)
staticprivate

◆ Init()

void CImuPreFilterSwc::Init ( )
overridevirtual

Initialize the software component.

Implements CSoftwareComponent< CImuPreFilterSwc, 3U >.

◆ IsInitialized()

bool CImuPreFilterSwc::IsInitialized ( )
overridevirtual

Get initialization status of the software component.

Returns
True – the component is initialized, false otherwise.

Implements CSoftwareComponent< CImuPreFilterSwc, 3U >.

◆ operator=() [1/2]

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

◆ operator=() [2/2]

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

◆ readImuDataPort()

bool CImuPreFilterSwc::readImuDataPort ( struct SImuMeasurement & orInput) const
private

◆ resetFilters()

void CImuPreFilterSwc::resetFilters ( )
private

◆ Run()

void CImuPreFilterSwc::Run ( )

Apply the Butterworth low-pass filter to the raw IMU measurement and write the result.

◆ writeFilteredImuDataPort()

void CImuPreFilterSwc::writeFilteredImuDataPort ( const struct SImuMeasurement & orOutput) const
private

◆ CSoftwareComponent< CImuPreFilterSwc, 3U >

friend class CSoftwareComponent< CImuPreFilterSwc, 3U >
friend

Member Data Documentation

◆ bIsInitialized_

bool CImuPreFilterSwc::bIsInitialized_ { false }
private

◆ keSensorId_

const ESensorId CImuPreFilterSwc::keSensorId_
private

◆ kfCutoffFrequencyHz_

const float CImuPreFilterSwc::kfCutoffFrequencyHz_
private

Cutoff frequency of the Butterworth low-pass filter, [Hz].

◆ oFilterSpecificForceX_

CButterworthLowPassFilter2 CImuPreFilterSwc::oFilterSpecificForceX_ {}
private

◆ oFilterSpecificForceY_

CButterworthLowPassFilter2 CImuPreFilterSwc::oFilterSpecificForceY_ {}
private

◆ oFilterSpecificForceZ_

CButterworthLowPassFilter2 CImuPreFilterSwc::oFilterSpecificForceZ_ {}
private

◆ skfSamplingFrequencyHz_

float CImuPreFilterSwc::skfSamplingFrequencyHz_ { 200.0F }
staticconstexprprivate

IMU sampling frequency, [Hz].

◆ skuMaxInvalidInputCount_

uint8_t CImuPreFilterSwc::skuMaxInvalidInputCount_ { 5U }
staticconstexprprivate

Maximum allowed number of consecutive invalid input datasets before the filter is reset.

◆ uInvalidInputCounter_

uint8_t CImuPreFilterSwc::uInvalidInputCounter_ { 0U }
private

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