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

Classes

union  URXPacketMaxSize
 
union  UTXPacketMaxSize
 

Public Types

enum class  EDiagnosticModeStatus : int8_t {
  eDiagnosticModeStatusErrUART = -3 , eDiagnosticModeStatusErrInvalidSize = -2 , eDiagnosticModeStatusErrDataCorrupted = -1 , eDiagnosticModeStatusNormal = 0 ,
  eDiagnosticModeStatusInDebug = 1
}
 

Public Member Functions

void SetUARTHandle (UART_HandleTypeDef *opUartHandle, DMA_HandleTypeDef *opDMAHandle)
 
void UARTRxInterruptHandler (uint16_t uSize)
 
void DiagnosticModeProcess ()
 
bool isDiagnosticModeEnabled ()
 

Static Public Member Functions

static CDiagnosticModeGetInstance ()
 

Private Member Functions

 CDiagnosticMode ()
 
 CDiagnosticMode (const CDiagnosticMode &)
 
CDiagnosticModeoperator= (CDiagnosticMode &)
 
void uartDataParser (uint16_t uSize)
 
bool diagnosticSend ()
 
void fillSendBuffer (const void *pBuffer, uint16_t uSize)
 
bool handlePacket (CSerialProtocol::EMessageIds ePacketType)
 

Private Attributes

uint8_t auUartRxBuffer_ [skuRXBufferSize_]
 
uint8_t auUartTxBuffer_ [skuTXBufferSize_]
 
uint16_t uUartTxSendSize_ { 0u }
 
EDiagnosticModeStatus eCurrState_ { EDiagnosticModeStatus::eDiagnosticModeStatusNormal }
 
UART_HandleTypeDef * opUartHandle_ { nullptr }
 
DMA_HandleTypeDef * opDmaHandle_ { nullptr }
 

Static Private Attributes

static constexpr uint64_t skuUARTSendTimeoutUs_ { 1000000 }
 
static constexpr uint64_t skuDiagnosticModeTimeoutUs_ { 5000000 }
 
static constexpr uint16_t skuRXBufferSize_ { sizeof(URXPacketMaxSize) }
 
static constexpr uint16_t skuTXBufferSize_ { sizeof(UTXPacketMaxSize) }
 

Member Enumeration Documentation

◆ EDiagnosticModeStatus

enum class CDiagnosticMode::EDiagnosticModeStatus : int8_t
strong
Enumerator
eDiagnosticModeStatusErrUART 
eDiagnosticModeStatusErrInvalidSize 
eDiagnosticModeStatusErrDataCorrupted 
eDiagnosticModeStatusNormal 
eDiagnosticModeStatusInDebug 

Constructor & Destructor Documentation

◆ CDiagnosticMode() [1/2]

CDiagnosticMode::CDiagnosticMode ( )
inlineprivate

◆ CDiagnosticMode() [2/2]

CDiagnosticMode::CDiagnosticMode ( const CDiagnosticMode )
private

Member Function Documentation

◆ DiagnosticModeProcess()

void CDiagnosticMode::DiagnosticModeProcess ( )

Method: DiagnosticModeProcess() Stops the main program flow until the end of the diagnostic mode.

◆ diagnosticSend()

bool CDiagnosticMode::diagnosticSend ( )
private

Method: DiagnosticSend() Sends a message via UART using a pre-setted up handle.

◆ fillSendBuffer()

void CDiagnosticMode::fillSendBuffer ( const void *  pBuffer,
uint16_t  uSize 
)
private

◆ GetInstance()

static CDiagnosticMode & CDiagnosticMode::GetInstance ( )
inlinestatic

◆ handlePacket()

bool CDiagnosticMode::handlePacket ( CSerialProtocol::EMessageIds  ePacketType)
private

Method: PacketAccepted() Sends a message confirming the successful packet processing by the device.

◆ isDiagnosticModeEnabled()

bool CDiagnosticMode::isDiagnosticModeEnabled ( )

Method: IsDiagnosticModeEnabled() Returns true if device is working in Debug mode.

◆ operator=()

CDiagnosticMode & CDiagnosticMode::operator= ( CDiagnosticMode )
private

◆ SetUARTHandle()

void CDiagnosticMode::SetUARTHandle ( UART_HandleTypeDef *  opUartHandle,
DMA_HandleTypeDef *  opDMAHandle 
)

Method: setUARTHandle() Sets the UART_HandleTypeDef handler to send messages via UART.

◆ uartDataParser()

void CDiagnosticMode::uartDataParser ( uint16_t  uSize)
inlineprivate

Method: UARTDataParser() Packet data parser. Changes the mode of operation in case of successful package parsing.

◆ UARTRxInterruptHandler()

void CDiagnosticMode::UARTRxInterruptHandler ( uint16_t  uSize)

Method: UARTRxInterruptHandler() The handler of the received data in the UART RX interrupt.

Member Data Documentation

◆ auUartRxBuffer_

uint8_t CDiagnosticMode::auUartRxBuffer_[skuRXBufferSize_]
private

◆ auUartTxBuffer_

uint8_t CDiagnosticMode::auUartTxBuffer_[skuTXBufferSize_]
private

◆ eCurrState_

◆ opDmaHandle_

DMA_HandleTypeDef* CDiagnosticMode::opDmaHandle_ { nullptr }
private

◆ opUartHandle_

UART_HandleTypeDef* CDiagnosticMode::opUartHandle_ { nullptr }
private

◆ skuDiagnosticModeTimeoutUs_

constexpr uint64_t CDiagnosticMode::skuDiagnosticModeTimeoutUs_ { 5000000 }
staticconstexprprivate

◆ skuRXBufferSize_

constexpr uint16_t CDiagnosticMode::skuRXBufferSize_ { sizeof(URXPacketMaxSize) }
staticconstexprprivate

◆ skuTXBufferSize_

constexpr uint16_t CDiagnosticMode::skuTXBufferSize_ { sizeof(UTXPacketMaxSize) }
staticconstexprprivate

◆ skuUARTSendTimeoutUs_

constexpr uint64_t CDiagnosticMode::skuUARTSendTimeoutUs_ { 1000000 }
staticconstexprprivate

◆ uUartTxSendSize_

uint16_t CDiagnosticMode::uUartTxSendSize_ { 0u }
private

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