899
|
1 /**
|
|
2 ******************************************************************************
|
|
3 * @file uartProtocol_GNSS.h
|
|
4 * @author heinrichs weikamp gmbh
|
|
5 * @version V0.0.1
|
|
6 * @date 30-Sep-2024
|
|
7 * @brief Interface functionality for operation of gnss devices
|
|
8 *
|
|
9 @verbatim
|
|
10 ==============================================================================
|
|
11 ##### How to use #####
|
|
12 ==============================================================================
|
|
13 @endverbatim
|
|
14 ******************************************************************************
|
|
15 * @attention
|
|
16 *
|
|
17 * <h2><center>© COPYRIGHT(c) 2014 heinrichs weikamp</center></h2>
|
|
18 *
|
|
19 ******************************************************************************
|
|
20 */
|
|
21
|
|
22 /* Define to prevent recursive inclusion -------------------------------------*/
|
|
23 #ifndef UART_PROTOCOL_GNSS_H
|
|
24 #define UART_PROTOCOL_GNSS_H
|
|
25
|
|
26 #ifdef __cplusplus
|
|
27 extern "C" {
|
|
28 #endif
|
|
29
|
|
30 /* Includes ------------------------------------------------------------------*/
|
|
31 #include "configuration.h"
|
|
32 #include "stm32f4xx_hal.h"
|
|
33
|
|
34 typedef enum
|
|
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,
|
936
|
40 UART_GNSS_INACTIVE, /* no requests to the receiver */
|
919
|
41 UART_GNSS_LOADCONF_0,
|
|
42 UART_GNSS_LOADCONF_1,
|
|
43 UART_GNSS_LOADCONF_2,
|
939
|
44 UART_GNSS_SETMODE_MOBILE,
|
936
|
45 UART_GNSS_PWRDOWN,
|
|
46 UART_GNSS_PWRUP,
|
|
47 UART_GNSS_SETCONF, /* save configuration */
|
919
|
48 UART_GNSS_GET_PVT,
|
931
|
49 UART_GNSS_GET_SAT
|
899
|
50 } uartGnssStatus_t;
|
|
51
|
|
52 typedef enum
|
|
53 {
|
|
54 GNSSRX_READY = 0, /* Initial state */
|
919
|
55 GNSSRX_DETECT_HEADER_0,
|
|
56 GNSSRX_DETECT_HEADER_1,
|
|
57 GNSSRX_DETECT_HEADER_2,
|
|
58 GNSSRX_DETECT_HEADER_3,
|
931
|
59 GNSSRX_DETECT_LENGTH_0,
|
|
60 GNSSRX_DETECT_LENGTH_1,
|
919
|
61 GNSSRX_DETECT_ACK_0,
|
|
62 GNSSRX_DETECT_ACK_1,
|
|
63 GNSSRX_DETECT_ACK_2,
|
|
64 GNSSRX_DETECT_ACK_3,
|
931
|
65 GNSSRX_READ_DATA,
|
|
66 GNSSRX_READ_CK_A,
|
|
67 GNSSRX_READ_CK_B,
|
899
|
68 } receiveStateGnss_t;
|
|
69
|
|
70
|
919
|
71 typedef enum
|
|
72 {
|
|
73 GNSSCMD_LOADCONF_0 = 0,
|
|
74 GNSSCMD_LOADCONF_1,
|
|
75 GNSSCMD_LOADCONF_2,
|
939
|
76 GNSSCMD_SETMOBILE,
|
936
|
77 GNSSCMD_MODE_PWS,
|
|
78 GNSSCMD_MODE_NORMAL,
|
|
79 GNSSCMD_SET_CONFIG,
|
919
|
80 GNSSCMD_GET_NAV_DATA,
|
|
81 GNSSCMD_GET_PVT_DATA,
|
931
|
82 GNSSCMD_GET_POSLLH_DATA,
|
|
83 GNSSCMD_GET_NAVSAT_DATA
|
919
|
84 } gnssSensorCmd_t;
|
|
85
|
931
|
86 typedef struct
|
|
87 {
|
|
88 uint8_t class;
|
|
89 uint8_t id;
|
|
90 } gnssRequest_s;
|
|
91
|
936
|
92 void uartGnss_ReqPowerDown(uint8_t request);
|
939
|
93 uint8_t uartGnss_isPowerDownRequested(void);
|
932
|
94 uartGnssStatus_t uartGnss_GetState(void);
|
|
95 void uartGnss_SetState(uartGnssStatus_t newState);
|
899
|
96 void uartGnss_Control(void);
|
919
|
97 void uartGnss_ProcessData(uint8_t data);
|
|
98 uint8_t uartGnss_isSensorConnected();
|
|
99 void uartGnss_SendCmd(uint8_t GnssCmd);
|
899
|
100
|
|
101 #endif /* UART_PROTOCOL_GNSS_H */
|