annotate 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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1077
bd8ab302ef4a Added uart support for HUD:
Ideenmodellierer
parents:
diff changeset
1 /**
bd8ab302ef4a Added uart support for HUD:
Ideenmodellierer
parents:
diff changeset
2 ******************************************************************************
bd8ab302ef4a Added uart support for HUD:
Ideenmodellierer
parents:
diff changeset
3 * @file uartProtocol_HUD.h
bd8ab302ef4a Added uart support for HUD:
Ideenmodellierer
parents:
diff changeset
4 * @author heinrichs weikamp gmbh
bd8ab302ef4a Added uart support for HUD:
Ideenmodellierer
parents:
diff changeset
5 * @version V0.0.1
bd8ab302ef4a Added uart support for HUD:
Ideenmodellierer
parents:
diff changeset
6 * @date 24-Feb-2026
bd8ab302ef4a Added uart support for HUD:
Ideenmodellierer
parents:
diff changeset
7 * @brief Interface functionality to handle external, UART based CO2 sensors
bd8ab302ef4a Added uart support for HUD:
Ideenmodellierer
parents:
diff changeset
8 *
bd8ab302ef4a Added uart support for HUD:
Ideenmodellierer
parents:
diff changeset
9 @verbatim
bd8ab302ef4a Added uart support for HUD:
Ideenmodellierer
parents:
diff changeset
10 ==============================================================================
bd8ab302ef4a Added uart support for HUD:
Ideenmodellierer
parents:
diff changeset
11 ##### How to use #####
bd8ab302ef4a Added uart support for HUD:
Ideenmodellierer
parents:
diff changeset
12 ==============================================================================
bd8ab302ef4a Added uart support for HUD:
Ideenmodellierer
parents:
diff changeset
13 @endverbatim
bd8ab302ef4a Added uart support for HUD:
Ideenmodellierer
parents:
diff changeset
14 ******************************************************************************
bd8ab302ef4a Added uart support for HUD:
Ideenmodellierer
parents:
diff changeset
15 * @attention
bd8ab302ef4a Added uart support for HUD:
Ideenmodellierer
parents:
diff changeset
16 *
bd8ab302ef4a Added uart support for HUD:
Ideenmodellierer
parents:
diff changeset
17 * <h2><center>&copy; COPYRIGHT(c) 2014 heinrichs weikamp</center></h2>
bd8ab302ef4a Added uart support for HUD:
Ideenmodellierer
parents:
diff changeset
18 *
bd8ab302ef4a Added uart support for HUD:
Ideenmodellierer
parents:
diff changeset
19 ******************************************************************************
bd8ab302ef4a Added uart support for HUD:
Ideenmodellierer
parents:
diff changeset
20 */
bd8ab302ef4a Added uart support for HUD:
Ideenmodellierer
parents:
diff changeset
21
bd8ab302ef4a Added uart support for HUD:
Ideenmodellierer
parents:
diff changeset
22 /* Define to prevent recursive inclusion -------------------------------------*/
bd8ab302ef4a Added uart support for HUD:
Ideenmodellierer
parents:
diff changeset
23 #ifndef UART_PROTOCOL_HUD_H
bd8ab302ef4a Added uart support for HUD:
Ideenmodellierer
parents:
diff changeset
24 #define UART_PROTOCOL_HUD_H
bd8ab302ef4a Added uart support for HUD:
Ideenmodellierer
parents:
diff changeset
25
bd8ab302ef4a Added uart support for HUD:
Ideenmodellierer
parents:
diff changeset
26 #ifdef __cplusplus
bd8ab302ef4a Added uart support for HUD:
Ideenmodellierer
parents:
diff changeset
27 extern "C" {
bd8ab302ef4a Added uart support for HUD:
Ideenmodellierer
parents:
diff changeset
28 #endif
bd8ab302ef4a Added uart support for HUD:
Ideenmodellierer
parents:
diff changeset
29
bd8ab302ef4a Added uart support for HUD:
Ideenmodellierer
parents:
diff changeset
30 /* Includes ------------------------------------------------------------------*/
bd8ab302ef4a Added uart support for HUD:
Ideenmodellierer
parents:
diff changeset
31 #include "configuration.h"
bd8ab302ef4a Added uart support for HUD:
Ideenmodellierer
parents:
diff changeset
32 #include "stm32f4xx_hal.h"
bd8ab302ef4a Added uart support for HUD:
Ideenmodellierer
parents:
diff changeset
33
bd8ab302ef4a Added uart support for HUD:
Ideenmodellierer
parents:
diff changeset
34
bd8ab302ef4a Added uart support for HUD:
Ideenmodellierer
parents:
diff changeset
35 #define HUD_INFO_DATA_LENGTH (24u) /* expected number of received info data */
bd8ab302ef4a Added uart support for HUD:
Ideenmodellierer
parents:
diff changeset
36 #define HUD_MAX_CMD_LENGTH (32u) /* max length for a command sequence */
bd8ab302ef4a Added uart support for HUD:
Ideenmodellierer
parents:
diff changeset
37
bd8ab302ef4a Added uart support for HUD:
Ideenmodellierer
parents:
diff changeset
38 #define HUD_CMD_BYTE_START (0xAA) /* Start byte */
bd8ab302ef4a Added uart support for HUD:
Ideenmodellierer
parents:
diff changeset
39 #define HUD_CMD_BYTE_INFO (0x10) /* Request HUD info */
bd8ab302ef4a Added uart support for HUD:
Ideenmodellierer
parents:
diff changeset
40 #define HUD_CMD_BYTE_UPDATE (0x20) /* Update LED sequence command */
bd8ab302ef4a Added uart support for HUD:
Ideenmodellierer
parents:
diff changeset
41 #define HUD_CMD_BYTE_STOP (0x30) /* Stip LED sequence execution */
bd8ab302ef4a Added uart support for HUD:
Ideenmodellierer
parents:
diff changeset
42
bd8ab302ef4a Added uart support for HUD:
Ideenmodellierer
parents:
diff changeset
43 typedef enum
bd8ab302ef4a Added uart support for HUD:
Ideenmodellierer
parents:
diff changeset
44 {
bd8ab302ef4a Added uart support for HUD:
Ideenmodellierer
parents:
diff changeset
45 UART_HUD_INIT = 0, /* Default Status for every sensor type */
bd8ab302ef4a Added uart support for HUD:
Ideenmodellierer
parents:
diff changeset
46 UART_HUD_IDLE, /* sensor detected and no communication pending */
bd8ab302ef4a Added uart support for HUD:
Ideenmodellierer
parents:
diff changeset
47 UART_HUD_ERROR,
bd8ab302ef4a Added uart support for HUD:
Ideenmodellierer
parents:
diff changeset
48 UART_HUD_SETUP = 10, /* collecting data */
bd8ab302ef4a Added uart support for HUD:
Ideenmodellierer
parents:
diff changeset
49 UART_HUD_UPDATE, /* update the HUD status LEDs */
bd8ab302ef4a Added uart support for HUD:
Ideenmodellierer
parents:
diff changeset
50 UART_HUD_ABORT, /* abort status sequence */
bd8ab302ef4a Added uart support for HUD:
Ideenmodellierer
parents:
diff changeset
51 } uartHUDStatus_t;
bd8ab302ef4a Added uart support for HUD:
Ideenmodellierer
parents:
diff changeset
52
bd8ab302ef4a Added uart support for HUD:
Ideenmodellierer
parents:
diff changeset
53 typedef enum
bd8ab302ef4a Added uart support for HUD:
Ideenmodellierer
parents:
diff changeset
54 {
bd8ab302ef4a Added uart support for HUD:
Ideenmodellierer
parents:
diff changeset
55 HUDRX_Ready= 0, /* Initial state */
bd8ab302ef4a Added uart support for HUD:
Ideenmodellierer
parents:
diff changeset
56 HUDRX_DetectStart, /* validate start byte */
bd8ab302ef4a Added uart support for HUD:
Ideenmodellierer
parents:
diff changeset
57 HUDRX_RXData,
bd8ab302ef4a Added uart support for HUD:
Ideenmodellierer
parents:
diff changeset
58 HUDRX_CheckSum_L,
bd8ab302ef4a Added uart support for HUD:
Ideenmodellierer
parents:
diff changeset
59 HUDRX_CheckSum_H,
bd8ab302ef4a Added uart support for HUD:
Ideenmodellierer
parents:
diff changeset
60 HUDRX_DataComplete
bd8ab302ef4a Added uart support for HUD:
Ideenmodellierer
parents:
diff changeset
61 } receiveStateHUD_t;
bd8ab302ef4a Added uart support for HUD:
Ideenmodellierer
parents:
diff changeset
62
bd8ab302ef4a Added uart support for HUD:
Ideenmodellierer
parents:
diff changeset
63
bd8ab302ef4a Added uart support for HUD:
Ideenmodellierer
parents:
diff changeset
64 typedef enum
bd8ab302ef4a Added uart support for HUD:
Ideenmodellierer
parents:
diff changeset
65 {
bd8ab302ef4a Added uart support for HUD:
Ideenmodellierer
parents:
diff changeset
66 HUDCMD_GETINFO = 0, /* Get HUD info */
bd8ab302ef4a Added uart support for HUD:
Ideenmodellierer
parents:
diff changeset
67 HUDCMD_UPDATE, /* Update LED sequence */
bd8ab302ef4a Added uart support for HUD:
Ideenmodellierer
parents:
diff changeset
68 HUDCMD_ABORTSEQ /* Abort LED sequence */
bd8ab302ef4a Added uart support for HUD:
Ideenmodellierer
parents:
diff changeset
69 } hudSensorCmd_t;
bd8ab302ef4a Added uart support for HUD:
Ideenmodellierer
parents:
diff changeset
70
bd8ab302ef4a Added uart support for HUD:
Ideenmodellierer
parents:
diff changeset
71
bd8ab302ef4a Added uart support for HUD:
Ideenmodellierer
parents:
diff changeset
72 void uartHUD_Control(void);
bd8ab302ef4a Added uart support for HUD:
Ideenmodellierer
parents:
diff changeset
73 void uartHUD_ProcessData(uint8_t data);
bd8ab302ef4a Added uart support for HUD:
Ideenmodellierer
parents:
diff changeset
74 void uartHUD_SendCmd(uint8_t HUDCmd);
bd8ab302ef4a Added uart support for HUD:
Ideenmodellierer
parents:
diff changeset
75 uint8_t uartHUD_isSensorConnected();
bd8ab302ef4a Added uart support for HUD:
Ideenmodellierer
parents:
diff changeset
76
bd8ab302ef4a Added uart support for HUD:
Ideenmodellierer
parents:
diff changeset
77 #endif /* UART_PROTOCOL_HUD_H */