mirror of
https://github.com/Evolution-X/hardware_interfaces
synced 2026-02-01 11:36:00 +00:00
[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
This commit is contained in:
@@ -51,20 +51,6 @@ interface ISensors {
|
||||
*/
|
||||
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 @@ interface ISensors {
|
||||
* @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);
|
||||
|
||||
|
||||
@@ -142,15 +142,6 @@ Return<Result> Sensors::activate(
|
||||
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<void> Sensors::poll(int32_t maxCount, poll_cb _hidl_cb) {
|
||||
|
||||
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));
|
||||
}
|
||||
|
||||
@@ -39,14 +39,10 @@ struct Sensors : public ::android::hardware::sensors::V1_0::ISensors {
|
||||
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;
|
||||
|
||||
|
||||
@@ -72,18 +72,18 @@ void convertFromSensorEvent(const sensors_event_t &src, Event *dst) {
|
||||
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 @@ void convertFromSensorEvent(const sensors_event_t &src, Event *dst) {
|
||||
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 @@ void convertFromSensorEvent(const sensors_event_t &src, Event *dst) {
|
||||
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 @@ void convertToSensorEvent(const Event &src, sensors_event_t *dst) {
|
||||
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 @@ void convertToSensorEvent(const Event &src, sensors_event_t *dst) {
|
||||
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 @@ void convertToSensorEvent(const Event &src, sensors_event_t *dst) {
|
||||
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 @@ void convertToSensorEvent(const Event &src, sensors_event_t *dst) {
|
||||
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;
|
||||
|
||||
@@ -34,10 +34,10 @@ enum Result : int32_t {
|
||||
/*
|
||||
* 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 @@ enum OperationMode : int32_t {
|
||||
* 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 @@ enum OperationMode : int32_t {
|
||||
* 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 @@ enum OperationMode : int32_t {
|
||||
* 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 @@ enum SensorType : int32_t {
|
||||
* 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 @@ enum SensorType : int32_t {
|
||||
* 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 @@ enum SensorType : int32_t {
|
||||
* 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 @@ enum SensorType : int32_t {
|
||||
* 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 @@ enum SensorType : int32_t {
|
||||
* 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 @@ enum SensorType : int32_t {
|
||||
* 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 @@ enum SensorType : int32_t {
|
||||
* 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 @@ enum SensorType : int32_t {
|
||||
* 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 @@ enum SensorType : int32_t {
|
||||
* 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 @@ enum SensorType : int32_t {
|
||||
*
|
||||
* 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 @@ enum SensorType : int32_t {
|
||||
* 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 @@ enum SensorType : int32_t {
|
||||
* 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 @@ enum SensorType : int32_t {
|
||||
*
|
||||
* 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 @@ enum SensorType : int32_t {
|
||||
* 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 @@ enum SensorType : int32_t {
|
||||
* 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 @@ enum SensorType : int32_t {
|
||||
*
|
||||
* 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 @@ enum SensorType : int32_t {
|
||||
*
|
||||
* 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 @@ enum SensorType : int32_t {
|
||||
*
|
||||
* 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 @@ enum SensorType : int32_t {
|
||||
*
|
||||
* 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 @@ enum SensorType : int32_t {
|
||||
*
|
||||
* 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 @@ enum SensorType : int32_t {
|
||||
*
|
||||
* 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 @@ enum SensorType : int32_t {
|
||||
*
|
||||
* 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 @@ enum SensorType : int32_t {
|
||||
* . 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 @@ enum SensorType : int32_t {
|
||||
*
|
||||
* 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 @@ enum SensorType : int32_t {
|
||||
*
|
||||
* 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 @@ enum SensorType : int32_t {
|
||||
* 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 @@ enum SensorType : int32_t {
|
||||
* 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 @@ enum SensorType : int32_t {
|
||||
* 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 @@ enum SensorType : int32_t {
|
||||
* 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 @@ enum SensorType : int32_t {
|
||||
* 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 @@ enum SensorType : int32_t {
|
||||
* 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 @@ enum SensorType : int32_t {
|
||||
* 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 @@ enum SensorFlagBits : uint64_t {
|
||||
* 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 @@ enum SensorFlagBits : uint64_t {
|
||||
* 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 @@ enum SensorFlagBits : uint64_t {
|
||||
* 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 @@ struct SensorInfo {
|
||||
/* 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 @@ struct SensorInfo {
|
||||
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 Uncal {
|
||||
};
|
||||
|
||||
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 @@ struct AdditionalInfo {
|
||||
* 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;
|
||||
};
|
||||
|
||||
|
||||
@@ -46,22 +46,6 @@ interface: {
|
||||
}
|
||||
}
|
||||
|
||||
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: {
|
||||
@@ -98,10 +82,6 @@ interface: {
|
||||
type: TYPE_SCALAR
|
||||
scalar_type: "int32_t"
|
||||
}
|
||||
arg: {
|
||||
type: TYPE_SCALAR
|
||||
scalar_type: "int32_t"
|
||||
}
|
||||
arg: {
|
||||
type: TYPE_SCALAR
|
||||
scalar_type: "int64_t"
|
||||
@@ -136,4 +116,56 @@ interface: {
|
||||
}
|
||||
}
|
||||
|
||||
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"
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -203,16 +203,16 @@ class SensorsHidlTest : public ::testing::Test {
|
||||
|
||||
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 @@ class SensorsHidlTest : public ::testing::Test {
|
||||
|
||||
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::typeMatchStringType(SensorType type, const hidl_string& st
|
||||
}
|
||||
|
||||
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 @@ bool SensorsHidlTest::delayMatchReportMode(
|
||||
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 @@ bool SensorsHidlTest::delayMatchReportMode(
|
||||
|
||||
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 @@ TEST_F(SensorsHidlTest, SensorListValid) {
|
||||
|
||||
// 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 @@ TEST_F(SensorsHidlTest, NormalAccelerometerStreamingOperation) {
|
||||
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 @@ TEST_F(SensorsHidlTest, NormalAccelerometerStreamingOperation) {
|
||||
|
||||
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 @@ TEST_F(SensorsHidlTest, NormalGyroscopeStreamingOperation) {
|
||||
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 @@ TEST_F(SensorsHidlTest, NormalGyroscopeStreamingOperation) {
|
||||
|
||||
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 @@ TEST_F(SensorsHidlTest, AccelerometerSamplingPeriodHotSwitchOperation) {
|
||||
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 @@ TEST_F(SensorsHidlTest, AccelerometerSamplingPeriodHotSwitchOperation) {
|
||||
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 @@ TEST_F(SensorsHidlTest, AccelerometerBatchingOperation) {
|
||||
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 @@ TEST_F(SensorsHidlTest, AccelerometerBatchingOperation) {
|
||||
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
|
||||
|
||||
@@ -15,17 +15,21 @@ attribute: {
|
||||
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 @@ attribute: {
|
||||
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 @@ attribute: {
|
||||
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 @@ attribute: {
|
||||
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 @@ attribute: {
|
||||
}
|
||||
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 @@ attribute: {
|
||||
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: {
|
||||
}
|
||||
}
|
||||
|
||||
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
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user