Fixing error population logic

Updating error vector population logic
in GNSS Update config command.

Change-Id: Ia328ad112056ecc20221ca10ba91c72f3182830a
CRs-Fixed: 2261813
This commit is contained in:
Saurabh Srivastava 2018-06-26 15:45:41 +05:30 committed by Gerrit - the friendly Code Review server
parent 95e5a78305
commit 889d1eed23

View file

@ -829,7 +829,6 @@ GnssAdapter::gnssUpdateConfigCommand(GnssConfig config)
int index = 0; int index = 0;
if (gnssConfigRequested.flags & GNSS_CONFIG_FLAGS_GPS_LOCK_VALID_BIT) { if (gnssConfigRequested.flags & GNSS_CONFIG_FLAGS_GPS_LOCK_VALID_BIT) {
index++;
uint32_t newGpsLock = mAdapter.convertGpsLock(gnssConfigRequested.gpsLock); uint32_t newGpsLock = mAdapter.convertGpsLock(gnssConfigRequested.gpsLock);
ContextBase::mGps_conf.GPS_LOCK = newGpsLock; ContextBase::mGps_conf.GPS_LOCK = newGpsLock;
if (0 == ContextBase::mGps_conf.GPS_LOCK) { if (0 == ContextBase::mGps_conf.GPS_LOCK) {
@ -838,9 +837,9 @@ GnssAdapter::gnssUpdateConfigCommand(GnssConfig config)
if (0 != mAdapter.getPowerVoteId()) { if (0 != mAdapter.getPowerVoteId()) {
gnssConfigNeedEngineUpdate.flags &= ~(GNSS_CONFIG_FLAGS_GPS_LOCK_VALID_BIT); gnssConfigNeedEngineUpdate.flags &= ~(GNSS_CONFIG_FLAGS_GPS_LOCK_VALID_BIT);
} }
index++;
} }
if (gnssConfigRequested.flags & GNSS_CONFIG_FLAGS_SUPL_VERSION_VALID_BIT) { if (gnssConfigRequested.flags & GNSS_CONFIG_FLAGS_SUPL_VERSION_VALID_BIT) {
index++;
uint32_t newSuplVersion = uint32_t newSuplVersion =
mAdapter.convertSuplVersion(gnssConfigRequested.suplVersion); mAdapter.convertSuplVersion(gnssConfigRequested.suplVersion);
if (newSuplVersion != ContextBase::mGps_conf.SUPL_VER && if (newSuplVersion != ContextBase::mGps_conf.SUPL_VER &&
@ -849,9 +848,9 @@ GnssAdapter::gnssUpdateConfigCommand(GnssConfig config)
} else { } else {
gnssConfigNeedEngineUpdate.flags &= ~(GNSS_CONFIG_FLAGS_SUPL_VERSION_VALID_BIT); gnssConfigNeedEngineUpdate.flags &= ~(GNSS_CONFIG_FLAGS_SUPL_VERSION_VALID_BIT);
} }
index++;
} }
if (gnssConfigRequested.flags & GNSS_CONFIG_FLAGS_SET_ASSISTANCE_DATA_VALID_BIT) { if (gnssConfigRequested.flags & GNSS_CONFIG_FLAGS_SET_ASSISTANCE_DATA_VALID_BIT) {
index++;
if (GNSS_ASSISTANCE_TYPE_SUPL == mConfig.assistanceServer.type) { if (GNSS_ASSISTANCE_TYPE_SUPL == mConfig.assistanceServer.type) {
mAdapter.setSuplHostServer(mConfig.assistanceServer.hostName, mAdapter.setSuplHostServer(mConfig.assistanceServer.hostName,
mConfig.assistanceServer.port, mConfig.assistanceServer.port,
@ -863,9 +862,9 @@ GnssAdapter::gnssUpdateConfigCommand(GnssConfig config)
gnssConfigNeedEngineUpdate.flags &= gnssConfigNeedEngineUpdate.flags &=
~(GNSS_CONFIG_FLAGS_SET_ASSISTANCE_DATA_VALID_BIT); ~(GNSS_CONFIG_FLAGS_SET_ASSISTANCE_DATA_VALID_BIT);
} }
index++;
} }
if (gnssConfigRequested.flags & GNSS_CONFIG_FLAGS_LPP_PROFILE_VALID_BIT) { if (gnssConfigRequested.flags & GNSS_CONFIG_FLAGS_LPP_PROFILE_VALID_BIT) {
index++;
uint32_t newLppProfile = mAdapter.convertLppProfile(gnssConfigRequested.lppProfile); uint32_t newLppProfile = mAdapter.convertLppProfile(gnssConfigRequested.lppProfile);
if (newLppProfile != ContextBase::mGps_conf.LPP_PROFILE && if (newLppProfile != ContextBase::mGps_conf.LPP_PROFILE &&
ContextBase::mGps_conf.AGPS_CONFIG_INJECT) { ContextBase::mGps_conf.AGPS_CONFIG_INJECT) {
@ -873,9 +872,9 @@ GnssAdapter::gnssUpdateConfigCommand(GnssConfig config)
} else { } else {
gnssConfigNeedEngineUpdate.flags &= ~(GNSS_CONFIG_FLAGS_LPP_PROFILE_VALID_BIT); gnssConfigNeedEngineUpdate.flags &= ~(GNSS_CONFIG_FLAGS_LPP_PROFILE_VALID_BIT);
} }
index++;
} }
if (gnssConfigRequested.flags & GNSS_CONFIG_FLAGS_LPPE_CONTROL_PLANE_VALID_BIT) { if (gnssConfigRequested.flags & GNSS_CONFIG_FLAGS_LPPE_CONTROL_PLANE_VALID_BIT) {
index++;
uint32_t newLppeControlPlaneMask = uint32_t newLppeControlPlaneMask =
mAdapter.convertLppeCp(gnssConfigRequested.lppeControlPlaneMask); mAdapter.convertLppeCp(gnssConfigRequested.lppeControlPlaneMask);
if (newLppeControlPlaneMask != ContextBase::mGps_conf.LPPE_CP_TECHNOLOGY) { if (newLppeControlPlaneMask != ContextBase::mGps_conf.LPPE_CP_TECHNOLOGY) {
@ -884,9 +883,9 @@ GnssAdapter::gnssUpdateConfigCommand(GnssConfig config)
gnssConfigNeedEngineUpdate.flags &= gnssConfigNeedEngineUpdate.flags &=
~(GNSS_CONFIG_FLAGS_LPPE_CONTROL_PLANE_VALID_BIT); ~(GNSS_CONFIG_FLAGS_LPPE_CONTROL_PLANE_VALID_BIT);
} }
index++;
} }
if (gnssConfigRequested.flags & GNSS_CONFIG_FLAGS_LPPE_USER_PLANE_VALID_BIT) { if (gnssConfigRequested.flags & GNSS_CONFIG_FLAGS_LPPE_USER_PLANE_VALID_BIT) {
index++;
uint32_t newLppeUserPlaneMask = uint32_t newLppeUserPlaneMask =
mAdapter.convertLppeUp(gnssConfigRequested.lppeUserPlaneMask); mAdapter.convertLppeUp(gnssConfigRequested.lppeUserPlaneMask);
if (newLppeUserPlaneMask != ContextBase::mGps_conf.LPPE_UP_TECHNOLOGY) { if (newLppeUserPlaneMask != ContextBase::mGps_conf.LPPE_UP_TECHNOLOGY) {
@ -895,10 +894,10 @@ GnssAdapter::gnssUpdateConfigCommand(GnssConfig config)
gnssConfigNeedEngineUpdate.flags &= gnssConfigNeedEngineUpdate.flags &=
~(GNSS_CONFIG_FLAGS_LPPE_USER_PLANE_VALID_BIT); ~(GNSS_CONFIG_FLAGS_LPPE_USER_PLANE_VALID_BIT);
} }
index++;
} }
if (gnssConfigRequested.flags & if (gnssConfigRequested.flags &
GNSS_CONFIG_FLAGS_AGLONASS_POSITION_PROTOCOL_VALID_BIT) { GNSS_CONFIG_FLAGS_AGLONASS_POSITION_PROTOCOL_VALID_BIT) {
index++;
uint32_t newAGloProtMask = uint32_t newAGloProtMask =
mAdapter.convertAGloProt(gnssConfigRequested.aGlonassPositionProtocolMask); mAdapter.convertAGloProt(gnssConfigRequested.aGlonassPositionProtocolMask);
if (newAGloProtMask != ContextBase::mGps_conf.A_GLONASS_POS_PROTOCOL_SELECT && if (newAGloProtMask != ContextBase::mGps_conf.A_GLONASS_POS_PROTOCOL_SELECT &&
@ -908,30 +907,31 @@ GnssAdapter::gnssUpdateConfigCommand(GnssConfig config)
gnssConfigNeedEngineUpdate.flags &= gnssConfigNeedEngineUpdate.flags &=
~(GNSS_CONFIG_FLAGS_AGLONASS_POSITION_PROTOCOL_VALID_BIT); ~(GNSS_CONFIG_FLAGS_AGLONASS_POSITION_PROTOCOL_VALID_BIT);
} }
index++;
} }
if (gnssConfigRequested.flags & GNSS_CONFIG_FLAGS_EM_PDN_FOR_EM_SUPL_VALID_BIT) { if (gnssConfigRequested.flags & GNSS_CONFIG_FLAGS_EM_PDN_FOR_EM_SUPL_VALID_BIT) {
index++;
uint32_t newEP4ES = mAdapter.convertEP4ES( uint32_t newEP4ES = mAdapter.convertEP4ES(
gnssConfigRequested.emergencyPdnForEmergencySupl); gnssConfigRequested.emergencyPdnForEmergencySupl);
if (newEP4ES != ContextBase::mGps_conf.USE_EMERGENCY_PDN_FOR_EMERGENCY_SUPL) { if (newEP4ES != ContextBase::mGps_conf.USE_EMERGENCY_PDN_FOR_EMERGENCY_SUPL) {
ContextBase::mGps_conf.USE_EMERGENCY_PDN_FOR_EMERGENCY_SUPL = newEP4ES; ContextBase::mGps_conf.USE_EMERGENCY_PDN_FOR_EMERGENCY_SUPL = newEP4ES;
} }
index++;
} }
if (gnssConfigRequested.flags & GNSS_CONFIG_FLAGS_SUPL_EM_SERVICES_BIT) { if (gnssConfigRequested.flags & GNSS_CONFIG_FLAGS_SUPL_EM_SERVICES_BIT) {
index++;
uint32_t newSuplEs = mAdapter.convertSuplEs( uint32_t newSuplEs = mAdapter.convertSuplEs(
gnssConfigRequested.suplEmergencyServices); gnssConfigRequested.suplEmergencyServices);
if (newSuplEs != ContextBase::mGps_conf.SUPL_ES) { if (newSuplEs != ContextBase::mGps_conf.SUPL_ES) {
ContextBase::mGps_conf.SUPL_ES = newSuplEs; ContextBase::mGps_conf.SUPL_ES = newSuplEs;
} }
index++;
} }
if (gnssConfigRequested.flags & GNSS_CONFIG_FLAGS_SUPL_MODE_BIT) { if (gnssConfigRequested.flags & GNSS_CONFIG_FLAGS_SUPL_MODE_BIT) {
index++;
uint32_t newSuplMode = mAdapter.convertSuplMode(gnssConfigRequested.suplModeMask); uint32_t newSuplMode = mAdapter.convertSuplMode(gnssConfigRequested.suplModeMask);
if (newSuplMode != ContextBase::mGps_conf.SUPL_MODE) { if (newSuplMode != ContextBase::mGps_conf.SUPL_MODE) {
ContextBase::mGps_conf.SUPL_MODE = newSuplMode; ContextBase::mGps_conf.SUPL_MODE = newSuplMode;
mAdapter.broadcastCapabilities(mAdapter.getCapabilities()); mAdapter.broadcastCapabilities(mAdapter.getCapabilities());
} }
index++;
} }
LocApiCollectiveResponse *configCollectiveResponse = new LocApiCollectiveResponse( LocApiCollectiveResponse *configCollectiveResponse = new LocApiCollectiveResponse(
@ -960,10 +960,10 @@ GnssAdapter::gnssUpdateConfigCommand(GnssConfig config)
errsList[index] = err; errsList[index] = err;
} }
} }
index++;
} }
if (gnssConfigRequested.flags & if (gnssConfigRequested.flags &
GNSS_CONFIG_FLAGS_SET_ASSISTANCE_DATA_VALID_BIT) { GNSS_CONFIG_FLAGS_SET_ASSISTANCE_DATA_VALID_BIT) {
index++;
if (gnssConfigNeedEngineUpdate.flags & if (gnssConfigNeedEngineUpdate.flags &
GNSS_CONFIG_FLAGS_SET_ASSISTANCE_DATA_VALID_BIT) { GNSS_CONFIG_FLAGS_SET_ASSISTANCE_DATA_VALID_BIT) {
if (gnssConfigNeedEngineUpdate.assistanceServer.type == if (gnssConfigNeedEngineUpdate.assistanceServer.type ==
@ -971,8 +971,10 @@ GnssAdapter::gnssUpdateConfigCommand(GnssConfig config)
if ((serverUrlLen != 0) && (oldServerUrl.compare(serverUrl) !=0)) { if ((serverUrlLen != 0) && (oldServerUrl.compare(serverUrl) !=0)) {
err = adapter.mLocApi->setServerSync( err = adapter.mLocApi->setServerSync(
serverUrl.c_str(), serverUrlLen, LOC_AGPS_SUPL_SERVER); serverUrl.c_str(), serverUrlLen, LOC_AGPS_SUPL_SERVER);
if (index < countOfConfigs) {
errsList[index] = err; errsList[index] = err;
} }
}
} else if (gnssConfigNeedEngineUpdate.assistanceServer.type == } else if (gnssConfigNeedEngineUpdate.assistanceServer.type ==
GNSS_ASSISTANCE_TYPE_C2K) { GNSS_ASSISTANCE_TYPE_C2K) {
struct in_addr addr; struct in_addr addr;
@ -992,7 +994,9 @@ GnssAdapter::gnssUpdateConfigCommand(GnssConfig config)
LOC_LOGE("%s]: hostname '%s' cannot be resolved ", LOC_LOGE("%s]: hostname '%s' cannot be resolved ",
__func__, __func__,
gnssConfigNeedEngineUpdate.assistanceServer.hostName); gnssConfigNeedEngineUpdate.assistanceServer.hostName);
if (index < countOfConfigs) {
errsList[index] = LOCATION_ERROR_INVALID_PARAMETER; errsList[index] = LOCATION_ERROR_INVALID_PARAMETER;
}
} else { } else {
resolveAddrSuccess = false; resolveAddrSuccess = false;
} }
@ -1003,13 +1007,15 @@ GnssAdapter::gnssUpdateConfigCommand(GnssConfig config)
err = adapter.mLocApi->setServerSync(ip, err = adapter.mLocApi->setServerSync(ip,
gnssConfigNeedEngineUpdate.assistanceServer.port, gnssConfigNeedEngineUpdate.assistanceServer.port,
LOC_AGPS_CDMA_PDE_SERVER); LOC_AGPS_CDMA_PDE_SERVER);
if (index < countOfConfigs) {
errsList[index] = err; errsList[index] = err;
} }
} }
} }
} }
if (gnssConfigRequested.flags & GNSS_CONFIG_FLAGS_SUPL_VERSION_VALID_BIT) {
index++; index++;
}
if (gnssConfigRequested.flags & GNSS_CONFIG_FLAGS_SUPL_VERSION_VALID_BIT) {
if (gnssConfigNeedEngineUpdate.flags & if (gnssConfigNeedEngineUpdate.flags &
GNSS_CONFIG_FLAGS_SUPL_VERSION_VALID_BIT) { GNSS_CONFIG_FLAGS_SUPL_VERSION_VALID_BIT) {
err = adapter.mLocApi->setSUPLVersionSync(gnssConfigRequested.suplVersion); err = adapter.mLocApi->setSUPLVersionSync(gnssConfigRequested.suplVersion);
@ -1017,9 +1023,9 @@ GnssAdapter::gnssUpdateConfigCommand(GnssConfig config)
errsList[index] = err; errsList[index] = err;
} }
} }
index++;
} }
if (gnssConfigRequested.flags & GNSS_CONFIG_FLAGS_LPP_PROFILE_VALID_BIT) { if (gnssConfigRequested.flags & GNSS_CONFIG_FLAGS_LPP_PROFILE_VALID_BIT) {
index++;
if (gnssConfigNeedEngineUpdate.flags & if (gnssConfigNeedEngineUpdate.flags &
GNSS_CONFIG_FLAGS_LPP_PROFILE_VALID_BIT) { GNSS_CONFIG_FLAGS_LPP_PROFILE_VALID_BIT) {
err = adapter.mLocApi->setLPPConfigSync(gnssConfigRequested.lppProfile); err = adapter.mLocApi->setLPPConfigSync(gnssConfigRequested.lppProfile);
@ -1027,9 +1033,9 @@ GnssAdapter::gnssUpdateConfigCommand(GnssConfig config)
errsList[index] = err; errsList[index] = err;
} }
} }
index++;
} }
if (gnssConfigRequested.flags & GNSS_CONFIG_FLAGS_LPPE_CONTROL_PLANE_VALID_BIT) { if (gnssConfigRequested.flags & GNSS_CONFIG_FLAGS_LPPE_CONTROL_PLANE_VALID_BIT) {
index++;
if (gnssConfigNeedEngineUpdate.flags & if (gnssConfigNeedEngineUpdate.flags &
GNSS_CONFIG_FLAGS_LPPE_CONTROL_PLANE_VALID_BIT) { GNSS_CONFIG_FLAGS_LPPE_CONTROL_PLANE_VALID_BIT) {
err = adapter.mLocApi->setLPPeProtocolCpSync( err = adapter.mLocApi->setLPPeProtocolCpSync(
@ -1038,9 +1044,9 @@ GnssAdapter::gnssUpdateConfigCommand(GnssConfig config)
errsList[index] = err; errsList[index] = err;
} }
} }
index++;
} }
if (gnssConfigRequested.flags & GNSS_CONFIG_FLAGS_LPPE_USER_PLANE_VALID_BIT) { if (gnssConfigRequested.flags & GNSS_CONFIG_FLAGS_LPPE_USER_PLANE_VALID_BIT) {
index++;
if (gnssConfigNeedEngineUpdate.flags & if (gnssConfigNeedEngineUpdate.flags &
GNSS_CONFIG_FLAGS_LPPE_USER_PLANE_VALID_BIT) { GNSS_CONFIG_FLAGS_LPPE_USER_PLANE_VALID_BIT) {
err = adapter.mLocApi->setLPPeProtocolUpSync( err = adapter.mLocApi->setLPPeProtocolUpSync(
@ -1049,10 +1055,10 @@ GnssAdapter::gnssUpdateConfigCommand(GnssConfig config)
errsList[index] = err; errsList[index] = err;
} }
} }
index++;
} }
if (gnssConfigRequested.flags & if (gnssConfigRequested.flags &
GNSS_CONFIG_FLAGS_AGLONASS_POSITION_PROTOCOL_VALID_BIT) { GNSS_CONFIG_FLAGS_AGLONASS_POSITION_PROTOCOL_VALID_BIT) {
index++;
if (gnssConfigNeedEngineUpdate.flags & if (gnssConfigNeedEngineUpdate.flags &
GNSS_CONFIG_FLAGS_AGLONASS_POSITION_PROTOCOL_VALID_BIT) { GNSS_CONFIG_FLAGS_AGLONASS_POSITION_PROTOCOL_VALID_BIT) {
err = adapter.mLocApi->setAGLONASSProtocolSync( err = adapter.mLocApi->setAGLONASSProtocolSync(
@ -1061,9 +1067,9 @@ GnssAdapter::gnssUpdateConfigCommand(GnssConfig config)
errsList[index] = err; errsList[index] = err;
} }
} }
index++;
} }
if (gnssConfigRequested.flags & GNSS_CONFIG_FLAGS_BLACKLISTED_SV_IDS_BIT) { if (gnssConfigRequested.flags & GNSS_CONFIG_FLAGS_BLACKLISTED_SV_IDS_BIT) {
index++;
// Check if feature is supported // Check if feature is supported
if (!ContextBase::isFeatureSupported( if (!ContextBase::isFeatureSupported(
LOC_SUPPORTED_FEATURE_CONSTELLATION_ENABLEMENT_V02)) { LOC_SUPPORTED_FEATURE_CONSTELLATION_ENABLEMENT_V02)) {
@ -1079,6 +1085,7 @@ GnssAdapter::gnssUpdateConfigCommand(GnssConfig config)
if (index < countOfConfigs) { if (index < countOfConfigs) {
errsList[index] = err; errsList[index] = err;
} }
index++;
} }
configCollectiveResponse->returnToSender(errsList); configCollectiveResponse->returnToSender(errsList);
})); }));