Mercurial > public > ostc4
view Small_CPU/Inc/uartProtocol_HUD.h @ 1077:bd8ab302ef4a Icon_Integration
Added uart support for HUD:
the protocol implementation for the HUD has been added. It may be activated by the compile switch ENABLE_HUD_SUPPORT. Because the HUD will not mapped to the three classic o2 value display slots, the sensor data structure has been increased to the max number of devices => all devices may now raise device specific data.
| author | Ideenmodellierer |
|---|---|
| date | Mon, 02 Mar 2026 17:22:25 +0100 |
| parents | |
| children |
line wrap: on
line source
/** ****************************************************************************** * @file uartProtocol_HUD.h * @author heinrichs weikamp gmbh * @version V0.0.1 * @date 24-Feb-2026 * @brief Interface functionality to handle external, UART based CO2 sensors * @verbatim ============================================================================== ##### How to use ##### ============================================================================== @endverbatim ****************************************************************************** * @attention * * <h2><center>© COPYRIGHT(c) 2014 heinrichs weikamp</center></h2> * ****************************************************************************** */ /* Define to prevent recursive inclusion -------------------------------------*/ #ifndef UART_PROTOCOL_HUD_H #define UART_PROTOCOL_HUD_H #ifdef __cplusplus extern "C" { #endif /* Includes ------------------------------------------------------------------*/ #include "configuration.h" #include "stm32f4xx_hal.h" #define HUD_INFO_DATA_LENGTH (24u) /* expected number of received info data */ #define HUD_MAX_CMD_LENGTH (32u) /* max length for a command sequence */ #define HUD_CMD_BYTE_START (0xAA) /* Start byte */ #define HUD_CMD_BYTE_INFO (0x10) /* Request HUD info */ #define HUD_CMD_BYTE_UPDATE (0x20) /* Update LED sequence command */ #define HUD_CMD_BYTE_STOP (0x30) /* Stip LED sequence execution */ typedef enum { UART_HUD_INIT = 0, /* Default Status for every sensor type */ UART_HUD_IDLE, /* sensor detected and no communication pending */ UART_HUD_ERROR, UART_HUD_SETUP = 10, /* collecting data */ UART_HUD_UPDATE, /* update the HUD status LEDs */ UART_HUD_ABORT, /* abort status sequence */ } uartHUDStatus_t; typedef enum { HUDRX_Ready= 0, /* Initial state */ HUDRX_DetectStart, /* validate start byte */ HUDRX_RXData, HUDRX_CheckSum_L, HUDRX_CheckSum_H, HUDRX_DataComplete } receiveStateHUD_t; typedef enum { HUDCMD_GETINFO = 0, /* Get HUD info */ HUDCMD_UPDATE, /* Update LED sequence */ HUDCMD_ABORTSEQ /* Abort LED sequence */ } hudSensorCmd_t; void uartHUD_Control(void); void uartHUD_ProcessData(uint8_t data); void uartHUD_SendCmd(uint8_t HUDCmd); uint8_t uartHUD_isSensorConnected(); #endif /* UART_PROTOCOL_HUD_H */
