Mercurial > public > ostc4
diff 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 diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Small_CPU/Inc/uartProtocol_HUD.h Mon Mar 02 17:22:25 2026 +0100 @@ -0,0 +1,77 @@ +/** + ****************************************************************************** + * @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 */
