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
This commit is contained in:
Tushar Janefalkar 2014-09-16 11:52:27 -07:00
parent e3900d7339
commit a55881f51b
3 changed files with 26 additions and 4 deletions

View file

@ -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

View file

@ -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:

View file

@ -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