annotate Small_CPU/Inc/uartProtocol_GNSS.h @ 933:43055e069bd1 Evo_2_23

UART Gnss: Added fletcher calculation: Communication is verified using the Fletcher check. In the example code the commands were har coded including the check bytes. To make definition of new commands easier the check bytes are now calculated at runtime. This may be referted to hardcoded values once the implementation is getting a mature state.
author Ideenmodellierer
date Sun, 08 Dec 2024 17:38:16 +0100
parents effadaa3a1f7
children 3029f0332f4f
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
899
2225c467f1e9 Added data path and visualization for position data:
Ideenmodellierer
parents:
diff changeset
1 /**
2225c467f1e9 Added data path and visualization for position data:
Ideenmodellierer
parents:
diff changeset
2 ******************************************************************************
2225c467f1e9 Added data path and visualization for position data:
Ideenmodellierer
parents:
diff changeset
3 * @file uartProtocol_GNSS.h
2225c467f1e9 Added data path and visualization for position data:
Ideenmodellierer
parents:
diff changeset
4 * @author heinrichs weikamp gmbh
2225c467f1e9 Added data path and visualization for position data:
Ideenmodellierer
parents:
diff changeset
5 * @version V0.0.1
2225c467f1e9 Added data path and visualization for position data:
Ideenmodellierer
parents:
diff changeset
6 * @date 30-Sep-2024
2225c467f1e9 Added data path and visualization for position data:
Ideenmodellierer
parents:
diff changeset
7 * @brief Interface functionality for operation of gnss devices
2225c467f1e9 Added data path and visualization for position data:
Ideenmodellierer
parents:
diff changeset
8 *
2225c467f1e9 Added data path and visualization for position data:
Ideenmodellierer
parents:
diff changeset
9 @verbatim
2225c467f1e9 Added data path and visualization for position data:
Ideenmodellierer
parents:
diff changeset
10 ==============================================================================
2225c467f1e9 Added data path and visualization for position data:
Ideenmodellierer
parents:
diff changeset
11 ##### How to use #####
2225c467f1e9 Added data path and visualization for position data:
Ideenmodellierer
parents:
diff changeset
12 ==============================================================================
2225c467f1e9 Added data path and visualization for position data:
Ideenmodellierer
parents:
diff changeset
13 @endverbatim
2225c467f1e9 Added data path and visualization for position data:
Ideenmodellierer
parents:
diff changeset
14 ******************************************************************************
2225c467f1e9 Added data path and visualization for position data:
Ideenmodellierer
parents:
diff changeset
15 * @attention
2225c467f1e9 Added data path and visualization for position data:
Ideenmodellierer
parents:
diff changeset
16 *
2225c467f1e9 Added data path and visualization for position data:
Ideenmodellierer
parents:
diff changeset
17 * <h2><center>&copy; COPYRIGHT(c) 2014 heinrichs weikamp</center></h2>
2225c467f1e9 Added data path and visualization for position data:
Ideenmodellierer
parents:
diff changeset
18 *
2225c467f1e9 Added data path and visualization for position data:
Ideenmodellierer
parents:
diff changeset
19 ******************************************************************************
2225c467f1e9 Added data path and visualization for position data:
Ideenmodellierer
parents:
diff changeset
20 */
2225c467f1e9 Added data path and visualization for position data:
Ideenmodellierer
parents:
diff changeset
21
2225c467f1e9 Added data path and visualization for position data:
Ideenmodellierer
parents:
diff changeset
22 /* Define to prevent recursive inclusion -------------------------------------*/
2225c467f1e9 Added data path and visualization for position data:
Ideenmodellierer
parents:
diff changeset
23 #ifndef UART_PROTOCOL_GNSS_H
2225c467f1e9 Added data path and visualization for position data:
Ideenmodellierer
parents:
diff changeset
24 #define UART_PROTOCOL_GNSS_H
2225c467f1e9 Added data path and visualization for position data:
Ideenmodellierer
parents:
diff changeset
25
2225c467f1e9 Added data path and visualization for position data:
Ideenmodellierer
parents:
diff changeset
26 #ifdef __cplusplus
2225c467f1e9 Added data path and visualization for position data:
Ideenmodellierer
parents:
diff changeset
27 extern "C" {
2225c467f1e9 Added data path and visualization for position data:
Ideenmodellierer
parents:
diff changeset
28 #endif
2225c467f1e9 Added data path and visualization for position data:
Ideenmodellierer
parents:
diff changeset
29
2225c467f1e9 Added data path and visualization for position data:
Ideenmodellierer
parents:
diff changeset
30 /* Includes ------------------------------------------------------------------*/
2225c467f1e9 Added data path and visualization for position data:
Ideenmodellierer
parents:
diff changeset
31 #include "configuration.h"
2225c467f1e9 Added data path and visualization for position data:
Ideenmodellierer
parents:
diff changeset
32 #include "stm32f4xx_hal.h"
2225c467f1e9 Added data path and visualization for position data:
Ideenmodellierer
parents:
diff changeset
33
2225c467f1e9 Added data path and visualization for position data:
Ideenmodellierer
parents:
diff changeset
34 typedef enum
2225c467f1e9 Added data path and visualization for position data:
Ideenmodellierer
parents:
diff changeset
35 {
919
c0553dd70608 GNSS support for external UART interface:
Ideenmodellierer
parents: 899
diff changeset
36 UART_GNSS_INIT = 0, /* Default Status for every sensor type */
c0553dd70608 GNSS support for external UART interface:
Ideenmodellierer
parents: 899
diff changeset
37 UART_GNSS_IDLE, /* sensor detected and no communication pending */
c0553dd70608 GNSS support for external UART interface:
Ideenmodellierer
parents: 899
diff changeset
38 UART_GNSS_ERROR, /* Error message received from sensor */
c0553dd70608 GNSS support for external UART interface:
Ideenmodellierer
parents: 899
diff changeset
39 UART_GNSS_WARMUP = 10,
c0553dd70608 GNSS support for external UART interface:
Ideenmodellierer
parents: 899
diff changeset
40 UART_GNSS_LOADCONF_0,
c0553dd70608 GNSS support for external UART interface:
Ideenmodellierer
parents: 899
diff changeset
41 UART_GNSS_LOADCONF_1,
c0553dd70608 GNSS support for external UART interface:
Ideenmodellierer
parents: 899
diff changeset
42 UART_GNSS_LOADCONF_2,
c0553dd70608 GNSS support for external UART interface:
Ideenmodellierer
parents: 899
diff changeset
43 UART_GNSS_GET_PVT,
931
5a9bc2e6112d Added Sat Status Overview:
Ideenmodellierer
parents: 919
diff changeset
44 UART_GNSS_GET_SAT
899
2225c467f1e9 Added data path and visualization for position data:
Ideenmodellierer
parents:
diff changeset
45 } uartGnssStatus_t;
2225c467f1e9 Added data path and visualization for position data:
Ideenmodellierer
parents:
diff changeset
46
2225c467f1e9 Added data path and visualization for position data:
Ideenmodellierer
parents:
diff changeset
47 typedef enum
2225c467f1e9 Added data path and visualization for position data:
Ideenmodellierer
parents:
diff changeset
48 {
2225c467f1e9 Added data path and visualization for position data:
Ideenmodellierer
parents:
diff changeset
49 GNSSRX_READY = 0, /* Initial state */
919
c0553dd70608 GNSS support for external UART interface:
Ideenmodellierer
parents: 899
diff changeset
50 GNSSRX_DETECT_HEADER_0,
c0553dd70608 GNSS support for external UART interface:
Ideenmodellierer
parents: 899
diff changeset
51 GNSSRX_DETECT_HEADER_1,
c0553dd70608 GNSS support for external UART interface:
Ideenmodellierer
parents: 899
diff changeset
52 GNSSRX_DETECT_HEADER_2,
c0553dd70608 GNSS support for external UART interface:
Ideenmodellierer
parents: 899
diff changeset
53 GNSSRX_DETECT_HEADER_3,
931
5a9bc2e6112d Added Sat Status Overview:
Ideenmodellierer
parents: 919
diff changeset
54 GNSSRX_DETECT_LENGTH_0,
5a9bc2e6112d Added Sat Status Overview:
Ideenmodellierer
parents: 919
diff changeset
55 GNSSRX_DETECT_LENGTH_1,
919
c0553dd70608 GNSS support for external UART interface:
Ideenmodellierer
parents: 899
diff changeset
56 GNSSRX_DETECT_ACK_0,
c0553dd70608 GNSS support for external UART interface:
Ideenmodellierer
parents: 899
diff changeset
57 GNSSRX_DETECT_ACK_1,
c0553dd70608 GNSS support for external UART interface:
Ideenmodellierer
parents: 899
diff changeset
58 GNSSRX_DETECT_ACK_2,
c0553dd70608 GNSS support for external UART interface:
Ideenmodellierer
parents: 899
diff changeset
59 GNSSRX_DETECT_ACK_3,
931
5a9bc2e6112d Added Sat Status Overview:
Ideenmodellierer
parents: 919
diff changeset
60 GNSSRX_READ_DATA,
5a9bc2e6112d Added Sat Status Overview:
Ideenmodellierer
parents: 919
diff changeset
61 GNSSRX_READ_CK_A,
5a9bc2e6112d Added Sat Status Overview:
Ideenmodellierer
parents: 919
diff changeset
62 GNSSRX_READ_CK_B,
899
2225c467f1e9 Added data path and visualization for position data:
Ideenmodellierer
parents:
diff changeset
63 } receiveStateGnss_t;
2225c467f1e9 Added data path and visualization for position data:
Ideenmodellierer
parents:
diff changeset
64
2225c467f1e9 Added data path and visualization for position data:
Ideenmodellierer
parents:
diff changeset
65
919
c0553dd70608 GNSS support for external UART interface:
Ideenmodellierer
parents: 899
diff changeset
66 typedef enum
c0553dd70608 GNSS support for external UART interface:
Ideenmodellierer
parents: 899
diff changeset
67 {
c0553dd70608 GNSS support for external UART interface:
Ideenmodellierer
parents: 899
diff changeset
68 GNSSCMD_LOADCONF_0 = 0,
c0553dd70608 GNSS support for external UART interface:
Ideenmodellierer
parents: 899
diff changeset
69 GNSSCMD_LOADCONF_1,
c0553dd70608 GNSS support for external UART interface:
Ideenmodellierer
parents: 899
diff changeset
70 GNSSCMD_LOADCONF_2,
c0553dd70608 GNSS support for external UART interface:
Ideenmodellierer
parents: 899
diff changeset
71 GNSSCMD_GET_NAV_DATA,
c0553dd70608 GNSS support for external UART interface:
Ideenmodellierer
parents: 899
diff changeset
72 GNSSCMD_GET_PVT_DATA,
931
5a9bc2e6112d Added Sat Status Overview:
Ideenmodellierer
parents: 919
diff changeset
73 GNSSCMD_GET_POSLLH_DATA,
5a9bc2e6112d Added Sat Status Overview:
Ideenmodellierer
parents: 919
diff changeset
74 GNSSCMD_GET_NAVSAT_DATA
919
c0553dd70608 GNSS support for external UART interface:
Ideenmodellierer
parents: 899
diff changeset
75 } gnssSensorCmd_t;
c0553dd70608 GNSS support for external UART interface:
Ideenmodellierer
parents: 899
diff changeset
76
931
5a9bc2e6112d Added Sat Status Overview:
Ideenmodellierer
parents: 919
diff changeset
77 typedef struct
5a9bc2e6112d Added Sat Status Overview:
Ideenmodellierer
parents: 919
diff changeset
78 {
5a9bc2e6112d Added Sat Status Overview:
Ideenmodellierer
parents: 919
diff changeset
79 uint8_t class;
5a9bc2e6112d Added Sat Status Overview:
Ideenmodellierer
parents: 919
diff changeset
80 uint8_t id;
5a9bc2e6112d Added Sat Status Overview:
Ideenmodellierer
parents: 919
diff changeset
81 } gnssRequest_s;
5a9bc2e6112d Added Sat Status Overview:
Ideenmodellierer
parents: 919
diff changeset
82
932
effadaa3a1f7 Cleanup Gnss UART implementation:
Ideenmodellierer
parents: 931
diff changeset
83 uartGnssStatus_t uartGnss_GetState(void);
effadaa3a1f7 Cleanup Gnss UART implementation:
Ideenmodellierer
parents: 931
diff changeset
84 void uartGnss_SetState(uartGnssStatus_t newState);
899
2225c467f1e9 Added data path and visualization for position data:
Ideenmodellierer
parents:
diff changeset
85 void uartGnss_Control(void);
919
c0553dd70608 GNSS support for external UART interface:
Ideenmodellierer
parents: 899
diff changeset
86 void uartGnss_ProcessData(uint8_t data);
c0553dd70608 GNSS support for external UART interface:
Ideenmodellierer
parents: 899
diff changeset
87 uint8_t uartGnss_isSensorConnected();
c0553dd70608 GNSS support for external UART interface:
Ideenmodellierer
parents: 899
diff changeset
88 void uartGnss_SendCmd(uint8_t GnssCmd);
899
2225c467f1e9 Added data path and visualization for position data:
Ideenmodellierer
parents:
diff changeset
89
2225c467f1e9 Added data path and visualization for position data:
Ideenmodellierer
parents:
diff changeset
90 #endif /* UART_PROTOCOL_GNSS_H */