Use hal-api-sensor instead of legacy interface 78/252278/2 submit/tizen/20210127.061527
authorBoram Bae <boram21.bae@samsung.com>
Thu, 14 Jan 2021 09:45:44 +0000 (18:45 +0900)
committerBoram Bae <boram21.bae@samsung.com>
Wed, 27 Jan 2021 05:00:25 +0000 (14:00 +0900)
* This change is for Tizen Next-HAL
* Now, all implementations of sensor device inherit sensor device interface of the hal-api-sensor
* Move sensor_hal and sensor_hal_types to hal-api-sensor
* Name sensor_loader`s existing HAL as Legacy HAL

Change-Id: I74693374db341475039d31071798e5a252dfc39f
Signed-off-by: Boram Bae <boram21.bae@samsung.com>
include/physical_sensor.h
include/sensor_hal.h [deleted file]
include/sensor_hal_types.h [deleted file]
include/sensor_types.h
packaging/sensord.spec
src/fusion-sensor/rotation_vector/fusion.h
src/server/CMakeLists.txt
src/server/sensor_loader.cpp
src/server/sensor_loader.h
src/server/sensor_manager.cpp
src/shared/sensor_info.h

index 58c57da5427ce3b6216779a13abbdbd8d68f5945..cacbe569a7027c4247e361d0d19e85aaa3c443cd 100644 (file)
@@ -25,7 +25,7 @@
 #include <string>
 #include <sensor_types.h>
 
-#include "sensor_hal.h"
+#include <hal/hal-sensor-interface.h>
 
 #ifndef SENSOR_VERSION
 #define PHYSICAL_SENSOR_VERSION(maj, min) \
diff --git a/include/sensor_hal.h b/include/sensor_hal.h
deleted file mode 100644 (file)
index d90053c..0000000
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * Copyright (c) 2016 Samsung Electronics Co., Ltd.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-#ifndef _SENSOR_HAL_H_
-#define _SENSOR_HAL_H_
-
-#include <stdint.h>
-#include <stdbool.h>
-#include "sensor_hal_types.h"
-
-/*
- * Create devices
- */
-typedef void *sensor_device_t;
-typedef int (*create_t)(sensor_device_t **devices);
-
-/*
- * Sensor device interface
- * 1 device must be abstracted from 1 device event node
- */
-class sensor_device {
-public:
-       virtual ~sensor_device() {}
-
-       uint32_t get_hal_version(void)
-       {
-               return SENSOR_HAL_VERSION(1, 0);
-       }
-
-       virtual int get_poll_fd(void) = 0;
-       virtual int get_sensors(const sensor_info_t **sensors) = 0;
-
-       virtual bool enable(uint32_t id) = 0;
-       virtual bool disable(uint32_t id) = 0;
-
-       virtual int read_fd(uint32_t **ids) = 0;
-       virtual int get_data(uint32_t id, sensor_data_t **data, int *length) = 0;
-
-       virtual bool set_interval(uint32_t id, unsigned long val)
-       {
-               return true;
-       }
-       virtual bool set_batch_latency(uint32_t id, unsigned long val)
-       {
-               return true;
-       }
-       virtual bool set_attribute_int(uint32_t id, int32_t attribute, int32_t value)
-       {
-               return true;
-       }
-       virtual bool set_attribute_str(uint32_t id, int32_t attribute, char *value, int len)
-       {
-               return true;
-       }
-       virtual bool flush(uint32_t id)
-       {
-               return true;
-       }
-};
-
-#endif /* _SENSOR_HAL_H_ */
diff --git a/include/sensor_hal_types.h b/include/sensor_hal_types.h
deleted file mode 100644 (file)
index 5dbdaca..0000000
+++ /dev/null
@@ -1,424 +0,0 @@
-/*
- * Copyright (c) 2016 Samsung Electronics Co., Ltd.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-#ifndef _SENSOR_HAL_TYPES_H_
-#define _SENSOR_HAL_TYPES_H_
-
-#include <stdint.h>
-#include <stdbool.h>
-#include <time.h>
-
-#define SENSOR_HAL_VERSION(maj, min) \
-               ((((maj) & 0xFFFF) << 24) | ((min) & 0xFFFF))
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif /* __cplusplus */
-
-/*
- * Sensor Types
- * These types are used to controll the sensors
- *
- * - base unit
- *   acceleration values : meter per second^2 (m/s^2)
- *   magnetic values     : micro-Tesla (uT)
- *   orientation values  : degrees
- *   gyroscope values    : degree/s
- *   temperature values  : degrees centigrade
- *   proximity valeus    : distance
- *   light values        : lux
- *   pressure values     : hectopascal (hPa)
- *   humidity            : relative humidity (%)
- */
-typedef enum {
-       SENSOR_DEVICE_UNKNOWN = -2,
-       SENSOR_DEVICE_ALL = -1,
-       SENSOR_DEVICE_ACCELEROMETER,
-       SENSOR_DEVICE_GRAVITY,
-       SENSOR_DEVICE_LINEAR_ACCELERATION,
-       SENSOR_DEVICE_GEOMAGNETIC,
-       SENSOR_DEVICE_ROTATION_VECTOR,
-       SENSOR_DEVICE_ORIENTATION,
-       SENSOR_DEVICE_GYROSCOPE,
-       SENSOR_DEVICE_LIGHT,
-       SENSOR_DEVICE_PROXIMITY,
-       SENSOR_DEVICE_PRESSURE,
-       SENSOR_DEVICE_ULTRAVIOLET,
-       SENSOR_DEVICE_TEMPERATURE,
-       SENSOR_DEVICE_HUMIDITY,
-       SENSOR_DEVICE_HRM,
-       SENSOR_DEVICE_HRM_LED_GREEN,
-       SENSOR_DEVICE_HRM_LED_IR,
-       SENSOR_DEVICE_HRM_LED_RED,
-       SENSOR_DEVICE_GYROSCOPE_UNCAL,
-       SENSOR_DEVICE_GEOMAGNETIC_UNCAL,
-       SENSOR_DEVICE_GYROSCOPE_RV,
-       SENSOR_DEVICE_GEOMAGNETIC_RV,
-
-       SENSOR_DEVICE_SIGNIFICANT_MOTION = 0x100,
-
-       SENSOR_DEVICE_HRM_BATCH = 0x200,
-       SENSOR_DEVICE_HRM_LED_GREEN_BATCH,
-
-       SENSOR_DEVICE_HUMAN_PEDOMETER = 0x300,
-       SENSOR_DEVICE_HUMAN_SLEEP_MONITOR,
-       SENSOR_DEVICE_HUMAN_SLEEP_DETECTOR,
-       SENSOR_DEVICE_HUMAN_STRESS_MONITOR,
-
-       SENSOR_DEVICE_EXERCISE_WALKING = 0x400,
-       SENSOR_DEVICE_EXERCISE_RUNNING,
-       SENSOR_DEVICE_EXERCISE_HIKING,
-       SENSOR_DEVICE_EXERCISE_CYCLING,
-       SENSOR_DEVICE_EXERCISE_ELLIPTICAL,
-       SENSOR_DEVICE_EXERCISE_INDOOR_CYCLING,
-       SENSOR_DEVICE_EXERCISE_ROWING,
-       SENSOR_DEVICE_EXERCISE_STEPPER,
-
-       SENSOR_DEVICE_DATA_JOURNAL = 0x500,
-
-       SENSOR_DEVICE_FUSION = 0x900,
-       SENSOR_DEVICE_AUTO_ROTATION,
-       SENSOR_DEVICE_AUTO_BRIGHTNESS,
-       SENSOR_DEVICE_MYOTEST,
-
-       SENSOR_DEVICE_GESTURE_MOVEMENT = 0x1200,
-       SENSOR_DEVICE_GESTURE_WRIST_UP,
-       SENSOR_DEVICE_GESTURE_WRIST_DOWN,
-       SENSOR_DEVICE_GESTURE_MOVEMENT_STATE,
-       SENSOR_DEVICE_GESTURE_PICK_UP,
-       SENSOR_DEVICE_GESTURE_FACE_DOWN,
-
-       SENSOR_DEVICE_ACTIVITY_TRACKER = 0x1A00,
-       SENSOR_DEVICE_ACTIVITY_LEVEL_MONITOR,
-       SENSOR_DEVICE_GPS_BATCH,
-       SENSOR_DEVICE_PPG_BATCH,
-       SENSOR_DEVICE_GPS_TIMESYNC,
-
-       SENSOR_DEVICE_HRM_CTRL = 0x1A80,
-       SENSOR_DEVICE_REG_CTRL,
-       SENSOR_DEVICE_GPS_CTRL,
-
-       SENSOR_DEVICE_WEAR_STATUS = 0x2000,
-       SENSOR_DEVICE_WEAR_ON_MONITOR,
-       SENSOR_DEVICE_NO_MOVE_DETECTOR,
-       SENSOR_DEVICE_RESTING_HR,
-       SENSOR_DEVICE_STEP_LEVEL_MONITOR,
-       SENSOR_DEVICE_EXERCISE_STANDALONE,
-       SENSOR_DEVICE_EXERCISE_HR,
-       SENSOR_DEVICE_WORKOUT,
-       SENSOR_DEVICE_CYCLE_MONITOR,
-       SENSOR_DEVICE_STAIR_TRACKER,
-       SENSOR_DEVICE_PRESSURE_INDICATOR,
-       SENSOR_DEVICE_PRESSURE_ALERT,
-       SENSOR_DEVICE_HR_CALORIE,
-       SENSOR_DEVICE_SWIMMING_TRACKER,
-       SENSOR_DEVICE_STRESS_TRACKER,
-       SENSOR_DEVICE_FAKE_MOTION,
-       SENSOR_DEVICE_GEOFENCE,
-       SENSOR_DEVICE_SWIMMING_OUTDOOR,
-       SENSOR_DEVICE_AUTO_SWIMMING,
-       SENSOR_DEVICE_INACTIVITY_DETECTOR,
-       SENSOR_DEVICE_HRM_BP,
-       SENSOR_DEVICE_ECG,
-       SENSOR_DEVICE_FALL_DETECTION,
-
-       SENSOR_DEVICE_CONTEXT = 0x7000,
-       SENSOR_DEVICE_MOTION,
-       SENSOR_DEVICE_PIR,
-       SENSOR_DEVICE_PIR_LONG,
-       SENSOR_DEVICE_DUST,
-       SENSOR_DEVICE_THERMOMETER,
-       SENSOR_DEVICE_PEDOMETER,
-       SENSOR_DEVICE_FLAT,
-       SENSOR_DEVICE_HRM_RAW,
-       SENSOR_DEVICE_TILT,
-       SENSOR_DEVICE_ROTATION_VECTOR_RAW,
-       SENSOR_DEVICE_GSR,
-       SENSOR_DEVICE_SIMSENSE,
-       SENSOR_DEVICE_PPG,
-} sensor_device_type;
-
-/*
- * A platform sensor handler is generated based on this handle
- * This id can be assigned from HAL developer. so it has to be unique in 1 sensor_device.
- */
-typedef struct sensor_info_t {
-       uint32_t id;
-       const char *name;
-       sensor_device_type type;
-       unsigned int event_type; // for Internal API
-       const char *model_name;
-       const char *vendor;
-       float min_range;
-       float max_range;
-       float resolution;
-       int min_interval;
-       int max_batch_count;
-       bool wakeup_supported;
-} sensor_info_t;
-
-enum sensor_accuracy_t {
-       SENSOR_ACCURACY_UNDEFINED = -1,
-       SENSOR_ACCURACY_BAD = 0,
-       SENSOR_ACCURACY_NORMAL = 1,
-       SENSOR_ACCURACY_GOOD = 2,
-       SENSOR_ACCURACY_VERYGOOD = 3
-};
-
-#define SENSOR_DATA_VALUE_SIZE 16
-
-/* sensor_data_t */
-typedef struct sensor_data_t {
-       int accuracy;
-       unsigned long long timestamp;
-       int value_count;
-       float values[SENSOR_DATA_VALUE_SIZE];
-} sensor_data_t;
-
-#define SENSORHUB_DATA_VALUE_SIZE 4096
-
-/* sensorhub_data_t */
-typedef struct sensorhub_data_t {
-       int accuracy;
-       unsigned long long timestamp;
-
-       /*
-        *  Use "value_count" instead of "hub_data_size"
-        *  which is going to be removed soon
-        */
-       union {
-               int value_count;
-               int hub_data_size; /* deprecated */
-       };
-
-       /*
-        *  Use "values" instead of "hub_data"
-        *  which is going to be removed soon
-        */
-       union {
-               char values[SENSORHUB_DATA_VALUE_SIZE];
-               char hub_data[SENSORHUB_DATA_VALUE_SIZE]; /* deprecated */
-       };
-} sensorhub_data_t;
-
-#define SENSOR_PEDOMETER_DATA_DIFFS_SIZE       20
-
-typedef struct {
-       int accuracy;
-       unsigned long long timestamp;
-       int value_count;        /* value_count == 8 */
-       float values[SENSOR_DATA_VALUE_SIZE];
-       /* values = {step count, walk step count, run step count,
-                    moving distance, calorie burned, last speed,
-                    last stepping frequency (steps per sec),
-                    last step status (walking, running, ...)} */
-       /* Additional data attributes (not in sensor_data_t)*/
-       int diffs_count;
-       struct differences {
-               int timestamp;
-               int steps;
-               int walk_steps;
-               int run_steps;
-               int walk_up_steps;
-               int walk_down_steps;
-               int run_up_steps;
-               int run_down_steps;
-               float distance;
-               float calories;
-               float speed;
-       } diffs[SENSOR_PEDOMETER_DATA_DIFFS_SIZE];
-} sensor_pedometer_data_t;
-
-#define CONVERT_TYPE_ATTR(type, index) ((type) << 8 | 0x80 | (index))
-
-enum sensor_attribute {
-       SENSOR_ATTR_ACCELEROMETER_INJECTION = CONVERT_TYPE_ATTR(SENSOR_DEVICE_ACCELEROMETER, 0xFF),
-       SENSOR_ATTR_ACTIVITY = CONVERT_TYPE_ATTR(SENSOR_DEVICE_ACTIVITY_TRACKER, 0x1),
-
-       SENSOR_ATTR_HRM_BATCH_OPR_MODE = CONVERT_TYPE_ATTR(SENSOR_DEVICE_HRM_BATCH, 0x1),
-       SENSOR_ATTR_HRM_BATCH_ACTIVITY_TYPE = CONVERT_TYPE_ATTR(SENSOR_DEVICE_HRM_BATCH, 0x2),
-       SENSOR_ATTR_HRM_BATCH_BATCH_DUR = CONVERT_TYPE_ATTR(SENSOR_DEVICE_HRM_BATCH, 0x3),
-       SENSOR_ATTR_HRM_BATCH_FLUSH = CONVERT_TYPE_ATTR(SENSOR_DEVICE_HRM_BATCH, 0x4),
-       SENSOR_ATTR_HRM_BATCH_ELEVATED_DUR = CONVERT_TYPE_ATTR(SENSOR_DEVICE_HRM_BATCH, 0x5),
-       SENSOR_ATTR_HRM_BATCH_ELEVATED_THR = CONVERT_TYPE_ATTR(SENSOR_DEVICE_HRM_BATCH, 0x6),
-       SENSOR_ATTR_HRM_BATCH_BPM_RAW = CONVERT_TYPE_ATTR(SENSOR_DEVICE_HRM_BATCH, 0x7),
-       SENSOR_ATTR_HRM_BATCH_LOW_ALERT_DUR = CONVERT_TYPE_ATTR(SENSOR_DEVICE_HRM_BATCH, 0x8),
-       SENSOR_ATTR_HRM_BATCH_LOW_ALERT_THR = CONVERT_TYPE_ATTR(SENSOR_DEVICE_HRM_BATCH, 0x9),
-
-       SENSOR_ATTR_HRM_LED_GREEN_BATCH_POLLING_INTERVAL = CONVERT_TYPE_ATTR(SENSOR_DEVICE_HRM_LED_GREEN_BATCH, 0x1),
-       SENSOR_ATTR_HRM_LED_GREEN_BATCH_FLUSH = CONVERT_TYPE_ATTR(SENSOR_DEVICE_HRM_LED_GREEN_BATCH, 0x2),
-       SENSOR_ATTR_HRM_LED_GREEN_BATCH_BATCH_PERIOD = CONVERT_TYPE_ATTR(SENSOR_DEVICE_HRM_LED_GREEN_BATCH, 0x3),
-
-       SENSOR_ATTR_PEDOMETER_HEIGHT = CONVERT_TYPE_ATTR(SENSOR_DEVICE_HUMAN_PEDOMETER, 0x1),
-       SENSOR_ATTR_PEDOMETER_WEIGHT = CONVERT_TYPE_ATTR(SENSOR_DEVICE_HUMAN_PEDOMETER, 0x2),
-       SENSOR_ATTR_PEDOMETER_GENDER = CONVERT_TYPE_ATTR(SENSOR_DEVICE_HUMAN_PEDOMETER, 0x3),
-       SENSOR_ATTR_PEDOMETER_AGE = CONVERT_TYPE_ATTR(SENSOR_DEVICE_HUMAN_PEDOMETER, 0x4),
-       SENSOR_ATTR_PEDOMETER_FLUSH = CONVERT_TYPE_ATTR(SENSOR_DEVICE_HUMAN_PEDOMETER, 0x2F),
-
-       SENSOR_ATTR_STRESS_MONITOR_AGE = CONVERT_TYPE_ATTR(SENSOR_DEVICE_HUMAN_STRESS_MONITOR, 0x1),
-
-       SENSOR_ATTR_EXERCISE_TYPE = CONVERT_TYPE_ATTR(SENSOR_DEVICE_EXERCISE_STANDALONE, 0x1),
-       SENSOR_ATTR_EXERCISE_GPS = CONVERT_TYPE_ATTR(SENSOR_DEVICE_EXERCISE_STANDALONE, 0x2),
-       SENSOR_ATTR_EXERCISE_BATCH_INTERVAL = CONVERT_TYPE_ATTR(SENSOR_DEVICE_EXERCISE_STANDALONE, 0x3),
-       SENSOR_ATTR_EXERCISE_PSERVICE = CONVERT_TYPE_ATTR(SENSOR_DEVICE_EXERCISE_STANDALONE, 0x4),
-
-       SENSOR_ATTR_CYCLE_DURATION = CONVERT_TYPE_ATTR(SENSOR_DEVICE_CYCLE_MONITOR, 0x1),
-       SENSOR_ATTR_CYCLE_HOLDING_POSITION = CONVERT_TYPE_ATTR(SENSOR_DEVICE_CYCLE_MONITOR, 0x2),
-       SENSOR_ATTR_CYCLE_VELOCITY = CONVERT_TYPE_ATTR(SENSOR_DEVICE_CYCLE_MONITOR, 0x3),
-       SENSOR_ATTR_CYCLE_GET_DATA_TYPE = CONVERT_TYPE_ATTR(SENSOR_DEVICE_CYCLE_MONITOR, 0x4),
-       SENSOR_ATTR_CYCLE_DATA_FLUSH = CONVERT_TYPE_ATTR(SENSOR_DEVICE_CYCLE_MONITOR, 0x5),
-       SENSOR_ATTR_CYCLE_GPS_AGREEMENT = CONVERT_TYPE_ATTR(SENSOR_DEVICE_CYCLE_MONITOR, 0x6),
-
-       SENSOR_ATTR_WORKOUT_TYPE = CONVERT_TYPE_ATTR(SENSOR_DEVICE_WORKOUT, 0x1),
-       SENSOR_ATTR_WORKOUT_DURATION = CONVERT_TYPE_ATTR(SENSOR_DEVICE_WORKOUT, 0x2),
-
-       SENSOR_ATTR_RESTING_HR_OPR_MODE = CONVERT_TYPE_ATTR(SENSOR_DEVICE_RESTING_HR, 0x1),
-       SENSOR_ATTR_RESTING_HR_MAX_RHR = CONVERT_TYPE_ATTR(SENSOR_DEVICE_RESTING_HR, 0x2),
-       SENSOR_ATTR_RESTING_HR_MIN_RHR = CONVERT_TYPE_ATTR(SENSOR_DEVICE_RESTING_HR, 0x3),
-       SENSOR_ATTR_RESTING_HR_AVG_RHR = CONVERT_TYPE_ATTR(SENSOR_DEVICE_RESTING_HR, 0x4),
-       SENSOR_ATTR_RESTING_HR_HOUR = CONVERT_TYPE_ATTR(SENSOR_DEVICE_RESTING_HR, 0x5),
-       SENSOR_ATTR_RESTING_HR_MIN = CONVERT_TYPE_ATTR(SENSOR_DEVICE_RESTING_HR, 0x6),
-       SENSOR_ATTR_RESTING_HR_SEC = CONVERT_TYPE_ATTR(SENSOR_DEVICE_RESTING_HR, 0x7),
-       SENSOR_ATTR_RESTING_HR_PROPERTY_TYPE = CONVERT_TYPE_ATTR(SENSOR_DEVICE_RESTING_HR, 0x10),
-       SENSOR_ATTR_RESTING_HR_PROPERTY_HR_TYPE = CONVERT_TYPE_ATTR(SENSOR_DEVICE_RESTING_HR, 0x11),
-       SENSOR_ATTR_RESTING_HR_PROPERTY_HR_VALUE = CONVERT_TYPE_ATTR(SENSOR_DEVICE_RESTING_HR, 0x12),
-       SENSOR_ATTR_RESTING_HR_PROPERTY_DURATION = CONVERT_TYPE_ATTR(SENSOR_DEVICE_RESTING_HR, 0x13),
-       SENSOR_ATTR_RESTING_HR_PROPERTY_ACT_TYPE = CONVERT_TYPE_ATTR(SENSOR_DEVICE_RESTING_HR, 0x14),
-       SENSOR_ATTR_RESTING_HR_PROPERTY_ACT_DUR = CONVERT_TYPE_ATTR(SENSOR_DEVICE_RESTING_HR, 0x15),
-       SENSOR_ATTR_RESTING_HR_PROPERTY_CONT_DUR = CONVERT_TYPE_ATTR(SENSOR_DEVICE_RESTING_HR, 0x16),
-       SENSOR_ATTR_RESTING_HR_DATA_TYPE = CONVERT_TYPE_ATTR(SENSOR_DEVICE_RESTING_HR, 0x20),
-       SENSOR_ATTR_RESTING_HR_DATA_FLUSH = CONVERT_TYPE_ATTR(SENSOR_DEVICE_RESTING_HR, 0x21),
-
-       SENSOR_ATTR_STEP_LEVEL_MONITOR_DW_DURATION = CONVERT_TYPE_ATTR(SENSOR_DEVICE_STEP_LEVEL_MONITOR, 0x1),
-
-       SENSOR_ATTR_EXERCISE_HR_OPR_MODE = CONVERT_TYPE_ATTR(SENSOR_DEVICE_EXERCISE_HR, 0x1),
-       SENSOR_ATTR_EXERCISE_HR_ACTIVITY_TYPE = CONVERT_TYPE_ATTR(SENSOR_DEVICE_EXERCISE_HR, 0x2),
-       SENSOR_ATTR_EXERCISE_HR_BATCH_DUR = CONVERT_TYPE_ATTR(SENSOR_DEVICE_EXERCISE_HR, 0x3),
-       SENSOR_ATTR_EXERCISE_HR_FLUSH = CONVERT_TYPE_ATTR(SENSOR_DEVICE_EXERCISE_HR, 0x4),
-       SENSOR_ATTR_EXERCISE_HR_ELEVATED_DUR = CONVERT_TYPE_ATTR(SENSOR_DEVICE_EXERCISE_HR, 0x5),
-       SENSOR_ATTR_EXERCISE_HR_ELEVATED_THR = CONVERT_TYPE_ATTR(SENSOR_DEVICE_EXERCISE_HR, 0x6),
-       SENSOR_ATTR_EXERCISE_HR_BPM_RAW = CONVERT_TYPE_ATTR(SENSOR_DEVICE_EXERCISE_HR, 0x7),
-       SENSOR_ATTR_EXERCISE_HR_LOW_ALERT_DUR = CONVERT_TYPE_ATTR(SENSOR_DEVICE_EXERCISE_HR, 0x8),
-       SENSOR_ATTR_EXERCISE_HR_LOW_ALERT_THR = CONVERT_TYPE_ATTR(SENSOR_DEVICE_EXERCISE_HR, 0x9),
-
-       SENSOR_ATTR_PRESSURE_INDICATOR_START = CONVERT_TYPE_ATTR(SENSOR_DEVICE_PRESSURE_INDICATOR, 0x1),
-       SENSOR_ATTR_PRESSURE_INDICATOR_STOP = CONVERT_TYPE_ATTR(SENSOR_DEVICE_PRESSURE_INDICATOR, 0x2),
-       SENSOR_ATTR_PRESSURE_INDICATOR_FLUSH = CONVERT_TYPE_ATTR(SENSOR_DEVICE_PRESSURE_INDICATOR, 0x3),
-       SENSOR_ATTR_PRESSURE_INDICATOR_RESTORE_TIME = CONVERT_TYPE_ATTR(SENSOR_DEVICE_PRESSURE_INDICATOR, 0x4),
-       SENSOR_ATTR_PRESSURE_INDICATOR_RESTORE_VALUE = CONVERT_TYPE_ATTR(SENSOR_DEVICE_PRESSURE_INDICATOR, 0x5),
-       SENSOR_ATTR_PRESSURE_INDICATOR_CURRENT_TIME = CONVERT_TYPE_ATTR(SENSOR_DEVICE_PRESSURE_INDICATOR, 0x6),
-
-       SENSOR_ATTR_PRESSURE_ALERT_START = CONVERT_TYPE_ATTR(SENSOR_DEVICE_PRESSURE_ALERT, 0x1),
-       SENSOR_ATTR_PRESSURE_ALERT_STOP = CONVERT_TYPE_ATTR(SENSOR_DEVICE_PRESSURE_ALERT, 0x2),
-
-       SENSOR_ATTR_HR_CALORIE_AGE = CONVERT_TYPE_ATTR(SENSOR_DEVICE_HR_CALORIE, 0x1),
-       SENSOR_ATTR_HR_CALORIE_HEIGHT = CONVERT_TYPE_ATTR(SENSOR_DEVICE_HR_CALORIE, 0x2),
-       SENSOR_ATTR_HR_CALORIE_WEIGHT = CONVERT_TYPE_ATTR(SENSOR_DEVICE_HR_CALORIE, 0x3),
-       SENSOR_ATTR_HR_CALORIE_GENDER = CONVERT_TYPE_ATTR(SENSOR_DEVICE_HR_CALORIE, 0x4),
-       SENSOR_ATTR_HR_CALORIE_INST = CONVERT_TYPE_ATTR(SENSOR_DEVICE_HR_CALORIE, 0x10),
-       SENSOR_ATTR_HR_CALORIE_EXERCISE_TYPE = CONVERT_TYPE_ATTR(SENSOR_DEVICE_HR_CALORIE, 0x11),
-       SENSOR_ATTR_HR_CALORIE_TARGET_CAL = CONVERT_TYPE_ATTR(SENSOR_DEVICE_HR_CALORIE, 0x12),
-       SENSOR_ATTR_HR_CALORIE_MAX_HEARTRATE = CONVERT_TYPE_ATTR(SENSOR_DEVICE_HR_CALORIE, 0x13),
-       SENSOR_ATTR_HR_CALORIE_FLUSH = CONVERT_TYPE_ATTR(SENSOR_DEVICE_HR_CALORIE, 0x20),
-
-       SENSOR_ATTR_SWIMMING_TRACKER_PLACE = CONVERT_TYPE_ATTR(SENSOR_DEVICE_SWIMMING_TRACKER, 0x1),
-       SENSOR_ATTR_SWIMMING_TRACKER_DISTANCE = CONVERT_TYPE_ATTR(SENSOR_DEVICE_SWIMMING_TRACKER, 0x2),
-       SENSOR_ATTR_SWIMMING_TRACKER_FLUSH = CONVERT_TYPE_ATTR(SENSOR_DEVICE_SWIMMING_TRACKER, 0x3),
-       SENSOR_ATTR_SWIMMING_TRACKER_BATCH = CONVERT_TYPE_ATTR(SENSOR_DEVICE_SWIMMING_TRACKER, 0x4),
-       SENSOR_ATTR_SWIMMING_TRACKER_GOAL_CALORIES = CONVERT_TYPE_ATTR(SENSOR_DEVICE_SWIMMING_TRACKER, 0x5),
-       SENSOR_ATTR_SWIMMING_TRACKER_GOAL_LAPS = CONVERT_TYPE_ATTR(SENSOR_DEVICE_SWIMMING_TRACKER, 0x6),
-       SENSOR_ATTR_SWIMMING_TRACKER_TIME_REST = CONVERT_TYPE_ATTR(SENSOR_DEVICE_SWIMMING_TRACKER, 0x7),
-       SENSOR_ATTR_SWIMMING_TRACKER_TIME_TURN = CONVERT_TYPE_ATTR(SENSOR_DEVICE_SWIMMING_TRACKER, 0x8),
-
-       SENSOR_ATTR_SWIMMING_OUTDOOR_SET_BATCH_LAP_COUNT = CONVERT_TYPE_ATTR(SENSOR_DEVICE_SWIMMING_OUTDOOR, 0x1),
-       SENSOR_ATTR_SWIMMING_OUTDOOR_SETGOAL_LENGTH = CONVERT_TYPE_ATTR(SENSOR_DEVICE_SWIMMING_OUTDOOR, 0x2),
-       SENSOR_ATTR_SWIMMING_OUTDOOR_SETGOAL_TIME = CONVERT_TYPE_ATTR(SENSOR_DEVICE_SWIMMING_OUTDOOR, 0x3),
-       SENSOR_ATTR_SWIMMING_OUTDOOR_SET_GPS_PERMISSION = CONVERT_TYPE_ATTR(SENSOR_DEVICE_SWIMMING_OUTDOOR, 0x4),
-       SENSOR_ATTR_SWIMMING_OUTDOOR_FLUSH = CONVERT_TYPE_ATTR(SENSOR_DEVICE_SWIMMING_OUTDOOR, 0x6),
-
-       SENSOR_ATTR_AUTO_SWIMMING_DURATION = CONVERT_TYPE_ATTR(SENSOR_DEVICE_AUTO_SWIMMING, 0x1),
-
-       SENSOR_ATTR_INACTIVITY_DETECTOR_LEVEL = CONVERT_TYPE_ATTR(SENSOR_DEVICE_INACTIVITY_DETECTOR, 0x1),
-       SENSOR_ATTR_INACTIVITY_DETECTOR_DURATION = CONVERT_TYPE_ATTR(SENSOR_DEVICE_INACTIVITY_DETECTOR, 0x2),
-
-       SENSOR_ATTR_STRESS_TRACKER_DUR = CONVERT_TYPE_ATTR(SENSOR_DEVICE_STRESS_TRACKER, 0x1),
-       SENSOR_ATTR_STRESS_TRACKER_FLUSH = CONVERT_TYPE_ATTR(SENSOR_DEVICE_STRESS_TRACKER, 0x2),
-
-       SENSOR_ATTR_STRESS_MONITOR_BASE_HR = CONVERT_TYPE_ATTR(SENSOR_DEVICE_HUMAN_STRESS_MONITOR, 0x1),
-       SENSOR_ATTR_STRESS_MONITOR_HISTO_INDEX = CONVERT_TYPE_ATTR(SENSOR_DEVICE_HUMAN_STRESS_MONITOR, 0x2),
-       SENSOR_ATTR_STRESS_MONITOR_HISTO_VALUE = CONVERT_TYPE_ATTR(SENSOR_DEVICE_HUMAN_STRESS_MONITOR, 0x3),
-       SENSOR_ATTR_STRESS_MONITOR_TUNE_INDEX = CONVERT_TYPE_ATTR(SENSOR_DEVICE_HUMAN_STRESS_MONITOR, 0x4),
-       SENSOR_ATTR_STRESS_MONITOR_TUNE_VALUE = CONVERT_TYPE_ATTR(SENSOR_DEVICE_HUMAN_STRESS_MONITOR, 0x5),
-       SENSOR_ATTR_STRESS_MONITOR_FLUSH = CONVERT_TYPE_ATTR(SENSOR_DEVICE_HUMAN_STRESS_MONITOR, 0x6),
-       SENSOR_ATTR_STRESS_MONITOR_OPERATION = CONVERT_TYPE_ATTR(SENSOR_DEVICE_HUMAN_STRESS_MONITOR, 0x7),
-
-       SENSOR_ATTR_SLEEP_MONITOR_STOP = CONVERT_TYPE_ATTR(SENSOR_DEVICE_HUMAN_SLEEP_MONITOR, 0x1),
-       SENSOR_ATTR_SLEEP_MONITOR_FLUSH = CONVERT_TYPE_ATTR(SENSOR_DEVICE_HUMAN_SLEEP_MONITOR, 0x2),
-
-       SENSOR_ATTR_SLEEP_DETECTOR_STOP = CONVERT_TYPE_ATTR(SENSOR_DEVICE_HUMAN_SLEEP_DETECTOR, 0x1),
-       SENSOR_ATTR_SLEEP_DETECTOR_SETTING = CONVERT_TYPE_ATTR(SENSOR_DEVICE_HUMAN_SLEEP_DETECTOR, 0x2),
-
-       SENSOR_ATTR_DATA_JOURNAL_START = CONVERT_TYPE_ATTR(SENSOR_DEVICE_DATA_JOURNAL, 0x1),
-       SENSOR_ATTR_DATA_JOURNAL_STOP = CONVERT_TYPE_ATTR(SENSOR_DEVICE_DATA_JOURNAL, 0x2),
-
-       SENSOR_ATTR_GPS_BATCH_OPR_MODE = CONVERT_TYPE_ATTR(SENSOR_DEVICE_GPS_BATCH, 0x1),
-
-       SENSOR_ATTR_PPG_BATCH_POLLING_INTERVAL = CONVERT_TYPE_ATTR(SENSOR_DEVICE_PPG_BATCH, 0x1),
-       SENSOR_ATTR_PPG_BATCH_FLUSH = CONVERT_TYPE_ATTR(SENSOR_DEVICE_PPG_BATCH, 0x2),
-
-       SENSOR_ATTR_REG_CTRL_TYPE = CONVERT_TYPE_ATTR(SENSOR_DEVICE_REG_CTRL, 0x1),
-       SENSOR_ATTR_REG_CTRL_ADDRESS = CONVERT_TYPE_ATTR(SENSOR_DEVICE_REG_CTRL, 0x2),
-       SENSOR_ATTR_REG_CTRL_VALUE = CONVERT_TYPE_ATTR(SENSOR_DEVICE_REG_CTRL, 0x3),
-       SENSOR_ATTR_REG_CTRL_MODE = CONVERT_TYPE_ATTR(SENSOR_DEVICE_REG_CTRL, 0x4),
-
-       SENSOR_ATTR_GPS_CTRL_SETTING = CONVERT_TYPE_ATTR(SENSOR_DEVICE_GPS_CTRL, 0x1),
-
-       SENSOR_ATTR_FAKE_MOTION_EVENT_INTERVAL = CONVERT_TYPE_ATTR(SENSOR_DEVICE_FAKE_MOTION, 0x1),
-       SENSOR_ATTR_FAKE_MOTION_EVENT_COUNT = CONVERT_TYPE_ATTR(SENSOR_DEVICE_FAKE_MOTION, 0x2),
-       SENSOR_ATTR_FAKE_MOTION_PAUSE_INTERVAL = CONVERT_TYPE_ATTR(SENSOR_DEVICE_FAKE_MOTION, 0x3),
-
-       SENSOR_ATTR_GEOFENCE_ID = CONVERT_TYPE_ATTR(SENSOR_DEVICE_GEOFENCE, 0x1),
-       SENSOR_ATTR_GEOFENCE_LAT = CONVERT_TYPE_ATTR(SENSOR_DEVICE_GEOFENCE, 0x2),
-       SENSOR_ATTR_GEOFENCE_LON = CONVERT_TYPE_ATTR(SENSOR_DEVICE_GEOFENCE, 0x3),
-       SENSOR_ATTR_GEOFENCE_RADIUS = CONVERT_TYPE_ATTR(SENSOR_DEVICE_GEOFENCE, 0x4),
-       SENSOR_ATTR_GEOFENCE_PROVIDER = CONVERT_TYPE_ATTR(SENSOR_DEVICE_GEOFENCE, 0x5),
-       SENSOR_ATTR_GEOFENCE_ACCURACY = CONVERT_TYPE_ATTR(SENSOR_DEVICE_GEOFENCE, 0x6),
-       SENSOR_ATTR_GEOFENCE_TIMESTAMP = CONVERT_TYPE_ATTR(SENSOR_DEVICE_GEOFENCE, 0x7),
-       SENSOR_ATTR_GEOFENCE_CONNECT = CONVERT_TYPE_ATTR(SENSOR_DEVICE_GEOFENCE, 0x8),
-       SENSOR_ATTR_GEOFENCE_START = CONVERT_TYPE_ATTR(SENSOR_DEVICE_GEOFENCE, 0x10),
-       SENSOR_ATTR_GEOFENCE_STOP = CONVERT_TYPE_ATTR(SENSOR_DEVICE_GEOFENCE, 0x11),
-       SENSOR_ATTR_GEOFENCE_SET_LOCATION = CONVERT_TYPE_ATTR(SENSOR_DEVICE_GEOFENCE, 0x12),
-       SENSOR_ATTR_GEOFENCE_BT_CONNECT = CONVERT_TYPE_ATTR(SENSOR_DEVICE_GEOFENCE, 0x13),
-
-       SENSOR_ATTR_FALL_DETECTION_OPR_MODE = CONVERT_TYPE_ATTR(SENSOR_DEVICE_FALL_DETECTION, 0x1),
-};
-
-enum sensor_activity {
-       SENSOR_ACTIVITY_UNKNOWN = 1,
-       SENSOR_ACTIVITY_STILL = 2,
-       SENSOR_ACTIVITY_WALKING = 4,
-       SENSOR_ACTIVITY_RUNNING = 8,
-       SENSOR_ACTIVITY_IN_VEHICLE = 16,
-       SENSOR_ACTIVITY_ON_BICYCLE = 32,
-};
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif /* _SENSOR_HAL_TYPES_H_ */
index a41c9859ec3d8360660ceeae783898209d762ba3..b566dae93b06d72831e977a6311eda39a4bb8a07 100644 (file)
@@ -25,7 +25,7 @@
 
 #include <stddef.h>
 #include <stdint.h>
-#include <sensor_hal_types.h>
+#include <hal/hal-sensor-interface.h>
 
 #ifdef __cplusplus
 extern "C"
index 9ea15c07f9830d5bbbc2e4cf4dc23c13ff3bfee3..3b3bde2e67b9c9a8ccda80e40991d348c9c277dc 100644 (file)
@@ -18,6 +18,8 @@ BuildRequires:  pkgconfig(libtzplatform-config)
 BuildRequires:  pkgconfig(cynara-creds-socket)
 BuildRequires:  pkgconfig(cynara-client)
 BuildRequires:  pkgconfig(cynara-session)
+BuildRequires:  pkgconfig(hal-api-sensor)
+BuildRequires:  pkgconfig(hal-api-common)
 
 Requires:   %{name}-dummy = %{version}-%{release}
 Provides:   %{name}-profile_mobile = %{version}-%{release}
@@ -52,15 +54,6 @@ Requires:   %{name}-dummy = %{version}-%{release}
 %description devel
 Internal Sensor API (Development)
 
-
-%package -n sensor-hal-devel
-Summary:    Sensord HAL interface
-Group:      System/Development
-
-%description -n sensor-hal-devel
-Sensord HAL interface
-
-
 %package -n sensor-test
 Summary:    Sensord library
 Group:      System/Testing
@@ -74,7 +67,7 @@ Sensor functional testing
 %build
 MAJORVER=`echo %{version} | awk 'BEGIN {FS="."}{print $1}'`
 
-%cmake . -DMAJORVER=${MAJORVER} -DFULLVER=%{version}
+%cmake . -DMAJORVER=${MAJORVER} -DFULLVER=%{version} -DCMAKE_HAL_LIBDIR_PREFIX=%{_hal_libdir}
 make %{?_smp_mflags}
 
 %install
@@ -132,11 +125,6 @@ echo "You need to reinstall %{name}-dummy to keep using the APIs after uninstall
 %{_libdir}/pkgconfig/sensor.pc
 
 
-%files -n sensor-hal-devel
-%manifest packaging/sensord.manifest
-%{_includedir}/sensor/sensor_hal*.h
-
-
 %files -n sensor-test
 %{_bindir}/sensorctl
 
index 6c14439315fd041bc6cec8f43ceed35064240fe6..4457bc46f295db238a6d5e3144441dfac575bb21 100644 (file)
@@ -19,7 +19,7 @@
 #ifndef __FUSION_H__
 #define __FUSION_H__
 
-#include <sensor_hal_types.h>
+#include <hal/hal-sensor-interface.h>
 
 class fusion {
 public:
index b11a84d31a87c21dffee7b0baa8cf78fb7521819..a3ee963a9b5e1903cb7cbe5e863bf4474e109d1e 100644 (file)
@@ -1,13 +1,14 @@
 CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
 PROJECT(sensord CXX)
 
-SET(DEPENDENTS "glib-2.0 gio-2.0 dlog libsystemd-daemon cynara-client cynara-creds-socket cynara-session vconf")
+SET(DEPENDENTS "glib-2.0 gio-2.0 dlog libsystemd-daemon cynara-client cynara-creds-socket cynara-session vconf hal-api-sensor hal-api-common")
 
 INCLUDE(FindPkgConfig)
 PKG_CHECK_MODULES(SERVER_PKGS REQUIRED ${DEPENDENTS})
 
 ADD_DEFINITIONS(${SENSOR_DEFINITIONS})
 ADD_DEFINITIONS(-DLIBDIR="${CMAKE_INSTALL_LIBDIR}")
+ADD_DEFINITIONS(-DHAL_LIBDIR="${CMAKE_HAL_LIBDIR_PREFIX}")
 
 FOREACH(flag ${SERVER_PKGS_CFLAGS})
        SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${flag}")
index 07c5de86e5f77cb47dd2949e3f38c94cc4c6757f..8b1ecd6beaa392607ba923515dc310ff021b16e2 100644 (file)
 
 #include "sensor_loader.h"
 
-#include <unistd.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <dlfcn.h>
 #include <dirent.h>
-#include <sensor_log.h>
-#include <sensor_hal.h>
-#include <physical_sensor.h>
+#include <dlfcn.h>
 #include <fusion_sensor.h>
+#include <hal/hal-sensor-interface.h>
+#include <hal/hal-sensor.h>
+#include <physical_sensor.h>
+#include <sensor_log.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+#include <unistd.h>
+
 #include <memory>
 
 using namespace sensor;
 
-sensor_loader::sensor_loader()
-{
+sensor_loader::sensor_loader() {
+  if (hal_sensor_get_backend() != 0) {
+    _E("Failed to load hal sensor backend");
+  }
 }
 
-sensor_loader::~sensor_loader()
-{
+sensor_loader::~sensor_loader() {
+  if (hal_sensor_put_backend() != 0) {
+    _E("Failed to clear hal sensor backend");
+  }
 }
 
-void sensor_loader::load_hal(const std::string &path, device_sensor_registry_t &devices)
+void sensor_loader::load_hal(device_sensor_registry_t &devices) {
+  void **results = nullptr;
+
+  int size = hal_sensor_create(&results);
+  if (size <= 0 || !results) {
+    _E("Failed to get sensor from hal sensor backend");
+    return;
+  }
+
+  for (int i = 0; i < size; ++i) {
+    devices.emplace_back(static_cast<sensor_device *>(results[i]));
+  }
+  _I("Success to load sensor from hal sensor backend");
+}
+
+
+void sensor_loader::load_hal_legacy(const std::string &path, device_sensor_registry_t &devices)
 {
        load<sensor_device>(path, devices);
 }
index 6aee6fe58b5d2a20a21b336928f4c9ff4625dc09..559d696a237764cdf71cd59ebcc564c9969ab1dd 100644 (file)
@@ -20,7 +20,6 @@
 #ifndef __SENSOR_LOADER_H__
 #define __SENSOR_LOADER_H__
 
-#include <sensor_hal.h>
 #include <physical_sensor.h>
 #include <fusion_sensor.h>
 #include <external_sensor.h>
@@ -41,7 +40,8 @@ public:
        sensor_loader();
        virtual ~sensor_loader();
 
-       void load_hal(const std::string &path, device_sensor_registry_t &devices);
+       void load_hal(device_sensor_registry_t &devices);
+       void load_hal_legacy(const std::string &path, device_sensor_registry_t &devices);
        void load_physical_sensor(const std::string &path, physical_sensor_registry_t &sensors);
        void load_fusion_sensor(const std::string &path, fusion_sensor_registry_t &sensors);
        void load_external_sensor(const std::string &path, external_sensor_registry_t &sensors);
index 6280b6aad64121b60f072295f7fceb90a1999e48..6555ad967ba0262145d6dc84cba00e5edcad287b 100644 (file)
@@ -37,8 +37,9 @@
 
 using namespace sensor;
 
-#define DEVICE_HAL_DIR_PATH_LEGACY LIBDIR "/sensor"
-#define DEVICE_HAL_DIR_PATH LIBDIR "/sensor/hal"
+#define DEVICE_HAL_DIR_PATH_LEGACY1 LIBDIR "/sensor"
+#define DEVICE_HAL_DIR_PATH_LEGACY2 HAL_LIBDIR "/sensorhub/" // only for emulator
+#define DEVICE_HAL_DIR_PATH_LEGACY3 LIBDIR "/sensor/hal"
 #define PHYSICAL_SENSOR_DIR_PATH LIBDIR "/sensor/physical"
 #define VIRTUAL_SENSOR_DIR_PATH LIBDIR "/sensor/fusion"
 #define EXTERNAL_SENSOR_DIR_PATH LIBDIR "/sensor/external"
@@ -59,8 +60,10 @@ sensor_manager::~sensor_manager()
 
 bool sensor_manager::init(void)
 {
-       m_loader.load_hal(DEVICE_HAL_DIR_PATH_LEGACY, devices);
-       m_loader.load_hal(DEVICE_HAL_DIR_PATH, devices);
+       m_loader.load_hal(devices);
+       m_loader.load_hal_legacy(DEVICE_HAL_DIR_PATH_LEGACY1, devices);
+       m_loader.load_hal_legacy(DEVICE_HAL_DIR_PATH_LEGACY2, devices);
+       m_loader.load_hal_legacy(DEVICE_HAL_DIR_PATH_LEGACY3, devices);
        m_loader.load_physical_sensor(PHYSICAL_SENSOR_DIR_PATH, physical_sensors);
        m_loader.load_fusion_sensor(VIRTUAL_SENSOR_DIR_PATH, fusion_sensors);
        m_loader.load_external_sensor(EXTERNAL_SENSOR_DIR_PATH, external_sensors);
index d07b5b83b3ceae324f34e3fa23f61a4fa275770b..0ef89f5037f346fe10522272e32f92a5512e638d 100644 (file)
@@ -23,7 +23,7 @@
 #include <stdint.h>
 #include <string>
 #include <vector>
-#include <sensor_hal.h>
+#include <hal/hal-sensor-interface.h>
 #include <sensor_types.h>
 
 namespace sensor {