[sensors] Minor tuning of hal definition
* Swap GEOMAGNETIC_FIELD with MAGNETIC_FIELD for more accurate
definition.
* Remove redundunt prefixes in various enum definitions.
* Clarify that string type will be removed for well defined sensor
types. This avoid dependency on strings defined in sensors.h.
* Added SensorFlagShift enum.
* Remove unused flag parameter in batch.
* Remove legacy setDelay function.
* Change the type of sensor flag to bitfield<SensorFlagBits>, and
use uint32_t since only low 32 bits are used.
Test: all sensor works(in marlin), tested with sensorlogger.
Change-Id: I93a4d13c5d2e054857d1e400d15002aeb9a47368
diff --git a/sensors/1.0/ISensors.hal b/sensors/1.0/ISensors.hal
index c929ef8..c56da29 100644
--- a/sensors/1.0/ISensors.hal
+++ b/sensors/1.0/ISensors.hal
@@ -52,20 +52,6 @@
activate(int32_t sensorHandle, bool enabled) generates (Result result);
/**
- * Set the sampling period in nanoseconds for a given sensor.
- *
- * If samplingPeriodNs > maxDelay it will be truncated to
- * maxDelay and if samplingPeriodNs < minDelay it will be
- * replaced by minDelay.
- *
- * @param sensorHandle handle of sensor to be changed.
- * @param samplngPeriodNs specified sampling period in nanoseconds.
- * @return result OK on success, BAD_VALUE if sensorHandle is invalid.
- */
- setDelay(int32_t sensorHandle, int64_t samplingPeriodNs)
- generates (Result result);
-
- /**
* Generate a vector of sensor events containing at most "maxCount"
* entries.
*
@@ -105,7 +91,6 @@
* @return result OK on success, BAD_VALUE if any parameters are invalid.
*/
batch(int32_t sensorHandle,
- int32_t flags,
int64_t samplingPeriodNs,
int64_t maxReportLatencyNs) generates (Result result);
diff --git a/sensors/1.0/default/Sensors.cpp b/sensors/1.0/default/Sensors.cpp
index f9f1ca6..8903397 100644
--- a/sensors/1.0/default/Sensors.cpp
+++ b/sensors/1.0/default/Sensors.cpp
@@ -142,15 +142,6 @@
enabled));
}
-Return<Result> Sensors::setDelay(
- int32_t sensor_handle, int64_t sampling_period_ns) {
- return ResultFromStatus(
- mSensorDevice->setDelay(
- reinterpret_cast<sensors_poll_device_t *>(mSensorDevice),
- sensor_handle,
- sampling_period_ns));
-}
-
Return<void> Sensors::poll(int32_t maxCount, poll_cb _hidl_cb) {
hidl_vec<Event> out;
hidl_vec<SensorInfo> dynamicSensorsAdded;
@@ -206,14 +197,13 @@
Return<Result> Sensors::batch(
int32_t sensor_handle,
- int32_t flags,
int64_t sampling_period_ns,
int64_t max_report_latency_ns) {
return ResultFromStatus(
mSensorDevice->batch(
mSensorDevice,
sensor_handle,
- flags,
+ 0, /*flags*/
sampling_period_ns,
max_report_latency_ns));
}
diff --git a/sensors/1.0/default/Sensors.h b/sensors/1.0/default/Sensors.h
index a33f283..e8bd98d 100644
--- a/sensors/1.0/default/Sensors.h
+++ b/sensors/1.0/default/Sensors.h
@@ -39,14 +39,10 @@
Return<Result> activate(
int32_t sensor_handle, bool enabled) override;
- Return<Result> setDelay(
- int32_t sensor_handle, int64_t sampling_period_ns) override;
-
Return<void> poll(int32_t maxCount, poll_cb _hidl_cb) override;
Return<Result> batch(
int32_t sensor_handle,
- int32_t flags,
int64_t sampling_period_ns,
int64_t max_report_latency_ns) override;
diff --git a/sensors/1.0/default/convert.cpp b/sensors/1.0/default/convert.cpp
index 68fb75c..6735e96 100644
--- a/sensors/1.0/default/convert.cpp
+++ b/sensors/1.0/default/convert.cpp
@@ -72,18 +72,18 @@
dst->timestamp = src.timestamp;
switch (dst->sensorType) {
- case SensorType::SENSOR_TYPE_META_DATA:
+ case SensorType::META_DATA:
{
dst->u.meta.what = (MetaDataEventType)src.meta_data.what;
break;
}
- case SensorType::SENSOR_TYPE_ACCELEROMETER:
- case SensorType::SENSOR_TYPE_GEOMAGNETIC_FIELD:
- case SensorType::SENSOR_TYPE_ORIENTATION:
- case SensorType::SENSOR_TYPE_GYROSCOPE:
- case SensorType::SENSOR_TYPE_GRAVITY:
- case SensorType::SENSOR_TYPE_LINEAR_ACCELERATION:
+ case SensorType::ACCELEROMETER:
+ case SensorType::MAGNETIC_FIELD:
+ case SensorType::ORIENTATION:
+ case SensorType::GYROSCOPE:
+ case SensorType::GRAVITY:
+ case SensorType::LINEAR_ACCELERATION:
{
dst->u.vec3.x = src.acceleration.x;
dst->u.vec3.y = src.acceleration.y;
@@ -92,9 +92,9 @@
break;
}
- case SensorType::SENSOR_TYPE_ROTATION_VECTOR:
- case SensorType::SENSOR_TYPE_GAME_ROTATION_VECTOR:
- case SensorType::SENSOR_TYPE_GEOMAGNETIC_ROTATION_VECTOR:
+ case SensorType::ROTATION_VECTOR:
+ case SensorType::GAME_ROTATION_VECTOR:
+ case SensorType::GEOMAGNETIC_ROTATION_VECTOR:
{
dst->u.vec4.x = src.data[0];
dst->u.vec4.y = src.data[1];
@@ -103,148 +103,148 @@
break;
}
- case SensorType::SENSOR_TYPE_MAGNETIC_FIELD_UNCALIBRATED:
- case SensorType::SENSOR_TYPE_GYROSCOPE_UNCALIBRATED:
- case SensorType::SENSOR_TYPE_ACCELEROMETER_UNCALIBRATED:
- {
- dst->u.uncal.x = src.uncalibrated_gyro.x_uncalib;
- dst->u.uncal.y = src.uncalibrated_gyro.y_uncalib;
- dst->u.uncal.z = src.uncalibrated_gyro.z_uncalib;
- dst->u.uncal.x_bias = src.uncalibrated_gyro.x_bias;
- dst->u.uncal.y_bias = src.uncalibrated_gyro.y_bias;
- dst->u.uncal.z_bias = src.uncalibrated_gyro.z_bias;
- break;
- }
+ case SensorType::MAGNETIC_FIELD_UNCALIBRATED:
+ case SensorType::GYROSCOPE_UNCALIBRATED:
+ case SensorType::ACCELEROMETER_UNCALIBRATED:
+ {
+ dst->u.uncal.x = src.uncalibrated_gyro.x_uncalib;
+ dst->u.uncal.y = src.uncalibrated_gyro.y_uncalib;
+ dst->u.uncal.z = src.uncalibrated_gyro.z_uncalib;
+ dst->u.uncal.x_bias = src.uncalibrated_gyro.x_bias;
+ dst->u.uncal.y_bias = src.uncalibrated_gyro.y_bias;
+ dst->u.uncal.z_bias = src.uncalibrated_gyro.z_bias;
+ break;
+ }
- case SensorType::SENSOR_TYPE_DEVICE_ORIENTATION:
- case SensorType::SENSOR_TYPE_LIGHT:
- case SensorType::SENSOR_TYPE_PRESSURE:
- case SensorType::SENSOR_TYPE_TEMPERATURE:
- case SensorType::SENSOR_TYPE_PROXIMITY:
- case SensorType::SENSOR_TYPE_RELATIVE_HUMIDITY:
- case SensorType::SENSOR_TYPE_AMBIENT_TEMPERATURE:
- case SensorType::SENSOR_TYPE_SIGNIFICANT_MOTION:
- case SensorType::SENSOR_TYPE_STEP_DETECTOR:
- case SensorType::SENSOR_TYPE_TILT_DETECTOR:
- case SensorType::SENSOR_TYPE_WAKE_GESTURE:
- case SensorType::SENSOR_TYPE_GLANCE_GESTURE:
- case SensorType::SENSOR_TYPE_PICK_UP_GESTURE:
- case SensorType::SENSOR_TYPE_WRIST_TILT_GESTURE:
- case SensorType::SENSOR_TYPE_STATIONARY_DETECT:
- case SensorType::SENSOR_TYPE_MOTION_DETECT:
- case SensorType::SENSOR_TYPE_HEART_BEAT:
- {
- dst->u.scalar = src.data[0];
- break;
- }
+ case SensorType::DEVICE_ORIENTATION:
+ case SensorType::LIGHT:
+ case SensorType::PRESSURE:
+ case SensorType::TEMPERATURE:
+ case SensorType::PROXIMITY:
+ case SensorType::RELATIVE_HUMIDITY:
+ case SensorType::AMBIENT_TEMPERATURE:
+ case SensorType::SIGNIFICANT_MOTION:
+ case SensorType::STEP_DETECTOR:
+ case SensorType::TILT_DETECTOR:
+ case SensorType::WAKE_GESTURE:
+ case SensorType::GLANCE_GESTURE:
+ case SensorType::PICK_UP_GESTURE:
+ case SensorType::WRIST_TILT_GESTURE:
+ case SensorType::STATIONARY_DETECT:
+ case SensorType::MOTION_DETECT:
+ case SensorType::HEART_BEAT:
+ {
+ dst->u.scalar = src.data[0];
+ break;
+ }
- case SensorType::SENSOR_TYPE_STEP_COUNTER:
- {
- dst->u.stepCount = src.u64.step_counter;
- break;
- }
+ case SensorType::STEP_COUNTER:
+ {
+ dst->u.stepCount = src.u64.step_counter;
+ break;
+ }
- case SensorType::SENSOR_TYPE_HEART_RATE:
- {
- dst->u.heartRate.bpm = src.heart_rate.bpm;
- dst->u.heartRate.status = (SensorStatus)src.heart_rate.status;
- break;
- }
+ case SensorType::HEART_RATE:
+ {
+ dst->u.heartRate.bpm = src.heart_rate.bpm;
+ dst->u.heartRate.status = (SensorStatus)src.heart_rate.status;
+ break;
+ }
- case SensorType::SENSOR_TYPE_POSE_6DOF: // 15 floats
- {
- for (size_t i = 0; i < 15; ++i) {
- dst->u.pose6DOF[i] = src.data[i];
- }
- break;
- }
+ case SensorType::POSE_6DOF: // 15 floats
+ {
+ for (size_t i = 0; i < 15; ++i) {
+ dst->u.pose6DOF[i] = src.data[i];
+ }
+ break;
+ }
- case SensorType::SENSOR_TYPE_DYNAMIC_SENSOR_META:
- {
- dst->u.dynamic.connected = src.dynamic_sensor_meta.connected;
- dst->u.dynamic.sensorHandle = src.dynamic_sensor_meta.handle;
+ case SensorType::DYNAMIC_SENSOR_META:
+ {
+ dst->u.dynamic.connected = src.dynamic_sensor_meta.connected;
+ dst->u.dynamic.sensorHandle = src.dynamic_sensor_meta.handle;
- memcpy(dst->u.dynamic.uuid.data(),
- src.dynamic_sensor_meta.uuid,
- 16);
+ memcpy(dst->u.dynamic.uuid.data(),
+ src.dynamic_sensor_meta.uuid,
+ 16);
- break;
- }
+ break;
+ }
- case SensorType::SENSOR_TYPE_ADDITIONAL_INFO:
- {
- ::android::hardware::sensors::V1_0::AdditionalInfo *dstInfo =
- &dst->u.additional;
+ case SensorType::ADDITIONAL_INFO:
+ {
+ ::android::hardware::sensors::V1_0::AdditionalInfo *dstInfo =
+ &dst->u.additional;
- const additional_info_event_t &srcInfo = src.additional_info;
+ const additional_info_event_t &srcInfo = src.additional_info;
- dstInfo->type =
- (::android::hardware::sensors::V1_0::AdditionalInfoType)
- srcInfo.type;
+ dstInfo->type =
+ (::android::hardware::sensors::V1_0::AdditionalInfoType)
+ srcInfo.type;
- dstInfo->serial = srcInfo.serial;
+ dstInfo->serial = srcInfo.serial;
- CHECK_EQ(sizeof(dstInfo->u), sizeof(srcInfo.data_int32));
- memcpy(&dstInfo->u, srcInfo.data_int32, sizeof(srcInfo.data_int32));
- break;
- }
+ CHECK_EQ(sizeof(dstInfo->u), sizeof(srcInfo.data_int32));
+ memcpy(&dstInfo->u, srcInfo.data_int32, sizeof(srcInfo.data_int32));
+ break;
+ }
- default:
- {
- CHECK_GE((int32_t)dst->sensorType,
- (int32_t)SensorType::SENSOR_TYPE_DEVICE_PRIVATE_BASE);
+ default:
+ {
+ CHECK_GE((int32_t)dst->sensorType,
+ (int32_t)SensorType::DEVICE_PRIVATE_BASE);
- memcpy(dst->u.data.data(), src.data, 16 * sizeof(float));
- break;
- }
- }
+ memcpy(dst->u.data.data(), src.data, 16 * sizeof(float));
+ break;
+ }
+ }
}
void convertToSensorEvent(const Event &src, sensors_event_t *dst) {
- dst->version = sizeof(sensors_event_t);
- dst->sensor = src.sensorHandle;
- dst->type = (int32_t)src.sensorType;
- dst->reserved0 = 0;
- dst->timestamp = src.timestamp;
- dst->flags = 0;
- dst->reserved1[0] = dst->reserved1[1] = dst->reserved1[2] = 0;
+ dst->version = sizeof(sensors_event_t);
+ dst->sensor = src.sensorHandle;
+ dst->type = (int32_t)src.sensorType;
+ dst->reserved0 = 0;
+ dst->timestamp = src.timestamp;
+ dst->flags = 0;
+ dst->reserved1[0] = dst->reserved1[1] = dst->reserved1[2] = 0;
- switch (src.sensorType) {
- case SensorType::SENSOR_TYPE_META_DATA:
- {
- dst->meta_data.what = (int32_t)src.u.meta.what;
- dst->meta_data.sensor = dst->sensor;
- break;
- }
+ switch (src.sensorType) {
+ case SensorType::META_DATA:
+ {
+ dst->meta_data.what = (int32_t)src.u.meta.what;
+ dst->meta_data.sensor = dst->sensor;
+ break;
+ }
- case SensorType::SENSOR_TYPE_ACCELEROMETER:
- case SensorType::SENSOR_TYPE_GEOMAGNETIC_FIELD:
- case SensorType::SENSOR_TYPE_ORIENTATION:
- case SensorType::SENSOR_TYPE_GYROSCOPE:
- case SensorType::SENSOR_TYPE_GRAVITY:
- case SensorType::SENSOR_TYPE_LINEAR_ACCELERATION:
- {
- dst->acceleration.x = src.u.vec3.x;
- dst->acceleration.y = src.u.vec3.y;
- dst->acceleration.z = src.u.vec3.z;
- dst->acceleration.status = (int8_t)src.u.vec3.status;
- break;
- }
+ case SensorType::ACCELEROMETER:
+ case SensorType::MAGNETIC_FIELD:
+ case SensorType::ORIENTATION:
+ case SensorType::GYROSCOPE:
+ case SensorType::GRAVITY:
+ case SensorType::LINEAR_ACCELERATION:
+ {
+ dst->acceleration.x = src.u.vec3.x;
+ dst->acceleration.y = src.u.vec3.y;
+ dst->acceleration.z = src.u.vec3.z;
+ dst->acceleration.status = (int8_t)src.u.vec3.status;
+ break;
+ }
- case SensorType::SENSOR_TYPE_ROTATION_VECTOR:
- case SensorType::SENSOR_TYPE_GAME_ROTATION_VECTOR:
- case SensorType::SENSOR_TYPE_GEOMAGNETIC_ROTATION_VECTOR:
- {
- dst->data[0] = src.u.vec4.x;
- dst->data[1] = src.u.vec4.y;
- dst->data[2] = src.u.vec4.z;
- dst->data[3] = src.u.vec4.w;
- break;
- }
+ case SensorType::ROTATION_VECTOR:
+ case SensorType::GAME_ROTATION_VECTOR:
+ case SensorType::GEOMAGNETIC_ROTATION_VECTOR:
+ {
+ dst->data[0] = src.u.vec4.x;
+ dst->data[1] = src.u.vec4.y;
+ dst->data[2] = src.u.vec4.z;
+ dst->data[3] = src.u.vec4.w;
+ break;
+ }
- case SensorType::SENSOR_TYPE_MAGNETIC_FIELD_UNCALIBRATED:
- case SensorType::SENSOR_TYPE_GYROSCOPE_UNCALIBRATED:
- case SensorType::SENSOR_TYPE_ACCELEROMETER_UNCALIBRATED:
+ case SensorType::MAGNETIC_FIELD_UNCALIBRATED:
+ case SensorType::GYROSCOPE_UNCALIBRATED:
+ case SensorType::ACCELEROMETER_UNCALIBRATED:
{
dst->uncalibrated_gyro.x_uncalib = src.u.uncal.x;
dst->uncalibrated_gyro.y_uncalib = src.u.uncal.y;
@@ -255,42 +255,42 @@
break;
}
- case SensorType::SENSOR_TYPE_DEVICE_ORIENTATION:
- case SensorType::SENSOR_TYPE_LIGHT:
- case SensorType::SENSOR_TYPE_PRESSURE:
- case SensorType::SENSOR_TYPE_TEMPERATURE:
- case SensorType::SENSOR_TYPE_PROXIMITY:
- case SensorType::SENSOR_TYPE_RELATIVE_HUMIDITY:
- case SensorType::SENSOR_TYPE_AMBIENT_TEMPERATURE:
- case SensorType::SENSOR_TYPE_SIGNIFICANT_MOTION:
- case SensorType::SENSOR_TYPE_STEP_DETECTOR:
- case SensorType::SENSOR_TYPE_TILT_DETECTOR:
- case SensorType::SENSOR_TYPE_WAKE_GESTURE:
- case SensorType::SENSOR_TYPE_GLANCE_GESTURE:
- case SensorType::SENSOR_TYPE_PICK_UP_GESTURE:
- case SensorType::SENSOR_TYPE_WRIST_TILT_GESTURE:
- case SensorType::SENSOR_TYPE_STATIONARY_DETECT:
- case SensorType::SENSOR_TYPE_MOTION_DETECT:
- case SensorType::SENSOR_TYPE_HEART_BEAT:
+ case SensorType::DEVICE_ORIENTATION:
+ case SensorType::LIGHT:
+ case SensorType::PRESSURE:
+ case SensorType::TEMPERATURE:
+ case SensorType::PROXIMITY:
+ case SensorType::RELATIVE_HUMIDITY:
+ case SensorType::AMBIENT_TEMPERATURE:
+ case SensorType::SIGNIFICANT_MOTION:
+ case SensorType::STEP_DETECTOR:
+ case SensorType::TILT_DETECTOR:
+ case SensorType::WAKE_GESTURE:
+ case SensorType::GLANCE_GESTURE:
+ case SensorType::PICK_UP_GESTURE:
+ case SensorType::WRIST_TILT_GESTURE:
+ case SensorType::STATIONARY_DETECT:
+ case SensorType::MOTION_DETECT:
+ case SensorType::HEART_BEAT:
{
dst->data[0] = src.u.scalar;
break;
}
- case SensorType::SENSOR_TYPE_STEP_COUNTER:
+ case SensorType::STEP_COUNTER:
{
dst->u64.step_counter = src.u.stepCount;
break;
}
- case SensorType::SENSOR_TYPE_HEART_RATE:
+ case SensorType::HEART_RATE:
{
dst->heart_rate.bpm = src.u.heartRate.bpm;
dst->heart_rate.status = (int8_t)src.u.heartRate.status;
break;
}
- case SensorType::SENSOR_TYPE_POSE_6DOF: // 15 floats
+ case SensorType::POSE_6DOF: // 15 floats
{
for (size_t i = 0; i < 15; ++i) {
dst->data[i] = src.u.pose6DOF[i];
@@ -298,7 +298,7 @@
break;
}
- case SensorType::SENSOR_TYPE_DYNAMIC_SENSOR_META:
+ case SensorType::DYNAMIC_SENSOR_META:
{
dst->dynamic_sensor_meta.connected = src.u.dynamic.connected;
dst->dynamic_sensor_meta.handle = src.u.dynamic.sensorHandle;
@@ -311,7 +311,7 @@
break;
}
- case SensorType::SENSOR_TYPE_ADDITIONAL_INFO:
+ case SensorType::ADDITIONAL_INFO:
{
const ::android::hardware::sensors::V1_0::AdditionalInfo &srcInfo =
src.u.additional;
@@ -332,7 +332,7 @@
default:
{
CHECK_GE((int32_t)src.sensorType,
- (int32_t)SensorType::SENSOR_TYPE_DEVICE_PRIVATE_BASE);
+ (int32_t)SensorType::DEVICE_PRIVATE_BASE);
memcpy(dst->data, src.u.data.data(), 16 * sizeof(float));
break;
diff --git a/sensors/1.0/types.hal b/sensors/1.0/types.hal
index d93fabd..c8c8dfc 100644
--- a/sensors/1.0/types.hal
+++ b/sensors/1.0/types.hal
@@ -34,10 +34,10 @@
/*
* Sensor HAL modes used in setOperationMode method
*/
-@export(name="")
+@export(name="", value_prefix="SENSOR_HAL_", value_suffix="_MODE")
enum OperationMode : int32_t {
- SENSOR_HAL_NORMAL_MODE = 0,
- SENSOR_HAL_DATA_INJECTION_MODE = 1,
+ NORMAL = 0,
+ DATA_INJECTION = 1,
};
/*
@@ -52,21 +52,22 @@
* Device manufacturers (OEMs) can define their own sensor types, for
* their private use by applications or services provided by them. Such
* sensor types are specific to an OEM and can't be exposed in the SDK.
- * These types must start at SENSOR_TYPE_DEVICE_PRIVATE_BASE.
+ * These types must start at SensorType::DEVICE_PRIVATE_BASE.
*
* All sensors defined outside of the device private range must correspond to
* a type defined in this file, and must satisfy the characteristics listed in
* the description of the sensor type.
*
* Each sensor also has a "typeAsString".
- * - StringType of sensors inside of the device private range MUST be prefixed
+ * - string type of sensors defined in this file is overridden by Android to
+ * values defined in Android API with "android.sensor." prefix.
+ * Example: for an accelerometer,
+ * type = SensorType::Acclerometer
+ * typeAsString = "" (will be replace by "android.sensor.accelerometer" by
+ * Android frameowrk)
+ * - string type of sensors inside of the device private range MUST be prefixed
* by the sensor provider's or OEM reverse domain name. In particular, they
- * cannot use the "android.sensor" prefix.
- * - StringType of sensors outside of the device private range MUST correspond
- * to the one defined in this file (starting with "android.sensor").
- * For example, accelerometers must have
- * type=SENSOR_TYPE_ACCELEROMETER and
- * stringType=SENSOR_STRING_TYPE_ACCELEROMETER
+ * cannot use the "android.sensor." prefix.
*
* When android introduces a new sensor type that can replace an OEM-defined
* sensor type, the OEM must use the official sensor type and stringType on
@@ -76,13 +77,14 @@
* detecting that Glass is on a head.
* - Such a sensor is not officially supported in android KitKat
* - Glass devices launching on KitKat can implement a sensor with
- * type = 0x10001 and stringType = "com.google.glass.onheaddetector"
+ * type = 0x10001
+ * typeAsString = "com.google.glass.onheaddetector"
* - In L android release, if android decides to define
- * SENSOR_TYPE_ON_HEAD_DETECTOR and STRING_SENSOR_TYPE_ON_HEAD_DETECTOR,
+ * SensorType::ON_HEAD_DETECTOR and STRING_SensorType::ON_HEAD_DETECTOR,
* those types should replace the Glass-team-specific types in all future
* launches.
* - When launching Glass on the L release, Google should now use the official
- * type (SENSOR_TYPE_ON_HEAD_DETECTOR) and stringType.
+ * type (SensorType::ON_HEAD_DETECTOR) and stringType.
* - This way, all applications can now use this sensor.
*/
@@ -102,27 +104,27 @@
* previous releases are also wake-up sensors and must be treated as such.
* Wake-up one-shot sensors like SIGNIFICANT_MOTION cannot be batched, hence
* the text about batch above doesn't apply to them. See the definitions of
- * SENSOR_TYPE_PROXIMITY and SENSOR_TYPE_SIGNIFICANT_MOTION for more info.
+ * SensorType::PROXIMITY and SensorType::SIGNIFICANT_MOTION for more info.
*
* Set SENSOR_FLAG_WAKE_UP flag for all wake-up sensors.
*
- * For example, A device can have two sensors both of SENSOR_TYPE_ACCELEROMETER
+ * For example, A device can have two sensors both of SensorType::ACCELEROMETER
* and one of them can be a wake_up sensor (with SENSOR_FLAG_WAKE_UP flag set)
* and the other can be a regular non wake_up sensor. Both of these sensors
* must be activated/deactivated independently of the other.
*/
-@export(name="")
+@export(name="", value_prefix="SENSOR_TYPE_")
enum SensorType : int32_t {
/* META_DATA is a special event type used to populate the MetaData
* structure. It doesn't correspond to a physical sensor. Events of this
* type exist only inside the HAL, their primary purpose is to signal the
* completion of a flush request.
*/
- SENSOR_TYPE_META_DATA = 0,
+ META_DATA = 0,
/*
- * SENSOR_TYPE_ACCELEROMETER
+ * ACCELEROMETER
* reporting-mode: continuous
*
* All values are in SI units (m/s^2) and measure the acceleration of the
@@ -131,10 +133,10 @@
* Implement the non-wake-up version of this sensor and implement the
* wake-up version if the system possesses a wake up fifo.
*/
- SENSOR_TYPE_ACCELEROMETER = 1,
+ ACCELEROMETER = 1,
/*
- * SENSOR_TYPE_GEOMAGNETIC_FIELD
+ * MAGNETIC_FIELD
* reporting-mode: continuous
*
* All values are in micro-Tesla (uT) and measure the geomagnetic
@@ -143,10 +145,10 @@
* Implement the non-wake-up version of this sensor and implement the
* wake-up version if the system possesses a wake up fifo.
*/
- SENSOR_TYPE_GEOMAGNETIC_FIELD = 2,
+ MAGNETIC_FIELD = 2,
/*
- * SENSOR_TYPE_ORIENTATION
+ * ORIENTATION
* reporting-mode: continuous
*
* All values are angles in degrees.
@@ -157,10 +159,10 @@
* Implement the non-wake-up version of this sensor and implement the
* wake-up version if the system possesses a wake up fifo.
*/
- SENSOR_TYPE_ORIENTATION = 3,
+ ORIENTATION = 3,
/*
- * SENSOR_TYPE_GYROSCOPE
+ * GYROSCOPE
* reporting-mode: continuous
*
* All values are in radians/second and measure the rate of rotation
@@ -169,20 +171,20 @@
* Implement the non-wake-up version of this sensor and implement the
* wake-up version if the system possesses a wake up fifo.
*/
- SENSOR_TYPE_GYROSCOPE = 4,
+ GYROSCOPE = 4,
/*
- * SENSOR_TYPE_LIGHT
+ * LIGHT
* reporting-mode: on-change
*
* The light sensor value is returned in SI lux units.
*
* Both wake-up and non wake-up versions are useful.
*/
- SENSOR_TYPE_LIGHT = 5,
+ LIGHT = 5,
/*
- * SENSOR_TYPE_PRESSURE
+ * PRESSURE
* reporting-mode: continuous
*
* The pressure sensor return the athmospheric pressure in hectopascal (hPa)
@@ -190,13 +192,13 @@
* Implement the non-wake-up version of this sensor and implement the
* wake-up version if the system possesses a wake up fifo.
*/
- SENSOR_TYPE_PRESSURE = 6,
+ PRESSURE = 6,
- /* SENSOR_TYPE_TEMPERATURE is deprecated in the HAL */
- SENSOR_TYPE_TEMPERATURE = 7,
+ /* TEMPERATURE is deprecated in the HAL */
+ TEMPERATURE = 7,
/*
- * SENSOR_TYPE_PROXIMITY
+ * PROXIMITY
* reporting-mode: on-change
*
* The proximity sensor which turns the screen off and back on during calls
@@ -206,10 +208,10 @@
* The value corresponds to the distance to the nearest object in
* centimeters.
*/
- SENSOR_TYPE_PROXIMITY = 8,
+ PROXIMITY = 8,
/*
- * SENSOR_TYPE_GRAVITY
+ * GRAVITY
* reporting-mode: continuous
*
* A gravity output indicates the direction of and magnitude of gravity in
@@ -218,10 +220,10 @@
* Implement the non-wake-up version of this sensor and implement the
* wake-up version if the system possesses a wake up fifo.
*/
- SENSOR_TYPE_GRAVITY = 9,
+ GRAVITY = 9,
/*
- * SENSOR_TYPE_LINEAR_ACCELERATION
+ * LINEAR_ACCELERATION
* reporting-mode: continuous
*
* Indicates the linear acceleration of the device in device coordinates,
@@ -230,10 +232,10 @@
* Implement the non-wake-up version of this sensor and implement the
* wake-up version if the system possesses a wake up fifo.
*/
- SENSOR_TYPE_LINEAR_ACCELERATION = 10,
+ LINEAR_ACCELERATION = 10,
/*
- * SENSOR_TYPE_ROTATION_VECTOR
+ * ROTATION_VECTOR
* reporting-mode: continuous
*
* The rotation vector symbolizes the orientation of the device relative to
@@ -242,10 +244,10 @@
* Implement the non-wake-up version of this sensor and implement the
* wake-up version if the system possesses a wake up fifo.
*/
- SENSOR_TYPE_ROTATION_VECTOR = 11,
+ ROTATION_VECTOR = 11,
/*
- * SENSOR_TYPE_RELATIVE_HUMIDITY
+ * RELATIVE_HUMIDITY
* reporting-mode: on-change
*
* A relative humidity sensor measures relative ambient air humidity and
@@ -253,44 +255,44 @@
*
* Both wake-up and non wake-up versions are useful.
*/
- SENSOR_TYPE_RELATIVE_HUMIDITY = 12,
+ RELATIVE_HUMIDITY = 12,
/*
- * SENSOR_TYPE_AMBIENT_TEMPERATURE
+ * AMBIENT_TEMPERATURE
* reporting-mode: on-change
*
* The ambient (room) temperature in degree Celsius.
*
* Both wake-up and non wake-up versions are useful.
*/
- SENSOR_TYPE_AMBIENT_TEMPERATURE = 13,
+ AMBIENT_TEMPERATURE = 13,
/*
- * SENSOR_TYPE_MAGNETIC_FIELD_UNCALIBRATED
+ * MAGNETIC_FIELD_UNCALIBRATED
* reporting-mode: continuous
*
- * Similar to SENSOR_TYPE_MAGNETIC_FIELD, but the hard iron calibration is
+ * Similar to MAGNETIC_FIELD, but the hard iron calibration is
* reported separately instead of being included in the measurement.
*
* Implement the non-wake-up version of this sensor and implement the
* wake-up version if the system possesses a wake up fifo.
*/
- SENSOR_TYPE_MAGNETIC_FIELD_UNCALIBRATED = 14,
+ MAGNETIC_FIELD_UNCALIBRATED = 14,
/*
- * SENSOR_TYPE_GAME_ROTATION_VECTOR
+ * GAME_ROTATION_VECTOR
* reporting-mode: continuous
*
- * Similar to SENSOR_TYPE_ROTATION_VECTOR, but not using the geomagnetic
+ * Similar to ROTATION_VECTOR, but not using the geomagnetic
* field.
*
* Implement the non-wake-up version of this sensor and implement the
* wake-up version if the system possesses a wake up fifo.
*/
- SENSOR_TYPE_GAME_ROTATION_VECTOR = 15,
+ GAME_ROTATION_VECTOR = 15,
/*
- * SENSOR_TYPE_GYROSCOPE_UNCALIBRATED
+ * GYROSCOPE_UNCALIBRATED
* reporting-mode: continuous
*
* All values are in radians/second and measure the rate of rotation
@@ -299,10 +301,10 @@
* Implement the non-wake-up version of this sensor and implement the
* wake-up version if the system possesses a wake up fifo.
*/
- SENSOR_TYPE_GYROSCOPE_UNCALIBRATED = 16,
+ GYROSCOPE_UNCALIBRATED = 16,
/*
- * SENSOR_TYPE_SIGNIFICANT_MOTION
+ * SIGNIFICANT_MOTION
* reporting-mode: one-shot
*
* A sensor of this type triggers an event each time significant motion
@@ -312,10 +314,10 @@
* significant motion sensor. A non wake-up version is not useful.
* The only allowed value to return is 1.0.
*/
- SENSOR_TYPE_SIGNIFICANT_MOTION = 17,
+ SIGNIFICANT_MOTION = 17,
/*
- * SENSOR_TYPE_STEP_DETECTOR
+ * STEP_DETECTOR
* reporting-mode: special
*
* A sensor of this type triggers an event each time a step is taken
@@ -324,10 +326,10 @@
*
* Both wake-up and non wake-up versions are useful.
*/
- SENSOR_TYPE_STEP_DETECTOR = 18,
+ STEP_DETECTOR = 18,
/*
- * SENSOR_TYPE_STEP_COUNTER
+ * STEP_COUNTER
* reporting-mode: on-change
*
* A sensor of this type returns the number of steps taken by the user since
@@ -337,22 +339,22 @@
* Implement the non-wake-up version of this sensor and implement the
* wake-up version if the system possesses a wake up fifo.
*/
- SENSOR_TYPE_STEP_COUNTER = 19,
+ STEP_COUNTER = 19,
/*
- * SENSOR_TYPE_GEOMAGNETIC_ROTATION_VECTOR
+ * GEOMAGNETIC_ROTATION_VECTOR
* reporting-mode: continuous
*
- * Similar to SENSOR_TYPE_ROTATION_VECTOR, but using a magnetometer instead
+ * Similar to ROTATION_VECTOR, but using a magnetometer instead
* of using a gyroscope.
*
* Implement the non-wake-up version of this sensor and implement the
* wake-up version if the system possesses a wake up fifo.
*/
- SENSOR_TYPE_GEOMAGNETIC_ROTATION_VECTOR = 20,
+ GEOMAGNETIC_ROTATION_VECTOR = 20,
/*
- * SENSOR_TYPE_HEART_RATE
+ * HEART_RATE
* reporting-mode: on-change
*
* A sensor of this type returns the current heart rate.
@@ -364,7 +366,7 @@
* when heart_rate.bpm or heart_rate.status have changed since the last
* event. In particular, upon the first activation, unless the device is
* known to not be on the body, the status field of the first event must be
- * set to SENSOR_STATUS_UNRELIABLE. The event must not be generated faster
+ * set to SensorStatus::UNRELIABLE. The event should be generated no faster
* than every period_ns passed to setDelay() or to batch().
* See the definition of the on-change reporting mode for more information.
*
@@ -373,10 +375,10 @@
*
* Both wake-up and non wake-up versions are useful.
*/
- SENSOR_TYPE_HEART_RATE = 21,
+ HEART_RATE = 21,
/*
- * SENSOR_TYPE_WAKE_UP_TILT_DETECTOR
+ * WAKE_UP_TILT_DETECTOR
* reporting-mode: special (setDelay has no impact)
*
* A sensor of this type generates an event each time a tilt event is
@@ -412,10 +414,10 @@
*
* Implement only the wake-up version of this sensor.
*/
- SENSOR_TYPE_TILT_DETECTOR = 22,
+ TILT_DETECTOR = 22,
/*
- * SENSOR_TYPE_WAKE_GESTURE
+ * WAKE_GESTURE
* reporting-mode: one-shot
*
* A sensor enabling waking up the device based on a device specific motion.
@@ -433,10 +435,10 @@
*
* Implement only the wake-up version of this sensor.
*/
- SENSOR_TYPE_WAKE_GESTURE = 23,
+ WAKE_GESTURE = 23,
/*
- * SENSOR_TYPE_GLANCE_GESTURE
+ * GLANCE_GESTURE
* reporting-mode: one-shot
*
* A sensor enabling briefly turning the screen on to enable the user to
@@ -458,10 +460,10 @@
*
* Implement only the wake-up version of this sensor.
*/
- SENSOR_TYPE_GLANCE_GESTURE = 24,
+ GLANCE_GESTURE = 24,
/**
- * SENSOR_TYPE_PICK_UP_GESTURE
+ * PICK_UP_GESTURE
* reporting-mode: one-shot
*
* A sensor of this type triggers when the device is picked up regardless of
@@ -470,10 +472,10 @@
*
* Implement only the wake-up version of this sensor.
*/
- SENSOR_TYPE_PICK_UP_GESTURE = 25,
+ PICK_UP_GESTURE = 25,
/*
- * SENSOR_TYPE_WRIST_TILT_GESTURE
+ * WRIST_TILT_GESTURE
* trigger-mode: special
* wake-up sensor: yes
*
@@ -485,10 +487,10 @@
*
* Implement only the wake-up version of this sensor.
*/
- SENSOR_TYPE_WRIST_TILT_GESTURE = 26,
+ WRIST_TILT_GESTURE = 26,
/*
- * SENSOR_TYPE_DEVICE_ORIENTATION
+ * DEVICE_ORIENTATION
* reporting-mode: on-change
*
* The current orientation of the device. The value is reported in
@@ -519,10 +521,10 @@
*
* Both wake-up and non wake-up versions are useful.
*/
- SENSOR_TYPE_DEVICE_ORIENTATION = 27,
+ DEVICE_ORIENTATION = 27,
/*
- * SENSOR_TYPE_POSE_6DOF
+ * POSE_6DOF
* trigger-mode: continuous
*
* A sensor of this type returns the pose of the device.
@@ -537,10 +539,10 @@
* . Depth Camera
*
*/
- SENSOR_TYPE_POSE_6DOF = 28,
+ POSE_6DOF = 28,
/*
- * SENSOR_TYPE_STATIONARY_DETECT
+ * STATIONARY_DETECT
* trigger mode: one shot
*
* A sensor of this type returns an event if the device is still/stationary
@@ -551,10 +553,10 @@
*
* The only allowed value to return is 1.0.
*/
- SENSOR_TYPE_STATIONARY_DETECT = 29,
+ STATIONARY_DETECT = 29,
/*
- * SENSOR_TYPE_MOTION_DETECT
+ * MOTION_DETECT
* trigger mode: one shot
*
* A sensor of this type returns an event if the device is not still for
@@ -569,10 +571,10 @@
*
* The only allowed value to return is 1.0.
*/
- SENSOR_TYPE_MOTION_DETECT = 30,
+ MOTION_DETECT = 30,
/*
- * SENSOR_TYPE_HEART_BEAT
+ * HEART_BEAT
* trigger mode: continuous
*
* A sensor of this type returns an event everytime a hear beat peak is
@@ -589,10 +591,10 @@
* of the peak where 0.0 represent no information at all, and 1.0 represents
* certainty.
*/
- SENSOR_TYPE_HEART_BEAT = 31,
+ HEART_BEAT = 31,
/**
- * SENSOR_TYPE_DYNAMIC_SENSOR_META
+ * DYNAMIC_SENSOR_META
* trigger-mode: special
*
* A sensor event of this type is received when a dynamic sensor is added to
@@ -607,7 +609,7 @@
* A dynamic sensor connection indicates connection of a physical device or
* instantiation of a virtual sensor backed by algorithm; and a dynamic
* sensor disconnection indicates the the opposite. A sensor event of
- * SENSOR_TYPE_DYNAMIC_SENSOR_META type must be delivered regardless of
+ * DYNAMIC_SENSOR_META type should be delivered regardless of
* the activation status of the sensor in the event of dynamic sensor
* connection and disconnection. In the sensor event, besides the common
* data entries, "dynamic_sensor_meta", which includes fields for connection
@@ -636,10 +638,10 @@
* unit.
*
*/
- SENSOR_TYPE_DYNAMIC_SENSOR_META = 32,
+ DYNAMIC_SENSOR_META = 32,
/**
- * SENSOR_TYPE_ADDITIONAL_INFO
+ * ADDITIONAL_INFO
* reporting-mode: N/A
*
* This sensor type is for delivering additional sensor information aside
@@ -652,7 +654,7 @@
* sensor list can have the type SENSOR_TYPE_ADDITIONAL_INFO. If a
* sensor HAL supports sensor additional information feature, it reports
* sensor_event_t with "sensor" field set to handle of the reporting sensor
- * and "type" field set to SENSOR_TYPE_ADDITIONAL_INFO. Delivery of
+ * and "type" field set to ADDITIONAL_INFO. Delivery of
* additional information events is triggered under two conditions: an
* enable activate() call or a flush() call to the corresponding sensor.
* Besides, time varying parameters can update infrequently without being
@@ -675,10 +677,10 @@
* If flush() was triggering the report, all additional information frames
* must be delivered after flush complete event.
*/
- SENSOR_TYPE_ADDITIONAL_INFO = 33,
+ ADDITIONAL_INFO = 33,
/*
- * SENSOR_TYPE_LOW_LATENCY_OFFBODY_DETECT
+ * LOW_LATENCY_OFFBODY_DETECT
* trigger-mode: on-change
* wake-up sensor: yes
*
@@ -698,10 +700,10 @@
* 1.0 for on-body
*
*/
- SENSOR_TYPE_LOW_LATENCY_OFFBODY_DETECT = 34,
+ LOW_LATENCY_OFFBODY_DETECT = 34,
/*
- * SENSOR_TYPE_ACCELEROMETER_UNCALIBRATED
+ * ACCELEROMETER_UNCALIBRATED
* reporting-mode: continuous
*
* All values are in SI units (m/s^2) and measure the acceleration of the
@@ -710,17 +712,17 @@
* Implement the non-wake-up version of this sensor and implement the
* wake-up version if the system possesses a wake up fifo.
*/
- SENSOR_TYPE_ACCELEROMETER_UNCALIBRATED = 35,
+ ACCELEROMETER_UNCALIBRATED = 35,
/*
* Base for device manufacturers private sensor types.
* These sensor types can't be exposed in the SDK.
*/
- SENSOR_TYPE_DEVICE_PRIVATE_BASE = 0x10000
+ DEVICE_PRIVATE_BASE = 0x10000
};
-@export(name="")
-enum SensorFlagBits : uint64_t {
+@export(name="", value_prefix="SENSOR_FLAG_")
+enum SensorFlagBits : uint32_t {
/*
* Whether this sensor wakes up the AP from suspend mode when data is
* available. Whenever sensor events are delivered from a wake_up sensor,
@@ -730,7 +732,7 @@
* SensorService, the driver can safely release the wake_lock. SensorService
* will continue to hold a wake_lock till the app actually reads the events.
*/
- SENSOR_FLAG_WAKE_UP = 1,
+ WAKE_UP = 1,
/*
* Reporting modes for various sensors. Each sensor will have exactly one of
@@ -738,10 +740,10 @@
* The least significant 2nd, 3rd and 4th bits are used to represent four
* possible reporting modes.
*/
- SENSOR_FLAG_CONTINUOUS_MODE = 0,
- SENSOR_FLAG_ON_CHANGE_MODE = 2,
- SENSOR_FLAG_ONE_SHOT_MODE = 4,
- SENSOR_FLAG_SPECIAL_REPORTING_MODE = 6,
+ CONTINUOUS_MODE = 0,
+ ON_CHANGE_MODE = 2,
+ ONE_SHOT_MODE = 4,
+ SPECIAL_REPORTING_MODE = 6,
/*
* Set this flag if the sensor supports data_injection mode and allows data
@@ -751,48 +753,58 @@
* can be set with this flag and SensorService will inject accelerometer
* data and read the corresponding step counts.
*/
- SENSOR_FLAG_SUPPORTS_DATA_INJECTION = 0x10,
+ DATA_INJECTION = 0x10,
/*
* Set this flag if the sensor is a dynamically connected sensor. See
* DynamicSensorInfo and DYNAMIC_SENSOR_META for details.
*/
- SENSOR_FLAG_DYNAMIC_SENSOR = 0x20,
+ DYNAMIC_SENSOR = 0x20,
/*
* Set this flag if sensor additional information is supported.
* See ADDITIONAL_INFO and AdditionalInfo for details.
*/
- SENSOR_FLAG_ADDITIONAL_INFO = 0x40,
+ ADDITIONAL_INFO = 0x40,
/*
* Set this flag if sensor suppor direct channel backed by ashmem.
* See SharedMemType and registerDirectChannel for more details.
*/
- SENSOR_FLAG_DIRECT_CHANNEL_ASHMEM = 0x400,
+ DIRECT_CHANNEL_ASHMEM = 0x400,
/*
* Set this flag if sensor suppor direct channel backed by gralloc HAL memory.
* See SharedMemType and registerDirectChannel for more details.
*/
- SENSOR_FLAG_DIRECT_CHANNEL_GRALLOC = 0x800,
+ DIRECT_CHANNEL_GRALLOC = 0x800,
/*
* Flags mask for reporting mode of sensor.
*/
- SENSOR_FLAG_MASK_REPORTING_MODE = 0xE,
+ MASK_REPORTING_MODE = 0xE,
/*
* Flags mask for direct report maximum rate level support.
* See RateLevel.
*/
- SENSOR_FLAG_MASK_DIRECT_REPORT = 0x380,
+ MASK_DIRECT_REPORT = 0x380,
/*
* Flags mask for all direct channel support bits.
* See SharedMemType.
*/
- SENSOR_FLAG_MASK_DIRECT_CHANNEL = 0xC00,
+ MASK_DIRECT_CHANNEL = 0xC00,
+};
+
+@export(name="sensor_flag_shift_t", value_prefix="SENSOR_FLAG_SHIFT_")
+enum SensorFlagShift : uint8_t {
+ REPORTING_MODE = 1,
+ DATA_INJECTION = 4,
+ DYNAMIC_SENSOR = 5,
+ ADDITIONAL_INFO = 6,
+ DIRECT_REPORT = 7,
+ DIRECT_CHANNEL = 10,
};
struct SensorInfo {
@@ -819,13 +831,14 @@
/* this sensor's type. */
SensorType type;
- /* type of this sensor as a string. Set to corresponding
- * SENSOR_STRING_TYPE_*.
+ /* type of this sensor as a string.
+ *
* When defining an OEM specific sensor or sensor manufacturer specific
* sensor, use your reserve domain name as a prefix.
- * ex: com.google.glass.onheaddetector
- * For sensors of known type, the android framework might overwrite this
- * string automatically.
+ * e.g. com.google.glass.onheaddetector
+ *
+ * For sensors of known type defined in SensorType (value <
+ * SensorType::DEVICE_PRIVATE_BASE), this can be an empty string.
*/
string typeAsString;
@@ -888,16 +901,16 @@
int32_t maxDelay;
/* Bitmask of SensorFlagBits */
- uint64_t flags;
+ bitfield<SensorFlagBits> flags;
};
-@export(name="")
+@export(name="", value_prefix="SENSOR_STATUS_")
enum SensorStatus : int8_t {
- SENSOR_STATUS_NO_CONTACT = -1,
- SENSOR_STATUS_UNRELIABLE = 0,
- SENSOR_STATUS_ACCURACY_LOW = 1,
- SENSOR_STATUS_ACCURACY_MEDIUM = 2,
- SENSOR_STATUS_ACCURACY_HIGH = 3,
+ NO_CONTACT = -1,
+ UNRELIABLE = 0,
+ ACCURACY_LOW = 1,
+ ACCURACY_MEDIUM = 2,
+ ACCURACY_HIGH = 3,
};
struct Vec3 {
@@ -924,8 +937,9 @@
};
struct HeartRate {
- /* Heart rate in beats per minute. Set to 0 when status is
- * SENSOR_STATUS_UNRELIABLE or SENSOR_STATUS_NO_CONTACT.
+ /* Heart rate in beats per minute.
+ * Set to 0 when status is SensorStatus::UNRELIABLE or
+ * SensorStatus::NO_CONTACT
*/
float bpm;
@@ -1106,53 +1120,53 @@
* relative humidity in percent
*/
union EventPayload {
- /* SENSOR_TYPE_ACCELEROMETER, SENSOR_TYPE_GEOMAGNETIC_FIELD,
- * SENSOR_TYPE_ORIENTATION, SENSOR_TYPE_GYROSCOPE, SENSOR_TYPE_GRAVITY,
- * SENSOR_TYPE_LINEAR_ACCELERATION
+ /* SensorType::ACCELEROMETER, SensorType::MAGNETIC_FIELD,
+ * SensorType::ORIENTATION, SensorType::GYROSCOPE, SensorType::GRAVITY,
+ * SensorType::LINEAR_ACCELERATION
*/
Vec3 vec3;
- /* SENSOR_TYPE_ROTATION_VECTOR, SENSOR_TYPE_GAME_ROTATION_VECTOR,
- * SENSOR_TYPE_GEOMAGNETIC_ROTATION_VECTOR
+ /* SensorType::ROTATION_VECTOR, SensorType::GAME_ROTATION_VECTOR,
+ * SensorType::GEOMAGNETIC_ROTATION_VECTOR
*/
Vec4 vec4;
- /* SENSOR_TYPE_MAGNETIC_FIELD_UNCALIBRATED,
- * SENSOR_TYPE_GYROSCOPE_UNCALIBRATED
- * SENSOR_TYPE_ACCELEROMETER_UNCALIBRATED
+ /* SensorType::MAGNETIC_FIELD_UNCALIBRATED,
+ * SensorType::GYROSCOPE_UNCALIBRATED
+ * SensorType::ACCELEROMETER_UNCALIBRATED
*/
Uncal uncal;
- /* SENSOR_TYPE_META_DATA */
+ /* SensorType::META_DATA */
MetaData meta;
- /* SENSOR_TYPE_DEVICE_ORIENTATION, SENSOR_TYPE_LIGHT, SENSOR_TYPE_PRESSURE,
- * SENSOR_TYPE_TEMPERATURE, SENSOR_TYPE_PROXIMITY,
- * SENSOR_TYPE_RELATIVE_HUMIDITY, SENSOR_TYPE_AMBIENT_TEMPERATURE,
- * SENSOR_TYPE_SIGNIFICANT_MOTION, SENSOR_TYPE_STEP_DETECTOR,
- * SENSOR_TYPE_TILT_DETECTOR, SENSOR_TYPE_WAKE_GESTURE,
- * SENSOR_TYPE_GLANCE_GESTURE, SENSOR_TYPE_PICK_UP_GESTURE,
- * SENSOR_TYPE_WRIST_TILT_GESTURE, SENSOR_TYPE_STATIONARY_DETECT,
- * SENSOR_TYPE_MOTION_DETECT, SENSOR_TYPE_HEART_BEAT
+ /* SensorType::DEVICE_ORIENTATION, SensorType::LIGHT, SensorType::PRESSURE,
+ * SensorType::TEMPERATURE, SensorType::PROXIMITY,
+ * SensorType::RELATIVE_HUMIDITY, SensorType::AMBIENT_TEMPERATURE,
+ * SensorType::SIGNIFICANT_MOTION, SensorType::STEP_DETECTOR,
+ * SensorType::TILT_DETECTOR, SensorType::WAKE_GESTURE,
+ * SensorType::GLANCE_GESTURE, SensorType::PICK_UP_GESTURE,
+ * SensorType::WRIST_TILT_GESTURE, SensorType::STATIONARY_DETECT,
+ * SensorType::MOTION_DETECT, SensorType::HEART_BEAT
*/
float scalar;
- /* SENSOR_TYPE_STEP_COUNTER */
+ /* SensorType::STEP_COUNTER */
uint64_t stepCount;
- /* SENSOR_TYPE_HEART_RATE */
+ /* SensorType::HEART_RATE */
HeartRate heartRate;
- /* SENSOR_TYPE_POSE_6DOF */
+ /* SensorType::POSE_6DOF */
float[15] pose6DOF;
- /* SENSOR_TYPE_DYNAMIC_SENSOR_META */
+ /* SensorType::DYNAMIC_SENSOR_META */
DynamicSensorInfo dynamic;
- /* SENSOR_TYPE_ADDITIONAL_INFO */
+ /* SensorType::ADDITIONAL_INFO */
AdditionalInfo additional;
- /* undefined/custom sensor type, >= SENSOR_TYPE_DEVICE_PRIVATE_BASE */
+ /* undefined/custom sensor type >= SensorType::DEVICE_PRIVATE_BASE */
float[16] data;
};
diff --git a/sensors/1.0/vts/Sensors.vts b/sensors/1.0/vts/Sensors.vts
index f80fff5..9e90755 100644
--- a/sensors/1.0/vts/Sensors.vts
+++ b/sensors/1.0/vts/Sensors.vts
@@ -47,22 +47,6 @@
}
api: {
- name: "setDelay"
- return_type_hidl: {
- type: TYPE_ENUM
- predefined_type: "::android::hardware::sensors::V1_0::Result"
- }
- arg: {
- type: TYPE_SCALAR
- scalar_type: "int32_t"
- }
- arg: {
- type: TYPE_SCALAR
- scalar_type: "int64_t"
- }
- }
-
- api: {
name: "poll"
return_type_hidl: {
type: TYPE_ENUM
@@ -100,10 +84,6 @@
}
arg: {
type: TYPE_SCALAR
- scalar_type: "int32_t"
- }
- arg: {
- type: TYPE_SCALAR
scalar_type: "int64_t"
}
arg: {
@@ -136,4 +116,56 @@
}
}
+ api: {
+ name: "registerDirectChannel"
+ return_type_hidl: {
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::sensors::V1_0::Result"
+ }
+ return_type_hidl: {
+ type: TYPE_SCALAR
+ scalar_type: "int32_t"
+ }
+ arg: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::sensors::V1_0::SharedMemInfo"
+ }
+ }
+
+ api: {
+ name: "unregisterDirectChannel"
+ return_type_hidl: {
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::sensors::V1_0::Result"
+ }
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "int32_t"
+ }
+ }
+
+ api: {
+ name: "configDirectReport"
+ return_type_hidl: {
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::sensors::V1_0::Result"
+ }
+ return_type_hidl: {
+ type: TYPE_SCALAR
+ scalar_type: "int32_t"
+ }
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "int32_t"
+ }
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "int32_t"
+ }
+ arg: {
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::sensors::V1_0::RateLevel"
+ }
+ }
+
}
diff --git a/sensors/1.0/vts/functional/sensors_hidl_hal_test.cpp b/sensors/1.0/vts/functional/sensors_hidl_hal_test.cpp
index 17c439e..2edc5c3 100644
--- a/sensors/1.0/vts/functional/sensors_hidl_hal_test.cpp
+++ b/sensors/1.0/vts/functional/sensors_hidl_hal_test.cpp
@@ -203,16 +203,16 @@
inline static SensorFlagBits extractReportMode(uint64_t flag) {
return (SensorFlagBits) (flag
- & ((uint64_t) SensorFlagBits::SENSOR_FLAG_CONTINUOUS_MODE
- | (uint64_t) SensorFlagBits::SENSOR_FLAG_ON_CHANGE_MODE
- | (uint64_t) SensorFlagBits::SENSOR_FLAG_ONE_SHOT_MODE
- | (uint64_t) SensorFlagBits::SENSOR_FLAG_SPECIAL_REPORTING_MODE));
+ & ((uint64_t) SensorFlagBits::CONTINUOUS_MODE
+ | (uint64_t) SensorFlagBits::ON_CHANGE_MODE
+ | (uint64_t) SensorFlagBits::ONE_SHOT_MODE
+ | (uint64_t) SensorFlagBits::SPECIAL_REPORTING_MODE));
}
inline static bool isMetaSensorType(SensorType type) {
- return (type == SensorType::SENSOR_TYPE_META_DATA
- || type == SensorType::SENSOR_TYPE_DYNAMIC_SENSOR_META
- || type == SensorType::SENSOR_TYPE_ADDITIONAL_INFO);
+ return (type == SensorType::META_DATA
+ || type == SensorType::DYNAMIC_SENSOR_META
+ || type == SensorType::ADDITIONAL_INFO);
}
inline static bool isValidType(SensorType type) {
@@ -225,14 +225,14 @@
bool SensorsHidlTest::typeMatchStringType(SensorType type, const hidl_string& stringType) {
- if (type >= SensorType::SENSOR_TYPE_DEVICE_PRIVATE_BASE) {
+ if (type >= SensorType::DEVICE_PRIVATE_BASE) {
return true;
}
bool res = true;
switch (type) {
#define CHECK_TYPE_STRING_FOR_SENSOR_TYPE(type) \
- case SensorType::SENSOR_TYPE_ ## type: res = stringType == SENSOR_STRING_TYPE_ ## type;\
+ case SensorType::type: res = stringType == SENSOR_STRING_TYPE_ ## type;\
break;\
CHECK_TYPE_STRING_FOR_SENSOR_TYPE(ACCELEROMETER);
@@ -277,7 +277,7 @@
}
bool SensorsHidlTest::typeMatchReportMode(SensorType type, SensorFlagBits reportMode) {
- if (type >= SensorType::SENSOR_TYPE_DEVICE_PRIVATE_BASE) {
+ if (type >= SensorType::DEVICE_PRIVATE_BASE) {
return true;
}
@@ -290,19 +290,21 @@
int32_t minDelay, int32_t maxDelay, SensorFlagBits reportMode) {
bool res = true;
switch(reportMode) {
- case SensorFlagBits::SENSOR_FLAG_CONTINUOUS_MODE:
+ case SensorFlagBits::CONTINUOUS_MODE:
res = (minDelay > 0) && (maxDelay >= 0);
break;
- case SensorFlagBits::SENSOR_FLAG_ON_CHANGE_MODE:
+ case SensorFlagBits::ON_CHANGE_MODE:
//TODO: current implementation does not satisfy minDelay == 0 on Proximity
res = (minDelay >= 0) && (maxDelay >= 0);
//res = (minDelay == 0) && (maxDelay >= 0);
break;
- case SensorFlagBits::SENSOR_FLAG_ONE_SHOT_MODE:
+ case SensorFlagBits::ONE_SHOT_MODE:
res = (minDelay == -1) && (maxDelay == 0);
break;
- case SensorFlagBits::SENSOR_FLAG_SPECIAL_REPORTING_MODE:
+ case SensorFlagBits::SPECIAL_REPORTING_MODE:
res = (minDelay == 0) && (maxDelay == 0);
+ default:
+ res = false;
}
return res;
@@ -310,44 +312,44 @@
SensorFlagBits SensorsHidlTest::expectedReportModeForType(SensorType type) {
switch (type) {
- case SensorType::SENSOR_TYPE_ACCELEROMETER:
- case SensorType::SENSOR_TYPE_GYROSCOPE:
- case SensorType::SENSOR_TYPE_GEOMAGNETIC_FIELD:
- case SensorType::SENSOR_TYPE_ORIENTATION:
- case SensorType::SENSOR_TYPE_PRESSURE:
- case SensorType::SENSOR_TYPE_TEMPERATURE:
- case SensorType::SENSOR_TYPE_GRAVITY:
- case SensorType::SENSOR_TYPE_LINEAR_ACCELERATION:
- case SensorType::SENSOR_TYPE_ROTATION_VECTOR:
- case SensorType::SENSOR_TYPE_MAGNETIC_FIELD_UNCALIBRATED:
- case SensorType::SENSOR_TYPE_GAME_ROTATION_VECTOR:
- case SensorType::SENSOR_TYPE_GYROSCOPE_UNCALIBRATED:
- case SensorType::SENSOR_TYPE_GEOMAGNETIC_ROTATION_VECTOR:
- case SensorType::SENSOR_TYPE_POSE_6DOF:
- case SensorType::SENSOR_TYPE_HEART_BEAT:
- return SensorFlagBits::SENSOR_FLAG_CONTINUOUS_MODE;
+ case SensorType::ACCELEROMETER:
+ case SensorType::GYROSCOPE:
+ case SensorType::MAGNETIC_FIELD:
+ case SensorType::ORIENTATION:
+ case SensorType::PRESSURE:
+ case SensorType::TEMPERATURE:
+ case SensorType::GRAVITY:
+ case SensorType::LINEAR_ACCELERATION:
+ case SensorType::ROTATION_VECTOR:
+ case SensorType::MAGNETIC_FIELD_UNCALIBRATED:
+ case SensorType::GAME_ROTATION_VECTOR:
+ case SensorType::GYROSCOPE_UNCALIBRATED:
+ case SensorType::GEOMAGNETIC_ROTATION_VECTOR:
+ case SensorType::POSE_6DOF:
+ case SensorType::HEART_BEAT:
+ return SensorFlagBits::CONTINUOUS_MODE;
- case SensorType::SENSOR_TYPE_LIGHT:
- case SensorType::SENSOR_TYPE_PROXIMITY:
- case SensorType::SENSOR_TYPE_RELATIVE_HUMIDITY:
- case SensorType::SENSOR_TYPE_AMBIENT_TEMPERATURE:
- case SensorType::SENSOR_TYPE_HEART_RATE:
- case SensorType::SENSOR_TYPE_DEVICE_ORIENTATION:
- case SensorType::SENSOR_TYPE_MOTION_DETECT:
- case SensorType::SENSOR_TYPE_STEP_COUNTER:
- return SensorFlagBits::SENSOR_FLAG_ON_CHANGE_MODE;
+ case SensorType::LIGHT:
+ case SensorType::PROXIMITY:
+ case SensorType::RELATIVE_HUMIDITY:
+ case SensorType::AMBIENT_TEMPERATURE:
+ case SensorType::HEART_RATE:
+ case SensorType::DEVICE_ORIENTATION:
+ case SensorType::MOTION_DETECT:
+ case SensorType::STEP_COUNTER:
+ return SensorFlagBits::ON_CHANGE_MODE;
- case SensorType::SENSOR_TYPE_SIGNIFICANT_MOTION:
- case SensorType::SENSOR_TYPE_WAKE_GESTURE:
- case SensorType::SENSOR_TYPE_GLANCE_GESTURE:
- case SensorType::SENSOR_TYPE_PICK_UP_GESTURE:
- return SensorFlagBits::SENSOR_FLAG_ONE_SHOT_MODE;
+ case SensorType::SIGNIFICANT_MOTION:
+ case SensorType::WAKE_GESTURE:
+ case SensorType::GLANCE_GESTURE:
+ case SensorType::PICK_UP_GESTURE:
+ return SensorFlagBits::ONE_SHOT_MODE;
- case SensorType::SENSOR_TYPE_STEP_DETECTOR:
- case SensorType::SENSOR_TYPE_TILT_DETECTOR:
- case SensorType::SENSOR_TYPE_WRIST_TILT_GESTURE:
- case SensorType::SENSOR_TYPE_DYNAMIC_SENSOR_META:
- return SensorFlagBits::SENSOR_FLAG_SPECIAL_REPORTING_MODE;
+ case SensorType::STEP_DETECTOR:
+ case SensorType::TILT_DETECTOR:
+ case SensorType::WRIST_TILT_GESTURE:
+ case SensorType::DYNAMIC_SENSOR_META:
+ return SensorFlagBits::SPECIAL_REPORTING_MODE;
default:
ALOGW("Type %d is not implemented in expectedReportModeForType", (int)type);
@@ -399,8 +401,8 @@
// Info type, should have no sensor
ASSERT_FALSE(
- s.type == SensorType::SENSOR_TYPE_ADDITIONAL_INFO
- || s.type == SensorType::SENSOR_TYPE_META_DATA);
+ s.type == SensorType::ADDITIONAL_INFO
+ || s.type == SensorType::META_DATA);
// Test fifoMax >= fifoReserved
ALOGV("max reserve = %d, %d", s.fifoMaxEventCount, s.fifoReservedEventCount);
@@ -426,7 +428,7 @@
constexpr int64_t batchingPeriodInNs = 0; // no batching
constexpr useconds_t minTimeUs = 5*1000*1000; // 5 s
constexpr size_t minNEvent = 100; // at lease 100 events
- constexpr SensorType type = SensorType::SENSOR_TYPE_ACCELEROMETER;
+ constexpr SensorType type = SensorType::ACCELEROMETER;
SensorInfo sensor = defaultSensorByType(type);
@@ -437,7 +439,7 @@
int32_t handle = sensor.sensorHandle;
- S()->batch(handle, 0, samplingPeriodInNs, batchingPeriodInNs);
+ S()->batch(handle, samplingPeriodInNs, batchingPeriodInNs);
S()->activate(handle, 1);
events = collectEvents(minTimeUs, minNEvent, true /*clearBeforeStart*/);
S()->activate(handle, 0);
@@ -480,7 +482,7 @@
constexpr int64_t batchingPeriodInNs = 0; // no batching
constexpr useconds_t minTimeUs = 5*1000*1000; // 5 s
constexpr size_t minNEvent = 200;
- constexpr SensorType type = SensorType::SENSOR_TYPE_GYROSCOPE;
+ constexpr SensorType type = SensorType::GYROSCOPE;
SensorInfo sensor = defaultSensorByType(type);
@@ -491,7 +493,7 @@
int32_t handle = sensor.sensorHandle;
- S()->batch(handle, 0, samplingPeriodInNs, batchingPeriodInNs);
+ S()->batch(handle, samplingPeriodInNs, batchingPeriodInNs);
S()->activate(handle, 1);
events = collectEvents(minTimeUs, minNEvent, true /*clearBeforeStart*/);
S()->activate(handle, 0);
@@ -533,7 +535,7 @@
constexpr int64_t batchingPeriodInNs = 0; // no batching
constexpr useconds_t minTimeUs = 5*1000*1000; // 5 s
constexpr size_t minNEvent = 50;
- constexpr SensorType type = SensorType::SENSOR_TYPE_ACCELEROMETER;
+ constexpr SensorType type = SensorType::ACCELEROMETER;
SensorInfo sensor = defaultSensorByType(type);
@@ -551,13 +553,13 @@
return;
}
- S()->batch(handle, 0, minSamplingPeriodInNs, batchingPeriodInNs);
+ S()->batch(handle, minSamplingPeriodInNs, batchingPeriodInNs);
S()->activate(handle, 1);
usleep(500000); // sleep 0.5 sec to wait for change rate to happen
events1 = collectEvents(sensor.minDelay * minNEvent, minNEvent, true /*clearBeforeStart*/);
- S()->batch(handle, 0, maxSamplingPeriodInNs, batchingPeriodInNs);
+ S()->batch(handle, maxSamplingPeriodInNs, batchingPeriodInNs);
usleep(500000); // sleep 0.5 sec to wait for change rate to happen
events2 = collectEvents(sensor.maxDelay * minNEvent, minNEvent, true /*clearBeforeStart*/);
@@ -620,7 +622,7 @@
constexpr int64_t oneSecondInNs = 1ull * 1000 * 1000 * 1000;
constexpr useconds_t minTimeUs = 5*1000*1000; // 5 s
constexpr size_t minNEvent = 50;
- constexpr SensorType type = SensorType::SENSOR_TYPE_ACCELEROMETER;
+ constexpr SensorType type = SensorType::ACCELEROMETER;
constexpr int64_t maxBatchingTestTimeNs = 30ull * 1000 * 1000 * 1000;
SensorInfo sensor = defaultSensorByType(type);
@@ -647,7 +649,7 @@
int64_t allowedBatchDeliverTimeNs =
std::max(oneSecondInNs, batchingPeriodInNs / 10);
- S()->batch(handle, 0, minSamplingPeriodInNs, INT64_MAX);
+ S()->batch(handle, minSamplingPeriodInNs, INT64_MAX);
S()->activate(handle, 1);
usleep(500000); // sleep 0.5 sec to wait for initialization
diff --git a/sensors/1.0/vts/types.vts b/sensors/1.0/vts/types.vts
index 37271fd..2980507 100644
--- a/sensors/1.0/vts/types.vts
+++ b/sensors/1.0/vts/types.vts
@@ -15,17 +15,21 @@
scalar_value: {
int32_t: 0
}
- enumerator: "BAD_VALUE"
- scalar_value: {
- int32_t: 1
- }
enumerator: "PERMISSION_DENIED"
scalar_value: {
- int32_t: 2
+ int32_t: -1
+ }
+ enumerator: "NO_MEMORY"
+ scalar_value: {
+ int32_t: -12
+ }
+ enumerator: "BAD_VALUE"
+ scalar_value: {
+ int32_t: -22
}
enumerator: "INVALID_OPERATION"
scalar_value: {
- int32_t: 3
+ int32_t: -38
}
}
}
@@ -36,11 +40,11 @@
enum_value: {
scalar_type: "int32_t"
- enumerator: "SENSOR_HAL_NORMAL_MODE"
+ enumerator: "NORMAL"
scalar_value: {
int32_t: 0
}
- enumerator: "SENSOR_HAL_DATA_INJECTION_MODE"
+ enumerator: "DATA_INJECTION"
scalar_value: {
int32_t: 1
}
@@ -53,147 +57,151 @@
enum_value: {
scalar_type: "int32_t"
- enumerator: "SENSOR_TYPE_META_DATA"
+ enumerator: "META_DATA"
scalar_value: {
int32_t: 0
}
- enumerator: "SENSOR_TYPE_ACCELEROMETER"
+ enumerator: "ACCELEROMETER"
scalar_value: {
int32_t: 1
}
- enumerator: "SENSOR_TYPE_GEOMAGNETIC_FIELD"
+ enumerator: "MAGNETIC_FIELD"
scalar_value: {
int32_t: 2
}
- enumerator: "SENSOR_TYPE_ORIENTATION"
+ enumerator: "ORIENTATION"
scalar_value: {
int32_t: 3
}
- enumerator: "SENSOR_TYPE_GYROSCOPE"
+ enumerator: "GYROSCOPE"
scalar_value: {
int32_t: 4
}
- enumerator: "SENSOR_TYPE_LIGHT"
+ enumerator: "LIGHT"
scalar_value: {
int32_t: 5
}
- enumerator: "SENSOR_TYPE_PRESSURE"
+ enumerator: "PRESSURE"
scalar_value: {
int32_t: 6
}
- enumerator: "SENSOR_TYPE_TEMPERATURE"
+ enumerator: "TEMPERATURE"
scalar_value: {
int32_t: 7
}
- enumerator: "SENSOR_TYPE_PROXIMITY"
+ enumerator: "PROXIMITY"
scalar_value: {
int32_t: 8
}
- enumerator: "SENSOR_TYPE_GRAVITY"
+ enumerator: "GRAVITY"
scalar_value: {
int32_t: 9
}
- enumerator: "SENSOR_TYPE_LINEAR_ACCELERATION"
+ enumerator: "LINEAR_ACCELERATION"
scalar_value: {
int32_t: 10
}
- enumerator: "SENSOR_TYPE_ROTATION_VECTOR"
+ enumerator: "ROTATION_VECTOR"
scalar_value: {
int32_t: 11
}
- enumerator: "SENSOR_TYPE_RELATIVE_HUMIDITY"
+ enumerator: "RELATIVE_HUMIDITY"
scalar_value: {
int32_t: 12
}
- enumerator: "SENSOR_TYPE_AMBIENT_TEMPERATURE"
+ enumerator: "AMBIENT_TEMPERATURE"
scalar_value: {
int32_t: 13
}
- enumerator: "SENSOR_TYPE_MAGNETIC_FIELD_UNCALIBRATED"
+ enumerator: "MAGNETIC_FIELD_UNCALIBRATED"
scalar_value: {
int32_t: 14
}
- enumerator: "SENSOR_TYPE_GAME_ROTATION_VECTOR"
+ enumerator: "GAME_ROTATION_VECTOR"
scalar_value: {
int32_t: 15
}
- enumerator: "SENSOR_TYPE_GYROSCOPE_UNCALIBRATED"
+ enumerator: "GYROSCOPE_UNCALIBRATED"
scalar_value: {
int32_t: 16
}
- enumerator: "SENSOR_TYPE_SIGNIFICANT_MOTION"
+ enumerator: "SIGNIFICANT_MOTION"
scalar_value: {
int32_t: 17
}
- enumerator: "SENSOR_TYPE_STEP_DETECTOR"
+ enumerator: "STEP_DETECTOR"
scalar_value: {
int32_t: 18
}
- enumerator: "SENSOR_TYPE_STEP_COUNTER"
+ enumerator: "STEP_COUNTER"
scalar_value: {
int32_t: 19
}
- enumerator: "SENSOR_TYPE_GEOMAGNETIC_ROTATION_VECTOR"
+ enumerator: "GEOMAGNETIC_ROTATION_VECTOR"
scalar_value: {
int32_t: 20
}
- enumerator: "SENSOR_TYPE_HEART_RATE"
+ enumerator: "HEART_RATE"
scalar_value: {
int32_t: 21
}
- enumerator: "SENSOR_TYPE_TILT_DETECTOR"
+ enumerator: "TILT_DETECTOR"
scalar_value: {
int32_t: 22
}
- enumerator: "SENSOR_TYPE_WAKE_GESTURE"
+ enumerator: "WAKE_GESTURE"
scalar_value: {
int32_t: 23
}
- enumerator: "SENSOR_TYPE_GLANCE_GESTURE"
+ enumerator: "GLANCE_GESTURE"
scalar_value: {
int32_t: 24
}
- enumerator: "SENSOR_TYPE_PICK_UP_GESTURE"
+ enumerator: "PICK_UP_GESTURE"
scalar_value: {
int32_t: 25
}
- enumerator: "SENSOR_TYPE_WRIST_TILT_GESTURE"
+ enumerator: "WRIST_TILT_GESTURE"
scalar_value: {
int32_t: 26
}
- enumerator: "SENSOR_TYPE_DEVICE_ORIENTATION"
+ enumerator: "DEVICE_ORIENTATION"
scalar_value: {
int32_t: 27
}
- enumerator: "SENSOR_TYPE_POSE_6DOF"
+ enumerator: "POSE_6DOF"
scalar_value: {
int32_t: 28
}
- enumerator: "SENSOR_TYPE_STATIONARY_DETECT"
+ enumerator: "STATIONARY_DETECT"
scalar_value: {
int32_t: 29
}
- enumerator: "SENSOR_TYPE_MOTION_DETECT"
+ enumerator: "MOTION_DETECT"
scalar_value: {
int32_t: 30
}
- enumerator: "SENSOR_TYPE_HEART_BEAT"
+ enumerator: "HEART_BEAT"
scalar_value: {
int32_t: 31
}
- enumerator: "SENSOR_TYPE_DYNAMIC_SENSOR_META"
+ enumerator: "DYNAMIC_SENSOR_META"
scalar_value: {
int32_t: 32
}
- enumerator: "SENSOR_TYPE_ADDITIONAL_INFO"
+ enumerator: "ADDITIONAL_INFO"
scalar_value: {
int32_t: 33
}
- enumerator: "SENSOR_TYPE_LOW_LATENCY_OFFBODY_DETECT"
+ enumerator: "LOW_LATENCY_OFFBODY_DETECT"
scalar_value: {
int32_t: 34
}
- enumerator: "SENSOR_TYPE_DEVICE_PRIVATE_BASE"
+ enumerator: "ACCELEROMETER_UNCALIBRATED"
+ scalar_value: {
+ int32_t: 35
+ }
+ enumerator: "DEVICE_PRIVATE_BASE"
scalar_value: {
int32_t: 65536
}
@@ -204,39 +212,92 @@
name: "::android::hardware::sensors::V1_0::SensorFlagBits"
type: TYPE_ENUM
enum_value: {
- scalar_type: "uint64_t"
+ scalar_type: "uint32_t"
- enumerator: "SENSOR_FLAG_WAKE_UP"
+ enumerator: "WAKE_UP"
scalar_value: {
- uint64_t: 1
+ uint32_t: 1
}
- enumerator: "SENSOR_FLAG_CONTINUOUS_MODE"
+ enumerator: "CONTINUOUS_MODE"
scalar_value: {
- uint64_t: 0
+ uint32_t: 0
}
- enumerator: "SENSOR_FLAG_ON_CHANGE_MODE"
+ enumerator: "ON_CHANGE_MODE"
scalar_value: {
- uint64_t: 2
+ uint32_t: 2
}
- enumerator: "SENSOR_FLAG_ONE_SHOT_MODE"
+ enumerator: "ONE_SHOT_MODE"
scalar_value: {
- uint64_t: 4
+ uint32_t: 4
}
- enumerator: "SENSOR_FLAG_SPECIAL_REPORTING_MODE"
+ enumerator: "SPECIAL_REPORTING_MODE"
scalar_value: {
- uint64_t: 6
+ uint32_t: 6
}
- enumerator: "SENSOR_FLAG_SUPPORTS_DATA_INJECTION"
+ enumerator: "DATA_INJECTION"
scalar_value: {
- uint64_t: 16
+ uint32_t: 16
}
- enumerator: "SENSOR_FLAG_DYNAMIC_SENSOR"
+ enumerator: "DYNAMIC_SENSOR"
scalar_value: {
- uint64_t: 32
+ uint32_t: 32
}
- enumerator: "SENSOR_FLAG_ADDITIONAL_INFO"
+ enumerator: "ADDITIONAL_INFO"
scalar_value: {
- uint64_t: 64
+ uint32_t: 64
+ }
+ enumerator: "DIRECT_CHANNEL_ASHMEM"
+ scalar_value: {
+ uint32_t: 1024
+ }
+ enumerator: "DIRECT_CHANNEL_GRALLOC"
+ scalar_value: {
+ uint32_t: 2048
+ }
+ enumerator: "MASK_REPORTING_MODE"
+ scalar_value: {
+ uint32_t: 14
+ }
+ enumerator: "MASK_DIRECT_REPORT"
+ scalar_value: {
+ uint32_t: 896
+ }
+ enumerator: "MASK_DIRECT_CHANNEL"
+ scalar_value: {
+ uint32_t: 3072
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::sensors::V1_0::SensorFlagShift"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "uint8_t"
+
+ enumerator: "REPORTING_MODE"
+ scalar_value: {
+ uint8_t: 1
+ }
+ enumerator: "DATA_INJECTION"
+ scalar_value: {
+ uint8_t: 4
+ }
+ enumerator: "DYNAMIC_SENSOR"
+ scalar_value: {
+ uint8_t: 5
+ }
+ enumerator: "ADDITIONAL_INFO"
+ scalar_value: {
+ uint8_t: 6
+ }
+ enumerator: "DIRECT_REPORT"
+ scalar_value: {
+ uint8_t: 7
+ }
+ enumerator: "DIRECT_CHANNEL"
+ scalar_value: {
+ uint8_t: 10
}
}
}
@@ -312,8 +373,11 @@
}
struct_value: {
name: "flags"
- type: TYPE_SCALAR
- scalar_type: "uint64_t"
+ type: TYPE_MASK
+ enum_value: {
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::sensors::V1_0::SensorFlagBits"
+ }
}
}
@@ -323,23 +387,23 @@
enum_value: {
scalar_type: "int8_t"
- enumerator: "SENSOR_STATUS_NO_CONTACT"
+ enumerator: "NO_CONTACT"
scalar_value: {
int8_t: -1
}
- enumerator: "SENSOR_STATUS_UNRELIABLE"
+ enumerator: "UNRELIABLE"
scalar_value: {
int8_t: 0
}
- enumerator: "SENSOR_STATUS_ACCURACY_LOW"
+ enumerator: "ACCURACY_LOW"
scalar_value: {
int8_t: 1
}
- enumerator: "SENSOR_STATUS_ACCURACY_MEDIUM"
+ enumerator: "ACCURACY_MEDIUM"
scalar_value: {
int8_t: 2
}
- enumerator: "SENSOR_STATUS_ACCURACY_HIGH"
+ enumerator: "ACCURACY_HIGH"
scalar_value: {
int8_t: 3
}
@@ -697,3 +761,82 @@
}
}
+attribute: {
+ name: "::android::hardware::sensors::V1_0::RateLevel"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "int32_t"
+
+ enumerator: "STOP"
+ scalar_value: {
+ int32_t: 0
+ }
+ enumerator: "NORMAL"
+ scalar_value: {
+ int32_t: 1
+ }
+ enumerator: "FAST"
+ scalar_value: {
+ int32_t: 2
+ }
+ enumerator: "VERY_FAST"
+ scalar_value: {
+ int32_t: 3
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::sensors::V1_0::SharedMemType"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "int32_t"
+
+ enumerator: "ASHMEM"
+ scalar_value: {
+ int32_t: 1
+ }
+ enumerator: "GRALLOC"
+ scalar_value: {
+ int32_t: 2
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::sensors::V1_0::SharedMemFormat"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "int32_t"
+
+ enumerator: "SENSORS_EVENT"
+ scalar_value: {
+ int32_t: 1
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::sensors::V1_0::SharedMemInfo"
+ type: TYPE_STRUCT
+ struct_value: {
+ name: "type"
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::sensors::V1_0::SharedMemType"
+ }
+ struct_value: {
+ name: "format"
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::sensors::V1_0::SharedMemFormat"
+ }
+ struct_value: {
+ name: "size"
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ struct_value: {
+ name: "memoryHandle"
+ type: TYPE_HANDLE
+ }
+}
+