annotate Small_CPU/Inc/uartProtocol_HUD.h @ 1078:082825daccb5 Icon_Integration tip

Added control views for HUD: The HUD implementation may now be activated by the compile switch ENABLE_HUD_SUPPORT. The HUD will become visible onces detected in the CvOpt overview menu. The first implementation is for testing only => The LEDs may be operated by a number field. Positiv values activate the red, negativ the green LEDs. Depending on the value blink sequences will be scheduled. At the moment no dive specific data is mapped to the LED operation (like e.g. warnings).
author Ideenmodellierer
date Mon, 02 Mar 2026 17:30:38 +0100
parents bd8ab302ef4a
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 */