Fix SV in use mask isn't correct for multiband SVs
Fix the issue that SV in use mask isn't set correct in reportSv function in GnssAdapter.cpp. Change-Id: Ie90fc4b938875817b105745cf531ee8dc31e74bc CRs-Fixed: 2473868
This commit is contained in:
parent
16c0367c5b
commit
aadad65840
2 changed files with 7 additions and 11 deletions
|
@ -97,8 +97,7 @@ GnssAdapter::GnssAdapter() :
|
|||
mPowerStateCb(nullptr),
|
||||
mIsE911Session(NULL),
|
||||
mGnssMbSvIdUsedInPosition{},
|
||||
mGnssMbSvIdUsedInPosAvail(false),
|
||||
mGnssSignalType()
|
||||
mGnssMbSvIdUsedInPosAvail(false)
|
||||
{
|
||||
LOC_LOGD("%s]: Constructor %p", __func__, this);
|
||||
mLocPositionMode.mode = LOC_POSITION_MODE_INVALID;
|
||||
|
@ -3196,9 +3195,6 @@ GnssAdapter::reportPosition(const UlpLocation& ulpLocation,
|
|||
if (locationExtended.flags & GPS_LOCATION_EXTENDED_HAS_MULTIBAND) {
|
||||
mGnssMbSvIdUsedInPosAvail = true;
|
||||
mGnssMbSvIdUsedInPosition = locationExtended.gnss_mb_sv_used_ids;
|
||||
for (int i = 0; i < GNSS_SV_MAX; i++) {
|
||||
mGnssSignalType[i] = locationExtended.measUsageInfo[i].gnssSignalType;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -3267,11 +3263,12 @@ GnssAdapter::reportSv(GnssSvNotification& svNotify)
|
|||
for (int i=0; i < numSv; i++) {
|
||||
svUsedIdMask = 0;
|
||||
gnssSvId = svNotify.gnssSvs[i].svId;
|
||||
GnssSignalTypeMask signalTypeMask = svNotify.gnssSvs[i].gnssSignalTypeMask;
|
||||
switch (svNotify.gnssSvs[i].type) {
|
||||
case GNSS_SV_TYPE_GPS:
|
||||
if (mGnssSvIdUsedInPosAvail) {
|
||||
if (mGnssMbSvIdUsedInPosAvail) {
|
||||
switch (mGnssSignalType[i]) {
|
||||
switch (signalTypeMask) {
|
||||
case GNSS_SIGNAL_GPS_L1CA:
|
||||
svUsedIdMask = mGnssMbSvIdUsedInPosition.gps_l1ca_sv_used_ids_mask;
|
||||
break;
|
||||
|
@ -3293,7 +3290,7 @@ GnssAdapter::reportSv(GnssSvNotification& svNotify)
|
|||
case GNSS_SV_TYPE_GLONASS:
|
||||
if (mGnssSvIdUsedInPosAvail) {
|
||||
if (mGnssMbSvIdUsedInPosAvail) {
|
||||
switch (mGnssSignalType[i]) {
|
||||
switch (signalTypeMask) {
|
||||
case GNSS_SIGNAL_GLONASS_G1:
|
||||
svUsedIdMask = mGnssMbSvIdUsedInPosition.glo_g1_sv_used_ids_mask;
|
||||
break;
|
||||
|
@ -3309,7 +3306,7 @@ GnssAdapter::reportSv(GnssSvNotification& svNotify)
|
|||
case GNSS_SV_TYPE_BEIDOU:
|
||||
if (mGnssSvIdUsedInPosAvail) {
|
||||
if (mGnssMbSvIdUsedInPosAvail) {
|
||||
switch (mGnssSignalType[i]) {
|
||||
switch (signalTypeMask) {
|
||||
case GNSS_SIGNAL_BEIDOU_B1I:
|
||||
svUsedIdMask = mGnssMbSvIdUsedInPosition.bds_b1i_sv_used_ids_mask;
|
||||
break;
|
||||
|
@ -3334,7 +3331,7 @@ GnssAdapter::reportSv(GnssSvNotification& svNotify)
|
|||
case GNSS_SV_TYPE_GALILEO:
|
||||
if (mGnssSvIdUsedInPosAvail) {
|
||||
if (mGnssMbSvIdUsedInPosAvail) {
|
||||
switch (mGnssSignalType[i]) {
|
||||
switch (signalTypeMask) {
|
||||
case GNSS_SIGNAL_GALILEO_E1:
|
||||
svUsedIdMask = mGnssMbSvIdUsedInPosition.gal_e1_sv_used_ids_mask;
|
||||
break;
|
||||
|
@ -3353,7 +3350,7 @@ GnssAdapter::reportSv(GnssSvNotification& svNotify)
|
|||
case GNSS_SV_TYPE_QZSS:
|
||||
if (mGnssSvIdUsedInPosAvail) {
|
||||
if (mGnssMbSvIdUsedInPosAvail) {
|
||||
switch (mGnssSignalType[i]) {
|
||||
switch (signalTypeMask) {
|
||||
case GNSS_SIGNAL_QZSS_L1CA:
|
||||
svUsedIdMask = mGnssMbSvIdUsedInPosition.qzss_l1ca_sv_used_ids_mask;
|
||||
break;
|
||||
|
|
|
@ -147,7 +147,6 @@ class GnssAdapter : public LocAdapterBase {
|
|||
bool mGnssSvIdUsedInPosAvail;
|
||||
GnssSvMbUsedInPosition mGnssMbSvIdUsedInPosition;
|
||||
bool mGnssMbSvIdUsedInPosAvail;
|
||||
GnssSignalTypeMask mGnssSignalType[GNSS_SV_MAX];
|
||||
|
||||
/* ==== CONTROL ======================================================================== */
|
||||
LocationControlCallbacks mControlCallbacks;
|
||||
|
|
Loading…
Reference in a new issue