Fix config updates for some LocatoinAPI bit masks
Fix SUPL mode, GPS lock, and GNSS Ni options to be treated like bit masks instead of values. Rename some enums of bit masks with _BIT as convention. Change-Id: I036b682ca3472159304ef569ff67d28dc94f644e CRs-fixed: 2039308
This commit is contained in:
parent
8bf78f55ae
commit
fc5c5f6625
4 changed files with 57 additions and 58 deletions
|
@ -95,10 +95,13 @@ Return<bool> GnssConfiguration::setSuplMode(uint8_t mode) {
|
||||||
config.suplModeMask = 0; // STANDALONE ONLY
|
config.suplModeMask = 0; // STANDALONE ONLY
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
config.suplModeMask = GNSS_CONFIG_SUPL_MODE_MSB;
|
config.suplModeMask = GNSS_CONFIG_SUPL_MODE_MSB_BIT;
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
config.suplModeMask = GNSS_CONFIG_SUPL_MODE_MSA;
|
config.suplModeMask = GNSS_CONFIG_SUPL_MODE_MSA_BIT;
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
config.suplModeMask = GNSS_CONFIG_SUPL_MODE_MSB_BIT | GNSS_CONFIG_SUPL_MODE_MSA_BIT;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
LOC_LOGE("%s]: invalid mode: %d.", __FUNCTION__, mode);
|
LOC_LOGE("%s]: invalid mode: %d.", __FUNCTION__, mode);
|
||||||
|
@ -196,7 +199,6 @@ Return<bool> GnssConfiguration::setGpsLock(uint8_t lock) {
|
||||||
return false;
|
return false;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
config.gpsLock = static_cast<GnssConfigGpsLock>(lock);
|
|
||||||
|
|
||||||
return mGnss->updateConfiguration(config);
|
return mGnss->updateConfiguration(config);
|
||||||
}
|
}
|
||||||
|
|
|
@ -140,39 +140,39 @@ void GnssAPIClient::gnssDeleteAidingData(IGnss::GnssAidingData aidingDataFlags)
|
||||||
LOC_LOGD("%s]: (%02hx)", __FUNCTION__, aidingDataFlags);
|
LOC_LOGD("%s]: (%02hx)", __FUNCTION__, aidingDataFlags);
|
||||||
GnssAidingData data;
|
GnssAidingData data;
|
||||||
memset(&data, 0, sizeof (GnssAidingData));
|
memset(&data, 0, sizeof (GnssAidingData));
|
||||||
data.sv.svTypeMask = GNSS_AIDING_DATA_SV_TYPE_GPS |
|
data.sv.svTypeMask = GNSS_AIDING_DATA_SV_TYPE_GPS_BIT |
|
||||||
GNSS_AIDING_DATA_SV_TYPE_GLONASS |
|
GNSS_AIDING_DATA_SV_TYPE_GLONASS_BIT |
|
||||||
GNSS_AIDING_DATA_SV_TYPE_QZSS |
|
GNSS_AIDING_DATA_SV_TYPE_QZSS_BIT |
|
||||||
GNSS_AIDING_DATA_SV_TYPE_BEIDOU |
|
GNSS_AIDING_DATA_SV_TYPE_BEIDOU_BIT |
|
||||||
GNSS_AIDING_DATA_SV_TYPE_GALILEO;
|
GNSS_AIDING_DATA_SV_TYPE_GALILEO_BIT;
|
||||||
|
|
||||||
if (aidingDataFlags == IGnss::GnssAidingData::DELETE_ALL)
|
if (aidingDataFlags == IGnss::GnssAidingData::DELETE_ALL)
|
||||||
data.deleteAll = true;
|
data.deleteAll = true;
|
||||||
else {
|
else {
|
||||||
if (aidingDataFlags & IGnss::GnssAidingData::DELETE_EPHEMERIS)
|
if (aidingDataFlags & IGnss::GnssAidingData::DELETE_EPHEMERIS)
|
||||||
data.sv.svMask |= GNSS_AIDING_DATA_SV_EPHEMERIS;
|
data.sv.svMask |= GNSS_AIDING_DATA_SV_EPHEMERIS_BIT;
|
||||||
if (aidingDataFlags & IGnss::GnssAidingData::DELETE_ALMANAC)
|
if (aidingDataFlags & IGnss::GnssAidingData::DELETE_ALMANAC)
|
||||||
data.sv.svMask |= GNSS_AIDING_DATA_SV_ALMANAC;
|
data.sv.svMask |= GNSS_AIDING_DATA_SV_ALMANAC_BIT;
|
||||||
if (aidingDataFlags & IGnss::GnssAidingData::DELETE_POSITION)
|
if (aidingDataFlags & IGnss::GnssAidingData::DELETE_POSITION)
|
||||||
data.common.mask |= GNSS_AIDING_DATA_COMMON_POSITION;
|
data.common.mask |= GNSS_AIDING_DATA_COMMON_POSITION_BIT;
|
||||||
if (aidingDataFlags & IGnss::GnssAidingData::DELETE_TIME)
|
if (aidingDataFlags & IGnss::GnssAidingData::DELETE_TIME)
|
||||||
data.common.mask |= GNSS_AIDING_DATA_COMMON_TIME;
|
data.common.mask |= GNSS_AIDING_DATA_COMMON_TIME_BIT;
|
||||||
if (aidingDataFlags & IGnss::GnssAidingData::DELETE_IONO)
|
if (aidingDataFlags & IGnss::GnssAidingData::DELETE_IONO)
|
||||||
data.sv.svMask |= GNSS_AIDING_DATA_SV_IONOSPHERE;
|
data.sv.svMask |= GNSS_AIDING_DATA_SV_IONOSPHERE_BIT;
|
||||||
if (aidingDataFlags & IGnss::GnssAidingData::DELETE_UTC)
|
if (aidingDataFlags & IGnss::GnssAidingData::DELETE_UTC)
|
||||||
data.common.mask |= GNSS_AIDING_DATA_COMMON_UTC;
|
data.common.mask |= GNSS_AIDING_DATA_COMMON_UTC_BIT;
|
||||||
if (aidingDataFlags & IGnss::GnssAidingData::DELETE_HEALTH)
|
if (aidingDataFlags & IGnss::GnssAidingData::DELETE_HEALTH)
|
||||||
data.sv.svMask |= GNSS_AIDING_DATA_SV_HEALTH;
|
data.sv.svMask |= GNSS_AIDING_DATA_SV_HEALTH_BIT;
|
||||||
if (aidingDataFlags & IGnss::GnssAidingData::DELETE_SVDIR)
|
if (aidingDataFlags & IGnss::GnssAidingData::DELETE_SVDIR)
|
||||||
data.sv.svMask |= GNSS_AIDING_DATA_SV_DIRECTION;
|
data.sv.svMask |= GNSS_AIDING_DATA_SV_DIRECTION_BIT;
|
||||||
if (aidingDataFlags & IGnss::GnssAidingData::DELETE_SVSTEER)
|
if (aidingDataFlags & IGnss::GnssAidingData::DELETE_SVSTEER)
|
||||||
data.sv.svMask |= GNSS_AIDING_DATA_SV_STEER;
|
data.sv.svMask |= GNSS_AIDING_DATA_SV_STEER_BIT;
|
||||||
if (aidingDataFlags & IGnss::GnssAidingData::DELETE_SADATA)
|
if (aidingDataFlags & IGnss::GnssAidingData::DELETE_SADATA)
|
||||||
data.sv.svMask |= GNSS_AIDING_DATA_SV_SA_DATA;
|
data.sv.svMask |= GNSS_AIDING_DATA_SV_SA_DATA_BIT;
|
||||||
if (aidingDataFlags & IGnss::GnssAidingData::DELETE_RTI)
|
if (aidingDataFlags & IGnss::GnssAidingData::DELETE_RTI)
|
||||||
data.common.mask |= GNSS_AIDING_DATA_COMMON_RTI;
|
data.common.mask |= GNSS_AIDING_DATA_COMMON_RTI_BIT;
|
||||||
if (aidingDataFlags & IGnss::GnssAidingData::DELETE_CELLDB_INFO)
|
if (aidingDataFlags & IGnss::GnssAidingData::DELETE_CELLDB_INFO)
|
||||||
data.common.mask |= GNSS_AIDING_DATA_COMMON_CELLDB;
|
data.common.mask |= GNSS_AIDING_DATA_COMMON_CELLDB_BIT;
|
||||||
}
|
}
|
||||||
locAPIGnssDeleteAidingData(data);
|
locAPIGnssDeleteAidingData(data);
|
||||||
}
|
}
|
||||||
|
@ -306,15 +306,12 @@ void GnssAPIClient::onGnssNiCb(uint32_t id, GnssNiNotification gnssNiNotificatio
|
||||||
notificationGnss.niType =
|
notificationGnss.niType =
|
||||||
static_cast<IGnssNiCallback::GnssNiType>(4/*hardcode until IGnssNiCallback adds value*/);
|
static_cast<IGnssNiCallback::GnssNiType>(4/*hardcode until IGnssNiCallback adds value*/);
|
||||||
|
|
||||||
if (gnssNiNotification.options == GNSS_NI_OPTIONS_NOTIFICATION)
|
if (gnssNiNotification.options & GNSS_NI_OPTIONS_NOTIFICATION_BIT)
|
||||||
notificationGnss.notifyFlags =
|
notificationGnss.notifyFlags |= IGnssNiCallback::GnssNiNotifyFlags::NEED_NOTIFY;
|
||||||
static_cast<uint32_t>(IGnssNiCallback::GnssNiNotifyFlags::NEED_NOTIFY);
|
else if (gnssNiNotification.options & GNSS_NI_OPTIONS_VERIFICATION_BIT)
|
||||||
else if (gnssNiNotification.options == GNSS_NI_OPTIONS_VERIFICATION)
|
notificationGnss.notifyFlags |= IGnssNiCallback::GnssNiNotifyFlags::NEED_VERIFY;
|
||||||
notificationGnss.notifyFlags =
|
else if (gnssNiNotification.options & GNSS_NI_OPTIONS_PRIVACY_OVERRIDE_BIT)
|
||||||
static_cast<uint32_t>(IGnssNiCallback::GnssNiNotifyFlags::NEED_VERIFY);
|
notificationGnss.notifyFlags |= IGnssNiCallback::GnssNiNotifyFlags::PRIVACY_OVERRIDE;
|
||||||
else if (gnssNiNotification.options == GNSS_NI_OPTIONS_PRIVACY_OVERRIDE)
|
|
||||||
notificationGnss.notifyFlags =
|
|
||||||
static_cast<uint32_t>(IGnssNiCallback::GnssNiNotifyFlags::PRIVACY_OVERRIDE);
|
|
||||||
|
|
||||||
notificationGnss.timeoutSec = gnssNiNotification.timeout;
|
notificationGnss.timeoutSec = gnssNiNotification.timeout;
|
||||||
|
|
||||||
|
|
|
@ -435,10 +435,10 @@ uint32_t
|
||||||
GnssAdapter::convertSuplMode(const GnssConfigSuplModeMask suplModeMask)
|
GnssAdapter::convertSuplMode(const GnssConfigSuplModeMask suplModeMask)
|
||||||
{
|
{
|
||||||
uint32_t mask = 0;
|
uint32_t mask = 0;
|
||||||
if (GNSS_CONFIG_SUPL_MODE_MSB & suplModeMask) {
|
if (GNSS_CONFIG_SUPL_MODE_MSB_BIT & suplModeMask) {
|
||||||
mask |= (1<<0);
|
mask |= (1<<0);
|
||||||
}
|
}
|
||||||
if (GNSS_CONFIG_SUPL_MODE_MSA & suplModeMask) {
|
if (GNSS_CONFIG_SUPL_MODE_MSA_BIT & suplModeMask) {
|
||||||
mask |= (1<<1);
|
mask |= (1<<1);
|
||||||
}
|
}
|
||||||
return mask;
|
return mask;
|
||||||
|
|
|
@ -202,8 +202,8 @@ typedef enum {
|
||||||
|
|
||||||
typedef uint16_t GnssConfigSuplModeMask;
|
typedef uint16_t GnssConfigSuplModeMask;
|
||||||
typedef enum {
|
typedef enum {
|
||||||
GNSS_CONFIG_SUPL_MODE_MSB = (1<<0),
|
GNSS_CONFIG_SUPL_MODE_MSB_BIT = (1<<0),
|
||||||
GNSS_CONFIG_SUPL_MODE_MSA = (1<<1),
|
GNSS_CONFIG_SUPL_MODE_MSA_BIT = (1<<1),
|
||||||
} GnssConfigSuplModeBits;
|
} GnssConfigSuplModeBits;
|
||||||
|
|
||||||
typedef uint32_t GnssConfigFlagsMask;
|
typedef uint32_t GnssConfigFlagsMask;
|
||||||
|
@ -236,9 +236,9 @@ typedef enum {
|
||||||
|
|
||||||
typedef uint16_t GnssNiOptionsMask;
|
typedef uint16_t GnssNiOptionsMask;
|
||||||
typedef enum {
|
typedef enum {
|
||||||
GNSS_NI_OPTIONS_NOTIFICATION = (1<<0),
|
GNSS_NI_OPTIONS_NOTIFICATION_BIT = (1<<0),
|
||||||
GNSS_NI_OPTIONS_VERIFICATION = (1<<1),
|
GNSS_NI_OPTIONS_VERIFICATION_BIT = (1<<1),
|
||||||
GNSS_NI_OPTIONS_PRIVACY_OVERRIDE = (1<<2),
|
GNSS_NI_OPTIONS_PRIVACY_OVERRIDE_BIT = (1<<2),
|
||||||
} GnssNiOptionsBits;
|
} GnssNiOptionsBits;
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
|
@ -366,26 +366,26 @@ typedef enum {
|
||||||
|
|
||||||
typedef uint32_t GnssAidingDataSvMask;
|
typedef uint32_t GnssAidingDataSvMask;
|
||||||
typedef enum {
|
typedef enum {
|
||||||
GNSS_AIDING_DATA_SV_EPHEMERIS = (1<<0), // ephemeris
|
GNSS_AIDING_DATA_SV_EPHEMERIS_BIT = (1<<0), // ephemeris
|
||||||
GNSS_AIDING_DATA_SV_ALMANAC = (1<<1), // almanac
|
GNSS_AIDING_DATA_SV_ALMANAC_BIT = (1<<1), // almanac
|
||||||
GNSS_AIDING_DATA_SV_HEALTH = (1<<2), // health
|
GNSS_AIDING_DATA_SV_HEALTH_BIT = (1<<2), // health
|
||||||
GNSS_AIDING_DATA_SV_DIRECTION = (1<<3), // direction
|
GNSS_AIDING_DATA_SV_DIRECTION_BIT = (1<<3), // direction
|
||||||
GNSS_AIDING_DATA_SV_STEER = (1<<4), // steer
|
GNSS_AIDING_DATA_SV_STEER_BIT = (1<<4), // steer
|
||||||
GNSS_AIDING_DATA_SV_ALMANAC_CORR = (1<<5), // almanac correction
|
GNSS_AIDING_DATA_SV_ALMANAC_CORR_BIT = (1<<5), // almanac correction
|
||||||
GNSS_AIDING_DATA_SV_BLACKLIST = (1<<6), // blacklist SVs
|
GNSS_AIDING_DATA_SV_BLACKLIST_BIT = (1<<6), // blacklist SVs
|
||||||
GNSS_AIDING_DATA_SV_SA_DATA = (1<<7), // sensitivity assistance data
|
GNSS_AIDING_DATA_SV_SA_DATA_BIT = (1<<7), // sensitivity assistance data
|
||||||
GNSS_AIDING_DATA_SV_NO_EXIST = (1<<8), // SV does not exist
|
GNSS_AIDING_DATA_SV_NO_EXIST_BIT = (1<<8), // SV does not exist
|
||||||
GNSS_AIDING_DATA_SV_IONOSPHERE = (1<<9), // ionosphere correction
|
GNSS_AIDING_DATA_SV_IONOSPHERE_BIT = (1<<9), // ionosphere correction
|
||||||
GNSS_AIDING_DATA_SV_TIME = (1<<10),// reset satellite time
|
GNSS_AIDING_DATA_SV_TIME_BIT = (1<<10),// reset satellite time
|
||||||
} GnssAidingDataSvBits;
|
} GnssAidingDataSvBits;
|
||||||
|
|
||||||
typedef uint32_t GnssAidingDataSvTypeMask;
|
typedef uint32_t GnssAidingDataSvTypeMask;
|
||||||
typedef enum {
|
typedef enum {
|
||||||
GNSS_AIDING_DATA_SV_TYPE_GPS = (1<<0),
|
GNSS_AIDING_DATA_SV_TYPE_GPS_BIT = (1<<0),
|
||||||
GNSS_AIDING_DATA_SV_TYPE_GLONASS = (1<<1),
|
GNSS_AIDING_DATA_SV_TYPE_GLONASS_BIT = (1<<1),
|
||||||
GNSS_AIDING_DATA_SV_TYPE_QZSS = (1<<2),
|
GNSS_AIDING_DATA_SV_TYPE_QZSS_BIT = (1<<2),
|
||||||
GNSS_AIDING_DATA_SV_TYPE_BEIDOU = (1<<3),
|
GNSS_AIDING_DATA_SV_TYPE_BEIDOU_BIT = (1<<3),
|
||||||
GNSS_AIDING_DATA_SV_TYPE_GALILEO = (1<<4),
|
GNSS_AIDING_DATA_SV_TYPE_GALILEO_BIT = (1<<4),
|
||||||
} GnssAidingDataSvTypeBits;
|
} GnssAidingDataSvTypeBits;
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
|
@ -395,12 +395,12 @@ typedef struct {
|
||||||
|
|
||||||
typedef uint32_t GnssAidingDataCommonMask;
|
typedef uint32_t GnssAidingDataCommonMask;
|
||||||
typedef enum {
|
typedef enum {
|
||||||
GNSS_AIDING_DATA_COMMON_POSITION = (1<<0), // position estimate
|
GNSS_AIDING_DATA_COMMON_POSITION_BIT = (1<<0), // position estimate
|
||||||
GNSS_AIDING_DATA_COMMON_TIME = (1<<1), // reset all clock values
|
GNSS_AIDING_DATA_COMMON_TIME_BIT = (1<<1), // reset all clock values
|
||||||
GNSS_AIDING_DATA_COMMON_UTC = (1<<2), // UTC estimate
|
GNSS_AIDING_DATA_COMMON_UTC_BIT = (1<<2), // UTC estimate
|
||||||
GNSS_AIDING_DATA_COMMON_RTI = (1<<3), // RTI
|
GNSS_AIDING_DATA_COMMON_RTI_BIT = (1<<3), // RTI
|
||||||
GNSS_AIDING_DATA_COMMON_FREQ_BIAS_EST = (1<<4), // frequency bias estimate
|
GNSS_AIDING_DATA_COMMON_FREQ_BIAS_EST_BIT = (1<<4), // frequency bias estimate
|
||||||
GNSS_AIDING_DATA_COMMON_CELLDB = (1<<5), // all celldb info
|
GNSS_AIDING_DATA_COMMON_CELLDB_BIT = (1<<5), // all celldb info
|
||||||
} GnssAidingDataCommonBits;
|
} GnssAidingDataCommonBits;
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
|
|
Loading…
Reference in a new issue