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 */