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
|
||||
break;
|
||||
case 1:
|
||||
config.suplModeMask = GNSS_CONFIG_SUPL_MODE_MSB;
|
||||
config.suplModeMask = GNSS_CONFIG_SUPL_MODE_MSB_BIT;
|
||||
break;
|
||||
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;
|
||||
default:
|
||||
LOC_LOGE("%s]: invalid mode: %d.", __FUNCTION__, mode);
|
||||
|
@ -196,7 +199,6 @@ Return<bool> GnssConfiguration::setGpsLock(uint8_t lock) {
|
|||
return false;
|
||||
break;
|
||||
}
|
||||
config.gpsLock = static_cast<GnssConfigGpsLock>(lock);
|
||||
|
||||
return mGnss->updateConfiguration(config);
|
||||
}
|
||||
|
|
|
@ -140,39 +140,39 @@ void GnssAPIClient::gnssDeleteAidingData(IGnss::GnssAidingData aidingDataFlags)
|
|||
LOC_LOGD("%s]: (%02hx)", __FUNCTION__, aidingDataFlags);
|
||||
GnssAidingData data;
|
||||
memset(&data, 0, sizeof (GnssAidingData));
|
||||
data.sv.svTypeMask = GNSS_AIDING_DATA_SV_TYPE_GPS |
|
||||
GNSS_AIDING_DATA_SV_TYPE_GLONASS |
|
||||
GNSS_AIDING_DATA_SV_TYPE_QZSS |
|
||||
GNSS_AIDING_DATA_SV_TYPE_BEIDOU |
|
||||
GNSS_AIDING_DATA_SV_TYPE_GALILEO;
|
||||
data.sv.svTypeMask = GNSS_AIDING_DATA_SV_TYPE_GPS_BIT |
|
||||
GNSS_AIDING_DATA_SV_TYPE_GLONASS_BIT |
|
||||
GNSS_AIDING_DATA_SV_TYPE_QZSS_BIT |
|
||||
GNSS_AIDING_DATA_SV_TYPE_BEIDOU_BIT |
|
||||
GNSS_AIDING_DATA_SV_TYPE_GALILEO_BIT;
|
||||
|
||||
if (aidingDataFlags == IGnss::GnssAidingData::DELETE_ALL)
|
||||
data.deleteAll = true;
|
||||
else {
|
||||
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)
|
||||
data.sv.svMask |= GNSS_AIDING_DATA_SV_ALMANAC;
|
||||
data.sv.svMask |= GNSS_AIDING_DATA_SV_ALMANAC_BIT;
|
||||
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)
|
||||
data.common.mask |= GNSS_AIDING_DATA_COMMON_TIME;
|
||||
data.common.mask |= GNSS_AIDING_DATA_COMMON_TIME_BIT;
|
||||
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)
|
||||
data.common.mask |= GNSS_AIDING_DATA_COMMON_UTC;
|
||||
data.common.mask |= GNSS_AIDING_DATA_COMMON_UTC_BIT;
|
||||
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)
|
||||
data.sv.svMask |= GNSS_AIDING_DATA_SV_DIRECTION;
|
||||
data.sv.svMask |= GNSS_AIDING_DATA_SV_DIRECTION_BIT;
|
||||
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)
|
||||
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)
|
||||
data.common.mask |= GNSS_AIDING_DATA_COMMON_RTI;
|
||||
data.common.mask |= GNSS_AIDING_DATA_COMMON_RTI_BIT;
|
||||
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);
|
||||
}
|
||||
|
@ -306,15 +306,12 @@ void GnssAPIClient::onGnssNiCb(uint32_t id, GnssNiNotification gnssNiNotificatio
|
|||
notificationGnss.niType =
|
||||
static_cast<IGnssNiCallback::GnssNiType>(4/*hardcode until IGnssNiCallback adds value*/);
|
||||
|
||||
if (gnssNiNotification.options == GNSS_NI_OPTIONS_NOTIFICATION)
|
||||
notificationGnss.notifyFlags =
|
||||
static_cast<uint32_t>(IGnssNiCallback::GnssNiNotifyFlags::NEED_NOTIFY);
|
||||
else if (gnssNiNotification.options == GNSS_NI_OPTIONS_VERIFICATION)
|
||||
notificationGnss.notifyFlags =
|
||||
static_cast<uint32_t>(IGnssNiCallback::GnssNiNotifyFlags::NEED_VERIFY);
|
||||
else if (gnssNiNotification.options == GNSS_NI_OPTIONS_PRIVACY_OVERRIDE)
|
||||
notificationGnss.notifyFlags =
|
||||
static_cast<uint32_t>(IGnssNiCallback::GnssNiNotifyFlags::PRIVACY_OVERRIDE);
|
||||
if (gnssNiNotification.options & GNSS_NI_OPTIONS_NOTIFICATION_BIT)
|
||||
notificationGnss.notifyFlags |= IGnssNiCallback::GnssNiNotifyFlags::NEED_NOTIFY;
|
||||
else if (gnssNiNotification.options & GNSS_NI_OPTIONS_VERIFICATION_BIT)
|
||||
notificationGnss.notifyFlags |= IGnssNiCallback::GnssNiNotifyFlags::NEED_VERIFY;
|
||||
else if (gnssNiNotification.options & GNSS_NI_OPTIONS_PRIVACY_OVERRIDE_BIT)
|
||||
notificationGnss.notifyFlags |= IGnssNiCallback::GnssNiNotifyFlags::PRIVACY_OVERRIDE;
|
||||
|
||||
notificationGnss.timeoutSec = gnssNiNotification.timeout;
|
||||
|
||||
|
|
|
@ -435,10 +435,10 @@ uint32_t
|
|||
GnssAdapter::convertSuplMode(const GnssConfigSuplModeMask suplModeMask)
|
||||
{
|
||||
uint32_t mask = 0;
|
||||
if (GNSS_CONFIG_SUPL_MODE_MSB & suplModeMask) {
|
||||
if (GNSS_CONFIG_SUPL_MODE_MSB_BIT & suplModeMask) {
|
||||
mask |= (1<<0);
|
||||
}
|
||||
if (GNSS_CONFIG_SUPL_MODE_MSA & suplModeMask) {
|
||||
if (GNSS_CONFIG_SUPL_MODE_MSA_BIT & suplModeMask) {
|
||||
mask |= (1<<1);
|
||||
}
|
||||
return mask;
|
||||
|
|
|
@ -202,8 +202,8 @@ typedef enum {
|
|||
|
||||
typedef uint16_t GnssConfigSuplModeMask;
|
||||
typedef enum {
|
||||
GNSS_CONFIG_SUPL_MODE_MSB = (1<<0),
|
||||
GNSS_CONFIG_SUPL_MODE_MSA = (1<<1),
|
||||
GNSS_CONFIG_SUPL_MODE_MSB_BIT = (1<<0),
|
||||
GNSS_CONFIG_SUPL_MODE_MSA_BIT = (1<<1),
|
||||
} GnssConfigSuplModeBits;
|
||||
|
||||
typedef uint32_t GnssConfigFlagsMask;
|
||||
|
@ -236,9 +236,9 @@ typedef enum {
|
|||
|
||||
typedef uint16_t GnssNiOptionsMask;
|
||||
typedef enum {
|
||||
GNSS_NI_OPTIONS_NOTIFICATION = (1<<0),
|
||||
GNSS_NI_OPTIONS_VERIFICATION = (1<<1),
|
||||
GNSS_NI_OPTIONS_PRIVACY_OVERRIDE = (1<<2),
|
||||
GNSS_NI_OPTIONS_NOTIFICATION_BIT = (1<<0),
|
||||
GNSS_NI_OPTIONS_VERIFICATION_BIT = (1<<1),
|
||||
GNSS_NI_OPTIONS_PRIVACY_OVERRIDE_BIT = (1<<2),
|
||||
} GnssNiOptionsBits;
|
||||
|
||||
typedef enum {
|
||||
|
@ -366,26 +366,26 @@ typedef enum {
|
|||
|
||||
typedef uint32_t GnssAidingDataSvMask;
|
||||
typedef enum {
|
||||
GNSS_AIDING_DATA_SV_EPHEMERIS = (1<<0), // ephemeris
|
||||
GNSS_AIDING_DATA_SV_ALMANAC = (1<<1), // almanac
|
||||
GNSS_AIDING_DATA_SV_HEALTH = (1<<2), // health
|
||||
GNSS_AIDING_DATA_SV_DIRECTION = (1<<3), // direction
|
||||
GNSS_AIDING_DATA_SV_STEER = (1<<4), // steer
|
||||
GNSS_AIDING_DATA_SV_ALMANAC_CORR = (1<<5), // almanac correction
|
||||
GNSS_AIDING_DATA_SV_BLACKLIST = (1<<6), // blacklist SVs
|
||||
GNSS_AIDING_DATA_SV_SA_DATA = (1<<7), // sensitivity assistance data
|
||||
GNSS_AIDING_DATA_SV_NO_EXIST = (1<<8), // SV does not exist
|
||||
GNSS_AIDING_DATA_SV_IONOSPHERE = (1<<9), // ionosphere correction
|
||||
GNSS_AIDING_DATA_SV_TIME = (1<<10),// reset satellite time
|
||||
GNSS_AIDING_DATA_SV_EPHEMERIS_BIT = (1<<0), // ephemeris
|
||||
GNSS_AIDING_DATA_SV_ALMANAC_BIT = (1<<1), // almanac
|
||||
GNSS_AIDING_DATA_SV_HEALTH_BIT = (1<<2), // health
|
||||
GNSS_AIDING_DATA_SV_DIRECTION_BIT = (1<<3), // direction
|
||||
GNSS_AIDING_DATA_SV_STEER_BIT = (1<<4), // steer
|
||||
GNSS_AIDING_DATA_SV_ALMANAC_CORR_BIT = (1<<5), // almanac correction
|
||||
GNSS_AIDING_DATA_SV_BLACKLIST_BIT = (1<<6), // blacklist SVs
|
||||
GNSS_AIDING_DATA_SV_SA_DATA_BIT = (1<<7), // sensitivity assistance data
|
||||
GNSS_AIDING_DATA_SV_NO_EXIST_BIT = (1<<8), // SV does not exist
|
||||
GNSS_AIDING_DATA_SV_IONOSPHERE_BIT = (1<<9), // ionosphere correction
|
||||
GNSS_AIDING_DATA_SV_TIME_BIT = (1<<10),// reset satellite time
|
||||
} GnssAidingDataSvBits;
|
||||
|
||||
typedef uint32_t GnssAidingDataSvTypeMask;
|
||||
typedef enum {
|
||||
GNSS_AIDING_DATA_SV_TYPE_GPS = (1<<0),
|
||||
GNSS_AIDING_DATA_SV_TYPE_GLONASS = (1<<1),
|
||||
GNSS_AIDING_DATA_SV_TYPE_QZSS = (1<<2),
|
||||
GNSS_AIDING_DATA_SV_TYPE_BEIDOU = (1<<3),
|
||||
GNSS_AIDING_DATA_SV_TYPE_GALILEO = (1<<4),
|
||||
GNSS_AIDING_DATA_SV_TYPE_GPS_BIT = (1<<0),
|
||||
GNSS_AIDING_DATA_SV_TYPE_GLONASS_BIT = (1<<1),
|
||||
GNSS_AIDING_DATA_SV_TYPE_QZSS_BIT = (1<<2),
|
||||
GNSS_AIDING_DATA_SV_TYPE_BEIDOU_BIT = (1<<3),
|
||||
GNSS_AIDING_DATA_SV_TYPE_GALILEO_BIT = (1<<4),
|
||||
} GnssAidingDataSvTypeBits;
|
||||
|
||||
typedef struct {
|
||||
|
@ -395,12 +395,12 @@ typedef struct {
|
|||
|
||||
typedef uint32_t GnssAidingDataCommonMask;
|
||||
typedef enum {
|
||||
GNSS_AIDING_DATA_COMMON_POSITION = (1<<0), // position estimate
|
||||
GNSS_AIDING_DATA_COMMON_TIME = (1<<1), // reset all clock values
|
||||
GNSS_AIDING_DATA_COMMON_UTC = (1<<2), // UTC estimate
|
||||
GNSS_AIDING_DATA_COMMON_RTI = (1<<3), // RTI
|
||||
GNSS_AIDING_DATA_COMMON_FREQ_BIAS_EST = (1<<4), // frequency bias estimate
|
||||
GNSS_AIDING_DATA_COMMON_CELLDB = (1<<5), // all celldb info
|
||||
GNSS_AIDING_DATA_COMMON_POSITION_BIT = (1<<0), // position estimate
|
||||
GNSS_AIDING_DATA_COMMON_TIME_BIT = (1<<1), // reset all clock values
|
||||
GNSS_AIDING_DATA_COMMON_UTC_BIT = (1<<2), // UTC estimate
|
||||
GNSS_AIDING_DATA_COMMON_RTI_BIT = (1<<3), // RTI
|
||||
GNSS_AIDING_DATA_COMMON_FREQ_BIAS_EST_BIT = (1<<4), // frequency bias estimate
|
||||
GNSS_AIDING_DATA_COMMON_CELLDB_BIT = (1<<5), // all celldb info
|
||||
} GnssAidingDataCommonBits;
|
||||
|
||||
typedef struct {
|
||||
|
|
Loading…
Reference in a new issue