Mercurial > public > ostc4
annotate Small_CPU/Inc/uartProtocol_GNSS.h @ 932:effadaa3a1f7 Evo_2_23
Cleanup Gnss UART implementation:
The first draft of the internal UART implementation was just a copy of the external UART handling. To avoid duplicated code and maintainance issue both UARTs (external/internal 6/1) share the same functions. To enable this a control structure has to be used as function input which defines the none shared resources like DMA control and rx/tx buffers
| author | Ideenmodellierer |
|---|---|
| date | Sat, 07 Dec 2024 21:28:08 +0100 |
| parents | 5a9bc2e6112d |
| children | 3029f0332f4f |
| 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>© 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 | 36 UART_GNSS_INIT = 0, /* Default Status for every sensor type */ |
| 37 UART_GNSS_IDLE, /* sensor detected and no communication pending */ | |
| 38 UART_GNSS_ERROR, /* Error message received from sensor */ | |
| 39 UART_GNSS_WARMUP = 10, | |
| 40 UART_GNSS_LOADCONF_0, | |
| 41 UART_GNSS_LOADCONF_1, | |
| 42 UART_GNSS_LOADCONF_2, | |
| 43 UART_GNSS_GET_PVT, | |
| 931 | 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 | 50 GNSSRX_DETECT_HEADER_0, |
| 51 GNSSRX_DETECT_HEADER_1, | |
| 52 GNSSRX_DETECT_HEADER_2, | |
| 53 GNSSRX_DETECT_HEADER_3, | |
| 931 | 54 GNSSRX_DETECT_LENGTH_0, |
| 55 GNSSRX_DETECT_LENGTH_1, | |
| 919 | 56 GNSSRX_DETECT_ACK_0, |
| 57 GNSSRX_DETECT_ACK_1, | |
| 58 GNSSRX_DETECT_ACK_2, | |
| 59 GNSSRX_DETECT_ACK_3, | |
| 931 | 60 GNSSRX_READ_DATA, |
| 61 GNSSRX_READ_CK_A, | |
| 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 | 66 typedef enum |
| 67 { | |
| 68 GNSSCMD_LOADCONF_0 = 0, | |
| 69 GNSSCMD_LOADCONF_1, | |
| 70 GNSSCMD_LOADCONF_2, | |
| 71 GNSSCMD_GET_NAV_DATA, | |
| 72 GNSSCMD_GET_PVT_DATA, | |
| 931 | 73 GNSSCMD_GET_POSLLH_DATA, |
| 74 GNSSCMD_GET_NAVSAT_DATA | |
| 919 | 75 } gnssSensorCmd_t; |
| 76 | |
| 931 | 77 typedef struct |
| 78 { | |
| 79 uint8_t class; | |
| 80 uint8_t id; | |
| 81 } gnssRequest_s; | |
| 82 | |
| 932 | 83 uartGnssStatus_t uartGnss_GetState(void); |
| 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 | 86 void uartGnss_ProcessData(uint8_t data); |
| 87 uint8_t uartGnss_isSensorConnected(); | |
| 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 */ |
