view Small_CPU/Inc/uartProtocol_GNSS.h @ 999:ac25c35a3c97 GasConsumption

New Tab for dynamic configuration: since more and more functions are added to the OSTC the space in the menus is getting short. To avoid problems a new Tab within the SYS menu has been added which shall focus an functions / views which are configuration dependend. In future this menu may have dynamic content dependend on which views are active or which sensors are connected. The Cview for compass and Timer have been moved to the new tab in the first step
author Ideenmodellierer
date Mon, 28 Apr 2025 19:47:41 +0200
parents f41974734268
children c386ae6635e4
line wrap: on
line source

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