From f1ddcf02a341e35ad8e66e7be9472d0802bf342e Mon Sep 17 00:00:00 2001 From: Bhavna Sharma Date: Mon, 28 Jul 2014 14:11:14 -0700 Subject: [PATCH 1/2] Increase the size of string to hold parameter name Some parameter names are more than 48 char in length. Accomodate by increasing parameter name buffer size and increase complete line buffer size. CRs-Fixed: 700902 Change-Id: If2af7288ed11fdd668dc1cad8e60f2c92e7b3c30 --- utils/loc_cfg.cpp | 1 - utils/loc_cfg.h | 4 ++-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/utils/loc_cfg.cpp b/utils/loc_cfg.cpp index abf8086c..dc8e3a74 100644 --- a/utils/loc_cfg.cpp +++ b/utils/loc_cfg.cpp @@ -280,7 +280,6 @@ void loc_read_conf(const char* conf_file_name, loc_param_s_type* config_table, uint32_t table_length) { FILE *gps_conf_fp = NULL; - char input_buf[LOC_MAX_PARAM_LINE]; /* declare a char array */ char *lasts; loc_param_v_type config_value; uint32_t i; diff --git a/utils/loc_cfg.h b/utils/loc_cfg.h index 268f4c24..f575f713 100644 --- a/utils/loc_cfg.h +++ b/utils/loc_cfg.h @@ -33,9 +33,9 @@ #include #include -#define LOC_MAX_PARAM_NAME 48 +#define LOC_MAX_PARAM_NAME 80 #define LOC_MAX_PARAM_STRING 80 -#define LOC_MAX_PARAM_LINE 80 +#define LOC_MAX_PARAM_LINE (LOC_MAX_PARAM_NAME + LOC_MAX_PARAM_STRING) #define UTIL_READ_CONF_DEFAULT(filename) \ loc_read_conf((filename), NULL, 0); From a55881f51be3d817c1214956a72f3cf439924ffe Mon Sep 17 00:00:00 2001 From: Tushar Janefalkar Date: Tue, 16 Sep 2014 11:52:27 -0700 Subject: [PATCH 2/2] Use regular ATL callflow for SUPL ES Added a new gps.conf parameter which can be used to decide whether or not to use data services to bring up call using emergency PDN or use default SUPL PDN Change-Id: I604a1489e66339eb2c27019dafab640f7a15cd84 CRs-fixed: 685639 --- etc/gps.conf | 5 +++++ loc_api/libloc_api_50001/loc_eng.cpp | 24 ++++++++++++++++++++---- loc_api/libloc_api_50001/loc_eng.h | 1 + 3 files changed, 26 insertions(+), 4 deletions(-) diff --git a/etc/gps.conf b/etc/gps.conf index ccc34837..a60230e6 100644 --- a/etc/gps.conf +++ b/etc/gps.conf @@ -39,6 +39,11 @@ SUPL_VER=0x10000 # Emergency SUPL, 1=enable, 0=disable SUPL_ES=1 +#Choose PDN for Emergency SUPL +#1 - Use emergency PDN +#0 - Use regular SUPL PDN for Emergency SUPL +USE_EMERGENCY_PDN_FOR_EMERGENCY_SUPL=1 + # GPS Capabilities bit mask # SCHEDULING = 0x01 # MSB = 0x02 diff --git a/loc_api/libloc_api_50001/loc_eng.cpp b/loc_api/libloc_api_50001/loc_eng.cpp index c8b7dd8a..b6a6b2e6 100644 --- a/loc_api/libloc_api_50001/loc_eng.cpp +++ b/loc_api/libloc_api_50001/loc_eng.cpp @@ -101,6 +101,7 @@ static loc_param_s_type loc_parameter_table[] = {"NMEA_PROVIDER", &gps_conf.NMEA_PROVIDER, NULL, 'n'}, {"SUPL_VER", &gps_conf.SUPL_VER, NULL, 'n'}, {"CAPABILITIES", &gps_conf.CAPABILITIES, NULL, 'n'}, + {"USE_EMERGENCY_PDN_FOR_EMERGENCY_SUPL", &gps_conf.USE_EMERGENCY_PDN_FOR_EMERGENCY_SUPL, NULL, 'n'}, {"GYRO_BIAS_RANDOM_WALK", &sap_conf.GYRO_BIAS_RANDOM_WALK, &sap_conf.GYRO_BIAS_RANDOM_WALK_VALID, 'f'}, {"ACCEL_RANDOM_WALK_SPECTRAL_DENSITY", &sap_conf.ACCEL_RANDOM_WALK_SPECTRAL_DENSITY, &sap_conf.ACCEL_RANDOM_WALK_SPECTRAL_DENSITY_VALID, 'f'}, {"ANGLE_RANDOM_WALK_SPECTRAL_DENSITY", &sap_conf.ANGLE_RANDOM_WALK_SPECTRAL_DENSITY, &sap_conf.ANGLE_RANDOM_WALK_SPECTRAL_DENSITY_VALID, 'f'}, @@ -140,6 +141,8 @@ static void loc_default_parameters(void) gps_conf.A_GLONASS_POS_PROTOCOL_SELECT = 0; /*XTRA version check is disabled by default*/ gps_conf.XTRA_VERSION_CHECK=0; + /*Use emergency PDN by default*/ + gps_conf.USE_EMERGENCY_PDN_FOR_EMERGENCY_SUPL = 1; /*Defaults for sap.conf*/ sap_conf.GYRO_BIAS_RANDOM_WALK = 0; @@ -1104,7 +1107,17 @@ void LocEngRequestSuplEs::proc() const { AgpsStateMachine* sm = locEng->ds_nif; DSSubscriber s(sm, mID); sm->subscribeRsrc((Subscriber*)&s); - } else { + } + else if (locEng->agnss_nif) { + AgpsStateMachine *sm = locEng->agnss_nif; + ATLSubscriber s(mID, + sm, + locEng->adapter, + false); + sm->subscribeRsrc((Subscriber*)&s); + LOC_LOGD("%s:%d]: Using regular ATL for SUPL ES", __func__, __LINE__); + } + else { locEng->adapter->atlOpenStatus(mID, 0, NULL, -1, -1); } } @@ -2142,8 +2155,9 @@ void loc_eng_agps_init(loc_eng_data_s_type &loc_eng_data, AGpsExtCallbacks* call false); if (adapter->mSupportsAgpsRequests) { - loc_eng_data.adapter->sendMsg(new LocEngDataClientInit(&loc_eng_data)); - + if(gps_conf.USE_EMERGENCY_PDN_FOR_EMERGENCY_SUPL) { + loc_eng_data.adapter->sendMsg(new LocEngDataClientInit(&loc_eng_data)); + } loc_eng_dmn_conn_loc_api_server_launch(callbacks->create_thread_cb, NULL, NULL, &loc_eng_data); } @@ -2175,7 +2189,9 @@ getAgpsStateMachine(loc_eng_data_s_type &locEng, AGpsExtType agpsType) { break; } case AGPS_TYPE_SUPL_ES: { - stateMachine = locEng.ds_nif; + locEng.ds_nif ? + stateMachine = locEng.ds_nif: + stateMachine = locEng.agnss_nif; break; } default: diff --git a/loc_api/libloc_api_50001/loc_eng.h b/loc_api/libloc_api_50001/loc_eng.h index ad40606e..ab945e78 100644 --- a/loc_api/libloc_api_50001/loc_eng.h +++ b/loc_api/libloc_api_50001/loc_eng.h @@ -152,6 +152,7 @@ typedef struct loc_gps_cfg_s char XTRA_SERVER_1[MAX_XTRA_SERVER_URL_LENGTH]; char XTRA_SERVER_2[MAX_XTRA_SERVER_URL_LENGTH]; char XTRA_SERVER_3[MAX_XTRA_SERVER_URL_LENGTH]; + unsigned long USE_EMERGENCY_PDN_FOR_EMERGENCY_SUPL; } loc_gps_cfg_s_type; typedef struct