Use bitfield type in GNSS HAL.
Test: mma
Change-Id: I92acf537a489fb06d942d3aa19ec9f40ffe26c23
diff --git a/gnss/1.0/IAGnssRilCallback.hal b/gnss/1.0/IAGnssRilCallback.hal
index 17122b2..ba29bd0 100644
--- a/gnss/1.0/IAGnssRilCallback.hal
+++ b/gnss/1.0/IAGnssRilCallback.hal
@@ -32,7 +32,7 @@
*
* @param setIdflag Specifies the kind of SET ID that is required by the HAL.
*/
- requestSetIdCb(ID setIdflag);
+ requestSetIdCb(bitfield<ID> setIdflag);
/*
* The Hal uses this API to request a reference location.
diff --git a/gnss/1.0/IGnssCallback.hal b/gnss/1.0/IGnssCallback.hal
index 97a28e2..b072807 100644
--- a/gnss/1.0/IGnssCallback.hal
+++ b/gnss/1.0/IGnssCallback.hal
@@ -179,7 +179,7 @@
* @param capabilities Capability parameter is a bit field of
* the Capabilities enum.
*/
- gnssSetCapabilitesCb(uint32_t capabilities);
+ gnssSetCapabilitesCb(bitfield<Capabilities> capabilities);
/*
* Callback utility for acquiring the GNSS wakelock. This can be used to prevent
diff --git a/gnss/1.0/IGnssConfiguration.hal b/gnss/1.0/IGnssConfiguration.hal
index f8856b0..2fb6e4e 100644
--- a/gnss/1.0/IGnssConfiguration.hal
+++ b/gnss/1.0/IGnssConfiguration.hal
@@ -106,7 +106,7 @@
*
* @return success True if operation was successful.
*/
- setSuplMode(uint8_t mode) generates (bool success);
+ setSuplMode(bitfield<SuplMode> mode) generates (bool success);
/*
* This setting configures how GPS functionalities should be locked when
@@ -117,7 +117,7 @@
*
* @return success True if operation was successful.
*/
- setGpsLock(uint8_t lock) generates (bool success);
+ setGpsLock(bitfield<GpsLock> lock) generates (bool success);
/*
* This method sets the LTE Positioning Profile configuration.
@@ -127,17 +127,17 @@
*
* @return success True if operation was successful.
*/
- setLppProfile(uint8_t lppProfile) generates (bool success);
+ setLppProfile(bitfield<LppProfile> lppProfile) generates (bool success);
/*
* This method selects positioning protocol on A-Glonass system.
*
* @param protocol Bitmask that specifies the positioning protocol to be
- * set as per GlonassPositioningProtocol enum.
+ * set as per GlonassPosProtocol enum.
*
* @return success True if operation was successful.
*/
- setGlonassPositioningProtocol(uint8_t protocol) generates (bool success);
+ setGlonassPositioningProtocol(bitfield<GlonassPosProtocol> protocol) generates (bool success);
/*
* This method configures which PDN to use.
diff --git a/gnss/1.0/IGnssGeofencing.hal b/gnss/1.0/IGnssGeofencing.hal
index 8417333..b8348b3 100644
--- a/gnss/1.0/IGnssGeofencing.hal
+++ b/gnss/1.0/IGnssGeofencing.hal
@@ -54,9 +54,10 @@
* must be triggered. This parameter is defined in milliseconds.
*/
addGeofence(int32_t geofenceId, double latitudeDegrees, double longitudeDegrees,
- double radiusMeters, GeofenceTransition lastTransition,
- int32_t monitorTransitions, uint32_t notificationResponsivenessMs,
- uint32_t unknownTimerMs);
+ double radiusMeters, GeofenceTransition lastTransition,
+ bitfield<IGnssGeofenceCallback.GeofenceTransition> monitorTransitions,
+ uint32_t notificationResponsivenessMs,
+ uint32_t unknownTimerMs);
/*
* Pause monitoring a particular geofence.
@@ -74,7 +75,8 @@
* UNCERTAIN. This supersedes the value associated
* provided in the addGeofenceArea call.
*/
- resumeGeofence(int32_t geofenceId, int32_t monitorTransitions);
+ resumeGeofence(int32_t geofenceId,
+ bitfield<IGnssGeofenceCallback.GeofenceTransition> monitorTransitions);
/*
* Remove a geofence area. After the function returns, no notifications
diff --git a/gnss/1.0/IGnssMeasurementCallback.hal b/gnss/1.0/IGnssMeasurementCallback.hal
index cc34c91..9685942 100644
--- a/gnss/1.0/IGnssMeasurementCallback.hal
+++ b/gnss/1.0/IGnssMeasurementCallback.hal
@@ -116,7 +116,7 @@
* A set of flags indicating the validity of the fields in this data
* structure.
*/
- GnssClockFlags gnssClockFlags;
+ bitfield<GnssClockFlags> gnssClockFlags;
/*
* Leap second data.
@@ -272,7 +272,7 @@
* A set of flags indicating the validity of the fields in this data
* structure.
*/
- GnssMeasurementFlags flags;
+ bitfield<GnssMeasurementFlags> flags;
/*
* Satellite vehicle ID number, as defined in GnssSvInfo::svid
@@ -306,7 +306,7 @@
*
* This is a mandatory value.
*/
- GnssMeasurementState state;
+ bitfield<GnssMeasurementState> state;
/*
* The received GNSS Time-of-Week at the measurement time, in nanoseconds.
@@ -430,7 +430,7 @@
*
* This is a mandatory value.
*/
- GnssAccumulatedDeltaRangeState accumulatedDeltaRangeState;
+ bitfield<GnssAccumulatedDeltaRangeState> accumulatedDeltaRangeState;
/*
* Accumulated delta range since the last channel reset in meters.
diff --git a/gnss/1.0/IGnssNavigationMessageCallback.hal b/gnss/1.0/IGnssNavigationMessageCallback.hal
index 6988c9a..0cffa67 100644
--- a/gnss/1.0/IGnssNavigationMessageCallback.hal
+++ b/gnss/1.0/IGnssNavigationMessageCallback.hal
@@ -80,7 +80,7 @@
* No need to send any navigation message that contains words with parity
* error and cannot be corrected.
*/
- NavigationMessageStatus status;
+ bitfield<NavigationMessageStatus> status;
/*
* Message identifier. It provides an index so the complete Navigation
diff --git a/gnss/1.0/IGnssNiCallback.hal b/gnss/1.0/IGnssNiCallback.hal
index f23b354..a7abad9 100644
--- a/gnss/1.0/IGnssNiCallback.hal
+++ b/gnss/1.0/IGnssNiCallback.hal
@@ -78,7 +78,7 @@
* Notification/verification options, combinations of GnssNiNotifyFlags
* constants.
*/
- GnssNiNotifyFlags notifyFlags;
+ bitfield<GnssNiNotifyFlags> notifyFlags;
/*
* Timeout period to wait for user response.
diff --git a/gnss/1.0/default/AGnssRil.cpp b/gnss/1.0/default/AGnssRil.cpp
index 87abad7..480571d 100644
--- a/gnss/1.0/default/AGnssRil.cpp
+++ b/gnss/1.0/default/AGnssRil.cpp
@@ -50,7 +50,7 @@
return;
}
- sAGnssRilCbIface->requestSetIdCb(static_cast<IAGnssRilCallback::ID>(flags));
+ sAGnssRilCbIface->requestSetIdCb(flags);
}
void AGnssRil::requestRefLoc(uint32_t /*flags*/) {
diff --git a/gnss/1.0/default/GnssMeasurement.cpp b/gnss/1.0/default/GnssMeasurement.cpp
index 9f8d7b5..0d11636 100644
--- a/gnss/1.0/default/GnssMeasurement.cpp
+++ b/gnss/1.0/default/GnssMeasurement.cpp
@@ -52,18 +52,17 @@
for (size_t i = 0; i < gnssData.measurementCount; i++) {
auto entry = legacyGnssData->measurements[i];
gnssData.measurements[i] = {
- .flags = static_cast<IGnssMeasurementCallback::GnssMeasurementFlags>(entry.flags),
+ .flags = entry.flags,
.svid = entry.svid,
.constellation = static_cast<GnssConstellationType>(entry.constellation),
.timeOffsetNs = entry.time_offset_ns,
- .state = static_cast<IGnssMeasurementCallback::GnssMeasurementState>(entry.state),
+ .state = entry.state,
.receivedSvTimeInNs = entry.received_sv_time_in_ns,
.receivedSvTimeUncertaintyInNs = entry.received_sv_time_uncertainty_in_ns,
.cN0DbHz = entry.c_n0_dbhz,
.pseudorangeRateMps = entry.pseudorange_rate_mps,
.pseudorangeRateUncertaintyMps = entry.pseudorange_rate_uncertainty_mps,
- .accumulatedDeltaRangeState = static_cast<IGnssMeasurementCallback::GnssAccumulatedDeltaRangeState>(
- entry.accumulated_delta_range_state),
+ .accumulatedDeltaRangeState = entry.accumulated_delta_range_state,
.accumulatedDeltaRangeM = entry.accumulated_delta_range_m,
.accumulatedDeltaRangeUncertaintyM = entry.accumulated_delta_range_uncertainty_m,
.carrierFrequencyHz = entry.carrier_frequency_hz,
@@ -78,7 +77,7 @@
auto clockVal = legacyGnssData->clock;
gnssData.clock = {
- .gnssClockFlags = static_cast<IGnssMeasurementCallback::GnssClockFlags>(clockVal.flags),
+ .gnssClockFlags = clockVal.flags,
.leapSecond = clockVal.leap_second,
.timeNs = clockVal.time_ns,
.timeUncertaintyNs = clockVal.time_uncertainty_ns,
@@ -117,9 +116,7 @@
for (size_t i = 0; i < gnssData.measurementCount; i++) {
auto entry = gpsData->measurements[i];
- gnssData.measurements[i].flags =
- static_cast<IGnssMeasurementCallback::GnssMeasurementFlags>(
- entry.flags);
+ gnssData.measurements[i].flags = entry.flags;
gnssData.measurements[i].svid = static_cast<int32_t>(entry.prn);
if (entry.prn >= 1 && entry.prn <= 32) {
gnssData.measurements[i].constellation = GnssConstellationType::GPS;
@@ -129,9 +126,7 @@
}
gnssData.measurements[i].timeOffsetNs = entry.time_offset_ns;
- gnssData.measurements[i].state =
- static_cast<IGnssMeasurementCallback::GnssMeasurementState>(
- entry.state);
+ gnssData.measurements[i].state = entry.state;
gnssData.measurements[i].receivedSvTimeInNs = entry.received_gps_tow_ns;
gnssData.measurements[i].receivedSvTimeUncertaintyInNs =
entry.received_gps_tow_uncertainty_ns;
@@ -140,8 +135,7 @@
gnssData.measurements[i].pseudorangeRateUncertaintyMps =
entry.pseudorange_rate_uncertainty_mps;
gnssData.measurements[i].accumulatedDeltaRangeState =
- static_cast<IGnssMeasurementCallback::GnssAccumulatedDeltaRangeState>(
- entry.accumulated_delta_range_state);
+ entry.accumulated_delta_range_state;
gnssData.measurements[i].accumulatedDeltaRangeM =
entry.accumulated_delta_range_m;
gnssData.measurements[i].accumulatedDeltaRangeUncertaintyM =
@@ -220,8 +214,7 @@
gnssData.clock.biasUncertaintyNs = clockVal.bias_uncertainty_ns;
gnssData.clock.driftNsps = clockVal.drift_nsps;
gnssData.clock.driftUncertaintyNsps = clockVal.drift_uncertainty_nsps;
- gnssData.clock.gnssClockFlags =
- static_cast<IGnssMeasurementCallback::GnssClockFlags>(clockVal.flags);
+ gnssData.clock.gnssClockFlags = clockVal.flags;
sGnssMeasureCbIface->GnssMeasurementCb(gnssData);
}
diff --git a/gnss/1.0/default/GnssNavigationMessage.cpp b/gnss/1.0/default/GnssNavigationMessage.cpp
index f2c69a7..ef78ff4 100644
--- a/gnss/1.0/default/GnssNavigationMessage.cpp
+++ b/gnss/1.0/default/GnssNavigationMessage.cpp
@@ -53,8 +53,7 @@
navigationMsg.svid = message->svid;
navigationMsg.type =
static_cast<IGnssNavigationMessageCallback::GnssNavigationMessageType>(message->type);
- navigationMsg.status =
- static_cast<IGnssNavigationMessageCallback::NavigationMessageStatus>(message->status);
+ navigationMsg.status = message->status;
navigationMsg.messageId = message->message_id;
navigationMsg.submessageId = message->submessage_id;
navigationMsg.data.setToExternal(message->data, message->data_length);
diff --git a/gnss/1.0/default/GnssNi.cpp b/gnss/1.0/default/GnssNi.cpp
index 10af1f4..ec57e8c 100644
--- a/gnss/1.0/default/GnssNi.cpp
+++ b/gnss/1.0/default/GnssNi.cpp
@@ -61,8 +61,7 @@
IGnssNiCallback::GnssNiNotification notificationGnss = {
.notificationId = notification->notification_id,
.niType = static_cast<IGnssNiCallback::GnssNiType>(notification->ni_type),
- .notifyFlags =
- static_cast<IGnssNiCallback::GnssNiNotifyFlags>(notification->notify_flags),
+ .notifyFlags = notification->notify_flags,
.timeoutSec = static_cast<uint32_t>(notification->timeout),
.defaultResponse =
static_cast<IGnssNiCallback::GnssUserResponseType>(notification->default_response),
diff --git a/gnss/1.0/types.hal b/gnss/1.0/types.hal
index ee35ca4..7d7b427 100644
--- a/gnss/1.0/types.hal
+++ b/gnss/1.0/types.hal
@@ -40,6 +40,7 @@
/* Represents a location. */
struct GnssLocation {
/* Contains GnssLocationFlags bits. */
+ // TODO bitfield?
uint16_t gnssLocationFlags;
/* Represents latitude in degrees. */