/*========================================================================================================== 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); }