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

RS232 Output Handler software component. More...

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

Public Member Functions

void Init () override
 
bool IsInitialized () override
 
void QueueTransmissionRequest (CSerialProtocol::EMessageIds eMessageId)
 Put message transmission request into the queue of the sender task. The function does not make a snapshot of the data to be sent.
 
void SendInertialDataMessage ()
 Compose and send an inertial data message.
 
void SendTimeOfInertialDataMessage ()
 Compose and send a "time of inertial data" message.
 
void SendNavigationDataMessage ()
 Compose and send a navigation data message.
 
void SendTimeOfNavigationDataMessage ()
 Compose and send a "time of navigation data" message.
 
void SendAccuracyDataMessage ()
 Compose and send navigation data accuracy.
 
void SendTimeOfLatestSyncPulseMessage ()
 Compose and send the time of the latest pulse.
 
void SendSoftwareVersionMessage ()
 Compose and send the software version message.
 
void SendHardwareVersionMessage ()
 Compose and send the hardware version message.
 
bool TransmitMessage (uint8_t *upData, uint16_t uSize)
 Transmit data using DMA:
 
void UARTTxInterruptHandler (uint16_t uSize)
 DMA Transmission completed callback.
 
- Public Member Functions inherited from CSoftwareComponent< CRs232OutputHandler, 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

typedef StaticSemaphore_t osStaticMutexDef_t
 

Private Member Functions

 CRs232OutputHandler (CRs232OutputHandler &)=delete
 
 CRs232OutputHandler (CRs232OutputHandler &&)=delete
 
CRs232OutputHandleroperator= (const CRs232OutputHandler &orOther)=delete
 
CRs232OutputHandleroperator= (CRs232OutputHandler &&orOther)=delete
 
 CRs232OutputHandler ()=default
 
 ~CRs232OutputHandler ()=default
 
bool isBufferFree (uint16_t uSize)
 Checks whether the DMA buffer is able to allocate the amount of bytes that we wish to enqueue.
 

Static Private Member Functions

static CRs232OutputHandlergetInstanceImpl (unsigned uInstanceIndex)
 

Private Attributes

CSerialMessageBuilder oMessageBuilder_
 An object that builds messages from generic inputs.
 
uint8_t auTxBuffer_ [skuBufferLength_]
 A buffer for DMA transfer.
 
uint32_t uTxBufferRdIdx_ { 0U }
 Output buffer read index.
 
uint32_t uTxBufferWrIdx_ { 0U }
 Output buffer write index.
 
osMutexId_t pMutexHandle_ { nullptr }
 Mutex handle.
 
osStaticMutexDef_t sMutexControlBlock_
 Memory reserved for the mutex control block.
 
const osMutexAttr_t sMutexAttributes_ { NULL, 0, &sMutexControlBlock_, sizeof(sMutexControlBlock_) }
 A structure with mutex attributes required for creation.
 

Static Private Attributes

static constexpr uint32_t skuBufferLength_ { 512U }
 Maximum allowed message length in bytes.
 

Friends

class CSoftwareComponent< CRs232OutputHandler, 1U >
 

Additional Inherited Members

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

Detailed Description

RS232 Output Handler software component.

Member Typedef Documentation

◆ osStaticMutexDef_t

typedef StaticSemaphore_t CRs232OutputHandler::osStaticMutexDef_t
private

The typedef copied from a CMSIS_OS header.

Constructor & Destructor Documentation

◆ CRs232OutputHandler() [1/3]

CRs232OutputHandler::CRs232OutputHandler ( CRs232OutputHandler )
privatedelete

◆ CRs232OutputHandler() [2/3]

CRs232OutputHandler::CRs232OutputHandler ( CRs232OutputHandler &&  )
privatedelete

◆ CRs232OutputHandler() [3/3]

CRs232OutputHandler::CRs232OutputHandler ( )
privatedefault

◆ ~CRs232OutputHandler()

CRs232OutputHandler::~CRs232OutputHandler ( )
privatedefault

Member Function Documentation

◆ getInstanceImpl()

CRs232OutputHandler & CRs232OutputHandler::getInstanceImpl ( unsigned  uInstanceIndex)
staticprivate

◆ Init()

void CRs232OutputHandler::Init ( )
overridevirtual

Initialize the software component.

Implements CSoftwareComponent< CRs232OutputHandler, 1U >.

◆ isBufferFree()

bool CRs232OutputHandler::isBufferFree ( uint16_t  uSize)
private

Checks whether the DMA buffer is able to allocate the amount of bytes that we wish to enqueue.

Parameters
uSizeNumber of bytes sent.

◆ IsInitialized()

bool CRs232OutputHandler::IsInitialized ( )
overridevirtual

Get initialization status of the software component.

Returns
True – the component is initialized, false otherwise.

Implements CSoftwareComponent< CRs232OutputHandler, 1U >.

◆ operator=() [1/2]

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

◆ operator=() [2/2]

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

◆ QueueTransmissionRequest()

void CRs232OutputHandler::QueueTransmissionRequest ( CSerialProtocol::EMessageIds  eMessageId)

Put message transmission request into the queue of the sender task. The function does not make a snapshot of the data to be sent.

Parameters
eMessageId

◆ SendAccuracyDataMessage()

void CRs232OutputHandler::SendAccuracyDataMessage ( )

Compose and send navigation data accuracy.

◆ SendHardwareVersionMessage()

void CRs232OutputHandler::SendHardwareVersionMessage ( )

Compose and send the hardware version message.

◆ SendInertialDataMessage()

void CRs232OutputHandler::SendInertialDataMessage ( )

Compose and send an inertial data message.

◆ SendNavigationDataMessage()

void CRs232OutputHandler::SendNavigationDataMessage ( )

Compose and send a navigation data message.

◆ SendSoftwareVersionMessage()

void CRs232OutputHandler::SendSoftwareVersionMessage ( )

Compose and send the software version message.

◆ SendTimeOfInertialDataMessage()

void CRs232OutputHandler::SendTimeOfInertialDataMessage ( )

Compose and send a "time of inertial data" message.

◆ SendTimeOfLatestSyncPulseMessage()

void CRs232OutputHandler::SendTimeOfLatestSyncPulseMessage ( )

Compose and send the time of the latest pulse.

◆ SendTimeOfNavigationDataMessage()

void CRs232OutputHandler::SendTimeOfNavigationDataMessage ( )

Compose and send a "time of navigation data" message.

◆ TransmitMessage()

bool CRs232OutputHandler::TransmitMessage ( uint8_t *  upData,
uint16_t  uSize 
)

Transmit data using DMA:

Parameters
upDataPointer to data.
uSizeNumber of bytes to be sent.
Returns
True if the packet was allocated successfully. False otherwise

◆ UARTTxInterruptHandler()

void CRs232OutputHandler::UARTTxInterruptHandler ( uint16_t  uSize)

DMA Transmission completed callback.

Parameters
uSizeNumber of bytes sent.

Friends And Related Function Documentation

◆ CSoftwareComponent< CRs232OutputHandler, 1U >

friend class CSoftwareComponent< CRs232OutputHandler, 1U >
friend

Member Data Documentation

◆ auTxBuffer_

uint8_t CRs232OutputHandler::auTxBuffer_[skuBufferLength_]
private

A buffer for DMA transfer.

◆ oMessageBuilder_

CSerialMessageBuilder CRs232OutputHandler::oMessageBuilder_
private

An object that builds messages from generic inputs.

◆ pMutexHandle_

osMutexId_t CRs232OutputHandler::pMutexHandle_ { nullptr }
private

Mutex handle.

◆ skuBufferLength_

constexpr uint32_t CRs232OutputHandler::skuBufferLength_ { 512U }
staticconstexprprivate

Maximum allowed message length in bytes.

◆ sMutexAttributes_

const osMutexAttr_t CRs232OutputHandler::sMutexAttributes_ { NULL, 0, &sMutexControlBlock_, sizeof(sMutexControlBlock_) }
private

A structure with mutex attributes required for creation.

◆ sMutexControlBlock_

osStaticMutexDef_t CRs232OutputHandler::sMutexControlBlock_
private

Memory reserved for the mutex control block.

◆ uTxBufferRdIdx_

uint32_t CRs232OutputHandler::uTxBufferRdIdx_ { 0U }
private

Output buffer read index.

◆ uTxBufferWrIdx_

uint32_t CRs232OutputHandler::uTxBufferWrIdx_ { 0U }
private

Output buffer write index.


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