162 lines
4.2 KiB
C
162 lines
4.2 KiB
C
/*==========================================================================================================
|
|
Copyright (c) 2021, Quectel Wireless Solutions Co., Ltd. All rights reserved.
|
|
Quectel Wireless Solutions Proprietary and Confidential.
|
|
===========================================================================================================*/
|
|
|
|
#include "gps_app.h"
|
|
#include "ql_gnss.h"
|
|
#include "stdio.h"
|
|
#include "string.h"
|
|
extern gnss_callback ql_gnss_nmea_data_cb;
|
|
|
|
|
|
int ql_gnss_agps_param_cfg(quec_agps_param_t *agps_param)
|
|
{
|
|
return quec_agps_param_cfg((quec_agps_cfg_t *)agps_param);
|
|
}
|
|
|
|
int ql_gnss_ntp_url_cfg(const char * ntp_url)
|
|
{
|
|
quec_gps_handle *quec_gps_config_param;
|
|
quec_gps_config_param = quec_gnss_config_para_get();
|
|
if(ntp_url==NULL || strlen(ntp_url)>sizeof(quec_gps_config_param->ntp_url))
|
|
{
|
|
return QL_GNSS_ERR;
|
|
}
|
|
snprintf(quec_gps_config_param->ntp_url, sizeof(quec_gps_config_param->ntp_url), "%s", ntp_url);
|
|
return QL_GNSS_OK;
|
|
}
|
|
|
|
int ql_gnss_open(gnss_callback cb)
|
|
{
|
|
int ret = QL_GNSS_OK;
|
|
ql_gnss_nmea_data_cb = cb;
|
|
quec_gnss_open();
|
|
return ret;
|
|
}
|
|
|
|
int ql_gnss_close(void)
|
|
{
|
|
int ret = QL_GNSS_OK;
|
|
quec_gnss_close();
|
|
ql_gnss_nmea_data_cb = NULL;
|
|
return ret;
|
|
}
|
|
|
|
int ql_gnss_cfgsys_set(int sys_type)
|
|
{
|
|
if((sys_type<0)||(sys_type>8))
|
|
return QL_GNSS_ERR;
|
|
quec_gps_handle *quec_gps_config_param;
|
|
quec_gps_config_param = quec_gnss_config_para_get();
|
|
quec_gps_config_param->nmea_handle_cfg.gnss_sys_type = sys_type;
|
|
quec_gps_config_param->nmea_handle_cfg.mdflag |= GNSS_SYSCONFGE_ENABLE;
|
|
return QL_GNSS_OK;
|
|
}
|
|
|
|
int ql_gnss_cfgmsg_set(int nmea_type)
|
|
{
|
|
nmea_type&=0x7f;
|
|
|
|
quec_gps_handle *quec_gps_config_param;
|
|
quec_gps_config_param = quec_gnss_config_para_get();
|
|
quec_gps_config_param->nmea_handle_cfg.gps_nmea_type = nmea_type;
|
|
quec_gps_config_param->nmea_handle_cfg.mdflag |= GNSS_NMEATYPE_ENABLE;
|
|
return QL_GNSS_OK;
|
|
}
|
|
|
|
int ql_hx_bckp_set(int value)
|
|
{
|
|
int read;
|
|
quec_hx_bckp_set(value);
|
|
read = quec_hx_bckp_get();
|
|
if(value == read){
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
extern void RTI_LOG(const char* fmt, ...);
|
|
void ql_monitor_param_print(void)
|
|
{
|
|
int i = 0;
|
|
quec_gnss_monitor_struct_t* quec_monitor_param = quec_get_monitor_param();
|
|
RTI_LOG("monitor_param:agps_req_cnt: %d, apflash_req_cnt: %d, write_flash_cnt: %d",\
|
|
quec_monitor_param->monitor_agps_req_cnt,\
|
|
quec_monitor_param->monitor_apflash_req_cnt,\
|
|
quec_monitor_param->monitor_write_flash_cnt);
|
|
for(i=0;i<24;i++)
|
|
{
|
|
RTI_LOG("monitor_param:agpstime[%d]=%d",i,quec_monitor_param->agps_req_time[i]);
|
|
}
|
|
}
|
|
int ql_gnss_agps_cfg(ql_AGPSGnssSW gnssagpsflag , char agps_type)
|
|
{
|
|
if((gnssagpsflag!=AGPS_GNSS_DISABLE)&&(gnssagpsflag!=AGPS_GNSS_ENABLE))
|
|
return QL_GNSS_ERR;
|
|
|
|
quec_gps_handle *quec_gps_config_param;
|
|
quec_gps_config_param = quec_gnss_config_para_get();
|
|
quec_gps_config_param->agps_cfg.agps_en = gnssagpsflag;
|
|
quec_gps_config_param->agps_cfg.agps_type = agps_type;
|
|
return QL_GNSS_OK;
|
|
}
|
|
|
|
|
|
int ql_gnss_apflash_cfg(ql_APFLASHGnssSW gnssapflashflag)
|
|
{
|
|
if((gnssapflashflag!=APFLASH_GNSS_DISABLE)&&(gnssapflashflag!=APFLASH_GNSS_ENABLE))
|
|
return QL_GNSS_ERR;
|
|
|
|
quec_gps_handle *quec_gps_config_param;
|
|
quec_gps_config_param = quec_gnss_config_para_get();
|
|
quec_gps_config_param->apflash = gnssapflashflag;
|
|
return 0;
|
|
}
|
|
|
|
int ql_gnss_reset_type_set(ql_GPS_RESET_t type)
|
|
{
|
|
return quec_gnss_reset((int)type);
|
|
}
|
|
|
|
int ql_gnss_get_location(ql_gnss_location_t **lolcation)
|
|
{
|
|
int ret = QL_GNSS_ERR;
|
|
ql_gnss_location_t * ql_location = quec_get_location_para();
|
|
*lolcation = ql_location;
|
|
ret = QL_GNSS_OK;
|
|
return ret;
|
|
}
|
|
|
|
void ql_get_agps_sate_num( void* cb)
|
|
{
|
|
quec_get_agps_sate_num(cb);
|
|
}
|
|
|
|
int ql_set_agps_file(void)
|
|
{
|
|
return quec_set_agps_file();
|
|
}
|
|
|
|
int ql_send_agps_to_gps(char *data,int len)
|
|
{
|
|
return quec_send_agps_to_gps(data,len);
|
|
}
|
|
|
|
int ql_set_gnss_nmea_mode(char mode)
|
|
{
|
|
return quec_set_gnss_nmea_mode((nmea_mode_t)mode);
|
|
}
|
|
|
|
int ql_gnss_aidpos_inject(ql_gnss_location_t *aidpos)
|
|
{
|
|
return quec_gnss_aidpos_inject((quec_gnss_nmea_data_t *)aidpos);
|
|
}
|
|
|
|
void ql_gnss_reg_user_cb(void* cb)
|
|
{
|
|
quec_gnss_reg_user_cb(cb);
|
|
}
|
|
|
|
|