4 * Copyright (c) 2016 Samsung Electronics Co., Ltd.
6 * Licensed under the Apache License, Version 2.0 (the "License");
7 * you may not use this file except in compliance with the License.
8 * You may obtain a copy of the License at
10 * http://www.apache.org/licenses/LICENSE-2.0
12 * Unless required by applicable law or agreed to in writing, software
13 * distributed under the License is distributed on an "AS IS" BASIS,
14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 * See the License for the specific language governing permissions and
16 * limitations under the License.
20 #ifndef __SENSOR_TYPES_H__
21 #define __SENSOR_TYPES_H__
23 /* TODO: It is for compatibility with capi-system-sensor */
24 #define __SENSOR_COMMON_H__
28 #include <sensor_hal_types.h>
51 #define SENSOR_TYPE_SHIFT 32
52 #define SENSOR_EVENT_SHIFT 16
53 #define SENSOR_INDEX_MASK 0xFFFFFFFF
55 #define CONVERT_ID_TYPE(id) ((id) >> SENSOR_TYPE_SHIFT)
56 #define CONVERT_TYPE_EVENT(type) ((type) << SENSOR_EVENT_SHIFT | 0x1)
58 #define MICROSECONDS(tv) ((tv.tv_sec * 1000000ll) + tv.tv_usec)
60 #define SENSOR_UNKNOWN_TYPE "http://tizen.org/sensor/unknown"
61 #define SENSOR_UNKNOWN_NAME "Unknown"
63 typedef int64_t sensor_id_t;
64 typedef void *sensor_t;
66 typedef enum sensor_type_t {
69 ACCELEROMETER_SENSOR = 0,
73 ROTATION_VECTOR_SENSOR,
83 BIO_HRM_SENSOR = HRM_SENSOR,
85 BIO_LED_GREEN_SENSOR = HRM_LED_GREEN_SENSOR,
87 BIO_LED_IR_SENSOR = HRM_LED_IR_SENSOR,
89 BIO_LED_RED_SENSOR = HRM_LED_RED_SENSOR,
90 GYROSCOPE_UNCAL_SENSOR,
91 GEOMAGNETIC_UNCAL_SENSOR,
93 GEOMAGNETIC_RV_SENSOR,
95 SIGNIFICANT_MOTION_SENSOR = 0x100,
97 HRM_BATCH_SENSOR = 0x200,
98 HRM_LED_GREEN_BATCH_SENSOR,
100 HUMAN_PEDOMETER_SENSOR = 0x300,
101 HUMAN_SLEEP_MONITOR_SENSOR,
102 HUMAN_SLEEP_DETECTOR_SENSOR,
103 SLEEP_DETECTOR_SENSOR = HUMAN_SLEEP_DETECTOR_SENSOR,
104 HUMAN_STRESS_MONITOR_SENSOR,
105 STRESS_MONITOR_SENSOR = HUMAN_STRESS_MONITOR_SENSOR,
107 EXERCISE_WALKING_SENSOR = 0x400,
108 EXERCISE_RUNNING_SENSOR,
109 EXERCISE_HIKING_SENSOR,
110 EXERCISE_CYCLING_SENSOR,
111 EXERCISE_ELLIPTICAL_SENSOR,
112 EXERCISE_INDOOR_CYCLING_SENSOR,
113 EXERCISE_ROWING_SENSOR,
114 EXERCISE_STEPPER_SENSOR,
116 DATA_JOURNAL_SENSOR = 0x500,
117 // 0x500~0x600 Reserved
119 EXTERNAL_EXERCISE_SENSOR = 0x800,
120 EXERCISE_SENSOR = EXTERNAL_EXERCISE_SENSOR,
122 FUSION_SENSOR = 0x900,
123 AUTO_ROTATION_SENSOR,
124 AUTO_BRIGHTNESS_SENSOR,
127 GESTURE_MOVEMENT_SENSOR = 0x1200,
128 GESTURE_WRIST_UP_SENSOR,
129 GESTURE_WRIST_DOWN_SENSOR,
130 GESTURE_MOVEMENT_STATE_SENSOR,
131 GESTURE_PICK_UP_SENSOR,
132 GESTURE_FACE_DOWN_SENSOR,
134 ACTIVITY_TRACKER_SENSOR = 0x1A00,
135 ACTIVITY_LEVEL_MONITOR_SENSOR,
140 HRM_CTRL_SENSOR = 0x1A80,
144 WEAR_STATUS_SENSOR = 0x2000,
145 WEAR_ON_MONITOR_SENSOR,
146 NO_MOVE_DETECTOR_SENSOR,
148 STEP_LEVEL_MONITOR_SENSOR,
149 EXERCISE_STANDALONE_SENSOR,
150 EXERCISE_COACH_SENSOR = EXERCISE_STANDALONE_SENSOR,
153 AUTOSESSION_EXERCISE_SENSOR = WORKOUT_SENSOR,
154 CYCLE_MONITOR_SENSOR,
155 STAIR_TRACKER_SENSOR,
156 PRESSURE_INDICATOR_SENSOR,
157 PRESSURE_ALERT_SENSOR,
159 SWIMMING_TRACKER_SENSOR,
160 STRESS_TRACKER_SENSOR,
163 SWIMMING_OUTDOOR_SENSOR,
164 AUTO_SWIMMING_SENSOR,
165 INACTIVITY_DETECTOR_SENSOR,
168 FALL_DETECTION_SENSOR,
170 CONTEXT_SENSOR = 0x7000,
179 BIO_SENSOR = HRM_RAW_SENSOR,
186 CUSTOM_SENSOR = 0X9000,
189 typedef struct sensor_info2_t {
199 bool wakeup_supported;
200 const char *privilege;
204 typedef enum sensor_privilege_t {
205 SENSOR_PRIVILEGE_PUBLIC = 0,
206 } sensor_privilege_t;
208 typedef struct sensor_event_t {
209 unsigned int event_type;
210 sensor_id_t sensor_id;
211 unsigned int data_length;
216 * To prevent naming confliction as using same enums as sensor CAPI use
219 enum sensor_option_t {
220 SENSOR_OPTION_DEFAULT = 0,
221 SENSOR_OPTION_ON_IN_SCREEN_OFF = 1,
222 SENSOR_OPTION_ON_IN_POWERSAVE_MODE = 2,
223 SENSOR_OPTION_ALWAYS_ON = SENSOR_OPTION_ON_IN_SCREEN_OFF | SENSOR_OPTION_ON_IN_POWERSAVE_MODE,
227 typedef enum sensor_option_t sensor_option_e;
230 enum sensord_attribute_e {
231 SENSORD_ATTRIBUTE_AXIS_ORIENTATION = 1,
232 SENSORD_ATTRIBUTE_PAUSE_POLICY,
233 SENSORD_ATTRIBUTE_INTERVAL = 0x10,
234 SENSORD_ATTRIBUTE_MAX_BATCH_LATENCY,
235 SENSORD_ATTRIBUTE_PASSIVE_MODE,
236 SENSORD_ATTRIBUTE_FLUSH,
237 // 0x50~0x80 Reserved
240 enum sensord_axis_e {
241 SENSORD_AXIS_DEVICE_ORIENTED = 1,
242 SENSORD_AXIS_DISPLAY_ORIENTED,
245 enum sensord_pause_e {
246 SENSORD_PAUSE_NONE = 0,
247 SENSORD_PAUSE_ON_DISPLAY_OFF = 1,
248 SENSORD_PAUSE_ON_POWERSAVE_MODE = 2,
249 SENSORD_PAUSE_ALL = 3,
253 enum poll_interval_t {
261 POLL_MAX_HZ_MS = 255000,
264 #define DEFAULT_INTERVAL POLL_10HZ_MS
266 enum sensor_interval_t {
267 SENSOR_INTERVAL_FASTEST = POLL_100HZ_MS,
268 SENSOR_INTERVAL_NORMAL = POLL_5HZ_MS,
271 enum proxi_change_state {
272 PROXIMITY_STATE_NEAR = 0,
273 PROXIMITY_STATE_FAR = 1,
276 enum auto_rotation_state {
277 AUTO_ROTATION_DEGREE_UNKNOWN = 0,
278 AUTO_ROTATION_DEGREE_0,
279 AUTO_ROTATION_DEGREE_90,
280 AUTO_ROTATION_DEGREE_180,
281 AUTO_ROTATION_DEGREE_270,
288 #include <sensor_deprecated.h>
290 #endif /* __SENSOR_TYPES_H__ */