[Feature][T108][GNSS][task-view-1502]GNSS API header file update
Only Configure: No
Affected branch: GSW_V1453
Affected module: GNSS
Is it affected on IC: only ASR
Self-test: yes
Doc Update: no
Change-Id: I0255e4ac0bdc6f54a2189651e1d0aab25cd7b16f
diff --git a/mbtk/include/gsw/gsw_gnss_interface.h b/mbtk/include/gsw/gsw_gnss_interface.h
new file mode 100755
index 0000000..046ede2
--- /dev/null
+++ b/mbtk/include/gsw/gsw_gnss_interface.h
@@ -0,0 +1,242 @@
+/**
+* @file : gsw_gnss_interface.h
+* @brief : gnss function
+* @date : 2022-07-05
+* @author : gaofeng6122
+* @version : v1.0
+* @copyright Copyright(C) 2022,Gosuncnwelink
+*/
+#ifndef __GSW_GNSS_INTERFACE__H__
+#define __GSW_GNSS_INTERFACE__H__
+
+/*********************************************************************************************/
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+#include <pthread.h>
+#include <stddef.h>
+#include "gsw_hal_errcode.h"
+
+typedef enum {
+ GNSS_FREQ_1HZ = 1, /**< 1Hz */
+ GNSS_FREQ_2HZ = 2, /**< 2Hz */
+ GNSS_FREQ_5HZ = 5, /**< 5Hz */
+ GNSS_FREQ_10HZ = 10, /**< 10Hz */
+} gnss_freq_type;
+
+#define GNSS_OK GSW_HAL_SUCCESS
+#define GNSS_ERROR GSW_HAL_NORMAL_FAIL
+
+
+typedef struct
+{
+ size_t size; /**< set to sizeof(GpsLocation) */
+
+ unsigned short int flags; /**< Contains GpsLocationFlags bits. */
+
+ double latitude; /**< Represents latitude in degrees. */
+
+ double longitude; /**< Represents longitude in degrees. */
+
+ double altitude; /**< Represents altitude in meters above the WGS 84 reference ellipsoid. */
+
+ float speed; /**< Represents speed in meters per second. */
+
+ float bearing; /**< Represents heading in degrees. */
+
+ float accuracy; /**< Represents expected accuracy in meters. */
+
+ long long int timestamp; /**< Timestamp for the location fix. */
+}GSW_GNSS_LOCATION_T;
+
+typedef struct {
+ GSW_GNSS_LOCATION_T legacyLocation;
+ float horizontalAccuracyMeters; /**< horizontal position accuracy in meters (68% confidence)*/
+ float verticalAccuracyMeters; /**< vertical position accuracy in meters (68% confidence)*/
+ float speedAccuracyMetersPerSecond;/**< speed accuracy in meter per seconds (68% confidence)*/
+ float bearingAccuracyDegrees; /**< bearing accuracy in degrees (68% confidence)*/
+}GSW_GNSS_LOCATION_EXT_T;
+
+typedef enum{
+ GSW_MODE_GPS_GLONASS = 0, /**< GPS+GLONASS */
+ GSW_MODE_GPS_BEIDOU, /**< GPS+BEIDOU */
+ GSW_MODE_GPS_GLONASS_BEIDOU, /**< GPS+GLONASS+BEIDOU */
+ GSW_MODE_GPS, /**< GPS only */
+ GSW_MODE_BEIDOU, /**< BEIDOU only*/ /* The high-tech platform does not support this type */
+ GSW_MODE_GLONASS, /**< GLONASS only */ /* The high-tech platform does not support this type */
+ GSW_MODE_GPS_GLONASS_BEIDOU_GALILEO, /**< GPS+GLONASS+BEIDOU+GALILEO */
+ GSW_MODE_GPS_GALILEO, /**< GPS+GALILEO */
+ GSW_MODE_GPS_GLONASS_GALILEO, /**< GPS+GLONASS+GALILEO */
+ GSW_MODE_GPS_GALILEO_ONLY, /**< GPS or GALILEO only */
+ GSW_MODE_GPS_GLONASS_BEIDOU_GALILEO_NAVIC, /**< GPS+GLONASS+BEIDOU+GALILEO+NAVIC */ /* The high-tech platform does not support this type */
+ GSW_MODE_GNSS_END /**< init value */
+}GSW_GNSS_MODE_CONFIGURATION;
+
+typedef enum{
+ GSW_SWITCH_DISABLE = 0, /**< configuration switch disable :0 */
+ GSW_SWITCH_ENABLE /**< configuration switch enable :1 */
+}GSW_CONF_SWITCH;
+
+typedef enum
+{
+ GSW_LOC_DELETE_EPHEMERIS = (1 << 0), /**< Delete ephemeris data. */
+ GSW_LOC_DELETE_ALMANAC = (1 << 1), /**< Delete almanac data. */
+ GSW_LOC_DELETE_POSITION = (1 << 2), /**< Delete position data. */
+ GSW_LOC_DELETE_TIME = (1 << 3), /**< Delete time data. */
+ GSW_LOC_DELETE_IONO = (1 << 4), /**< Delete IONO data. */
+ GSW_LOC_DELETE_UTC = (1 << 5), /**< Delete UTC data. */
+ GSW_LOC_DELETE_HEALTH = (1 << 6), /**< Delete health data. */
+ GSW_LOC_DELETE_SVDIR = (1 << 7), /**< Delete SVDIR data. */
+ GSW_LOC_DELETE_SVSTEER = (1 << 8), /**< Delete SVSTEER data. */
+ GSW_LOC_DELETE_SADATA = (1 << 9), /**< Delete SA data. */
+ GSW_LOC_DELETE_RTI = (1 << 10), /**< Delete RTI data. */
+ GSW_LOC_DELETE_CELLDB_INFO = (1 << 11), /**< Delete cell DB information. */
+ GSW_LOC_DELETE_ALL = 0xFFFFFFFF, /**< Delete all location data. */
+} GSW_AIDING_DATA_E;
+
+/* Callback function registered to gnss location
+ * Note:don`t use blocking function inside callback functions */
+typedef void (*gsw_gnss_location_callback_ext)(GSW_GNSS_LOCATION_EXT_T* location);
+
+/* Callback function registered to gnss nmea
+ * Note:don`t use blocking function inside callback functions */
+typedef void (* gsw_gnss_nmea_callback)(const char* nmea, int length);
+
+typedef struct
+{
+ gsw_gnss_location_callback_ext gsw_location_cb; /**< location callback */
+ gsw_gnss_nmea_callback gsw_nmea_cb; /**< nmea callback */
+}gsw_gnss_cb;
+
+typedef enum
+{
+ GSW_XTRA_STATE_MIN = 0,
+ GSW_XTRA_STATE_DISBALE = GSW_XTRA_STATE_MIN,
+ GSW_XTRA_STATE_ENABLE,
+ GSW_XTRA_STATE_MAX
+} gsw_xtra_state_e;
+
+
+/**
+ * @brief SDK interface to set gnss sampling frequency
+ * @details E02 and E06 unused
+ * @param [in] freq
+ * @retval 0: success
+ * @retval other: fail
+ */
+int gsw_gnss_set_freq(int freq);
+
+/**
+ * @brief SDK interface to initialization gnss
+ *
+ * @param
+ * @retval 0: success
+ * @retval other: fail
+ */
+int gsw_gnss_init(void);
+
+/**
+ * @brief SDK interface to start gnss
+ * @param
+ * @retval 0: success
+ * @retval other: fail
+ */
+int gsw_gnss_start(void);
+
+/**
+ * @brief SDK interface to stop gnss
+ * @param
+ * @retval 0: success
+ * @retval other: fail
+ */
+int gsw_gnss_stop(void);
+
+/**
+ * @brief SDK interface to de initialization gnss
+ * @param
+ * @retval 0: success
+ * @retval other: fail
+ */
+int gsw_gnss_deinit(void);
+
+/**
+ * @brief SDK interface to set gnss start mode,specific mode refreence GSW_GNSS_MODE_CONFIGURATION
+ * @details E02 and E06 unused
+ *
+ * @param [in] start_mode
+ * @retval 0: success
+ * @retval other: fail
+ */
+int gsw_gnss_set_start_mode(GSW_GNSS_MODE_CONFIGURATION start_mode);
+
+/**
+ * @brief SDK interface to set EPO switch if open or close
+ * @details E02 and E06 unused
+ *
+ * @param [in] switch_op
+ * @retval 0: success
+ * @retval other: fail
+ */
+int gsw_gnss_epo_switch(GSW_CONF_SWITCH switch_op);
+
+/**
+ * @brief SDK interface to delete aiding data,delete aiding data for cold start
+ * @details E02 and E06 unused
+ *
+ * @param [in] flags
+ * @retval 0: success
+ * @retval other: fail
+ */
+int gsw_gnss_delete_aiding_data(unsigned int flags);
+
+/**
+ * @brief load the dynamic link library.this interface must be called before other interface
+ * @details E02 and E06 unused
+ *
+ * @retval 0: success
+ * @retval other: fail
+ */
+int gsw_gnss_add_lib(void); /* The high-tech platform does not support this type */
+
+/**
+ * @brief SDK interface to registered callback function
+ * @details E02 and E06 unused
+ *
+ * @param [in] callback
+ * @retval 0: success
+ * @retval other: fail
+ */
+int gsw_gnss_reg_cb_group(gsw_gnss_cb callback);
+
+/**
+ * @brief check xtra support or not
+ * @details E02 and E06 unused
+ *
+ * @param [in] state
+ * @retval 0: success
+ * @retval other: fail
+ */
+int gsw_gnss_xtra_is_enable(gsw_xtra_state_e state);
+
+/**
+ * @brief to get current gps information function
+ * @details only for E02 and E06
+ *
+ * @param [out] GSW_GNSS_LOCATION_T
+ * @retval 0: success
+ * @retval other: fail
+ */
+int gsw_gnss_get_current_location(GSW_GNSS_LOCATION_T* location_info);
+
+/**
+ * @brief to get current modem nmea data tail type
+ * @details E02 and E06 unused
+ *
+ * @param [out] tail_type
+ * @param [in] len
+ * @retval 0: success
+ * @retval other: fail
+ */
+int gsw_gnss_get_tail_nmea_type(char *tail_type, int len);
+#endif //__GSW_GNSS_INTERFACE__H__