2 * Copyright (c) 2016 Samsung Electronics Co., Ltd.
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
18 #ifndef _SENSOR_HAL_TYPES_H_
19 #define _SENSOR_HAL_TYPES_H_
25 #define SENSOR_HAL_VERSION(maj, min) \
26 ((((maj) & 0xFFFF) << 24) | ((min) & 0xFFFF))
31 #endif /* __cplusplus */
35 * These types are used to controll the sensors
38 * acceleration values : meter per second^2 (m/s^2)
39 * magnetic values : micro-Tesla (uT)
40 * orientation values : degrees
41 * gyroscope values : degree/s
42 * temperature values : degrees centigrade
43 * proximity valeus : distance
45 * pressure values : hectopascal (hPa)
46 * humidity : relative humidity (%)
49 SENSOR_DEVICE_UNKNOWN = -2,
50 SENSOR_DEVICE_ALL = -1,
51 SENSOR_DEVICE_ACCELEROMETER,
52 SENSOR_DEVICE_GRAVITY,
53 SENSOR_DEVICE_LINEAR_ACCELERATION,
54 SENSOR_DEVICE_GEOMAGNETIC,
55 SENSOR_DEVICE_ROTATION_VECTOR,
56 SENSOR_DEVICE_ORIENTATION,
57 SENSOR_DEVICE_GYROSCOPE,
59 SENSOR_DEVICE_PROXIMITY,
60 SENSOR_DEVICE_PRESSURE,
61 SENSOR_DEVICE_ULTRAVIOLET,
62 SENSOR_DEVICE_TEMPERATURE,
63 SENSOR_DEVICE_HUMIDITY,
65 SENSOR_DEVICE_HRM_LED_GREEN,
66 SENSOR_DEVICE_HRM_LED_IR,
67 SENSOR_DEVICE_HRM_LED_RED,
68 SENSOR_DEVICE_GYROSCOPE_UNCAL,
69 SENSOR_DEVICE_GEOMAGNETIC_UNCAL,
70 SENSOR_DEVICE_GYROSCOPE_RV,
71 SENSOR_DEVICE_GEOMAGNETIC_RV,
73 SENSOR_DEVICE_SIGNIFICANT_MOTION = 0x100,
75 SENSOR_DEVICE_HRM_BATCH = 0x200,
76 SENSOR_DEVICE_HRM_LED_GREEN_BATCH,
78 SENSOR_DEVICE_HUMAN_PEDOMETER = 0x300,
79 SENSOR_DEVICE_HUMAN_SLEEP_MONITOR,
80 SENSOR_DEVICE_HUMAN_SLEEP_DETECTOR,
81 SENSOR_DEVICE_HUMAN_STRESS_MONITOR,
83 SENSOR_DEVICE_EXERCISE_WALKING = 0x400,
84 SENSOR_DEVICE_EXERCISE_RUNNING,
85 SENSOR_DEVICE_EXERCISE_HIKING,
86 SENSOR_DEVICE_EXERCISE_CYCLING,
87 SENSOR_DEVICE_EXERCISE_ELLIPTICAL,
88 SENSOR_DEVICE_EXERCISE_INDOOR_CYCLING,
89 SENSOR_DEVICE_EXERCISE_ROWING,
90 SENSOR_DEVICE_EXERCISE_STEPPER,
92 SENSOR_DEVICE_DATA_JOURNAL = 0x500,
94 SENSOR_DEVICE_FUSION = 0x900,
95 SENSOR_DEVICE_AUTO_ROTATION,
96 SENSOR_DEVICE_AUTO_BRIGHTNESS,
97 SENSOR_DEVICE_MYOTEST,
99 SENSOR_DEVICE_GESTURE_MOVEMENT = 0x1200,
100 SENSOR_DEVICE_GESTURE_WRIST_UP,
101 SENSOR_DEVICE_GESTURE_WRIST_DOWN,
102 SENSOR_DEVICE_GESTURE_MOVEMENT_STATE,
103 SENSOR_DEVICE_GESTURE_PICK_UP,
104 SENSOR_DEVICE_GESTURE_FACE_DOWN,
106 SENSOR_DEVICE_ACTIVITY_TRACKER = 0x1A00,
107 SENSOR_DEVICE_ACTIVITY_LEVEL_MONITOR,
108 SENSOR_DEVICE_GPS_BATCH,
109 SENSOR_DEVICE_PPG_BATCH,
110 SENSOR_DEVICE_GPS_TIMESYNC,
112 SENSOR_DEVICE_HRM_CTRL = 0x1A80,
113 SENSOR_DEVICE_REG_CTRL,
114 SENSOR_DEVICE_GPS_CTRL,
116 SENSOR_DEVICE_WEAR_STATUS = 0x2000,
117 SENSOR_DEVICE_WEAR_ON_MONITOR,
118 SENSOR_DEVICE_NO_MOVE_DETECTOR,
119 SENSOR_DEVICE_RESTING_HR,
120 SENSOR_DEVICE_STEP_LEVEL_MONITOR,
121 SENSOR_DEVICE_EXERCISE_STANDALONE,
122 SENSOR_DEVICE_EXERCISE_HR,
123 SENSOR_DEVICE_WORKOUT,
124 SENSOR_DEVICE_CYCLE_MONITOR,
125 SENSOR_DEVICE_STAIR_TRACKER,
126 SENSOR_DEVICE_PRESSURE_INDICATOR,
127 SENSOR_DEVICE_PRESSURE_ALERT,
128 SENSOR_DEVICE_HR_CALORIE,
129 SENSOR_DEVICE_SWIMMING_TRACKER,
130 SENSOR_DEVICE_STRESS_TRACKER,
131 SENSOR_DEVICE_FAKE_MOTION,
132 SENSOR_DEVICE_GEOFENCE,
133 SENSOR_DEVICE_SWIMMING_OUTDOOR,
134 SENSOR_DEVICE_AUTO_SWIMMING,
135 SENSOR_DEVICE_INACTIVITY_DETECTOR,
136 SENSOR_DEVICE_HRM_BP,
138 SENSOR_DEVICE_FALL_DETECTION,
140 SENSOR_DEVICE_CONTEXT = 0x7000,
141 SENSOR_DEVICE_MOTION,
143 SENSOR_DEVICE_PIR_LONG,
145 SENSOR_DEVICE_THERMOMETER,
146 SENSOR_DEVICE_PEDOMETER,
148 SENSOR_DEVICE_HRM_RAW,
150 SENSOR_DEVICE_ROTATION_VECTOR_RAW,
152 SENSOR_DEVICE_SIMSENSE,
154 } sensor_device_type;
157 * A platform sensor handler is generated based on this handle
158 * This id can be assigned from HAL developer. so it has to be unique in 1 sensor_device.
160 typedef struct sensor_info_t {
163 sensor_device_type type;
164 unsigned int event_type; // for Internal API
165 const char *model_name;
172 bool wakeup_supported;
175 enum sensor_accuracy_t {
176 SENSOR_ACCURACY_UNDEFINED = -1,
177 SENSOR_ACCURACY_BAD = 0,
178 SENSOR_ACCURACY_NORMAL = 1,
179 SENSOR_ACCURACY_GOOD = 2,
180 SENSOR_ACCURACY_VERYGOOD = 3
183 #define SENSOR_DATA_VALUE_SIZE 16
186 typedef struct sensor_data_t {
188 unsigned long long timestamp;
190 float values[SENSOR_DATA_VALUE_SIZE];
193 #define SENSORHUB_DATA_VALUE_SIZE 4096
195 /* sensorhub_data_t */
196 typedef struct sensorhub_data_t {
198 unsigned long long timestamp;
201 * Use "value_count" instead of "hub_data_size"
202 * which is going to be removed soon
206 int hub_data_size; /* deprecated */
210 * Use "values" instead of "hub_data"
211 * which is going to be removed soon
214 char values[SENSORHUB_DATA_VALUE_SIZE];
215 char hub_data[SENSORHUB_DATA_VALUE_SIZE]; /* deprecated */
219 #define SENSOR_PEDOMETER_DATA_DIFFS_SIZE 20
223 unsigned long long timestamp;
224 int value_count; /* value_count == 8 */
225 float values[SENSOR_DATA_VALUE_SIZE];
226 /* values = {step count, walk step count, run step count,
227 moving distance, calorie burned, last speed,
228 last stepping frequency (steps per sec),
229 last step status (walking, running, ...)} */
230 /* Additional data attributes (not in sensor_data_t)*/
244 } diffs[SENSOR_PEDOMETER_DATA_DIFFS_SIZE];
245 } sensor_pedometer_data_t;
247 #define CONVERT_TYPE_ATTR(type, index) ((type) << 8 | 0x80 | (index))
249 enum sensor_attribute {
250 SENSOR_ATTR_ACCELEROMETER_INJECTION = CONVERT_TYPE_ATTR(SENSOR_DEVICE_ACCELEROMETER, 0xFF),
251 SENSOR_ATTR_ACTIVITY = CONVERT_TYPE_ATTR(SENSOR_DEVICE_ACTIVITY_TRACKER, 0x1),
253 SENSOR_ATTR_HRM_BATCH_OPR_MODE = CONVERT_TYPE_ATTR(SENSOR_DEVICE_HRM_BATCH, 0x1),
254 SENSOR_ATTR_HRM_BATCH_ACTIVITY_TYPE = CONVERT_TYPE_ATTR(SENSOR_DEVICE_HRM_BATCH, 0x2),
255 SENSOR_ATTR_HRM_BATCH_BATCH_DUR = CONVERT_TYPE_ATTR(SENSOR_DEVICE_HRM_BATCH, 0x3),
256 SENSOR_ATTR_HRM_BATCH_FLUSH = CONVERT_TYPE_ATTR(SENSOR_DEVICE_HRM_BATCH, 0x4),
257 SENSOR_ATTR_HRM_BATCH_ELEVATED_DUR = CONVERT_TYPE_ATTR(SENSOR_DEVICE_HRM_BATCH, 0x5),
258 SENSOR_ATTR_HRM_BATCH_ELEVATED_THR = CONVERT_TYPE_ATTR(SENSOR_DEVICE_HRM_BATCH, 0x6),
259 SENSOR_ATTR_HRM_BATCH_BPM_RAW = CONVERT_TYPE_ATTR(SENSOR_DEVICE_HRM_BATCH, 0x7),
260 SENSOR_ATTR_HRM_BATCH_LOW_ALERT_DUR = CONVERT_TYPE_ATTR(SENSOR_DEVICE_HRM_BATCH, 0x8),
261 SENSOR_ATTR_HRM_BATCH_LOW_ALERT_THR = CONVERT_TYPE_ATTR(SENSOR_DEVICE_HRM_BATCH, 0x9),
263 SENSOR_ATTR_HRM_LED_GREEN_BATCH_POLLING_INTERVAL = CONVERT_TYPE_ATTR(SENSOR_DEVICE_HRM_LED_GREEN_BATCH, 0x1),
264 SENSOR_ATTR_HRM_LED_GREEN_BATCH_FLUSH = CONVERT_TYPE_ATTR(SENSOR_DEVICE_HRM_LED_GREEN_BATCH, 0x2),
265 SENSOR_ATTR_HRM_LED_GREEN_BATCH_BATCH_PERIOD = CONVERT_TYPE_ATTR(SENSOR_DEVICE_HRM_LED_GREEN_BATCH, 0x3),
267 SENSOR_ATTR_PEDOMETER_HEIGHT = CONVERT_TYPE_ATTR(SENSOR_DEVICE_HUMAN_PEDOMETER, 0x1),
268 SENSOR_ATTR_PEDOMETER_WEIGHT = CONVERT_TYPE_ATTR(SENSOR_DEVICE_HUMAN_PEDOMETER, 0x2),
269 SENSOR_ATTR_PEDOMETER_GENDER = CONVERT_TYPE_ATTR(SENSOR_DEVICE_HUMAN_PEDOMETER, 0x3),
270 SENSOR_ATTR_PEDOMETER_AGE = CONVERT_TYPE_ATTR(SENSOR_DEVICE_HUMAN_PEDOMETER, 0x4),
271 SENSOR_ATTR_PEDOMETER_FLUSH = CONVERT_TYPE_ATTR(SENSOR_DEVICE_HUMAN_PEDOMETER, 0x2F),
273 SENSOR_ATTR_STRESS_MONITOR_AGE = CONVERT_TYPE_ATTR(SENSOR_DEVICE_HUMAN_STRESS_MONITOR, 0x1),
275 SENSOR_ATTR_EXERCISE_TYPE = CONVERT_TYPE_ATTR(SENSOR_DEVICE_EXERCISE_STANDALONE, 0x1),
276 SENSOR_ATTR_EXERCISE_GPS = CONVERT_TYPE_ATTR(SENSOR_DEVICE_EXERCISE_STANDALONE, 0x2),
277 SENSOR_ATTR_EXERCISE_BATCH_INTERVAL = CONVERT_TYPE_ATTR(SENSOR_DEVICE_EXERCISE_STANDALONE, 0x3),
278 SENSOR_ATTR_EXERCISE_PSERVICE = CONVERT_TYPE_ATTR(SENSOR_DEVICE_EXERCISE_STANDALONE, 0x4),
280 SENSOR_ATTR_CYCLE_DURATION = CONVERT_TYPE_ATTR(SENSOR_DEVICE_CYCLE_MONITOR, 0x1),
281 SENSOR_ATTR_CYCLE_HOLDING_POSITION = CONVERT_TYPE_ATTR(SENSOR_DEVICE_CYCLE_MONITOR, 0x2),
282 SENSOR_ATTR_CYCLE_VELOCITY = CONVERT_TYPE_ATTR(SENSOR_DEVICE_CYCLE_MONITOR, 0x3),
283 SENSOR_ATTR_CYCLE_GET_DATA_TYPE = CONVERT_TYPE_ATTR(SENSOR_DEVICE_CYCLE_MONITOR, 0x4),
284 SENSOR_ATTR_CYCLE_DATA_FLUSH = CONVERT_TYPE_ATTR(SENSOR_DEVICE_CYCLE_MONITOR, 0x5),
285 SENSOR_ATTR_CYCLE_GPS_AGREEMENT = CONVERT_TYPE_ATTR(SENSOR_DEVICE_CYCLE_MONITOR, 0x6),
287 SENSOR_ATTR_WORKOUT_TYPE = CONVERT_TYPE_ATTR(SENSOR_DEVICE_WORKOUT, 0x1),
288 SENSOR_ATTR_WORKOUT_DURATION = CONVERT_TYPE_ATTR(SENSOR_DEVICE_WORKOUT, 0x2),
290 SENSOR_ATTR_RESTING_HR_OPR_MODE = CONVERT_TYPE_ATTR(SENSOR_DEVICE_RESTING_HR, 0x1),
291 SENSOR_ATTR_RESTING_HR_MAX_RHR = CONVERT_TYPE_ATTR(SENSOR_DEVICE_RESTING_HR, 0x2),
292 SENSOR_ATTR_RESTING_HR_MIN_RHR = CONVERT_TYPE_ATTR(SENSOR_DEVICE_RESTING_HR, 0x3),
293 SENSOR_ATTR_RESTING_HR_AVG_RHR = CONVERT_TYPE_ATTR(SENSOR_DEVICE_RESTING_HR, 0x4),
294 SENSOR_ATTR_RESTING_HR_HOUR = CONVERT_TYPE_ATTR(SENSOR_DEVICE_RESTING_HR, 0x5),
295 SENSOR_ATTR_RESTING_HR_MIN = CONVERT_TYPE_ATTR(SENSOR_DEVICE_RESTING_HR, 0x6),
296 SENSOR_ATTR_RESTING_HR_SEC = CONVERT_TYPE_ATTR(SENSOR_DEVICE_RESTING_HR, 0x7),
297 SENSOR_ATTR_RESTING_HR_PROPERTY_TYPE = CONVERT_TYPE_ATTR(SENSOR_DEVICE_RESTING_HR, 0x10),
298 SENSOR_ATTR_RESTING_HR_PROPERTY_HR_TYPE = CONVERT_TYPE_ATTR(SENSOR_DEVICE_RESTING_HR, 0x11),
299 SENSOR_ATTR_RESTING_HR_PROPERTY_HR_VALUE = CONVERT_TYPE_ATTR(SENSOR_DEVICE_RESTING_HR, 0x12),
300 SENSOR_ATTR_RESTING_HR_PROPERTY_DURATION = CONVERT_TYPE_ATTR(SENSOR_DEVICE_RESTING_HR, 0x13),
301 SENSOR_ATTR_RESTING_HR_PROPERTY_ACT_TYPE = CONVERT_TYPE_ATTR(SENSOR_DEVICE_RESTING_HR, 0x14),
302 SENSOR_ATTR_RESTING_HR_PROPERTY_ACT_DUR = CONVERT_TYPE_ATTR(SENSOR_DEVICE_RESTING_HR, 0x15),
303 SENSOR_ATTR_RESTING_HR_PROPERTY_CONT_DUR = CONVERT_TYPE_ATTR(SENSOR_DEVICE_RESTING_HR, 0x16),
304 SENSOR_ATTR_RESTING_HR_DATA_TYPE = CONVERT_TYPE_ATTR(SENSOR_DEVICE_RESTING_HR, 0x20),
305 SENSOR_ATTR_RESTING_HR_DATA_FLUSH = CONVERT_TYPE_ATTR(SENSOR_DEVICE_RESTING_HR, 0x21),
307 SENSOR_ATTR_STEP_LEVEL_MONITOR_DW_DURATION = CONVERT_TYPE_ATTR(SENSOR_DEVICE_STEP_LEVEL_MONITOR, 0x1),
309 SENSOR_ATTR_EXERCISE_HR_OPR_MODE = CONVERT_TYPE_ATTR(SENSOR_DEVICE_EXERCISE_HR, 0x1),
310 SENSOR_ATTR_EXERCISE_HR_ACTIVITY_TYPE = CONVERT_TYPE_ATTR(SENSOR_DEVICE_EXERCISE_HR, 0x2),
311 SENSOR_ATTR_EXERCISE_HR_BATCH_DUR = CONVERT_TYPE_ATTR(SENSOR_DEVICE_EXERCISE_HR, 0x3),
312 SENSOR_ATTR_EXERCISE_HR_FLUSH = CONVERT_TYPE_ATTR(SENSOR_DEVICE_EXERCISE_HR, 0x4),
313 SENSOR_ATTR_EXERCISE_HR_ELEVATED_DUR = CONVERT_TYPE_ATTR(SENSOR_DEVICE_EXERCISE_HR, 0x5),
314 SENSOR_ATTR_EXERCISE_HR_ELEVATED_THR = CONVERT_TYPE_ATTR(SENSOR_DEVICE_EXERCISE_HR, 0x6),
315 SENSOR_ATTR_EXERCISE_HR_BPM_RAW = CONVERT_TYPE_ATTR(SENSOR_DEVICE_EXERCISE_HR, 0x7),
316 SENSOR_ATTR_EXERCISE_HR_LOW_ALERT_DUR = CONVERT_TYPE_ATTR(SENSOR_DEVICE_EXERCISE_HR, 0x8),
317 SENSOR_ATTR_EXERCISE_HR_LOW_ALERT_THR = CONVERT_TYPE_ATTR(SENSOR_DEVICE_EXERCISE_HR, 0x9),
319 SENSOR_ATTR_PRESSURE_INDICATOR_START = CONVERT_TYPE_ATTR(SENSOR_DEVICE_PRESSURE_INDICATOR, 0x1),
320 SENSOR_ATTR_PRESSURE_INDICATOR_STOP = CONVERT_TYPE_ATTR(SENSOR_DEVICE_PRESSURE_INDICATOR, 0x2),
321 SENSOR_ATTR_PRESSURE_INDICATOR_FLUSH = CONVERT_TYPE_ATTR(SENSOR_DEVICE_PRESSURE_INDICATOR, 0x3),
322 SENSOR_ATTR_PRESSURE_INDICATOR_RESTORE_TIME = CONVERT_TYPE_ATTR(SENSOR_DEVICE_PRESSURE_INDICATOR, 0x4),
323 SENSOR_ATTR_PRESSURE_INDICATOR_RESTORE_VALUE = CONVERT_TYPE_ATTR(SENSOR_DEVICE_PRESSURE_INDICATOR, 0x5),
324 SENSOR_ATTR_PRESSURE_INDICATOR_CURRENT_TIME = CONVERT_TYPE_ATTR(SENSOR_DEVICE_PRESSURE_INDICATOR, 0x6),
326 SENSOR_ATTR_PRESSURE_ALERT_START = CONVERT_TYPE_ATTR(SENSOR_DEVICE_PRESSURE_ALERT, 0x1),
327 SENSOR_ATTR_PRESSURE_ALERT_STOP = CONVERT_TYPE_ATTR(SENSOR_DEVICE_PRESSURE_ALERT, 0x2),
329 SENSOR_ATTR_HR_CALORIE_AGE = CONVERT_TYPE_ATTR(SENSOR_DEVICE_HR_CALORIE, 0x1),
330 SENSOR_ATTR_HR_CALORIE_HEIGHT = CONVERT_TYPE_ATTR(SENSOR_DEVICE_HR_CALORIE, 0x2),
331 SENSOR_ATTR_HR_CALORIE_WEIGHT = CONVERT_TYPE_ATTR(SENSOR_DEVICE_HR_CALORIE, 0x3),
332 SENSOR_ATTR_HR_CALORIE_GENDER = CONVERT_TYPE_ATTR(SENSOR_DEVICE_HR_CALORIE, 0x4),
333 SENSOR_ATTR_HR_CALORIE_INST = CONVERT_TYPE_ATTR(SENSOR_DEVICE_HR_CALORIE, 0x10),
334 SENSOR_ATTR_HR_CALORIE_EXERCISE_TYPE = CONVERT_TYPE_ATTR(SENSOR_DEVICE_HR_CALORIE, 0x11),
335 SENSOR_ATTR_HR_CALORIE_TARGET_CAL = CONVERT_TYPE_ATTR(SENSOR_DEVICE_HR_CALORIE, 0x12),
336 SENSOR_ATTR_HR_CALORIE_MAX_HEARTRATE = CONVERT_TYPE_ATTR(SENSOR_DEVICE_HR_CALORIE, 0x13),
337 SENSOR_ATTR_HR_CALORIE_FLUSH = CONVERT_TYPE_ATTR(SENSOR_DEVICE_HR_CALORIE, 0x20),
339 SENSOR_ATTR_SWIMMING_TRACKER_PLACE = CONVERT_TYPE_ATTR(SENSOR_DEVICE_SWIMMING_TRACKER, 0x1),
340 SENSOR_ATTR_SWIMMING_TRACKER_DISTANCE = CONVERT_TYPE_ATTR(SENSOR_DEVICE_SWIMMING_TRACKER, 0x2),
341 SENSOR_ATTR_SWIMMING_TRACKER_FLUSH = CONVERT_TYPE_ATTR(SENSOR_DEVICE_SWIMMING_TRACKER, 0x3),
342 SENSOR_ATTR_SWIMMING_TRACKER_BATCH = CONVERT_TYPE_ATTR(SENSOR_DEVICE_SWIMMING_TRACKER, 0x4),
343 SENSOR_ATTR_SWIMMING_TRACKER_GOAL_CALORIES = CONVERT_TYPE_ATTR(SENSOR_DEVICE_SWIMMING_TRACKER, 0x5),
344 SENSOR_ATTR_SWIMMING_TRACKER_GOAL_LAPS = CONVERT_TYPE_ATTR(SENSOR_DEVICE_SWIMMING_TRACKER, 0x6),
345 SENSOR_ATTR_SWIMMING_TRACKER_TIME_REST = CONVERT_TYPE_ATTR(SENSOR_DEVICE_SWIMMING_TRACKER, 0x7),
346 SENSOR_ATTR_SWIMMING_TRACKER_TIME_TURN = CONVERT_TYPE_ATTR(SENSOR_DEVICE_SWIMMING_TRACKER, 0x8),
348 SENSOR_ATTR_SWIMMING_OUTDOOR_SET_BATCH_LAP_COUNT = CONVERT_TYPE_ATTR(SENSOR_DEVICE_SWIMMING_OUTDOOR, 0x1),
349 SENSOR_ATTR_SWIMMING_OUTDOOR_SETGOAL_LENGTH = CONVERT_TYPE_ATTR(SENSOR_DEVICE_SWIMMING_OUTDOOR, 0x2),
350 SENSOR_ATTR_SWIMMING_OUTDOOR_SETGOAL_TIME = CONVERT_TYPE_ATTR(SENSOR_DEVICE_SWIMMING_OUTDOOR, 0x3),
351 SENSOR_ATTR_SWIMMING_OUTDOOR_SET_GPS_PERMISSION = CONVERT_TYPE_ATTR(SENSOR_DEVICE_SWIMMING_OUTDOOR, 0x4),
352 SENSOR_ATTR_SWIMMING_OUTDOOR_FLUSH = CONVERT_TYPE_ATTR(SENSOR_DEVICE_SWIMMING_OUTDOOR, 0x6),
354 SENSOR_ATTR_AUTO_SWIMMING_DURATION = CONVERT_TYPE_ATTR(SENSOR_DEVICE_AUTO_SWIMMING, 0x1),
356 SENSOR_ATTR_INACTIVITY_DETECTOR_LEVEL = CONVERT_TYPE_ATTR(SENSOR_DEVICE_INACTIVITY_DETECTOR, 0x1),
357 SENSOR_ATTR_INACTIVITY_DETECTOR_DURATION = CONVERT_TYPE_ATTR(SENSOR_DEVICE_INACTIVITY_DETECTOR, 0x2),
359 SENSOR_ATTR_STRESS_TRACKER_DUR = CONVERT_TYPE_ATTR(SENSOR_DEVICE_STRESS_TRACKER, 0x1),
360 SENSOR_ATTR_STRESS_TRACKER_FLUSH = CONVERT_TYPE_ATTR(SENSOR_DEVICE_STRESS_TRACKER, 0x2),
362 SENSOR_ATTR_STRESS_MONITOR_BASE_HR = CONVERT_TYPE_ATTR(SENSOR_DEVICE_HUMAN_STRESS_MONITOR, 0x1),
363 SENSOR_ATTR_STRESS_MONITOR_HISTO_INDEX = CONVERT_TYPE_ATTR(SENSOR_DEVICE_HUMAN_STRESS_MONITOR, 0x2),
364 SENSOR_ATTR_STRESS_MONITOR_HISTO_VALUE = CONVERT_TYPE_ATTR(SENSOR_DEVICE_HUMAN_STRESS_MONITOR, 0x3),
365 SENSOR_ATTR_STRESS_MONITOR_TUNE_INDEX = CONVERT_TYPE_ATTR(SENSOR_DEVICE_HUMAN_STRESS_MONITOR, 0x4),
366 SENSOR_ATTR_STRESS_MONITOR_TUNE_VALUE = CONVERT_TYPE_ATTR(SENSOR_DEVICE_HUMAN_STRESS_MONITOR, 0x5),
367 SENSOR_ATTR_STRESS_MONITOR_FLUSH = CONVERT_TYPE_ATTR(SENSOR_DEVICE_HUMAN_STRESS_MONITOR, 0x6),
368 SENSOR_ATTR_STRESS_MONITOR_OPERATION = CONVERT_TYPE_ATTR(SENSOR_DEVICE_HUMAN_STRESS_MONITOR, 0x7),
370 SENSOR_ATTR_SLEEP_MONITOR_STOP = CONVERT_TYPE_ATTR(SENSOR_DEVICE_HUMAN_SLEEP_MONITOR, 0x1),
371 SENSOR_ATTR_SLEEP_MONITOR_FLUSH = CONVERT_TYPE_ATTR(SENSOR_DEVICE_HUMAN_SLEEP_MONITOR, 0x2),
373 SENSOR_ATTR_SLEEP_DETECTOR_STOP = CONVERT_TYPE_ATTR(SENSOR_DEVICE_HUMAN_SLEEP_DETECTOR, 0x1),
374 SENSOR_ATTR_SLEEP_DETECTOR_SETTING = CONVERT_TYPE_ATTR(SENSOR_DEVICE_HUMAN_SLEEP_DETECTOR, 0x2),
376 SENSOR_ATTR_DATA_JOURNAL_START = CONVERT_TYPE_ATTR(SENSOR_DEVICE_DATA_JOURNAL, 0x1),
377 SENSOR_ATTR_DATA_JOURNAL_STOP = CONVERT_TYPE_ATTR(SENSOR_DEVICE_DATA_JOURNAL, 0x2),
379 SENSOR_ATTR_GPS_BATCH_OPR_MODE = CONVERT_TYPE_ATTR(SENSOR_DEVICE_GPS_BATCH, 0x1),
381 SENSOR_ATTR_PPG_BATCH_POLLING_INTERVAL = CONVERT_TYPE_ATTR(SENSOR_DEVICE_PPG_BATCH, 0x1),
382 SENSOR_ATTR_PPG_BATCH_FLUSH = CONVERT_TYPE_ATTR(SENSOR_DEVICE_PPG_BATCH, 0x2),
384 SENSOR_ATTR_REG_CTRL_TYPE = CONVERT_TYPE_ATTR(SENSOR_DEVICE_REG_CTRL, 0x1),
385 SENSOR_ATTR_REG_CTRL_ADDRESS = CONVERT_TYPE_ATTR(SENSOR_DEVICE_REG_CTRL, 0x2),
386 SENSOR_ATTR_REG_CTRL_VALUE = CONVERT_TYPE_ATTR(SENSOR_DEVICE_REG_CTRL, 0x3),
387 SENSOR_ATTR_REG_CTRL_MODE = CONVERT_TYPE_ATTR(SENSOR_DEVICE_REG_CTRL, 0x4),
389 SENSOR_ATTR_GPS_CTRL_SETTING = CONVERT_TYPE_ATTR(SENSOR_DEVICE_GPS_CTRL, 0x1),
391 SENSOR_ATTR_FAKE_MOTION_EVENT_INTERVAL = CONVERT_TYPE_ATTR(SENSOR_DEVICE_FAKE_MOTION, 0x1),
392 SENSOR_ATTR_FAKE_MOTION_EVENT_COUNT = CONVERT_TYPE_ATTR(SENSOR_DEVICE_FAKE_MOTION, 0x2),
393 SENSOR_ATTR_FAKE_MOTION_PAUSE_INTERVAL = CONVERT_TYPE_ATTR(SENSOR_DEVICE_FAKE_MOTION, 0x3),
395 SENSOR_ATTR_GEOFENCE_ID = CONVERT_TYPE_ATTR(SENSOR_DEVICE_GEOFENCE, 0x1),
396 SENSOR_ATTR_GEOFENCE_LAT = CONVERT_TYPE_ATTR(SENSOR_DEVICE_GEOFENCE, 0x2),
397 SENSOR_ATTR_GEOFENCE_LON = CONVERT_TYPE_ATTR(SENSOR_DEVICE_GEOFENCE, 0x3),
398 SENSOR_ATTR_GEOFENCE_RADIUS = CONVERT_TYPE_ATTR(SENSOR_DEVICE_GEOFENCE, 0x4),
399 SENSOR_ATTR_GEOFENCE_PROVIDER = CONVERT_TYPE_ATTR(SENSOR_DEVICE_GEOFENCE, 0x5),
400 SENSOR_ATTR_GEOFENCE_ACCURACY = CONVERT_TYPE_ATTR(SENSOR_DEVICE_GEOFENCE, 0x6),
401 SENSOR_ATTR_GEOFENCE_TIMESTAMP = CONVERT_TYPE_ATTR(SENSOR_DEVICE_GEOFENCE, 0x7),
402 SENSOR_ATTR_GEOFENCE_CONNECT = CONVERT_TYPE_ATTR(SENSOR_DEVICE_GEOFENCE, 0x8),
403 SENSOR_ATTR_GEOFENCE_START = CONVERT_TYPE_ATTR(SENSOR_DEVICE_GEOFENCE, 0x10),
404 SENSOR_ATTR_GEOFENCE_STOP = CONVERT_TYPE_ATTR(SENSOR_DEVICE_GEOFENCE, 0x11),
405 SENSOR_ATTR_GEOFENCE_SET_LOCATION = CONVERT_TYPE_ATTR(SENSOR_DEVICE_GEOFENCE, 0x12),
406 SENSOR_ATTR_GEOFENCE_BT_CONNECT = CONVERT_TYPE_ATTR(SENSOR_DEVICE_GEOFENCE, 0x13),
408 SENSOR_ATTR_FALL_DETECTION_OPR_MODE = CONVERT_TYPE_ATTR(SENSOR_DEVICE_FALL_DETECTION, 0x1),
411 enum sensor_activity {
412 SENSOR_ACTIVITY_UNKNOWN = 1,
413 SENSOR_ACTIVITY_STILL = 2,
414 SENSOR_ACTIVITY_WALKING = 4,
415 SENSOR_ACTIVITY_RUNNING = 8,
416 SENSOR_ACTIVITY_IN_VEHICLE = 16,
417 SENSOR_ACTIVITY_ON_BICYCLE = 32,
422 #endif /* __cplusplus */
424 #endif /* _SENSOR_HAL_TYPES_H_ */