Mercurial > public > ostc4
diff Small_CPU/Inc/uartProtocol_GNSS.h @ 981:c6c781a2e85b default
Merge into default
| author | heinrichsweikamp |
|---|---|
| date | Tue, 11 Feb 2025 18:12:00 +0100 |
| parents | f41974734268 |
| children | c386ae6635e4 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Small_CPU/Inc/uartProtocol_GNSS.h Tue Feb 11 18:12:00 2025 +0100 @@ -0,0 +1,101 @@ +/** + ****************************************************************************** + * @file uartProtocol_GNSS.h + * @author heinrichs weikamp gmbh + * @version V0.0.1 + * @date 30-Sep-2024 + * @brief Interface functionality for operation of gnss devices + * + @verbatim + ============================================================================== + ##### How to use ##### + ============================================================================== + @endverbatim + ****************************************************************************** + * @attention + * + * <h2><center>© COPYRIGHT(c) 2014 heinrichs weikamp</center></h2> + * + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef UART_PROTOCOL_GNSS_H +#define UART_PROTOCOL_GNSS_H + +#ifdef __cplusplus + extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "configuration.h" +#include "stm32f4xx_hal.h" + + typedef enum + { + UART_GNSS_INIT = 0, /* Default Status for every sensor type */ + UART_GNSS_IDLE, /* sensor detected and no communication pending */ + UART_GNSS_ERROR, /* Error message received from sensor */ + UART_GNSS_WARMUP = 10, + UART_GNSS_INACTIVE, /* no requests to the receiver */ + UART_GNSS_LOADCONF_0, + UART_GNSS_LOADCONF_1, + UART_GNSS_LOADCONF_2, + UART_GNSS_SETMODE_MOBILE, + UART_GNSS_PWRDOWN, + UART_GNSS_PWRUP, + UART_GNSS_SETCONF, /* save configuration */ + UART_GNSS_GET_PVT, + UART_GNSS_GET_SAT + } uartGnssStatus_t; + + typedef enum + { + GNSSRX_READY = 0, /* Initial state */ + GNSSRX_DETECT_HEADER_0, + GNSSRX_DETECT_HEADER_1, + GNSSRX_DETECT_HEADER_2, + GNSSRX_DETECT_HEADER_3, + GNSSRX_DETECT_LENGTH_0, + GNSSRX_DETECT_LENGTH_1, + GNSSRX_DETECT_ACK_0, + GNSSRX_DETECT_ACK_1, + GNSSRX_DETECT_ACK_2, + GNSSRX_DETECT_ACK_3, + GNSSRX_READ_DATA, + GNSSRX_READ_CK_A, + GNSSRX_READ_CK_B, + } receiveStateGnss_t; + + + typedef enum + { + GNSSCMD_LOADCONF_0 = 0, + GNSSCMD_LOADCONF_1, + GNSSCMD_LOADCONF_2, + GNSSCMD_SETMOBILE, + GNSSCMD_MODE_PWS, + GNSSCMD_MODE_NORMAL, + GNSSCMD_SET_CONFIG, + GNSSCMD_GET_NAV_DATA, + GNSSCMD_GET_PVT_DATA, + GNSSCMD_GET_POSLLH_DATA, + GNSSCMD_GET_NAVSAT_DATA + } gnssSensorCmd_t; + + typedef struct + { + uint8_t class; + uint8_t id; + } gnssRequest_s; + +void uartGnss_ReqPowerDown(uint8_t request); +uint8_t uartGnss_isPowerDownRequested(void); +uartGnssStatus_t uartGnss_GetState(void); +void uartGnss_SetState(uartGnssStatus_t newState); +void uartGnss_Control(void); +void uartGnss_ProcessData(uint8_t data); +uint8_t uartGnss_isSensorConnected(); +void uartGnss_SendCmd(uint8_t GnssCmd); + +#endif /* UART_PROTOCOL_GNSS_H */
