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

CAN Output Handler software component. More...

Inheritance diagram for CCanOutputHandler:
CSoftwareComponent< CCanOutputHandler, 1U >

Classes

struct  SCanFrameHandle
 

Public Types

enum class  ECanIds : uint8_t {
  eBodyLongitudinalAcceleration = 0 , eBodyLateralAcceleration , eBodyNormalAcceleration , eBodyPitchRate ,
  eBodyRollRate , eBodyYawRate , eBodyPitchAngle , eBodyRollAngle ,
  eAltitudeRate , eMagneticHeading , eStandardAltitude , eStaticPressure ,
  eLastMessage
}
 RTE Supported CANAerospace output messages. More...
 
typedef void(*const SendFrameFunction_t) ()
 
using CFrameHanleArray = std::array< SCanFrameHandle, skiSupportedFrameCount_ >
 

Public Member Functions

void Init () override
 
bool IsInitialized () override
 
- Public Member Functions inherited from CSoftwareComponent< CCanOutputHandler, 1U >
 CSoftwareComponent (CSoftwareComponent &)=delete
 
 CSoftwareComponent (CSoftwareComponent &&)=delete
 
CSoftwareComponentoperator= (const CSoftwareComponent &orOther)=delete
 
CSoftwareComponentoperator= (CSoftwareComponent &&orOther)=delete
 
virtual void Init ()=0
 
virtual bool IsInitialized ()=0
 

Static Public Member Functions

static void SendBodyLongitudinalAcceleration ()
 Compose and send the body longitudinal acceleration.
 
static void SendBodyLateralAcceleration ()
 Compose and send the body lateral acceleration.
 
static void SendBodyNormalAcceleration ()
 Compose and send the body normal acceleration.
 
static void SendBodyPitchRate ()
 Compose and send the body pitch rate.
 
static void SendBodyRollRate ()
 Compose and send the body roll rate.
 
static void SendBodyYawRate ()
 Compose and send the body yaw rate.
 
static void SendBodyPitchAngle ()
 Compose and send the body pitch angle.
 
static void SendBodyRollAngle ()
 Compose and send the body roll angle.
 
static void SendAltitudeRate ()
 Compose and send the altitude rate.
 
static void SendMagneticHeading ()
 Compose and send the magnetic heading.
 
static void SendStandardAltitude ()
 Compose and send the standard altitude.
 
static void SendStaticPressure ()
 Compose and send the static pressure.
 
static uint32_t HerzToMs (uint32_t uFrequency)
 Provides the period expressed in [ms] for a given frequency.
 
static const CFrameHanleArrayGetFrameHandles ()
 
- Static Public Member Functions inherited from CSoftwareComponent< CCanOutputHandler, 1U >
static CCanOutputHandlerGetInstance (unsigned uInstanceIndex=0U)
 

Static Public Attributes

static constexpr int skiSupportedFrameCount_ {static_cast<int>(ECanIds::eLastMessage)}
 Number of supported output frames.
 
- Static Public Attributes inherited from CSoftwareComponent< CCanOutputHandler, 1U >
static constexpr unsigned skuInstanceCount_
 

Private Member Functions

 CCanOutputHandler (CCanOutputHandler &)=delete
 
 CCanOutputHandler (CCanOutputHandler &&)=delete
 
CCanOutputHandleroperator= (const CCanOutputHandler &orOther)=delete
 
CCanOutputHandleroperator= (CCanOutputHandler &&orOther)=delete
 
 CCanOutputHandler ()
 
 ~CCanOutputHandler ()=default
 

Static Private Member Functions

static CCanOutputHandlergetInstanceImpl (unsigned uInstanceIndex)
 
static bool isSignalInRange (float fSignal, float fSignalMin, float fSignalMax)
 Check if the signal is in the specified range.
 

Private Attributes

CFrameHanleArray apFrameHandles_
 An array of CAN frame handles. Allows easy looping through all the frames.
 
bool bIsInitialized_ { false }
 

Static Private Attributes

static constexpr float skfMaxSpecificForceInG_ {5.0F}
 
static constexpr float skfMaxAngularRateInDegreesPerSecond_ {300.0F}
 
static constexpr float skfMaxRollInDegrees_ {180.0F}
 
static constexpr float skfMaxPitchInDegrees_ {90.0F}
 
static constexpr float skfMaxHeadingInDegrees_ {180.0F}
 
static constexpr float skfMaxVelocityDown_ {300.0F}
 
static constexpr float skfMaxAltitude_ {10000.0F}
 
static constexpr float skfMinAltitude_ {-1000.0F}
 
static constexpr float skfMinPressureInHPa_ {300.0F}
 
static constexpr float skfMaxPressureInHPa_ {1250.0F}
 

Friends

class CSoftwareComponent< CCanOutputHandler, 1U >
 

Additional Inherited Members

- Protected Member Functions inherited from CSoftwareComponent< CCanOutputHandler, 1U >
 CSoftwareComponent ()=default
 
 ~CSoftwareComponent ()=default
 

Detailed Description

CAN Output Handler software component.

Member Typedef Documentation

◆ CFrameHanleArray

◆ SendFrameFunction_t

typedef void(*const CCanOutputHandler::SendFrameFunction_t) ()

Member Enumeration Documentation

◆ ECanIds

enum class CCanOutputHandler::ECanIds : uint8_t
strong

RTE Supported CANAerospace output messages.

Enumerator
eBodyLongitudinalAcceleration 

CAN Aerospace body longitudinal acceleration.

eBodyLateralAcceleration 

CAN Aerospace body lateral acceleration.

eBodyNormalAcceleration 

CAN Aerospace body normal acceleration.

eBodyPitchRate 

CAN Aerospace body pitch rate.

eBodyRollRate 

CAN Aerospace body roll rate.

eBodyYawRate 

CAN Aerospace body yaw rate.

eBodyPitchAngle 

CAN Aerospace body pitch angle.

eBodyRollAngle 

CAN Aerospace body roll angle.

eAltitudeRate 

CAN Aerospace altitude rate.

eMagneticHeading 

CAN Aerospace magnetic heading.

eStandardAltitude 

CAN Aerospace standard altitude.

eStaticPressure 

CAN Aerospace static pressure.

eLastMessage 

Definition for the last message. Don't add below this!

Constructor & Destructor Documentation

◆ CCanOutputHandler() [1/3]

CCanOutputHandler::CCanOutputHandler ( CCanOutputHandler )
privatedelete

◆ CCanOutputHandler() [2/3]

CCanOutputHandler::CCanOutputHandler ( CCanOutputHandler &&  )
privatedelete

◆ CCanOutputHandler() [3/3]

CCanOutputHandler::CCanOutputHandler ( )
private

◆ ~CCanOutputHandler()

CCanOutputHandler::~CCanOutputHandler ( )
privatedefault

Member Function Documentation

◆ GetFrameHandles()

const CCanOutputHandler::CFrameHanleArray & CCanOutputHandler::GetFrameHandles ( )
static

Get a reference to the array of CAN output frame handles.

Returns

◆ getInstanceImpl()

CCanOutputHandler & CCanOutputHandler::getInstanceImpl ( unsigned  uInstanceIndex)
staticprivate

◆ HerzToMs()

uint32_t CCanOutputHandler::HerzToMs ( uint32_t  uFrequency)
static

Provides the period expressed in [ms] for a given frequency.

◆ Init()

void CCanOutputHandler::Init ( )
overridevirtual

Initialize the software component.

Implements CSoftwareComponent< CCanOutputHandler, 1U >.

◆ IsInitialized()

bool CCanOutputHandler::IsInitialized ( )
overridevirtual

Get initialization status of the software component.

Returns
True – the component is initialized, false otherwise.

Implements CSoftwareComponent< CCanOutputHandler, 1U >.

◆ isSignalInRange()

bool CCanOutputHandler::isSignalInRange ( float  fSignal,
float  fSignalMin,
float  fSignalMax 
)
staticprivate

Check if the signal is in the specified range.

The function returns false if any of the input arguments is not finite, i. e. is infinity or NaN.

The function returns true if the signal is in the specified range, including MIN and MAX values.

Parameters
[in]fSignalSignal to check
[in]fSignalMinMinimum value of the signal
[in]fSignalMaxMaximum value of the signal
Returns
See function description.

◆ operator=() [1/2]

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

◆ operator=() [2/2]

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

◆ SendAltitudeRate()

void CCanOutputHandler::SendAltitudeRate ( )
static

Compose and send the altitude rate.

◆ SendBodyLateralAcceleration()

void CCanOutputHandler::SendBodyLateralAcceleration ( )
static

Compose and send the body lateral acceleration.

◆ SendBodyLongitudinalAcceleration()

void CCanOutputHandler::SendBodyLongitudinalAcceleration ( )
static

Compose and send the body longitudinal acceleration.

◆ SendBodyNormalAcceleration()

void CCanOutputHandler::SendBodyNormalAcceleration ( )
static

Compose and send the body normal acceleration.

◆ SendBodyPitchAngle()

void CCanOutputHandler::SendBodyPitchAngle ( )
static

Compose and send the body pitch angle.

◆ SendBodyPitchRate()

void CCanOutputHandler::SendBodyPitchRate ( )
static

Compose and send the body pitch rate.

◆ SendBodyRollAngle()

void CCanOutputHandler::SendBodyRollAngle ( )
static

Compose and send the body roll angle.

◆ SendBodyRollRate()

void CCanOutputHandler::SendBodyRollRate ( )
static

Compose and send the body roll rate.

◆ SendBodyYawRate()

void CCanOutputHandler::SendBodyYawRate ( )
static

Compose and send the body yaw rate.

◆ SendMagneticHeading()

void CCanOutputHandler::SendMagneticHeading ( )
static

Compose and send the magnetic heading.

◆ SendStandardAltitude()

void CCanOutputHandler::SendStandardAltitude ( )
static

Compose and send the standard altitude.

◆ SendStaticPressure()

void CCanOutputHandler::SendStaticPressure ( )
static

Compose and send the static pressure.

Friends And Related Function Documentation

◆ CSoftwareComponent< CCanOutputHandler, 1U >

friend class CSoftwareComponent< CCanOutputHandler, 1U >
friend

Member Data Documentation

◆ apFrameHandles_

CFrameHanleArray CCanOutputHandler::apFrameHandles_
private

An array of CAN frame handles. Allows easy looping through all the frames.

◆ bIsInitialized_

bool CCanOutputHandler::bIsInitialized_ { false }
private

◆ skfMaxAltitude_

constexpr float CCanOutputHandler::skfMaxAltitude_ {10000.0F}
staticconstexprprivate

◆ skfMaxAngularRateInDegreesPerSecond_

constexpr float CCanOutputHandler::skfMaxAngularRateInDegreesPerSecond_ {300.0F}
staticconstexprprivate

◆ skfMaxHeadingInDegrees_

constexpr float CCanOutputHandler::skfMaxHeadingInDegrees_ {180.0F}
staticconstexprprivate

◆ skfMaxPitchInDegrees_

constexpr float CCanOutputHandler::skfMaxPitchInDegrees_ {90.0F}
staticconstexprprivate

◆ skfMaxPressureInHPa_

constexpr float CCanOutputHandler::skfMaxPressureInHPa_ {1250.0F}
staticconstexprprivate

◆ skfMaxRollInDegrees_

constexpr float CCanOutputHandler::skfMaxRollInDegrees_ {180.0F}
staticconstexprprivate

◆ skfMaxSpecificForceInG_

constexpr float CCanOutputHandler::skfMaxSpecificForceInG_ {5.0F}
staticconstexprprivate

◆ skfMaxVelocityDown_

constexpr float CCanOutputHandler::skfMaxVelocityDown_ {300.0F}
staticconstexprprivate

◆ skfMinAltitude_

constexpr float CCanOutputHandler::skfMinAltitude_ {-1000.0F}
staticconstexprprivate

◆ skfMinPressureInHPa_

constexpr float CCanOutputHandler::skfMinPressureInHPa_ {300.0F}
staticconstexprprivate

◆ skiSupportedFrameCount_

constexpr int CCanOutputHandler::skiSupportedFrameCount_ {static_cast<int>(ECanIds::eLastMessage)}
staticconstexpr

Number of supported output frames.


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