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>&copy; 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 */