Initial import of NFC GNSS SDK project
This commit is contained in:
@@ -0,0 +1,244 @@
|
||||
/*================================================================
|
||||
Copyright (c) 2021, Quectel Wireless Solutions Co., Ltd. All rights reserved.
|
||||
Quectel Wireless Solutions Proprietary and Confidential.
|
||||
=================================================================*/
|
||||
#ifndef _GPS_APP_H_
|
||||
#define _GPS_APP_H_
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
#include <time.h>
|
||||
#include "quec_cust_feature.h"
|
||||
#include "gps_channel.h"
|
||||
#define QUEC_GSV_MAX_SATS (32)
|
||||
#define QUEC_NV_GPS_CFG "quec_nv_gps_cfg"
|
||||
|
||||
enum{
|
||||
GGA,
|
||||
RMC,
|
||||
GSV,
|
||||
GSA,
|
||||
VTG,
|
||||
GLL,
|
||||
NMEA_MAX
|
||||
};
|
||||
|
||||
#define GNSS_SYSCONFGE_ENABLE (0x01 << 1)
|
||||
#define GNSS_NMEATYPE_ENABLE (0x01 << 2)
|
||||
|
||||
typedef struct quec_gnss_data_struct {
|
||||
|
||||
/*是否有效定位*/
|
||||
unsigned char valid;
|
||||
/*经度*/
|
||||
double longitude;
|
||||
/*经度E(东经)或W(西经)*/
|
||||
unsigned char longitude_cardinal;
|
||||
/*纬度*/
|
||||
double latitude;
|
||||
/*纬度N(北纬)或S(南纬)*/
|
||||
unsigned char latitude_cardinal;
|
||||
/*hdop精度*/
|
||||
float hdop;
|
||||
/*phop精度*/
|
||||
float pdop;
|
||||
/*航向 0-360*/
|
||||
float heading;
|
||||
/*速度 km/h*/
|
||||
float gps_speed;
|
||||
/*信号强度,max=5, data from avg_snr*/
|
||||
unsigned char gps_signal;
|
||||
/*最大信号?? db*/
|
||||
unsigned int max_cnr;
|
||||
unsigned int max_cnr2;
|
||||
/*最小信号?? db*/
|
||||
unsigned int min_cnr;
|
||||
/*平均信号?? db*/
|
||||
unsigned int avg_cnr;
|
||||
/*信号值数??*/
|
||||
unsigned int cnrs[QUEC_GSV_MAX_SATS];
|
||||
unsigned int cnrs_index;
|
||||
/*定位卫星数量*/
|
||||
unsigned int satellites_num;
|
||||
/*海拔高度*/
|
||||
float altitude;
|
||||
/*FWVER*/
|
||||
char fwver[32];
|
||||
struct tm time;
|
||||
unsigned char quality;
|
||||
unsigned char navmode;
|
||||
/*定位模式*/
|
||||
unsigned char fix_mode;
|
||||
/*VTG:地面速率 单位:节*/
|
||||
double sog;
|
||||
/*VTG:地面速率 单位:km/h*/
|
||||
double kph;
|
||||
/*VTG:地面航向*/
|
||||
double cogt;
|
||||
}quec_gnss_nmea_data_t;
|
||||
typedef struct {
|
||||
int mdflag;
|
||||
unsigned int gnss_sys_type;
|
||||
unsigned int gps_nmea_type;
|
||||
} nmeasrc_sentences_cfg;
|
||||
|
||||
typedef struct{
|
||||
char agps_type;
|
||||
char agps_en;
|
||||
}agps_cnf_t;
|
||||
|
||||
typedef enum{
|
||||
STR_MODE,
|
||||
PACKET_MODE,
|
||||
}nmea_mode_t;
|
||||
|
||||
#ifdef QUEC_AT_GPS_ENABLE
|
||||
typedef enum {
|
||||
PORT_NONE,
|
||||
PORT_USBNMEA,
|
||||
PORT_UARTDEBUG,
|
||||
PORT_MAX,
|
||||
} nmea_outport_row;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
char outport_en;
|
||||
nmea_outport_row type;
|
||||
unsigned char out_channel;
|
||||
}quec_gps_outport_config;
|
||||
#endif
|
||||
|
||||
typedef struct{
|
||||
unsigned char profile_inx;
|
||||
char agps_url[128];
|
||||
char agpsvendorID[50];
|
||||
char agpsmodelID[25];
|
||||
char agpspassWord[50];
|
||||
}quec_agps_cfg_t;
|
||||
|
||||
|
||||
typedef struct
|
||||
{
|
||||
nmeasrc_sentences_cfg nmea_handle_cfg;
|
||||
#ifdef QUEC_AT_GPS_ENABLE
|
||||
quec_gps_outport_config outport; /*nmea语句输出口*/
|
||||
#endif
|
||||
char autogps; /*gps开机自启动*/
|
||||
char apflash; /*快速冷启动*/
|
||||
agps_cnf_t agps_cfg; /*星历快速定位*/
|
||||
int nmeasrc_enable;
|
||||
quec_agps_cfg_t quec_agps_cfg; /*agps server配置*/
|
||||
char ntp_url[32]; /*ntp server*/
|
||||
}quec_gps_handle;
|
||||
|
||||
|
||||
#ifdef QUEC_AT_GPS_ENABLE
|
||||
typedef enum {
|
||||
QGPS_PROTO_NMEA_SRC_GGA, /* GPGGA */
|
||||
QGPS_PROTO_NMEA_SRC_GLL, /* GPGGA */
|
||||
QGPS_PROTO_NMEA_SRC_GSA, /* GPGSA GNGSA PQGSA */
|
||||
QGPS_PROTO_NMEA_SRC_GSV, /* GPGSV GLGSV GAGSV PQGSV */
|
||||
QGPS_PROTO_NMEA_SRC_RMC, /* GPRMC */
|
||||
QGPS_PROTO_NMEA_SRC_VTG, /* GPVTG */
|
||||
QGPS_PROTO_NMEA_SRC_ZDA, /* GPVTG */
|
||||
QGPS_PROTO_NMEA_SRC_GST, /* GPVTG */
|
||||
QGPS_PROTO_NMEA_SRC_MAX,
|
||||
} qgps_proto_nmea_src_e_type;
|
||||
|
||||
#define GSV_NUM 8
|
||||
#define GSA_NUM 8
|
||||
|
||||
typedef enum{
|
||||
QUEC_GPS, //GP
|
||||
QUEC_GLONASS,//GL
|
||||
QUEC_GALILEO,
|
||||
QUEC_BDS, //GB
|
||||
QUEC_MULTISYS, //GN
|
||||
QUEC_GT_MAX
|
||||
}quec_gps_type;
|
||||
|
||||
typedef struct {
|
||||
struct
|
||||
{
|
||||
char gp_gga_nmea_len; /* GPGGA */
|
||||
char gp_gga_sent[128];
|
||||
}gga_sentences; /* gpgsv glgsv gagsv pqgsv */
|
||||
|
||||
struct
|
||||
{
|
||||
char gp_rmc_nmea_len; /* GPRMC */
|
||||
char gp_rmc_sent[128];
|
||||
}rmc_sentences; /* gpgsv glgsv gagsv pqgsv */
|
||||
|
||||
struct
|
||||
{
|
||||
char nmea_sentences_len;
|
||||
char gp_gsv_sent[GSV_NUM][128]; /* one grp gsv most have 8 line*/
|
||||
}gsv_sentences[QUEC_GT_MAX]; /* gpgsv glgsv gagsv pqgsv */
|
||||
|
||||
struct
|
||||
{
|
||||
char gp_gsa_nmea_len; /* GPGSA */
|
||||
char gp_gsa_sent[GSA_NUM][128];
|
||||
}gsa_sentences; /* gpgsv glgsv gagsv pqgsv */
|
||||
|
||||
struct
|
||||
{
|
||||
char gp_vtg_nmea_len; /* GPVTG */
|
||||
char gp_vtg_sent[128];
|
||||
}vtg_sentences; /* gpgsv glgsv gagsv pqgsv */
|
||||
|
||||
|
||||
struct
|
||||
{
|
||||
char gp_gll_nmea_len; /* GAGNS */
|
||||
char gp_gll_sent[128];
|
||||
}gll_sentences; /* gpgsv glgsv gagsv pqgsv */
|
||||
|
||||
} nmeasrc_sentences;
|
||||
#endif
|
||||
|
||||
quec_gps_handle *quec_gnss_config_para_get(void);
|
||||
void quec_gnss_auto_start(void);
|
||||
int quec_gnss_sys_set(int sys_type);
|
||||
int quec_gnss_nmea_set(char value);
|
||||
void * quec_get_location_para(void);
|
||||
int quec_gnss_reset(int type);
|
||||
int quec_set_agps_file(void);
|
||||
void quec_gnss_open(void);
|
||||
void quec_gnss_close(void);
|
||||
void quec_get_agps_sate_num(void * cb);
|
||||
int quec_send_agps_to_gps(char *data,int len);
|
||||
int quec_set_gnss_nmea_mode(nmea_mode_t mode);
|
||||
quec_gnss_monitor_struct_t *quec_get_monitor_param(void);
|
||||
int quec_gnss_aidpos_inject(quec_gnss_nmea_data_t *aidpos);
|
||||
void quec_hx_bckp_set(int value);
|
||||
int quec_hx_bckp_get(void);
|
||||
|
||||
|
||||
|
||||
int quec_agps_param_cfg(quec_agps_cfg_t *quec_agps_cfg);
|
||||
|
||||
typedef enum {
|
||||
QUEC_GPS_INITIAL_SUCCESS = 0,
|
||||
QUEC_GPS_INITIAL_FAILED = 1,
|
||||
QUEC_GPS_INITIALED = 2,
|
||||
QUEC_GPS_DOWNLOAD_SUCCESS = 3,
|
||||
QUEC_GPS_DOWNLOAD_FAIL = 4,
|
||||
QUEC_GPS_SEND_DATA_SUCCESS = 5,
|
||||
QUEC_GPS_SEND_DATA_FAIL = 6,
|
||||
QUEC_GPS_DEINIT_SUCCESS,
|
||||
QUEC_GPS_DEINIT_FAIL,
|
||||
}QUEC_USER_CB_STATE_T;
|
||||
|
||||
typedef void (*QUEC_GPS_USER_CALLBACK)(QUEC_USER_CB_STATE_T event, void *data, int data_len);
|
||||
void quec_gnss_reg_user_cb(void* cb);
|
||||
|
||||
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user