Skip to content

Commit 85ae2d5

Browse files
committed
inv_icm20948_enable_dmp_sensor now returns ICM_20948_Stat_SensorNotSupported if androidSensor > ANDROID_SENSOR_NUM_MAX
1 parent a9ad59a commit 85ae2d5

File tree

3 files changed

+156
-138
lines changed

3 files changed

+156
-138
lines changed

examples/Arduino/Example5_DMP_Quat9_Orientation/Example5_DMP_Quat9_Orientation.ino

Lines changed: 31 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -187,30 +187,42 @@ void setup() {
187187
success &= (myICM.writeDMPmems(CPASS_MTX_21, 4, &mountMultiplierZero[0]) == ICM_20948_Stat_Ok);
188188
success &= (myICM.writeDMPmems(CPASS_MTX_22, 4, &mountMultiplierMinus[0]) == ICM_20948_Stat_Ok);
189189

190+
// // Configure the biases
191+
// // The biases are 32-bits in chip frame in hardware unit scaled by:
192+
// // 2^12 (FSR 4g) for accel, 2^15 for gyro, in uT scaled by 2^16 for compass.
193+
// const unsigned char accelBiasOne[4] = {0x00, 0x00, 0x10, 0x00};
194+
// const unsigned char gyroBiasOne[4] = {0x00, 0x00, 0x80, 0x00};
195+
// const unsigned char compassBiasOne[4] = {0x00, 0x01, 0x00, 0x00};
196+
// success &= (myICM.writeDMPmems(GYRO_BIAS_X, 4, &gyroBiasOne[0]) == ICM_20948_Stat_Ok);
197+
// success &= (myICM.writeDMPmems(GYRO_BIAS_Y, 4, &gyroBiasOne[0]) == ICM_20948_Stat_Ok);
198+
// success &= (myICM.writeDMPmems(GYRO_BIAS_Z, 4, &gyroBiasOne[0]) == ICM_20948_Stat_Ok);
199+
// success &= (myICM.writeDMPmems(ACCEL_BIAS_X, 4, &accelBiasOne[0]) == ICM_20948_Stat_Ok);
200+
// success &= (myICM.writeDMPmems(ACCEL_BIAS_Y, 4, &accelBiasOne[0]) == ICM_20948_Stat_Ok);
201+
// success &= (myICM.writeDMPmems(ACCEL_BIAS_Z, 4, &accelBiasOne[0]) == ICM_20948_Stat_Ok);
202+
// success &= (myICM.writeDMPmems(CPASS_BIAS_X, 4, &compassBiasOne[0]) == ICM_20948_Stat_Ok);
203+
// success &= (myICM.writeDMPmems(CPASS_BIAS_Y, 4, &compassBiasOne[0]) == ICM_20948_Stat_Ok);
204+
// success &= (myICM.writeDMPmems(CPASS_BIAS_Z, 4, &compassBiasOne[0]) == ICM_20948_Stat_Ok);
205+
190206
// Enable DMP interrupt
191207
// This would be the most efficient way of getting the DMP data, instead of polling the FIFO
192208
//success &= (myICM.intEnableDMP(true) == ICM_20948_Stat_Ok);
193209

194210
// DMP sensor options are defined in ICM_20948_DMP.h
195-
// INV_ICM20948_SENSOR_ACCELEROMETER
196-
// INV_ICM20948_SENSOR_GYROSCOPE
197-
// INV_ICM20948_SENSOR_RAW_ACCELEROMETER
198-
// INV_ICM20948_SENSOR_RAW_GYROSCOPE
199-
// INV_ICM20948_SENSOR_MAGNETIC_FIELD_UNCALIBRATED
200-
// INV_ICM20948_SENSOR_GYROSCOPE_UNCALIBRATED
201-
// INV_ICM20948_SENSOR_ACTIVITY_CLASSIFICATON
202-
// INV_ICM20948_SENSOR_STEP_DETECTOR
203-
// INV_ICM20948_SENSOR_STEP_COUNTER
204-
// INV_ICM20948_SENSOR_GAME_ROTATION_VECTOR
205-
// INV_ICM20948_SENSOR_ROTATION_VECTOR
206-
// INV_ICM20948_SENSOR_GEOMAGNETIC_ROTATION_VECTOR
207-
// INV_ICM20948_SENSOR_GEOMAGNETIC_FIELD
208-
// INV_ICM20948_SENSOR_WAKEUP_SIGNIFICANT_MOTION
209-
// INV_ICM20948_SENSOR_FLIP_PICKUP
210-
// INV_ICM20948_SENSOR_WAKEUP_TILT_DETECTOR
211-
// INV_ICM20948_SENSOR_GRAVITY
212-
// INV_ICM20948_SENSOR_LINEAR_ACCELERATION
213-
// INV_ICM20948_SENSOR_ORIENTATION
211+
// INV_ICM20948_SENSOR_ACCELEROMETER (16-bit accel)
212+
// INV_ICM20948_SENSOR_GYROSCOPE (16-bit gyro + 32-bit calibrated gyro)
213+
// INV_ICM20948_SENSOR_RAW_ACCELEROMETER (16-bit accel)
214+
// INV_ICM20948_SENSOR_RAW_GYROSCOPE (16-bit gyro + 32-bit calibrated gyro)
215+
// INV_ICM20948_SENSOR_MAGNETIC_FIELD_UNCALIBRATED (16-bit compass)
216+
// INV_ICM20948_SENSOR_GYROSCOPE_UNCALIBRATED (16-bit gyro)
217+
// INV_ICM20948_SENSOR_STEP_DETECTOR (Pedometer Step Detector)
218+
// INV_ICM20948_SENSOR_STEP_COUNTER (Pedometer Step Detector)
219+
// INV_ICM20948_SENSOR_GAME_ROTATION_VECTOR (32-bit 6-axis quaternion)
220+
// INV_ICM20948_SENSOR_ROTATION_VECTOR (32-bit 9-axis quaternion + heading accuracy)
221+
// INV_ICM20948_SENSOR_GEOMAGNETIC_ROTATION_VECTOR (32-bit Geomag RV + heading accuracy)
222+
// INV_ICM20948_SENSOR_GEOMAGNETIC_FIELD (32-bit calibrated compass)
223+
// INV_ICM20948_SENSOR_GRAVITY (32-bit 6-axis quaternion)
224+
// INV_ICM20948_SENSOR_LINEAR_ACCELERATION (16-bit accel + 32-bit 6-axis quaternion)
225+
// INV_ICM20948_SENSOR_ORIENTATION (32-bit 9-axis quaternion + heading accuracy)
214226

215227
// Enable the DMP orientation sensor
216228
success &= (myICM.enableDMPSensor(INV_ICM20948_SENSOR_ORIENTATION) == ICM_20948_Stat_Ok);

src/util/ICM_20948_C.c

Lines changed: 26 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1492,6 +1492,9 @@ ICM_20948_Status_e inv_icm20948_enable_dmp_sensor(ICM_20948_Device_t *pdev, enum
14921492

14931493
uint8_t androidSensor = sensor_type_2_android_sensor(sensor);
14941494

1495+
if (androidSensor > ANDROID_SENSOR_NUM_MAX)
1496+
return ICM_20948_Stat_SensorNotSupported;
1497+
14951498
uint16_t delta = inv_androidSensor_to_control_bits[androidSensor];
14961499

14971500
if (delta == 0xFFFF)
@@ -1533,6 +1536,9 @@ ICM_20948_Status_e inv_icm20948_enable_dmp_sensor_int(ICM_20948_Device_t *pdev,
15331536

15341537
uint8_t androidSensor = sensor_type_2_android_sensor(sensor);
15351538

1539+
if (androidSensor > ANDROID_SENSOR_NUM_MAX)
1540+
return ICM_20948_Stat_SensorNotSupported;
1541+
15361542
uint16_t delta = inv_androidSensor_to_control_bits[androidSensor];
15371543

15381544
if (delta == 0xFFFF)
@@ -2043,26 +2049,26 @@ ICM_20948_Status_e inv_icm20948_read_dmp_data(ICM_20948_Device_t *pdev, icm_2094
20432049
static uint8_t sensor_type_2_android_sensor(enum inv_icm20948_sensor sensor)
20442050
{
20452051
switch(sensor) {
2046-
case INV_ICM20948_SENSOR_ACCELEROMETER: return ANDROID_SENSOR_ACCELEROMETER;
2047-
case INV_ICM20948_SENSOR_GYROSCOPE: return ANDROID_SENSOR_GYROSCOPE;
2048-
case INV_ICM20948_SENSOR_RAW_ACCELEROMETER: return ANDROID_SENSOR_RAW_ACCELEROMETER;
2049-
case INV_ICM20948_SENSOR_RAW_GYROSCOPE: return ANDROID_SENSOR_RAW_GYROSCOPE;
2050-
case INV_ICM20948_SENSOR_MAGNETIC_FIELD_UNCALIBRATED: return ANDROID_SENSOR_MAGNETIC_FIELD_UNCALIBRATED;
2051-
case INV_ICM20948_SENSOR_GYROSCOPE_UNCALIBRATED: return ANDROID_SENSOR_GYROSCOPE_UNCALIBRATED;
2052-
case INV_ICM20948_SENSOR_ACTIVITY_CLASSIFICATON: return ANDROID_SENSOR_ACTIVITY_CLASSIFICATON;
2053-
case INV_ICM20948_SENSOR_STEP_DETECTOR: return ANDROID_SENSOR_STEP_DETECTOR;
2054-
case INV_ICM20948_SENSOR_STEP_COUNTER: return ANDROID_SENSOR_STEP_COUNTER;
2055-
case INV_ICM20948_SENSOR_GAME_ROTATION_VECTOR: return ANDROID_SENSOR_GAME_ROTATION_VECTOR;
2056-
case INV_ICM20948_SENSOR_ROTATION_VECTOR: return ANDROID_SENSOR_ROTATION_VECTOR;
2057-
case INV_ICM20948_SENSOR_GEOMAGNETIC_ROTATION_VECTOR: return ANDROID_SENSOR_GEOMAGNETIC_ROTATION_VECTOR;
2058-
case INV_ICM20948_SENSOR_GEOMAGNETIC_FIELD: return ANDROID_SENSOR_GEOMAGNETIC_FIELD;
2059-
case INV_ICM20948_SENSOR_WAKEUP_SIGNIFICANT_MOTION: return ANDROID_SENSOR_WAKEUP_SIGNIFICANT_MOTION;
2060-
case INV_ICM20948_SENSOR_FLIP_PICKUP: return ANDROID_SENSOR_FLIP_PICKUP;
2061-
case INV_ICM20948_SENSOR_WAKEUP_TILT_DETECTOR: return ANDROID_SENSOR_WAKEUP_TILT_DETECTOR;
2062-
case INV_ICM20948_SENSOR_GRAVITY: return ANDROID_SENSOR_GRAVITY;
2063-
case INV_ICM20948_SENSOR_LINEAR_ACCELERATION: return ANDROID_SENSOR_LINEAR_ACCELERATION;
2064-
case INV_ICM20948_SENSOR_ORIENTATION: return ANDROID_SENSOR_ORIENTATION;
2065-
case INV_ICM20948_SENSOR_B2S: return ANDROID_SENSOR_B2S;
2052+
case INV_ICM20948_SENSOR_ACCELEROMETER: return ANDROID_SENSOR_ACCELEROMETER; // 1
2053+
case INV_ICM20948_SENSOR_GYROSCOPE: return ANDROID_SENSOR_GYROSCOPE; // 4
2054+
case INV_ICM20948_SENSOR_RAW_ACCELEROMETER: return ANDROID_SENSOR_RAW_ACCELEROMETER; // 42
2055+
case INV_ICM20948_SENSOR_RAW_GYROSCOPE: return ANDROID_SENSOR_RAW_GYROSCOPE; // 43
2056+
case INV_ICM20948_SENSOR_MAGNETIC_FIELD_UNCALIBRATED: return ANDROID_SENSOR_MAGNETIC_FIELD_UNCALIBRATED; // 14
2057+
case INV_ICM20948_SENSOR_GYROSCOPE_UNCALIBRATED: return ANDROID_SENSOR_GYROSCOPE_UNCALIBRATED; // 16
2058+
case INV_ICM20948_SENSOR_ACTIVITY_CLASSIFICATON: return ANDROID_SENSOR_ACTIVITY_CLASSIFICATON; // 47
2059+
case INV_ICM20948_SENSOR_STEP_DETECTOR: return ANDROID_SENSOR_STEP_DETECTOR; // 18
2060+
case INV_ICM20948_SENSOR_STEP_COUNTER: return ANDROID_SENSOR_STEP_COUNTER; // 19
2061+
case INV_ICM20948_SENSOR_GAME_ROTATION_VECTOR: return ANDROID_SENSOR_GAME_ROTATION_VECTOR; // 15
2062+
case INV_ICM20948_SENSOR_ROTATION_VECTOR: return ANDROID_SENSOR_ROTATION_VECTOR; // 11
2063+
case INV_ICM20948_SENSOR_GEOMAGNETIC_ROTATION_VECTOR: return ANDROID_SENSOR_GEOMAGNETIC_ROTATION_VECTOR; // 20
2064+
case INV_ICM20948_SENSOR_GEOMAGNETIC_FIELD: return ANDROID_SENSOR_GEOMAGNETIC_FIELD; // 2
2065+
case INV_ICM20948_SENSOR_WAKEUP_SIGNIFICANT_MOTION: return ANDROID_SENSOR_WAKEUP_SIGNIFICANT_MOTION; // 17
2066+
case INV_ICM20948_SENSOR_FLIP_PICKUP: return ANDROID_SENSOR_FLIP_PICKUP; // 46
2067+
case INV_ICM20948_SENSOR_WAKEUP_TILT_DETECTOR: return ANDROID_SENSOR_WAKEUP_TILT_DETECTOR; // 41
2068+
case INV_ICM20948_SENSOR_GRAVITY: return ANDROID_SENSOR_GRAVITY; // 9
2069+
case INV_ICM20948_SENSOR_LINEAR_ACCELERATION: return ANDROID_SENSOR_LINEAR_ACCELERATION; // 10
2070+
case INV_ICM20948_SENSOR_ORIENTATION: return ANDROID_SENSOR_ORIENTATION; // 3
2071+
case INV_ICM20948_SENSOR_B2S: return ANDROID_SENSOR_B2S; // 45
20662072
default: return ANDROID_SENSOR_NUM_MAX;
20672073
}
20682074
}

src/util/ICM_20948_DMP.h

Lines changed: 99 additions & 99 deletions
Original file line numberDiff line numberDiff line change
@@ -153,60 +153,60 @@ enum inv_icm20948_sensor {
153153

154154
/* enum for android sensor*/
155155
enum ANDROID_SENSORS {
156-
ANDROID_SENSOR_META_DATA = 0,
157-
ANDROID_SENSOR_ACCELEROMETER,
158-
ANDROID_SENSOR_GEOMAGNETIC_FIELD,
159-
ANDROID_SENSOR_ORIENTATION,
160-
ANDROID_SENSOR_GYROSCOPE,
161-
ANDROID_SENSOR_LIGHT,
162-
ANDROID_SENSOR_PRESSURE,
163-
ANDROID_SENSOR_TEMPERATURE,
164-
ANDROID_SENSOR_WAKEUP_PROXIMITY,
165-
ANDROID_SENSOR_GRAVITY,
166-
ANDROID_SENSOR_LINEAR_ACCELERATION,
167-
ANDROID_SENSOR_ROTATION_VECTOR,
168-
ANDROID_SENSOR_HUMIDITY,
169-
ANDROID_SENSOR_AMBIENT_TEMPERATURE,
170-
ANDROID_SENSOR_MAGNETIC_FIELD_UNCALIBRATED,
171-
ANDROID_SENSOR_GAME_ROTATION_VECTOR,
172-
ANDROID_SENSOR_GYROSCOPE_UNCALIBRATED,
173-
ANDROID_SENSOR_WAKEUP_SIGNIFICANT_MOTION,
174-
ANDROID_SENSOR_STEP_DETECTOR,
175-
ANDROID_SENSOR_STEP_COUNTER,
176-
ANDROID_SENSOR_GEOMAGNETIC_ROTATION_VECTOR,
177-
ANDROID_SENSOR_HEART_RATE,
178-
ANDROID_SENSOR_PROXIMITY,
179-
180-
ANDROID_SENSOR_WAKEUP_ACCELEROMETER,
181-
ANDROID_SENSOR_WAKEUP_MAGNETIC_FIELD,
182-
ANDROID_SENSOR_WAKEUP_ORIENTATION,
183-
ANDROID_SENSOR_WAKEUP_GYROSCOPE,
184-
ANDROID_SENSOR_WAKEUP_LIGHT,
185-
ANDROID_SENSOR_WAKEUP_PRESSURE,
186-
ANDROID_SENSOR_WAKEUP_GRAVITY,
187-
ANDROID_SENSOR_WAKEUP_LINEAR_ACCELERATION,
188-
ANDROID_SENSOR_WAKEUP_ROTATION_VECTOR,
189-
ANDROID_SENSOR_WAKEUP_RELATIVE_HUMIDITY,
190-
ANDROID_SENSOR_WAKEUP_AMBIENT_TEMPERATURE,
191-
ANDROID_SENSOR_WAKEUP_MAGNETIC_FIELD_UNCALIBRATED,
192-
ANDROID_SENSOR_WAKEUP_GAME_ROTATION_VECTOR,
193-
ANDROID_SENSOR_WAKEUP_GYROSCOPE_UNCALIBRATED,
194-
ANDROID_SENSOR_WAKEUP_STEP_DETECTOR,
195-
ANDROID_SENSOR_WAKEUP_STEP_COUNTER,
196-
ANDROID_SENSOR_WAKEUP_GEOMAGNETIC_ROTATION_VECTOR,
197-
ANDROID_SENSOR_WAKEUP_HEART_RATE,
198-
ANDROID_SENSOR_WAKEUP_TILT_DETECTOR,
199-
ANDROID_SENSOR_RAW_ACCELEROMETER,
200-
ANDROID_SENSOR_RAW_GYROSCOPE,
201-
ANDROID_SENSOR_NUM_MAX,
202-
203-
ANDROID_SENSOR_B2S,
204-
ANDROID_SENSOR_FLIP_PICKUP,
205-
ANDROID_SENSOR_ACTIVITY_CLASSIFICATON,
206-
ANDROID_SENSOR_SCREEN_ROTATION,
207-
SELF_TEST,
208-
SETUP,
209-
GENERAL_SENSORS_MAX
156+
ANDROID_SENSOR_META_DATA = 0, // 0
157+
ANDROID_SENSOR_ACCELEROMETER, // 1
158+
ANDROID_SENSOR_GEOMAGNETIC_FIELD, // 2
159+
ANDROID_SENSOR_ORIENTATION, // 3
160+
ANDROID_SENSOR_GYROSCOPE, // 4
161+
ANDROID_SENSOR_LIGHT, // 5
162+
ANDROID_SENSOR_PRESSURE, // 6
163+
ANDROID_SENSOR_TEMPERATURE, // 7
164+
ANDROID_SENSOR_WAKEUP_PROXIMITY, // 8
165+
ANDROID_SENSOR_GRAVITY, // 9
166+
ANDROID_SENSOR_LINEAR_ACCELERATION, // 10
167+
ANDROID_SENSOR_ROTATION_VECTOR, // 11
168+
ANDROID_SENSOR_HUMIDITY, // 12
169+
ANDROID_SENSOR_AMBIENT_TEMPERATURE, // 13
170+
ANDROID_SENSOR_MAGNETIC_FIELD_UNCALIBRATED, // 14
171+
ANDROID_SENSOR_GAME_ROTATION_VECTOR, // 15
172+
ANDROID_SENSOR_GYROSCOPE_UNCALIBRATED, // 16
173+
ANDROID_SENSOR_WAKEUP_SIGNIFICANT_MOTION, // 17
174+
ANDROID_SENSOR_STEP_DETECTOR, // 18
175+
ANDROID_SENSOR_STEP_COUNTER, // 19
176+
ANDROID_SENSOR_GEOMAGNETIC_ROTATION_VECTOR, // 20
177+
ANDROID_SENSOR_HEART_RATE, // 21
178+
ANDROID_SENSOR_PROXIMITY, // 22
179+
180+
ANDROID_SENSOR_WAKEUP_ACCELEROMETER, // 23
181+
ANDROID_SENSOR_WAKEUP_MAGNETIC_FIELD, // 24
182+
ANDROID_SENSOR_WAKEUP_ORIENTATION, // 25
183+
ANDROID_SENSOR_WAKEUP_GYROSCOPE, // 26
184+
ANDROID_SENSOR_WAKEUP_LIGHT, // 27
185+
ANDROID_SENSOR_WAKEUP_PRESSURE, // 28
186+
ANDROID_SENSOR_WAKEUP_GRAVITY, // 29
187+
ANDROID_SENSOR_WAKEUP_LINEAR_ACCELERATION, // 30
188+
ANDROID_SENSOR_WAKEUP_ROTATION_VECTOR, // 31
189+
ANDROID_SENSOR_WAKEUP_RELATIVE_HUMIDITY, // 32
190+
ANDROID_SENSOR_WAKEUP_AMBIENT_TEMPERATURE, // 33
191+
ANDROID_SENSOR_WAKEUP_MAGNETIC_FIELD_UNCALIBRATED, // 34
192+
ANDROID_SENSOR_WAKEUP_GAME_ROTATION_VECTOR, // 35
193+
ANDROID_SENSOR_WAKEUP_GYROSCOPE_UNCALIBRATED, // 36
194+
ANDROID_SENSOR_WAKEUP_STEP_DETECTOR, // 37
195+
ANDROID_SENSOR_WAKEUP_STEP_COUNTER, // 38
196+
ANDROID_SENSOR_WAKEUP_GEOMAGNETIC_ROTATION_VECTOR, // 39
197+
ANDROID_SENSOR_WAKEUP_HEART_RATE, // 40
198+
ANDROID_SENSOR_WAKEUP_TILT_DETECTOR, // 41
199+
ANDROID_SENSOR_RAW_ACCELEROMETER, // 42
200+
ANDROID_SENSOR_RAW_GYROSCOPE, // 43
201+
ANDROID_SENSOR_NUM_MAX, // 44
202+
203+
ANDROID_SENSOR_B2S, // 45
204+
ANDROID_SENSOR_FLIP_PICKUP, // 46
205+
ANDROID_SENSOR_ACTIVITY_CLASSIFICATON, // 47
206+
ANDROID_SENSOR_SCREEN_ROTATION, // 48
207+
SELF_TEST, // 49
208+
SETUP, // 50
209+
GENERAL_SENSORS_MAX // 51
210210
};
211211

212212
enum DMP_Data_Ready_Status_Register_Bits
@@ -312,51 +312,51 @@ const uint16_t inv_androidSensor_to_control_bits[ANDROID_SENSOR_NUM_MAX]=
312312
// Pedometer Step Indicator Bit 0 0x0001
313313
// Unsupported Sensors are 0xFFFF
314314

315-
0xFFFF, // Meta Data
316-
0x8008, // Accelerometer
317-
0x0028, // Magnetic Field
318-
0x0408, // Orientation
319-
0x4048, // Gyroscope
320-
0x1008, // Light
321-
0x0088, // Pressure
322-
0xFFFF, // Temperature
323-
0xFFFF, // Proximity <----------- fixme
324-
0x0808, // Gravity
325-
0x8808, // Linear Acceleration
326-
0x0408, // Rotation Vector
327-
0xFFFF, // Humidity
328-
0xFFFF, // Ambient Temperature
329-
0x2008, // Magnetic Field Uncalibrated
330-
0x0808, // Game Rotation Vector
331-
0x4008, // Gyroscope Uncalibrated
332-
0, // Significant Motion
333-
0x0018, // Step Detector
334-
0x0010, // Step Counter <----------- fixme
335-
0x0108, // Geomagnetic Rotation Vector
336-
0xFFFF, //ANDROID_SENSOR_HEART_RATE,
337-
0xFFFF, //ANDROID_SENSOR_PROXIMITY,
338-
339-
0x8008, // ANDROID_SENSOR_WAKEUP_ACCELEROMETER,
340-
0x0028, // ANDROID_SENSOR_WAKEUP_MAGNETIC_FIELD,
341-
0x0408, // ANDROID_SENSOR_WAKEUP_ORIENTATION,
342-
0x4048, // ANDROID_SENSOR_WAKEUP_GYROSCOPE,
343-
0x1008, // ANDROID_SENSOR_WAKEUP_LIGHT,
344-
0x0088, // ANDROID_SENSOR_WAKEUP_PRESSURE,
345-
0x0808, // ANDROID_SENSOR_WAKEUP_GRAVITY,
346-
0x8808, // ANDROID_SENSOR_WAKEUP_LINEAR_ACCELERATION,
347-
0x0408, // ANDROID_SENSOR_WAKEUP_ROTATION_VECTOR,
348-
0xFFFF, // ANDROID_SENSOR_WAKEUP_RELATIVE_HUMIDITY,
349-
0xFFFF, // ANDROID_SENSOR_WAKEUP_AMBIENT_TEMPERATURE,
350-
0x2008, // ANDROID_SENSOR_WAKEUP_MAGNETIC_FIELD_UNCALIBRATED,
351-
0x0808, // ANDROID_SENSOR_WAKEUP_GAME_ROTATION_VECTOR,
352-
0x4008, // ANDROID_SENSOR_WAKEUP_GYROSCOPE_UNCALIBRATED,
353-
0x0018, // ANDROID_SENSOR_WAKEUP_STEP_DETECTOR,
354-
0x0010, // ANDROID_SENSOR_WAKEUP_STEP_COUNTER,
355-
0x0108, // ANDROID_SENSOR_WAKEUP_GEOMAGNETIC_ROTATION_VECTOR
356-
0xFFFF, // ANDROID_SENSOR_WAKEUP_HEART_RATE,
357-
0, // ANDROID_SENSOR_WAKEUP_TILT_DETECTOR,
358-
0x8008, // Raw Acc
359-
0x4048, // Raw Gyr
315+
0xFFFF, // 0 Meta Data
316+
0x8008, // 1 Accelerometer
317+
0x0028, // 2 Magnetic Field
318+
0x0408, // 3 Orientation
319+
0x4048, // 4 Gyroscope
320+
0x1008, // 5 Light
321+
0x0088, // 6 Pressure
322+
0xFFFF, // 7 Temperature
323+
0xFFFF, // 8 Proximity <----------- fixme
324+
0x0808, // 9 Gravity
325+
0x8808, // 10 Linear Acceleration
326+
0x0408, // 11 Rotation Vector
327+
0xFFFF, // 12 Humidity
328+
0xFFFF, // 13 Ambient Temperature
329+
0x2008, // 14 Magnetic Field Uncalibrated
330+
0x0808, // 15 Game Rotation Vector
331+
0x4008, // 16 Gyroscope Uncalibrated
332+
0x0000, // 17 Significant Motion
333+
0x0018, // 18 Step Detector
334+
0x0010, // 19 Step Counter <----------- fixme
335+
0x0108, // 20 Geomagnetic Rotation Vector
336+
0xFFFF, // 21 ANDROID_SENSOR_HEART_RATE,
337+
0xFFFF, // 22 ANDROID_SENSOR_PROXIMITY,
338+
339+
0x8008, // 23 ANDROID_SENSOR_WAKEUP_ACCELEROMETER,
340+
0x0028, // 24 ANDROID_SENSOR_WAKEUP_MAGNETIC_FIELD,
341+
0x0408, // 25 ANDROID_SENSOR_WAKEUP_ORIENTATION,
342+
0x4048, // 26 ANDROID_SENSOR_WAKEUP_GYROSCOPE,
343+
0x1008, // 27 ANDROID_SENSOR_WAKEUP_LIGHT,
344+
0x0088, // 28 ANDROID_SENSOR_WAKEUP_PRESSURE,
345+
0x0808, // 29 ANDROID_SENSOR_WAKEUP_GRAVITY,
346+
0x8808, // 30 ANDROID_SENSOR_WAKEUP_LINEAR_ACCELERATION,
347+
0x0408, // 31 ANDROID_SENSOR_WAKEUP_ROTATION_VECTOR,
348+
0xFFFF, // 32 ANDROID_SENSOR_WAKEUP_RELATIVE_HUMIDITY,
349+
0xFFFF, // 33 ANDROID_SENSOR_WAKEUP_AMBIENT_TEMPERATURE,
350+
0x2008, // 34 ANDROID_SENSOR_WAKEUP_MAGNETIC_FIELD_UNCALIBRATED,
351+
0x0808, // 35 ANDROID_SENSOR_WAKEUP_GAME_ROTATION_VECTOR,
352+
0x4008, // 36 ANDROID_SENSOR_WAKEUP_GYROSCOPE_UNCALIBRATED,
353+
0x0018, // 37 ANDROID_SENSOR_WAKEUP_STEP_DETECTOR,
354+
0x0010, // 38 ANDROID_SENSOR_WAKEUP_STEP_COUNTER,
355+
0x0108, // 39 ANDROID_SENSOR_WAKEUP_GEOMAGNETIC_ROTATION_VECTOR
356+
0xFFFF, // 40 ANDROID_SENSOR_WAKEUP_HEART_RATE,
357+
0x0000, // 41 ANDROID_SENSOR_WAKEUP_TILT_DETECTOR,
358+
0x8008, // 42 Raw Acc
359+
0x4048, // 43 Raw Gyr
360360
};
361361

362362
typedef struct // DMP Activity Recognition data

0 commit comments

Comments
 (0)