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

A class for building messages according to BAHRS serial protocol. More...

Public Member Functions

CSerialProtocol::SInertialDataMessage BuildInertialDataMessage (const SOutputImuData &korImuData)
 Build inertial data message from IMU measurements.
 
CSerialProtocol::STimeOfInertialDataMessage BuildTimeOfInertialDataMessage (const SOutputImuData &korImuData)
 Build the "Time of inertial data message" from IMU measurements.
 
CSerialProtocol::SNavigationDataMessage BuildNavigationDataMessage (const SSafeVerticalChannelData &korVerticalChannelData, const SSafeAttitudeData &korVehicleAttitude, const SMagneticHeading &korMagneticHeading)
 Build navigation data message.
 
CSerialProtocol::STimeOfNavigationDataMessage BuildTimeOfNavigationDataMessage (const SSafeAttitudeData &korVehicleAttitude)
 Build time of navigation data message.
 
CSerialProtocol::SAccuracyDataMessage BuildAccuracyDataMessage (const SSafeAttitudeData &korVehicleAttitude)
 Build navigation data accuracy message.
 
CSerialProtocol::STimeOfLatestSyncPulseMessage BuildTimeOfLatestSyncPulseMessage (uint64_t uTimestamp)
 Build time of the latest sync pulse message.
 
CSerialProtocol::SSoftwareVersionMessage BuildSoftwareVersionMessage ()
 Build the software version message.
 
CSerialProtocol::SHardwareVersionMessage BuildHardwareVersionMessage ()
 Build the hardware version message.
 

Static Public Member Functions

static uint32_t CalculateCrc (uint32_t *pData, uint32_t uNumberOfWords_)
 Calculate CRC.
 

Private Attributes

uint8_t uInertialDataSequenceCounter_ { 0U }
 Sent inertial data message count.
 
uint8_t uNavigationDataSequenceCounter_ { 0U }
 Navigation inertial data message count.
 
uint8_t uAccuracyDataSequenceCounter_ { 0U }
 Sent accuracy message count.
 
uint8_t uTimeOfInertialDataSequenceCounter_ { 0U }
 Sent time of inertial data message count.
 
uint8_t uTimeOfNavigationDataSequenceCounter_ { 0U }
 Sent time of navigaiton data message count.
 
uint8_t uTimeOfLatestPulseSequenceCounter_ { 0U }
 Sent time of the latest pulse message count.
 

Detailed Description

A class for building messages according to BAHRS serial protocol.

Member Function Documentation

◆ BuildAccuracyDataMessage()

CSerialProtocol::SAccuracyDataMessage CSerialMessageBuilder::BuildAccuracyDataMessage ( const SSafeAttitudeData korVehicleAttitude)

Build navigation data accuracy message.

Parameters
korVehicleAttitudeReference to vehicle attitude data.
Returns
Accuracy data message.

◆ BuildHardwareVersionMessage()

CSerialProtocol::SHardwareVersionMessage CSerialMessageBuilder::BuildHardwareVersionMessage ( )

Build the hardware version message.

Returns
The hardware version message struct.

◆ BuildInertialDataMessage()

CSerialProtocol::SInertialDataMessage CSerialMessageBuilder::BuildInertialDataMessage ( const SOutputImuData korImuData)

Build inertial data message from IMU measurements.

Parameters
korImuDataReference to IMU data.
Returns
Inertial data message struct.

◆ BuildNavigationDataMessage()

CSerialProtocol::SNavigationDataMessage CSerialMessageBuilder::BuildNavigationDataMessage ( const SSafeVerticalChannelData korVerticalChannelData,
const SSafeAttitudeData korVehicleAttitude,
const SMagneticHeading korMagneticHeading 
)

Build navigation data message.

Parameters
korVerticalChannelDataReference to vertical channel data.
korVehicleAttitudeReference to vehicle attitude data.
korMagneticHeadingReference to the estimated magnetic heading data compensated for installation alignment
Returns
Navigation data message struct.

◆ BuildSoftwareVersionMessage()

CSerialProtocol::SSoftwareVersionMessage CSerialMessageBuilder::BuildSoftwareVersionMessage ( )

Build the software version message.

Returns
The software version message struct.

◆ BuildTimeOfInertialDataMessage()

CSerialProtocol::STimeOfInertialDataMessage CSerialMessageBuilder::BuildTimeOfInertialDataMessage ( const SOutputImuData korImuData)

Build the "Time of inertial data message" from IMU measurements.

Parameters
korImuDataReference to IMU measurement.
Returns
"Time of inertial data message" struct.

◆ BuildTimeOfLatestSyncPulseMessage()

CSerialProtocol::STimeOfLatestSyncPulseMessage CSerialMessageBuilder::BuildTimeOfLatestSyncPulseMessage ( uint64_t  uTimestamp)

Build time of the latest sync pulse message.

Parameters
uTimestampMeasured time of the latest sync pulse.
Returns
The time of the latest sync pulse message.

◆ BuildTimeOfNavigationDataMessage()

CSerialProtocol::STimeOfNavigationDataMessage CSerialMessageBuilder::BuildTimeOfNavigationDataMessage ( const SSafeAttitudeData korVehicleAttitude)

Build time of navigation data message.

Parameters
korVehicleAttitudeReference to vehicle attitude data.
Returns
Time of navigation data message.

◆ CalculateCrc()

uint32_t CSerialMessageBuilder::CalculateCrc ( uint32_t *  pData,
uint32_t  uNumberOfWords_ 
)
static

Calculate CRC.

Parameters
pDataPointer to 32-bit data words aarray.
uNumberOfWords_Number of words in the array.
Returns
32-bit CRC (CRC-32/MPEG2)

Member Data Documentation

◆ uAccuracyDataSequenceCounter_

uint8_t CSerialMessageBuilder::uAccuracyDataSequenceCounter_ { 0U }
private

Sent accuracy message count.

◆ uInertialDataSequenceCounter_

uint8_t CSerialMessageBuilder::uInertialDataSequenceCounter_ { 0U }
private

Sent inertial data message count.

◆ uNavigationDataSequenceCounter_

uint8_t CSerialMessageBuilder::uNavigationDataSequenceCounter_ { 0U }
private

Navigation inertial data message count.

◆ uTimeOfInertialDataSequenceCounter_

uint8_t CSerialMessageBuilder::uTimeOfInertialDataSequenceCounter_ { 0U }
private

Sent time of inertial data message count.

◆ uTimeOfLatestPulseSequenceCounter_

uint8_t CSerialMessageBuilder::uTimeOfLatestPulseSequenceCounter_ { 0U }
private

Sent time of the latest pulse message count.

◆ uTimeOfNavigationDataSequenceCounter_

uint8_t CSerialMessageBuilder::uTimeOfNavigationDataSequenceCounter_ { 0U }
private

Sent time of navigaiton data message count.


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