From b1a6932fef7cae5bbe92b447740bf3ed0cd8b7de Mon Sep 17 00:00:00 2001 From: "kibak.yoon" Date: Thu, 21 Jan 2016 13:45:29 +0900 Subject: [PATCH 01/16] sensord: remove sensor plugins in sensor fw sensor plugins in sensor fw is not necessary anymore in new architecture. so they are removed. * virtual sensors will temporarily disable in order to build sensor fw Change-Id: Ib53dd20e853f06f6775c1b9bdfee2111ce6cf01f Signed-off-by: kibak.yoon --- src/server/CMakeLists.txt | 2 +- src/server/plugins/accel/accel_sensor.cpp | 185 ------------- src/server/plugins/accel/accel_sensor.h | 55 ---- .../plugins/bio_led_red/bio_led_red_sensor.cpp | 144 ---------- .../plugins/bio_led_red/bio_led_red_sensor.h | 50 ---- src/server/plugins/geo/geo_sensor.cpp | 168 ------------ src/server/plugins/geo/geo_sensor.h | 53 ---- src/server/plugins/gyro/gyro_sensor.cpp | 172 ------------ src/server/plugins/gyro/gyro_sensor.h | 51 ---- .../gyroscope_uncal/gyroscope_uncal_sensor.cpp | 303 --------------------- .../gyroscope_uncal/gyroscope_uncal_sensor.h | 70 ----- src/server/plugins/light/light_sensor.cpp | 193 ------------- src/server/plugins/light/light_sensor.h | 55 ---- src/server/plugins/pressure/pressure_sensor.cpp | 146 ---------- src/server/plugins/pressure/pressure_sensor.h | 53 ---- src/server/plugins/proxi/proxi_sensor.cpp | 173 ------------ src/server/plugins/proxi/proxi_sensor.h | 68 ----- .../rotation_vector/rv_raw/rv_raw_sensor.cpp | 150 ---------- .../plugins/rotation_vector/rv_raw/rv_raw_sensor.h | 50 ---- .../plugins/temperature/temperature_sensor.cpp | 157 ----------- .../plugins/temperature/temperature_sensor.h | 53 ---- .../plugins/ultraviolet/ultraviolet_sensor.cpp | 157 ----------- .../plugins/ultraviolet/ultraviolet_sensor.h | 50 ---- 23 files changed, 1 insertion(+), 2557 deletions(-) delete mode 100755 src/server/plugins/accel/accel_sensor.cpp delete mode 100755 src/server/plugins/accel/accel_sensor.h delete mode 100755 src/server/plugins/bio_led_red/bio_led_red_sensor.cpp delete mode 100755 src/server/plugins/bio_led_red/bio_led_red_sensor.h delete mode 100755 src/server/plugins/geo/geo_sensor.cpp delete mode 100755 src/server/plugins/geo/geo_sensor.h delete mode 100755 src/server/plugins/gyro/gyro_sensor.cpp delete mode 100755 src/server/plugins/gyro/gyro_sensor.h delete mode 100755 src/server/plugins/gyroscope_uncal/gyroscope_uncal_sensor.cpp delete mode 100755 src/server/plugins/gyroscope_uncal/gyroscope_uncal_sensor.h delete mode 100755 src/server/plugins/light/light_sensor.cpp delete mode 100755 src/server/plugins/light/light_sensor.h delete mode 100755 src/server/plugins/pressure/pressure_sensor.cpp delete mode 100755 src/server/plugins/pressure/pressure_sensor.h delete mode 100755 src/server/plugins/proxi/proxi_sensor.cpp delete mode 100755 src/server/plugins/proxi/proxi_sensor.h delete mode 100755 src/server/plugins/rotation_vector/rv_raw/rv_raw_sensor.cpp delete mode 100755 src/server/plugins/rotation_vector/rv_raw/rv_raw_sensor.h delete mode 100755 src/server/plugins/temperature/temperature_sensor.cpp delete mode 100755 src/server/plugins/temperature/temperature_sensor.h delete mode 100755 src/server/plugins/ultraviolet/ultraviolet_sensor.cpp delete mode 100755 src/server/plugins/ultraviolet/ultraviolet_sensor.h diff --git a/src/server/CMakeLists.txt b/src/server/CMakeLists.txt index a17facd..e059764 100755 --- a/src/server/CMakeLists.txt +++ b/src/server/CMakeLists.txt @@ -4,7 +4,7 @@ project(sensord CXX) INCLUDE(FindPkgConfig) PKG_CHECK_MODULES(server_pkgs REQUIRED glib-2.0 gio-2.0 dlog libsystemd-daemon libxml-2.0 cynara-client cynara-creds-socket cynara-session) -add_subdirectory(plugins) +#add_subdirectory(plugins) add_definitions(${PLUGIN_DEFS}) diff --git a/src/server/plugins/accel/accel_sensor.cpp b/src/server/plugins/accel/accel_sensor.cpp deleted file mode 100755 index b122f50..0000000 --- a/src/server/plugins/accel/accel_sensor.cpp +++ /dev/null @@ -1,185 +0,0 @@ -/* - * sensord - * - * Copyright (c) 2014 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. - * - */ - -#include -#include - -#include -#include -#include - -using std::bind1st; -using std::mem_fun; -using std::string; -using std::vector; - -#define GRAVITY 9.80665 -#define G_TO_MG 1000 - -#define RAW_DATA_TO_G_UNIT(X) (((float)(X))/((float)G_TO_MG)) -#define RAW_DATA_TO_METRE_PER_SECOND_SQUARED_UNIT(X) (GRAVITY * (RAW_DATA_TO_G_UNIT(X))) - -#define SENSOR_NAME "ACCELEROMETER_SENSOR" - -accel_sensor::accel_sensor() -: m_sensor_hal(NULL) -, m_raw_data_unit(0.0f) -, m_interval(POLL_1HZ_MS) -{ - m_name = string(SENSOR_NAME); - - vector supported_events = { - ACCELEROMETER_RAW_DATA_EVENT, - ACCELEROMETER_UNPROCESSED_DATA_EVENT, - }; - - for_each(supported_events.begin(), supported_events.end(), - bind1st(mem_fun(&sensor_base::register_supported_event), this)); - - physical_sensor::set_poller(accel_sensor::working, this); -} - -accel_sensor::~accel_sensor() -{ - INFO("accel_sensor is destroyed!\n"); -} - -bool accel_sensor::init() -{ - m_sensor_hal = sensor_plugin_loader::get_instance().get_sensor_hal(SENSOR_HAL_TYPE_ACCELEROMETER); - - if (!m_sensor_hal) { - ERR("cannot load sensor_hal[%s]", sensor_base::get_name()); - return false; - } - - sensor_properties_s properties; - - if (m_sensor_hal->get_properties(properties) == false) { - ERR("sensor->get_properties() is failed!\n"); - return false; - } - - m_raw_data_unit = properties.resolution / GRAVITY * G_TO_MG; - - INFO("m_raw_data_unit accel : [%f]\n", m_raw_data_unit); - - INFO("%s is created!\n", sensor_base::get_name()); - return true; -} - -void accel_sensor::get_types(vector &types) -{ - types.push_back(ACCELEROMETER_SENSOR); -} - -bool accel_sensor::working(void *inst) -{ - accel_sensor *sensor = (accel_sensor*)inst; - return sensor->process_event(); -} - -bool accel_sensor::process_event(void) -{ - sensor_event_t base_event; - - if (!m_sensor_hal->is_data_ready()) - return true; - - m_sensor_hal->get_sensor_data(base_event.data); - - AUTOLOCK(m_mutex); - AUTOLOCK(m_client_info_mutex); - - if (get_client_cnt(ACCELEROMETER_UNPROCESSED_DATA_EVENT)) { - base_event.sensor_id = get_id(); - base_event.event_type = ACCELEROMETER_UNPROCESSED_DATA_EVENT; - push(base_event); - } - - if (get_client_cnt(ACCELEROMETER_RAW_DATA_EVENT)) { - base_event.sensor_id = get_id(); - base_event.event_type = ACCELEROMETER_RAW_DATA_EVENT; - raw_to_base(base_event.data); - push(base_event); - } - - return true; -} - -bool accel_sensor::on_start(void) -{ - if (!m_sensor_hal->enable()) { - ERR("m_sensor_hal start fail\n"); - return false; - } - - return start_poll(); -} - -bool accel_sensor::on_stop(void) -{ - if (!m_sensor_hal->disable()) { - ERR("m_sensor_hal stop fail\n"); - return false; - } - - return stop_poll(); -} - -bool accel_sensor::get_properties(sensor_type_t sensor_type, sensor_properties_s &properties) -{ - return m_sensor_hal->get_properties(properties); -} - -int accel_sensor::get_sensor_data(unsigned int type, sensor_data_t &data) -{ - if (m_sensor_hal->get_sensor_data(data) < 0) { - ERR("Failed to get sensor data"); - return -1; - } - - if (type == ACCELEROMETER_RAW_DATA_EVENT) { - raw_to_base(data); - } else { - ERR("Does not support type: 0x%x", type); - return -1; - } - - return 0; -} - -bool accel_sensor::set_interval(unsigned long interval) -{ - AUTOLOCK(m_mutex); - - m_interval = interval; - - INFO("Polling interval is set to %dms", interval); - - return m_sensor_hal->set_interval(interval); -} - -void accel_sensor::raw_to_base(sensor_data_t &data) -{ - data.value_count = 3; - data.values[0] = RAW_DATA_TO_METRE_PER_SECOND_SQUARED_UNIT(data.values[0] * m_raw_data_unit); - data.values[1] = RAW_DATA_TO_METRE_PER_SECOND_SQUARED_UNIT(data.values[1] * m_raw_data_unit); - data.values[2] = RAW_DATA_TO_METRE_PER_SECOND_SQUARED_UNIT(data.values[2] * m_raw_data_unit); -} diff --git a/src/server/plugins/accel/accel_sensor.h b/src/server/plugins/accel/accel_sensor.h deleted file mode 100755 index a873538..0000000 --- a/src/server/plugins/accel/accel_sensor.h +++ /dev/null @@ -1,55 +0,0 @@ -/* - * sensord - * - * Copyright (c) 2014 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 _ACCEL_SENSOR_H_ -#define _ACCEL_SENSOR_H_ - -#include - -#include -#include - -class accel_sensor : public physical_sensor { -public: - accel_sensor(); - virtual ~accel_sensor(); - - bool init(); - virtual void get_types(std::vector &types); - - static bool working(void *inst); - virtual bool set_interval(unsigned long interval); - virtual int get_sensor_data(unsigned int type, sensor_data_t &data); - virtual bool get_properties(sensor_type_t sensor_type, sensor_properties_s &properties); - -private: - sensor_hal *m_sensor_hal; - cmutex m_value_mutex; - - float m_raw_data_unit; - - unsigned long m_interval; - - virtual bool on_start(void); - virtual bool on_stop(void); - void raw_to_base(sensor_data_t &data); - bool process_event(void); -}; - -#endif diff --git a/src/server/plugins/bio_led_red/bio_led_red_sensor.cpp b/src/server/plugins/bio_led_red/bio_led_red_sensor.cpp deleted file mode 100755 index a302fbd..0000000 --- a/src/server/plugins/bio_led_red/bio_led_red_sensor.cpp +++ /dev/null @@ -1,144 +0,0 @@ -/* - * sensord - * - * Copyright (c) 2014 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. - * - */ - -#include -#include - -#include -#include -#include - -using std::bind1st; -using std::mem_fun; -using std::string; -using std::vector; - -#define SENSOR_NAME "BIO_LED_RED_SENSOR" - -bio_led_red_sensor::bio_led_red_sensor() -: m_sensor_hal(NULL) -{ - m_name = string(SENSOR_NAME); - - register_supported_event(BIO_LED_RED_RAW_DATA_EVENT); - - physical_sensor::set_poller(bio_led_red_sensor::working, this); -} - -bio_led_red_sensor::~bio_led_red_sensor() -{ - INFO("bio_led_red_sensor is destroyed!"); -} - -bool bio_led_red_sensor::init() -{ - m_sensor_hal = sensor_plugin_loader::get_instance().get_sensor_hal(SENSOR_HAL_TYPE_BIO_LED_RED); - - if (!m_sensor_hal) { - ERR("cannot load sensor_hal[%s]", sensor_base::get_name()); - return false; - } - - INFO("%s is created!", sensor_base::get_name()); - - return true; -} - -void bio_led_red_sensor::get_types(vector &types) -{ - types.push_back(BIO_LED_RED_SENSOR); -} - -bool bio_led_red_sensor::working(void *inst) -{ - bio_led_red_sensor *sensor = (bio_led_red_sensor*)inst; - return sensor->process_event(); -} - -bool bio_led_red_sensor::process_event(void) -{ - sensor_event_t event; - - if (!m_sensor_hal->is_data_ready()) - return true; - - m_sensor_hal->get_sensor_data(event.data); - - AUTOLOCK(m_client_info_mutex); - - if (get_client_cnt(BIO_LED_RED_RAW_DATA_EVENT)) { - event.sensor_id = get_id(); - event.event_type = BIO_LED_RED_RAW_DATA_EVENT; - raw_to_base(event.data); - push(event); - } - - return true; -} - -bool bio_led_red_sensor::on_start(void) -{ - if (!m_sensor_hal->enable()) { - ERR("m_sensor_hal start fail\n"); - return false; - } - - return start_poll(); -} - -bool bio_led_red_sensor::on_stop(void) -{ - if (!m_sensor_hal->disable()) { - ERR("m_sensor_hal stop fail\n"); - return false; - } - - return stop_poll(); -} - -bool bio_led_red_sensor::get_properties(sensor_type_t sensor_type, sensor_properties_s &properties) -{ - return m_sensor_hal->get_properties(properties); -} - -int bio_led_red_sensor::get_sensor_data(unsigned int type, sensor_data_t &data) -{ - int ret; - - ret = m_sensor_hal->get_sensor_data(data); - - if (ret < 0) - return -1; - - return -1; -} - -bool bio_led_red_sensor::set_interval(unsigned long interval) -{ - AUTOLOCK(m_mutex); - - INFO("Polling interval is set to %dms", interval); - - return m_sensor_hal->set_interval(interval); -} - -void bio_led_red_sensor::raw_to_base(sensor_data_t &data) -{ - -} diff --git a/src/server/plugins/bio_led_red/bio_led_red_sensor.h b/src/server/plugins/bio_led_red/bio_led_red_sensor.h deleted file mode 100755 index 78af52a..0000000 --- a/src/server/plugins/bio_led_red/bio_led_red_sensor.h +++ /dev/null @@ -1,50 +0,0 @@ -/* - * sensord - * - * Copyright (c) 2014 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 _HRM_RED_SENSOR_H_ -#define _HRM_RED_SENSOR_H_ - -#include - -#include -#include - -class bio_led_red_sensor : public physical_sensor { -public: - bio_led_red_sensor(); - virtual ~bio_led_red_sensor(); - - bool init(); - virtual void get_types(std::vector &types); - - static bool working(void *inst); - virtual bool set_interval(unsigned long interval); - virtual bool get_properties(sensor_type_t sensor_type, sensor_properties_s &properties); - virtual int get_sensor_data(unsigned int type, sensor_data_t &data); -private: - sensor_hal *m_sensor_hal; - - virtual bool on_start(void); - virtual bool on_stop(void); - bool process_event(void); - void raw_to_base(sensor_data_t &data); -}; - -#endif - diff --git a/src/server/plugins/geo/geo_sensor.cpp b/src/server/plugins/geo/geo_sensor.cpp deleted file mode 100755 index 0b86a0f..0000000 --- a/src/server/plugins/geo/geo_sensor.cpp +++ /dev/null @@ -1,168 +0,0 @@ -/* - * sensord - * - * Copyright (c) 2014 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. - * - */ - -#include -#include - -#include -#include - -using std::string; -using std::vector; - -#define SENSOR_NAME "GEOMAGNETIC_SENSOR" - -geo_sensor::geo_sensor() -: m_sensor_hal(NULL) -, m_resolution(0.0f) -{ - m_name = string(SENSOR_NAME); - - register_supported_event(GEOMAGNETIC_RAW_DATA_EVENT); - register_supported_event(GEOMAGNETIC_UNPROCESSED_DATA_EVENT); - - physical_sensor::set_poller(geo_sensor::working, this); -} - -geo_sensor::~geo_sensor() -{ - INFO("geo_sensor is destroyed!\n"); -} - -bool geo_sensor::init() -{ - m_sensor_hal = sensor_plugin_loader::get_instance().get_sensor_hal(SENSOR_HAL_TYPE_GEOMAGNETIC); - - if (!m_sensor_hal) { - ERR("cannot load sensor_hal[%s]", sensor_base::get_name()); - return false; - } - - sensor_properties_s properties; - - if (m_sensor_hal->get_properties(properties) == false) { - ERR("sensor->get_properties() is failed!\n"); - return false; - } - - m_resolution = properties.resolution; - - INFO("%s is created!\n", sensor_base::get_name()); - - return true; -} - -void geo_sensor::get_types(vector &types) -{ - types.push_back(GEOMAGNETIC_SENSOR); -} - -bool geo_sensor::working(void *inst) -{ - geo_sensor *sensor = (geo_sensor*)inst; - return sensor->process_event(); -} - -bool geo_sensor::process_event(void) -{ - sensor_event_t event; - - if (!m_sensor_hal->is_data_ready()) - return true; - - m_sensor_hal->get_sensor_data(event.data); - - AUTOLOCK(m_client_info_mutex); - AUTOLOCK(m_mutex); - - if (get_client_cnt(GEOMAGNETIC_UNPROCESSED_DATA_EVENT)) { - event.sensor_id = get_id(); - event.event_type = GEOMAGNETIC_UNPROCESSED_DATA_EVENT; - push(event); - } - - if (get_client_cnt(GEOMAGNETIC_RAW_DATA_EVENT)) { - event.sensor_id = get_id(); - event.event_type = GEOMAGNETIC_RAW_DATA_EVENT; - raw_to_base(event.data); - push(event); - } - - return true; -} - -bool geo_sensor::on_start(void) -{ - if (!m_sensor_hal->enable()) { - ERR("m_sensor_hal start fail\n"); - return false; - } - - return start_poll(); -} - -bool geo_sensor::on_stop(void) -{ - if (!m_sensor_hal->disable()) { - ERR("m_sensor_hal stop fail\n"); - return false; - } - - return stop_poll(); -} - -bool geo_sensor::get_properties(sensor_type_t sensor_type, sensor_properties_s &properties) -{ - return m_sensor_hal->get_properties(properties); -} - -int geo_sensor::get_sensor_data(unsigned int type, sensor_data_t &data) -{ - int state; - - if (type != GEOMAGNETIC_RAW_DATA_EVENT) - return -1; - - state = m_sensor_hal->get_sensor_data(data); - raw_to_base(data); - - if (state < 0) { - ERR("m_sensor_hal get struct_data fail\n"); - return -1; - } - - return 0; -} - -bool geo_sensor::set_interval(unsigned long interval) -{ - AUTOLOCK(m_mutex); - - INFO("Polling interval is set to %dms", interval); - - return m_sensor_hal->set_interval(interval); -} - -void geo_sensor::raw_to_base(sensor_data_t &data) -{ - data.value_count = 3; - data.values[0] = data.values[0] * m_resolution; - data.values[1] = data.values[1] * m_resolution; - data.values[2] = data.values[2] * m_resolution; -} diff --git a/src/server/plugins/geo/geo_sensor.h b/src/server/plugins/geo/geo_sensor.h deleted file mode 100755 index df1e2c3..0000000 --- a/src/server/plugins/geo/geo_sensor.h +++ /dev/null @@ -1,53 +0,0 @@ -/* - * sensord - * - * Copyright (c) 2014 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 _GEO_SENSOR_H_ -#define _GEO_SENSOR_H_ - -#include - -#include -#include - -class geo_sensor : public physical_sensor { -public: - geo_sensor(); - virtual ~geo_sensor(); - - virtual bool init(); - virtual void get_types(std::vector &types); - - static bool working(void *inst); - - virtual bool set_interval(unsigned long interval); - int get_sensor_data(unsigned int type, sensor_data_t &data); - virtual bool get_properties(sensor_type_t sensor_type, sensor_properties_s &properties); -private: - sensor_hal *m_sensor_hal; - - float m_resolution; - - virtual bool on_start(void); - virtual bool on_stop(void); - bool process_event(void); - void raw_to_base(sensor_data_t &data); -}; - -#endif - diff --git a/src/server/plugins/gyro/gyro_sensor.cpp b/src/server/plugins/gyro/gyro_sensor.cpp deleted file mode 100755 index 5fa0f68..0000000 --- a/src/server/plugins/gyro/gyro_sensor.cpp +++ /dev/null @@ -1,172 +0,0 @@ -/* - * sensord - * - * Copyright (c) 2014 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. - * - */ - -#include -#include - -#include -#include - -using std::string; -using std::vector; - -#define MS_TO_US 1000 -#define DPS_TO_MDPS 1000 -#define RAW_DATA_TO_DPS_UNIT(X) ((float)(X)/((float)DPS_TO_MDPS)) - -#define SENSOR_NAME "GYROSCOPE_SENSOR" - -gyro_sensor::gyro_sensor() -: m_sensor_hal(NULL) -, m_resolution(0.0f) -{ - m_name = string(SENSOR_NAME); - - register_supported_event(GYROSCOPE_RAW_DATA_EVENT); - register_supported_event(GYROSCOPE_UNPROCESSED_DATA_EVENT); - - physical_sensor::set_poller(gyro_sensor::working, this); -} - -gyro_sensor::~gyro_sensor() -{ - INFO("gyro_sensor is destroyed!\n"); -} - -bool gyro_sensor::init() -{ - m_sensor_hal = sensor_plugin_loader::get_instance().get_sensor_hal(SENSOR_HAL_TYPE_GYROSCOPE); - - if (!m_sensor_hal) { - ERR("cannot load sensor_hal[%s]", sensor_base::get_name()); - return false; - } - - sensor_properties_s properties; - - if (m_sensor_hal->get_properties(properties) == false) { - ERR("sensor->get_properties() is failed!\n"); - return false; - } - - m_resolution = properties.resolution; - - INFO("%s is created!\n", sensor_base::get_name()); - - return true; -} - -void gyro_sensor::get_types(vector &types) -{ - types.push_back(GYROSCOPE_SENSOR); -} - -bool gyro_sensor::working(void *inst) -{ - gyro_sensor *sensor = (gyro_sensor*)inst; - return sensor->process_event();; -} - -bool gyro_sensor::process_event(void) -{ - sensor_event_t event; - - if (m_sensor_hal->is_data_ready() == false) - return true; - - m_sensor_hal->get_sensor_data(event.data); - - AUTOLOCK(m_client_info_mutex); - - if (get_client_cnt(GYROSCOPE_UNPROCESSED_DATA_EVENT)) { - event.sensor_id = get_id(); - event.event_type = GYROSCOPE_UNPROCESSED_DATA_EVENT; - push(event); - } - - if (get_client_cnt(GYROSCOPE_RAW_DATA_EVENT)) { - event.sensor_id = get_id(); - event.event_type = GYROSCOPE_RAW_DATA_EVENT; - raw_to_base(event.data); - push(event); - } - - return true; -} - -bool gyro_sensor::on_start(void) -{ - if (!m_sensor_hal->enable()) { - ERR("m_sensor_hal start fail\n"); - return false; - } - - return start_poll(); -} - -bool gyro_sensor::on_stop(void) -{ - if (!m_sensor_hal->disable()) { - ERR("m_sensor_hal stop fail\n"); - return false; - } - - return stop_poll(); -} - -bool gyro_sensor::get_properties(sensor_type_t sensor_type, sensor_properties_s &properties) -{ - return m_sensor_hal->get_properties(properties); -} - -int gyro_sensor::get_sensor_data(unsigned int type, sensor_data_t &data) -{ - int state; - - if (type != GYROSCOPE_RAW_DATA_EVENT) - return -1; - - state = m_sensor_hal->get_sensor_data(data); - - if (state < 0) { - ERR("m_sensor_hal get struct_data fail\n"); - return -1; - } - - raw_to_base(data); - - return 0; -} - -bool gyro_sensor::set_interval(unsigned long interval) -{ - AUTOLOCK(m_mutex); - - INFO("Polling interval is set to %dms", interval); - - return m_sensor_hal->set_interval(interval); -} - -void gyro_sensor::raw_to_base(sensor_data_t &data) -{ - data.value_count = 3; - data.values[0] = data.values[0] * m_resolution; - data.values[1] = data.values[1] * m_resolution; - data.values[2] = data.values[2] * m_resolution; -} diff --git a/src/server/plugins/gyro/gyro_sensor.h b/src/server/plugins/gyro/gyro_sensor.h deleted file mode 100755 index 81bcb7b..0000000 --- a/src/server/plugins/gyro/gyro_sensor.h +++ /dev/null @@ -1,51 +0,0 @@ -/* - * sensord - * - * Copyright (c) 2014 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 _GYRO_SENSOR_H_ -#define _GYRO_SENSOR_H_ - -#include - -#include -#include - -class gyro_sensor : public physical_sensor { -public: - gyro_sensor(); - virtual ~gyro_sensor(); - - virtual bool init(); - virtual void get_types(std::vector &types); - - static bool working(void *inst); - - virtual bool set_interval(unsigned long interval); - int get_sensor_data(unsigned int type, sensor_data_t &data); - virtual bool get_properties(sensor_type_t sensor_type, sensor_properties_s &properties); -private: - sensor_hal *m_sensor_hal; - float m_resolution; - - virtual bool on_start(void); - virtual bool on_stop(void); - void raw_to_base(sensor_data_t &data); - bool process_event(void); -}; - -#endif diff --git a/src/server/plugins/gyroscope_uncal/gyroscope_uncal_sensor.cpp b/src/server/plugins/gyroscope_uncal/gyroscope_uncal_sensor.cpp deleted file mode 100755 index cd1ff15..0000000 --- a/src/server/plugins/gyroscope_uncal/gyroscope_uncal_sensor.cpp +++ /dev/null @@ -1,303 +0,0 @@ -/* - * sensord - * - * Copyright (c) 2015 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. - * - */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -using std::vector; -using std::string; - -#define SENSOR_NAME "GYROSCOPE_UNCAL_SENSOR" -#define SENSOR_TYPE_GYROSCOPE_UNCAL "GYROSCOPE_UNCAL" - -#define GYROSCOPE_ENABLED 0x01 -#define GYRO_BIAS_ENABLED 0x02 -#define GYROSCOPE_UNCAL_BIAS_ENABLED 3 - -#define INITIAL_VALUE -1 - -#define MS_TO_US 1000 -#define MIN_DELIVERY_DIFF_FACTOR 0.75f - -#define PI 3.141593 -#define AZIMUTH_OFFSET_DEGREES 360 -#define AZIMUTH_OFFSET_RADIANS (2 * PI) - -#define ELEMENT_NAME "NAME" -#define ELEMENT_VENDOR "VENDOR" -#define ELEMENT_RAW_DATA_UNIT "RAW_DATA_UNIT" -#define ELEMENT_DEFAULT_SAMPLING_TIME "DEFAULT_SAMPLING_TIME" - -gyroscope_uncal_sensor::gyroscope_uncal_sensor() -: m_accel_sensor(NULL) -, m_magnetic_sensor(NULL) -, m_gyro_sensor(NULL) -, m_fusion_sensor(NULL) -, m_time(0) -{ - cvirtual_sensor_config &config = cvirtual_sensor_config::get_instance(); - - sensor_hal *fusion_sensor_hal = sensor_plugin_loader::get_instance().get_sensor_hal(SENSOR_HAL_TYPE_FUSION); - if (!fusion_sensor_hal) - m_hardware_fusion = false; - else - m_hardware_fusion = true; - - m_name = string(SENSOR_NAME); - register_supported_event(GYROSCOPE_UNCAL_RAW_DATA_EVENT); - - if (!config.get(SENSOR_TYPE_GYROSCOPE_UNCAL, ELEMENT_VENDOR, m_vendor)) { - ERR("[VENDOR] is empty\n"); - throw ENXIO; - } - - INFO("m_vendor = %s", m_vendor.c_str()); - - if (!config.get(SENSOR_TYPE_GYROSCOPE_UNCAL, ELEMENT_RAW_DATA_UNIT, m_raw_data_unit)) { - ERR("[RAW_DATA_UNIT] is empty\n"); - throw ENXIO; - } - - INFO("m_raw_data_unit = %s", m_raw_data_unit.c_str()); - - if (!config.get(SENSOR_TYPE_GYROSCOPE_UNCAL, ELEMENT_DEFAULT_SAMPLING_TIME, &m_default_sampling_time)) { - ERR("[DEFAULT_SAMPLING_TIME] is empty\n"); - throw ENXIO; - } - - INFO("m_default_sampling_time = %d", m_default_sampling_time); - - m_interval = m_default_sampling_time * MS_TO_US; -} - -gyroscope_uncal_sensor::~gyroscope_uncal_sensor() -{ - INFO("gyroscope_uncal_sensor is destroyed!\n"); -} - -bool gyroscope_uncal_sensor::init(void) -{ - m_accel_sensor = sensor_plugin_loader::get_instance().get_sensor(ACCELEROMETER_SENSOR); - m_gyro_sensor = sensor_plugin_loader::get_instance().get_sensor(GYROSCOPE_SENSOR); - m_magnetic_sensor = sensor_plugin_loader::get_instance().get_sensor(GEOMAGNETIC_SENSOR); - - m_fusion_sensor = sensor_plugin_loader::get_instance().get_sensor(FUSION_SENSOR); - - if (!m_accel_sensor || !m_gyro_sensor || !m_magnetic_sensor || !m_fusion_sensor) { - ERR("Failed to load sensors, accel: 0x%x, gyro: 0x%x, mag: 0x%x, fusion: 0x%x", - m_accel_sensor, m_gyro_sensor, m_magnetic_sensor, m_fusion_sensor); - return false; - } - - INFO("%s is created!\n", sensor_base::get_name()); - - return true; -} - -void gyroscope_uncal_sensor::get_types(vector &types) -{ - types.push_back(GYROSCOPE_UNCAL_SENSOR); -} - -bool gyroscope_uncal_sensor::on_start(void) -{ - AUTOLOCK(m_mutex); - - if (!m_hardware_fusion) { - m_accel_sensor->add_client(ACCELEROMETER_RAW_DATA_EVENT); - m_accel_sensor->add_interval((intptr_t)this, (m_interval/MS_TO_US), false); - m_accel_sensor->start(); - m_gyro_sensor->add_client(GYROSCOPE_RAW_DATA_EVENT); - m_gyro_sensor->add_interval((intptr_t)this, (m_interval/MS_TO_US), false); - m_gyro_sensor->start(); - m_magnetic_sensor->add_client(GEOMAGNETIC_RAW_DATA_EVENT); - m_magnetic_sensor->add_interval((intptr_t)this, (m_interval/MS_TO_US), false); - m_magnetic_sensor->start(); - } - - m_fusion_sensor->register_supported_event(FUSION_GYROSCOPE_UNCAL_EVENT); - m_fusion_sensor->register_supported_event(FUSION_GYROSCOPE_UNCAL_ENABLED); - m_fusion_sensor->add_client(FUSION_GYROSCOPE_UNCAL_EVENT); - m_fusion_sensor->add_interval((intptr_t)this, (m_interval/MS_TO_US), false); - m_fusion_sensor->start(); - - activate(); - return true; -} - -bool gyroscope_uncal_sensor::on_stop(void) -{ - AUTOLOCK(m_mutex); - - if (!m_hardware_fusion) { - m_accel_sensor->delete_client(ACCELEROMETER_RAW_DATA_EVENT); - m_accel_sensor->delete_interval((intptr_t)this, false); - m_accel_sensor->stop(); - m_gyro_sensor->delete_client(GYROSCOPE_RAW_DATA_EVENT); - m_gyro_sensor->delete_interval((intptr_t)this, false); - m_gyro_sensor->stop(); - m_magnetic_sensor->delete_client(GEOMAGNETIC_RAW_DATA_EVENT); - m_magnetic_sensor->delete_interval((intptr_t)this, false); - m_magnetic_sensor->stop(); - } - - m_fusion_sensor->delete_client(FUSION_GYROSCOPE_UNCAL_EVENT); - m_fusion_sensor->delete_interval((intptr_t)this, false); - m_fusion_sensor->unregister_supported_event(FUSION_GYROSCOPE_UNCAL_EVENT); - m_fusion_sensor->unregister_supported_event(FUSION_GYROSCOPE_UNCAL_ENABLED); - m_fusion_sensor->stop(); - - deactivate(); - return true; -} - -bool gyroscope_uncal_sensor::add_interval(int client_id, unsigned int interval) -{ - AUTOLOCK(m_mutex); - - if (!m_hardware_fusion) { - m_accel_sensor->add_interval(client_id, interval, false); - m_gyro_sensor->add_interval(client_id, interval, false); - m_magnetic_sensor->add_interval(client_id, interval, false); - } - - m_fusion_sensor->add_interval(client_id, interval, false); - - return sensor_base::add_interval(client_id, interval, false); -} - -bool gyroscope_uncal_sensor::delete_interval(int client_id) -{ - AUTOLOCK(m_mutex); - - if (!m_hardware_fusion) { - m_accel_sensor->delete_interval(client_id, false); - m_gyro_sensor->delete_interval(client_id, false); - m_magnetic_sensor->delete_interval(client_id, false); - } - - m_fusion_sensor->delete_interval(client_id, false); - - return sensor_base::delete_interval(client_id, false); -} - -void gyroscope_uncal_sensor::synthesize(const sensor_event_t &event, vector &outs) -{ - sensor_event_t gyroscope_uncal_event; - unsigned long long diff_time; - - if (event.event_type == GYROSCOPE_RAW_DATA_EVENT) { - diff_time = event.data.timestamp - m_time; - - if (m_time && (diff_time < m_interval * MIN_DELIVERY_DIFF_FACTOR)) - return; - - m_gyro.m_data.m_vec[0] = event.data.values[0]; - m_gyro.m_data.m_vec[1] = event.data.values[1]; - m_gyro.m_data.m_vec[2] = event.data.values[2]; - - m_gyro.m_time_stamp = event.data.timestamp; - - m_enable_gyroscope_uncal |= GYROSCOPE_ENABLED; - } - - if (event.event_type == FUSION_GYROSCOPE_UNCAL_EVENT) { - diff_time = event.data.timestamp - m_time; - - if (m_time && (diff_time < m_interval * MIN_DELIVERY_DIFF_FACTOR)) - return; - - m_fusion.m_data.m_vec[0] = event.data.values[0]; - m_fusion.m_data.m_vec[1] = event.data.values[1]; - m_fusion.m_data.m_vec[2] = event.data.values[2]; - - m_fusion.m_time_stamp = event.data.timestamp; - - m_enable_gyroscope_uncal |= GYRO_BIAS_ENABLED; - } - - if (m_enable_gyroscope_uncal == GYROSCOPE_UNCAL_BIAS_ENABLED) { - m_enable_gyroscope_uncal = 0; - - m_time = get_timestamp(); - gyroscope_uncal_event.sensor_id = get_id(); - gyroscope_uncal_event.event_type = GYROSCOPE_UNCAL_RAW_DATA_EVENT; - gyroscope_uncal_event.data.value_count = 6; - gyroscope_uncal_event.data.timestamp = m_time; - gyroscope_uncal_event.data.accuracy = SENSOR_ACCURACY_GOOD; - gyroscope_uncal_event.data.values[0] = m_gyro.m_data.m_vec[0]; - gyroscope_uncal_event.data.values[1] = m_gyro.m_data.m_vec[1]; - gyroscope_uncal_event.data.values[2] = m_gyro.m_data.m_vec[2]; - - gyroscope_uncal_event.data.values[3] = m_fusion.m_data.m_vec[0]; - gyroscope_uncal_event.data.values[4] = m_fusion.m_data.m_vec[1]; - gyroscope_uncal_event.data.values[5] = m_fusion.m_data.m_vec[2]; - - push(gyroscope_uncal_event); - } - - return; -} - -int gyroscope_uncal_sensor::get_sensor_data(const unsigned int event_type, sensor_data_t &data) -{ - sensor_data_t fusion_data, gyro_data; - - if (event_type != GYROSCOPE_UNCAL_RAW_DATA_EVENT) - return -1; - - m_fusion_sensor->get_sensor_data(FUSION_GYROSCOPE_UNCAL_ENABLED, fusion_data); - m_gyro_sensor->get_sensor_data(GYROSCOPE_RAW_DATA_EVENT, gyro_data); - - data.accuracy = fusion_data.accuracy; - data.timestamp = get_timestamp(); - data.value_count = 6; - data.values[0] = gyro_data.values[0]; - data.values[1] = gyro_data.values[1]; - data.values[2] = gyro_data.values[2]; - data.values[3] = fusion_data.values[0]; - data.values[4] = fusion_data.values[1]; - data.values[5] = fusion_data.values[2]; - - return 0; -} - -bool gyroscope_uncal_sensor::get_properties(sensor_type_t sensor_type, sensor_properties_s &properties) -{ - properties.resolution = 0.000001; - properties.vendor = m_vendor; - properties.name = SENSOR_NAME; - properties.min_interval = 1; - properties.fifo_count = 0; - properties.max_batch_count = 0; - - return true; -} diff --git a/src/server/plugins/gyroscope_uncal/gyroscope_uncal_sensor.h b/src/server/plugins/gyroscope_uncal/gyroscope_uncal_sensor.h deleted file mode 100755 index 0edbde4..0000000 --- a/src/server/plugins/gyroscope_uncal/gyroscope_uncal_sensor.h +++ /dev/null @@ -1,70 +0,0 @@ -/* - * sensord - * - * Copyright (c) 2015 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 _GYROSCOPE_UNCAL_SENSOR_H_ -#define _GYROSCOPE_UNCAL_SENSOR_H_ - -#include -#include -#include - -class gyroscope_uncal_sensor : public virtual_sensor { -public: - gyroscope_uncal_sensor(); - virtual ~gyroscope_uncal_sensor(); - - bool init(void); - - void synthesize(const sensor_event_t &event, vector &outs); - - bool add_interval(int client_id, unsigned int interval); - bool delete_interval(int client_id); - virtual bool get_properties(sensor_type_t sensor_type, sensor_properties_s &properties); - virtual void get_types(std::vector &types); - - int get_sensor_data(const unsigned int event_type, sensor_data_t &data); - -private: - sensor_base *m_accel_sensor; - sensor_base *m_magnetic_sensor; - sensor_base *m_gyro_sensor; - sensor_base *m_fusion_sensor; - - sensor_data m_fusion; - sensor_data m_gyro; - - cmutex m_value_mutex; - - unsigned int m_enable_gyroscope_uncal; - - unsigned long long m_time; - unsigned int m_interval; - - std::string m_vendor; - std::string m_raw_data_unit; - int m_default_sampling_time; - float m_gyro_static_bias[3]; - int m_gyro_rotation_direction_compensation[3]; - float m_gyro_scale; - - bool on_start(void); - bool on_stop(void); -}; - -#endif /*_GYROSCOPE_UNCAL_SENSOR_H_*/ diff --git a/src/server/plugins/light/light_sensor.cpp b/src/server/plugins/light/light_sensor.cpp deleted file mode 100755 index b9e0dd0..0000000 --- a/src/server/plugins/light/light_sensor.cpp +++ /dev/null @@ -1,193 +0,0 @@ -/* - * sensord - * - * Copyright (c) 2014 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. - * - */ - -#include -#include -#include -#include -#include -#include - -using std::bind1st; -using std::mem_fun; -using std::string; -using std::vector; - -#define SENSOR_NAME "LIGHT_SENSOR" - -#define INITIAL_VALUE -1 -const int light_sensor::m_light_level[] = {0, 1, 165, 288, 497, 869, 1532, 2692, 4692, 8280, 21428, 65535, 137852}; - -light_sensor::light_sensor() -: m_sensor_hal(NULL) -, m_level(INITIAL_VALUE) -{ - m_name = string(SENSOR_NAME); - - vector supported_events = { - LIGHT_CHANGE_LEVEL_EVENT, - LIGHT_LEVEL_DATA_EVENT, - LIGHT_LUX_DATA_EVENT, - }; - - for_each(supported_events.begin(), supported_events.end(), - bind1st(mem_fun(&sensor_base::register_supported_event), this)); - - physical_sensor::set_poller(light_sensor::working, this); -} - -light_sensor::~light_sensor() -{ - INFO("light_sensor is destroyed!"); -} - -bool light_sensor::init() -{ - m_sensor_hal = sensor_plugin_loader::get_instance().get_sensor_hal(SENSOR_HAL_TYPE_LIGHT); - - if (!m_sensor_hal) { - ERR("cannot load sensor_hal[%s]", sensor_base::get_name()); - return false; - } - - INFO("%s is created!", sensor_base::get_name()); - - return true; -} - -void light_sensor::get_types(vector &types) -{ - types.push_back(LIGHT_SENSOR); -} - -bool light_sensor::working(void *inst) -{ - light_sensor *sensor = (light_sensor *)inst; - return sensor->process_event(); -} - -bool light_sensor::process_event(void) -{ - sensor_event_t event; - int level; - - if (!m_sensor_hal->is_data_ready()) - return true; - - m_sensor_hal->get_sensor_data(event.data); - level = (int) adc_to_light_level((int)event.data.values[0]); - - AUTOLOCK(m_client_info_mutex); - - event.sensor_id = get_id(); - if (get_client_cnt(LIGHT_LUX_DATA_EVENT)) { - event.event_type = LIGHT_LUX_DATA_EVENT; - push(event); - } - - if (get_client_cnt(LIGHT_LEVEL_DATA_EVENT)) { - event.event_type = LIGHT_LEVEL_DATA_EVENT; - raw_to_level(event.data); - push(event); - } - - if (m_level != level) { - m_level = level; - - if (get_client_cnt(LIGHT_CHANGE_LEVEL_EVENT)) { - event.event_type = LIGHT_CHANGE_LEVEL_EVENT; - raw_to_level(event.data); - push(event); - } - } - - return true; -} - -int light_sensor::adc_to_light_level(int adc) -{ - int level_cnt = sizeof(m_light_level) / sizeof(m_light_level[0]) - 1; - - for (int i = 0; i < level_cnt; ++i) { - if (adc >= m_light_level[i] && adc < m_light_level[i + 1]) - return i; - } - - return -1; -} - -bool light_sensor::on_start(void) -{ - if (!m_sensor_hal->enable()) { - ERR("m_sensor_hal start fail"); - return false; - } - - return start_poll(); -} - -bool light_sensor::on_stop(void) -{ - if (!m_sensor_hal->disable()) { - ERR("m_sensor_hal stop fail"); - return false; - } - - return stop_poll(); -} - -bool light_sensor::get_properties(sensor_type_t sensor_type, sensor_properties_s &properties) -{ - m_sensor_hal->get_properties(properties); - return true; -} - -int light_sensor::get_sensor_data(unsigned int type, sensor_data_t &data) -{ - int ret; - ret = m_sensor_hal->get_sensor_data(data); - - if (ret < 0) - return -1; - - if (type == LIGHT_LUX_DATA_EVENT) - return 0; - - if (type == LIGHT_LEVEL_DATA_EVENT) { - raw_to_level(data); - return 0; - } - - return -1; -} - -bool light_sensor::set_interval(unsigned long interval) -{ - AUTOLOCK(m_mutex); - - INFO("Polling interval is set to %dms", interval); - - return m_sensor_hal->set_interval(interval); -} - -void light_sensor::raw_to_level(sensor_data_t &data) -{ - data.values[0] = (int) adc_to_light_level((int)data.values[0]); - data.value_count = 1; -} diff --git a/src/server/plugins/light/light_sensor.h b/src/server/plugins/light/light_sensor.h deleted file mode 100755 index 1b6d0ca..0000000 --- a/src/server/plugins/light/light_sensor.h +++ /dev/null @@ -1,55 +0,0 @@ -/* - * sensord - * - * Copyright (c) 2014 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 _LIGHT_SENSOR_H_ -#define _LIGHT_SENSOR_H_ - -#include -#include -#include - -class light_sensor : public physical_sensor { -public: - light_sensor(); - virtual ~light_sensor(); - - virtual bool init(); - virtual void get_types(std::vector &types); - - static bool working(void *inst); - - virtual bool set_interval(unsigned long interval); - int get_sensor_data(const unsigned int type, sensor_data_t &data); - virtual bool get_properties(sensor_type_t sensor_type, sensor_properties_s &properties); -private: - static const int m_light_level[]; - - sensor_hal *m_sensor_hal; - int m_level; - - virtual bool on_start(void); - virtual bool on_stop(void); - - bool process_event(void); - int adc_to_light_level(int adc); - - void raw_to_level(sensor_data_t &data); - void raw_to_state(sensor_data_t &data); -}; -#endif /*_LIGHT_SENSOR_H_*/ diff --git a/src/server/plugins/pressure/pressure_sensor.cpp b/src/server/plugins/pressure/pressure_sensor.cpp deleted file mode 100755 index 533bb71..0000000 --- a/src/server/plugins/pressure/pressure_sensor.cpp +++ /dev/null @@ -1,146 +0,0 @@ -/* - * sensord - * - * Copyright (c) 2014 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. - * - */ - -#include -#include -#include -#include - -using std::bind1st; -using std::mem_fun; -using std::string; -using std::vector; - -#define SENSOR_NAME "PRESSURE_SENSOR" -#define SENSOR_TYPE_PRESSURE "PRESSURE" -#define ELEMENT_NAME "NAME" -#define ELEMENT_VENDOR "VENDOR" -#define ATTR_VALUE "value" - -pressure_sensor::pressure_sensor() -: m_sensor_hal(NULL) -, m_pressure(0.0f) -, m_resolution(0.0f) -{ - m_name = string(SENSOR_NAME); - - register_supported_event(PRESSURE_RAW_DATA_EVENT); - - physical_sensor::set_poller(pressure_sensor::working, this); -} - -pressure_sensor::~pressure_sensor() -{ - INFO("pressure_sensor is destroyed!"); -} - -bool pressure_sensor::init() -{ - m_sensor_hal = sensor_plugin_loader::get_instance().get_sensor_hal(SENSOR_HAL_TYPE_PRESSURE); - - if (!m_sensor_hal) { - ERR("cannot load sensor_hal[%s]", sensor_base::get_name()); - return false; - } - - sensor_properties_s properties; - - if (!m_sensor_hal->get_properties(properties)) { - ERR("sensor->get_properties() is failed!\n"); - return false; - } - - m_resolution = properties.resolution; - - string model_id = m_sensor_hal->get_model_id(); - - INFO("%s is created!", sensor_base::get_name()); - - return true; -} - -void pressure_sensor::get_types(vector &types) -{ - types.push_back(PRESSURE_SENSOR); -} - -bool pressure_sensor::working(void *inst) -{ - pressure_sensor *sensor = (pressure_sensor*)inst; - return sensor->process_event(); -} - -bool pressure_sensor::process_event(void) -{ - sensor_event_t event; - - if (!m_sensor_hal->is_data_ready()) - return true; - - m_sensor_hal->get_sensor_data(event.data); - - AUTOLOCK(m_client_info_mutex); - - if (get_client_cnt(PRESSURE_RAW_DATA_EVENT)) { - event.sensor_id = get_id(); - event.event_type = PRESSURE_RAW_DATA_EVENT; - push(event); - } - - return true; -} - -bool pressure_sensor::on_start(void) -{ - if (!m_sensor_hal->enable()) { - ERR("m_sensor_hal start fail\n"); - return false; - } - - return start_poll(); -} - -bool pressure_sensor::on_stop(void) -{ - if (!m_sensor_hal->disable()) { - ERR("m_sensor_hal stop fail\n"); - return false; - } - - return stop_poll(); -} - -bool pressure_sensor::get_properties(sensor_type_t sensor_type, sensor_properties_s &properties) -{ - return m_sensor_hal->get_properties(properties); -} - -int pressure_sensor::get_sensor_data(unsigned int type, sensor_data_t &data) -{ - return m_sensor_hal->get_sensor_data(data); -} - -bool pressure_sensor::set_interval(unsigned long interval) -{ - AUTOLOCK(m_mutex); - - INFO("Polling interval is set to %dms", interval); - - return m_sensor_hal->set_interval(interval); -} diff --git a/src/server/plugins/pressure/pressure_sensor.h b/src/server/plugins/pressure/pressure_sensor.h deleted file mode 100755 index 9b7420f..0000000 --- a/src/server/plugins/pressure/pressure_sensor.h +++ /dev/null @@ -1,53 +0,0 @@ -/* - * sensord - * - * Copyright (c) 2014 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 _PRESSURE_SENSOR_H_ -#define _PRESSURE_SENSOR_H_ - -#include - -#include -#include - -class pressure_sensor : public physical_sensor { -public: - pressure_sensor(); - virtual ~pressure_sensor(); - - bool init(); - virtual void get_types(std::vector &types); - - static bool working(void *inst); - - bool set_interval(unsigned long interval); - int get_sensor_data(unsigned int type, sensor_data_t &data); - virtual bool get_properties(sensor_type_t sensor_type, sensor_properties_s &properties); - -private: - sensor_hal *m_sensor_hal; - float m_pressure; - float m_resolution; - - virtual bool on_start(void); - virtual bool on_stop(void); - bool process_event(void); - -}; - -#endif diff --git a/src/server/plugins/proxi/proxi_sensor.cpp b/src/server/plugins/proxi/proxi_sensor.cpp deleted file mode 100755 index edf82a2..0000000 --- a/src/server/plugins/proxi/proxi_sensor.cpp +++ /dev/null @@ -1,173 +0,0 @@ -/* - * sensord - * - * Copyright (c) 2014 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. - * - */ - -#include -#include -#include -#include - -using std::string; -using std::vector; - -#define SENSOR_NAME "PROXI_SENSOR" - -proxi_sensor::proxi_sensor() -: m_sensor_hal(NULL) -, m_state(PROXIMITY_STATE_FAR) -{ - m_name = string(SENSOR_NAME); - - register_supported_event(PROXIMITY_CHANGE_STATE_EVENT); - register_supported_event(PROXIMITY_STATE_EVENT); - register_supported_event(PROXIMITY_DISTANCE_DATA_EVENT); - - physical_sensor::set_poller(proxi_sensor::working, this); -} - -proxi_sensor::~proxi_sensor() -{ - INFO("proxi_sensor is destroyed!\n"); -} - -bool proxi_sensor::init() -{ - m_sensor_hal = sensor_plugin_loader::get_instance().get_sensor_hal(SENSOR_HAL_TYPE_PROXIMITY); - - if (!m_sensor_hal) { - ERR("cannot load sensor_hal[%s]", sensor_base::get_name()); - return false; - } - - INFO("%s is created!\n", sensor_base::get_name()); - return true; -} - -void proxi_sensor::get_types(vector &types) -{ - types.push_back(PROXIMITY_SENSOR); -} - -bool proxi_sensor::working(void *inst) -{ - proxi_sensor *sensor = (proxi_sensor*)inst; - return sensor->process_event(); -} - -bool proxi_sensor::process_event(void) -{ - sensor_event_t event; - int state; - - if (!m_sensor_hal->is_data_ready()) - return true; - - m_sensor_hal->get_sensor_data(event.data); - - AUTOLOCK(m_client_info_mutex); - AUTOLOCK(m_mutex); - - if (event.data.values[0] == PROXIMITY_NODE_STATE_FAR) { - INFO("PROXIMITY_STATE_FAR state occured\n"); - event.data.values[0] = PROXIMITY_STATE_FAR; - } else if (event.data.values[0] == PROXIMITY_NODE_STATE_NEAR) { - INFO("PROXIMITY_STATE_NEAR state occured\n"); - event.data.values[0] = PROXIMITY_STATE_NEAR; - } else { - ERR("PROXIMITY_STATE Unknown: %d\n",event.data.values[0]); - return false; - } - - event.sensor_id = get_id(); - if (get_client_cnt(PROXIMITY_DISTANCE_DATA_EVENT)) { - event.event_type = PROXIMITY_DISTANCE_DATA_EVENT; - raw_to_base(event.data); - push(event); - } - - state = event.data.values[0]; - - if (m_state != state) { - AUTOLOCK(m_value_mutex); - m_state = state; - - if (get_client_cnt(PROXIMITY_CHANGE_STATE_EVENT)) { - event.event_type = PROXIMITY_CHANGE_STATE_EVENT; - raw_to_base(event.data); - push(event); - } - } - - return true; -} - -bool proxi_sensor::on_start(void) -{ - if (!m_sensor_hal->enable()) { - ERR("m_sensor_hal start fail\n"); - return false; - } - - return start_poll(); -} - -bool proxi_sensor::on_stop(void) -{ - if (!m_sensor_hal->disable()) { - ERR("m_sensor_hal stop fail\n"); - return false; - } - - return stop_poll(); -} - -bool proxi_sensor::get_properties(sensor_type_t sensor_type, sensor_properties_s &properties) -{ - m_sensor_hal->get_properties(properties); - - properties.min_range = properties.min_range * 5; - properties.max_range = properties.max_range * 5; - - return true; -} - -int proxi_sensor::get_sensor_data(unsigned int type, sensor_data_t &data) -{ - int state; - - if ((type != PROXIMITY_CHANGE_STATE_EVENT) && (type != PROXIMITY_STATE_EVENT)) - return -1; - - state = m_sensor_hal->get_sensor_data(data); - - if (state < 0) { - ERR("m_sensor_hal get struct_data fail\n"); - return -1; - } - - raw_to_base(data); - - return 0; -} - -void proxi_sensor::raw_to_base(sensor_data_t &data) -{ - data.values[0] = (float)(data.values[0] * 5); - data.value_count = 1; -} - diff --git a/src/server/plugins/proxi/proxi_sensor.h b/src/server/plugins/proxi/proxi_sensor.h deleted file mode 100755 index 97e5dba..0000000 --- a/src/server/plugins/proxi/proxi_sensor.h +++ /dev/null @@ -1,68 +0,0 @@ -/* - * sensord - * - * Copyright (c) 2014 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 _PROXI_SENSOR_H_ -#define _PROXI_SENSOR_H_ - -#include -#include -#include - -class proxi_sensor : public physical_sensor { -public: - enum proxi_node_state_event_t { //changed as per Input Event Method definitions - PROXIMITY_NODE_STATE_NEAR = 0, - PROXIMITY_NODE_STATE_FAR = 1, - PROXIMITY_NODE_STATE_UNKNOWN = -1, - }; - -// In case of IIO input method, use the following definitions as the values returned by sensor are different. -// enum proxi_node_state_event_t { //changed as per IIO Method definitions -// PROXIMITY_NODE_STATE_NEAR = 1, -// PROXIMITY_NODE_STATE_FAR = 2, -// PROXIMITY_NODE_STATE_UNKNOWN = 0, -// }; - - proxi_sensor(); - virtual ~proxi_sensor(); - - bool init(); - virtual void get_types(std::vector &types); - - static bool working(void *inst); - - int get_sensor_data(unsigned int type, sensor_data_t &data); - virtual bool get_properties(sensor_type_t sensor_type, sensor_properties_s &properties); -private: - sensor_hal *m_sensor_hal; - - int m_state; - - cmutex m_value_mutex; - - - virtual bool on_start(void); - virtual bool on_stop(void); - - void raw_to_base(sensor_data_t &data); - void raw_to_state(sensor_data_t &data); - bool process_event(void); -}; - -#endif // _PROXI_SENSOR_H_ diff --git a/src/server/plugins/rotation_vector/rv_raw/rv_raw_sensor.cpp b/src/server/plugins/rotation_vector/rv_raw/rv_raw_sensor.cpp deleted file mode 100755 index e816baf..0000000 --- a/src/server/plugins/rotation_vector/rv_raw/rv_raw_sensor.cpp +++ /dev/null @@ -1,150 +0,0 @@ -/* - * sensord - * - * Copyright (c) 2014 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. - * - */ - -#include -#include -#include -#include -#include - -using std::string; -using std::vector; - -#define SENSOR_NAME "RV_RAW_SENSOR" - -rv_raw_sensor::rv_raw_sensor() -: m_sensor_hal(NULL) -{ - m_name = string(SENSOR_NAME); - - register_supported_event(RV_RAW_RAW_DATA_EVENT); - - physical_sensor::set_poller(rv_raw_sensor::working, this); -} - -rv_raw_sensor::~rv_raw_sensor() -{ - INFO("rv_raw_sensor is destroyed!\n"); -} - -bool rv_raw_sensor::init() -{ - m_sensor_hal = sensor_plugin_loader::get_instance().get_sensor_hal(SENSOR_HAL_TYPE_RV_RAW); - - if (!m_sensor_hal) { - ERR("cannot load sensor_hal[%s]", sensor_base::get_name()); - return false; - } - - sensor_properties_s properties; - - if (!m_sensor_hal->get_properties(properties)) { - ERR("sensor->get_properties() is failed!\n"); - return false; - } - - set_privilege(SENSOR_PRIVILEGE_INTERNAL); - - INFO("%s is created!\n", sensor_base::get_name()); - - return true; -} - -void rv_raw_sensor::get_types(vector &types) -{ - types.push_back(RV_RAW_SENSOR); -} - -bool rv_raw_sensor::working(void *inst) -{ - rv_raw_sensor *sensor = (rv_raw_sensor*)inst; - return sensor->process_event();; -} - -bool rv_raw_sensor::process_event(void) -{ - sensor_event_t event; - - if (!m_sensor_hal->is_data_ready()) - return true; - - m_sensor_hal->get_sensor_data(event.data); - - AUTOLOCK(m_client_info_mutex); - AUTOLOCK(m_mutex); - - if (get_client_cnt(RV_RAW_RAW_DATA_EVENT)) { - event.sensor_id = get_id(); - event.event_type = RV_RAW_RAW_DATA_EVENT; - push(event); - } - - return true; -} - -bool rv_raw_sensor::on_start(void) -{ - if (!m_sensor_hal->enable()) { - ERR("m_sensor_hal start fail\n"); - return false; - } - - return start_poll(); -} - -bool rv_raw_sensor::on_stop(void) -{ - if (!m_sensor_hal->disable()) { - ERR("m_sensor_hal stop fail\n"); - return false; - } - - return stop_poll(); -} - -bool rv_raw_sensor::get_properties(sensor_type_t sensor_type, sensor_properties_s &properties) -{ - return m_sensor_hal->get_properties(properties); -} - -int rv_raw_sensor::get_sensor_data(unsigned int type, sensor_data_t &data) -{ - int state; - - if (type != RV_RAW_RAW_DATA_EVENT) - return -1; - - state = m_sensor_hal->get_sensor_data(data); - - if (state < 0) { - ERR("m_sensor_hal get struct_data fail\n"); - return -1; - } - - return 0; -} - -bool rv_raw_sensor::set_interval(unsigned long interval) -{ - AUTOLOCK(m_mutex); - - INFO("Polling interval is set to %dms", interval); - - return m_sensor_hal->set_interval(interval); -} diff --git a/src/server/plugins/rotation_vector/rv_raw/rv_raw_sensor.h b/src/server/plugins/rotation_vector/rv_raw/rv_raw_sensor.h deleted file mode 100755 index f55d0a1..0000000 --- a/src/server/plugins/rotation_vector/rv_raw/rv_raw_sensor.h +++ /dev/null @@ -1,50 +0,0 @@ -/* - * sensord - * - * Copyright (c) 2014 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 _RV_RAW_SENSOR_H_ -#define _RV_RAW_SENSOR_H_ - -#include - -#include -#include - -class rv_raw_sensor : public physical_sensor { -public: - rv_raw_sensor(); - virtual ~rv_raw_sensor(); - - virtual bool init(); - virtual void get_types(std::vector &types); - - static bool working(void *inst); - - virtual bool set_interval(unsigned long interval); - int get_sensor_data(unsigned int type, sensor_data_t &data); - virtual bool get_properties(sensor_type_t sensor_type, sensor_properties_s &properties); -private: - sensor_hal *m_sensor_hal; - - virtual bool on_start(void); - virtual bool on_stop(void); - - bool process_event(void); -}; - -#endif /*_RV_RAW_SENSOR_H_*/ diff --git a/src/server/plugins/temperature/temperature_sensor.cpp b/src/server/plugins/temperature/temperature_sensor.cpp deleted file mode 100755 index 5b18a5b..0000000 --- a/src/server/plugins/temperature/temperature_sensor.cpp +++ /dev/null @@ -1,157 +0,0 @@ -/* - * sensord - * - * Copyright (c) 2014 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. - * - */ - -#include -#include -#include -#include - -using std::string; -using std::vector; - -#define SENSOR_NAME "TEMPERATURE_SENSOR" - -temperature_sensor::temperature_sensor() -: m_sensor_hal(NULL) -, m_temperature(0.0f) -, m_resolution(0.0f) -{ - m_name = string(SENSOR_NAME); - - register_supported_event(TEMPERATURE_RAW_DATA_EVENT); - - physical_sensor::set_poller(temperature_sensor::working, this); -} - -temperature_sensor::~temperature_sensor() -{ - INFO("temperature_sensor is destroyed!"); -} - -bool temperature_sensor::init() -{ - m_sensor_hal = sensor_plugin_loader::get_instance().get_sensor_hal(SENSOR_HAL_TYPE_TEMPERATURE); - - if (!m_sensor_hal) { - ERR("cannot load sensor_hal[%s]", sensor_base::get_name()); - return false; - } - - sensor_properties_s properties; - - if (!m_sensor_hal->get_properties(properties)) { - ERR("sensor->get_properties() is failed!\n"); - return false; - } - - m_resolution = properties.resolution; - - INFO("%s is created!", sensor_base::get_name()); - - return true; -} - -void temperature_sensor::get_types(vector &types) -{ - types.push_back(TEMPERATURE_SENSOR); -} - -bool temperature_sensor::working(void *inst) -{ - temperature_sensor *sensor = (temperature_sensor*)inst; - return sensor->process_event(); -} - -bool temperature_sensor::process_event(void) -{ - sensor_event_t event; - - if (!m_sensor_hal->is_data_ready()) - return true; - - m_sensor_hal->get_sensor_data(event.data); - - AUTOLOCK(m_client_info_mutex); - - if (get_client_cnt(TEMPERATURE_RAW_DATA_EVENT)) { - event.sensor_id = get_id(); - event.event_type = TEMPERATURE_RAW_DATA_EVENT; - raw_to_base(event.data); - push(event); - } - - return true; -} - -bool temperature_sensor::on_start(void) -{ - if (!m_sensor_hal->enable()) { - ERR("m_sensor_hal start fail\n"); - return false; - } - - return start_poll(); -} - -bool temperature_sensor::on_stop(void) -{ - if (!m_sensor_hal->disable()) { - ERR("m_sensor_hal stop fail\n"); - return false; - } - - return stop_poll(); -} - -bool temperature_sensor::get_properties(sensor_type_t sensor_type, sensor_properties_s &properties) -{ - return m_sensor_hal->get_properties(properties); -} - -int temperature_sensor::get_sensor_data(unsigned int type, sensor_data_t &data) -{ - int ret; - - ret = m_sensor_hal->get_sensor_data(data); - - if (ret < 0) - return -1; - - if (type == TEMPERATURE_RAW_DATA_EVENT) { - raw_to_base(data); - return 0; - } - - return -1; -} - -bool temperature_sensor::set_interval(unsigned long interval) -{ - AUTOLOCK(m_mutex); - - INFO("Polling interval is set to %dms", interval); - - return m_sensor_hal->set_interval(interval); -} - -void temperature_sensor::raw_to_base(sensor_data_t &data) -{ - data.values[0] = data.values[0] * m_resolution; - data.value_count = 1; -} diff --git a/src/server/plugins/temperature/temperature_sensor.h b/src/server/plugins/temperature/temperature_sensor.h deleted file mode 100755 index 680862d..0000000 --- a/src/server/plugins/temperature/temperature_sensor.h +++ /dev/null @@ -1,53 +0,0 @@ -/* - * sensord - * - * Copyright (c) 2014 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 _TEMPERATURE_SENSOR_H_ -#define _TEMPERATURE_SENSOR_H_ - -#include - -#include -#include - -class temperature_sensor : public physical_sensor { -public: - temperature_sensor(); - virtual ~temperature_sensor(); - - bool init(); - virtual void get_types(std::vector &types); - - static bool working(void *inst); - - bool set_interval(unsigned long interval); - int get_sensor_data(unsigned int type, sensor_data_t &data); - virtual bool get_properties(sensor_type_t sensor_type, sensor_properties_s &properties); - -private: - sensor_hal *m_sensor_hal; - float m_temperature; - float m_resolution; - - virtual bool on_start(void); - virtual bool on_stop(void); - bool process_event(void); - void raw_to_base(sensor_data_t &data); -}; - -#endif diff --git a/src/server/plugins/ultraviolet/ultraviolet_sensor.cpp b/src/server/plugins/ultraviolet/ultraviolet_sensor.cpp deleted file mode 100755 index 360eb95..0000000 --- a/src/server/plugins/ultraviolet/ultraviolet_sensor.cpp +++ /dev/null @@ -1,157 +0,0 @@ -/* - * sensord - * - * Copyright (c) 2014 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. - * - */ - -#include -#include - -#include -#include -#include - -using std::bind1st; -using std::mem_fun; -using std::string; -using std::vector; - -#define SENSOR_NAME "ULTRAVIOLET_SENSOR" - -ultraviolet_sensor::ultraviolet_sensor() -: m_sensor_hal(NULL) -{ - m_name = string(SENSOR_NAME); - - register_supported_event(ULTRAVIOLET_RAW_DATA_EVENT); - - physical_sensor::set_poller(ultraviolet_sensor::working, this); -} - -ultraviolet_sensor::~ultraviolet_sensor() -{ - INFO("ultraviolet_sensor is destroyed!"); -} - -bool ultraviolet_sensor::init() -{ - m_sensor_hal = sensor_plugin_loader::get_instance().get_sensor_hal(SENSOR_HAL_TYPE_ULTRAVIOLET); - - if (!m_sensor_hal) { - ERR("cannot load sensor_hal[%s]", sensor_base::get_name()); - return false; - } - - sensor_properties_s properties; - - if (m_sensor_hal->get_properties(properties) == false) { - ERR("sensor->get_properties() is failed!\n"); - return false; - } - - INFO("%s is created!", sensor_base::get_name()); - - return true; -} - -void ultraviolet_sensor::get_types(vector &types) -{ - types.push_back(ULTRAVIOLET_SENSOR); -} - -bool ultraviolet_sensor::working(void *inst) -{ - ultraviolet_sensor *sensor = (ultraviolet_sensor*)inst; - return sensor->process_event(); -} - -bool ultraviolet_sensor::process_event(void) -{ - sensor_event_t event; - - if (!m_sensor_hal->is_data_ready()) - return true; - - m_sensor_hal->get_sensor_data(event.data); - - - AUTOLOCK(m_client_info_mutex); - - if (get_client_cnt(ULTRAVIOLET_RAW_DATA_EVENT)) { - event.sensor_id = get_id(); - event.event_type = ULTRAVIOLET_RAW_DATA_EVENT; - raw_to_base(event.data); - push(event); - } - - return true; -} - -bool ultraviolet_sensor::on_start(void) -{ - if (!m_sensor_hal->enable()) { - ERR("m_sensor_hal start fail\n"); - return false; - } - - return start_poll(); -} - -bool ultraviolet_sensor::on_stop(void) -{ - if (!m_sensor_hal->disable()) { - ERR("m_sensor_hal stop fail\n"); - return false; - } - - return stop_poll(); -} - -bool ultraviolet_sensor::get_properties(sensor_type_t sensor_type, sensor_properties_s &properties) -{ - return m_sensor_hal->get_properties(properties); -} - -int ultraviolet_sensor::get_sensor_data(unsigned int type, sensor_data_t &data) -{ - int ret; - - ret = m_sensor_hal->get_sensor_data(data); - - if (ret < 0) - return -1; - - if (type == ULTRAVIOLET_RAW_DATA_EVENT) { - raw_to_base(data); - return 0; - } - - return -1; -} - -bool ultraviolet_sensor::set_interval(unsigned long interval) -{ - AUTOLOCK(m_mutex); - - INFO("Polling interval is set to %dms", interval); - - return m_sensor_hal->set_interval(interval); -} - -void ultraviolet_sensor::raw_to_base(sensor_data_t &data) -{ - -} diff --git a/src/server/plugins/ultraviolet/ultraviolet_sensor.h b/src/server/plugins/ultraviolet/ultraviolet_sensor.h deleted file mode 100755 index 3473db5..0000000 --- a/src/server/plugins/ultraviolet/ultraviolet_sensor.h +++ /dev/null @@ -1,50 +0,0 @@ -/* - * sensord - * - * Copyright (c) 2014 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 _ULTRAVIOLET_SENSOR_H_ -#define _ULTRAVIOLET_SENSOR_H_ - -#include - -#include -#include - -class ultraviolet_sensor : public physical_sensor { -public: - ultraviolet_sensor(); - virtual ~ultraviolet_sensor(); - - bool init(); - virtual void get_types(std::vector &types); - - static bool working(void *inst); - virtual bool set_interval(unsigned long interval); - virtual bool get_properties(sensor_type_t sensor_type, sensor_properties_s &properties); - virtual int get_sensor_data(unsigned int type, sensor_data_t &data); -private: - sensor_hal *m_sensor_hal; - - virtual bool on_start(void); - virtual bool on_stop(void); - bool process_event(void); - void raw_to_base(sensor_data_t &data); -}; - -#endif - -- 2.7.4 From 5f3c5d3a3225ba31940f95224e459e947769061b Mon Sep 17 00:00:00 2001 From: "kibak.yoon" Date: Thu, 21 Jan 2016 14:22:13 +0900 Subject: [PATCH 02/16] sensord: disable auto_rotation sensor for refactoring sensor fw Change-Id: Ib4b92dc82b6fcec276b2fba17dc9666c72aa7cba Signed-off-by: kibak.yoon --- src/server/sensor_plugin_loader.cpp.in | 140 +-------------------------------- 1 file changed, 2 insertions(+), 138 deletions(-) diff --git a/src/server/sensor_plugin_loader.cpp.in b/src/server/sensor_plugin_loader.cpp.in index d370c14..86b45c1 100644 --- a/src/server/sensor_plugin_loader.cpp.in +++ b/src/server/sensor_plugin_loader.cpp.in @@ -28,17 +28,7 @@ #include #include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - +/* #ifdef ENABLE_AUTO_ROTATION #include #endif @@ -69,7 +59,7 @@ #ifdef ENABLE_GYROSCOPE_UNCAL #include #endif - +*/ using std::make_pair; using std::equal; @@ -236,47 +226,6 @@ bool sensor_plugin_loader::load_plugins(void) ); - sensor_hal *accel_hal = get_sensor_hal(SENSOR_HAL_TYPE_ACCELEROMETER); - if (accel_hal != NULL) { - enable_virtual_sensor |= ACCELEROMETER_ENABLED; - - accel_sensor* accel_sensor_ptr = NULL; - try { - accel_sensor_ptr = new(std::nothrow) accel_sensor; - } catch (int err) { - ERR("Failed to create accel_sensor module, err: %d, cause: %s", err, strerror(err)); - } - if (accel_sensor_ptr != NULL) - sensors.push_back(accel_sensor_ptr); - } - - sensor_hal *gyro_hal = get_sensor_hal(SENSOR_HAL_TYPE_GYROSCOPE); - if (gyro_hal != NULL) { - enable_virtual_sensor |= GYROSCOPE_ENABLED; - - gyro_sensor* gyro_sensor_ptr = NULL; - try { - gyro_sensor_ptr = new(std::nothrow) gyro_sensor; - } catch (int err) { - ERR("Failed to create gyro_sensor module, err: %d, cause: %s", err, strerror(err)); - } - if (gyro_sensor_ptr != NULL) - sensors.push_back(gyro_sensor_ptr); - } - - sensor_hal *geo_hal = get_sensor_hal(SENSOR_HAL_TYPE_GEOMAGNETIC); - if (geo_hal != NULL) { - enable_virtual_sensor |= GEOMAGNETIC_ENABLED; - - geo_sensor* geo_sensor_ptr = NULL; - try { - geo_sensor_ptr = new(std::nothrow) geo_sensor; - } catch (int err) { - ERR("Failed to create geo_sensor module, err: %d, cause: %s", err, strerror(err)); - } - if (geo_sensor_ptr != NULL) - sensors.push_back(geo_sensor_ptr); - } #ifdef ENABLE_SENSOR_FUSION fusion_sensor* fusion_sensor_ptr = NULL; try { @@ -393,90 +342,6 @@ bool sensor_plugin_loader::load_plugins(void) sensors.push_back(geomagnetic_rv_sensor_ptr); } #endif - sensor_hal *light_hal = get_sensor_hal(SENSOR_HAL_TYPE_LIGHT); - if (light_hal != NULL) { - light_sensor* light_sensor_ptr = NULL; - try { - light_sensor_ptr = new(std::nothrow) light_sensor; - } catch (int err) { - ERR("Failed to create light_sensor module, err: %d, cause: %s", err, strerror(err)); - } - if (light_sensor_ptr != NULL) - sensors.push_back(light_sensor_ptr); - } - - sensor_hal *proxi_hal = get_sensor_hal(SENSOR_HAL_TYPE_PROXIMITY); - if (proxi_hal != NULL) { - proxi_sensor* proxi_sensor_ptr = NULL; - try { - proxi_sensor_ptr = new(std::nothrow) proxi_sensor; - } catch (int err) { - ERR("Failed to create proxi_sensor module, err: %d, cause: %s", err, strerror(err)); - } - if (proxi_sensor_ptr != NULL) - sensors.push_back(proxi_sensor_ptr); - } - - sensor_hal *pressure_hal = get_sensor_hal(SENSOR_HAL_TYPE_PRESSURE); - if (pressure_hal != NULL) { - pressure_sensor* pressure_sensor_ptr = NULL; - try { - pressure_sensor_ptr = new(std::nothrow) pressure_sensor; - } catch (int err) { - ERR("Failed to create pressure_sensor module, err: %d, cause: %s", err, strerror(err)); - } - if (pressure_sensor_ptr != NULL) - sensors.push_back(pressure_sensor_ptr); - } - - sensor_hal *temp_hal = get_sensor_hal(SENSOR_HAL_TYPE_TEMPERATURE); - if (temp_hal != NULL) { - temperature_sensor* temp_sensor_ptr = NULL; - try { - temp_sensor_ptr = new(std::nothrow) temperature_sensor; - } catch (int err) { - ERR("Failed to create temperature_sensor module, err: %d, cause: %s", err, strerror(err)); - } - if (temp_sensor_ptr != NULL) - sensors.push_back(temp_sensor_ptr); - } - - sensor_hal *ultra_hal = get_sensor_hal(SENSOR_HAL_TYPE_ULTRAVIOLET); - if (ultra_hal != NULL) { - ultraviolet_sensor* ultra_sensor_ptr = NULL; - try { - ultra_sensor_ptr = new(std::nothrow) ultraviolet_sensor; - } catch (int err) { - ERR("Failed to create ultraviolet_sensor module, err: %d, cause: %s", err, strerror(err)); - } - if (ultra_sensor_ptr != NULL) - sensors.push_back(ultra_sensor_ptr); - } - - sensor_hal *bio_led_red_hal = get_sensor_hal(SENSOR_HAL_TYPE_BIO_LED_RED); - if (bio_led_red_hal != NULL) { - bio_led_red_sensor* bio_led_red_sensor_ptr = NULL; - try { - bio_led_red_sensor_ptr = new(std::nothrow) bio_led_red_sensor; - } catch (int err) { - ERR("Failed to create bio_led_red_sensor module, err: %d, cause: %s", err, strerror(err)); - } - if (bio_led_red_sensor_ptr != NULL) - sensors.push_back(bio_led_red_sensor_ptr); - } - - sensor_hal *rv_raw_hal = get_sensor_hal(SENSOR_HAL_TYPE_RV_RAW); - if (rv_raw_hal != NULL) { - rv_raw_sensor* rv_raw_sensor_ptr = NULL; - try { - rv_raw_sensor_ptr = new(std::nothrow) rv_raw_sensor; - } catch (int err) { - ERR("Failed to create rv_raw_sensor module, err: %d, cause: %s", err, strerror(err)); - } - if (rv_raw_sensor_ptr != NULL) - sensors.push_back(rv_raw_sensor_ptr); - } - shared_ptr sensor; for (unsigned int i = 0; i < sensors.size(); ++i) { @@ -629,4 +494,3 @@ vector sensor_plugin_loader::get_virtual_sensors(void) return virtual_list; } - -- 2.7.4 From a95bf7e0924df18a72b48bc8add71474dab8f218 Mon Sep 17 00:00:00 2001 From: "kibak.yoon" Date: Thu, 21 Jan 2016 14:50:44 +0900 Subject: [PATCH 03/16] sensord: move poller to share library for using it commonly Change-Id: I7d04ffc339a787c64feba08b5d1e66143fd66103 Signed-off-by: kibak.yoon --- src/client/CMakeLists.txt | 2 -- src/client/csensor_event_listener.cpp | 6 +++--- src/client/csensor_event_listener.h | 3 ++- src/shared/CMakeLists.txt | 2 ++ src/{client => shared}/poller.cpp | 40 +++++++++++++++++------------------ src/{client => shared}/poller.h | 13 +++++------- 6 files changed, 32 insertions(+), 34 deletions(-) rename src/{client => shared}/poller.cpp (85%) rename src/{client => shared}/poller.h (83%) diff --git a/src/client/CMakeLists.txt b/src/client/CMakeLists.txt index e949a05..7653492 100755 --- a/src/client/CMakeLists.txt +++ b/src/client/CMakeLists.txt @@ -34,7 +34,6 @@ add_library(${PROJECT_NAME} SHARED csensor_handle_info.cpp client_common.cpp command_channel.cpp - poller.cpp ) target_link_libraries(${PROJECT_NAME} ${lib_pkgs_LDFLAGS} "sensord-shared") @@ -43,7 +42,6 @@ SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES VERSION ${VERSION}) configure_file(${PROJECT_NAME}.pc.in ${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}.pc @ONLY) install(TARGETS ${PROJECT_NAME} DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT RuntimeLibraries) -install(FILES poller.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/sensor/) install(FILES creg_event_info.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/sensor/) install(FILES csensor_event_listener.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/sensor/) install(FILES sensor_info_manager.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/sensor/) diff --git a/src/client/csensor_event_listener.cpp b/src/client/csensor_event_listener.cpp index 17a1dbb..6595309 100644 --- a/src/client/csensor_event_listener.cpp +++ b/src/client/csensor_event_listener.cpp @@ -391,7 +391,7 @@ gboolean csensor_event_listener::callback_dispatcher(gpointer data) -bool csensor_event_listener::sensor_event_poll(void* buffer, int buffer_len, int &event) +ssize_t csensor_event_listener::sensor_event_poll(void* buffer, int buffer_len, struct epoll_event &event) { ssize_t len; @@ -420,7 +420,7 @@ bool csensor_event_listener::sensor_event_poll(void* buffer, int buffer_len, int void csensor_event_listener::listen_events(void) { - int event; + struct epoll_event event; ssize_t len = -1; do { @@ -468,7 +468,7 @@ void csensor_event_listener::listen_events(void) INFO("Event listener thread is terminated."); - if (m_client_info.has_client_id() && (event & EPOLLHUP)) { + if (m_client_info.has_client_id() && (event.events & EPOLLHUP)) { if (m_hup_observer) m_hup_observer(); } diff --git a/src/client/csensor_event_listener.h b/src/client/csensor_event_listener.h index 21f28cf..72dc7e7 100644 --- a/src/client/csensor_event_listener.h +++ b/src/client/csensor_event_listener.h @@ -22,6 +22,7 @@ #include #include +#include #include #include #include @@ -104,7 +105,7 @@ private: bool create_event_channel(void); void close_event_channel(void); - bool sensor_event_poll(void* buffer, int buffer_len, int &event); + ssize_t sensor_event_poll(void* buffer, int buffer_len, struct epoll_event &event); void listen_events(void); client_callback_info* handle_calibration_cb(csensor_handle_info &handle_info, unsigned event_type, unsigned long long time, int accuracy); diff --git a/src/shared/CMakeLists.txt b/src/shared/CMakeLists.txt index cc46347..b648b2b 100644 --- a/src/shared/CMakeLists.txt +++ b/src/shared/CMakeLists.txt @@ -24,6 +24,7 @@ add_library(${PROJECT_NAME} SHARED csocket.cpp sensor_logs.cpp sensor_info.cpp + poller.cpp ) target_link_libraries(${PROJECT_NAME} ${shared_pkgs_LDFLAGS} "-lrt -ldl -pthread") @@ -35,6 +36,7 @@ install(FILES csocket.h cbase_lock.h sensor_info.h + poller.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${PROJECT_NAME} ) diff --git a/src/client/poller.cpp b/src/shared/poller.cpp similarity index 85% rename from src/client/poller.cpp rename to src/shared/poller.cpp index e174caf..d2861ad 100755 --- a/src/client/poller.cpp +++ b/src/shared/poller.cpp @@ -20,16 +20,27 @@ #include #include +#define EPOLL_MAX 32 + +poller::poller() +{ + m_epfd = epoll_create(EPOLL_MAX); +} + poller::poller(int fd) -: m_epfd(-1) +: poller() { - create(fd); + add_fd(fd); } -bool poller::create(int fd) +poller::~poller() { - m_epfd = epoll_create(1); + if (m_epfd) + close(m_epfd); +} +bool poller::add_fd(int fd) +{ struct epoll_event event; event.data.fd = fd; @@ -43,7 +54,6 @@ bool poller::create(int fd) return true; } - bool poller::fill_event_queue(void) { const int EPOLL_MAX_EVENT = 1; @@ -52,9 +62,8 @@ bool poller::fill_event_queue(void) int nr_events = epoll_wait(m_epfd, event_items, EPOLL_MAX_EVENT, -1); if (nr_events < 0) { - if (errno == EINTR) { + if (errno == EINTR) return true; - } ERR("Epoll failed errrno : %d , errstr : %s", errno, strerror(errno)); return false; @@ -66,16 +75,14 @@ bool poller::fill_event_queue(void) } for (int i = 0; i < nr_events; i++) - m_event_queue.push(event_items[i].events); + m_event_queue.push(event_items[i]); return true; } -bool poller::poll(int &event) +bool poller::poll(struct epoll_event &event) { - event = 0; - while (true) { if (m_event_queue.empty()) { if (!fill_event_queue()) @@ -86,12 +93,12 @@ bool poller::poll(int &event) event = m_event_queue.front(); m_event_queue.pop(); - if (event & EPOLLERR) { + if (event.events & EPOLLERR) { ERR("Poll error!"); return false; } - if (event & EPOLLHUP) { + if (event.events & EPOLLHUP) { INFO("Poll: Connetion is closed from the other side"); return false; } @@ -100,10 +107,3 @@ bool poller::poll(int &event) } } } - -poller::~poller() -{ - if (m_epfd) - close(m_epfd); -} - diff --git a/src/client/poller.h b/src/shared/poller.h similarity index 83% rename from src/client/poller.h rename to src/shared/poller.h index eaf7d93..8e91b0d 100755 --- a/src/client/poller.h +++ b/src/shared/poller.h @@ -20,26 +20,23 @@ #ifndef _POLLER_H_ #define _POLLER_H_ -#include #include #include -#include #include -#include -#include #include class poller { public: + poller(); poller(int fd); - ~poller(); + virtual ~poller(); - bool poll(int &event); + bool add_fd(int fd); + bool poll(struct epoll_event &event); private: int m_epfd; - std::queue m_event_queue; + std::queue m_event_queue; - bool create(int fd); bool fill_event_queue(void); }; -- 2.7.4 From 3735c6778c2eebc6f0a251591aa61d3184bc86a4 Mon Sep 17 00:00:00 2001 From: "kibak.yoon" Date: Thu, 21 Jan 2016 14:58:55 +0900 Subject: [PATCH 04/16] sensord: modify HAL interface for support sensorhub * It doesn't need to support multi event types anymore, because a sensor has a only 1 event_type in new architecture. - removed interface of multi event types. - concept of "event type" is not removed completely still because of internal API. it will be removed later. * HAL interface supports multi sensor using get_sensor_list() API. * memory of sensor_event must be allocated in HAL. sensor fw will free this allocated memory. * refactoring and cleaning the code will be continue. * sensors will work when that sensor_event_poller patch is applied. Change-Id: I5c4282d9600a8b05f3b495d764dd28cf56ca356d Signed-off-by: kibak.yoon --- src/client/client.cpp | 11 +- src/server/command_worker.cpp | 45 +--- src/server/csensor_event_queue.cpp | 4 + src/server/csensor_event_queue.h | 19 +- src/server/physical_sensor.cpp | 123 +++++++++-- src/server/physical_sensor.h | 39 ++-- src/server/sensor_base.cpp | 364 ++++++++++++++++----------------- src/server/sensor_base.h | 108 +++++----- src/server/sensor_hal.h | 65 ------ src/server/sensor_plugin_loader.cpp.in | 321 +++++++---------------------- src/server/sensor_plugin_loader.h | 35 +--- src/server/virtual_sensor.cpp | 7 - src/server/virtual_sensor.h | 16 +- src/shared/sensor_hal.h | 128 +++++++++--- src/shared/sensor_info.cpp | 71 +++---- src/shared/sensor_info.h | 11 +- 16 files changed, 595 insertions(+), 772 deletions(-) delete mode 100644 src/server/sensor_hal.h diff --git a/src/client/client.cpp b/src/client/client.cpp index 035d907..dafe4db 100644 --- a/src/client/client.cpp +++ b/src/client/client.cpp @@ -579,14 +579,13 @@ API bool sensord_get_supported_event_types(sensor_t sensor, unsigned int **event retvm_if (!sensor_info_manager::get_instance().is_valid(info) || !event_types || !count, false, "Invalid param: sensor (%p), event_types(%p), count(%)", sensor, event_types, count); - vector event_vec; - - info->get_supported_events(event_vec); - *event_types = (unsigned int *) malloc(sizeof(unsigned int) * event_vec.size()); + unsigned int event_type; + event_type = info->get_supported_event(); + *event_types = (unsigned int *) malloc(sizeof(unsigned int)); retvm_if(!*event_types, false, "Failed to allocate memory"); - copy(event_vec.begin(), event_vec.end(), *event_types); - *count = event_vec.size(); + (*event_types)[0] = event_type; + *count = 1; return true; } diff --git a/src/server/command_worker.cpp b/src/server/command_worker.cpp index dd8cab2..b72d7b6 100644 --- a/src/server/command_worker.cpp +++ b/src/server/command_worker.cpp @@ -152,20 +152,15 @@ void command_worker::make_sensor_raw_data_map(void) auto it_sensor = sensors.begin(); while (it_sensor != last) { + (*it_sensor)->get_sensor_info(info); + permission = (*it_sensor)->get_permission(); - vector types; - (*it_sensor)->get_types(types); + sensor_raw_data_map::iterator it_sensor_raw_data; + it_sensor_raw_data = m_sensor_raw_data_map.insert(std::make_pair(permission, raw_data_t())); - for (unsigned int i = 0; i < types.size(); ++i) { - (*it_sensor)->get_sensor_info(types[i], info); - permission = (*it_sensor)->get_permission(); + info.get_raw_data(it_sensor_raw_data->second); + info.clear(); - sensor_raw_data_map::iterator it_sensor_raw_data; - it_sensor_raw_data = m_sensor_raw_data_map.insert(std::make_pair(permission, raw_data_t())); - - info.get_raw_data(it_sensor_raw_data->second); - info.clear(); - } ++it_sensor; } } @@ -213,7 +208,6 @@ bool command_worker::working(void *ctx) bool command_worker::stopped(void *ctx) { string info; - event_type_vector event_vec; command_worker *inst = (command_worker *)ctx; inst->get_info(info); @@ -221,18 +215,6 @@ bool command_worker::stopped(void *ctx) if ((inst->m_module) && (inst->m_client_id != CLIENT_ID_INVALID)) { - get_client_info_manager().get_registered_events(inst->m_client_id, inst->m_sensor_id, event_vec); - - auto it_event = event_vec.begin(); - - while (it_event != event_vec.end()) { - WARN("Does not unregister event[0x%x] before connection broken for [%s]!!", *it_event, inst->m_module->get_name()); - if (!inst->m_module->delete_client(*it_event)) - ERR("Unregistering event[0x%x] failed", *it_event); - - ++it_event; - } - if (get_client_info_manager().is_started(inst->m_client_id, inst->m_sensor_id)) { WARN("Does not receive cmd_stop before connection broken for [%s]!!", inst->m_module->get_name()); inst->m_module->delete_interval(inst->m_client_id, false); @@ -556,7 +538,6 @@ bool command_worker::cmd_register_event(void *payload) } insert_priority_list(cmd->event_type); - m_module->add_client(cmd->event_type); ret_value = OP_SUCCESS; DBG("Registering Event [0x%x] is done for client [%d]", cmd->event_type, m_client_id); @@ -589,13 +570,6 @@ bool command_worker::cmd_unregister_event(void *payload) goto out; } - if (!m_module->delete_client(cmd->event_type)) { - ERR("Failed to unregister event [0x%x] for client [%d]", - cmd->event_type, m_client_id); - ret_value = OP_ERROR; - goto out; - } - ret_value = OP_SUCCESS; DBG("Unregistering Event [0x%x] is done for client [%d]", cmd->event_type, m_client_id); @@ -777,7 +751,6 @@ out: bool command_worker::cmd_get_data(void *payload) { const unsigned int GET_DATA_MIN_INTERVAL = 10; - cmd_get_data_t *cmd; int state = OP_ERROR; bool adjusted = false; @@ -785,8 +758,6 @@ bool command_worker::cmd_get_data(void *payload) DBG("CMD_GET_VALUE Handler invoked\n"); - cmd = (cmd_get_data_t*)payload; - if (!is_permission_allowed()) { ERR("Permission denied to get data for client [%d], for sensor [0x%x]", m_client_id, m_sensor_id); @@ -794,7 +765,7 @@ bool command_worker::cmd_get_data(void *payload) goto out; } - state = m_module->get_sensor_data(cmd->type, data); + state = m_module->get_sensor_data(data); // In case of not getting sensor data, wait short time and retry again // 1. changing interval to be less than 10ms @@ -819,7 +790,7 @@ bool command_worker::cmd_get_data(void *payload) while (!state && !data.timestamp && (retry++ < RETRY_CNT)) { INFO("Wait sensor[0x%x] data updated for client [%d] #%d", m_sensor_id, m_client_id, retry); usleep((retry == 1) ? INIT_WAIT_TIME : WAIT_TIME); - state = m_module->get_sensor_data(cmd->type, data); + state = m_module->get_sensor_data(data); } if (adjusted) diff --git a/src/server/csensor_event_queue.cpp b/src/server/csensor_event_queue.cpp index bc907e1..6902e8b 100644 --- a/src/server/csensor_event_queue.cpp +++ b/src/server/csensor_event_queue.cpp @@ -54,3 +54,7 @@ void* csensor_event_queue::pop(int *length) return event.first; } +void csensor_event_queue::push(sensor_event_t *event, int event_length) +{ + push_internal(event, event_length); +} diff --git a/src/server/csensor_event_queue.h b/src/server/csensor_event_queue.h index a72ca4a..4138cac 100644 --- a/src/server/csensor_event_queue.h +++ b/src/server/csensor_event_queue.h @@ -89,24 +89,9 @@ private: void push_internal(void *event, int length); public: static csensor_event_queue& get_instance(); - template void push(const T &event); - template void push(T *event); + + void push(sensor_event_t *event, int event_length); void* pop(int *length); }; -template -void csensor_event_queue::push(const T &event) -{ - void *new_event = malloc(sizeof(event)); - if (!new_event) - return; - memcpy(new_event, &event, sizeof(event)); - push_internal(new_event, sizeof(event)); -} - -template -void csensor_event_queue::push(T *event) -{ - push_internal(event, sizeof(event)); -} #endif diff --git a/src/server/physical_sensor.cpp b/src/server/physical_sensor.cpp index 15d33a0..b25bc79 100644 --- a/src/server/physical_sensor.cpp +++ b/src/server/physical_sensor.cpp @@ -20,8 +20,10 @@ #include #include +#define UNKNOWN_NAME "UNKNOWN_SENSOR" physical_sensor::physical_sensor() +: m_sensor_hal(NULL) { } @@ -31,44 +33,127 @@ physical_sensor::~physical_sensor() } -bool physical_sensor::push(const sensor_event_t &event) +sensor_type_t physical_sensor::get_type(void) { - csensor_event_queue::get_instance().push(event); - return true; + return static_cast(m_handle.type); } -bool physical_sensor::push(sensor_event_t *event) +unsigned int physical_sensor::get_event_type(void) { - csensor_event_queue::get_instance().push(event); - return true; + return m_handle.event_type; } -bool physical_sensor::push(const sensorhub_event_t &event) +const char* physical_sensor::get_name() { - csensor_event_queue::get_instance().push(event); - return true; + if (m_handle.name.empty()) + return UNKNOWN_NAME; + + return m_handle.name.c_str(); +} + +void physical_sensor::set_sensor_handle(sensor_handle_t handle) +{ + m_handle.id = handle.id; + m_handle.name = handle.name; + m_handle.type = handle.type; + m_handle.event_type = handle.event_type; +} + +void physical_sensor::set_sensor_hal(sensor_hal *hal) +{ + m_sensor_hal = hal; +} + +int physical_sensor::get_poll_fd() +{ + AUTOLOCK(m_mutex); + + if (!m_sensor_hal) + return -1; + + return m_sensor_hal->get_poll_fd(); +} + +bool physical_sensor::on_start() +{ + AUTOLOCK(m_mutex); + + return m_sensor_hal->enable(m_handle.id); +} + +bool physical_sensor::on_stop() +{ + AUTOLOCK(m_mutex); + + return m_sensor_hal->disable(m_handle.id); +} + +long physical_sensor::set_command(unsigned int cmd, long value) +{ + AUTOLOCK(m_mutex); + + return m_sensor_hal->set_command(m_handle.id, std::to_string(cmd), std::to_string(value)); } -bool physical_sensor::push(sensorhub_event_t *event) +bool physical_sensor::set_interval(unsigned long interval) { - csensor_event_queue::get_instance().push(event); - return true; + AUTOLOCK(m_mutex); + + INFO("Polling interval is set to %dms", interval); + + return m_sensor_hal->set_interval(m_handle.id, interval); } -void physical_sensor::set_poller(working_func_t func, void *arg) +bool physical_sensor::set_batch(unsigned long latency) { - m_sensor_data_poller.set_context(arg); - m_sensor_data_poller.set_working(func); + AUTOLOCK(m_mutex); + + INFO("Polling interval is set to %dms", latency); + + return m_sensor_hal->set_batch_latency(m_handle.id, latency); } +bool physical_sensor::set_wakeup(int wakeup) +{ + return false; +} -bool physical_sensor::start_poll(void) +bool physical_sensor::is_data_ready(void) { - return m_sensor_data_poller.start(); + AUTOLOCK(m_mutex); + return m_sensor_hal->is_data_ready(); } -bool physical_sensor::stop_poll(void) +int physical_sensor::get_sensor_data(sensor_data_t &data) { - return m_sensor_data_poller.pause(); + AUTOLOCK(m_mutex); + + if (!m_sensor_hal->get_sensor_data(m_handle.id, data)) { + ERR("Failed to get sensor data"); + return -1; + } + + return 0; } + +int physical_sensor::get_sensor_event(sensor_event_t **event) +{ + AUTOLOCK(m_mutex); + + int event_length = -1; + event_length = m_sensor_hal->get_sensor_event(m_handle.id, event); + + if (event_length < 0) { + ERR("Failed to get sensor event"); + return -1; + } + + return event_length; +} + +bool physical_sensor::get_properties(sensor_properties_s &properties) +{ + return m_sensor_hal->get_properties(m_handle.id, properties); +} + diff --git a/src/server/physical_sensor.h b/src/server/physical_sensor.h index a4098b6..3fb5924 100644 --- a/src/server/physical_sensor.h +++ b/src/server/physical_sensor.h @@ -27,23 +27,36 @@ class physical_sensor : public sensor_base { public: - typedef worker_thread::trans_func_t working_func_t; - -private: - worker_thread m_sensor_data_poller; - -protected: physical_sensor(); virtual ~physical_sensor(); - bool push(const sensor_event_t &event); - bool push(sensor_event_t *event); - bool push(const sensorhub_event_t &event); - bool push(sensorhub_event_t *event); + /* setting module */ + void set_sensor_handle(sensor_handle_t handle); + void set_sensor_hal(sensor_hal *hal); + + /* module info */ + virtual sensor_type_t get_type(); + virtual unsigned int get_event_type(void); + virtual const char* get_name(void); - void set_poller(working_func_t func, void *arg); - bool start_poll(void); - bool stop_poll(void); + int get_poll_fd(); + + /* get data */ + bool is_data_ready(void); + virtual int get_sensor_data(sensor_data_t &data); + virtual int get_sensor_event(sensor_event_t **event); + +private: + sensor_handle_t m_handle; + sensor_hal *m_sensor_hal; + + virtual bool set_interval(unsigned long interval); + virtual bool set_wakeup(int wakeup); + virtual bool set_batch(unsigned long latency); + virtual bool on_start(); + virtual bool on_stop(); + virtual long set_command(unsigned int cmd, long value); + virtual bool get_properties(sensor_properties_s &properties); }; #endif diff --git a/src/server/sensor_base.cpp b/src/server/sensor_base.cpp index 4a7ce4d..48b81cc 100644 --- a/src/server/sensor_base.cpp +++ b/src/server/sensor_base.cpp @@ -17,105 +17,37 @@ * */ +#include #include #include #include +#include +#include + using std::make_pair; using std::vector; -#define UNKNOWN_NAME "UNKNOWN_SENSOR" - sensor_base::sensor_base() -: m_privilege(SENSOR_PRIVILEGE_PUBLIC) +: m_unique_id(-1) +, m_privilege(SENSOR_PRIVILEGE_PUBLIC) , m_permission(SENSOR_PERMISSION_STANDARD) , m_client(0) , m_started(false) { - } sensor_base::~sensor_base() { - + INFO("%s is destroyed!\n", m_handle.name.c_str()); } -bool sensor_base::init() -{ - return true; -} - -bool sensor_base::is_virtual() -{ - return false; -} - -void sensor_base::add_id(sensor_id_t id) -{ - m_ids.insert(std::make_pair(static_cast (id & SENSOR_TYPE_MASK), id)); -} - -sensor_id_t sensor_base::get_id(void) +sensor_type_t sensor_base::get_type(void) { - auto it = m_ids.begin(); - - if (it != m_ids.end()) - return it->second; - - return UNKNOWN_SENSOR; -} - -sensor_id_t sensor_base::get_id(sensor_type_t sensor_type) -{ - - auto it = m_ids.find(sensor_type); - - if (it != m_ids.end()) - return it->second; - return UNKNOWN_SENSOR; } -sensor_privilege_t sensor_base::get_privilege(void) -{ - return m_privilege; -} - -int sensor_base::get_permission(void) -{ - return m_permission; -} - - -void sensor_base::set_privilege(sensor_privilege_t privilege) -{ - m_privilege = privilege; -} - -void sensor_base::set_permission(int permission) -{ - m_permission = permission; -} - -const char* sensor_base::get_name() -{ - if (m_name.empty()) - return UNKNOWN_NAME; - - return m_name.c_str(); -} - -bool sensor_base::on_start() -{ - return true; -} - -bool sensor_base::on_stop() -{ - return true; -} - bool sensor_base::start() { AUTOLOCK(m_mutex); @@ -158,48 +90,19 @@ bool sensor_base::stop(void) return true; } - -bool sensor_base::is_started(void) +bool sensor_base::on_start() { - AUTOLOCK(m_mutex); - AUTOLOCK(m_client_mutex); - - return m_started; + return false; } -bool sensor_base::add_client(unsigned int event_type) +bool sensor_base::on_stop() { - if (!is_supported(event_type)) { - ERR("Invaild event type: 0x%x", event_type); - return false; - } - - AUTOLOCK(m_client_info_mutex); - - ++(m_client_info[event_type]); - return true; + return false; } -bool sensor_base::delete_client(unsigned int event_type) +long sensor_base::set_command(unsigned int cmd, long value) { - if (!is_supported(event_type)) { - ERR("Invaild event type: 0x%x", event_type); - return false; - } - - AUTOLOCK(m_client_info_mutex); - - auto iter = m_client_info.find(event_type); - - if (iter == m_client_info.end()) - return false; - - if (iter->second == 0) - return false; - - --(iter->second); - - return true; + return -1; } bool sensor_base::add_interval(int client_id, unsigned int interval, bool is_processor) @@ -220,6 +123,7 @@ bool sensor_base::add_interval(int client_id, unsigned int interval, bool is_pro " by%sclient[%d] adding interval", get_id(), prev_min, cur_min, is_processor ? " processor " : " ", client_id); + set_interval(cur_min); } @@ -264,6 +168,62 @@ unsigned int sensor_base::get_interval(int client_id, bool is_processor) return m_plugin_info_list.get_interval(client_id, is_processor); } +bool sensor_base::add_batch(int client_id, unsigned int latency) +{ + unsigned int prev_max, cur_max; + + AUTOLOCK(m_plugin_info_list_mutex); + + prev_max = m_plugin_info_list.get_max_batch(); + + if (!m_plugin_info_list.add_batch(client_id, latency)) + return false; + + cur_max = m_plugin_info_list.get_max_batch(); + + if (cur_max != prev_max) { + INFO("Max latency for sensor[0x%x] is changed from %dms to %dms by client[%d] adding latency", + get_id(), prev_max, cur_max, client_id); + set_batch(cur_max); + } + + return true; +} + +bool sensor_base::delete_batch(int client_id) +{ + unsigned int prev_max, cur_max; + AUTOLOCK(m_plugin_info_list_mutex); + + prev_max = m_plugin_info_list.get_max_batch(); + + if (!m_plugin_info_list.delete_batch(client_id)) + return false; + + cur_max = m_plugin_info_list.get_max_batch(); + + if (!cur_max) { + INFO("No latency for sensor[0x%x] by client[%d] deleting latency, so set to default 0 ms", + get_id(), client_id); + + set_batch(0); + } else if (cur_max != prev_max) { + INFO("Max latency for sensor[0x%x] is changed from %dms to %dms by client[%d] deleting latency", + get_id(), prev_max, cur_max, client_id); + + set_batch(cur_max); + } + + return true; +} + +unsigned int sensor_base::get_batch(int client_id) +{ + AUTOLOCK(m_plugin_info_list_mutex); + + return m_plugin_info_list.get_batch(client_id); +} + bool sensor_base::add_wakeup(int client_id, int wakeup) { int prev_wakeup, cur_wakeup; @@ -280,7 +240,7 @@ bool sensor_base::add_wakeup(int client_id, int wakeup) if ((cur_wakeup == SENSOR_WAKEUP_ON) && (prev_wakeup < SENSOR_WAKEUP_ON)) { INFO("Wakeup for sensor[0x%x] is changed from %d to %d by client[%d] adding wakeup", get_id(), prev_wakeup, cur_wakeup, client_id); - set_wakeup(client_id, SENSOR_WAKEUP_ON); + set_wakeup(SENSOR_WAKEUP_ON); } return true; @@ -301,7 +261,7 @@ bool sensor_base::delete_wakeup(int client_id) if ((cur_wakeup < SENSOR_WAKEUP_ON) && (prev_wakeup == SENSOR_WAKEUP_ON)) { INFO("Wakeup for sensor[0x%x] is changed from %d to %d by client[%d] deleting wakeup", get_id(), prev_wakeup, cur_wakeup, client_id); - set_wakeup(client_id, SENSOR_WAKEUP_OFF); + set_wakeup(SENSOR_WAKEUP_OFF); } return true; @@ -314,71 +274,76 @@ int sensor_base::get_wakeup(int client_id) return m_plugin_info_list.is_wakeup_on(); } -bool sensor_base::add_batch(int client_id, unsigned int latency) +int sensor_base::get_sensor_data(sensor_data_t &data) { - unsigned int prev_max, cur_max; - - AUTOLOCK(m_plugin_info_list_mutex); - - prev_max = m_plugin_info_list.get_max_batch(); - - if (!m_plugin_info_list.add_batch(client_id, latency)) - return false; + return -1; +} - cur_max = m_plugin_info_list.get_max_batch(); +int sensor_base::get_sensor_event(sensor_event_t **event) +{ + return -1; +} - if (cur_max != prev_max) { - INFO("Max latency for sensor[0x%x] is changed from %dms to %dms by client[%d] adding latency", - get_id(), prev_max, cur_max, client_id); - set_batch(client_id, cur_max); - } +bool sensor_base::get_properties(sensor_properties_s &properties) +{ + return false; +} - return true; +const char* sensor_base::get_name() +{ + return NULL; } -bool sensor_base::delete_batch(int client_id) +void sensor_base::set_id(sensor_id_t id) { - unsigned int prev_max, cur_max; - AUTOLOCK(m_plugin_info_list_mutex); + m_unique_id = id; +} - prev_max = m_plugin_info_list.get_max_batch(); +sensor_id_t sensor_base::get_id(void) +{ + if (m_unique_id == -1) + return UNKNOWN_SENSOR; - if (!m_plugin_info_list.delete_batch(client_id)) - return false; + return m_unique_id; +} - cur_max = m_plugin_info_list.get_max_batch(); +unsigned int sensor_base::get_event_type(void) +{ + return -1; +} - if (!cur_max) { - INFO("No latency for sensor[0x%x] by client[%d] deleting latency, so set to default 0 ms", - get_id(), client_id); +sensor_privilege_t sensor_base::get_privilege(void) +{ + return m_privilege; +} - set_batch(client_id, 0); - } else if (cur_max != prev_max) { - INFO("Max latency for sensor[0x%x] is changed from %dms to %dms by client[%d] deleting latency", - get_id(), prev_max, cur_max, client_id); +int sensor_base::get_permission(void) +{ + return m_permission; +} - set_batch(client_id, cur_max); - } +bool sensor_base::is_started(void) +{ + AUTOLOCK(m_mutex); + AUTOLOCK(m_client_mutex); - return true; + return m_started; } -unsigned int sensor_base::get_batch(int client_id) +bool sensor_base::is_virtual() { - AUTOLOCK(m_plugin_info_list_mutex); - - return m_plugin_info_list.get_batch(client_id); + return false; } -void sensor_base::get_sensor_info(sensor_type_t sensor_type, sensor_info &info) +void sensor_base::get_sensor_info(sensor_info &info) { sensor_properties_s properties; properties.wakeup_supported = false; - get_properties(sensor_type, properties); + get_properties(properties); - info.set_type(sensor_type); - info.set_id(get_id(sensor_type)); + info.set_type(get_type()); + info.set_id(get_id()); info.set_privilege(m_privilege); info.set_name(properties.name.c_str()); info.set_vendor(properties.vendor.c_str()); @@ -388,53 +353,40 @@ void sensor_base::get_sensor_info(sensor_type_t sensor_type, sensor_info &info) info.set_min_interval(properties.min_interval); info.set_fifo_count(properties.fifo_count); info.set_max_batch_count(properties.max_batch_count); - - vector events; - - for (unsigned int i = 0; i < m_supported_event_info.size(); ++ i) { - if (m_supported_event_info[i] & (sensor_type << 16)) - events.push_back(m_supported_event_info[i]); - } - - info.set_supported_events(events); + info.set_supported_event(get_event_type()); info.set_wakeup_supported(properties.wakeup_supported); return; } -bool sensor_base::get_properties(sensor_type_t sensor_type, sensor_properties_s &properties) +bool sensor_base::is_wakeup_supported(void) { return false; } -bool sensor_base::is_supported(unsigned int event_type) +bool sensor_base::set_interval(unsigned long interval) { - auto iter = find(m_supported_event_info.begin(), m_supported_event_info.end(), event_type); - - if (iter == m_supported_event_info.end()) - return false; - - return true; + return false; } -bool sensor_base::is_wakeup_supported(void) +bool sensor_base::set_wakeup(int wakeup) { return false; } -long sensor_base::set_command(unsigned int cmd, long value) +bool sensor_base::set_batch(unsigned long latency) { - return -1; + return false; } -bool sensor_base::set_wakeup(int client_id, int wakeup) +void sensor_base::set_privilege(sensor_privilege_t privilege) { - return false; + m_privilege = privilege; } -bool sensor_base::set_batch(int client_id, unsigned int latency) +void sensor_base::set_permission(int permission) { - return false; + m_permission = permission; } int sensor_base::send_sensorhub_data(const char* data, int data_len) @@ -442,37 +394,62 @@ int sensor_base::send_sensorhub_data(const char* data, int data_len) return -1; } -int sensor_base::get_sensor_data(unsigned int type, sensor_data_t &data) +bool sensor_base::push(sensor_event_t *event, int event_length) { - return -1; + AUTOLOCK(m_client_mutex); + + if (m_client <= 0) + return false; + + csensor_event_queue::get_instance().push(event, event_length); + return true; } -void sensor_base::register_supported_event(unsigned int event_type) +/* +bool sensor_base::push(const sensor_event_t &event) { - m_supported_event_info.push_back(event_type); + AUTOLOCK(m_client_mutex); + + if (m_client <= 0) + return false; + + csensor_event_queue::get_instance().push(event); + return true; } -void sensor_base::unregister_supported_event(unsigned int event_type) +bool sensor_base::push(sensor_event_t *event) { - m_supported_event_info.erase(std::remove(m_supported_event_info.begin(), - m_supported_event_info.end(), event_type), m_supported_event_info.end()); + AUTOLOCK(m_client_mutex); + + if (m_client <= 0) + return false; + + csensor_event_queue::get_instance().push(event); + return true; } -unsigned int sensor_base::get_client_cnt(unsigned int event_type) -{ - AUTOLOCK(m_client_info_mutex); - auto iter = m_client_info.find(event_type); +bool sensor_base::push(const sensorhub_event_t &event) +{ + AUTOLOCK(m_client_mutex); - if (iter == m_client_info.end()) - return 0; + if (m_client <= 0) + return false; - return iter->second; + csensor_event_queue::get_instance().push(event); + return true; } -bool sensor_base::set_interval(unsigned long val) +bool sensor_base::push(sensorhub_event_t *event) { + AUTOLOCK(m_client_mutex); + + if (m_client <= 0) + return false; + + csensor_event_queue::get_instance().push(event); return true; } +*/ unsigned long long sensor_base::get_timestamp(void) { @@ -490,3 +467,4 @@ unsigned long long sensor_base::get_timestamp(timeval *t) return ((unsigned long long)(t->tv_sec)*1000000LL +t->tv_usec); } + diff --git a/src/server/sensor_base.h b/src/server/sensor_base.h index 612547a..c3d19c3 100644 --- a/src/server/sensor_base.h +++ b/src/server/sensor_base.h @@ -36,96 +36,100 @@ #include #include #include +#include class sensor_base { -private: - typedef std::unordered_map client_info; - public: sensor_base(); virtual ~sensor_base(); - virtual bool init(void); - void add_id(sensor_id_t id); - sensor_id_t get_id(sensor_type_t sensor_type); - virtual void get_types(std::vector &types) {}; - - sensor_privilege_t get_privilege(void); - int get_permission(void); + /* module info */ + virtual sensor_type_t get_type(); + virtual unsigned int get_event_type(void); virtual const char* get_name(void); - virtual bool is_virtual(void); + /* start/stop */ bool start(void); bool stop(void); - bool is_started(void); - - virtual bool add_client(unsigned int event_type); - virtual bool delete_client(unsigned int event_type); - virtual bool add_interval(int client_id, unsigned int interval, bool is_processor); - virtual bool delete_interval(int client_id, bool is_processor); + /* interval / batch / wakeup */ + bool add_interval(int client_id, unsigned int interval, bool is_processor); + bool delete_interval(int client_id, bool is_processor); unsigned int get_interval(int client_id, bool is_processor); - virtual bool add_wakeup(int client_id, int wakeup); - virtual bool delete_wakeup(int client_id); + bool add_batch(int client_id, unsigned int latency); + bool delete_batch(int client_id); + unsigned int get_batch(int client_id); + + bool add_wakeup(int client_id, int wakeup); + bool delete_wakeup(int client_id); int get_wakeup(int client_id); + bool is_wakeup_supported(void); - virtual bool add_batch(int client_id, unsigned int latency); - virtual bool delete_batch(int client_id); - unsigned int get_batch(int client_id); + /* get data */ + virtual int get_sensor_data(sensor_data_t &data); + virtual int get_sensor_event(sensor_event_t **event); - void get_sensor_info(sensor_type_t sensor_type, sensor_info &info); - virtual bool get_properties(sensor_type_t sensor_type, sensor_properties_s &properties); + /* id */ + void set_id(sensor_id_t id); + sensor_id_t get_id(void); - bool is_supported(unsigned int event_type); - bool is_wakeup_supported(void); + /* privilege */ + sensor_privilege_t get_privilege(void); + int get_permission(void); - virtual long set_command(unsigned int cmd, long value); - virtual bool set_wakeup(int client_id, int wakeup); - virtual bool set_batch(int client_id, unsigned int latency); - virtual int send_sensorhub_data(const char* data, int data_len); + bool is_started(void); + virtual bool is_virtual(void); + + /* sensor info */ + virtual void get_sensor_info(sensor_info &info); - virtual int get_sensor_data(unsigned int type, sensor_data_t &data); + /* push event to queue */ + bool push(sensor_event_t *event, int event_length); + /* + bool push(const sensor_event_t &event); + bool push(sensor_event_t *event); + bool push(const sensorhub_event_t &event); + bool push(sensorhub_event_t *event); + */ - void register_supported_event(unsigned int event_type); - void unregister_supported_event(unsigned int event_type); + /* for sensorhub */ + virtual long set_command(unsigned int cmd, long value); + virtual int send_sensorhub_data(const char* data, int data_len); protected: - typedef std::lock_guard lock; - typedef std::lock_guard rlock; - typedef std::unique_lock ulock; + cmutex m_mutex; + + void set_privilege(sensor_privilege_t privilege); + void set_permission(int permission); - std::map m_ids; +private: + sensor_id_t m_unique_id; + sensor_handle_t m_handle; sensor_privilege_t m_privilege; + int m_permission; cplugin_info_list m_plugin_info_list; cmutex m_plugin_info_list_mutex; - cmutex m_mutex; - unsigned int m_client; cmutex m_client_mutex; - client_info m_client_info; - cmutex m_client_info_mutex; - - std::vector m_supported_event_info; bool m_started; - std::string m_name; + virtual bool set_interval(unsigned long interval); + virtual bool set_batch(unsigned long latency); + virtual bool set_wakeup(int wakeup); - sensor_id_t get_id(void); - void set_privilege(sensor_privilege_t privilege); - void set_permission(int permission); - unsigned int get_client_cnt(unsigned int event_type); - virtual bool set_interval(unsigned long val); + /* get properties */ + virtual bool get_properties(sensor_properties_s &properties); - static unsigned long long get_timestamp(void); - static unsigned long long get_timestamp(timeval *t); -private: virtual bool on_start(void); virtual bool on_stop(void); + + static unsigned long long get_timestamp(void); + static unsigned long long get_timestamp(timeval *t); }; #endif diff --git a/src/server/sensor_hal.h b/src/server/sensor_hal.h deleted file mode 100644 index 2da6406..0000000 --- a/src/server/sensor_hal.h +++ /dev/null @@ -1,65 +0,0 @@ -/* - * libsensord-share - * - * Copyright (c) 2015 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_ - -typedef enum { - SENSOR_HAL_TYPE_ACCELEROMETER, - SENSOR_HAL_TYPE_GEOMAGNETIC, - SENSOR_HAL_TYPE_LIGHT, - SENSOR_HAL_TYPE_PROXIMITY, - SENSOR_HAL_TYPE_GYROSCOPE, - SENSOR_HAL_TYPE_PRESSURE, - SENSOR_HAL_TYPE_CONTEXT, - SENSOR_HAL_TYPE_BIO, - SENSOR_HAL_TYPE_BIO_HRM, - SENSOR_HAL_TYPE_PIR, - SENSOR_HAL_TYPE_PIR_LONG, - SENSOR_HAL_TYPE_TEMPERATURE, - SENSOR_HAL_TYPE_HUMIDITY, - SENSOR_HAL_TYPE_ULTRAVIOLET, - SENSOR_HAL_TYPE_DUST, - SENSOR_HAL_TYPE_BIO_LED_IR, - SENSOR_HAL_TYPE_BIO_LED_RED, - SENSOR_HAL_TYPE_BIO_LED_GREEN, - SENSOR_HAL_TYPE_RV_RAW, - SENSOR_HAL_TYPE_GYROSCOPE_UNCAL, - SENSOR_HAL_TYPE_GEOMAGNETIC_UNCAL, - SENSOR_HAL_TYPE_FUSION, -} sensor_hal_type_t; - - - -class sensor_hal -{ -public: - sensor_hal(){}; - virtual ~sensor_hal(){}; - - virtual std::string get_model_id(void) = 0; - virtual sensor_hal_type_t get_type(void) = 0; - virtual bool enable(void) = 0; - virtual bool disable(void) = 0; - virtual bool is_data_ready(void) = 0; - virtual bool set_interval(unsigned long val) = 0; - virtual int get_sensor_data(sensor_data_t &data) = 0; - virtual bool get_properties(sensor_properties_s &properties) = 0; -}; -#endif /*_SENSOR_HAL_H_*/ diff --git a/src/server/sensor_plugin_loader.cpp.in b/src/server/sensor_plugin_loader.cpp.in index 86b45c1..d4b1f01 100644 --- a/src/server/sensor_plugin_loader.cpp.in +++ b/src/server/sensor_plugin_loader.cpp.in @@ -22,16 +22,17 @@ #include #include #include +#include #include #include #include #include #include -/* #ifdef ENABLE_AUTO_ROTATION #include #endif +/* #ifdef ENABLE_TILT #include #endif @@ -61,14 +62,9 @@ #endif */ -using std::make_pair; -using std::equal; using std::unordered_set; -using std::pair; using std::vector; using std::string; -using std::shared_ptr; -using std::static_pointer_cast; #define ROOT_ELEMENT "PLUGIN" #define TEXT_ELEMENT "text" @@ -76,19 +72,6 @@ using std::static_pointer_cast; #define HAL_ELEMENT "HAL" #define SENSOR_ELEMENT "SENSOR" -#define ACCELEROMETER_ENABLED 0x01 -#define GYROSCOPE_ENABLED 0x02 -#define GEOMAGNETIC_ENABLED 0x04 -#define TILT_ENABLED 1 -#define FUSION_ENABLED 1 -#define AUTO_ROTATION_ENABLED 1 -#define GAMING_RV_ENABLED 3 -#define GEOMAGNETIC_RV_ENABLED 5 -#define ORIENTATION_ENABLED 7 -#define GRAVITY_ENABLED 7 -#define LINEAR_ACCEL_ENABLED 7 -#define ORIENTATION_ENABLED 7 - #define HAL_PLUGINS_DIR_PATH "/usr/lib/sensor" #define SENSOR_INDEX_SHIFT 16 @@ -103,8 +86,10 @@ sensor_plugin_loader& sensor_plugin_loader::get_instance() return inst; } -bool sensor_plugin_loader::load_module(const string &path, vector &sensors, void* &handle) +bool sensor_plugin_loader::load_plugin(const string &path, vector &sensors, void* &handle) { + INFO("load HAL plugin [%s]", path.c_str()); + void *_handle = dlopen(path.c_str(), RTLD_NOW); if (!_handle) { @@ -114,84 +99,66 @@ bool sensor_plugin_loader::load_module(const string &path, vector &sensor dlerror(); - create_t create_module = (create_t) dlsym(_handle, "create"); + create_t create_plugin = (create_t) dlsym(_handle, "create"); - if (!create_module) { + if (!create_plugin) { ERR("Failed to find symbols in %s", path.c_str()); dlclose(_handle); return false; } - sensor_module *module = create_module(); + sensor_module *plugin = create_plugin(); - if (!module) { - ERR("Failed to create module, path is %s\n", path.c_str()); + if (!plugin) { + ERR("Failed to create plugin, path is %s\n", path.c_str()); dlclose(_handle); return false; } sensors.clear(); - sensors.swap(module->sensors); + sensors.swap(plugin->sensors); - delete module; + delete plugin; handle = _handle; return true; } -bool sensor_plugin_loader::insert_module(plugin_type type, const string &path) +bool sensor_plugin_loader::insert_plugins(std::vector hals) { - if (type == PLUGIN_TYPE_HAL) { - DBG("Insert HAL plugin [%s]", path.c_str()); - - std::vectorhals; - void *handle; - - if (!load_module(path, hals, handle)) - return false; + unsigned int i; + sensor_hal *hal; - shared_ptr hal; + for (i = 0; i < hals.size(); ++i) { + hal = static_cast(hals[i]); - for (unsigned int i = 0; i < hals.size(); ++i) { - hal.reset(static_cast (hals[i])); - sensor_hal_type_t sensor_hal_type = hal->get_type(); - m_sensor_hals.insert(make_pair(sensor_hal_type, hal)); - } - } else if (type == PLUGIN_TYPE_SENSOR) { - DBG("Insert Sensor plugin [%s]", path.c_str()); - - std::vector sensors; - void *handle; - - if (!load_module(path, sensors, handle)) - return false; + insert_sensors(hal); + } - shared_ptr sensor; + return true; +} - for (unsigned int i = 0; i < sensors.size(); ++i) { - sensor.reset(static_cast (sensors[i])); +bool sensor_plugin_loader::insert_sensors(sensor_hal *hal) +{ + unsigned int i; + vector sensors; + physical_sensor *phy_sensor; - if (!sensor->init()) { - ERR("Failed to init [%s] module\n", sensor->get_name()); - continue; - } + hal->get_sensors(sensors); - DBG("init [%s] module", sensor->get_name()); + for (i = 0; i < sensors.size(); ++i) { + int idx; + idx = m_sensors.count(sensors[i].type); - vector sensor_types; + phy_sensor = new physical_sensor(); + phy_sensor->set_id(idx << SENSOR_INDEX_SHIFT | sensors[i].type); + phy_sensor->set_sensor_handle(sensors[i]); + phy_sensor->set_sensor_hal(hal); - sensor->get_types(sensor_types); + std::shared_ptr sensor(phy_sensor); + m_sensors.insert(std::make_pair(sensors[i].type, sensor)); - for (unsigned int i = 0; i < sensor_types.size(); ++i) { - int idx; - idx = m_sensors.count(sensor_types[i]); - sensor->add_id(idx << SENSOR_INDEX_SHIFT | sensor_types[i]); - m_sensors.insert(make_pair(sensor_types[i], sensor)); - } - } - }else { - ERR("Not supported type: %d", type); - return false; + INFO("created [%s] sensor", sensor->get_name()); } return true; @@ -202,9 +169,6 @@ bool sensor_plugin_loader::load_plugins(void) vector hal_paths; vector unique_hal_paths; - int enable_virtual_sensor = 0; - vector sensors; - get_paths_from_dir(string(HAL_PLUGINS_DIR_PATH), hal_paths); unordered_set s; @@ -221,150 +185,31 @@ bool sensor_plugin_loader::load_plugins(void) for_each(unique_hal_paths.begin(), unique_hal_paths.end(), [&](const string &path) { - insert_module(PLUGIN_TYPE_HAL, path); + void *handle; + std::vector hals; + + load_plugin(path, hals, handle); + insert_plugins(hals); } ); - -#ifdef ENABLE_SENSOR_FUSION - fusion_sensor* fusion_sensor_ptr = NULL; +#ifdef ENABLE_AUTO_ROTATION + auto_rotation_sensor* auto_rot_sensor_ptr = NULL; try { - fusion_sensor_ptr = new(std::nothrow) fusion_sensor; + auto_rot_sensor_ptr = new(std::nothrow) auto_rotation_sensor; } catch (int err) { - ERR("Failed to create fusion_sensor module, err: %d, cause: %s", err, strerror(err)); - } - if (fusion_sensor_ptr != NULL) - sensors.push_back(fusion_sensor_ptr); -#endif -#ifdef ENABLE_TILT - if (enable_virtual_sensor & TILT_ENABLED == TILT_ENABLED) { - tilt_sensor* tilt_sensor_ptr = NULL; - try { - tilt_sensor_ptr = new(std::nothrow) tilt_sensor; - } catch (int err) { - ERR("Failed to create tilt_sensor module, err: %d, cause: %s", err, strerror(err)); - } - if (tilt_sensor_ptr != NULL) - sensors.push_back(tilt_sensor_ptr); + ERR("Failed to create auto_rotation_sensor module, err: %d, cause: %s", err, strerror(err)); } -#endif -#ifdef ENABLE_AUTO_ROTATION - if (enable_virtual_sensor & AUTO_ROTATION_ENABLED == AUTO_ROTATION_ENABLED) { - auto_rotation_sensor* auto_rot_sensor_ptr = NULL; - try { - auto_rot_sensor_ptr = new(std::nothrow) auto_rotation_sensor; - } catch (int err) { - ERR("Failed to create auto_rotation_sensor module, err: %d, cause: %s", err, strerror(err)); - } - if (auto_rot_sensor_ptr != NULL) - sensors.push_back(auto_rot_sensor_ptr); - } -#endif -#ifdef ENABLE_GRAVITY - if (enable_virtual_sensor & GRAVITY_ENABLED == GRAVITY_ENABLED) { - gravity_sensor* gravity_sensor_ptr = NULL; - try { - gravity_sensor_ptr = new(std::nothrow) gravity_sensor; - } catch (int err) { - ERR("Failed to create tilt_sensor module, err: %d, cause: %s", err, strerror(err)); - } - if (gravity_sensor_ptr != NULL) - sensors.push_back(gravity_sensor_ptr); - } -#endif -#ifdef ENABLE_LINEAR_ACCEL - if (enable_virtual_sensor & LINEAR_ACCEL_ENABLED == LINEAR_ACCEL_ENABLED) { - linear_accel_sensor* linear_accel_sensor_ptr = NULL; - try { - linear_accel_sensor_ptr = new(std::nothrow) linear_accel_sensor; - } catch (int err) { - ERR("Failed to create linear_accel_sensor module, err: %d, cause: %s", err, strerror(err)); - } - if (linear_accel_sensor_ptr != NULL) - sensors.push_back(linear_accel_sensor_ptr); - } -#endif + if (auto_rot_sensor_ptr != NULL) { + std::shared_ptr sensor(auto_rot_sensor_ptr); + sensor_hal_type type; - if (enable_virtual_sensor & ORIENTATION_ENABLED == ORIENTATION_ENABLED) { -#ifdef ENABLE_ORIENTATION - orientation_sensor* orientation_sensor_ptr = NULL; - try { - orientation_sensor_ptr = new(std::nothrow) orientation_sensor; - } catch (int err) { - ERR("Failed to create orientation_sensor module, err: %d, cause: %s", err, strerror(err)); - } - if (orientation_sensor_ptr != NULL) - sensors.push_back(orientation_sensor_ptr); -#endif -#ifdef ENABLE_RV - rv_sensor* rv_sensor_ptr = NULL; - try { - rv_sensor_ptr = new(std::nothrow) rv_sensor; - } catch (int err) { - ERR("Failed to create rv_sensor module, err: %d, cause: %s", err, strerror(err)); - } - if (rv_sensor_ptr != NULL) - sensors.push_back(rv_sensor_ptr); -#endif -#ifdef ENABLE_GYROSCOPE_UNCAL - gyroscope_uncal_sensor* gyroscope_uncal_sensor_ptr = NULL; - try { - gyroscope_uncal_sensor_ptr = new(std::nothrow) gyroscope_uncal_sensor; - } catch (int err) { - ERR("Failed to create gyroscope_uncal_sensor module, err: %d, cause: %s", err, strerror(err)); - } - if (gyroscope_uncal_sensor_ptr != NULL) - sensors.push_back(gyroscope_uncal_sensor_ptr); -#endif - } + type = static_cast(sensor->get_type()); + sensor->set_id(type); -#ifdef ENABLE_GAMING_RV - if (enable_virtual_sensor & GAMING_RV_ENABLED == GAMING_RV_ENABLED) { - gaming_rv_sensor* gaming_rv_sensor_ptr = NULL; - try { - gaming_rv_sensor_ptr = new(std::nothrow) gaming_rv_sensor; - } catch (int err) { - ERR("Failed to create gaming_rv_sensor module, err: %d, cause: %s", err, strerror(err)); - } - if (gaming_rv_sensor_ptr != NULL) - sensors.push_back(gaming_rv_sensor_ptr); - } -#endif -#ifdef ENABLE_GEOMAGNETIC_RV - if (enable_virtual_sensor & GEOMAGNETIC_RV_ENABLED == GEOMAGNETIC_RV_ENABLED) { - geomagnetic_rv_sensor* geomagnetic_rv_sensor_ptr = NULL; - try { - geomagnetic_rv_sensor_ptr = new(std::nothrow) geomagnetic_rv_sensor; - } catch (int err) { - ERR("Failed to create geomagnetic_rv_sensor module, err: %d, cause: %s", err, strerror(err)); - } - if (geomagnetic_rv_sensor_ptr != NULL) - sensors.push_back(geomagnetic_rv_sensor_ptr); + m_sensors.insert(std::make_pair(type, sensor)); } #endif - shared_ptr sensor; - - for (unsigned int i = 0; i < sensors.size(); ++i) { - sensor.reset(static_cast (sensors[i])); - - if (!sensor->init()) { - ERR("Failed to init [%s] module\n", sensor->get_name()); - continue; - } - - DBG("init [%s] module", sensor->get_name()); - - vector sensor_types; - - sensor->get_types(sensor_types); - - for (unsigned int i = 0; i < sensor_types.size(); ++i) { - int idx; - idx = m_sensors.count(sensor_types[i]); - sensor->add_id(idx << SENSOR_INDEX_SHIFT | sensor_types[i]); - m_sensors.insert(make_pair(sensor_types[i], sensor)); - } - } show_sensor_info(); return true; @@ -379,10 +224,10 @@ void sensor_plugin_loader::show_sensor_info(void) auto it = m_sensors.begin(); while (it != m_sensors.end()) { - shared_ptr sensor = it->second; + sensor_base *sensor = it->second.get(); sensor_info info; - sensor->get_sensor_info(it->first, info); + sensor->get_sensor_info(info); INFO("No:%d [%s]\n", ++index, sensor->get_name()); info.show(); it++; @@ -414,47 +259,40 @@ bool sensor_plugin_loader::get_paths_from_dir(const string &dir_path, vector(type)); - if (it_plugins == m_sensor_hals.end()) + if (it_plugins == m_sensors.end()) return NULL; return it_plugins->second.get(); } -vector sensor_plugin_loader::get_sensor_hals(sensor_hal_type_t type) +sensor_base* sensor_plugin_loader::get_sensor(sensor_id_t id) { - vector sensor_hal_list; - pair ret; - ret = m_sensor_hals.equal_range(type); - - for (auto it = ret.first; it != ret.second; ++it) - sensor_hal_list.push_back(it->second.get()); + vector sensors; - return sensor_hal_list; -} + sensor_type_t type = static_cast (id & SENSOR_TYPE_MASK); + unsigned int index = id >> SENSOR_INDEX_SHIFT; -sensor_base* sensor_plugin_loader::get_sensor(sensor_type_t type) -{ - auto it_plugins = m_sensors.find(type); + sensors = get_sensors(type); - if (it_plugins == m_sensors.end()) + if (sensors.size() <= index) return NULL; - return it_plugins->second.get(); + return sensors[index]; } vector sensor_plugin_loader::get_sensors(sensor_type_t type) { vector sensor_list; - pair ret; + std::pair ret; - if (type == ALL_SENSOR) + if ((int)(type) == (int)SENSOR_HAL_TYPE_ALL) ret = std::make_pair(m_sensors.begin(), m_sensors.end()); else - ret = m_sensors.equal_range(type); + ret = m_sensors.equal_range(static_cast(type)); for (auto it = ret.first; it != ret.second; ++it) sensor_list.push_back(it->second.get()); @@ -462,33 +300,16 @@ vector sensor_plugin_loader::get_sensors(sensor_type_t type) return sensor_list; } - -sensor_base* sensor_plugin_loader::get_sensor(sensor_id_t id) -{ - vector sensors; - - sensor_type_t type = (sensor_type_t) (id & SENSOR_TYPE_MASK); - unsigned int index = id >> SENSOR_INDEX_SHIFT; - - sensors = get_sensors(type); - - if (sensors.size() <= index) - return NULL; - - return sensors[index]; -} - - vector sensor_plugin_loader::get_virtual_sensors(void) { vector virtual_list; - sensor_base* module; + sensor_base* sensor; for (auto sensor_it = m_sensors.begin(); sensor_it != m_sensors.end(); ++sensor_it) { - module = sensor_it->second.get(); + sensor = sensor_it->second.get(); - if (module && module->is_virtual() == true) { - virtual_list.push_back(module); + if (sensor && sensor->is_virtual() == true) { + virtual_list.push_back(sensor); } } diff --git a/src/server/sensor_plugin_loader.h b/src/server/sensor_plugin_loader.h index 35a1fb5..bc0bb66 100755 --- a/src/server/sensor_plugin_loader.h +++ b/src/server/sensor_plugin_loader.h @@ -36,54 +36,29 @@ class sensor_hal; class sensor_base; -typedef std::multimap > sensor_hal_plugins; -/* -* a hal_plugins is a group of hal plugin -* -* ... -* -* -*/ - -typedef std::multimap > sensor_plugins; -/* -* a sensor_plugins is a group of sensor plugin -* -* ... -* -* -*/ +typedef std::multimap> sensor_plugins; class sensor_plugin_loader { private: - typedef enum plugin_type { - PLUGIN_TYPE_HAL, - PLUGIN_TYPE_SENSOR, - } plugin_type; - sensor_plugin_loader(); - bool load_module(const std::string &path, std::vector &sensors, void* &handle); - bool insert_module(plugin_type type, const std::string &path); + bool load_plugin(const std::string &path, std::vector &sensors, void* &handle); + bool insert_plugins(std::vector hals); + bool insert_sensors(sensor_hal *hal); void show_sensor_info(void); bool get_paths_from_dir(const std::string &dir_path, std::vector &hal_paths); - sensor_hal_plugins m_sensor_hals; sensor_plugins m_sensors; - public: static sensor_plugin_loader& get_instance(); bool load_plugins(void); - sensor_hal* get_sensor_hal(sensor_hal_type_t type); - std::vector get_sensor_hals(sensor_hal_type_t type); - sensor_base* get_sensor(sensor_type_t type); - std::vector get_sensors(sensor_type_t type); sensor_base* get_sensor(sensor_id_t id); + std::vector get_sensors(sensor_type_t type); std::vector get_virtual_sensors(void); }; #endif /* _SENSOR_PLUGIN_LOADER_CLASS_H_ */ diff --git a/src/server/virtual_sensor.cpp b/src/server/virtual_sensor.cpp index 9a9aabb..75c3bc0 100755 --- a/src/server/virtual_sensor.cpp +++ b/src/server/virtual_sensor.cpp @@ -47,10 +47,3 @@ bool virtual_sensor::deactivate(void) { return csensor_event_dispatcher::get_instance().delete_active_virtual_sensor(this); } - -bool virtual_sensor::push(sensor_event_t const &event) -{ - csensor_event_queue::get_instance().push(event); - return true; -} - diff --git a/src/server/virtual_sensor.h b/src/server/virtual_sensor.h index 780ba66..a695538 100755 --- a/src/server/virtual_sensor.h +++ b/src/server/virtual_sensor.h @@ -28,17 +28,19 @@ public: virtual_sensor(); virtual ~virtual_sensor(); - virtual void synthesize(const sensor_event_t& event, std::vector &outs) = 0; - virtual int get_sensor_data(const unsigned int event_type, sensor_data_t &data) = 0; - bool is_virtual(void); - bool m_hardware_fusion; + /* module info */ + virtual sensor_type_t get_type() = 0; + virtual unsigned int get_event_type(void) = 0; + virtual const char* get_name(void) = 0; + virtual void synthesize(const sensor_event_t& event, std::vector &outs) = 0; + virtual int get_sensor_data(sensor_data_t &data) = 0; + virtual bool is_virtual(void); protected: - bool activate(void); bool deactivate(void); - - bool push(sensor_event_t const &event); +private: + bool m_hardware_fusion; }; #endif diff --git a/src/shared/sensor_hal.h b/src/shared/sensor_hal.h index 8e14b22..7e062ef 100644 --- a/src/shared/sensor_hal.h +++ b/src/shared/sensor_hal.h @@ -19,49 +19,127 @@ #ifndef _SENSOR_HAL_H_ #define _SENSOR_HAL_H_ + +#include #include +#include +#include #include +#define SENSOR_HAL_VERSION(maj,min) \ + ((((maj) & 0xffff) << 24) | ((min) & 0xffff)) + +/* + * 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_HAL_TYPE_UNKNOWN = -2, + SENSOR_HAL_TYPE_ALL = -1, SENSOR_HAL_TYPE_ACCELEROMETER, + SENSOR_HAL_TYPE_GRAVITY, + SENSOR_HAL_TYPE_LINEAR_ACCELERATION, SENSOR_HAL_TYPE_GEOMAGNETIC, + SENSOR_HAL_TYPE_ROTATION_VECTOR, + SENSOR_HAL_TYPE_ORIENTATION, + SENSOR_HAL_TYPE_GYROSCOPE, SENSOR_HAL_TYPE_LIGHT, SENSOR_HAL_TYPE_PROXIMITY, - SENSOR_HAL_TYPE_GYROSCOPE, SENSOR_HAL_TYPE_PRESSURE, - SENSOR_HAL_TYPE_CONTEXT, - SENSOR_HAL_TYPE_BIO, - SENSOR_HAL_TYPE_BIO_HRM, - SENSOR_HAL_TYPE_PIR, - SENSOR_HAL_TYPE_PIR_LONG, + SENSOR_HAL_TYPE_ULTRAVIOLET, SENSOR_HAL_TYPE_TEMPERATURE, SENSOR_HAL_TYPE_HUMIDITY, - SENSOR_HAL_TYPE_ULTRAVIOLET, - SENSOR_HAL_TYPE_DUST, - SENSOR_HAL_TYPE_BIO_LED_IR, - SENSOR_HAL_TYPE_BIO_LED_RED, - SENSOR_HAL_TYPE_BIO_LED_GREEN, - SENSOR_HAL_TYPE_RV_RAW, + SENSOR_HAL_TYPE_HRM, + SENSOR_HAL_TYPE_HRM_LED_GREEN, + SENSOR_HAL_TYPE_HRM_LED_IR, + SENSOR_HAL_TYPE_HRM_LED_RED, SENSOR_HAL_TYPE_GYROSCOPE_UNCAL, SENSOR_HAL_TYPE_GEOMAGNETIC_UNCAL, - SENSOR_HAL_TYPE_FUSION, -} sensor_hal_type_t; + SENSOR_HAL_TYPE_GYROSCOPE_RV, + SENSOR_HAL_TYPE_GEOMAGNETIC_RV, + SENSOR_HAL_TYPE_ACTIVITY_STATIONARY = 0x100, + SENSOR_HAL_TYPE_ACTIVITY_WALK, + SENSOR_HAL_TYPE_ACTIVITY_RUN, + SENSOR_HAL_TYPE_ACTIVITY_IN_VEHICLE, + SENSOR_HAL_TYPE_ACTIVITY_ON_BICYCLE, + SENSOR_HAL_TYPE_GESTURE_MOVEMENT = 0x200, + SENSOR_HAL_TYPE_GESTURE_WRIST_UP, + SENSOR_HAL_TYPE_GESTURE_WRIST_DOWN, + SENSOR_HAL_TYPE_HUMAN_PEDOMETER = 0x300, + SENSOR_HAL_TYPE_HUMAN_SLEEP_MONITOR, + + SENSOR_HAL_TYPE_FUSION = 0x900, + SENSOR_HAL_TYPE_AUTO_ROTATION, + + SENSOR_HAL_TYPE_CONTEXT = 0x1000, + SENSOR_HAL_TYPE_MOTION, + SENSOR_HAL_TYPE_PIR, + SENSOR_HAL_TYPE_PIR_LONG, + SENSOR_HAL_TYPE_DUST, + SENSOR_HAL_TYPE_THERMOMETER, + SENSOR_HAL_TYPE_PEDOMETER, + SENSOR_HAL_TYPE_FLAT, + SENSOR_HAL_TYPE_HRM_RAW, + SENSOR_HAL_TYPE_TILT, + SENSOR_HAL_TYPE_ROTATION_VECTOR_RAW, +} sensor_hal_type; + +/* + * A platform sensor handler is generated based on this handle + * ID can be assigned from HAL developer. so it has to be unique in HAL. + */ +typedef struct sensor_handle_t { + uint32_t id; + std::string name; + sensor_hal_type type; + unsigned int event_type; // for Internal API +} sensor_handle_t; + +/* + * Sensor HAL interface + * 1 HAL must be abstracted from 1 device event node + */ class sensor_hal { public: - sensor_hal(); - virtual ~sensor_hal(); - - virtual std::string get_model_id(void) = 0; - virtual sensor_hal_type_t get_type(void) = 0; - virtual bool enable(void) = 0; - virtual bool disable(void) = 0; - virtual bool is_data_ready(void) = 0; - virtual bool set_interval(unsigned long val) = 0; - virtual int get_sensor_data(sensor_data_t &data) = 0; - virtual bool get_properties(sensor_properties_s &properties) = 0; + uint32_t get_hal_version(void) { + return SENSOR_HAL_VERSION(1, 0); + } + + virtual int get_poll_fd(void) = 0; + virtual bool get_sensors(std::vector &sensors) = 0; + + /* enable/disable sensor device */ + virtual bool enable(uint32_t id) = 0; + virtual bool disable(uint32_t id) = 0; + + /* set_command or set_option? */ + virtual bool set_command(uint32_t id, std::string command, std::string value) = 0; + + /* the belows can be merged to one */ + virtual bool set_interval(uint32_t id, unsigned long val) = 0; + virtual bool set_batch_latency(uint32_t id, unsigned long val) = 0; + + /* sensor fw read the data when is_data_ready() is true */ + virtual bool is_data_ready() = 0; + virtual bool get_sensor_data(uint32_t id, sensor_data_t &data) = 0; + virtual int get_sensor_event(uint32_t id, sensor_event_t **event) = 0; + + /* TODO: use get_sensors() instead of get_properties() */ + virtual bool get_properties(uint32_t id, sensor_properties_s &properties) = 0; }; #endif /*_SENSOR_HAL_H_*/ diff --git a/src/shared/sensor_info.cpp b/src/shared/sensor_info.cpp index c25f366..030b2dc 100644 --- a/src/shared/sensor_info.cpp +++ b/src/shared/sensor_info.cpp @@ -81,16 +81,14 @@ int sensor_info::get_max_batch_count(void) return m_max_batch_count; } -void sensor_info::get_supported_events(vector &events) +unsigned int sensor_info::get_supported_event() { - events = m_supported_events; + return m_supported_event; } bool sensor_info::is_supported_event(unsigned int event) { - auto iter = find(m_supported_events.begin(), m_supported_events.end(), event); - - if (iter == m_supported_events.end()) + if (event != m_supported_event) return false; return true; @@ -156,14 +154,9 @@ void sensor_info::set_max_batch_count(int max_batch_count) m_max_batch_count = max_batch_count; } -void sensor_info::register_supported_event(unsigned int event) +void sensor_info::set_supported_event(unsigned int event) { - m_supported_events.push_back(event); -} - -void sensor_info::set_supported_events(vector &events) -{ - copy(events.begin(), events.end(), back_inserter(m_supported_events)); + m_supported_event = event; } void sensor_info::set_wakeup_supported(bool supported) @@ -184,7 +177,7 @@ void sensor_info::get_raw_data(raw_data_t &data) put(data, m_min_interval); put(data, m_fifo_count); put(data, m_max_batch_count); - put(data, m_supported_events); + put(data, m_supported_event); put(data, m_wakeup_supported); } @@ -210,7 +203,7 @@ void sensor_info::set_raw_data(const char *data, int data_len) it_r_data = get(it_r_data, m_min_interval); it_r_data = get(it_r_data, m_fifo_count); it_r_data = get(it_r_data, m_max_batch_count); - it_r_data = get(it_r_data, m_supported_events); + it_r_data = get(it_r_data, m_supported_event); it_r_data = get(it_r_data, m_wakeup_supported); } @@ -227,9 +220,7 @@ void sensor_info::show(void) INFO("Min_interval = %d", m_min_interval); INFO("Fifo_count = %d", m_fifo_count); INFO("Max_batch_count = %d", m_max_batch_count); - - for (unsigned int i = 0; i < m_supported_events.size(); ++i) - INFO("supported_events[%u] = 0x%x", i, m_supported_events[i]); + INFO("supported_event = 0x%x", m_supported_event); INFO("Wakeup_supported = %d", m_wakeup_supported); } @@ -248,7 +239,7 @@ void sensor_info::clear(void) m_min_interval = 0; m_fifo_count = 0; m_max_batch_count = 0; - m_supported_events.clear(); + m_supported_event = 0; m_wakeup_supported = false; } @@ -263,33 +254,31 @@ void sensor_info::put(raw_data_t &data, int value) copy(&buffer[0], &buffer[sizeof(buffer)], back_inserter(data)); } -void sensor_info::put(raw_data_t &data, float value) +void sensor_info::put(raw_data_t &data, unsigned int value) { char buffer[sizeof(value)]; - float *temp = (float *) buffer; + unsigned int *temp = (unsigned int *) buffer; *temp = value; copy(&buffer[0], &buffer[sizeof(buffer)], back_inserter(data)); } -void sensor_info::put(raw_data_t &data, string &value) +void sensor_info::put(raw_data_t &data, float value) { - put(data, (int) value.size()); + char buffer[sizeof(value)]; - copy(value.begin(), value.end(), back_inserter(data)); + float *temp = (float *) buffer; + *temp = value; + + copy(&buffer[0], &buffer[sizeof(buffer)], back_inserter(data)); } -void sensor_info::put(raw_data_t &data, vector &value) +void sensor_info::put(raw_data_t &data, string &value) { put(data, (int) value.size()); - auto it = value.begin(); - - while (it != value.end()) { - put(data, (int) *it); - ++it; - } + copy(value.begin(), value.end(), back_inserter(data)); } void sensor_info::put(raw_data_t &data, bool value) @@ -309,37 +298,29 @@ raw_data_iterator sensor_info::get(raw_data_iterator it, int &value) return it + sizeof(value); } -raw_data_iterator sensor_info::get(raw_data_iterator it, float &value) +raw_data_iterator sensor_info::get(raw_data_iterator it, unsigned int &value) { copy(it, it + sizeof(value), (char*) &value); return it + sizeof(value); } -raw_data_iterator sensor_info::get(raw_data_iterator it, string &value) +raw_data_iterator sensor_info::get(raw_data_iterator it, float &value) { - int len; - - it = get(it, len); - - copy(it, it + len, back_inserter(value)); + copy(it, it + sizeof(value), (char*) &value); - return it + len; + return it + sizeof(value); } -raw_data_iterator sensor_info::get(raw_data_iterator it, vector &value) +raw_data_iterator sensor_info::get(raw_data_iterator it, string &value) { int len; it = get(it, len); - int ele; - for (int i = 0; i < len; ++i) { - it = get(it, ele); - value.push_back(ele); - } + copy(it, it + len, back_inserter(value)); - return it; + return it + len; } raw_data_iterator sensor_info::get(raw_data_iterator it, bool &value) diff --git a/src/shared/sensor_info.h b/src/shared/sensor_info.h index 28a35a2..732cc62 100644 --- a/src/shared/sensor_info.h +++ b/src/shared/sensor_info.h @@ -43,7 +43,7 @@ public: int get_min_interval(void); int get_fifo_count(void); int get_max_batch_count(void); - void get_supported_events(std::vector &events); + unsigned int get_supported_event(); bool is_supported_event(unsigned int event); bool is_wakeup_supported(void); @@ -58,8 +58,7 @@ public: void set_min_interval(int min_interval); void set_fifo_count(int fifo_count); void set_max_batch_count(int max_batch_count); - void register_supported_event(unsigned int event); - void set_supported_events(std::vector &events); + void set_supported_event(unsigned int event); void set_wakeup_supported(bool supported); void clear(void); @@ -79,19 +78,19 @@ private: int m_min_interval; int m_fifo_count; int m_max_batch_count; - std::vector m_supported_events; + unsigned int m_supported_event; bool m_wakeup_supported; void put(raw_data_t &data, int value); + void put(raw_data_t &data, unsigned int value); void put(raw_data_t &data, float value); void put(raw_data_t &data, std::string &value); - void put(raw_data_t &data, std::vector &value); void put(raw_data_t &data, bool value); raw_data_iterator get(raw_data_iterator it, int &value); + raw_data_iterator get(raw_data_iterator it, unsigned int &value); raw_data_iterator get(raw_data_iterator it, float &value); raw_data_iterator get(raw_data_iterator it, std::string &value); - raw_data_iterator get(raw_data_iterator it, std::vector &value); raw_data_iterator get(raw_data_iterator it, bool &value); }; -- 2.7.4 From 3a1c4a357cf62fa345251dded841c940542198b4 Mon Sep 17 00:00:00 2001 From: "kibak.yoon" Date: Thu, 21 Jan 2016 16:18:10 +0900 Subject: [PATCH 05/16] sensord: add sensor_event_poller for polling the event. * sensor_event_poller detects sensor_event from poll_fd. Change-Id: I29aecf10fdf504e20127bc958bb0503c1ea48b39 Signed-off-by: kibak.yoon --- src/server/sensor_event_poller.cpp | 143 +++++++++++++++++++++++++++++++++++++ src/server/sensor_event_poller.h | 41 +++++++++++ src/server/server.cpp | 17 +++++ src/server/server.h | 1 + 4 files changed, 202 insertions(+) create mode 100644 src/server/sensor_event_poller.cpp create mode 100644 src/server/sensor_event_poller.h diff --git a/src/server/sensor_event_poller.cpp b/src/server/sensor_event_poller.cpp new file mode 100644 index 0000000..2a8ec96 --- /dev/null +++ b/src/server/sensor_event_poller.cpp @@ -0,0 +1,143 @@ +/* + * libsensord-share + * + * 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. + * + */ + +#include +#include +#include +#include +#include + +#define EPOLL_MAX_FD 32 + +sensor_event_poller::sensor_event_poller() +{ + init_sensor_map(); + init_fd(); +} + +sensor_event_poller::~sensor_event_poller() +{ +} + +void sensor_event_poller::init_sensor_map() +{ + int fd; + physical_sensor *sensor; + + std::vector sensors; + sensors = sensor_plugin_loader::get_instance().get_sensors(ALL_SENSOR); + + auto it_sensor = sensors.begin(); + + while (it_sensor != sensors.end()) { + if ((*it_sensor)->is_virtual()) { + ++it_sensor; + continue; + } + + sensor = dynamic_cast(*it_sensor); + fd = sensor->get_poll_fd(); + + m_fd_sensors.insert(std::make_pair(fd, sensor)); + ++it_sensor; + } +} + +void sensor_event_poller::init_fd() +{ + fd_sensor_plugins::iterator it; + for (it = m_fd_sensors.begin(); it != m_fd_sensors.end(); it = m_fd_sensors.upper_bound(it->first)) { + if (!add_poll_fd(it->first)) + continue; + } +} + +bool sensor_event_poller::add_poll_fd(int fd) +{ + return m_poller.add_fd(fd); +} + +bool sensor_event_poller::poll() +{ + while (true) { + int fd; + struct epoll_event poll_event; + + if (!m_poller.poll(poll_event)) + continue; + + fd = poll_event.data.fd; + + if (!is_data_ready(fd)) + continue; + + process_event(fd); + } + + return true; +} + +bool sensor_event_poller::is_data_ready(int fd) +{ + fd_sensor_plugins::iterator it; + physical_sensor *sensor; + + it = m_fd_sensors.find(fd); + sensor = dynamic_cast(it->second); + + if (!sensor) { + ERR("Failed to get sensor plugin"); + return false; + } + + if (!sensor->is_data_ready()) + return false; + + return true; +} + +bool sensor_event_poller::process_event(int fd) +{ + physical_sensor *sensor; + std::pair ret; + + ret = m_fd_sensors.equal_range(fd); + + for (auto it_sensor = ret.first; it_sensor != ret.second; ++it_sensor) { + /* + sensor_event_t event; + sensor = it_sensor->second; + + event.sensor_id = sensor->get_id(); + event.event_type = sensor->get_event_type(); + sensor->get_sensor_data(event.data); + */ + sensor_event_t *event; + int event_length; + sensor = it_sensor->second; + + event_length = sensor->get_sensor_event(&event); + event->sensor_id = sensor->get_id(); + event->event_type = sensor->get_event_type(); + + sensor->push(event, event_length); + } + + return true; +} diff --git a/src/server/sensor_event_poller.h b/src/server/sensor_event_poller.h new file mode 100644 index 0000000..51d5f26 --- /dev/null +++ b/src/server/sensor_event_poller.h @@ -0,0 +1,41 @@ +/* + * libsensord-share + * + * 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. + * + */ + +#include +#include +#include + +typedef std::multimap fd_sensor_plugins; + +class sensor_event_poller { +public: + sensor_event_poller(); + virtual ~sensor_event_poller(); + + bool poll(); +private: + poller m_poller; + fd_sensor_plugins m_fd_sensors; + + void init_fd(); + void init_sensor_map(); + bool add_poll_fd(int fd); + bool is_data_ready(int fd); + bool process_event(int fd); +}; diff --git a/src/server/server.cpp b/src/server/server.cpp index 497224a..f4d8468 100755 --- a/src/server/server.cpp +++ b/src/server/server.cpp @@ -22,6 +22,8 @@ #include #include #include +#include +#include using std::thread; @@ -82,6 +84,18 @@ void server::accept_client(void) } } +void server::poll_event(void) +{ + INFO("Event poller is started"); + + sensor_event_poller poller; + + if (!poller.poll()) { + ERR("Failed to poll event"); + return; + } +} + void server::run(void) { int sock_fd = -1; @@ -118,6 +132,9 @@ void server::run(void) thread client_accepter(&server::accept_client, this); client_accepter.detach(); + thread event_poller(&server::poll_event, this); + event_poller.detach(); + sd_notify(0, "READY=1"); g_main_loop_run(m_mainloop); diff --git a/src/server/server.h b/src/server/server.h index 4406433..3f6f393 100755 --- a/src/server/server.h +++ b/src/server/server.h @@ -32,6 +32,7 @@ private: server(); ~server(); + void poll_event(void); void accept_client(void); int get_systemd_socket(const char *name); public: -- 2.7.4 From 22aea8ad393f1cf0fe2b508b41eaae014b7c8ec3 Mon Sep 17 00:00:00 2001 From: "kibak.yoon" Date: Thu, 21 Jan 2016 16:22:17 +0900 Subject: [PATCH 06/16] sensord: enable auto-rotation sensor Change-Id: I560ed1275e278212837d89dba362da9c19a6f952 Signed-off-by: kibak.yoon --- src/server/CMakeLists.txt | 2 +- src/server/plugins/CMakeLists.txt | 31 ----------------- .../plugins/auto_rotation/auto_rotation_sensor.cpp | 40 ++++++++++------------ .../plugins/auto_rotation/auto_rotation_sensor.h | 14 ++++---- 4 files changed, 28 insertions(+), 59 deletions(-) diff --git a/src/server/CMakeLists.txt b/src/server/CMakeLists.txt index e059764..a17facd 100755 --- a/src/server/CMakeLists.txt +++ b/src/server/CMakeLists.txt @@ -4,7 +4,7 @@ project(sensord CXX) INCLUDE(FindPkgConfig) PKG_CHECK_MODULES(server_pkgs REQUIRED glib-2.0 gio-2.0 dlog libsystemd-daemon libxml-2.0 cynara-client cynara-creds-socket cynara-session) -#add_subdirectory(plugins) +add_subdirectory(plugins) add_definitions(${PLUGIN_DEFS}) diff --git a/src/server/plugins/CMakeLists.txt b/src/server/plugins/CMakeLists.txt index d2bfdbc..3dae2cb 100755 --- a/src/server/plugins/CMakeLists.txt +++ b/src/server/plugins/CMakeLists.txt @@ -19,21 +19,6 @@ include_directories(${CMAKE_SOURCE_DIR}/src/server) include_directories(${CMAKE_SOURCE_DIR}/src/shared) -list (APPEND DIR_INCLUDE "${CMAKE_CURRENT_SOURCE_DIR}/accel") -list (APPEND PLUGIN_SRCS "${CMAKE_CURRENT_SOURCE_DIR}/accel/accel_sensor.cpp") - -list (APPEND DIR_INCLUDE "${CMAKE_CURRENT_SOURCE_DIR}/gyro") -list (APPEND PLUGIN_SRCS "${CMAKE_CURRENT_SOURCE_DIR}/gyro/gyro_sensor.cpp") - -list (APPEND DIR_INCLUDE "${CMAKE_CURRENT_SOURCE_DIR}/proxi") -list (APPEND PLUGIN_SRCS "${CMAKE_CURRENT_SOURCE_DIR}/proxi/proxi_sensor.cpp") - -list (APPEND DIR_INCLUDE "${CMAKE_CURRENT_SOURCE_DIR}/light") -list (APPEND PLUGIN_SRCS "${CMAKE_CURRENT_SOURCE_DIR}/light/light_sensor.cpp") - -list (APPEND DIR_INCLUDE "${CMAKE_CURRENT_SOURCE_DIR}/geo") -list (APPEND PLUGIN_SRCS "${CMAKE_CURRENT_SOURCE_DIR}/geo/geo_sensor.cpp") - IF("${AUTO_ROTATION}" STREQUAL "ON") list (APPEND DIR_INCLUDE "${CMAKE_CURRENT_SOURCE_DIR}/auto_rotation") list (APPEND PLUGIN_SRCS "${CMAKE_CURRENT_SOURCE_DIR}/auto_rotation/auto_rotation_alg.cpp") @@ -42,18 +27,6 @@ list (APPEND PLUGIN_SRCS "${CMAKE_CURRENT_SOURCE_DIR}/auto_rotation/auto_rotatio list (APPEND PLUGIN_DEFS "-DENABLE_AUTO_ROTATION") ENDIF() -list (APPEND DIR_INCLUDE "${CMAKE_CURRENT_SOURCE_DIR}/pressure") -list (APPEND PLUGIN_SRCS "${CMAKE_CURRENT_SOURCE_DIR}/pressure/pressure_sensor.cpp") - -list (APPEND DIR_INCLUDE "${CMAKE_CURRENT_SOURCE_DIR}/temperature") -list (APPEND PLUGIN_SRCS "${CMAKE_CURRENT_SOURCE_DIR}/temperature/temperature_sensor.cpp") - -list (APPEND DIR_INCLUDE "${CMAKE_CURRENT_SOURCE_DIR}/ultraviolet") -list (APPEND PLUGIN_SRCS "${CMAKE_CURRENT_SOURCE_DIR}/ultraviolet/ultraviolet_sensor.cpp") - -list (APPEND DIR_INCLUDE "${CMAKE_CURRENT_SOURCE_DIR}/bio_led_red") -list (APPEND PLUGIN_SRCS "${CMAKE_CURRENT_SOURCE_DIR}/bio_led_red/bio_led_red_sensor.cpp") - IF("${ORIENTATION}" STREQUAL "ON") set(SENSOR_FUSION_ENABLE "1") set(ORIENTATION_ENABLE "1") @@ -145,10 +118,6 @@ list (APPEND PLUGIN_SRCS "${CMAKE_CURRENT_SOURCE_DIR}/rotation_vector/gaming_rv/ list (APPEND PLUGIN_DEFS "-DENABLE_GAMING_RV") ENDIF() -list (APPEND DIR_INCLUDE "${CMAKE_CURRENT_SOURCE_DIR}/rotation_vector/rv_raw") -list (APPEND PLUGIN_SRCS "${CMAKE_CURRENT_SOURCE_DIR}/rotation_vector/rv_raw/rv_raw_sensor.cpp") - - set(PLUGIN_SRCS ${PLUGIN_SRCS} PARENT_SCOPE) set(DIR_INCLUDE ${DIR_INCLUDE} PARENT_SCOPE) set(PLUGIN_DEFS ${PLUGIN_DEFS} PARENT_SCOPE) diff --git a/src/server/plugins/auto_rotation/auto_rotation_sensor.cpp b/src/server/plugins/auto_rotation/auto_rotation_sensor.cpp index 64cef31..15046be 100755 --- a/src/server/plugins/auto_rotation/auto_rotation_sensor.cpp +++ b/src/server/plugins/auto_rotation/auto_rotation_sensor.cpp @@ -60,10 +60,6 @@ auto_rotation_sensor::auto_rotation_sensor() , m_alg(NULL) { cvirtual_sensor_config &config = cvirtual_sensor_config::get_instance(); - m_name = string(SENSOR_NAME); - - register_supported_event(AUTO_ROTATION_CHANGE_STATE_EVENT); - if (!config.get(SENSOR_TYPE_AUTO_ROTATION, ELEMENT_VENDOR, m_vendor)) { ERR("[VENDOR] is empty\n"); @@ -87,6 +83,8 @@ auto_rotation_sensor::auto_rotation_sensor() INFO("m_default_sampling_time = %d", m_default_sampling_time); m_interval = m_default_sampling_time * MS_TO_US; + + init(); } auto_rotation_sensor::~auto_rotation_sensor() @@ -96,6 +94,21 @@ auto_rotation_sensor::~auto_rotation_sensor() INFO("auto_rotation_sensor is destroyed!\n"); } +sensor_type_t auto_rotation_sensor::get_type(void) +{ + return AUTO_ROTATION_SENSOR; +} + +unsigned int auto_rotation_sensor::get_event_type(void) +{ + return (AUTO_ROTATION_SENSOR << 16) | 0x0001; +} + +const char* auto_rotation_sensor::get_name(void) +{ + return SENSOR_NAME; +} + bool auto_rotation_sensor::check_lib(void) { if (access(AUTO_ROTATION_LIB, F_OK) < 0) @@ -135,18 +148,12 @@ bool auto_rotation_sensor::init() return true; } -void auto_rotation_sensor::get_types(vector &types) -{ - types.push_back(AUTO_ROTATION_SENSOR); -} - bool auto_rotation_sensor::on_start(void) { m_rotation = AUTO_ROTATION_DEGREE_UNKNOWN; m_alg->start(); - m_accel_sensor->add_client(ACCELEROMETER_RAW_DATA_EVENT); m_accel_sensor->add_interval((intptr_t)this , (m_interval/MS_TO_US), true); m_accel_sensor->start(); @@ -155,7 +162,6 @@ bool auto_rotation_sensor::on_start(void) bool auto_rotation_sensor::on_stop(void) { - m_accel_sensor->delete_client(ACCELEROMETER_RAW_DATA_EVENT); m_accel_sensor->delete_interval((intptr_t)this , true); m_accel_sensor->stop(); @@ -164,8 +170,6 @@ bool auto_rotation_sensor::on_stop(void) void auto_rotation_sensor::synthesize(const sensor_event_t& event, vector &outs) { - AUTOLOCK(m_mutex); - if (event.event_type == ACCELEROMETER_RAW_DATA_EVENT) { int rotation; float acc[3]; @@ -176,7 +180,6 @@ void auto_rotation_sensor::synthesize(const sensor_event_t& event, vectorget_rotation(acc, event.data.timestamp, m_rotation, rotation)) return; - AUTOLOCK(m_value_mutex); sensor_event_t rotation_event; INFO("Rotation: %d, ACC[0]: %f, ACC[1]: %f, ACC[2]: %f", rotation, event.data.values[0], event.data.values[1], event.data.values[2]); @@ -195,13 +198,8 @@ void auto_rotation_sensor::synthesize(const sensor_event_t& event, vector &types); - - static bool working(void *inst); + /* module info */ + virtual sensor_type_t get_type(); + virtual unsigned int get_event_type(void); + virtual const char* get_name(void); void synthesize(const sensor_event_t& event, std::vector &outs); - int get_sensor_data(const unsigned int event_type, sensor_data_t &data); - virtual bool get_properties(sensor_type_t sensor_type, sensor_properties_s &properties); + int get_sensor_data(sensor_data_t &data); + virtual bool get_properties(sensor_properties_s &properties); private: sensor_base *m_accel_sensor; cmutex m_value_mutex; @@ -51,6 +51,8 @@ private: std::string m_raw_data_unit; int m_default_sampling_time; + bool init(); + auto_rotation_alg *get_alg(); virtual bool on_start(void); virtual bool on_stop(void); -- 2.7.4 From d6ed973de5d9644de9bb2490a96579c925aac6ce Mon Sep 17 00:00:00 2001 From: "kibak.yoon" Date: Thu, 21 Jan 2016 22:57:10 +0900 Subject: [PATCH 07/16] sensord: add sensor_properties_t to sensor_handle_t Change-Id: I68c99af1141bb2fbf3419620b63d2818165ce36d Signed-off-by: kibak.yoon --- src/server/physical_sensor.cpp | 1 + src/shared/sensor_hal.h | 1 + 2 files changed, 2 insertions(+) diff --git a/src/server/physical_sensor.cpp b/src/server/physical_sensor.cpp index b25bc79..2df83e3 100644 --- a/src/server/physical_sensor.cpp +++ b/src/server/physical_sensor.cpp @@ -57,6 +57,7 @@ void physical_sensor::set_sensor_handle(sensor_handle_t handle) m_handle.name = handle.name; m_handle.type = handle.type; m_handle.event_type = handle.event_type; + m_handle.properties = handle.properties; } void physical_sensor::set_sensor_hal(sensor_hal *hal) diff --git a/src/shared/sensor_hal.h b/src/shared/sensor_hal.h index 7e062ef..c9466ef 100644 --- a/src/shared/sensor_hal.h +++ b/src/shared/sensor_hal.h @@ -107,6 +107,7 @@ typedef struct sensor_handle_t { std::string name; sensor_hal_type type; unsigned int event_type; // for Internal API + sensor_properties_s properties; } sensor_handle_t; /* -- 2.7.4 From 3a2d9faddc884116610b105f8cf07433b474658b Mon Sep 17 00:00:00 2001 From: "kibak.yoon" Date: Fri, 22 Jan 2016 13:40:30 +0900 Subject: [PATCH 08/16] sensord: remove "c" prefix about all classes Change-Id: I364d88ebeca3cc9e522b560f94b01c2601987f4d Signed-off-by: kibak.yoon --- src/client/CMakeLists.txt | 12 +-- src/client/client.cpp | 6 +- src/client/client_common.cpp | 2 +- src/client/client_common.h | 14 +-- src/client/command_channel.h | 1 + src/client/{creg_event_info.h => reg_event_info.h} | 12 +-- ...nsor_client_info.cpp => sensor_client_info.cpp} | 100 ++++++++++----------- ...{csensor_client_info.h => sensor_client_info.h} | 18 ++-- ...vent_listener.cpp => sensor_event_listener.cpp} | 62 ++++++------- ...or_event_listener.h => sensor_event_listener.h} | 30 +++---- ...nsor_handle_info.cpp => sensor_handle_info.cpp} | 32 +++---- ...{csensor_handle_info.h => sensor_handle_info.h} | 18 ++-- ...nt_info_manager.cpp => client_info_manager.cpp} | 60 ++++++------- ...client_info_manager.h => client_info_manager.h} | 22 ++--- ..._sensor_record.cpp => client_sensor_record.cpp} | 74 +++++++-------- ...ient_sensor_record.h => client_sensor_record.h} | 16 ++-- src/server/command_worker.cpp | 8 +- src/server/command_worker.h | 14 +-- src/server/dbus_util.h | 2 +- src/server/{cconfig.cpp => device_config.cpp} | 8 +- src/server/{cconfig.h => device_config.h} | 12 +-- src/server/permission_checker.h | 2 +- src/server/physical_sensor.cpp | 2 +- src/server/physical_sensor.h | 2 +- ...{cplugin_info_list.cpp => plugin_info_list.cpp} | 36 ++++---- .../{cplugin_info_list.h => plugin_info_list.h} | 8 +- .../plugins/auto_rotation/auto_rotation_sensor.cpp | 4 +- src/server/plugins/fusion/fusion_sensor.cpp | 4 +- src/server/plugins/gravity/gravity_sensor.cpp | 4 +- .../plugins/linear_accel/linear_accel_sensor.cpp | 4 +- .../plugins/orientation/orientation_sensor.cpp | 4 +- .../rotation_vector/gaming_rv/gaming_rv_sensor.cpp | 4 +- .../geomagnetic_rv/geomagnetic_rv_sensor.cpp | 4 +- .../plugins/rotation_vector/rv/rv_sensor.cpp | 4 +- src/server/plugins/tilt/tilt_sensor.cpp | 4 +- src/server/sensor_base.cpp | 12 +-- src/server/sensor_base.h | 6 +- ..._dispatcher.cpp => sensor_event_dispatcher.cpp} | 62 ++++++------- ...vent_dispatcher.h => sensor_event_dispatcher.h} | 22 ++--- src/server/sensor_event_poller.h | 5 ++ ...nsor_event_queue.cpp => sensor_event_queue.cpp} | 12 +-- ...{csensor_event_queue.h => sensor_event_queue.h} | 19 ++-- src/server/sensor_plugin_loader.h | 6 +- src/server/{csensor_usage.cpp => sensor_usage.cpp} | 12 +-- src/server/{csensor_usage.h => sensor_usage.h} | 12 +-- src/server/server.cpp | 2 +- src/server/server.h | 6 +- src/server/virtual_sensor.cpp | 6 +- src/server/virtual_sensor.h | 2 +- ...sensor_config.cpp => virtual_sensor_config.cpp} | 46 +++++----- ...ual_sensor_config.h => virtual_sensor_config.h} | 24 ++--- src/server/worker_thread.h | 2 +- src/shared/cbase_lock.h | 7 +- src/shared/cmutex.h | 7 +- src/shared/cpacket.h | 7 +- src/shared/csocket.h | 6 +- src/shared/sensor_common.h | 7 +- src/shared/sensor_hal.h | 2 +- src/shared/sensor_logs.h | 7 +- src/shared/sf_common.h | 8 +- 60 files changed, 459 insertions(+), 457 deletions(-) rename src/client/{creg_event_info.h => reg_event_info.h} (87%) rename src/client/{csensor_client_info.cpp => sensor_client_info.cpp} (78%) rename src/client/{csensor_client_info.h => sensor_client_info.h} (92%) rename src/client/{csensor_event_listener.cpp => sensor_event_listener.cpp} (88%) rename src/client/{csensor_event_listener.h => sensor_event_listener.h} (78%) rename src/client/{csensor_handle_info.cpp => sensor_handle_info.cpp} (76%) rename src/client/{csensor_handle_info.h => sensor_handle_info.h} (83%) rename src/server/{cclient_info_manager.cpp => client_info_manager.cpp} (73%) rename src/server/{cclient_info_manager.h => client_info_manager.h} (83%) rename src/server/{cclient_sensor_record.cpp => client_sensor_record.cpp} (65%) rename src/server/{cclient_sensor_record.h => client_sensor_record.h} (87%) rename src/server/{cconfig.cpp => device_config.cpp} (91%) rename src/server/{cconfig.h => device_config.h} (85%) rename src/server/{cplugin_info_list.cpp => plugin_info_list.cpp} (76%) rename src/server/{cplugin_info_list.h => plugin_info_list.h} (95%) rename src/server/{csensor_event_dispatcher.cpp => sensor_event_dispatcher.cpp} (80%) rename src/server/{csensor_event_dispatcher.h => sensor_event_dispatcher.h} (80%) rename src/server/{csensor_event_queue.cpp => sensor_event_queue.cpp} (79%) rename src/server/{csensor_event_queue.h => sensor_event_queue.h} (87%) rename src/server/{csensor_usage.cpp => sensor_usage.cpp} (84%) rename src/server/{csensor_usage.h => sensor_usage.h} (88%) rename src/server/{cvirtual_sensor_config.cpp => virtual_sensor_config.cpp} (78%) rename src/server/{cvirtual_sensor_config.h => virtual_sensor_config.h} (79%) diff --git a/src/client/CMakeLists.txt b/src/client/CMakeLists.txt index 7653492..ac7dcc0 100755 --- a/src/client/CMakeLists.txt +++ b/src/client/CMakeLists.txt @@ -28,10 +28,10 @@ include_directories(${CMAKE_CURRENT_SOURCE_DIR}) add_library(${PROJECT_NAME} SHARED client.cpp - csensor_client_info.cpp - csensor_event_listener.cpp + sensor_client_info.cpp + sensor_event_listener.cpp sensor_info_manager.cpp - csensor_handle_info.cpp + sensor_handle_info.cpp client_common.cpp command_channel.cpp ) @@ -42,10 +42,10 @@ SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES VERSION ${VERSION}) configure_file(${PROJECT_NAME}.pc.in ${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}.pc @ONLY) install(TARGETS ${PROJECT_NAME} DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT RuntimeLibraries) -install(FILES creg_event_info.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/sensor/) -install(FILES csensor_event_listener.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/sensor/) +install(FILES reg_event_info.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/sensor/) +install(FILES sensor_event_listener.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/sensor/) install(FILES sensor_info_manager.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/sensor/) -install(FILES csensor_handle_info.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/sensor/) +install(FILES sensor_handle_info.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/sensor/) install(FILES client_common.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/sensor/) install(FILES ${PROJECT_NAME}.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig) diff --git a/src/client/client.cpp b/src/client/client.cpp index dafe4db..05e3897 100644 --- a/src/client/client.cpp +++ b/src/client/client.cpp @@ -20,7 +20,7 @@ #include #include #include -#include +#include #include #include #include @@ -41,8 +41,8 @@ using std::vector; static const int OP_SUCCESS = 0; static const int OP_ERROR = -1; -static csensor_event_listener &event_listener = csensor_event_listener::get_instance(); -static csensor_client_info &client_info = csensor_client_info::get_instance(); +static sensor_event_listener &event_listener = sensor_event_listener::get_instance(); +static sensor_client_info &client_info = sensor_client_info::get_instance(); static cmutex lock; static int g_power_save_state = 0; diff --git a/src/client/client_common.cpp b/src/client/client_common.cpp index 51ad05a..bc48da0 100755 --- a/src/client/client_common.cpp +++ b/src/client/client_common.cpp @@ -200,7 +200,7 @@ unsigned long long get_timestamp(void) return ((unsigned long long)(t.tv_sec)*1000000000LL + t.tv_nsec) / 1000; } -void print_event_occurrence_log(csensor_handle_info &sensor_handle_info, const creg_event_info *event_info) +void print_event_occurrence_log(sensor_handle_info &sensor_handle_info, const reg_event_info *event_info) { log_attr *log_attr; diff --git a/src/client/client_common.h b/src/client/client_common.h index db3ae6d..7c6ae30 100755 --- a/src/client/client_common.h +++ b/src/client/client_common.h @@ -17,13 +17,13 @@ * */ -#ifndef CLIENT_COMMON_H_ -#define CLIENT_COMMON_H_ +#ifndef _CLIENT_COMMON_H_ +#define _CLIENT_COMMON_H_ /*header for each sensor type*/ #include -#include -#include +#include +#include #include #define BASE_GATHERING_INTERVAL 100 @@ -59,7 +59,7 @@ typedef struct { int sensor_state; int sensor_option; sensor_type_t sensor; - creg_event_info event_info; + reg_event_info event_info; } log_info; bool is_one_shot_event(unsigned int event_type); @@ -73,10 +73,10 @@ const char* get_log_element_name(log_id id, unsigned int type); const char* get_sensor_name(sensor_id_t sensor_id); const char* get_event_name(unsigned int event_type); const char* get_data_name(unsigned int data_id); -void print_event_occurrence_log(csensor_handle_info &sensor_handle_info, const creg_event_info *event_info); +void print_event_occurrence_log(sensor_handle_info &sensor_handle_info, const reg_event_info *event_info); class sensor_info; sensor_info *sensor_to_sensor_info(sensor_t sensor); sensor_t sensor_info_to_sensor(const sensor_info *info); -#endif /* CLIENT_COMMON_H_ */ +#endif /* _CLIENT_COMMON_H_ */ diff --git a/src/client/command_channel.h b/src/client/command_channel.h index c4f85b5..e60434e 100644 --- a/src/client/command_channel.h +++ b/src/client/command_channel.h @@ -19,6 +19,7 @@ #ifndef _COMMAND_CHANNEL_H_ #define _COMMAND_CHANNEL_H_ + #include #include #include diff --git a/src/client/creg_event_info.h b/src/client/reg_event_info.h similarity index 87% rename from src/client/creg_event_info.h rename to src/client/reg_event_info.h index d431316..44d8937 100644 --- a/src/client/creg_event_info.h +++ b/src/client/reg_event_info.h @@ -17,8 +17,8 @@ * */ -#ifndef CREG_EVENT_INFO_H_ -#define CREG_EVENT_INFO_H_ +#ifndef _REG_EVENT_INFO_H_ +#define _REG_EVENT_INFO_H_ #include #include @@ -29,7 +29,7 @@ typedef enum { SENSOR_LEGACY_CB, } event_cb_type_t; -class creg_event_info { +class reg_event_info { public: unsigned long long m_id; int m_handle; @@ -43,14 +43,14 @@ public: bool m_fired; GMainContext *m_maincontext; - creg_event_info():m_id(0), m_handle(-1), + reg_event_info():m_id(0), m_handle(-1), type(0), m_interval(POLL_1HZ_MS), m_latency(0), m_cb_type(SENSOR_EVENT_CB), m_cb(NULL), m_user_data(NULL), m_previous_event_time(0), m_fired(false), m_maincontext(NULL){} - ~creg_event_info(){} + ~reg_event_info(){} }; -#endif /* CREG_EVENT_INFO_H_ */ +#endif /* _REG_EVENT_INFO_H_ */ diff --git a/src/client/csensor_client_info.cpp b/src/client/sensor_client_info.cpp similarity index 78% rename from src/client/csensor_client_info.cpp rename to src/client/sensor_client_info.cpp index 9def2b5..0917459 100644 --- a/src/client/csensor_client_info.cpp +++ b/src/client/sensor_client_info.cpp @@ -17,7 +17,7 @@ * */ -#include +#include #include #include #include @@ -31,26 +31,26 @@ using std::thread; using std::pair; -csensor_client_info::csensor_client_info() +sensor_client_info::sensor_client_info() : m_client_id(CLIENT_ID_INVALID) { } -csensor_client_info::~csensor_client_info() +sensor_client_info::~sensor_client_info() { } -csensor_client_info& csensor_client_info::get_instance(void) +sensor_client_info& sensor_client_info::get_instance(void) { - static csensor_client_info inst; + static sensor_client_info inst; return inst; } -int csensor_client_info::create_handle(sensor_id_t sensor) +int sensor_client_info::create_handle(sensor_id_t sensor) { - csensor_handle_info handle_info; + sensor_handle_info handle_info; int handle = 0; AUTOLOCK(m_handle_info_lock); @@ -71,12 +71,12 @@ int csensor_client_info::create_handle(sensor_id_t sensor) handle_info.m_accuracy_cb = NULL; handle_info.m_accuracy_user_data = NULL; - m_sensor_handle_infos.insert(pair (handle, handle_info)); + m_sensor_handle_infos.insert(pair (handle, handle_info)); return handle; } -bool csensor_client_info::delete_handle(int handle) +bool sensor_client_info::delete_handle(int handle) { AUTOLOCK(m_handle_info_lock); @@ -92,14 +92,14 @@ bool csensor_client_info::delete_handle(int handle) } -bool csensor_client_info::is_active() +bool sensor_client_info::is_active() { AUTOLOCK(m_handle_info_lock); return !m_sensor_handle_infos.empty(); } -bool csensor_client_info::register_event(int handle, unsigned int event_type, +bool sensor_client_info::register_event(int handle, unsigned int event_type, unsigned int interval, unsigned int latency, int cb_type, void *cb, void* user_data) { AUTOLOCK(m_handle_info_lock); @@ -117,7 +117,7 @@ bool csensor_client_info::register_event(int handle, unsigned int event_type, return true; } -bool csensor_client_info::unregister_event(int handle, unsigned int event_type) +bool sensor_client_info::unregister_event(int handle, unsigned int event_type) { AUTOLOCK(m_handle_info_lock); @@ -134,7 +134,7 @@ bool csensor_client_info::unregister_event(int handle, unsigned int event_type) return true; } -bool csensor_client_info::register_accuracy_cb(int handle, sensor_accuracy_changed_cb_t cb, void* user_data) +bool sensor_client_info::register_accuracy_cb(int handle, sensor_accuracy_changed_cb_t cb, void* user_data) { AUTOLOCK(m_handle_info_lock); @@ -152,7 +152,7 @@ bool csensor_client_info::register_accuracy_cb(int handle, sensor_accuracy_chang return true; } -bool csensor_client_info::unregister_accuracy_cb(int handle) +bool sensor_client_info::unregister_accuracy_cb(int handle) { AUTOLOCK(m_handle_info_lock); @@ -170,7 +170,7 @@ bool csensor_client_info::unregister_accuracy_cb(int handle) return true; } -bool csensor_client_info::set_sensor_params(int handle, int sensor_state, int sensor_option) +bool sensor_client_info::set_sensor_params(int handle, int sensor_state, int sensor_option) { AUTOLOCK(m_handle_info_lock); @@ -187,7 +187,7 @@ bool csensor_client_info::set_sensor_params(int handle, int sensor_state, int se return true; } -bool csensor_client_info::get_sensor_params(int handle, int &sensor_state, int &sensor_option) +bool sensor_client_info::get_sensor_params(int handle, int &sensor_state, int &sensor_option) { AUTOLOCK(m_handle_info_lock); @@ -204,7 +204,7 @@ bool csensor_client_info::get_sensor_params(int handle, int &sensor_state, int & return true; } -bool csensor_client_info::set_sensor_state(int handle, int sensor_state) +bool sensor_client_info::set_sensor_state(int handle, int sensor_state) { AUTOLOCK(m_handle_info_lock); @@ -220,7 +220,7 @@ bool csensor_client_info::set_sensor_state(int handle, int sensor_state) return true; } -bool csensor_client_info::set_sensor_option(int handle, int sensor_option) +bool sensor_client_info::set_sensor_option(int handle, int sensor_option) { AUTOLOCK(m_handle_info_lock); @@ -236,7 +236,7 @@ bool csensor_client_info::set_sensor_option(int handle, int sensor_option) return true; } -bool csensor_client_info::set_event_batch(int handle, unsigned int event_type, unsigned int interval, unsigned int latency) +bool sensor_client_info::set_event_batch(int handle, unsigned int event_type, unsigned int interval, unsigned int latency) { AUTOLOCK(m_handle_info_lock); @@ -253,7 +253,7 @@ bool csensor_client_info::set_event_batch(int handle, unsigned int event_type, u return true; } -bool csensor_client_info::set_event_maincontext(int handle, unsigned int event_type, GMainContext *maincontext) +bool sensor_client_info::set_event_maincontext(int handle, unsigned int event_type, GMainContext *maincontext) { AUTOLOCK(m_handle_info_lock); @@ -270,7 +270,7 @@ bool csensor_client_info::set_event_maincontext(int handle, unsigned int event_t return true; } -bool csensor_client_info::set_accuracy(int handle, int accuracy) +bool sensor_client_info::set_accuracy(int handle, int accuracy) { AUTOLOCK(m_handle_info_lock); @@ -286,7 +286,7 @@ bool csensor_client_info::set_accuracy(int handle, int accuracy) return true; } -bool csensor_client_info::set_bad_accuracy(int handle, int bad_accuracy) +bool sensor_client_info::set_bad_accuracy(int handle, int bad_accuracy) { AUTOLOCK(m_handle_info_lock); @@ -302,7 +302,7 @@ bool csensor_client_info::set_bad_accuracy(int handle, int bad_accuracy) return true; } -bool csensor_client_info::get_event_info(int handle, unsigned int event_type, unsigned int &interval, unsigned int &latency, int &cb_type, void* &cb, void* &user_data) +bool sensor_client_info::get_event_info(int handle, unsigned int event_type, unsigned int &interval, unsigned int &latency, int &cb_type, void* &cb, void* &user_data) { AUTOLOCK(m_handle_info_lock); @@ -313,7 +313,7 @@ bool csensor_client_info::get_event_info(int handle, unsigned int event_type, un return false; } - const creg_event_info *event_info; + const reg_event_info *event_info; event_info = it_handle->second.get_reg_event_info(event_type); @@ -331,7 +331,7 @@ bool csensor_client_info::get_event_info(int handle, unsigned int event_type, un } -void csensor_client_info::get_listening_sensors(sensor_id_vector &sensors) +void sensor_client_info::get_listening_sensors(sensor_id_vector &sensors) { AUTOLOCK(m_handle_info_lock); @@ -346,7 +346,7 @@ void csensor_client_info::get_listening_sensors(sensor_id_vector &sensors) unique(sensors.begin(),sensors.end()); } -void csensor_client_info::get_sensor_rep(sensor_id_t sensor, sensor_rep& rep) { +void sensor_client_info::get_sensor_rep(sensor_id_t sensor, sensor_rep& rep) { const unsigned int INVALID_BATCH_VALUE = std::numeric_limits::max(); rep.active = is_sensor_active(sensor); @@ -359,7 +359,7 @@ void csensor_client_info::get_sensor_rep(sensor_id_t sensor, sensor_rep& rep) { get_active_event_types(sensor, rep.event_types); } -bool csensor_client_info::add_command_channel(sensor_id_t sensor, command_channel *cmd_channel) +bool sensor_client_info::add_command_channel(sensor_id_t sensor, command_channel *cmd_channel) { auto it_channel = m_command_channels.find(sensor); @@ -373,7 +373,7 @@ bool csensor_client_info::add_command_channel(sensor_id_t sensor, command_channe return true; } -bool csensor_client_info::get_command_channel(sensor_id_t sensor, command_channel **cmd_channel) +bool sensor_client_info::get_command_channel(sensor_id_t sensor, command_channel **cmd_channel) { auto it_channel = m_command_channels.find(sensor); @@ -388,7 +388,7 @@ bool csensor_client_info::get_command_channel(sensor_id_t sensor, command_channe } -bool csensor_client_info::close_command_channel(void) +bool sensor_client_info::close_command_channel(void) { auto it_channel = m_command_channels.begin(); @@ -402,7 +402,7 @@ bool csensor_client_info::close_command_channel(void) return true; } -bool csensor_client_info::close_command_channel(sensor_id_t sensor_id) +bool sensor_client_info::close_command_channel(sensor_id_t sensor_id) { auto it_channel = m_command_channels.find(sensor_id); @@ -419,22 +419,22 @@ bool csensor_client_info::close_command_channel(sensor_id_t sensor_id) } -bool csensor_client_info::has_client_id(void) +bool sensor_client_info::has_client_id(void) { return (m_client_id != CLIENT_ID_INVALID); } -int csensor_client_info::get_client_id(void) +int sensor_client_info::get_client_id(void) { return m_client_id; } -void csensor_client_info::set_client_id(int client_id) +void sensor_client_info::set_client_id(int client_id) { m_client_id = client_id; } -bool csensor_client_info::get_active_batch(sensor_id_t sensor, unsigned int &interval, unsigned int &latency) +bool sensor_client_info::get_active_batch(sensor_id_t sensor, unsigned int &interval, unsigned int &latency) { unsigned int min_interval = POLL_MAX_HZ_MS; unsigned int min_latency = std::numeric_limits::max(); @@ -470,7 +470,7 @@ bool csensor_client_info::get_active_batch(sensor_id_t sensor, unsigned int &int return true; } -unsigned int csensor_client_info::get_active_option(sensor_id_t sensor) +unsigned int sensor_client_info::get_active_option(sensor_id_t sensor) { int active_option = SENSOR_OPTION_DEFAULT; bool active_sensor_found = false; @@ -497,7 +497,7 @@ unsigned int csensor_client_info::get_active_option(sensor_id_t sensor) return active_option; } -bool csensor_client_info::get_sensor_id(int handle, sensor_id_t &sensor) +bool sensor_client_info::get_sensor_id(int handle, sensor_id_t &sensor) { AUTOLOCK(m_handle_info_lock); @@ -513,7 +513,7 @@ bool csensor_client_info::get_sensor_id(int handle, sensor_id_t &sensor) return true; } -bool csensor_client_info::get_sensor_state(int handle, int &sensor_state) +bool sensor_client_info::get_sensor_state(int handle, int &sensor_state) { AUTOLOCK(m_handle_info_lock); @@ -529,7 +529,7 @@ bool csensor_client_info::get_sensor_state(int handle, int &sensor_state) return true; } -bool csensor_client_info::get_sensor_wakeup(int handle, int &sensor_wakeup) +bool sensor_client_info::get_sensor_wakeup(int handle, int &sensor_wakeup) { AUTOLOCK(m_handle_info_lock); @@ -545,7 +545,7 @@ bool csensor_client_info::get_sensor_wakeup(int handle, int &sensor_wakeup) return true; } -bool csensor_client_info::set_sensor_wakeup(int handle, int sensor_wakeup) +bool sensor_client_info::set_sensor_wakeup(int handle, int sensor_wakeup) { AUTOLOCK(m_handle_info_lock); @@ -561,7 +561,7 @@ bool csensor_client_info::set_sensor_wakeup(int handle, int sensor_wakeup) return true; } -void csensor_client_info::get_active_event_types(sensor_id_t sensor, event_type_vector &active_event_types) +void sensor_client_info::get_active_event_types(sensor_id_t sensor, event_type_vector &active_event_types) { event_type_vector event_types; @@ -587,7 +587,7 @@ void csensor_client_info::get_active_event_types(sensor_id_t sensor, event_type_ } -void csensor_client_info::get_all_handles(handle_vector &handles) +void sensor_client_info::get_all_handles(handle_vector &handles) { AUTOLOCK(m_handle_info_lock); @@ -599,7 +599,7 @@ void csensor_client_info::get_all_handles(handle_vector &handles) } } -void csensor_client_info::get_sensor_handle_info(sensor_id_t sensor, sensor_handle_info_map &handles_info) { +void sensor_client_info::get_sensor_handle_info(sensor_id_t sensor, sensor_handle_info_map &handles_info) { AUTOLOCK(m_handle_info_lock); @@ -607,26 +607,26 @@ void csensor_client_info::get_sensor_handle_info(sensor_id_t sensor, sensor_hand while (it_handle != m_sensor_handle_infos.end()) { if (it_handle->second.m_sensor_id == sensor) { - handles_info.insert(pair (it_handle->first, it_handle->second)); + handles_info.insert(pair (it_handle->first, it_handle->second)); } ++it_handle; } } -void csensor_client_info::get_all_handle_info(sensor_handle_info_map &handles_info) { +void sensor_client_info::get_all_handle_info(sensor_handle_info_map &handles_info) { AUTOLOCK(m_handle_info_lock); auto it_handle = m_sensor_handle_infos.begin(); while (it_handle != m_sensor_handle_infos.end()) { - handles_info.insert(pair (it_handle->first, it_handle->second)); + handles_info.insert(pair (it_handle->first, it_handle->second)); ++it_handle; } } -bool csensor_client_info::is_sensor_registered(sensor_id_t sensor) +bool sensor_client_info::is_sensor_registered(sensor_id_t sensor) { AUTOLOCK(m_handle_info_lock); @@ -643,7 +643,7 @@ bool csensor_client_info::is_sensor_registered(sensor_id_t sensor) } -bool csensor_client_info::is_sensor_active(sensor_id_t sensor) +bool sensor_client_info::is_sensor_active(sensor_id_t sensor) { AUTOLOCK(m_handle_info_lock); @@ -660,9 +660,9 @@ bool csensor_client_info::is_sensor_active(sensor_id_t sensor) return false; } -bool csensor_client_info::is_event_active(int handle, unsigned int event_type, unsigned long long event_id) +bool sensor_client_info::is_event_active(int handle, unsigned int event_type, unsigned long long event_id) { - creg_event_info *event_info; + reg_event_info *event_info; AUTOLOCK(m_handle_info_lock); @@ -681,7 +681,7 @@ bool csensor_client_info::is_event_active(int handle, unsigned int event_type, u return true; } -void csensor_client_info::clear(void) +void sensor_client_info::clear(void) { close_command_channel(); m_sensor_handle_infos.clear(); diff --git a/src/client/csensor_client_info.h b/src/client/sensor_client_info.h similarity index 92% rename from src/client/csensor_client_info.h rename to src/client/sensor_client_info.h index 33108d8..53b7c6a 100644 --- a/src/client/csensor_client_info.h +++ b/src/client/sensor_client_info.h @@ -17,12 +17,12 @@ * */ -#ifndef CSENSOR_CLIENT_INFO_H_ -#define CSENSOR_CLIENT_INFO_H_ +#ifndef _SENSOR_CLIENT_INFO_H_ +#define _SENSOR_CLIENT_INFO_H_ #include #include -#include +#include #include #include #include @@ -49,7 +49,7 @@ using std::condition_variable; typedef vector handle_vector; typedef vector sensor_id_vector; -typedef unordered_map sensor_handle_info_map; +typedef unordered_map sensor_handle_info_map; typedef unordered_map sensor_command_channel_map; typedef struct sensor_rep @@ -61,9 +61,9 @@ typedef struct sensor_rep event_type_vector event_types; } sensor_rep; -class csensor_client_info { +class sensor_client_info { public: - static csensor_client_info& get_instance(void); + static sensor_client_info& get_instance(void); int create_handle(sensor_id_t sensor_id); bool delete_handle(int handle); bool register_event(int handle, unsigned int event_type, @@ -114,8 +114,8 @@ public: void clear(void); - csensor_client_info(); - ~csensor_client_info(); + sensor_client_info(); + ~sensor_client_info(); private: sensor_handle_info_map m_sensor_handle_infos; @@ -125,4 +125,4 @@ private: cmutex m_handle_info_lock; }; -#endif /* CSENSOR_CLIENT_INFO_H_ */ +#endif /* _SENSOR_CLIENT_INFO_H_ */ diff --git a/src/client/csensor_event_listener.cpp b/src/client/sensor_event_listener.cpp similarity index 88% rename from src/client/csensor_event_listener.cpp rename to src/client/sensor_event_listener.cpp index 6595309..2c94ca8 100644 --- a/src/client/csensor_event_listener.cpp +++ b/src/client/sensor_event_listener.cpp @@ -17,7 +17,7 @@ * */ -#include +#include #include #include #include @@ -36,20 +36,20 @@ using std::thread; using std::pair; using std::vector; -csensor_event_listener::csensor_event_listener() +sensor_event_listener::sensor_event_listener() : m_poller(NULL) , m_thread_state(THREAD_STATE_TERMINATE) , m_hup_observer(NULL) -, m_client_info(csensor_client_info::get_instance()) +, m_client_info(sensor_client_info::get_instance()) { } -csensor_event_listener::~csensor_event_listener() +sensor_event_listener::~sensor_event_listener() { stop_event_listener(); } -csensor_event_listener::csensor_event_listener(const csensor_event_listener& listener) +sensor_event_listener::sensor_event_listener(const sensor_event_listener& listener) : m_poller(listener.m_poller) , m_thread_state(listener.m_thread_state) , m_hup_observer(listener.m_hup_observer) @@ -57,23 +57,23 @@ csensor_event_listener::csensor_event_listener(const csensor_event_listener& lis { } -csensor_event_listener& csensor_event_listener::get_instance(void) +sensor_event_listener& sensor_event_listener::get_instance(void) { - static csensor_event_listener inst; + static sensor_event_listener inst; return inst; } -bool csensor_event_listener::start_handle(int handle) +bool sensor_event_listener::start_handle(int handle) { return m_client_info.set_sensor_state(handle, SENSOR_STATE_STARTED); } -bool csensor_event_listener::stop_handle(int handle) +bool sensor_event_listener::stop_handle(int handle) { return m_client_info.set_sensor_state(handle, SENSOR_STATE_STOPPED); } -void csensor_event_listener::operate_sensor(sensor_id_t sensor, int power_save_state) +void sensor_event_listener::operate_sensor(sensor_id_t sensor, int power_save_state) { sensor_handle_info_map handles_info; @@ -102,11 +102,11 @@ void csensor_event_listener::operate_sensor(sensor_id_t sensor, int power_save_s } } -client_callback_info* csensor_event_listener::handle_calibration_cb(csensor_handle_info &handle_info, unsigned event_type, unsigned long long time, int accuracy) +client_callback_info* sensor_event_listener::handle_calibration_cb(sensor_handle_info &handle_info, unsigned event_type, unsigned long long time, int accuracy) { unsigned int cal_event_type = get_calibration_event_type(event_type); - creg_event_info *event_info = NULL; - creg_event_info *cal_event_info = NULL; + reg_event_info *event_info = NULL; + reg_event_info *cal_event_info = NULL; client_callback_info* cal_callback_info = NULL; if (!cal_event_type) @@ -152,10 +152,10 @@ client_callback_info* csensor_event_listener::handle_calibration_cb(csensor_hand } -void csensor_event_listener::handle_events(void* event) +void sensor_event_listener::handle_events(void* event) { unsigned long long cur_time; - creg_event_info *event_info = NULL; + reg_event_info *event_info = NULL; sensor_event_data_t event_data; sensor_id_t sensor_id; sensor_handle_info_map handles_info; @@ -207,7 +207,7 @@ void csensor_event_listener::handle_events(void* event) for (auto it_handle = handles_info.begin(); it_handle != handles_info.end(); ++it_handle) { - csensor_handle_info &sensor_handle_info = it_handle->second; + sensor_handle_info &sensor_handle_info = it_handle->second; event_info = sensor_handle_info.get_reg_event_info(event_type); if ((sensor_handle_info.m_sensor_id != sensor_id) || @@ -263,7 +263,7 @@ void csensor_event_listener::handle_events(void* event) } -client_callback_info* csensor_event_listener::get_callback_info(sensor_id_t sensor_id, const creg_event_info *event_info, void* sensor_data, void *buffer) +client_callback_info* sensor_event_listener::get_callback_info(sensor_id_t sensor_id, const reg_event_info *event_info, void* sensor_data, void *buffer) { client_callback_info* callback_info; @@ -338,7 +338,7 @@ client_callback_info* csensor_event_listener::get_callback_info(sensor_id_t sens return callback_info; } -void csensor_event_listener::post_callback_to_main_loop(client_callback_info* cb_info) +void sensor_event_listener::post_callback_to_main_loop(client_callback_info* cb_info) { if (cb_info->maincontext) { GSource *_source = g_idle_source_new(); @@ -350,16 +350,16 @@ void csensor_event_listener::post_callback_to_main_loop(client_callback_info* cb } } -bool csensor_event_listener::is_valid_callback(client_callback_info *cb_info) +bool sensor_event_listener::is_valid_callback(client_callback_info *cb_info) { return m_client_info.is_event_active(cb_info->handle, cb_info->event_type, cb_info->event_id); } -gboolean csensor_event_listener::callback_dispatcher(gpointer data) +gboolean sensor_event_listener::callback_dispatcher(gpointer data) { client_callback_info *cb_info = (client_callback_info*) data; - if (csensor_event_listener::get_instance().is_valid_callback(cb_info)) { + if (sensor_event_listener::get_instance().is_valid_callback(cb_info)) { if (cb_info->accuracy_cb) cb_info->accuracy_cb(cb_info->sensor, cb_info->timestamp, cb_info->accuracy, cb_info->accuracy_user_data); @@ -391,7 +391,7 @@ gboolean csensor_event_listener::callback_dispatcher(gpointer data) -ssize_t csensor_event_listener::sensor_event_poll(void* buffer, int buffer_len, struct epoll_event &event) +ssize_t sensor_event_listener::sensor_event_poll(void* buffer, int buffer_len, struct epoll_event &event) { ssize_t len; @@ -418,7 +418,7 @@ ssize_t csensor_event_listener::sensor_event_poll(void* buffer, int buffer_len, -void csensor_event_listener::listen_events(void) +void sensor_event_listener::listen_events(void) { struct epoll_event event; ssize_t len = -1; @@ -475,7 +475,7 @@ void csensor_event_listener::listen_events(void) } -bool csensor_event_listener::create_event_channel(void) +bool sensor_event_listener::create_event_channel(void) { int client_id; event_channel_ready_t event_channel_ready; @@ -519,13 +519,13 @@ bool csensor_event_listener::create_event_channel(void) } -void csensor_event_listener::close_event_channel(void) +void sensor_event_listener::close_event_channel(void) { m_event_socket.close(); } -void csensor_event_listener::stop_event_listener(void) +void sensor_event_listener::stop_event_listener(void) { const int THREAD_TERMINATING_TIMEOUT = 2; @@ -543,13 +543,13 @@ void csensor_event_listener::stop_event_listener(void) } } -void csensor_event_listener::set_thread_state(thread_state state) +void sensor_event_listener::set_thread_state(thread_state state) { lock l(m_thread_mutex); m_thread_state = state; } -void csensor_event_listener::clear(void) +void sensor_event_listener::clear(void) { close_event_channel(); stop_event_listener(); @@ -559,12 +559,12 @@ void csensor_event_listener::clear(void) } -void csensor_event_listener::set_hup_observer(hup_observer_t observer) +void sensor_event_listener::set_hup_observer(hup_observer_t observer) { m_hup_observer = observer; } -bool csensor_event_listener::start_event_listener(void) +bool sensor_event_listener::start_event_listener(void) { if (!create_event_channel()) { ERR("Event channel is not established for %s", get_client_name()); @@ -578,7 +578,7 @@ bool csensor_event_listener::start_event_listener(void) set_thread_state(THREAD_STATE_START); - thread listener(&csensor_event_listener::listen_events, this); + thread listener(&sensor_event_listener::listen_events, this); listener.detach(); return true; diff --git a/src/client/csensor_event_listener.h b/src/client/sensor_event_listener.h similarity index 78% rename from src/client/csensor_event_listener.h rename to src/client/sensor_event_listener.h index 72dc7e7..2ea5e1f 100644 --- a/src/client/csensor_event_listener.h +++ b/src/client/sensor_event_listener.h @@ -17,14 +17,14 @@ * */ -#ifndef CSENSOR_EVENT_LISTENER_H_ -#define CSENSOR_EVENT_LISTENER_H_ +#ifndef _SENSOR_EVENT_LISTENER_H_ +#define _SENSOR_EVENT_LISTENER_H_ #include #include #include -#include -#include +#include +#include #include #include #include @@ -42,7 +42,7 @@ typedef std::vector handle_vector; typedef std::vector sensor_id_vector; -typedef std::unordered_map sensor_handle_info_map; +typedef std::unordered_map sensor_handle_info_map; typedef std::unordered_map sensor_command_channel_map; typedef struct { @@ -64,9 +64,9 @@ typedef struct { typedef void (*hup_observer_t)(void); -class csensor_event_listener { +class sensor_event_listener { public: - static csensor_event_listener& get_instance(void); + static sensor_event_listener& get_instance(void); bool start_handle(int handle); bool stop_handle(int handle); @@ -96,11 +96,11 @@ private: hup_observer_t m_hup_observer; - csensor_event_listener(); - ~csensor_event_listener(); + sensor_event_listener(); + ~sensor_event_listener(); - csensor_event_listener(const csensor_event_listener&); - csensor_event_listener& operator=(const csensor_event_listener&); + sensor_event_listener(const sensor_event_listener&); + sensor_event_listener& operator=(const sensor_event_listener&); bool create_event_channel(void); void close_event_channel(void); @@ -108,10 +108,10 @@ private: ssize_t sensor_event_poll(void* buffer, int buffer_len, struct epoll_event &event); void listen_events(void); - client_callback_info* handle_calibration_cb(csensor_handle_info &handle_info, unsigned event_type, unsigned long long time, int accuracy); + client_callback_info* handle_calibration_cb(sensor_handle_info &handle_info, unsigned event_type, unsigned long long time, int accuracy); void handle_events(void* event); - client_callback_info* get_callback_info(sensor_id_t sensor_id, const creg_event_info *event_info, void *sensor_data, void *buffer); + client_callback_info* get_callback_info(sensor_id_t sensor_id, const reg_event_info *event_info, void *sensor_data, void *buffer); unsigned long long renew_event_id(void); @@ -122,6 +122,6 @@ private: void set_thread_state(thread_state state); - csensor_client_info &m_client_info; + sensor_client_info &m_client_info; }; -#endif /* CSENSOR_EVENT_LISTENER_H_ */ +#endif /* _SENSOR_EVENT_LISTENER_H_ */ diff --git a/src/client/csensor_handle_info.cpp b/src/client/sensor_handle_info.cpp similarity index 76% rename from src/client/csensor_handle_info.cpp rename to src/client/sensor_handle_info.cpp index 76f0533..1439d43 100644 --- a/src/client/csensor_handle_info.cpp +++ b/src/client/sensor_handle_info.cpp @@ -18,14 +18,14 @@ */ #include -#include +#include #include using std::pair; -unsigned long long csensor_handle_info::m_event_id = 0; +unsigned long long sensor_handle_info::m_event_id = 0; -csensor_handle_info::csensor_handle_info() +sensor_handle_info::sensor_handle_info() : m_handle(0) , m_sensor_id(UNKNOWN_SENSOR) , m_sensor_state(SENSOR_STATE_UNKNOWN) @@ -39,12 +39,12 @@ csensor_handle_info::csensor_handle_info() } -csensor_handle_info::~csensor_handle_info() +sensor_handle_info::~sensor_handle_info() { clear_all_events(); } -creg_event_info* csensor_handle_info::get_reg_event_info(unsigned int event_type) +reg_event_info* sensor_handle_info::get_reg_event_info(unsigned int event_type) { auto it_event = m_reg_event_infos.find(event_type); @@ -56,7 +56,7 @@ creg_event_info* csensor_handle_info::get_reg_event_info(unsigned int event_type return &(it_event->second); } -void csensor_handle_info::get_reg_event_types(event_type_vector &event_types) +void sensor_handle_info::get_reg_event_types(event_type_vector &event_types) { auto it_event = m_reg_event_infos.begin(); @@ -66,9 +66,9 @@ void csensor_handle_info::get_reg_event_types(event_type_vector &event_types) } } -bool csensor_handle_info::add_reg_event_info(unsigned int event_type, unsigned int interval, unsigned int latency, int cb_type, void *cb, void *user_data) +bool sensor_handle_info::add_reg_event_info(unsigned int event_type, unsigned int interval, unsigned int latency, int cb_type, void *cb, void *user_data) { - creg_event_info event_info; + reg_event_info event_info; auto it_event = m_reg_event_infos.find(event_type); @@ -86,12 +86,12 @@ bool csensor_handle_info::add_reg_event_info(unsigned int event_type, unsigned i event_info.m_cb = cb; event_info.m_user_data = user_data; - m_reg_event_infos.insert(pair (event_type, event_info)); + m_reg_event_infos.insert(pair (event_type, event_info)); return true; } -bool csensor_handle_info::delete_reg_event_info(unsigned int event_type) +bool sensor_handle_info::delete_reg_event_info(unsigned int event_type) { auto it_event = m_reg_event_infos.find(event_type); @@ -105,18 +105,18 @@ bool csensor_handle_info::delete_reg_event_info(unsigned int event_type) return true; } -void csensor_handle_info::clear_all_events(void) +void sensor_handle_info::clear_all_events(void) { m_reg_event_infos.clear(); } -unsigned long long csensor_handle_info::renew_event_id(void) +unsigned long long sensor_handle_info::renew_event_id(void) { return m_event_id++; } -bool csensor_handle_info::change_reg_event_batch(unsigned int event_type, unsigned int interval, unsigned int latency) +bool sensor_handle_info::change_reg_event_batch(unsigned int event_type, unsigned int interval, unsigned int latency) { auto it_event = m_reg_event_infos.find(event_type); @@ -132,7 +132,7 @@ bool csensor_handle_info::change_reg_event_batch(unsigned int event_type, unsign return true; } -bool csensor_handle_info::change_reg_event_maincontext(unsigned int event_type, GMainContext *maincontext) +bool sensor_handle_info::change_reg_event_maincontext(unsigned int event_type, GMainContext *maincontext) { auto it_event = m_reg_event_infos.find(event_type); @@ -146,7 +146,7 @@ bool csensor_handle_info::change_reg_event_maincontext(unsigned int event_type, return true; } -void csensor_handle_info::get_batch(unsigned int &interval, unsigned int &latency) +void sensor_handle_info::get_batch(unsigned int &interval, unsigned int &latency) { if (m_reg_event_infos.empty()) { DBG("No events are registered for client %s", get_client_name()); @@ -176,7 +176,7 @@ void csensor_handle_info::get_batch(unsigned int &interval, unsigned int &latenc latency = min_latency; } -unsigned int csensor_handle_info::get_reg_event_count(void) +unsigned int sensor_handle_info::get_reg_event_count(void) { return m_reg_event_infos.size(); } diff --git a/src/client/csensor_handle_info.h b/src/client/sensor_handle_info.h similarity index 83% rename from src/client/csensor_handle_info.h rename to src/client/sensor_handle_info.h index 7b1f94d..adf211d 100644 --- a/src/client/csensor_handle_info.h +++ b/src/client/sensor_handle_info.h @@ -17,19 +17,19 @@ * */ -#ifndef CSENSOR_HANDLE_INFO_H_ -#define CSENSOR_HANDLE_INFO_H_ +#ifndef _SENSOR_HANDLE_INFO_H_ +#define _SENSOR_HANDLE_INFO_H_ -#include +#include #include #include #include #include #include -typedef std::unordered_map event_info_map; +typedef std::unordered_map event_info_map; -class csensor_handle_info { +class sensor_handle_info { public: int m_handle; sensor_id_t m_sensor_id; @@ -41,8 +41,8 @@ public: sensor_accuracy_changed_cb_t m_accuracy_cb; void *m_accuracy_user_data; - csensor_handle_info(); - ~csensor_handle_info(); + sensor_handle_info(); + ~sensor_handle_info(); bool add_reg_event_info(unsigned int event_type, unsigned int interval, unsigned int latency, int cb_type, void *cb,void *user_data); bool delete_reg_event_info(unsigned int event_type); @@ -50,7 +50,7 @@ public: bool change_reg_event_batch(unsigned int event_type, unsigned int interval, unsigned int latency); bool change_reg_event_maincontext(unsigned int event_type, GMainContext *maincontext); - creg_event_info* get_reg_event_info(const unsigned int event_type); + reg_event_info* get_reg_event_info(const unsigned int event_type); void get_reg_event_types(event_type_vector &event_types); void get_batch(unsigned int &interval, unsigned int &latency); unsigned int get_reg_event_count(void); @@ -63,4 +63,4 @@ private: }; -#endif /* CSENSOR_HANDLE_INFO_H_ */ +#endif /* _SENSOR_HANDLE_INFO_H_ */ diff --git a/src/server/cclient_info_manager.cpp b/src/server/client_info_manager.cpp similarity index 73% rename from src/server/cclient_info_manager.cpp rename to src/server/client_info_manager.cpp index 540491c..52308ff 100644 --- a/src/server/cclient_info_manager.cpp +++ b/src/server/client_info_manager.cpp @@ -17,28 +17,28 @@ * */ -#include +#include #include #include using std::pair; using std::string; -cclient_info_manager::cclient_info_manager() +client_info_manager::client_info_manager() { } -cclient_info_manager::~cclient_info_manager() +client_info_manager::~client_info_manager() { m_clients.clear(); } -cclient_info_manager& cclient_info_manager::get_instance() +client_info_manager& client_info_manager::get_instance() { - static cclient_info_manager inst; + static client_info_manager inst; return inst; } -bool cclient_info_manager::get_registered_events(int client_id, sensor_id_t sensor_id, event_type_vector &event_vec) +bool client_info_manager::get_registered_events(int client_id, sensor_id_t sensor_id, event_type_vector &event_vec) { AUTOLOCK(m_mutex); @@ -56,7 +56,7 @@ bool cclient_info_manager::get_registered_events(int client_id, sensor_id_t sens } -bool cclient_info_manager::register_event(int client_id, sensor_id_t sensor_id, unsigned int event_type) +bool client_info_manager::register_event(int client_id, sensor_id_t sensor_id, unsigned int event_type) { AUTOLOCK(m_mutex); @@ -73,7 +73,7 @@ bool cclient_info_manager::register_event(int client_id, sensor_id_t sensor_id, return true; } -bool cclient_info_manager::unregister_event(int client_id, sensor_id_t sensor_id, unsigned int event_type) +bool client_info_manager::unregister_event(int client_id, sensor_id_t sensor_id, unsigned int event_type) { AUTOLOCK(m_mutex); @@ -90,7 +90,7 @@ bool cclient_info_manager::unregister_event(int client_id, sensor_id_t sensor_id return true; } -bool cclient_info_manager::set_batch(int client_id, sensor_id_t sensor_id, unsigned int interval, unsigned latency) +bool client_info_manager::set_batch(int client_id, sensor_id_t sensor_id, unsigned int interval, unsigned latency) { AUTOLOCK(m_mutex); @@ -104,7 +104,7 @@ bool cclient_info_manager::set_batch(int client_id, sensor_id_t sensor_id, unsig return it_record->second.set_batch(sensor_id, interval, latency); } -bool cclient_info_manager::get_batch(int client_id, sensor_id_t sensor_id, unsigned int &interval, unsigned int &latency) +bool client_info_manager::get_batch(int client_id, sensor_id_t sensor_id, unsigned int &interval, unsigned int &latency) { AUTOLOCK(m_mutex); @@ -118,7 +118,7 @@ bool cclient_info_manager::get_batch(int client_id, sensor_id_t sensor_id, unsig return it_record->second.get_batch(sensor_id, interval, latency); } -bool cclient_info_manager::set_option(int client_id, sensor_id_t sensor_id, int option) +bool client_info_manager::set_option(int client_id, sensor_id_t sensor_id, int option) { AUTOLOCK(m_mutex); @@ -135,7 +135,7 @@ bool cclient_info_manager::set_option(int client_id, sensor_id_t sensor_id, int return true; } -bool cclient_info_manager::set_wakeup(int client_id, sensor_id_t sensor_id, int wakeup) +bool client_info_manager::set_wakeup(int client_id, sensor_id_t sensor_id, int wakeup) { AUTOLOCK(m_mutex); @@ -152,7 +152,7 @@ bool cclient_info_manager::set_wakeup(int client_id, sensor_id_t sensor_id, int return true; } -bool cclient_info_manager::set_start(int client_id, sensor_id_t sensor_id, bool start) +bool client_info_manager::set_start(int client_id, sensor_id_t sensor_id, bool start) { AUTOLOCK(m_mutex); @@ -170,7 +170,7 @@ bool cclient_info_manager::set_start(int client_id, sensor_id_t sensor_id, bool } -bool cclient_info_manager::is_started(int client_id, sensor_id_t sensor_id) +bool client_info_manager::is_started(int client_id, sensor_id_t sensor_id) { AUTOLOCK(m_mutex); @@ -184,13 +184,13 @@ bool cclient_info_manager::is_started(int client_id, sensor_id_t sensor_id) return it_record->second.is_started(sensor_id); } -int cclient_info_manager::create_client_record(void) +int client_info_manager::create_client_record(void) { AUTOLOCK(m_mutex); int client_id = 0; - cclient_sensor_record client_record; + client_sensor_record client_record; while (m_clients.count(client_id) > 0) client_id++; @@ -202,13 +202,13 @@ int cclient_info_manager::create_client_record(void) client_record.set_client_id(client_id); - m_clients.insert(pair (client_id, client_record)); + m_clients.insert(pair (client_id, client_record)); return client_id; } -bool cclient_info_manager::remove_client_record(int client_id) +bool client_info_manager::remove_client_record(int client_id) { AUTOLOCK(m_mutex); @@ -227,7 +227,7 @@ bool cclient_info_manager::remove_client_record(int client_id) } -bool cclient_info_manager::has_client_record(int client_id) +bool client_info_manager::has_client_record(int client_id) { AUTOLOCK(m_mutex); @@ -237,7 +237,7 @@ bool cclient_info_manager::has_client_record(int client_id) } -void cclient_info_manager::set_client_info(int client_id, pid_t pid, const string &name) +void client_info_manager::set_client_info(int client_id, pid_t pid, const string &name) { AUTOLOCK(m_mutex); @@ -253,7 +253,7 @@ void cclient_info_manager::set_client_info(int client_id, pid_t pid, const strin return; } -const char* cclient_info_manager::get_client_info(int client_id) +const char* client_info_manager::get_client_info(int client_id) { AUTOLOCK(m_mutex); @@ -267,7 +267,7 @@ const char* cclient_info_manager::get_client_info(int client_id) return it_record->second.get_client_info(); } -bool cclient_info_manager::set_permission(int client_id, int permission) +bool client_info_manager::set_permission(int client_id, int permission) { AUTOLOCK(m_mutex); @@ -282,7 +282,7 @@ bool cclient_info_manager::set_permission(int client_id, int permission) return true; } -bool cclient_info_manager::get_permission(int client_id, int &permission) +bool client_info_manager::get_permission(int client_id, int &permission) { AUTOLOCK(m_mutex); @@ -297,7 +297,7 @@ bool cclient_info_manager::get_permission(int client_id, int &permission) return true; } -bool cclient_info_manager::create_sensor_record(int client_id, sensor_id_t sensor_id) +bool client_info_manager::create_sensor_record(int client_id, sensor_id_t sensor_id) { AUTOLOCK(m_mutex); @@ -313,7 +313,7 @@ bool cclient_info_manager::create_sensor_record(int client_id, sensor_id_t senso return true; } -bool cclient_info_manager::remove_sensor_record(int client_id, sensor_id_t sensor_id) +bool client_info_manager::remove_sensor_record(int client_id, sensor_id_t sensor_id) { AUTOLOCK(m_mutex); @@ -334,7 +334,7 @@ bool cclient_info_manager::remove_sensor_record(int client_id, sensor_id_t senso } -bool cclient_info_manager::has_sensor_record(int client_id, sensor_id_t sensor_id) +bool client_info_manager::has_sensor_record(int client_id, sensor_id_t sensor_id) { AUTOLOCK(m_mutex); @@ -351,7 +351,7 @@ bool cclient_info_manager::has_sensor_record(int client_id, sensor_id_t sensor_i return true; } -bool cclient_info_manager::has_sensor_record(int client_id) +bool client_info_manager::has_sensor_record(int client_id) { AUTOLOCK(m_mutex); @@ -368,7 +368,7 @@ bool cclient_info_manager::has_sensor_record(int client_id) return true; } -bool cclient_info_manager::get_listener_ids(sensor_id_t sensor_id, unsigned int event_type, client_id_vec &id_vec) +bool client_info_manager::get_listener_ids(sensor_id_t sensor_id, unsigned int event_type, client_id_vec &id_vec) { AUTOLOCK(m_mutex); @@ -384,7 +384,7 @@ bool cclient_info_manager::get_listener_ids(sensor_id_t sensor_id, unsigned int return true; } -bool cclient_info_manager::get_event_socket(int client_id, csocket &socket) +bool client_info_manager::get_event_socket(int client_id, csocket &socket) { AUTOLOCK(m_mutex); @@ -400,7 +400,7 @@ bool cclient_info_manager::get_event_socket(int client_id, csocket &socket) return true; } -bool cclient_info_manager::set_event_socket(int client_id, const csocket &socket) +bool client_info_manager::set_event_socket(int client_id, const csocket &socket) { AUTOLOCK(m_mutex); diff --git a/src/server/cclient_info_manager.h b/src/server/client_info_manager.h similarity index 83% rename from src/server/cclient_info_manager.h rename to src/server/client_info_manager.h index f49b324..8947f4b 100644 --- a/src/server/cclient_info_manager.h +++ b/src/server/client_info_manager.h @@ -17,22 +17,22 @@ * */ -#ifndef CCLIENT_INFO_MANAGER_H_ -#define CCLIENT_INFO_MANAGER_H_ +#ifndef _CLIENT_INFO_MANAGER_H_ +#define _CLIENT_INFO_MANAGER_H_ -#include +#include #include #include #include #include -typedef std::unordered_map client_id_sensor_record_map; +typedef std::unordered_map client_id_sensor_record_map; typedef std::vector client_id_vec; -class cclient_info_manager { +class client_info_manager { public: - static cclient_info_manager& get_instance(); + static client_info_manager& get_instance(); int create_client_record(void); bool remove_client_record(int client_id); bool has_client_record(int client_id); @@ -68,10 +68,10 @@ private: client_id_sensor_record_map m_clients; cmutex m_mutex; - cclient_info_manager(); - ~cclient_info_manager(); - cclient_info_manager(cclient_info_manager const&) {}; - cclient_info_manager& operator=(cclient_info_manager const&); + client_info_manager(); + ~client_info_manager(); + client_info_manager(client_info_manager const&) {}; + client_info_manager& operator=(client_info_manager const&); }; -#endif /* CCLIENT_INFO_MANAGER_H_ */ +#endif /* _CLIENT_INFO_MANAGER_H_ */ diff --git a/src/server/cclient_sensor_record.cpp b/src/server/client_sensor_record.cpp similarity index 65% rename from src/server/cclient_sensor_record.cpp rename to src/server/client_sensor_record.cpp index 24d4c6c..da52cf4 100644 --- a/src/server/cclient_sensor_record.cpp +++ b/src/server/client_sensor_record.cpp @@ -17,13 +17,13 @@ * */ -#include +#include #include using std::pair; using std::string; -cclient_sensor_record::cclient_sensor_record() +client_sensor_record::client_sensor_record() : m_client_id(0) , m_pid(-1) , m_permission(SENSOR_PERMISSION_NONE) @@ -31,20 +31,20 @@ cclient_sensor_record::cclient_sensor_record() } -cclient_sensor_record::~cclient_sensor_record() +client_sensor_record::~client_sensor_record() { m_sensor_usages.clear(); close_event_socket(); } -bool cclient_sensor_record::register_event(sensor_id_t sensor_id, unsigned int event_type) +bool client_sensor_record::register_event(sensor_id_t sensor_id, unsigned int event_type) { auto it_usage = m_sensor_usages.find(sensor_id); if (it_usage == m_sensor_usages.end()) { - csensor_usage usage; + sensor_usage usage; usage.register_event(event_type); - m_sensor_usages.insert(pair(sensor_id, usage)); + m_sensor_usages.insert(pair(sensor_id, usage)); return true; } @@ -56,7 +56,7 @@ bool cclient_sensor_record::register_event(sensor_id_t sensor_id, unsigned int e return true; } -bool cclient_sensor_record::unregister_event(sensor_id_t sensor_id, unsigned int event_type) +bool client_sensor_record::unregister_event(sensor_id_t sensor_id, unsigned int event_type) { auto it_usage = m_sensor_usages.find(sensor_id); @@ -73,14 +73,14 @@ bool cclient_sensor_record::unregister_event(sensor_id_t sensor_id, unsigned int return true; } -bool cclient_sensor_record::set_option(sensor_id_t sensor_id, int option) +bool client_sensor_record::set_option(sensor_id_t sensor_id, int option) { auto it_usage = m_sensor_usages.find(sensor_id); if (it_usage == m_sensor_usages.end()) { - csensor_usage usage; + sensor_usage usage; usage.m_option = option; - m_sensor_usages.insert(pair(sensor_id, usage)); + m_sensor_usages.insert(pair(sensor_id, usage)); } else { it_usage->second.m_option = option; } @@ -88,14 +88,14 @@ bool cclient_sensor_record::set_option(sensor_id_t sensor_id, int option) return true; } -bool cclient_sensor_record::set_wakeup(sensor_id_t sensor_id, int wakeup) +bool client_sensor_record::set_wakeup(sensor_id_t sensor_id, int wakeup) { auto it_usage = m_sensor_usages.find(sensor_id); if (it_usage == m_sensor_usages.end()) { - csensor_usage usage; + sensor_usage usage; usage.m_wakeup = wakeup; - m_sensor_usages.insert(pair(sensor_id, usage)); + m_sensor_usages.insert(pair(sensor_id, usage)); } else { it_usage->second.m_wakeup = wakeup; } @@ -103,14 +103,14 @@ bool cclient_sensor_record::set_wakeup(sensor_id_t sensor_id, int wakeup) return true; } -bool cclient_sensor_record::set_start(sensor_id_t sensor_id, bool start) +bool client_sensor_record::set_start(sensor_id_t sensor_id, bool start) { auto it_usage = m_sensor_usages.find(sensor_id); if (it_usage == m_sensor_usages.end()) { - csensor_usage usage; + sensor_usage usage; usage.m_start = start; - m_sensor_usages.insert(pair(sensor_id, usage)); + m_sensor_usages.insert(pair(sensor_id, usage)); } else { it_usage->second.m_start = start; } @@ -118,7 +118,7 @@ bool cclient_sensor_record::set_start(sensor_id_t sensor_id, bool start) return true; } -bool cclient_sensor_record::is_started(sensor_id_t sensor_id) +bool client_sensor_record::is_started(sensor_id_t sensor_id) { auto it_usage = m_sensor_usages.find(sensor_id); @@ -128,15 +128,15 @@ bool cclient_sensor_record::is_started(sensor_id_t sensor_id) return it_usage->second.m_start; } -bool cclient_sensor_record::set_batch(sensor_id_t sensor_id, unsigned int interval, unsigned int latency) +bool client_sensor_record::set_batch(sensor_id_t sensor_id, unsigned int interval, unsigned int latency) { auto it_usage = m_sensor_usages.find(sensor_id); if (it_usage == m_sensor_usages.end()) { - csensor_usage usage; + sensor_usage usage; usage.m_interval = interval; usage.m_latency = latency; - m_sensor_usages.insert(pair(sensor_id, usage)); + m_sensor_usages.insert(pair(sensor_id, usage)); } else { it_usage->second.m_interval = interval; it_usage->second.m_latency = latency; @@ -145,7 +145,7 @@ bool cclient_sensor_record::set_batch(sensor_id_t sensor_id, unsigned int interv return true; } -bool cclient_sensor_record::get_batch(sensor_id_t sensor_id, unsigned int &interval, unsigned int &latency) +bool client_sensor_record::get_batch(sensor_id_t sensor_id, unsigned int &interval, unsigned int &latency) { auto it_usage = m_sensor_usages.find(sensor_id); @@ -160,7 +160,7 @@ bool cclient_sensor_record::get_batch(sensor_id_t sensor_id, unsigned int &inter return true; } -bool cclient_sensor_record::is_listening_event(sensor_id_t sensor_id, unsigned int event_type) +bool client_sensor_record::is_listening_event(sensor_id_t sensor_id, unsigned int event_type) { auto it_usage = m_sensor_usages.find(sensor_id); @@ -173,7 +173,7 @@ bool cclient_sensor_record::is_listening_event(sensor_id_t sensor_id, unsigned i return false; } -bool cclient_sensor_record::add_sensor_usage(sensor_id_t sensor_id) +bool client_sensor_record::add_sensor_usage(sensor_id_t sensor_id) { auto it_usage = m_sensor_usages.find(sensor_id); @@ -182,12 +182,12 @@ bool cclient_sensor_record::add_sensor_usage(sensor_id_t sensor_id) return false; } - csensor_usage usage; - m_sensor_usages.insert(pair (sensor_id, usage)); + sensor_usage usage; + m_sensor_usages.insert(pair (sensor_id, usage)); return true; } -bool cclient_sensor_record::remove_sensor_usage(sensor_id_t sensor_id) +bool client_sensor_record::remove_sensor_usage(sensor_id_t sensor_id) { auto it_usage = m_sensor_usages.find(sensor_id); @@ -199,7 +199,7 @@ bool cclient_sensor_record::remove_sensor_usage(sensor_id_t sensor_id) return true; } -bool cclient_sensor_record::has_sensor_usage(void) +bool client_sensor_record::has_sensor_usage(void) { if (m_sensor_usages.empty()) return false; @@ -208,7 +208,7 @@ bool cclient_sensor_record::has_sensor_usage(void) } -bool cclient_sensor_record::has_sensor_usage(sensor_id_t sensor_id) +bool client_sensor_record::has_sensor_usage(sensor_id_t sensor_id) { auto it_usage = m_sensor_usages.find(sensor_id); @@ -221,7 +221,7 @@ bool cclient_sensor_record::has_sensor_usage(sensor_id_t sensor_id) } -bool cclient_sensor_record::get_registered_events(sensor_id_t sensor_id, event_type_vector &event_vec) +bool client_sensor_record::get_registered_events(sensor_id_t sensor_id, event_type_vector &event_vec) { auto it_usage = m_sensor_usages.find(sensor_id); @@ -236,12 +236,12 @@ bool cclient_sensor_record::get_registered_events(sensor_id_t sensor_id, event_t } -void cclient_sensor_record::set_client_id(int client_id) +void client_sensor_record::set_client_id(int client_id) { m_client_id = client_id; } -void cclient_sensor_record::set_client_info(pid_t pid, const string &name) +void client_sensor_record::set_client_info(pid_t pid, const string &name) { char client_info[NAME_MAX + 32]; m_pid = pid; @@ -250,34 +250,34 @@ void cclient_sensor_record::set_client_info(pid_t pid, const string &name) m_client_info.assign(client_info); } -const char* cclient_sensor_record::get_client_info(void) +const char* client_sensor_record::get_client_info(void) { return m_client_info.c_str(); } -void cclient_sensor_record::set_permission(int permission) +void client_sensor_record::set_permission(int permission) { m_permission = permission; } -int cclient_sensor_record::get_permission(void) +int client_sensor_record::get_permission(void) { return m_permission; } -void cclient_sensor_record::set_event_socket(const csocket &socket) +void client_sensor_record::set_event_socket(const csocket &socket) { m_event_socket = socket; } -void cclient_sensor_record::get_event_socket(csocket &socket) +void client_sensor_record::get_event_socket(csocket &socket) { socket = m_event_socket; } -bool cclient_sensor_record::close_event_socket(void) +bool client_sensor_record::close_event_socket(void) { return m_event_socket.close(); } diff --git a/src/server/cclient_sensor_record.h b/src/server/client_sensor_record.h similarity index 87% rename from src/server/cclient_sensor_record.h rename to src/server/client_sensor_record.h index 6ddde9c..d6968e9 100644 --- a/src/server/cclient_sensor_record.h +++ b/src/server/client_sensor_record.h @@ -17,22 +17,22 @@ * */ -#ifndef CCLIENT_SENSOR_RECORD_H_ -#define CCLIENT_SENSOR_RECORD_H_ +#ifndef _CLIENT_SENSOR_RECORD_H_ +#define _CLIENT_SENSOR_RECORD_H_ #include #include -#include +#include #include #include #include -typedef std::unordered_map sensor_usage_map; +typedef std::unordered_map sensor_usage_map; -class cclient_sensor_record { +class client_sensor_record { public: - cclient_sensor_record(); - ~cclient_sensor_record(); + client_sensor_record(); + ~client_sensor_record(); void set_client_id(int client_id); @@ -75,4 +75,4 @@ private: sensor_usage_map m_sensor_usages; }; -#endif /* CCLIENT_SENSOR_RECORD_H_ */ +#endif /* _CLIENT_SENSOR_RECORD_H_ */ diff --git a/src/server/command_worker.cpp b/src/server/command_worker.cpp index b72d7b6..e0359f2 100644 --- a/src/server/command_worker.cpp +++ b/src/server/command_worker.cpp @@ -868,14 +868,14 @@ bool command_worker::is_permission_allowed(void) } -cclient_info_manager& command_worker::get_client_info_manager(void) +client_info_manager& command_worker::get_client_info_manager(void) { - return cclient_info_manager::get_instance(); + return client_info_manager::get_instance(); } -csensor_event_dispatcher& command_worker::get_event_dispathcher(void) +sensor_event_dispatcher& command_worker::get_event_dispathcher(void) { - return csensor_event_dispatcher::get_instance(); + return sensor_event_dispatcher::get_instance(); } void insert_priority_list(unsigned int event_type) diff --git a/src/server/command_worker.h b/src/server/command_worker.h index 8f7b7a8..217f4aa 100644 --- a/src/server/command_worker.h +++ b/src/server/command_worker.h @@ -17,12 +17,12 @@ * */ -#ifndef COMMAND_WORKER_H_ -#define COMMAND_WORKER_H_ +#ifndef _COMMAND_WORKER_H_ +#define _COMMAND_WORKER_H_ #include -#include -#include +#include +#include #include #include #include @@ -83,8 +83,8 @@ private: int get_permission(void); bool is_permission_allowed(void); - static cclient_info_manager& get_client_info_manager(void); - static csensor_event_dispatcher& get_event_dispathcher(void); + static client_info_manager& get_client_info_manager(void); + static sensor_event_dispatcher& get_event_dispathcher(void); public: command_worker(const csocket& socket); virtual ~command_worker(); @@ -93,4 +93,4 @@ public: }; -#endif /* COMMAND_WORKER_H_ */ +#endif /* _COMMAND_WORKER_H_ */ diff --git a/src/server/dbus_util.h b/src/server/dbus_util.h index 96a9635..bca46b4 100755 --- a/src/server/dbus_util.h +++ b/src/server/dbus_util.h @@ -29,4 +29,4 @@ enum dbus_ret{ void init_dbus(void); void fini_dbus(void); -#endif /* SENSORD_GDBUS_H_ */ +#endif /* _DBUS_UTIL_H_ */ diff --git a/src/server/cconfig.cpp b/src/server/device_config.cpp similarity index 91% rename from src/server/cconfig.cpp rename to src/server/device_config.cpp index 14c7f01..3497ca6 100755 --- a/src/server/cconfig.cpp +++ b/src/server/device_config.cpp @@ -17,7 +17,7 @@ * */ -#include +#include #include #include @@ -25,17 +25,17 @@ using std::ifstream; using std::string; using std::istringstream; -cconfig::cconfig(void) +device_config::device_config(void) { } -cconfig::~cconfig(void) +device_config::~device_config(void) { } -bool cconfig::get_device_id(void) +bool device_config::get_device_id(void) { const string INFO_INI_PATH = "/etc/info.ini"; const string START_DELIMETER = "Model="; diff --git a/src/server/cconfig.h b/src/server/device_config.h similarity index 85% rename from src/server/cconfig.h rename to src/server/device_config.h index ef2802f..c7a668b 100755 --- a/src/server/cconfig.h +++ b/src/server/device_config.h @@ -17,25 +17,25 @@ * */ -#ifndef _CCONFIG_H_ -#define _CCONFIG_H_ +#ifndef _DEVICE_CONFIG_H_ +#define _DEVICE_CONFIG_H_ #include #include #include -class cconfig +class device_config { protected: virtual bool load_config(const std::string& config_path) = 0; std::string m_device_id; public: - cconfig(); - virtual ~cconfig(); + device_config(); + virtual ~device_config(); bool get_device_id(void); }; -#endif /* _CCONFIG_H_ */ +#endif /* _DEVICE_CONFIG_H_ */ diff --git a/src/server/permission_checker.h b/src/server/permission_checker.h index 8acc6ac..53fa3b6 100755 --- a/src/server/permission_checker.h +++ b/src/server/permission_checker.h @@ -58,4 +58,4 @@ public: int get_permission(int sock_fd); }; -#endif /* COMMAND_WORKER_H_ */ +#endif /* _PERMISSION_CHECKER_H_ */ diff --git a/src/server/physical_sensor.cpp b/src/server/physical_sensor.cpp index 2df83e3..b108682 100644 --- a/src/server/physical_sensor.cpp +++ b/src/server/physical_sensor.cpp @@ -18,7 +18,7 @@ */ #include -#include +#include #define UNKNOWN_NAME "UNKNOWN_SENSOR" diff --git a/src/server/physical_sensor.h b/src/server/physical_sensor.h index 3fb5924..2fb245a 100644 --- a/src/server/physical_sensor.h +++ b/src/server/physical_sensor.h @@ -59,4 +59,4 @@ private: virtual bool get_properties(sensor_properties_s &properties); }; -#endif +#endif /* _PHYSICAL_SENSOR_H_ */ diff --git a/src/server/cplugin_info_list.cpp b/src/server/plugin_info_list.cpp similarity index 76% rename from src/server/cplugin_info_list.cpp rename to src/server/plugin_info_list.cpp index db9714d..0de1b21 100644 --- a/src/server/cplugin_info_list.cpp +++ b/src/server/plugin_info_list.cpp @@ -17,7 +17,7 @@ * */ -#include +#include #include @@ -40,17 +40,17 @@ cwakeup_info::cwakeup_info(int client_id, int wakeup) this->wakeup = wakeup; } -bool cplugin_info_list::comp_interval_info(cinterval_info a, cinterval_info b) +bool plugin_info_list::comp_interval_info(cinterval_info a, cinterval_info b) { return a.interval < b.interval; } -bool cplugin_info_list::comp_batch_info(cbatch_info a, cbatch_info b) +bool plugin_info_list::comp_batch_info(cbatch_info a, cbatch_info b) { return a.latency < b.latency; } -cinterval_info_iterator cplugin_info_list::find_if_interval_info(int client_id, bool is_processor) +cinterval_info_iterator plugin_info_list::find_if_interval_info(int client_id, bool is_processor) { auto iter = m_interval_info_list.begin(); @@ -64,7 +64,7 @@ cinterval_info_iterator cplugin_info_list::find_if_interval_info(int client_id, return iter; } -cbatch_info_iterator cplugin_info_list::find_if_batch_info(int client_id) +cbatch_info_iterator plugin_info_list::find_if_batch_info(int client_id) { auto iter = m_batch_info_list.begin(); @@ -78,7 +78,7 @@ cbatch_info_iterator cplugin_info_list::find_if_batch_info(int client_id) return iter; } -cwakeup_info_iterator cplugin_info_list::find_if_wakeup_info(int client_id) +cwakeup_info_iterator plugin_info_list::find_if_wakeup_info(int client_id) { auto iter = m_wakeup_info_list.begin(); @@ -92,7 +92,7 @@ cwakeup_info_iterator cplugin_info_list::find_if_wakeup_info(int client_id) return iter; } -bool cplugin_info_list::add_interval(int client_id, unsigned int interval, bool is_processor) +bool plugin_info_list::add_interval(int client_id, unsigned int interval, bool is_processor) { auto iter = find_if_interval_info(client_id, is_processor); @@ -104,7 +104,7 @@ bool cplugin_info_list::add_interval(int client_id, unsigned int interval, bool return true; } -bool cplugin_info_list::delete_interval(int client_id, bool is_processor) +bool plugin_info_list::delete_interval(int client_id, bool is_processor) { auto iter = find_if_interval_info(client_id, is_processor); @@ -116,7 +116,7 @@ bool cplugin_info_list::delete_interval(int client_id, bool is_processor) return true; } -unsigned int cplugin_info_list::get_interval(int client_id, bool is_processor) +unsigned int plugin_info_list::get_interval(int client_id, bool is_processor) { auto iter = find_if_interval_info(client_id, is_processor); @@ -126,7 +126,7 @@ unsigned int cplugin_info_list::get_interval(int client_id, bool is_processor) return iter->interval; } -unsigned int cplugin_info_list::get_min_interval(void) +unsigned int plugin_info_list::get_min_interval(void) { if (m_interval_info_list.empty()) return 0; @@ -136,7 +136,7 @@ unsigned int cplugin_info_list::get_min_interval(void) return iter->interval; } -bool cplugin_info_list::add_batch(int client_id, unsigned int latency) +bool plugin_info_list::add_batch(int client_id, unsigned int latency) { auto iter = find_if_batch_info(client_id); @@ -148,7 +148,7 @@ bool cplugin_info_list::add_batch(int client_id, unsigned int latency) return true; } -bool cplugin_info_list::delete_batch(int client_id) +bool plugin_info_list::delete_batch(int client_id) { auto iter = find_if_batch_info(client_id); @@ -160,7 +160,7 @@ bool cplugin_info_list::delete_batch(int client_id) return true; } -unsigned int cplugin_info_list::get_batch(int client_id) +unsigned int plugin_info_list::get_batch(int client_id) { auto iter = find_if_batch_info(client_id); @@ -170,7 +170,7 @@ unsigned int cplugin_info_list::get_batch(int client_id) return iter->latency; } -unsigned int cplugin_info_list::get_max_batch(void) +unsigned int plugin_info_list::get_max_batch(void) { if (m_batch_info_list.empty()) return 0; @@ -180,7 +180,7 @@ unsigned int cplugin_info_list::get_max_batch(void) return iter->latency; } -bool cplugin_info_list::add_wakeup(int client_id, int wakeup) +bool plugin_info_list::add_wakeup(int client_id, int wakeup) { auto iter = find_if_wakeup_info(client_id); @@ -192,7 +192,7 @@ bool cplugin_info_list::add_wakeup(int client_id, int wakeup) return true; } -bool cplugin_info_list::delete_wakeup(int client_id) +bool plugin_info_list::delete_wakeup(int client_id) { auto iter = find_if_wakeup_info(client_id); @@ -204,7 +204,7 @@ bool cplugin_info_list::delete_wakeup(int client_id) return true; } -int cplugin_info_list::get_wakeup(int client_id) +int plugin_info_list::get_wakeup(int client_id) { auto iter = find_if_wakeup_info(client_id); @@ -214,7 +214,7 @@ int cplugin_info_list::get_wakeup(int client_id) return iter->wakeup; } -int cplugin_info_list::is_wakeup_on(void) +int plugin_info_list::is_wakeup_on(void) { if (m_wakeup_info_list.empty()) return -1; diff --git a/src/server/cplugin_info_list.h b/src/server/plugin_info_list.h similarity index 95% rename from src/server/cplugin_info_list.h rename to src/server/plugin_info_list.h index 6ea149e..d96c556 100644 --- a/src/server/cplugin_info_list.h +++ b/src/server/plugin_info_list.h @@ -17,8 +17,8 @@ * */ -#ifndef _CPLUGIN_INFO_LIST_CLASS_H_ -#define _CPLUGIN_INFO_LIST_CLASS_H_ +#ifndef _PLUGIN_INFO_LIST_H_ +#define _PLUGIN_INFO_LIST_H_ #include @@ -53,7 +53,7 @@ public: typedef std::list::iterator cwakeup_info_iterator; -class cplugin_info_list +class plugin_info_list { private: static bool comp_interval_info(cinterval_info a, cinterval_info b); @@ -84,4 +84,4 @@ public: int get_wakeup(int client_id); int is_wakeup_on(void); }; -#endif +#endif /* _PLUGIN_INFO_LIST_H_ */ diff --git a/src/server/plugins/auto_rotation/auto_rotation_sensor.cpp b/src/server/plugins/auto_rotation/auto_rotation_sensor.cpp index 15046be..4ef30fa 100755 --- a/src/server/plugins/auto_rotation/auto_rotation_sensor.cpp +++ b/src/server/plugins/auto_rotation/auto_rotation_sensor.cpp @@ -32,7 +32,7 @@ #include #include #include -#include +#include #include #include @@ -59,7 +59,7 @@ auto_rotation_sensor::auto_rotation_sensor() , m_rotation_time(1) // rotation state is valid from initial state, so set rotation time to non-zero value , m_alg(NULL) { - cvirtual_sensor_config &config = cvirtual_sensor_config::get_instance(); + virtual_sensor_config &config = virtual_sensor_config::get_instance(); if (!config.get(SENSOR_TYPE_AUTO_ROTATION, ELEMENT_VENDOR, m_vendor)) { ERR("[VENDOR] is empty\n"); diff --git a/src/server/plugins/fusion/fusion_sensor.cpp b/src/server/plugins/fusion/fusion_sensor.cpp index 9830117..a2f9183 100755 --- a/src/server/plugins/fusion/fusion_sensor.cpp +++ b/src/server/plugins/fusion/fusion_sensor.cpp @@ -30,7 +30,7 @@ #include #include #include -#include +#include #include using std::string; @@ -79,7 +79,7 @@ fusion_sensor::fusion_sensor() , m_magnetic_sensor(NULL) , m_time(0) { - cvirtual_sensor_config &config = cvirtual_sensor_config::get_instance(); + virtual_sensor_config &config = virtual_sensor_config::get_instance(); m_name = string(SENSOR_NAME); m_enable_fusion = 0; diff --git a/src/server/plugins/gravity/gravity_sensor.cpp b/src/server/plugins/gravity/gravity_sensor.cpp index c1871f5..b77bac4 100755 --- a/src/server/plugins/gravity/gravity_sensor.cpp +++ b/src/server/plugins/gravity/gravity_sensor.cpp @@ -29,7 +29,7 @@ #include #include #include -#include +#include using std::string; using std::vector; @@ -67,7 +67,7 @@ gravity_sensor::gravity_sensor() , m_fusion_sensor(NULL) , m_time(0) { - cvirtual_sensor_config &config = cvirtual_sensor_config::get_instance(); + virtual_sensor_config &config = virtual_sensor_config::get_instance(); sensor_hal *fusion_sensor_hal = sensor_plugin_loader::get_instance().get_sensor_hal(SENSOR_HAL_TYPE_FUSION); if (!fusion_sensor_hal) diff --git a/src/server/plugins/linear_accel/linear_accel_sensor.cpp b/src/server/plugins/linear_accel/linear_accel_sensor.cpp index 71a3c9a..f320885 100755 --- a/src/server/plugins/linear_accel/linear_accel_sensor.cpp +++ b/src/server/plugins/linear_accel/linear_accel_sensor.cpp @@ -29,7 +29,7 @@ #include #include #include -#include +#include using std::string; using std::vector; @@ -75,7 +75,7 @@ linear_accel_sensor::linear_accel_sensor() , m_fusion_sensor(NULL) , m_time(0) { - cvirtual_sensor_config &config = cvirtual_sensor_config::get_instance(); + virtual_sensor_config &config = virtual_sensor_config::get_instance(); m_name = string(SENSOR_NAME); m_enable_linear_accel = 0; diff --git a/src/server/plugins/orientation/orientation_sensor.cpp b/src/server/plugins/orientation/orientation_sensor.cpp index 10876bf..a4200d5 100755 --- a/src/server/plugins/orientation/orientation_sensor.cpp +++ b/src/server/plugins/orientation/orientation_sensor.cpp @@ -30,7 +30,7 @@ #include #include #include -#include +#include using std::string; using std::vector; @@ -62,7 +62,7 @@ orientation_sensor::orientation_sensor() , m_fusion_sensor(NULL) , m_time(0) { - cvirtual_sensor_config &config = cvirtual_sensor_config::get_instance(); + virtual_sensor_config &config = virtual_sensor_config::get_instance(); sensor_hal *fusion_sensor_hal = sensor_plugin_loader::get_instance().get_sensor_hal(SENSOR_HAL_TYPE_FUSION); if (!fusion_sensor_hal) diff --git a/src/server/plugins/rotation_vector/gaming_rv/gaming_rv_sensor.cpp b/src/server/plugins/rotation_vector/gaming_rv/gaming_rv_sensor.cpp index f7b3367..df3b168 100755 --- a/src/server/plugins/rotation_vector/gaming_rv/gaming_rv_sensor.cpp +++ b/src/server/plugins/rotation_vector/gaming_rv/gaming_rv_sensor.cpp @@ -30,7 +30,7 @@ #include #include #include -#include +#include using std::string; using std::vector; @@ -63,7 +63,7 @@ gaming_rv_sensor::gaming_rv_sensor() , m_accuracy(-1) , m_time(0) { - cvirtual_sensor_config &config = cvirtual_sensor_config::get_instance(); + virtual_sensor_config &config = virtual_sensor_config::get_instance(); sensor_hal *fusion_sensor_hal = sensor_plugin_loader::get_instance().get_sensor_hal(SENSOR_HAL_TYPE_FUSION); if (!fusion_sensor_hal) diff --git a/src/server/plugins/rotation_vector/geomagnetic_rv/geomagnetic_rv_sensor.cpp b/src/server/plugins/rotation_vector/geomagnetic_rv/geomagnetic_rv_sensor.cpp index 9e54ec4..6bfdaf4 100755 --- a/src/server/plugins/rotation_vector/geomagnetic_rv/geomagnetic_rv_sensor.cpp +++ b/src/server/plugins/rotation_vector/geomagnetic_rv/geomagnetic_rv_sensor.cpp @@ -30,7 +30,7 @@ #include #include #include -#include +#include using std::string; using std::vector; @@ -51,7 +51,7 @@ geomagnetic_rv_sensor::geomagnetic_rv_sensor() , m_fusion_sensor(NULL) , m_time(0) { - cvirtual_sensor_config &config = cvirtual_sensor_config::get_instance(); + virtual_sensor_config &config = virtual_sensor_config::get_instance(); sensor_hal *fusion_sensor_hal = sensor_plugin_loader::get_instance().get_sensor_hal(SENSOR_HAL_TYPE_FUSION); if (!fusion_sensor_hal) diff --git a/src/server/plugins/rotation_vector/rv/rv_sensor.cpp b/src/server/plugins/rotation_vector/rv/rv_sensor.cpp index 5cc98fa..08d1353 100755 --- a/src/server/plugins/rotation_vector/rv/rv_sensor.cpp +++ b/src/server/plugins/rotation_vector/rv/rv_sensor.cpp @@ -30,7 +30,7 @@ #include #include #include -#include +#include using std::string; using std::vector; @@ -56,7 +56,7 @@ rv_sensor::rv_sensor() , m_fusion_sensor(NULL) , m_time(0) { - cvirtual_sensor_config &config = cvirtual_sensor_config::get_instance(); + virtual_sensor_config &config = virtual_sensor_config::get_instance(); // Will check if fusion_sensor is in the list of hal sensors. sensor_hal *fusion_sensor_hal = sensor_plugin_loader::get_instance().get_sensor_hal(SENSOR_HAL_TYPE_FUSION); diff --git a/src/server/plugins/tilt/tilt_sensor.cpp b/src/server/plugins/tilt/tilt_sensor.cpp index 8276f89..a7830fe 100755 --- a/src/server/plugins/tilt/tilt_sensor.cpp +++ b/src/server/plugins/tilt/tilt_sensor.cpp @@ -30,7 +30,7 @@ #include #include #include -#include +#include using std::string; using std::vector; @@ -58,7 +58,7 @@ tilt_sensor::tilt_sensor() , m_fusion_sensor(NULL) , m_time(0) { - cvirtual_sensor_config &config = cvirtual_sensor_config::get_instance(); + virtual_sensor_config &config = virtual_sensor_config::get_instance(); m_name = string(SENSOR_NAME); register_supported_event(TILT_RAW_DATA_EVENT); diff --git a/src/server/sensor_base.cpp b/src/server/sensor_base.cpp index 48b81cc..cbe5966 100644 --- a/src/server/sensor_base.cpp +++ b/src/server/sensor_base.cpp @@ -24,7 +24,7 @@ #include #include -#include +#include using std::make_pair; using std::vector; @@ -401,7 +401,7 @@ bool sensor_base::push(sensor_event_t *event, int event_length) if (m_client <= 0) return false; - csensor_event_queue::get_instance().push(event, event_length); + sensor_event_queue::get_instance().push(event, event_length); return true; } @@ -413,7 +413,7 @@ bool sensor_base::push(const sensor_event_t &event) if (m_client <= 0) return false; - csensor_event_queue::get_instance().push(event); + sensor_event_queue::get_instance().push(event); return true; } @@ -424,7 +424,7 @@ bool sensor_base::push(sensor_event_t *event) if (m_client <= 0) return false; - csensor_event_queue::get_instance().push(event); + sensor_event_queue::get_instance().push(event); return true; } @@ -435,7 +435,7 @@ bool sensor_base::push(const sensorhub_event_t &event) if (m_client <= 0) return false; - csensor_event_queue::get_instance().push(event); + sensor_event_queue::get_instance().push(event); return true; } @@ -446,7 +446,7 @@ bool sensor_base::push(sensorhub_event_t *event) if (m_client <= 0) return false; - csensor_event_queue::get_instance().push(event); + sensor_event_queue::get_instance().push(event); return true; } */ diff --git a/src/server/sensor_base.h b/src/server/sensor_base.h index c3d19c3..58b1087 100644 --- a/src/server/sensor_base.h +++ b/src/server/sensor_base.h @@ -29,7 +29,7 @@ #include #include -#include +#include #include #include @@ -110,7 +110,7 @@ private: int m_permission; - cplugin_info_list m_plugin_info_list; + plugin_info_list m_plugin_info_list; cmutex m_plugin_info_list_mutex; unsigned int m_client; @@ -132,4 +132,4 @@ private: static unsigned long long get_timestamp(timeval *t); }; -#endif +#endif /* _SENSOR_BASE_H_ */ diff --git a/src/server/csensor_event_dispatcher.cpp b/src/server/sensor_event_dispatcher.cpp similarity index 80% rename from src/server/csensor_event_dispatcher.cpp rename to src/server/sensor_event_dispatcher.cpp index 06eb8a8..9b58afc 100755 --- a/src/server/csensor_event_dispatcher.cpp +++ b/src/server/sensor_event_dispatcher.cpp @@ -17,7 +17,7 @@ * */ -#include +#include #include #include #include @@ -28,22 +28,22 @@ using std::pair; #define MAX_PENDING_CONNECTION 32 -csensor_event_dispatcher::csensor_event_dispatcher() +sensor_event_dispatcher::sensor_event_dispatcher() : m_lcd_on(false) { } -csensor_event_dispatcher::~csensor_event_dispatcher() { } +sensor_event_dispatcher::~sensor_event_dispatcher() { } -csensor_event_dispatcher& csensor_event_dispatcher::get_instance() +sensor_event_dispatcher& sensor_event_dispatcher::get_instance() { - static csensor_event_dispatcher inst; + static sensor_event_dispatcher inst; return inst; } -bool csensor_event_dispatcher::run(void) +bool sensor_event_dispatcher::run(void) { INFO("Starting Event Dispatcher\n"); @@ -63,20 +63,20 @@ bool csensor_event_dispatcher::run(void) return false; } - thread accepter(&csensor_event_dispatcher::accept_connections, this); + thread accepter(&sensor_event_dispatcher::accept_connections, this); accepter.detach(); - thread dispatcher(&csensor_event_dispatcher::dispatch_event, this); + thread dispatcher(&sensor_event_dispatcher::dispatch_event, this); dispatcher.detach(); return true; } -void csensor_event_dispatcher::accept_event_channel(csocket client_socket) +void sensor_event_dispatcher::accept_event_channel(csocket client_socket) { int client_id; event_channel_ready_t event_channel_ready; - cclient_info_manager& client_info_manager = get_client_info_manager(); + client_info_manager& client_info_manager = get_client_info_manager(); client_socket.set_connection_mode(); @@ -108,7 +108,7 @@ void csensor_event_dispatcher::accept_event_channel(csocket client_socket) } } -void csensor_event_dispatcher::accept_connections(void) +void sensor_event_dispatcher::accept_connections(void) { INFO("Event channel acceptor is started.\n"); @@ -122,12 +122,12 @@ void csensor_event_dispatcher::accept_connections(void) INFO("New client connected (socket_fd : %d)\n", client_socket.get_socket_fd()); - thread event_channel_creator(&csensor_event_dispatcher::accept_event_channel, this, client_socket); + thread event_channel_creator(&sensor_event_dispatcher::accept_event_channel, this, client_socket); event_channel_creator.detach(); } } -void csensor_event_dispatcher::dispatch_event(void) +void sensor_event_dispatcher::dispatch_event(void) { const int MAX_SYNTH_PER_SENSOR = 5; @@ -188,10 +188,10 @@ void csensor_event_dispatcher::dispatch_event(void) } -void csensor_event_dispatcher::send_sensor_events(vector< pair > &events) +void sensor_event_dispatcher::send_sensor_events(vector< pair > &events) { sensor_event_t *sensor_events = NULL; - cclient_info_manager& client_info_manager = get_client_info_manager(); + client_info_manager& client_info_manager = get_client_info_manager(); const int RESERVED_CLIENT_CNT = 20; static client_id_vec id_vec(RESERVED_CLIENT_CNT); @@ -226,10 +226,10 @@ void csensor_event_dispatcher::send_sensor_events(vector< pair > &ev } } -void csensor_event_dispatcher::send_sensorhub_events(void* events) +void sensor_event_dispatcher::send_sensorhub_events(void* events) { sensorhub_event_t *sensor_hub_events; - cclient_info_manager& client_info_manager = get_client_info_manager(); + client_info_manager& client_info_manager = get_client_info_manager(); const int RESERVED_CLIENT_CNT = 20; static client_id_vec id_vec(RESERVED_CLIENT_CNT); @@ -263,28 +263,28 @@ void csensor_event_dispatcher::send_sensorhub_events(void* events) free(sensor_hub_events); } -cclient_info_manager& csensor_event_dispatcher::get_client_info_manager(void) +client_info_manager& sensor_event_dispatcher::get_client_info_manager(void) { - return cclient_info_manager::get_instance(); + return client_info_manager::get_instance(); } -csensor_event_queue& csensor_event_dispatcher::get_event_queue(void) +sensor_event_queue& sensor_event_dispatcher::get_event_queue(void) { - return csensor_event_queue::get_instance(); + return sensor_event_queue::get_instance(); } -bool csensor_event_dispatcher::is_record_event(unsigned int event_type) +bool sensor_event_dispatcher::is_record_event(unsigned int event_type) { return false; } -void csensor_event_dispatcher::put_last_event(unsigned int event_type, const sensor_event_t &event) +void sensor_event_dispatcher::put_last_event(unsigned int event_type, const sensor_event_t &event) { AUTOLOCK(m_last_events_mutex); m_last_events[event_type] = event; } -bool csensor_event_dispatcher::get_last_event(unsigned int event_type, sensor_event_t &event) +bool sensor_event_dispatcher::get_last_event(unsigned int event_type, sensor_event_t &event) { AUTOLOCK(m_last_events_mutex); @@ -297,7 +297,7 @@ bool csensor_event_dispatcher::get_last_event(unsigned int event_type, sensor_ev return true; } -bool csensor_event_dispatcher::has_active_virtual_sensor(virtual_sensor *sensor) +bool sensor_event_dispatcher::has_active_virtual_sensor(virtual_sensor *sensor) { AUTOLOCK(m_active_virtual_sensors_mutex); @@ -307,7 +307,7 @@ bool csensor_event_dispatcher::has_active_virtual_sensor(virtual_sensor *sensor) } -virtual_sensors csensor_event_dispatcher::get_active_virtual_sensors(void) +virtual_sensors sensor_event_dispatcher::get_active_virtual_sensors(void) { AUTOLOCK(m_active_virtual_sensors_mutex); @@ -320,14 +320,14 @@ struct sort_comp { } }; -void csensor_event_dispatcher::sort_sensor_events(vector< pair > &events) +void sensor_event_dispatcher::sort_sensor_events(vector< pair > &events) { std::sort(events.begin(), events.end(), sort_comp()); } -void csensor_event_dispatcher::request_last_event(int client_id, sensor_id_t sensor_id) +void sensor_event_dispatcher::request_last_event(int client_id, sensor_id_t sensor_id) { - cclient_info_manager& client_info_manager = get_client_info_manager(); + client_info_manager& client_info_manager = get_client_info_manager(); event_type_vector event_vec; csocket client_socket; @@ -355,7 +355,7 @@ void csensor_event_dispatcher::request_last_event(int client_id, sensor_id_t sen } -bool csensor_event_dispatcher::add_active_virtual_sensor(virtual_sensor * sensor) +bool sensor_event_dispatcher::add_active_virtual_sensor(virtual_sensor * sensor) { AUTOLOCK(m_active_virtual_sensors_mutex); @@ -369,7 +369,7 @@ bool csensor_event_dispatcher::add_active_virtual_sensor(virtual_sensor * sensor return true; } -bool csensor_event_dispatcher::delete_active_virtual_sensor(virtual_sensor * sensor) +bool sensor_event_dispatcher::delete_active_virtual_sensor(virtual_sensor * sensor) { AUTOLOCK(m_active_virtual_sensors_mutex); diff --git a/src/server/csensor_event_dispatcher.h b/src/server/sensor_event_dispatcher.h similarity index 80% rename from src/server/csensor_event_dispatcher.h rename to src/server/sensor_event_dispatcher.h index bb40ac2..278b498 100755 --- a/src/server/csensor_event_dispatcher.h +++ b/src/server/sensor_event_dispatcher.h @@ -21,8 +21,8 @@ #define _SENSOR_EVENT_DISPATCHER_H_ #include -#include -#include +#include +#include #include #include #include @@ -33,7 +33,7 @@ typedef std::unordered_map event_type_last_event_map; typedef std::list virtual_sensors; -class csensor_event_dispatcher +class sensor_event_dispatcher { private: bool m_lcd_on; @@ -44,10 +44,10 @@ private: virtual_sensors m_active_virtual_sensors; cmutex m_active_virtual_sensors_mutex; - csensor_event_dispatcher(); - ~csensor_event_dispatcher(); - csensor_event_dispatcher(csensor_event_dispatcher const&) {}; - csensor_event_dispatcher& operator=(csensor_event_dispatcher const&); + sensor_event_dispatcher(); + ~sensor_event_dispatcher(); + sensor_event_dispatcher(sensor_event_dispatcher const&) {}; + sensor_event_dispatcher& operator=(sensor_event_dispatcher const&); void accept_connections(void); void accept_event_channel(csocket client_socket); @@ -55,8 +55,8 @@ private: void dispatch_event(void); void send_sensor_events(std::vector< std::pair > &events); void send_sensorhub_events(void* events); - static cclient_info_manager& get_client_info_manager(void); - static csensor_event_queue& get_event_queue(void); + static client_info_manager& get_client_info_manager(void); + static sensor_event_queue& get_event_queue(void); bool is_record_event(unsigned int event_type); void put_last_event(unsigned int event_type, const sensor_event_t &event); @@ -67,7 +67,7 @@ private: void sort_sensor_events(std::vector< std::pair > &events); public: - static csensor_event_dispatcher& get_instance(); + static sensor_event_dispatcher& get_instance(); bool run(void); void request_last_event(int client_id, sensor_id_t sensor_id); @@ -75,4 +75,4 @@ public: bool delete_active_virtual_sensor(virtual_sensor *sensor); }; -#endif +#endif /* _SENSOR_EVENT_DISPATCHER_H_ */ diff --git a/src/server/sensor_event_poller.h b/src/server/sensor_event_poller.h index 51d5f26..21f3240 100644 --- a/src/server/sensor_event_poller.h +++ b/src/server/sensor_event_poller.h @@ -17,6 +17,9 @@ * */ +#ifndef _SENSOR_EVENT_POLLER_H_ +#define _SENSOR_EVENT_POLLER_H_ + #include #include #include @@ -39,3 +42,5 @@ private: bool is_data_ready(int fd); bool process_event(int fd); }; + +#endif /* _SENSOR_EVENT_POLLER_H_ */ diff --git a/src/server/csensor_event_queue.cpp b/src/server/sensor_event_queue.cpp similarity index 79% rename from src/server/csensor_event_queue.cpp rename to src/server/sensor_event_queue.cpp index 6902e8b..444b053 100644 --- a/src/server/csensor_event_queue.cpp +++ b/src/server/sensor_event_queue.cpp @@ -17,16 +17,16 @@ * */ -#include +#include #include "sensor_logs.h" -csensor_event_queue& csensor_event_queue::get_instance() +sensor_event_queue& sensor_event_queue::get_instance() { - static csensor_event_queue inst; + static sensor_event_queue inst; return inst; } -void csensor_event_queue::push_internal(void *event, int length) +void sensor_event_queue::push_internal(void *event, int length) { lock l(m_mutex); bool wake = m_queue.empty(); @@ -41,7 +41,7 @@ void csensor_event_queue::push_internal(void *event, int length) m_cond_var.notify_one(); } -void* csensor_event_queue::pop(int *length) +void* sensor_event_queue::pop(int *length) { ulock u(m_mutex); while (m_queue.empty()) @@ -54,7 +54,7 @@ void* csensor_event_queue::pop(int *length) return event.first; } -void csensor_event_queue::push(sensor_event_t *event, int event_length) +void sensor_event_queue::push(sensor_event_t *event, int event_length) { push_internal(event, event_length); } diff --git a/src/server/csensor_event_queue.h b/src/server/sensor_event_queue.h similarity index 87% rename from src/server/csensor_event_queue.h rename to src/server/sensor_event_queue.h index 4138cac..a57507b 100644 --- a/src/server/csensor_event_queue.h +++ b/src/server/sensor_event_queue.h @@ -17,8 +17,9 @@ * */ -#if !defined(_CSENSOR_EVENT_QUEUE_CLASS_H_) -#define _CSENSOR_EVENT_QUEUE_CLASS_H_ +#ifndef _SENSOR_EVENT_QUEUE_H_ +#define _SENSOR_EVENT_QUEUE_H_ + #include #include #include @@ -29,7 +30,7 @@ extern std::set priority_list; -class csensor_event_queue +class sensor_event_queue { private: static const unsigned int QUEUE_FULL_SIZE = 1000; @@ -82,16 +83,16 @@ private: typedef std::lock_guard lock; typedef std::unique_lock ulock; - csensor_event_queue() {}; - ~csensor_event_queue() {}; - csensor_event_queue(const csensor_event_queue &) {}; - csensor_event_queue& operator=(const csensor_event_queue &); + sensor_event_queue() {}; + ~sensor_event_queue() {}; + sensor_event_queue(const sensor_event_queue &) {}; + sensor_event_queue& operator=(const sensor_event_queue &); void push_internal(void *event, int length); public: - static csensor_event_queue& get_instance(); + static sensor_event_queue& get_instance(); void push(sensor_event_t *event, int event_length); void* pop(int *length); }; -#endif +#endif /* _SENSOR_EVENT_QUEUE_H_*/ diff --git a/src/server/sensor_plugin_loader.h b/src/server/sensor_plugin_loader.h index bc0bb66..07886e3 100755 --- a/src/server/sensor_plugin_loader.h +++ b/src/server/sensor_plugin_loader.h @@ -17,8 +17,8 @@ * */ -#if !defined(_SENSOR_PLUGIN_LOADER_CLASS_H_) -#define _SENSOR_PLUGIN_LOADER_CLASS_H_ +#ifndef _SENSOR_PLUGIN_LOADER_H_ +#define _SENSOR_PLUGIN_LOADER_H_ #include #include @@ -61,4 +61,4 @@ public: std::vector get_sensors(sensor_type_t type); std::vector get_virtual_sensors(void); }; -#endif /* _SENSOR_PLUGIN_LOADER_CLASS_H_ */ +#endif /* _SENSOR_PLUGIN_LOADER_H_ */ diff --git a/src/server/csensor_usage.cpp b/src/server/sensor_usage.cpp similarity index 84% rename from src/server/csensor_usage.cpp rename to src/server/sensor_usage.cpp index 0e06826..cc114ff 100644 --- a/src/server/csensor_usage.cpp +++ b/src/server/sensor_usage.cpp @@ -18,10 +18,10 @@ */ #include -#include +#include #include -csensor_usage::csensor_usage() +sensor_usage::sensor_usage() : m_interval(POLL_MAX_HZ_MS) , m_latency(0) , m_option(SENSOR_OPTION_DEFAULT) @@ -30,12 +30,12 @@ csensor_usage::csensor_usage() { } -csensor_usage::~csensor_usage() +sensor_usage::~sensor_usage() { m_reg_events.clear(); } -bool csensor_usage::register_event(unsigned int event_type) +bool sensor_usage::register_event(unsigned int event_type) { auto it_event = find(m_reg_events.begin(), m_reg_events.end(), event_type); @@ -48,7 +48,7 @@ bool csensor_usage::register_event(unsigned int event_type) return true; } -bool csensor_usage::unregister_event(unsigned int event_type) +bool sensor_usage::unregister_event(unsigned int event_type) { auto it_event = find(m_reg_events.begin(), m_reg_events.end(), event_type); @@ -62,7 +62,7 @@ bool csensor_usage::unregister_event(unsigned int event_type) return true; } -bool csensor_usage::is_event_registered(unsigned int event_type) +bool sensor_usage::is_event_registered(unsigned int event_type) { auto it_event = find (m_reg_events.begin(), m_reg_events.end(), event_type); diff --git a/src/server/csensor_usage.h b/src/server/sensor_usage.h similarity index 88% rename from src/server/csensor_usage.h rename to src/server/sensor_usage.h index 553ca51..7e6d3ac 100644 --- a/src/server/csensor_usage.h +++ b/src/server/sensor_usage.h @@ -17,8 +17,8 @@ * */ -#ifndef CSENSOR_USAGE_H_ -#define CSENSOR_USAGE_H_ +#ifndef _SENSOR_USAGE_H_ +#define _SENSOR_USAGE_H_ #include #include @@ -26,7 +26,7 @@ typedef std::vector reg_event_vector; -class csensor_usage { +class sensor_usage { public: unsigned int m_interval; unsigned int m_latency; @@ -35,12 +35,12 @@ public: reg_event_vector m_reg_events; bool m_start; - csensor_usage(); - ~csensor_usage(); + sensor_usage(); + ~sensor_usage(); bool register_event(unsigned int event_type); bool unregister_event(unsigned int event_type); bool is_event_registered(unsigned int event_type); }; -#endif /* CSENSOR_USAGE_H_ */ +#endif /* _SENSOR_USAGE_H_ */ diff --git a/src/server/server.cpp b/src/server/server.cpp index f4d8468..6bf0793 100755 --- a/src/server/server.cpp +++ b/src/server/server.cpp @@ -127,7 +127,7 @@ void server::run(void) } } - csensor_event_dispatcher::get_instance().run(); + sensor_event_dispatcher::get_instance().run(); thread client_accepter(&server::accept_client, this); client_accepter.detach(); diff --git a/src/server/server.h b/src/server/server.h index 3f6f393..ae52cc5 100755 --- a/src/server/server.h +++ b/src/server/server.h @@ -17,8 +17,8 @@ * */ -#ifndef SERVER_H_ -#define SERVER_H_ +#ifndef _SERVER_H_ +#define _SERVER_H_ #include #include @@ -41,4 +41,4 @@ public: static server& get_instance(); }; -#endif +#endif /* _SERVER_H_ */ diff --git a/src/server/virtual_sensor.cpp b/src/server/virtual_sensor.cpp index 75c3bc0..112a3a0 100755 --- a/src/server/virtual_sensor.cpp +++ b/src/server/virtual_sensor.cpp @@ -18,7 +18,7 @@ */ #include -#include +#include virtual_sensor::virtual_sensor() @@ -40,10 +40,10 @@ bool virtual_sensor::is_virtual(void) bool virtual_sensor::activate(void) { - return csensor_event_dispatcher::get_instance().add_active_virtual_sensor(this); + return sensor_event_dispatcher::get_instance().add_active_virtual_sensor(this); } bool virtual_sensor::deactivate(void) { - return csensor_event_dispatcher::get_instance().delete_active_virtual_sensor(this); + return sensor_event_dispatcher::get_instance().delete_active_virtual_sensor(this); } diff --git a/src/server/virtual_sensor.h b/src/server/virtual_sensor.h index a695538..f781880 100755 --- a/src/server/virtual_sensor.h +++ b/src/server/virtual_sensor.h @@ -43,4 +43,4 @@ private: bool m_hardware_fusion; }; -#endif +#endif /* _VIRTUAL_SENSOR_H_ */ diff --git a/src/server/cvirtual_sensor_config.cpp b/src/server/virtual_sensor_config.cpp similarity index 78% rename from src/server/cvirtual_sensor_config.cpp rename to src/server/virtual_sensor_config.cpp index c963d48..1741239 100755 --- a/src/server/cvirtual_sensor_config.cpp +++ b/src/server/virtual_sensor_config.cpp @@ -17,7 +17,7 @@ * */ -#include +#include #include "sensor_logs.h" #include #include @@ -37,14 +37,14 @@ using std::stringstream; #define DEFAULT_ATTR3 "value3" #define DEFAULT_DEVICE "Default" -cvirtual_sensor_config::cvirtual_sensor_config() +virtual_sensor_config::virtual_sensor_config() { } -cvirtual_sensor_config& cvirtual_sensor_config::get_instance(void) +virtual_sensor_config& virtual_sensor_config::get_instance(void) { static bool load_done = false; - static cvirtual_sensor_config inst; + static virtual_sensor_config inst; if (!load_done) { inst.load_config(VIRTUAL_SENSOR_CONFIG_FILE_PATH); @@ -59,12 +59,12 @@ cvirtual_sensor_config& cvirtual_sensor_config::get_instance(void) return inst; } -bool cvirtual_sensor_config::load_config(const string& config_path) +bool virtual_sensor_config::load_config(const string& config_path) { xmlDocPtr doc; xmlNodePtr cur; - DBG("cvirtual_sensor_config::load_config(\"%s\") is called!\n",config_path.c_str()); + DBG("virtual_sensor_config::load_config(\"%s\") is called!\n",config_path.c_str()); doc = xmlParseFile(config_path.c_str()); @@ -107,7 +107,7 @@ bool cvirtual_sensor_config::load_config(const string& config_path) free(prop); //insert device to device_list - m_virtual_sensor_config[device_type]; + m_virtual_sensor_configs[device_type]; DBG("\n",device_type.c_str()); virtual_sensor_node_ptr = device_node_ptr->xmlChildrenNode; @@ -119,7 +119,7 @@ bool cvirtual_sensor_config::load_config(const string& config_path) continue; } - m_virtual_sensor_config[device_type][(const char*)virtual_sensor_node_ptr->name]; + m_virtual_sensor_configs[device_type][(const char*)virtual_sensor_node_ptr->name]; DBG("<%s>\n",device_type.c_str(),(const char*)virtual_sensor_node_ptr->name); element_node_ptr = virtual_sensor_node_ptr->xmlChildrenNode; @@ -131,7 +131,7 @@ bool cvirtual_sensor_config::load_config(const string& config_path) } //insert Element to Model - m_virtual_sensor_config[device_type][(const char*)virtual_sensor_node_ptr->name][(const char*)element_node_ptr->name]; + m_virtual_sensor_configs[device_type][(const char*)virtual_sensor_node_ptr->name][(const char*)element_node_ptr->name]; DBG("<%s><%s>\n",device_type.c_str(),(const char*)virtual_sensor_node_ptr->name,(const char*)element_node_ptr->name); attr_ptr = element_node_ptr->properties; @@ -144,7 +144,7 @@ bool cvirtual_sensor_config::load_config(const string& config_path) free(prop); //insert attribute to Element - m_virtual_sensor_config[device_type][(const char*)virtual_sensor_node_ptr->name][(const char*)element_node_ptr->name][key]=value; + m_virtual_sensor_configs[device_type][(const char*)virtual_sensor_node_ptr->name][(const char*)element_node_ptr->name][key]=value; DBG("<%s><%s \"%s\"=\"%s\">\n",device_type.c_str(),(const char*)virtual_sensor_node_ptr->name,(const char*)element_node_ptr->name,key.c_str(),value.c_str()); attr_ptr = attr_ptr->next; } @@ -163,17 +163,17 @@ bool cvirtual_sensor_config::load_config(const string& config_path) return true; } -bool cvirtual_sensor_config::get(const string& sensor_type, const string& element, const string& attr, string& value) +bool virtual_sensor_config::get(const string& sensor_type, const string& element, const string& attr, string& value) { - auto it_device_list = m_virtual_sensor_config.find(m_device_id); + auto it_device_list = m_virtual_sensor_configs.find(m_device_id); - if (it_device_list == m_virtual_sensor_config.end()) { + if (it_device_list == m_virtual_sensor_configs.end()) { ERR("There is no <%s> device\n",m_device_id.c_str()); m_device_id = DEFAULT_DEVICE; - it_device_list = m_virtual_sensor_config.find(m_device_id); + it_device_list = m_virtual_sensor_configs.find(m_device_id); - if (it_device_list == m_virtual_sensor_config.end()) { + if (it_device_list == m_virtual_sensor_configs.end()) { ERR("There is no Default device\n"); return false; } @@ -207,7 +207,7 @@ bool cvirtual_sensor_config::get(const string& sensor_type, const string& elemen return true; } -bool cvirtual_sensor_config::get(const string& sensor_type, const string& element, const string& attr, float *value) +bool virtual_sensor_config::get(const string& sensor_type, const string& element, const string& attr, float *value) { string str_value; @@ -221,7 +221,7 @@ bool cvirtual_sensor_config::get(const string& sensor_type, const string& elemen return true; } -bool cvirtual_sensor_config::get(const string& sensor_type, const string& element, const string& attr, int *value) +bool virtual_sensor_config::get(const string& sensor_type, const string& element, const string& attr, int *value) { string str_value; @@ -235,7 +235,7 @@ bool cvirtual_sensor_config::get(const string& sensor_type, const string& elemen return true; } -bool cvirtual_sensor_config::get(const string& sensor_type, const string& element, string& value) +bool virtual_sensor_config::get(const string& sensor_type, const string& element, string& value) { if (get(sensor_type, element, DEFAULT_ATTR, value)) return true; @@ -243,7 +243,7 @@ bool cvirtual_sensor_config::get(const string& sensor_type, const string& elemen return false; } -bool cvirtual_sensor_config::get(const string& sensor_type, const string& element, float *value, int count) +bool virtual_sensor_config::get(const string& sensor_type, const string& element, float *value, int count) { if (count == 1) { @@ -275,7 +275,7 @@ bool cvirtual_sensor_config::get(const string& sensor_type, const string& elemen return false; } -bool cvirtual_sensor_config::get(const string& sensor_type, const string& element, int *value, int count) +bool virtual_sensor_config::get(const string& sensor_type, const string& element, int *value, int count) { if (count == 1) { @@ -307,11 +307,11 @@ bool cvirtual_sensor_config::get(const string& sensor_type, const string& elemen return false; } -bool cvirtual_sensor_config::is_supported(const string& sensor_type) +bool virtual_sensor_config::is_supported(const string& sensor_type) { - auto it_device_list = m_virtual_sensor_config.find(m_device_id); + auto it_device_list = m_virtual_sensor_configs.find(m_device_id); - if (it_device_list == m_virtual_sensor_config.end()) + if (it_device_list == m_virtual_sensor_configs.end()) return false; auto it_virtual_sensor_list = it_device_list->second.find(sensor_type); diff --git a/src/server/cvirtual_sensor_config.h b/src/server/virtual_sensor_config.h similarity index 79% rename from src/server/cvirtual_sensor_config.h rename to src/server/virtual_sensor_config.h index a9af957..0c077ff 100755 --- a/src/server/cvirtual_sensor_config.h +++ b/src/server/virtual_sensor_config.h @@ -17,10 +17,10 @@ * */ -#if !defined(_CVIRTUAL_SENSOR_CONFIG_CLASS_H_) -#define _CVIRTUAL_SENSOR_CONFIG_CLASS_H_ +#ifndef _VIRTUAL_SENSOR_CONFIG_H_ +#define _VIRTUAL_SENSOR_CONFIG_H_ -#include +#include #define VIRTUAL_SENSOR_CONFIG_FILE_PATH "/usr/etc/virtual_sensors.xml" @@ -40,7 +40,7 @@ typedef std::unordered_map Virtual_sensor; * ... */ -typedef std::unordered_map virtual_sensor_config; +typedef std::unordered_map virtual_sensor_configs; /* * a Virtual_sensor_config represents virtual_sensors.xml * @@ -49,7 +49,7 @@ typedef std::unordered_map virtual_sensor_config; * */ -typedef std::unordered_map virtual_sensor_device_config; +typedef std::unordered_map virtual_sensor_device_configs; /* * a virtual_sensor_device_config represents virtual_sensors.xml * @@ -57,19 +57,19 @@ typedef std::unordered_map virtual_sensor_dev * */ -class cvirtual_sensor_config : public cconfig +class virtual_sensor_config : public device_config { private: - cvirtual_sensor_config(); - cvirtual_sensor_config(cvirtual_sensor_config const&) {}; - cvirtual_sensor_config& operator=(cvirtual_sensor_config const&); + virtual_sensor_config(); + virtual_sensor_config(virtual_sensor_config const&) {}; + virtual_sensor_config& operator=(virtual_sensor_config const&); bool load_config(const std::string& config_path); - virtual_sensor_device_config m_virtual_sensor_config; + virtual_sensor_device_configs m_virtual_sensor_configs; public: - static cvirtual_sensor_config& get_instance(void); + static virtual_sensor_config& get_instance(void); bool get(const std::string& sensor_type, const std::string& element, const std::string& attr, std::string& value); bool get(const std::string& sensor_type, const std::string& element, const std::string& attr, float *value); @@ -82,4 +82,4 @@ public: bool is_supported(const std::string &sensor_type); }; -#endif +#endif /* _VIRTUAL_SENSOR_CONFIG_H_ */ diff --git a/src/server/worker_thread.h b/src/server/worker_thread.h index 6459b3f..543d4e8 100755 --- a/src/server/worker_thread.h +++ b/src/server/worker_thread.h @@ -78,4 +78,4 @@ public: void set_context(void *ctx); }; -#endif +#endif /* _WORKER_THREAD_H_ */ diff --git a/src/shared/cbase_lock.h b/src/shared/cbase_lock.h index 2b0082a..6319488 100755 --- a/src/shared/cbase_lock.h +++ b/src/shared/cbase_lock.h @@ -17,8 +17,8 @@ * */ -#if !defined(_CBASE_LOCK_CLASS_H_) -#define _CBASE_LOCK_CLASS_H_ +#ifndef _CBASE_LOCK_H_ +#define _CBASE_LOCK_H_ #include @@ -83,5 +83,4 @@ public: ~Autolock(); }; -#endif -// End of a file +#endif /* _CBASE_LOCK_H_ */ diff --git a/src/shared/cmutex.h b/src/shared/cmutex.h index bfdd5d0..2d7ec68 100755 --- a/src/shared/cmutex.h +++ b/src/shared/cmutex.h @@ -17,8 +17,8 @@ * */ -#if !defined(_CMUTEX_CLASS_H_) -#define _CMUTEX_CLASS_H_ +#ifndef _CMUTEX_H_ +#define _CMUTEX_H_ #include "cbase_lock.h" @@ -39,5 +39,4 @@ private: pthread_mutex_t m_mutex; }; -#endif -// End of a file +#endif /* _CMUTEX_H_ */ diff --git a/src/shared/cpacket.h b/src/shared/cpacket.h index fa50eaf..3356ff5 100755 --- a/src/shared/cpacket.h +++ b/src/shared/cpacket.h @@ -17,8 +17,8 @@ * */ -#if !defined(_CPACKET_CLASS_H_) -#define _CPACKET_CLASS_H_ +#ifndef _CPACKET_H_ +#define _CPACKET_H_ typedef struct packet_header { int cmd; @@ -47,5 +47,4 @@ private: packet_header *m_packet; }; -#endif -// End of a file +#endif /* _CPACKET_H_ */ diff --git a/src/shared/csocket.h b/src/shared/csocket.h index 9014bc2..42b7733 100644 --- a/src/shared/csocket.h +++ b/src/shared/csocket.h @@ -17,8 +17,8 @@ * */ -#ifndef CSOCKET_H_ -#define CSOCKET_H_ +#ifndef _CSOCKET_H_ +#define _CSOCKET_H_ #include #include @@ -76,4 +76,4 @@ private: int m_recv_flags; }; -#endif /* CSOCKET_H_ */ +#endif /* _CSOCKET_H_ */ diff --git a/src/shared/sensor_common.h b/src/shared/sensor_common.h index 02cbfd3..83d8b7d 100755 --- a/src/shared/sensor_common.h +++ b/src/shared/sensor_common.h @@ -17,8 +17,8 @@ * */ -#ifndef __SENSOR_COMMON_H__ -#define __SENSOR_COMMON_H__ +#ifndef _SENSOR_COMMON_H_ +#define _SENSOR_COMMON_H_ #ifndef DEPRECATED #define DEPRECATED __attribute__((deprecated)) @@ -150,5 +150,4 @@ typedef enum { #endif -#endif -//! End of a file +#endif /* _SENSOR_COMMON_H_ */ diff --git a/src/shared/sensor_hal.h b/src/shared/sensor_hal.h index c9466ef..6ee4212 100644 --- a/src/shared/sensor_hal.h +++ b/src/shared/sensor_hal.h @@ -143,4 +143,4 @@ public: /* TODO: use get_sensors() instead of get_properties() */ virtual bool get_properties(uint32_t id, sensor_properties_s &properties) = 0; }; -#endif /*_SENSOR_HAL_H_*/ +#endif /* _SENSOR_HAL_H_ */ diff --git a/src/shared/sensor_logs.h b/src/shared/sensor_logs.h index ea2a8b9..4192123 100755 --- a/src/shared/sensor_logs.h +++ b/src/shared/sensor_logs.h @@ -17,8 +17,8 @@ * */ -#if !defined(_COMMON_H_) -#define _COMMON_H_ +#ifndef _SENSOR_LOGS_H_ +#define _SENSOR_LOGS_H_ #ifndef __cplusplus #include @@ -228,5 +228,4 @@ void copy_sensorhub_data(sensorhub_data_t *dest, sensorhub_data_t *src); } #endif -#endif -//! End of a file +#endif /* _SENSOR_LOGS_H_ */ diff --git a/src/shared/sf_common.h b/src/shared/sf_common.h index af649b9..c627edf 100644 --- a/src/shared/sf_common.h +++ b/src/shared/sf_common.h @@ -17,14 +17,14 @@ * */ -#include - -#if !defined(_SF_COMMON_H_) +#ifndef _SF_COMMON_H_ #define _SF_COMMON_H_ + #include #include #include #include +#include #define COMMAND_CHANNEL_PATH "/tmp/sensord_command_socket" #define EVENT_CHANNEL_PATH "/tmp/sensord_event_socket" @@ -238,4 +238,4 @@ enum sensor_permission_t { #define BIO_SENSOR_PRIVELEGE_NAME "sensord::bio" #define BIO_SENSOR_ACCESS_RIGHT "rw" -#endif +#endif /* _SF_COMMON_H_ */ -- 2.7.4 From 19f758eb7ad629c6edd27a1bb7832649e0be74a7 Mon Sep 17 00:00:00 2001 From: "kibak.yoon" Date: Fri, 22 Jan 2016 14:01:08 +0900 Subject: [PATCH 09/16] sensord: change access permissions about all files - change file permission to 644 Signed-off-by: kibak.yoon Change-Id: Ic58252a955dbd2bb65e235be7fe639870ff309ac --- CMakeLists.txt | 0 documentation/device_gravity.png | Bin documentation/device_orientation.png | Bin documentation/virtual_sensor_configuration.htm | 0 src/CMakeLists.txt | 0 src/client/CMakeLists.txt | 0 src/client/client_common.cpp | 0 src/client/client_common.h | 0 src/client/sensor.pc.in | 0 src/client/sensor_info_manager.cpp | 0 src/client/sensor_info_manager.h | 0 src/server/CMakeLists.txt | 0 src/server/dbus_util.cpp | 0 src/server/dbus_util.h | 0 src/server/device_config.cpp | 0 src/server/device_config.h | 0 src/server/main.cpp | 0 src/server/permission_checker.cpp | 0 src/server/permission_checker.h | 0 src/server/plugins/CMakeLists.txt | 0 src/server/plugins/auto_rotation/auto_rotation_sensor.cpp | 0 src/server/plugins/auto_rotation/auto_rotation_sensor.h | 0 src/server/plugins/fusion/fusion_sensor.cpp | 0 src/server/plugins/fusion/fusion_sensor.h | 0 src/server/plugins/fusion/hardware_fusion_sensor.html | 0 src/server/plugins/gravity/gravity_sensor.cpp | 0 src/server/plugins/gravity/gravity_sensor.h | 0 src/server/plugins/linear_accel/linear_accel_sensor.cpp | 0 src/server/plugins/linear_accel/linear_accel_sensor.h | 0 src/server/plugins/orientation/orientation_sensor.cpp | 0 src/server/plugins/orientation/orientation_sensor.h | 0 .../plugins/rotation_vector/gaming_rv/gaming_rv_sensor.cpp | 0 .../plugins/rotation_vector/gaming_rv/gaming_rv_sensor.h | 0 .../geomagnetic_rv/geomagnetic_rv_sensor.cpp | 0 .../rotation_vector/geomagnetic_rv/geomagnetic_rv_sensor.h | 0 src/server/plugins/rotation_vector/rv/rv_sensor.cpp | 0 src/server/plugins/rotation_vector/rv/rv_sensor.h | 0 .../design/data/100ms/gravity/single_roll_throw/accel.txt | 0 .../design/data/100ms/gravity/single_roll_throw/gyro.txt | 0 .../data/100ms/gravity/single_roll_throw/magnetic.txt | 0 .../data/100ms/linear_acceleration/move_x_y_z/accel.txt | 0 .../data/100ms/linear_acceleration/move_x_y_z/gyro.txt | 0 .../data/100ms/linear_acceleration/move_x_y_z/magnetic.txt | 0 .../design/data/100ms/orientation/roll_pitch_yaw/accel.txt | 0 .../design/data/100ms/orientation/roll_pitch_yaw/gyro.txt | 0 .../data/100ms/orientation/roll_pitch_yaw/magnetic.txt | 0 .../block_diagram_gravity_and_linear_acceleration.png | Bin .../diagram/block_diagram_orientation_estimation.png | Bin .../design/documentation/diagram/device_orientation.png | Bin .../design/documentation/diagram/kalman_filter_stages.png | Bin .../documentation/diagram/orientation_effect_on_gravity.png | Bin .../diagram/projection_diagram_gravity_computation.png | Bin .../design/documentation/equation/equation_1.png | Bin .../design/documentation/equation/equation_10.png | Bin .../design/documentation/equation/equation_11.png | Bin .../design/documentation/equation/equation_12.png | Bin .../design/documentation/equation/equation_13.png | Bin .../design/documentation/equation/equation_14.png | Bin .../design/documentation/equation/equation_15.png | Bin .../design/documentation/equation/equation_16.png | Bin .../design/documentation/equation/equation_17.png | Bin .../design/documentation/equation/equation_18.png | Bin .../design/documentation/equation/equation_19.png | Bin .../design/documentation/equation/equation_2.png | Bin .../design/documentation/equation/equation_20.png | Bin .../design/documentation/equation/equation_21.png | Bin .../design/documentation/equation/equation_22.png | Bin .../design/documentation/equation/equation_23.png | Bin .../design/documentation/equation/equation_24.png | Bin .../design/documentation/equation/equation_25.png | Bin .../design/documentation/equation/equation_26.png | Bin .../design/documentation/equation/equation_27.png | Bin .../design/documentation/equation/equation_28.png | Bin .../design/documentation/equation/equation_29.png | Bin .../design/documentation/equation/equation_3.png | Bin .../design/documentation/equation/equation_30.png | Bin .../design/documentation/equation/equation_31.png | Bin .../design/documentation/equation/equation_32.png | Bin .../design/documentation/equation/equation_33.png | Bin .../design/documentation/equation/equation_34.png | Bin .../design/documentation/equation/equation_35.png | Bin .../design/documentation/equation/equation_36.png | Bin .../design/documentation/equation/equation_37.png | Bin .../design/documentation/equation/equation_38.png | Bin .../design/documentation/equation/equation_39.png | Bin .../design/documentation/equation/equation_4.png | Bin .../design/documentation/equation/equation_40.png | Bin .../design/documentation/equation/equation_5.png | Bin .../design/documentation/equation/equation_6.png | Bin .../design/documentation/equation/equation_7.png | Bin .../design/documentation/equation/equation_8.png | Bin .../design/documentation/equation/equation_9.png | Bin .../sensor_fusion/design/documentation/sensor_fusion.htm | 0 .../plugins/sensor_fusion/design/lib/estimate_gaming_rv.m | 0 .../sensor_fusion/design/lib/estimate_geomagnetic_rv.m | 0 .../plugins/sensor_fusion/design/lib/estimate_gravity.m | 0 .../sensor_fusion/design/lib/estimate_linear_acceleration.m | 0 .../plugins/sensor_fusion/design/lib/estimate_orientation.m | 0 src/server/plugins/sensor_fusion/design/lib/quat2euler.m | 0 src/server/plugins/sensor_fusion/design/lib/quat2rot_mat.m | 0 src/server/plugins/sensor_fusion/design/lib/quat_prod.m | 0 src/server/plugins/sensor_fusion/design/lib/rot_mat2quat.m | 0 src/server/plugins/sensor_fusion/design/lib/sf_pedometer.m | 0 src/server/plugins/sensor_fusion/design/sf_gaming_rv.m | 0 src/server/plugins/sensor_fusion/design/sf_geomagnetic_rv.m | 0 src/server/plugins/sensor_fusion/design/sf_gravity.m | 0 .../plugins/sensor_fusion/design/sf_linear_acceleration.m | 0 src/server/plugins/sensor_fusion/design/sf_orientation.m | 0 src/server/plugins/sensor_fusion/matrix.cpp | 0 src/server/plugins/sensor_fusion/matrix.h | 0 src/server/plugins/sensor_fusion/quaternion.cpp | 0 src/server/plugins/sensor_fusion/quaternion.h | 0 src/server/plugins/tilt/tilt_sensor.cpp | 0 src/server/plugins/tilt/tilt_sensor.h | 0 src/server/sensor_event_dispatcher.cpp | 0 src/server/sensor_event_dispatcher.h | 0 src/server/sensor_plugin_loader.h | 0 src/server/server.cpp | 0 src/server/server.h | 0 src/server/virtual_sensor.cpp | 0 src/server/virtual_sensor.h | 0 src/server/virtual_sensor_config.cpp | 0 src/server/virtual_sensor_config.h | 0 src/server/worker_thread.cpp | 0 src/server/worker_thread.h | 0 src/shared/cbase_lock.cpp | 0 src/shared/cbase_lock.h | 0 src/shared/cmutex.cpp | 0 src/shared/cmutex.h | 0 src/shared/cpacket.cpp | 0 src/shared/cpacket.h | 0 src/shared/poller.cpp | 0 src/shared/poller.h | 0 src/shared/sensor_common.h | 0 src/shared/sensor_internal_deprecated.h | 0 src/shared/sensor_logs.h | 0 systemd/sensord.service | 0 systemd/sensord.socket | 0 test/src/api-test.c | 0 test/src/check-sensor.c | 0 test/src/fusion-data-collection.c | 0 test/src/multi-process-performance-test.c | 0 test/src/sensor-test.c | 0 virtual_sensors.xml | 0 144 files changed, 0 insertions(+), 0 deletions(-) mode change 100755 => 100644 CMakeLists.txt mode change 100755 => 100644 documentation/device_gravity.png mode change 100755 => 100644 documentation/device_orientation.png mode change 100755 => 100644 documentation/virtual_sensor_configuration.htm mode change 100755 => 100644 src/CMakeLists.txt mode change 100755 => 100644 src/client/CMakeLists.txt mode change 100755 => 100644 src/client/client_common.cpp mode change 100755 => 100644 src/client/client_common.h mode change 100755 => 100644 src/client/sensor.pc.in mode change 100755 => 100644 src/client/sensor_info_manager.cpp mode change 100755 => 100644 src/client/sensor_info_manager.h mode change 100755 => 100644 src/server/CMakeLists.txt mode change 100755 => 100644 src/server/dbus_util.cpp mode change 100755 => 100644 src/server/dbus_util.h mode change 100755 => 100644 src/server/device_config.cpp mode change 100755 => 100644 src/server/device_config.h mode change 100755 => 100644 src/server/main.cpp mode change 100755 => 100644 src/server/permission_checker.cpp mode change 100755 => 100644 src/server/permission_checker.h mode change 100755 => 100644 src/server/plugins/CMakeLists.txt mode change 100755 => 100644 src/server/plugins/auto_rotation/auto_rotation_sensor.cpp mode change 100755 => 100644 src/server/plugins/auto_rotation/auto_rotation_sensor.h mode change 100755 => 100644 src/server/plugins/fusion/fusion_sensor.cpp mode change 100755 => 100644 src/server/plugins/fusion/fusion_sensor.h mode change 100755 => 100644 src/server/plugins/fusion/hardware_fusion_sensor.html mode change 100755 => 100644 src/server/plugins/gravity/gravity_sensor.cpp mode change 100755 => 100644 src/server/plugins/gravity/gravity_sensor.h mode change 100755 => 100644 src/server/plugins/linear_accel/linear_accel_sensor.cpp mode change 100755 => 100644 src/server/plugins/linear_accel/linear_accel_sensor.h mode change 100755 => 100644 src/server/plugins/orientation/orientation_sensor.cpp mode change 100755 => 100644 src/server/plugins/orientation/orientation_sensor.h mode change 100755 => 100644 src/server/plugins/rotation_vector/gaming_rv/gaming_rv_sensor.cpp mode change 100755 => 100644 src/server/plugins/rotation_vector/gaming_rv/gaming_rv_sensor.h mode change 100755 => 100644 src/server/plugins/rotation_vector/geomagnetic_rv/geomagnetic_rv_sensor.cpp mode change 100755 => 100644 src/server/plugins/rotation_vector/geomagnetic_rv/geomagnetic_rv_sensor.h mode change 100755 => 100644 src/server/plugins/rotation_vector/rv/rv_sensor.cpp mode change 100755 => 100644 src/server/plugins/rotation_vector/rv/rv_sensor.h mode change 100755 => 100644 src/server/plugins/sensor_fusion/design/data/100ms/gravity/single_roll_throw/accel.txt mode change 100755 => 100644 src/server/plugins/sensor_fusion/design/data/100ms/gravity/single_roll_throw/gyro.txt mode change 100755 => 100644 src/server/plugins/sensor_fusion/design/data/100ms/gravity/single_roll_throw/magnetic.txt mode change 100755 => 100644 src/server/plugins/sensor_fusion/design/data/100ms/linear_acceleration/move_x_y_z/accel.txt mode change 100755 => 100644 src/server/plugins/sensor_fusion/design/data/100ms/linear_acceleration/move_x_y_z/gyro.txt mode change 100755 => 100644 src/server/plugins/sensor_fusion/design/data/100ms/linear_acceleration/move_x_y_z/magnetic.txt mode change 100755 => 100644 src/server/plugins/sensor_fusion/design/data/100ms/orientation/roll_pitch_yaw/accel.txt mode change 100755 => 100644 src/server/plugins/sensor_fusion/design/data/100ms/orientation/roll_pitch_yaw/gyro.txt mode change 100755 => 100644 src/server/plugins/sensor_fusion/design/data/100ms/orientation/roll_pitch_yaw/magnetic.txt mode change 100755 => 100644 src/server/plugins/sensor_fusion/design/documentation/diagram/block_diagram_gravity_and_linear_acceleration.png mode change 100755 => 100644 src/server/plugins/sensor_fusion/design/documentation/diagram/block_diagram_orientation_estimation.png mode change 100755 => 100644 src/server/plugins/sensor_fusion/design/documentation/diagram/device_orientation.png mode change 100755 => 100644 src/server/plugins/sensor_fusion/design/documentation/diagram/kalman_filter_stages.png mode change 100755 => 100644 src/server/plugins/sensor_fusion/design/documentation/diagram/orientation_effect_on_gravity.png mode change 100755 => 100644 src/server/plugins/sensor_fusion/design/documentation/diagram/projection_diagram_gravity_computation.png mode change 100755 => 100644 src/server/plugins/sensor_fusion/design/documentation/equation/equation_1.png mode change 100755 => 100644 src/server/plugins/sensor_fusion/design/documentation/equation/equation_10.png mode change 100755 => 100644 src/server/plugins/sensor_fusion/design/documentation/equation/equation_11.png mode change 100755 => 100644 src/server/plugins/sensor_fusion/design/documentation/equation/equation_12.png mode change 100755 => 100644 src/server/plugins/sensor_fusion/design/documentation/equation/equation_13.png mode change 100755 => 100644 src/server/plugins/sensor_fusion/design/documentation/equation/equation_14.png mode change 100755 => 100644 src/server/plugins/sensor_fusion/design/documentation/equation/equation_15.png mode change 100755 => 100644 src/server/plugins/sensor_fusion/design/documentation/equation/equation_16.png mode change 100755 => 100644 src/server/plugins/sensor_fusion/design/documentation/equation/equation_17.png mode change 100755 => 100644 src/server/plugins/sensor_fusion/design/documentation/equation/equation_18.png mode change 100755 => 100644 src/server/plugins/sensor_fusion/design/documentation/equation/equation_19.png mode change 100755 => 100644 src/server/plugins/sensor_fusion/design/documentation/equation/equation_2.png mode change 100755 => 100644 src/server/plugins/sensor_fusion/design/documentation/equation/equation_20.png mode change 100755 => 100644 src/server/plugins/sensor_fusion/design/documentation/equation/equation_21.png mode change 100755 => 100644 src/server/plugins/sensor_fusion/design/documentation/equation/equation_22.png mode change 100755 => 100644 src/server/plugins/sensor_fusion/design/documentation/equation/equation_23.png mode change 100755 => 100644 src/server/plugins/sensor_fusion/design/documentation/equation/equation_24.png mode change 100755 => 100644 src/server/plugins/sensor_fusion/design/documentation/equation/equation_25.png mode change 100755 => 100644 src/server/plugins/sensor_fusion/design/documentation/equation/equation_26.png mode change 100755 => 100644 src/server/plugins/sensor_fusion/design/documentation/equation/equation_27.png mode change 100755 => 100644 src/server/plugins/sensor_fusion/design/documentation/equation/equation_28.png mode change 100755 => 100644 src/server/plugins/sensor_fusion/design/documentation/equation/equation_29.png mode change 100755 => 100644 src/server/plugins/sensor_fusion/design/documentation/equation/equation_3.png mode change 100755 => 100644 src/server/plugins/sensor_fusion/design/documentation/equation/equation_30.png mode change 100755 => 100644 src/server/plugins/sensor_fusion/design/documentation/equation/equation_31.png mode change 100755 => 100644 src/server/plugins/sensor_fusion/design/documentation/equation/equation_32.png mode change 100755 => 100644 src/server/plugins/sensor_fusion/design/documentation/equation/equation_33.png mode change 100755 => 100644 src/server/plugins/sensor_fusion/design/documentation/equation/equation_34.png mode change 100755 => 100644 src/server/plugins/sensor_fusion/design/documentation/equation/equation_35.png mode change 100755 => 100644 src/server/plugins/sensor_fusion/design/documentation/equation/equation_36.png mode change 100755 => 100644 src/server/plugins/sensor_fusion/design/documentation/equation/equation_37.png mode change 100755 => 100644 src/server/plugins/sensor_fusion/design/documentation/equation/equation_38.png mode change 100755 => 100644 src/server/plugins/sensor_fusion/design/documentation/equation/equation_39.png mode change 100755 => 100644 src/server/plugins/sensor_fusion/design/documentation/equation/equation_4.png mode change 100755 => 100644 src/server/plugins/sensor_fusion/design/documentation/equation/equation_40.png mode change 100755 => 100644 src/server/plugins/sensor_fusion/design/documentation/equation/equation_5.png mode change 100755 => 100644 src/server/plugins/sensor_fusion/design/documentation/equation/equation_6.png mode change 100755 => 100644 src/server/plugins/sensor_fusion/design/documentation/equation/equation_7.png mode change 100755 => 100644 src/server/plugins/sensor_fusion/design/documentation/equation/equation_8.png mode change 100755 => 100644 src/server/plugins/sensor_fusion/design/documentation/equation/equation_9.png mode change 100755 => 100644 src/server/plugins/sensor_fusion/design/documentation/sensor_fusion.htm mode change 100755 => 100644 src/server/plugins/sensor_fusion/design/lib/estimate_gaming_rv.m mode change 100755 => 100644 src/server/plugins/sensor_fusion/design/lib/estimate_geomagnetic_rv.m mode change 100755 => 100644 src/server/plugins/sensor_fusion/design/lib/estimate_gravity.m mode change 100755 => 100644 src/server/plugins/sensor_fusion/design/lib/estimate_linear_acceleration.m mode change 100755 => 100644 src/server/plugins/sensor_fusion/design/lib/estimate_orientation.m mode change 100755 => 100644 src/server/plugins/sensor_fusion/design/lib/quat2euler.m mode change 100755 => 100644 src/server/plugins/sensor_fusion/design/lib/quat2rot_mat.m mode change 100755 => 100644 src/server/plugins/sensor_fusion/design/lib/quat_prod.m mode change 100755 => 100644 src/server/plugins/sensor_fusion/design/lib/rot_mat2quat.m mode change 100755 => 100644 src/server/plugins/sensor_fusion/design/lib/sf_pedometer.m mode change 100755 => 100644 src/server/plugins/sensor_fusion/design/sf_gaming_rv.m mode change 100755 => 100644 src/server/plugins/sensor_fusion/design/sf_geomagnetic_rv.m mode change 100755 => 100644 src/server/plugins/sensor_fusion/design/sf_gravity.m mode change 100755 => 100644 src/server/plugins/sensor_fusion/design/sf_linear_acceleration.m mode change 100755 => 100644 src/server/plugins/sensor_fusion/design/sf_orientation.m mode change 100755 => 100644 src/server/plugins/sensor_fusion/matrix.cpp mode change 100755 => 100644 src/server/plugins/sensor_fusion/matrix.h mode change 100755 => 100644 src/server/plugins/sensor_fusion/quaternion.cpp mode change 100755 => 100644 src/server/plugins/sensor_fusion/quaternion.h mode change 100755 => 100644 src/server/plugins/tilt/tilt_sensor.cpp mode change 100755 => 100644 src/server/plugins/tilt/tilt_sensor.h mode change 100755 => 100644 src/server/sensor_event_dispatcher.cpp mode change 100755 => 100644 src/server/sensor_event_dispatcher.h mode change 100755 => 100644 src/server/sensor_plugin_loader.h mode change 100755 => 100644 src/server/server.cpp mode change 100755 => 100644 src/server/server.h mode change 100755 => 100644 src/server/virtual_sensor.cpp mode change 100755 => 100644 src/server/virtual_sensor.h mode change 100755 => 100644 src/server/virtual_sensor_config.cpp mode change 100755 => 100644 src/server/virtual_sensor_config.h mode change 100755 => 100644 src/server/worker_thread.cpp mode change 100755 => 100644 src/server/worker_thread.h mode change 100755 => 100644 src/shared/cbase_lock.cpp mode change 100755 => 100644 src/shared/cbase_lock.h mode change 100755 => 100644 src/shared/cmutex.cpp mode change 100755 => 100644 src/shared/cmutex.h mode change 100755 => 100644 src/shared/cpacket.cpp mode change 100755 => 100644 src/shared/cpacket.h mode change 100755 => 100644 src/shared/poller.cpp mode change 100755 => 100644 src/shared/poller.h mode change 100755 => 100644 src/shared/sensor_common.h mode change 100755 => 100644 src/shared/sensor_internal_deprecated.h mode change 100755 => 100644 src/shared/sensor_logs.h mode change 100755 => 100644 systemd/sensord.service mode change 100755 => 100644 systemd/sensord.socket mode change 100755 => 100644 test/src/api-test.c mode change 100755 => 100644 test/src/check-sensor.c mode change 100755 => 100644 test/src/fusion-data-collection.c mode change 100755 => 100644 test/src/multi-process-performance-test.c mode change 100755 => 100644 test/src/sensor-test.c mode change 100755 => 100644 virtual_sensors.xml diff --git a/CMakeLists.txt b/CMakeLists.txt old mode 100755 new mode 100644 diff --git a/documentation/device_gravity.png b/documentation/device_gravity.png old mode 100755 new mode 100644 diff --git a/documentation/device_orientation.png b/documentation/device_orientation.png old mode 100755 new mode 100644 diff --git a/documentation/virtual_sensor_configuration.htm b/documentation/virtual_sensor_configuration.htm old mode 100755 new mode 100644 diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt old mode 100755 new mode 100644 diff --git a/src/client/CMakeLists.txt b/src/client/CMakeLists.txt old mode 100755 new mode 100644 diff --git a/src/client/client_common.cpp b/src/client/client_common.cpp old mode 100755 new mode 100644 diff --git a/src/client/client_common.h b/src/client/client_common.h old mode 100755 new mode 100644 diff --git a/src/client/sensor.pc.in b/src/client/sensor.pc.in old mode 100755 new mode 100644 diff --git a/src/client/sensor_info_manager.cpp b/src/client/sensor_info_manager.cpp old mode 100755 new mode 100644 diff --git a/src/client/sensor_info_manager.h b/src/client/sensor_info_manager.h old mode 100755 new mode 100644 diff --git a/src/server/CMakeLists.txt b/src/server/CMakeLists.txt old mode 100755 new mode 100644 diff --git a/src/server/dbus_util.cpp b/src/server/dbus_util.cpp old mode 100755 new mode 100644 diff --git a/src/server/dbus_util.h b/src/server/dbus_util.h old mode 100755 new mode 100644 diff --git a/src/server/device_config.cpp b/src/server/device_config.cpp old mode 100755 new mode 100644 diff --git a/src/server/device_config.h b/src/server/device_config.h old mode 100755 new mode 100644 diff --git a/src/server/main.cpp b/src/server/main.cpp old mode 100755 new mode 100644 diff --git a/src/server/permission_checker.cpp b/src/server/permission_checker.cpp old mode 100755 new mode 100644 diff --git a/src/server/permission_checker.h b/src/server/permission_checker.h old mode 100755 new mode 100644 diff --git a/src/server/plugins/CMakeLists.txt b/src/server/plugins/CMakeLists.txt old mode 100755 new mode 100644 diff --git a/src/server/plugins/auto_rotation/auto_rotation_sensor.cpp b/src/server/plugins/auto_rotation/auto_rotation_sensor.cpp old mode 100755 new mode 100644 diff --git a/src/server/plugins/auto_rotation/auto_rotation_sensor.h b/src/server/plugins/auto_rotation/auto_rotation_sensor.h old mode 100755 new mode 100644 diff --git a/src/server/plugins/fusion/fusion_sensor.cpp b/src/server/plugins/fusion/fusion_sensor.cpp old mode 100755 new mode 100644 diff --git a/src/server/plugins/fusion/fusion_sensor.h b/src/server/plugins/fusion/fusion_sensor.h old mode 100755 new mode 100644 diff --git a/src/server/plugins/fusion/hardware_fusion_sensor.html b/src/server/plugins/fusion/hardware_fusion_sensor.html old mode 100755 new mode 100644 diff --git a/src/server/plugins/gravity/gravity_sensor.cpp b/src/server/plugins/gravity/gravity_sensor.cpp old mode 100755 new mode 100644 diff --git a/src/server/plugins/gravity/gravity_sensor.h b/src/server/plugins/gravity/gravity_sensor.h old mode 100755 new mode 100644 diff --git a/src/server/plugins/linear_accel/linear_accel_sensor.cpp b/src/server/plugins/linear_accel/linear_accel_sensor.cpp old mode 100755 new mode 100644 diff --git a/src/server/plugins/linear_accel/linear_accel_sensor.h b/src/server/plugins/linear_accel/linear_accel_sensor.h old mode 100755 new mode 100644 diff --git a/src/server/plugins/orientation/orientation_sensor.cpp b/src/server/plugins/orientation/orientation_sensor.cpp old mode 100755 new mode 100644 diff --git a/src/server/plugins/orientation/orientation_sensor.h b/src/server/plugins/orientation/orientation_sensor.h old mode 100755 new mode 100644 diff --git a/src/server/plugins/rotation_vector/gaming_rv/gaming_rv_sensor.cpp b/src/server/plugins/rotation_vector/gaming_rv/gaming_rv_sensor.cpp old mode 100755 new mode 100644 diff --git a/src/server/plugins/rotation_vector/gaming_rv/gaming_rv_sensor.h b/src/server/plugins/rotation_vector/gaming_rv/gaming_rv_sensor.h old mode 100755 new mode 100644 diff --git a/src/server/plugins/rotation_vector/geomagnetic_rv/geomagnetic_rv_sensor.cpp b/src/server/plugins/rotation_vector/geomagnetic_rv/geomagnetic_rv_sensor.cpp old mode 100755 new mode 100644 diff --git a/src/server/plugins/rotation_vector/geomagnetic_rv/geomagnetic_rv_sensor.h b/src/server/plugins/rotation_vector/geomagnetic_rv/geomagnetic_rv_sensor.h old mode 100755 new mode 100644 diff --git a/src/server/plugins/rotation_vector/rv/rv_sensor.cpp b/src/server/plugins/rotation_vector/rv/rv_sensor.cpp old mode 100755 new mode 100644 diff --git a/src/server/plugins/rotation_vector/rv/rv_sensor.h b/src/server/plugins/rotation_vector/rv/rv_sensor.h old mode 100755 new mode 100644 diff --git a/src/server/plugins/sensor_fusion/design/data/100ms/gravity/single_roll_throw/accel.txt b/src/server/plugins/sensor_fusion/design/data/100ms/gravity/single_roll_throw/accel.txt old mode 100755 new mode 100644 diff --git a/src/server/plugins/sensor_fusion/design/data/100ms/gravity/single_roll_throw/gyro.txt b/src/server/plugins/sensor_fusion/design/data/100ms/gravity/single_roll_throw/gyro.txt old mode 100755 new mode 100644 diff --git a/src/server/plugins/sensor_fusion/design/data/100ms/gravity/single_roll_throw/magnetic.txt b/src/server/plugins/sensor_fusion/design/data/100ms/gravity/single_roll_throw/magnetic.txt old mode 100755 new mode 100644 diff --git a/src/server/plugins/sensor_fusion/design/data/100ms/linear_acceleration/move_x_y_z/accel.txt b/src/server/plugins/sensor_fusion/design/data/100ms/linear_acceleration/move_x_y_z/accel.txt old mode 100755 new mode 100644 diff --git a/src/server/plugins/sensor_fusion/design/data/100ms/linear_acceleration/move_x_y_z/gyro.txt b/src/server/plugins/sensor_fusion/design/data/100ms/linear_acceleration/move_x_y_z/gyro.txt old mode 100755 new mode 100644 diff --git a/src/server/plugins/sensor_fusion/design/data/100ms/linear_acceleration/move_x_y_z/magnetic.txt b/src/server/plugins/sensor_fusion/design/data/100ms/linear_acceleration/move_x_y_z/magnetic.txt old mode 100755 new mode 100644 diff --git a/src/server/plugins/sensor_fusion/design/data/100ms/orientation/roll_pitch_yaw/accel.txt b/src/server/plugins/sensor_fusion/design/data/100ms/orientation/roll_pitch_yaw/accel.txt old mode 100755 new mode 100644 diff --git a/src/server/plugins/sensor_fusion/design/data/100ms/orientation/roll_pitch_yaw/gyro.txt b/src/server/plugins/sensor_fusion/design/data/100ms/orientation/roll_pitch_yaw/gyro.txt old mode 100755 new mode 100644 diff --git a/src/server/plugins/sensor_fusion/design/data/100ms/orientation/roll_pitch_yaw/magnetic.txt b/src/server/plugins/sensor_fusion/design/data/100ms/orientation/roll_pitch_yaw/magnetic.txt old mode 100755 new mode 100644 diff --git a/src/server/plugins/sensor_fusion/design/documentation/diagram/block_diagram_gravity_and_linear_acceleration.png b/src/server/plugins/sensor_fusion/design/documentation/diagram/block_diagram_gravity_and_linear_acceleration.png old mode 100755 new mode 100644 diff --git a/src/server/plugins/sensor_fusion/design/documentation/diagram/block_diagram_orientation_estimation.png b/src/server/plugins/sensor_fusion/design/documentation/diagram/block_diagram_orientation_estimation.png old mode 100755 new mode 100644 diff --git a/src/server/plugins/sensor_fusion/design/documentation/diagram/device_orientation.png b/src/server/plugins/sensor_fusion/design/documentation/diagram/device_orientation.png old mode 100755 new mode 100644 diff --git a/src/server/plugins/sensor_fusion/design/documentation/diagram/kalman_filter_stages.png b/src/server/plugins/sensor_fusion/design/documentation/diagram/kalman_filter_stages.png old mode 100755 new mode 100644 diff --git a/src/server/plugins/sensor_fusion/design/documentation/diagram/orientation_effect_on_gravity.png b/src/server/plugins/sensor_fusion/design/documentation/diagram/orientation_effect_on_gravity.png old mode 100755 new mode 100644 diff --git a/src/server/plugins/sensor_fusion/design/documentation/diagram/projection_diagram_gravity_computation.png b/src/server/plugins/sensor_fusion/design/documentation/diagram/projection_diagram_gravity_computation.png old mode 100755 new mode 100644 diff --git a/src/server/plugins/sensor_fusion/design/documentation/equation/equation_1.png b/src/server/plugins/sensor_fusion/design/documentation/equation/equation_1.png old mode 100755 new mode 100644 diff --git a/src/server/plugins/sensor_fusion/design/documentation/equation/equation_10.png b/src/server/plugins/sensor_fusion/design/documentation/equation/equation_10.png old mode 100755 new mode 100644 diff --git a/src/server/plugins/sensor_fusion/design/documentation/equation/equation_11.png b/src/server/plugins/sensor_fusion/design/documentation/equation/equation_11.png old mode 100755 new mode 100644 diff --git a/src/server/plugins/sensor_fusion/design/documentation/equation/equation_12.png b/src/server/plugins/sensor_fusion/design/documentation/equation/equation_12.png old mode 100755 new mode 100644 diff --git a/src/server/plugins/sensor_fusion/design/documentation/equation/equation_13.png b/src/server/plugins/sensor_fusion/design/documentation/equation/equation_13.png old mode 100755 new mode 100644 diff --git a/src/server/plugins/sensor_fusion/design/documentation/equation/equation_14.png b/src/server/plugins/sensor_fusion/design/documentation/equation/equation_14.png old mode 100755 new mode 100644 diff --git a/src/server/plugins/sensor_fusion/design/documentation/equation/equation_15.png b/src/server/plugins/sensor_fusion/design/documentation/equation/equation_15.png old mode 100755 new mode 100644 diff --git a/src/server/plugins/sensor_fusion/design/documentation/equation/equation_16.png b/src/server/plugins/sensor_fusion/design/documentation/equation/equation_16.png old mode 100755 new mode 100644 diff --git a/src/server/plugins/sensor_fusion/design/documentation/equation/equation_17.png b/src/server/plugins/sensor_fusion/design/documentation/equation/equation_17.png old mode 100755 new mode 100644 diff --git a/src/server/plugins/sensor_fusion/design/documentation/equation/equation_18.png b/src/server/plugins/sensor_fusion/design/documentation/equation/equation_18.png old mode 100755 new mode 100644 diff --git a/src/server/plugins/sensor_fusion/design/documentation/equation/equation_19.png b/src/server/plugins/sensor_fusion/design/documentation/equation/equation_19.png old mode 100755 new mode 100644 diff --git a/src/server/plugins/sensor_fusion/design/documentation/equation/equation_2.png b/src/server/plugins/sensor_fusion/design/documentation/equation/equation_2.png old mode 100755 new mode 100644 diff --git a/src/server/plugins/sensor_fusion/design/documentation/equation/equation_20.png b/src/server/plugins/sensor_fusion/design/documentation/equation/equation_20.png old mode 100755 new mode 100644 diff --git a/src/server/plugins/sensor_fusion/design/documentation/equation/equation_21.png b/src/server/plugins/sensor_fusion/design/documentation/equation/equation_21.png old mode 100755 new mode 100644 diff --git a/src/server/plugins/sensor_fusion/design/documentation/equation/equation_22.png b/src/server/plugins/sensor_fusion/design/documentation/equation/equation_22.png old mode 100755 new mode 100644 diff --git a/src/server/plugins/sensor_fusion/design/documentation/equation/equation_23.png b/src/server/plugins/sensor_fusion/design/documentation/equation/equation_23.png old mode 100755 new mode 100644 diff --git a/src/server/plugins/sensor_fusion/design/documentation/equation/equation_24.png b/src/server/plugins/sensor_fusion/design/documentation/equation/equation_24.png old mode 100755 new mode 100644 diff --git a/src/server/plugins/sensor_fusion/design/documentation/equation/equation_25.png b/src/server/plugins/sensor_fusion/design/documentation/equation/equation_25.png old mode 100755 new mode 100644 diff --git a/src/server/plugins/sensor_fusion/design/documentation/equation/equation_26.png b/src/server/plugins/sensor_fusion/design/documentation/equation/equation_26.png old mode 100755 new mode 100644 diff --git a/src/server/plugins/sensor_fusion/design/documentation/equation/equation_27.png b/src/server/plugins/sensor_fusion/design/documentation/equation/equation_27.png old mode 100755 new mode 100644 diff --git a/src/server/plugins/sensor_fusion/design/documentation/equation/equation_28.png b/src/server/plugins/sensor_fusion/design/documentation/equation/equation_28.png old mode 100755 new mode 100644 diff --git a/src/server/plugins/sensor_fusion/design/documentation/equation/equation_29.png b/src/server/plugins/sensor_fusion/design/documentation/equation/equation_29.png old mode 100755 new mode 100644 diff --git a/src/server/plugins/sensor_fusion/design/documentation/equation/equation_3.png b/src/server/plugins/sensor_fusion/design/documentation/equation/equation_3.png old mode 100755 new mode 100644 diff --git a/src/server/plugins/sensor_fusion/design/documentation/equation/equation_30.png b/src/server/plugins/sensor_fusion/design/documentation/equation/equation_30.png old mode 100755 new mode 100644 diff --git a/src/server/plugins/sensor_fusion/design/documentation/equation/equation_31.png b/src/server/plugins/sensor_fusion/design/documentation/equation/equation_31.png old mode 100755 new mode 100644 diff --git a/src/server/plugins/sensor_fusion/design/documentation/equation/equation_32.png b/src/server/plugins/sensor_fusion/design/documentation/equation/equation_32.png old mode 100755 new mode 100644 diff --git a/src/server/plugins/sensor_fusion/design/documentation/equation/equation_33.png b/src/server/plugins/sensor_fusion/design/documentation/equation/equation_33.png old mode 100755 new mode 100644 diff --git a/src/server/plugins/sensor_fusion/design/documentation/equation/equation_34.png b/src/server/plugins/sensor_fusion/design/documentation/equation/equation_34.png old mode 100755 new mode 100644 diff --git a/src/server/plugins/sensor_fusion/design/documentation/equation/equation_35.png b/src/server/plugins/sensor_fusion/design/documentation/equation/equation_35.png old mode 100755 new mode 100644 diff --git a/src/server/plugins/sensor_fusion/design/documentation/equation/equation_36.png b/src/server/plugins/sensor_fusion/design/documentation/equation/equation_36.png old mode 100755 new mode 100644 diff --git a/src/server/plugins/sensor_fusion/design/documentation/equation/equation_37.png b/src/server/plugins/sensor_fusion/design/documentation/equation/equation_37.png old mode 100755 new mode 100644 diff --git a/src/server/plugins/sensor_fusion/design/documentation/equation/equation_38.png b/src/server/plugins/sensor_fusion/design/documentation/equation/equation_38.png old mode 100755 new mode 100644 diff --git a/src/server/plugins/sensor_fusion/design/documentation/equation/equation_39.png b/src/server/plugins/sensor_fusion/design/documentation/equation/equation_39.png old mode 100755 new mode 100644 diff --git a/src/server/plugins/sensor_fusion/design/documentation/equation/equation_4.png b/src/server/plugins/sensor_fusion/design/documentation/equation/equation_4.png old mode 100755 new mode 100644 diff --git a/src/server/plugins/sensor_fusion/design/documentation/equation/equation_40.png b/src/server/plugins/sensor_fusion/design/documentation/equation/equation_40.png old mode 100755 new mode 100644 diff --git a/src/server/plugins/sensor_fusion/design/documentation/equation/equation_5.png b/src/server/plugins/sensor_fusion/design/documentation/equation/equation_5.png old mode 100755 new mode 100644 diff --git a/src/server/plugins/sensor_fusion/design/documentation/equation/equation_6.png b/src/server/plugins/sensor_fusion/design/documentation/equation/equation_6.png old mode 100755 new mode 100644 diff --git a/src/server/plugins/sensor_fusion/design/documentation/equation/equation_7.png b/src/server/plugins/sensor_fusion/design/documentation/equation/equation_7.png old mode 100755 new mode 100644 diff --git a/src/server/plugins/sensor_fusion/design/documentation/equation/equation_8.png b/src/server/plugins/sensor_fusion/design/documentation/equation/equation_8.png old mode 100755 new mode 100644 diff --git a/src/server/plugins/sensor_fusion/design/documentation/equation/equation_9.png b/src/server/plugins/sensor_fusion/design/documentation/equation/equation_9.png old mode 100755 new mode 100644 diff --git a/src/server/plugins/sensor_fusion/design/documentation/sensor_fusion.htm b/src/server/plugins/sensor_fusion/design/documentation/sensor_fusion.htm old mode 100755 new mode 100644 diff --git a/src/server/plugins/sensor_fusion/design/lib/estimate_gaming_rv.m b/src/server/plugins/sensor_fusion/design/lib/estimate_gaming_rv.m old mode 100755 new mode 100644 diff --git a/src/server/plugins/sensor_fusion/design/lib/estimate_geomagnetic_rv.m b/src/server/plugins/sensor_fusion/design/lib/estimate_geomagnetic_rv.m old mode 100755 new mode 100644 diff --git a/src/server/plugins/sensor_fusion/design/lib/estimate_gravity.m b/src/server/plugins/sensor_fusion/design/lib/estimate_gravity.m old mode 100755 new mode 100644 diff --git a/src/server/plugins/sensor_fusion/design/lib/estimate_linear_acceleration.m b/src/server/plugins/sensor_fusion/design/lib/estimate_linear_acceleration.m old mode 100755 new mode 100644 diff --git a/src/server/plugins/sensor_fusion/design/lib/estimate_orientation.m b/src/server/plugins/sensor_fusion/design/lib/estimate_orientation.m old mode 100755 new mode 100644 diff --git a/src/server/plugins/sensor_fusion/design/lib/quat2euler.m b/src/server/plugins/sensor_fusion/design/lib/quat2euler.m old mode 100755 new mode 100644 diff --git a/src/server/plugins/sensor_fusion/design/lib/quat2rot_mat.m b/src/server/plugins/sensor_fusion/design/lib/quat2rot_mat.m old mode 100755 new mode 100644 diff --git a/src/server/plugins/sensor_fusion/design/lib/quat_prod.m b/src/server/plugins/sensor_fusion/design/lib/quat_prod.m old mode 100755 new mode 100644 diff --git a/src/server/plugins/sensor_fusion/design/lib/rot_mat2quat.m b/src/server/plugins/sensor_fusion/design/lib/rot_mat2quat.m old mode 100755 new mode 100644 diff --git a/src/server/plugins/sensor_fusion/design/lib/sf_pedometer.m b/src/server/plugins/sensor_fusion/design/lib/sf_pedometer.m old mode 100755 new mode 100644 diff --git a/src/server/plugins/sensor_fusion/design/sf_gaming_rv.m b/src/server/plugins/sensor_fusion/design/sf_gaming_rv.m old mode 100755 new mode 100644 diff --git a/src/server/plugins/sensor_fusion/design/sf_geomagnetic_rv.m b/src/server/plugins/sensor_fusion/design/sf_geomagnetic_rv.m old mode 100755 new mode 100644 diff --git a/src/server/plugins/sensor_fusion/design/sf_gravity.m b/src/server/plugins/sensor_fusion/design/sf_gravity.m old mode 100755 new mode 100644 diff --git a/src/server/plugins/sensor_fusion/design/sf_linear_acceleration.m b/src/server/plugins/sensor_fusion/design/sf_linear_acceleration.m old mode 100755 new mode 100644 diff --git a/src/server/plugins/sensor_fusion/design/sf_orientation.m b/src/server/plugins/sensor_fusion/design/sf_orientation.m old mode 100755 new mode 100644 diff --git a/src/server/plugins/sensor_fusion/matrix.cpp b/src/server/plugins/sensor_fusion/matrix.cpp old mode 100755 new mode 100644 diff --git a/src/server/plugins/sensor_fusion/matrix.h b/src/server/plugins/sensor_fusion/matrix.h old mode 100755 new mode 100644 diff --git a/src/server/plugins/sensor_fusion/quaternion.cpp b/src/server/plugins/sensor_fusion/quaternion.cpp old mode 100755 new mode 100644 diff --git a/src/server/plugins/sensor_fusion/quaternion.h b/src/server/plugins/sensor_fusion/quaternion.h old mode 100755 new mode 100644 diff --git a/src/server/plugins/tilt/tilt_sensor.cpp b/src/server/plugins/tilt/tilt_sensor.cpp old mode 100755 new mode 100644 diff --git a/src/server/plugins/tilt/tilt_sensor.h b/src/server/plugins/tilt/tilt_sensor.h old mode 100755 new mode 100644 diff --git a/src/server/sensor_event_dispatcher.cpp b/src/server/sensor_event_dispatcher.cpp old mode 100755 new mode 100644 diff --git a/src/server/sensor_event_dispatcher.h b/src/server/sensor_event_dispatcher.h old mode 100755 new mode 100644 diff --git a/src/server/sensor_plugin_loader.h b/src/server/sensor_plugin_loader.h old mode 100755 new mode 100644 diff --git a/src/server/server.cpp b/src/server/server.cpp old mode 100755 new mode 100644 diff --git a/src/server/server.h b/src/server/server.h old mode 100755 new mode 100644 diff --git a/src/server/virtual_sensor.cpp b/src/server/virtual_sensor.cpp old mode 100755 new mode 100644 diff --git a/src/server/virtual_sensor.h b/src/server/virtual_sensor.h old mode 100755 new mode 100644 diff --git a/src/server/virtual_sensor_config.cpp b/src/server/virtual_sensor_config.cpp old mode 100755 new mode 100644 diff --git a/src/server/virtual_sensor_config.h b/src/server/virtual_sensor_config.h old mode 100755 new mode 100644 diff --git a/src/server/worker_thread.cpp b/src/server/worker_thread.cpp old mode 100755 new mode 100644 diff --git a/src/server/worker_thread.h b/src/server/worker_thread.h old mode 100755 new mode 100644 diff --git a/src/shared/cbase_lock.cpp b/src/shared/cbase_lock.cpp old mode 100755 new mode 100644 diff --git a/src/shared/cbase_lock.h b/src/shared/cbase_lock.h old mode 100755 new mode 100644 diff --git a/src/shared/cmutex.cpp b/src/shared/cmutex.cpp old mode 100755 new mode 100644 diff --git a/src/shared/cmutex.h b/src/shared/cmutex.h old mode 100755 new mode 100644 diff --git a/src/shared/cpacket.cpp b/src/shared/cpacket.cpp old mode 100755 new mode 100644 diff --git a/src/shared/cpacket.h b/src/shared/cpacket.h old mode 100755 new mode 100644 diff --git a/src/shared/poller.cpp b/src/shared/poller.cpp old mode 100755 new mode 100644 diff --git a/src/shared/poller.h b/src/shared/poller.h old mode 100755 new mode 100644 diff --git a/src/shared/sensor_common.h b/src/shared/sensor_common.h old mode 100755 new mode 100644 diff --git a/src/shared/sensor_internal_deprecated.h b/src/shared/sensor_internal_deprecated.h old mode 100755 new mode 100644 diff --git a/src/shared/sensor_logs.h b/src/shared/sensor_logs.h old mode 100755 new mode 100644 diff --git a/systemd/sensord.service b/systemd/sensord.service old mode 100755 new mode 100644 diff --git a/systemd/sensord.socket b/systemd/sensord.socket old mode 100755 new mode 100644 diff --git a/test/src/api-test.c b/test/src/api-test.c old mode 100755 new mode 100644 diff --git a/test/src/check-sensor.c b/test/src/check-sensor.c old mode 100755 new mode 100644 diff --git a/test/src/fusion-data-collection.c b/test/src/fusion-data-collection.c old mode 100755 new mode 100644 diff --git a/test/src/multi-process-performance-test.c b/test/src/multi-process-performance-test.c old mode 100755 new mode 100644 diff --git a/test/src/sensor-test.c b/test/src/sensor-test.c old mode 100755 new mode 100644 diff --git a/virtual_sensors.xml b/virtual_sensors.xml old mode 100755 new mode 100644 -- 2.7.4 From 9d2553a4dc07802e4917d3507353a3e3da042b28 Mon Sep 17 00:00:00 2001 From: "kibak.yoon" Date: Fri, 22 Jan 2016 15:27:06 +0900 Subject: [PATCH 10/16] sensord: auto-rotation: clean up if statement code Signed-off-by: kibak.yoon Change-Id: I7154ab74fa5153ac63c1de04bd436337f8ef0595 --- .../plugins/auto_rotation/auto_rotation_sensor.cpp | 46 +++++++++++----------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/src/server/plugins/auto_rotation/auto_rotation_sensor.cpp b/src/server/plugins/auto_rotation/auto_rotation_sensor.cpp index 4ef30fa..9b6caaa 100644 --- a/src/server/plugins/auto_rotation/auto_rotation_sensor.cpp +++ b/src/server/plugins/auto_rotation/auto_rotation_sensor.cpp @@ -170,31 +170,31 @@ bool auto_rotation_sensor::on_stop(void) void auto_rotation_sensor::synthesize(const sensor_event_t& event, vector &outs) { - if (event.event_type == ACCELEROMETER_RAW_DATA_EVENT) { - int rotation; - float acc[3]; - acc[0] = event.data.values[0]; - acc[1] = event.data.values[1]; - acc[2] = event.data.values[2]; - - if (!m_alg->get_rotation(acc, event.data.timestamp, m_rotation, rotation)) - return; - - sensor_event_t rotation_event; - - INFO("Rotation: %d, ACC[0]: %f, ACC[1]: %f, ACC[2]: %f", rotation, event.data.values[0], event.data.values[1], event.data.values[2]); - rotation_event.sensor_id = get_id(); - rotation_event.data.accuracy = SENSOR_ACCURACY_GOOD; - rotation_event.event_type = AUTO_ROTATION_CHANGE_STATE_EVENT; - rotation_event.data.timestamp = event.data.timestamp; - rotation_event.data.values[0] = rotation; - rotation_event.data.value_count = 1; - outs.push_back(rotation_event); - m_rotation = rotation; - m_rotation_time = event.data.timestamp; + if (event.event_type != ACCELEROMETER_RAW_DATA_EVENT) + return; + + int rotation; + float acc[3]; + acc[0] = event.data.values[0]; + acc[1] = event.data.values[1]; + acc[2] = event.data.values[2]; + if (!m_alg->get_rotation(acc, event.data.timestamp, m_rotation, rotation)) return; - } + + sensor_event_t rotation_event; + + INFO("Rotation: %d, ACC[0]: %f, ACC[1]: %f, ACC[2]: %f", rotation, event.data.values[0], event.data.values[1], event.data.values[2]); + rotation_event.sensor_id = get_id(); + rotation_event.data.accuracy = SENSOR_ACCURACY_GOOD; + rotation_event.event_type = AUTO_ROTATION_CHANGE_STATE_EVENT; + rotation_event.data.timestamp = event.data.timestamp; + rotation_event.data.values[0] = rotation; + rotation_event.data.value_count = 1; + outs.push_back(rotation_event); + m_rotation = rotation; + m_rotation_time = event.data.timestamp; + return; } -- 2.7.4 From 88d149299ffe8e13a14a8cf36291d90655aacbfc Mon Sep 17 00:00:00 2001 From: "kibak.yoon" Date: Fri, 22 Jan 2016 15:37:59 +0900 Subject: [PATCH 11/16] sensord: add std::nothrow to using new operator Change-Id: I8d714bc57b96057852318e87934db9dce3bfb4c0 Signed-off-by: kibak.yoon --- src/server/sensor_plugin_loader.cpp.in | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/server/sensor_plugin_loader.cpp.in b/src/server/sensor_plugin_loader.cpp.in index d4b1f01..366b3ab 100644 --- a/src/server/sensor_plugin_loader.cpp.in +++ b/src/server/sensor_plugin_loader.cpp.in @@ -150,7 +150,12 @@ bool sensor_plugin_loader::insert_sensors(sensor_hal *hal) int idx; idx = m_sensors.count(sensors[i].type); - phy_sensor = new physical_sensor(); + phy_sensor = new(std::nothrow) physical_sensor(); + if (!phy_sensor) { + ERR("Memory allocation failed[%s]", sensors[i].name.c_str()); + continue; + } + phy_sensor->set_id(idx << SENSOR_INDEX_SHIFT | sensors[i].type); phy_sensor->set_sensor_handle(sensors[i]); phy_sensor->set_sensor_hal(hal); -- 2.7.4 From 00225d7077779a4c3aae751dff4b2b5f6457d388 Mon Sep 17 00:00:00 2001 From: "kibak.yoon" Date: Fri, 22 Jan 2016 20:36:53 +0900 Subject: [PATCH 12/16] sensord: rename interface of HAL for managing it easily Change-Id: Ide316de6e6bec76c20d0d8a827d83a821af2df61 Signed-off-by: kibak.yoon --- src/server/CMakeLists.txt | 2 +- src/server/command_worker.cpp | 6 +- src/server/main.cpp | 4 +- src/server/permission_checker.cpp | 4 +- src/server/physical_sensor.cpp | 30 +- src/server/physical_sensor.h | 10 +- .../plugins/auto_rotation/auto_rotation_sensor.cpp | 4 +- src/server/plugins/fusion/fusion_sensor.cpp | 8 +- src/server/plugins/gravity/gravity_sensor.cpp | 12 +- .../plugins/linear_accel/linear_accel_sensor.cpp | 12 +- .../plugins/orientation/orientation_sensor.cpp | 12 +- .../rotation_vector/gaming_rv/gaming_rv_sensor.cpp | 8 +- .../geomagnetic_rv/geomagnetic_rv_sensor.cpp | 10 +- .../plugins/rotation_vector/rv/rv_sensor.cpp | 12 +- src/server/plugins/tilt/tilt_sensor.cpp | 6 +- src/server/sensor_event_poller.cpp | 12 +- src/server/sensor_event_poller.h | 4 +- src/server/sensor_loader.cpp.in | 285 ++++++++++++++++++ .../{sensor_plugin_loader.h => sensor_loader.h} | 21 +- src/server/sensor_plugin_loader.cpp.in | 322 --------------------- src/server/server.cpp | 2 +- src/shared/sensor_hal.h | 113 ++++---- src/shared/sf_common.h | 8 +- 23 files changed, 436 insertions(+), 471 deletions(-) create mode 100644 src/server/sensor_loader.cpp.in rename src/server/{sensor_plugin_loader.h => sensor_loader.h} (71%) delete mode 100644 src/server/sensor_plugin_loader.cpp.in diff --git a/src/server/CMakeLists.txt b/src/server/CMakeLists.txt index a17facd..7a5a888 100644 --- a/src/server/CMakeLists.txt +++ b/src/server/CMakeLists.txt @@ -8,7 +8,7 @@ add_subdirectory(plugins) add_definitions(${PLUGIN_DEFS}) -configure_file(sensor_plugin_loader.cpp.in sensor_plugin_loader.cpp) +configure_file(sensor_loader.cpp.in sensor_loader.cpp) INCLUDE_DIRECTORIES(include) FILE(GLOB SERVER_SRCS *.c *.cpp) diff --git a/src/server/command_worker.cpp b/src/server/command_worker.cpp index e0359f2..1e1ae3b 100644 --- a/src/server/command_worker.cpp +++ b/src/server/command_worker.cpp @@ -18,7 +18,7 @@ */ #include -#include +#include #include #include #include @@ -144,7 +144,7 @@ void command_worker::make_sensor_raw_data_map(void) sensor_info info; int permission; - sensors = sensor_plugin_loader::get_instance().get_sensors(ALL_SENSOR); + sensors = sensor_loader::get_instance().get_sensors(ALL_SENSOR); std::sort(sensors.begin(), sensors.end()); auto last = std::unique(sensors.begin(), sensors.end()); @@ -397,7 +397,7 @@ bool command_worker::cmd_hello(void *payload) if (m_permission == SENSOR_PERMISSION_NONE) get_client_info_manager().get_permission(m_client_id, m_permission); - m_module = (sensor_base *)sensor_plugin_loader::get_instance().get_sensor(cmd->sensor); + m_module = (sensor_base *)sensor_loader::get_instance().get_sensor(cmd->sensor); if (!m_module) { ERR("Sensor type[%d] is not supported", cmd->sensor); diff --git a/src/server/main.cpp b/src/server/main.cpp index 28c425e..35805a7 100644 --- a/src/server/main.cpp +++ b/src/server/main.cpp @@ -21,7 +21,7 @@ #include #include #include -#include +#include #include using std::string; @@ -57,7 +57,7 @@ int main(int argc, char *argv[]) signal_init(); - sensor_plugin_loader::get_instance().load_plugins(); + sensor_loader::get_instance().load_sensors(); server::get_instance().run(); diff --git a/src/server/permission_checker.cpp b/src/server/permission_checker.cpp index e06e680..aa700b8 100644 --- a/src/server/permission_checker.cpp +++ b/src/server/permission_checker.cpp @@ -23,7 +23,7 @@ #include #include #include -#include +#include #include static cynara *cynara_env = NULL; @@ -82,7 +82,7 @@ void permission_checker::init() m_permission_infos.push_back(std::make_shared (SENSOR_PERMISSION_BIO, true, "http://tizen.org/privilege/healthinfo")); std::vector sensors; - sensors = sensor_plugin_loader::get_instance().get_sensors(ALL_SENSOR); + sensors = sensor_loader::get_instance().get_sensors(ALL_SENSOR); for (unsigned int i = 0; i < sensors.size(); ++i) m_permission_set |= sensors[i]->get_permission(); diff --git a/src/server/physical_sensor.cpp b/src/server/physical_sensor.cpp index b108682..71de409 100644 --- a/src/server/physical_sensor.cpp +++ b/src/server/physical_sensor.cpp @@ -23,7 +23,7 @@ #define UNKNOWN_NAME "UNKNOWN_SENSOR" physical_sensor::physical_sensor() -: m_sensor_hal(NULL) +: m_sensor_device(NULL) { } @@ -43,7 +43,7 @@ unsigned int physical_sensor::get_event_type(void) return m_handle.event_type; } -const char* physical_sensor::get_name() +const char* physical_sensor::get_name(void) { if (m_handle.name.empty()) return UNKNOWN_NAME; @@ -60,40 +60,40 @@ void physical_sensor::set_sensor_handle(sensor_handle_t handle) m_handle.properties = handle.properties; } -void physical_sensor::set_sensor_hal(sensor_hal *hal) +void physical_sensor::set_sensor_device(sensor_device *device) { - m_sensor_hal = hal; + m_sensor_device = device; } int physical_sensor::get_poll_fd() { AUTOLOCK(m_mutex); - if (!m_sensor_hal) + if (!m_sensor_device) return -1; - return m_sensor_hal->get_poll_fd(); + return m_sensor_device->get_poll_fd(); } bool physical_sensor::on_start() { AUTOLOCK(m_mutex); - return m_sensor_hal->enable(m_handle.id); + return m_sensor_device->enable(m_handle.id); } bool physical_sensor::on_stop() { AUTOLOCK(m_mutex); - return m_sensor_hal->disable(m_handle.id); + return m_sensor_device->disable(m_handle.id); } long physical_sensor::set_command(unsigned int cmd, long value) { AUTOLOCK(m_mutex); - return m_sensor_hal->set_command(m_handle.id, std::to_string(cmd), std::to_string(value)); + return m_sensor_device->set_command(m_handle.id, std::to_string(cmd), std::to_string(value)); } bool physical_sensor::set_interval(unsigned long interval) @@ -102,7 +102,7 @@ bool physical_sensor::set_interval(unsigned long interval) INFO("Polling interval is set to %dms", interval); - return m_sensor_hal->set_interval(m_handle.id, interval); + return m_sensor_device->set_interval(m_handle.id, interval); } bool physical_sensor::set_batch(unsigned long latency) @@ -111,7 +111,7 @@ bool physical_sensor::set_batch(unsigned long latency) INFO("Polling interval is set to %dms", latency); - return m_sensor_hal->set_batch_latency(m_handle.id, latency); + return m_sensor_device->set_batch_latency(m_handle.id, latency); } bool physical_sensor::set_wakeup(int wakeup) @@ -123,14 +123,14 @@ bool physical_sensor::is_data_ready(void) { AUTOLOCK(m_mutex); - return m_sensor_hal->is_data_ready(); + return m_sensor_device->is_data_ready(); } int physical_sensor::get_sensor_data(sensor_data_t &data) { AUTOLOCK(m_mutex); - if (!m_sensor_hal->get_sensor_data(m_handle.id, data)) { + if (!m_sensor_device->get_sensor_data(m_handle.id, data)) { ERR("Failed to get sensor data"); return -1; } @@ -143,7 +143,7 @@ int physical_sensor::get_sensor_event(sensor_event_t **event) AUTOLOCK(m_mutex); int event_length = -1; - event_length = m_sensor_hal->get_sensor_event(m_handle.id, event); + event_length = m_sensor_device->get_sensor_event(m_handle.id, event); if (event_length < 0) { ERR("Failed to get sensor event"); @@ -155,6 +155,6 @@ int physical_sensor::get_sensor_event(sensor_event_t **event) bool physical_sensor::get_properties(sensor_properties_s &properties) { - return m_sensor_hal->get_properties(m_handle.id, properties); + return m_sensor_device->get_properties(m_handle.id, properties); } diff --git a/src/server/physical_sensor.h b/src/server/physical_sensor.h index 2fb245a..2c7742f 100644 --- a/src/server/physical_sensor.h +++ b/src/server/physical_sensor.h @@ -32,10 +32,10 @@ public: /* setting module */ void set_sensor_handle(sensor_handle_t handle); - void set_sensor_hal(sensor_hal *hal); + void set_sensor_device(sensor_device *device); /* module info */ - virtual sensor_type_t get_type(); + virtual sensor_type_t get_type(void); virtual unsigned int get_event_type(void); virtual const char* get_name(void); @@ -48,13 +48,13 @@ public: private: sensor_handle_t m_handle; - sensor_hal *m_sensor_hal; + sensor_device *m_sensor_device; virtual bool set_interval(unsigned long interval); virtual bool set_wakeup(int wakeup); virtual bool set_batch(unsigned long latency); - virtual bool on_start(); - virtual bool on_stop(); + virtual bool on_start(void); + virtual bool on_stop(void); virtual long set_command(unsigned int cmd, long value); virtual bool get_properties(sensor_properties_s &properties); }; diff --git a/src/server/plugins/auto_rotation/auto_rotation_sensor.cpp b/src/server/plugins/auto_rotation/auto_rotation_sensor.cpp index 9b6caaa..c78a743 100644 --- a/src/server/plugins/auto_rotation/auto_rotation_sensor.cpp +++ b/src/server/plugins/auto_rotation/auto_rotation_sensor.cpp @@ -31,7 +31,7 @@ #include #include -#include +#include #include #include #include @@ -124,7 +124,7 @@ auto_rotation_alg *auto_rotation_sensor::get_alg() bool auto_rotation_sensor::init() { - m_accel_sensor = sensor_plugin_loader::get_instance().get_sensor(ACCELEROMETER_SENSOR); + m_accel_sensor = sensor_loader::get_instance().get_sensor(ACCELEROMETER_SENSOR); if (!m_accel_sensor) { ERR("cannot load accel sensor_hal[%s]", sensor_base::get_name()); diff --git a/src/server/plugins/fusion/fusion_sensor.cpp b/src/server/plugins/fusion/fusion_sensor.cpp index a2f9183..49d3f9e 100644 --- a/src/server/plugins/fusion/fusion_sensor.cpp +++ b/src/server/plugins/fusion/fusion_sensor.cpp @@ -28,7 +28,7 @@ #include #include #include -#include +#include #include #include #include @@ -165,9 +165,9 @@ fusion_sensor::~fusion_sensor() bool fusion_sensor::init(void) { - m_accel_sensor = sensor_plugin_loader::get_instance().get_sensor(ACCELEROMETER_SENSOR); - m_gyro_sensor = sensor_plugin_loader::get_instance().get_sensor(GYROSCOPE_SENSOR); - m_magnetic_sensor = sensor_plugin_loader::get_instance().get_sensor(GEOMAGNETIC_SENSOR); + m_accel_sensor = sensor_loader::get_instance().get_sensor(ACCELEROMETER_SENSOR); + m_gyro_sensor = sensor_loader::get_instance().get_sensor(GYROSCOPE_SENSOR); + m_magnetic_sensor = sensor_loader::get_instance().get_sensor(GEOMAGNETIC_SENSOR); if (!m_accel_sensor) { ERR("Failed to load accel sensor: 0x%x", m_accel_sensor); diff --git a/src/server/plugins/gravity/gravity_sensor.cpp b/src/server/plugins/gravity/gravity_sensor.cpp index b77bac4..b39218f 100644 --- a/src/server/plugins/gravity/gravity_sensor.cpp +++ b/src/server/plugins/gravity/gravity_sensor.cpp @@ -28,7 +28,7 @@ #include #include #include -#include +#include #include using std::string; @@ -69,7 +69,7 @@ gravity_sensor::gravity_sensor() { virtual_sensor_config &config = virtual_sensor_config::get_instance(); - sensor_hal *fusion_sensor_hal = sensor_plugin_loader::get_instance().get_sensor_hal(SENSOR_HAL_TYPE_FUSION); + sensor_hal *fusion_sensor_hal = sensor_loader::get_instance().get_sensor_hal(SENSOR_HAL_TYPE_FUSION); if (!fusion_sensor_hal) m_hardware_fusion = false; else @@ -144,11 +144,11 @@ gravity_sensor::~gravity_sensor() bool gravity_sensor::init() { - m_accel_sensor = sensor_plugin_loader::get_instance().get_sensor(ACCELEROMETER_SENSOR); - m_gyro_sensor = sensor_plugin_loader::get_instance().get_sensor(GYROSCOPE_SENSOR); - m_magnetic_sensor = sensor_plugin_loader::get_instance().get_sensor(GEOMAGNETIC_SENSOR); + m_accel_sensor = sensor_loader::get_instance().get_sensor(ACCELEROMETER_SENSOR); + m_gyro_sensor = sensor_loader::get_instance().get_sensor(GYROSCOPE_SENSOR); + m_magnetic_sensor = sensor_loader::get_instance().get_sensor(GEOMAGNETIC_SENSOR); - m_fusion_sensor = sensor_plugin_loader::get_instance().get_sensor(FUSION_SENSOR); + m_fusion_sensor = sensor_loader::get_instance().get_sensor(FUSION_SENSOR); if (!m_accel_sensor || !m_gyro_sensor || !m_magnetic_sensor || !m_fusion_sensor) { ERR("Failed to load sensors, accel: 0x%x, gyro: 0x%x, mag: 0x%x, fusion: 0x%x", diff --git a/src/server/plugins/linear_accel/linear_accel_sensor.cpp b/src/server/plugins/linear_accel/linear_accel_sensor.cpp index f320885..3c194f3 100644 --- a/src/server/plugins/linear_accel/linear_accel_sensor.cpp +++ b/src/server/plugins/linear_accel/linear_accel_sensor.cpp @@ -28,7 +28,7 @@ #include #include #include -#include +#include #include using std::string; @@ -81,7 +81,7 @@ linear_accel_sensor::linear_accel_sensor() m_enable_linear_accel = 0; register_supported_event(LINEAR_ACCEL_RAW_DATA_EVENT); - sensor_hal *fusion_sensor_hal = sensor_plugin_loader::get_instance().get_sensor_hal(SENSOR_HAL_TYPE_FUSION); + sensor_hal *fusion_sensor_hal = sensor_loader::get_instance().get_sensor_hal(SENSOR_HAL_TYPE_FUSION); if (!fusion_sensor_hal) m_hardware_fusion = false; else @@ -174,11 +174,11 @@ linear_accel_sensor::~linear_accel_sensor() bool linear_accel_sensor::init() { - m_accel_sensor = sensor_plugin_loader::get_instance().get_sensor(ACCELEROMETER_SENSOR); - m_gyro_sensor = sensor_plugin_loader::get_instance().get_sensor(GYROSCOPE_SENSOR); - m_magnetic_sensor = sensor_plugin_loader::get_instance().get_sensor(GEOMAGNETIC_SENSOR); + m_accel_sensor = sensor_loader::get_instance().get_sensor(ACCELEROMETER_SENSOR); + m_gyro_sensor = sensor_loader::get_instance().get_sensor(GYROSCOPE_SENSOR); + m_magnetic_sensor = sensor_loader::get_instance().get_sensor(GEOMAGNETIC_SENSOR); - m_fusion_sensor = sensor_plugin_loader::get_instance().get_sensor(FUSION_SENSOR); + m_fusion_sensor = sensor_loader::get_instance().get_sensor(FUSION_SENSOR); if (!m_accel_sensor || !m_gyro_sensor || !m_magnetic_sensor || !m_fusion_sensor) { ERR("Failed to load sensors, accel: 0x%x, gyro: 0x%x, mag: 0x%x, fusion: 0x%x", diff --git a/src/server/plugins/orientation/orientation_sensor.cpp b/src/server/plugins/orientation/orientation_sensor.cpp index a4200d5..2775c4c 100644 --- a/src/server/plugins/orientation/orientation_sensor.cpp +++ b/src/server/plugins/orientation/orientation_sensor.cpp @@ -28,7 +28,7 @@ #include #include #include -#include +#include #include #include @@ -64,7 +64,7 @@ orientation_sensor::orientation_sensor() { virtual_sensor_config &config = virtual_sensor_config::get_instance(); - sensor_hal *fusion_sensor_hal = sensor_plugin_loader::get_instance().get_sensor_hal(SENSOR_HAL_TYPE_FUSION); + sensor_hal *fusion_sensor_hal = sensor_loader::get_instance().get_sensor_hal(SENSOR_HAL_TYPE_FUSION); if (!fusion_sensor_hal) m_hardware_fusion = false; else @@ -125,11 +125,11 @@ orientation_sensor::~orientation_sensor() bool orientation_sensor::init(void) { - m_accel_sensor = sensor_plugin_loader::get_instance().get_sensor(ACCELEROMETER_SENSOR); - m_gyro_sensor = sensor_plugin_loader::get_instance().get_sensor(GYROSCOPE_SENSOR); - m_magnetic_sensor = sensor_plugin_loader::get_instance().get_sensor(GEOMAGNETIC_SENSOR); + m_accel_sensor = sensor_loader::get_instance().get_sensor(ACCELEROMETER_SENSOR); + m_gyro_sensor = sensor_loader::get_instance().get_sensor(GYROSCOPE_SENSOR); + m_magnetic_sensor = sensor_loader::get_instance().get_sensor(GEOMAGNETIC_SENSOR); - m_fusion_sensor = sensor_plugin_loader::get_instance().get_sensor(FUSION_SENSOR); + m_fusion_sensor = sensor_loader::get_instance().get_sensor(FUSION_SENSOR); if (!m_accel_sensor || !m_gyro_sensor || !m_magnetic_sensor || !m_fusion_sensor) { ERR("Failed to load sensors, accel: 0x%x, gyro: 0x%x, mag: 0x%x, fusion: 0x%x", diff --git a/src/server/plugins/rotation_vector/gaming_rv/gaming_rv_sensor.cpp b/src/server/plugins/rotation_vector/gaming_rv/gaming_rv_sensor.cpp index df3b168..ac19b63 100644 --- a/src/server/plugins/rotation_vector/gaming_rv/gaming_rv_sensor.cpp +++ b/src/server/plugins/rotation_vector/gaming_rv/gaming_rv_sensor.cpp @@ -28,7 +28,7 @@ #include #include #include -#include +#include #include #include @@ -65,7 +65,7 @@ gaming_rv_sensor::gaming_rv_sensor() { virtual_sensor_config &config = virtual_sensor_config::get_instance(); - sensor_hal *fusion_sensor_hal = sensor_plugin_loader::get_instance().get_sensor_hal(SENSOR_HAL_TYPE_FUSION); + sensor_hal *fusion_sensor_hal = sensor_loader::get_instance().get_sensor_hal(SENSOR_HAL_TYPE_FUSION); if (!fusion_sensor_hal) m_hardware_fusion = false; else @@ -129,8 +129,8 @@ gaming_rv_sensor::~gaming_rv_sensor() bool gaming_rv_sensor::init() { - m_accel_sensor = sensor_plugin_loader::get_instance().get_sensor(ACCELEROMETER_SENSOR); - m_gyro_sensor = sensor_plugin_loader::get_instance().get_sensor(GYROSCOPE_SENSOR); + m_accel_sensor = sensor_loader::get_instance().get_sensor(ACCELEROMETER_SENSOR); + m_gyro_sensor = sensor_loader::get_instance().get_sensor(GYROSCOPE_SENSOR); if (!m_accel_sensor || !m_gyro_sensor) { ERR("Failed to load sensors, accel: 0x%x, gyro: 0x%x", diff --git a/src/server/plugins/rotation_vector/geomagnetic_rv/geomagnetic_rv_sensor.cpp b/src/server/plugins/rotation_vector/geomagnetic_rv/geomagnetic_rv_sensor.cpp index 6bfdaf4..43abcf2 100644 --- a/src/server/plugins/rotation_vector/geomagnetic_rv/geomagnetic_rv_sensor.cpp +++ b/src/server/plugins/rotation_vector/geomagnetic_rv/geomagnetic_rv_sensor.cpp @@ -28,7 +28,7 @@ #include #include #include -#include +#include #include #include @@ -53,7 +53,7 @@ geomagnetic_rv_sensor::geomagnetic_rv_sensor() { virtual_sensor_config &config = virtual_sensor_config::get_instance(); - sensor_hal *fusion_sensor_hal = sensor_plugin_loader::get_instance().get_sensor_hal(SENSOR_HAL_TYPE_FUSION); + sensor_hal *fusion_sensor_hal = sensor_loader::get_instance().get_sensor_hal(SENSOR_HAL_TYPE_FUSION); if (!fusion_sensor_hal) m_hardware_fusion = false; else @@ -86,10 +86,10 @@ geomagnetic_rv_sensor::~geomagnetic_rv_sensor() bool geomagnetic_rv_sensor::init() { - m_accel_sensor = sensor_plugin_loader::get_instance().get_sensor(ACCELEROMETER_SENSOR); - m_magnetic_sensor = sensor_plugin_loader::get_instance().get_sensor(GEOMAGNETIC_SENSOR); + m_accel_sensor = sensor_loader::get_instance().get_sensor(ACCELEROMETER_SENSOR); + m_magnetic_sensor = sensor_loader::get_instance().get_sensor(GEOMAGNETIC_SENSOR); - m_fusion_sensor = sensor_plugin_loader::get_instance().get_sensor(FUSION_SENSOR); + m_fusion_sensor = sensor_loader::get_instance().get_sensor(FUSION_SENSOR); if (!m_accel_sensor || !m_magnetic_sensor || !m_fusion_sensor) { ERR("Failed to load sensors, accel: 0x%x, mag: 0x%x, fusion: 0x%x", diff --git a/src/server/plugins/rotation_vector/rv/rv_sensor.cpp b/src/server/plugins/rotation_vector/rv/rv_sensor.cpp index 08d1353..3a98182 100644 --- a/src/server/plugins/rotation_vector/rv/rv_sensor.cpp +++ b/src/server/plugins/rotation_vector/rv/rv_sensor.cpp @@ -28,7 +28,7 @@ #include #include #include -#include +#include #include #include @@ -59,7 +59,7 @@ rv_sensor::rv_sensor() virtual_sensor_config &config = virtual_sensor_config::get_instance(); // Will check if fusion_sensor is in the list of hal sensors. - sensor_hal *fusion_sensor_hal = sensor_plugin_loader::get_instance().get_sensor_hal(SENSOR_HAL_TYPE_FUSION); + sensor_hal *fusion_sensor_hal = sensor_loader::get_instance().get_sensor_hal(SENSOR_HAL_TYPE_FUSION); if (!fusion_sensor_hal) m_hardware_fusion = false; else @@ -93,11 +93,11 @@ rv_sensor::~rv_sensor() bool rv_sensor::init() { - m_accel_sensor = sensor_plugin_loader::get_instance().get_sensor(ACCELEROMETER_SENSOR); - m_gyro_sensor = sensor_plugin_loader::get_instance().get_sensor(GYROSCOPE_SENSOR); - m_magnetic_sensor = sensor_plugin_loader::get_instance().get_sensor(GEOMAGNETIC_SENSOR); + m_accel_sensor = sensor_loader::get_instance().get_sensor(ACCELEROMETER_SENSOR); + m_gyro_sensor = sensor_loader::get_instance().get_sensor(GYROSCOPE_SENSOR); + m_magnetic_sensor = sensor_loader::get_instance().get_sensor(GEOMAGNETIC_SENSOR); - m_fusion_sensor = sensor_plugin_loader::get_instance().get_sensor(FUSION_SENSOR); + m_fusion_sensor = sensor_loader::get_instance().get_sensor(FUSION_SENSOR); if (!m_accel_sensor || !m_gyro_sensor || !m_magnetic_sensor || !m_fusion_sensor) { ERR("Failed to load sensors, accel: 0x%x, gyro: 0x%x, mag: 0x%x, fusion: 0x%x", diff --git a/src/server/plugins/tilt/tilt_sensor.cpp b/src/server/plugins/tilt/tilt_sensor.cpp index a7830fe..ef1a088 100644 --- a/src/server/plugins/tilt/tilt_sensor.cpp +++ b/src/server/plugins/tilt/tilt_sensor.cpp @@ -28,7 +28,7 @@ #include #include #include -#include +#include #include #include @@ -109,8 +109,8 @@ tilt_sensor::~tilt_sensor() bool tilt_sensor::init(void) { - m_accel_sensor = sensor_plugin_loader::get_instance().get_sensor(ACCELEROMETER_SENSOR); - m_fusion_sensor = sensor_plugin_loader::get_instance().get_sensor(FUSION_SENSOR); + m_accel_sensor = sensor_loader::get_instance().get_sensor(ACCELEROMETER_SENSOR); + m_fusion_sensor = sensor_loader::get_instance().get_sensor(FUSION_SENSOR); if (!m_accel_sensor || !m_fusion_sensor) { ERR("Failed to load sensors, accel: 0x%x, fusion: 0x%x", diff --git a/src/server/sensor_event_poller.cpp b/src/server/sensor_event_poller.cpp index 2a8ec96..b02b624 100644 --- a/src/server/sensor_event_poller.cpp +++ b/src/server/sensor_event_poller.cpp @@ -21,7 +21,7 @@ #include #include #include -#include +#include #define EPOLL_MAX_FD 32 @@ -41,7 +41,7 @@ void sensor_event_poller::init_sensor_map() physical_sensor *sensor; std::vector sensors; - sensors = sensor_plugin_loader::get_instance().get_sensors(ALL_SENSOR); + sensors = sensor_loader::get_instance().get_sensors(ALL_SENSOR); auto it_sensor = sensors.begin(); @@ -61,7 +61,7 @@ void sensor_event_poller::init_sensor_map() void sensor_event_poller::init_fd() { - fd_sensor_plugins::iterator it; + fd_sensors_t::iterator it; for (it = m_fd_sensors.begin(); it != m_fd_sensors.end(); it = m_fd_sensors.upper_bound(it->first)) { if (!add_poll_fd(it->first)) continue; @@ -95,14 +95,14 @@ bool sensor_event_poller::poll() bool sensor_event_poller::is_data_ready(int fd) { - fd_sensor_plugins::iterator it; + fd_sensors_t::iterator it; physical_sensor *sensor; it = m_fd_sensors.find(fd); sensor = dynamic_cast(it->second); if (!sensor) { - ERR("Failed to get sensor plugin"); + ERR("Failed to get sensor"); return false; } @@ -115,7 +115,7 @@ bool sensor_event_poller::is_data_ready(int fd) bool sensor_event_poller::process_event(int fd) { physical_sensor *sensor; - std::pair ret; + std::pair ret; ret = m_fd_sensors.equal_range(fd); diff --git a/src/server/sensor_event_poller.h b/src/server/sensor_event_poller.h index 21f3240..a290b42 100644 --- a/src/server/sensor_event_poller.h +++ b/src/server/sensor_event_poller.h @@ -24,7 +24,7 @@ #include #include -typedef std::multimap fd_sensor_plugins; +typedef std::multimap fd_sensors_t; class sensor_event_poller { public: @@ -34,7 +34,7 @@ public: bool poll(); private: poller m_poller; - fd_sensor_plugins m_fd_sensors; + fd_sensors_t m_fd_sensors; void init_fd(); void init_sensor_map(); diff --git a/src/server/sensor_loader.cpp.in b/src/server/sensor_loader.cpp.in new file mode 100644 index 0000000..6fd1dfd --- /dev/null +++ b/src/server/sensor_loader.cpp.in @@ -0,0 +1,285 @@ +/* + * libsensord-share + * + * Copyright (c) 2014 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. + * + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#ifdef ENABLE_AUTO_ROTATION +#include +#endif + +using std::vector; +using std::string; + +#define DEVICE_PLUGINS_DIR_PATH "/usr/lib/sensor" +#define SENSOR_INDEX_SHIFT 16 + +sensor_loader::sensor_loader() +{ +} + +sensor_loader& sensor_loader::get_instance() +{ + static sensor_loader inst; + return inst; +} + +bool sensor_loader::load_devices(const string &path, vector &devices, void* &handle) +{ + INFO("load device: [%s]", path.c_str()); + + void *_handle = dlopen(path.c_str(), RTLD_NOW); + + if (!_handle) { + ERR("Failed to dlopen(%s), dlerror : %s", path.c_str(), dlerror()); + return false; + } + + dlerror(); + + create_t create_devices = (create_t) dlsym(_handle, "create"); + + if (!create_devices) { + ERR("Failed to find symbols in %s", path.c_str()); + dlclose(_handle); + return false; + } + + sensor_devices *_devices = create_devices(); + + if (!_devices) { + ERR("Failed to create devices, path is %s\n", path.c_str()); + dlclose(_handle); + return false; + } + + devices.clear(); + devices.swap(_devices->devices); + + delete _devices; + handle = _handle; + + return true; +} + +physical_sensor* sensor_loader::create_sensor(sensor_handle_t handle, sensor_device *device) +{ + int index; + physical_sensor *sensor; + + index = m_sensors.count(handle.type); + + sensor = new(std::nothrow) physical_sensor(); + if (!sensor) { + ERR("Memory allocation failed[%s]", handle.name.c_str()); + return NULL; + } + + sensor->set_id(index << SENSOR_INDEX_SHIFT | handle.type); + sensor->set_sensor_handle(handle); + sensor->set_sensor_device(device); + + return sensor; +} + +bool sensor_loader::insert_sensors(std::vector devices) +{ + sensor_device *device; + vector handles; + physical_sensor *sensor; + + for (void *device_ptr : devices) { + device = static_cast(device_ptr); + device->get_sensors(handles); + + for (unsigned int i = 0; i < handles.size(); ++i) { + sensor = create_sensor(handles[i], device); + if (!sensor) + continue; + + std::shared_ptr sensor_ptr(sensor); + m_sensors.insert(std::make_pair(handles[i].type, sensor_ptr)); + + INFO("inserted [%s] sensor", sensor->get_name()); + } + } + + return true; +} + +bool sensor_loader::load_sensors(void) +{ + vector device_plugin_paths; + vector unique_device_plugin_paths; + + get_paths_from_dir(string(DEVICE_PLUGINS_DIR_PATH), device_plugin_paths); + + std::unordered_set s; + auto unique = [&s](vector &paths, const string &path) { + if (s.insert(path).second) + paths.push_back(path); + }; + + for_each(device_plugin_paths.begin(), device_plugin_paths.end(), + [&](const string &path) { + unique(unique_device_plugin_paths, path); + } + ); + + for_each(unique_device_plugin_paths.begin(), unique_device_plugin_paths.end(), + [&](const string &path) { + void *handle; + std::vector devices; + + load_devices(path, devices, handle); + insert_sensors(devices); + } + ); + +#ifdef ENABLE_AUTO_ROTATION + auto_rotation_sensor* auto_rot_sensor_ptr = NULL; + try { + auto_rot_sensor_ptr = new(std::nothrow) auto_rotation_sensor; + } catch (int err) { + ERR("Failed to create auto_rotation_sensor, err: %d, cause: %s", err, strerror(err)); + } + if (auto_rot_sensor_ptr != NULL) { + std::shared_ptr sensor(auto_rot_sensor_ptr); + sensor_device_type type; + + type = static_cast(sensor->get_type()); + sensor->set_id(type); + + m_sensors.insert(std::make_pair(type, sensor)); + } +#endif + + show_sensor_info(); + return true; +} + +void sensor_loader::show_sensor_info(void) +{ + INFO("========== Loaded sensor information ==========\n"); + + int index = 0; + + auto it = m_sensors.begin(); + + while (it != m_sensors.end()) { + sensor_base *sensor = it->second.get(); + + sensor_info info; + sensor->get_sensor_info(info); + INFO("No:%d [%s]\n", ++index, sensor->get_name()); + info.show(); + it++; + } + + INFO("===============================================\n"); +} + +bool sensor_loader::get_paths_from_dir(const string &dir_path, vector &plugin_paths) +{ + DIR *dir = NULL; + struct dirent *dir_entry = NULL; + + dir = opendir(dir_path.c_str()); + + if (!dir) { + ERR("Failed to open dir: %s", dir_path.c_str()); + return false; + } + + string name; + + while ((dir_entry = readdir(dir))) { + name = string(dir_entry->d_name); + plugin_paths.push_back(dir_path + "/" + name); + } + + closedir(dir); + return true; +} + +sensor_base* sensor_loader::get_sensor(sensor_type_t type) +{ + auto it_plugins = m_sensors.find(static_cast(type)); + + if (it_plugins == m_sensors.end()) + return NULL; + + return it_plugins->second.get(); +} + +sensor_base* sensor_loader::get_sensor(sensor_id_t id) +{ + vector sensors; + + sensor_type_t type = static_cast (id & SENSOR_TYPE_MASK); + unsigned int index = id >> SENSOR_INDEX_SHIFT; + + sensors = get_sensors(type); + + if (sensors.size() <= index) + return NULL; + + return sensors[index]; +} + +vector sensor_loader::get_sensors(sensor_type_t type) +{ + vector sensor_list; + std::pair ret; + + if ((int)(type) == (int)SENSOR_DEVICE_ALL) + ret = std::make_pair(m_sensors.begin(), m_sensors.end()); + else + ret = m_sensors.equal_range(static_cast(type)); + + for (auto it = ret.first; it != ret.second; ++it) + sensor_list.push_back(it->second.get()); + + return sensor_list; +} + +vector sensor_loader::get_virtual_sensors(void) +{ + vector virtual_list; + sensor_base* sensor; + + for (auto sensor_it = m_sensors.begin(); sensor_it != m_sensors.end(); ++sensor_it) { + sensor = sensor_it->second.get(); + + if (sensor && sensor->is_virtual() == true) { + virtual_list.push_back(sensor); + } + } + + return virtual_list; +} diff --git a/src/server/sensor_plugin_loader.h b/src/server/sensor_loader.h similarity index 71% rename from src/server/sensor_plugin_loader.h rename to src/server/sensor_loader.h index 07886e3..ae246fd 100644 --- a/src/server/sensor_plugin_loader.h +++ b/src/server/sensor_loader.h @@ -32,33 +32,34 @@ #include #include #include +#include class sensor_hal; class sensor_base; -typedef std::multimap> sensor_plugins; +typedef std::multimap> sensor_map_t; -class sensor_plugin_loader +class sensor_loader { private: - sensor_plugin_loader(); + sensor_loader(); - bool load_plugin(const std::string &path, std::vector &sensors, void* &handle); - bool insert_plugins(std::vector hals); - bool insert_sensors(sensor_hal *hal); + bool load_devices(const std::string &path, std::vector &devices, void* &handle); + physical_sensor* create_sensor(sensor_handle_t handle, sensor_device *device); + bool insert_sensors(std::vector hals); void show_sensor_info(void); bool get_paths_from_dir(const std::string &dir_path, std::vector &hal_paths); - sensor_plugins m_sensors; + sensor_map_t m_sensors; public: - static sensor_plugin_loader& get_instance(); - bool load_plugins(void); + static sensor_loader& get_instance(); + bool load_sensors(void); sensor_base* get_sensor(sensor_type_t type); sensor_base* get_sensor(sensor_id_t id); std::vector get_sensors(sensor_type_t type); - std::vector get_virtual_sensors(void); + std::vector get_virtual_sensors(void); }; #endif /* _SENSOR_PLUGIN_LOADER_H_ */ diff --git a/src/server/sensor_plugin_loader.cpp.in b/src/server/sensor_plugin_loader.cpp.in deleted file mode 100644 index 366b3ab..0000000 --- a/src/server/sensor_plugin_loader.cpp.in +++ /dev/null @@ -1,322 +0,0 @@ -/* - * libsensord-share - * - * Copyright (c) 2014 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. - * - */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#ifdef ENABLE_AUTO_ROTATION -#include -#endif -/* -#ifdef ENABLE_TILT -#include -#endif -#ifdef ENABLE_GRAVITY -#include -#endif -#ifdef ENABLE_SENSOR_FUSION -#include -#endif -#ifdef ENABLE_LINEAR_ACCEL -#include -#endif -#ifdef ENABLE_ORIENTATION -#include -#endif -#ifdef ENABLE_GAMING_RV -#include -#endif -#ifdef ENABLE_GEOMAGNETIC_RV -#include -#endif -#ifdef ENABLE_RV -#include -#endif -#ifdef ENABLE_GYROSCOPE_UNCAL -#include -#endif -*/ - -using std::unordered_set; -using std::vector; -using std::string; - -#define ROOT_ELEMENT "PLUGIN" -#define TEXT_ELEMENT "text" -#define PATH_ATTR "path" -#define HAL_ELEMENT "HAL" -#define SENSOR_ELEMENT "SENSOR" - -#define HAL_PLUGINS_DIR_PATH "/usr/lib/sensor" - -#define SENSOR_INDEX_SHIFT 16 - -sensor_plugin_loader::sensor_plugin_loader() -{ -} - -sensor_plugin_loader& sensor_plugin_loader::get_instance() -{ - static sensor_plugin_loader inst; - return inst; -} - -bool sensor_plugin_loader::load_plugin(const string &path, vector &sensors, void* &handle) -{ - INFO("load HAL plugin [%s]", path.c_str()); - - void *_handle = dlopen(path.c_str(), RTLD_NOW); - - if (!_handle) { - ERR("Failed to dlopen(%s), dlerror : %s", path.c_str(), dlerror()); - return false; - } - - dlerror(); - - create_t create_plugin = (create_t) dlsym(_handle, "create"); - - if (!create_plugin) { - ERR("Failed to find symbols in %s", path.c_str()); - dlclose(_handle); - return false; - } - - sensor_module *plugin = create_plugin(); - - if (!plugin) { - ERR("Failed to create plugin, path is %s\n", path.c_str()); - dlclose(_handle); - return false; - } - - sensors.clear(); - sensors.swap(plugin->sensors); - - delete plugin; - handle = _handle; - - return true; -} - -bool sensor_plugin_loader::insert_plugins(std::vector hals) -{ - unsigned int i; - sensor_hal *hal; - - for (i = 0; i < hals.size(); ++i) { - hal = static_cast(hals[i]); - - insert_sensors(hal); - } - - return true; -} - -bool sensor_plugin_loader::insert_sensors(sensor_hal *hal) -{ - unsigned int i; - vector sensors; - physical_sensor *phy_sensor; - - hal->get_sensors(sensors); - - for (i = 0; i < sensors.size(); ++i) { - int idx; - idx = m_sensors.count(sensors[i].type); - - phy_sensor = new(std::nothrow) physical_sensor(); - if (!phy_sensor) { - ERR("Memory allocation failed[%s]", sensors[i].name.c_str()); - continue; - } - - phy_sensor->set_id(idx << SENSOR_INDEX_SHIFT | sensors[i].type); - phy_sensor->set_sensor_handle(sensors[i]); - phy_sensor->set_sensor_hal(hal); - - std::shared_ptr sensor(phy_sensor); - m_sensors.insert(std::make_pair(sensors[i].type, sensor)); - - INFO("created [%s] sensor", sensor->get_name()); - } - - return true; -} - -bool sensor_plugin_loader::load_plugins(void) -{ - vector hal_paths; - vector unique_hal_paths; - - get_paths_from_dir(string(HAL_PLUGINS_DIR_PATH), hal_paths); - - unordered_set s; - auto unique = [&s](vector &paths, const string &path) { - if (s.insert(path).second) - paths.push_back(path); - }; - - for_each(hal_paths.begin(), hal_paths.end(), - [&](const string &path) { - unique(unique_hal_paths, path); - } - ); - - for_each(unique_hal_paths.begin(), unique_hal_paths.end(), - [&](const string &path) { - void *handle; - std::vector hals; - - load_plugin(path, hals, handle); - insert_plugins(hals); - } - ); - -#ifdef ENABLE_AUTO_ROTATION - auto_rotation_sensor* auto_rot_sensor_ptr = NULL; - try { - auto_rot_sensor_ptr = new(std::nothrow) auto_rotation_sensor; - } catch (int err) { - ERR("Failed to create auto_rotation_sensor module, err: %d, cause: %s", err, strerror(err)); - } - if (auto_rot_sensor_ptr != NULL) { - std::shared_ptr sensor(auto_rot_sensor_ptr); - sensor_hal_type type; - - type = static_cast(sensor->get_type()); - sensor->set_id(type); - - m_sensors.insert(std::make_pair(type, sensor)); - } -#endif - - show_sensor_info(); - return true; -} - -void sensor_plugin_loader::show_sensor_info(void) -{ - INFO("========== Loaded sensor information ==========\n"); - - int index = 0; - - auto it = m_sensors.begin(); - - while (it != m_sensors.end()) { - sensor_base *sensor = it->second.get(); - - sensor_info info; - sensor->get_sensor_info(info); - INFO("No:%d [%s]\n", ++index, sensor->get_name()); - info.show(); - it++; - } - - INFO("===============================================\n"); -} - -bool sensor_plugin_loader::get_paths_from_dir(const string &dir_path, vector &hal_paths) -{ - DIR *dir = NULL; - struct dirent *dir_entry = NULL; - - dir = opendir(dir_path.c_str()); - - if (!dir) { - ERR("Failed to open dir: %s", dir_path.c_str()); - return false; - } - - string name; - - while ((dir_entry = readdir(dir))) { - name = string(dir_entry->d_name); - hal_paths.push_back(dir_path + "/" + name); - } - - closedir(dir); - return true; -} - -sensor_base* sensor_plugin_loader::get_sensor(sensor_type_t type) -{ - auto it_plugins = m_sensors.find(static_cast(type)); - - if (it_plugins == m_sensors.end()) - return NULL; - - return it_plugins->second.get(); -} - -sensor_base* sensor_plugin_loader::get_sensor(sensor_id_t id) -{ - vector sensors; - - sensor_type_t type = static_cast (id & SENSOR_TYPE_MASK); - unsigned int index = id >> SENSOR_INDEX_SHIFT; - - sensors = get_sensors(type); - - if (sensors.size() <= index) - return NULL; - - return sensors[index]; -} - -vector sensor_plugin_loader::get_sensors(sensor_type_t type) -{ - vector sensor_list; - std::pair ret; - - if ((int)(type) == (int)SENSOR_HAL_TYPE_ALL) - ret = std::make_pair(m_sensors.begin(), m_sensors.end()); - else - ret = m_sensors.equal_range(static_cast(type)); - - for (auto it = ret.first; it != ret.second; ++it) - sensor_list.push_back(it->second.get()); - - return sensor_list; -} - -vector sensor_plugin_loader::get_virtual_sensors(void) -{ - vector virtual_list; - sensor_base* sensor; - - for (auto sensor_it = m_sensors.begin(); sensor_it != m_sensors.end(); ++sensor_it) { - sensor = sensor_it->second.get(); - - if (sensor && sensor->is_virtual() == true) { - virtual_list.push_back(sensor); - } - } - - return virtual_list; -} diff --git a/src/server/server.cpp b/src/server/server.cpp index 6bf0793..8f572bc 100644 --- a/src/server/server.cpp +++ b/src/server/server.cpp @@ -19,7 +19,7 @@ #include #include -#include +#include #include #include #include diff --git a/src/shared/sensor_hal.h b/src/shared/sensor_hal.h index 6ee4212..535ad28 100644 --- a/src/shared/sensor_hal.h +++ b/src/shared/sensor_hal.h @@ -45,58 +45,58 @@ * humidity : relative humidity (%) */ typedef enum { - SENSOR_HAL_TYPE_UNKNOWN = -2, - SENSOR_HAL_TYPE_ALL = -1, - SENSOR_HAL_TYPE_ACCELEROMETER, - SENSOR_HAL_TYPE_GRAVITY, - SENSOR_HAL_TYPE_LINEAR_ACCELERATION, - SENSOR_HAL_TYPE_GEOMAGNETIC, - SENSOR_HAL_TYPE_ROTATION_VECTOR, - SENSOR_HAL_TYPE_ORIENTATION, - SENSOR_HAL_TYPE_GYROSCOPE, - SENSOR_HAL_TYPE_LIGHT, - SENSOR_HAL_TYPE_PROXIMITY, - SENSOR_HAL_TYPE_PRESSURE, - SENSOR_HAL_TYPE_ULTRAVIOLET, - SENSOR_HAL_TYPE_TEMPERATURE, - SENSOR_HAL_TYPE_HUMIDITY, - SENSOR_HAL_TYPE_HRM, - SENSOR_HAL_TYPE_HRM_LED_GREEN, - SENSOR_HAL_TYPE_HRM_LED_IR, - SENSOR_HAL_TYPE_HRM_LED_RED, - SENSOR_HAL_TYPE_GYROSCOPE_UNCAL, - SENSOR_HAL_TYPE_GEOMAGNETIC_UNCAL, - SENSOR_HAL_TYPE_GYROSCOPE_RV, - SENSOR_HAL_TYPE_GEOMAGNETIC_RV, - - SENSOR_HAL_TYPE_ACTIVITY_STATIONARY = 0x100, - SENSOR_HAL_TYPE_ACTIVITY_WALK, - SENSOR_HAL_TYPE_ACTIVITY_RUN, - SENSOR_HAL_TYPE_ACTIVITY_IN_VEHICLE, - SENSOR_HAL_TYPE_ACTIVITY_ON_BICYCLE, - - SENSOR_HAL_TYPE_GESTURE_MOVEMENT = 0x200, - SENSOR_HAL_TYPE_GESTURE_WRIST_UP, - SENSOR_HAL_TYPE_GESTURE_WRIST_DOWN, - - SENSOR_HAL_TYPE_HUMAN_PEDOMETER = 0x300, - SENSOR_HAL_TYPE_HUMAN_SLEEP_MONITOR, - - SENSOR_HAL_TYPE_FUSION = 0x900, - SENSOR_HAL_TYPE_AUTO_ROTATION, - - SENSOR_HAL_TYPE_CONTEXT = 0x1000, - SENSOR_HAL_TYPE_MOTION, - SENSOR_HAL_TYPE_PIR, - SENSOR_HAL_TYPE_PIR_LONG, - SENSOR_HAL_TYPE_DUST, - SENSOR_HAL_TYPE_THERMOMETER, - SENSOR_HAL_TYPE_PEDOMETER, - SENSOR_HAL_TYPE_FLAT, - SENSOR_HAL_TYPE_HRM_RAW, - SENSOR_HAL_TYPE_TILT, - SENSOR_HAL_TYPE_ROTATION_VECTOR_RAW, -} sensor_hal_type; + 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_ACTIVITY_STATIONARY = 0x100, + SENSOR_DEVICE_ACTIVITY_WALK, + SENSOR_DEVICE_ACTIVITY_RUN, + SENSOR_DEVICE_ACTIVITY_IN_VEHICLE, + SENSOR_DEVICE_ACTIVITY_ON_BICYCLE, + + SENSOR_DEVICE_GESTURE_MOVEMENT = 0x200, + SENSOR_DEVICE_GESTURE_WRIST_UP, + SENSOR_DEVICE_GESTURE_WRIST_DOWN, + + SENSOR_DEVICE_HUMAN_PEDOMETER = 0x300, + SENSOR_DEVICE_HUMAN_SLEEP_MONITOR, + + SENSOR_DEVICE_FUSION = 0x900, + SENSOR_DEVICE_AUTO_ROTATION, + + SENSOR_DEVICE_CONTEXT = 0x1000, + 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_type; /* * A platform sensor handler is generated based on this handle @@ -105,19 +105,20 @@ typedef enum { typedef struct sensor_handle_t { uint32_t id; std::string name; - sensor_hal_type type; + sensor_device_type type; unsigned int event_type; // for Internal API sensor_properties_s properties; } sensor_handle_t; /* - * Sensor HAL interface + * Sensor device interface * 1 HAL must be abstracted from 1 device event node */ -class sensor_hal +class sensor_device { public: - uint32_t get_hal_version(void) { + uint32_t get_hal_version(void) + { return SENSOR_HAL_VERSION(1, 0); } diff --git a/src/shared/sf_common.h b/src/shared/sf_common.h index c627edf..2781348 100644 --- a/src/shared/sf_common.h +++ b/src/shared/sf_common.h @@ -191,11 +191,11 @@ typedef struct sensorhub_event_t { sensorhub_data_t data; } sensorhub_event_t; -typedef struct sensor_module{ - std::vector sensors; -} sensor_module; +typedef struct sensor_devices { + std::vector devices; +} sensor_devices; -typedef sensor_module* (*create_t)(void); +typedef sensor_devices* (*create_t)(void); typedef void *(*cmd_func_t)(void *data, void *cb_data); -- 2.7.4 From 251cafa7846dee1a00f98ead3a32b19db96fd72d Mon Sep 17 00:00:00 2001 From: "kibak.yoon" Date: Fri, 22 Jan 2016 21:54:52 +0900 Subject: [PATCH 13/16] sensord: fix the bug related to get sensor all list there is a problem the way that sensor_raw_map is initialized using types obtained from sensor plugin. it changes the order of sensors. so this patch changes it to the simple and correct way: 1. get the supported sensor type list 2. get the sensor list by type and put them to map in order Change-Id: I09975ef84bb80049caca9a20bdf0d4dd6b164b51 Signed-off-by: kibak.yoon --- src/server/command_worker.cpp | 36 +++++++++++++++++++++--------------- src/server/sensor_loader.cpp.in | 14 ++++++++++++++ src/server/sensor_loader.h | 1 + 3 files changed, 36 insertions(+), 15 deletions(-) diff --git a/src/server/command_worker.cpp b/src/server/command_worker.cpp index 1e1ae3b..cd0b628 100644 --- a/src/server/command_worker.cpp +++ b/src/server/command_worker.cpp @@ -31,13 +31,12 @@ using std::string; using std::vector; using std::make_pair; -using std::set; command_worker::cmd_handler_t command_worker::m_cmd_handlers[]; sensor_raw_data_map command_worker::m_sensor_raw_data_map; cpacket command_worker::m_sensor_list; -set priority_list; +std::set priority_list; command_worker::command_worker(const csocket& socket) : m_client_id(CLIENT_ID_INVALID) @@ -141,27 +140,34 @@ void command_worker::get_sensor_list(int permissions, cpacket &sensor_list) void command_worker::make_sensor_raw_data_map(void) { vector sensors; + vector types; + std::vector::iterator it_type; + std::vector::iterator it_sensor; sensor_info info; int permission; - sensors = sensor_loader::get_instance().get_sensors(ALL_SENSOR); + types = sensor_loader::get_instance().get_sensor_types(); - std::sort(sensors.begin(), sensors.end()); - auto last = std::unique(sensors.begin(), sensors.end()); + it_type = types.begin(); + while (it_type != types.end()) { + sensor_type_t type; + type = *it_type; - auto it_sensor = sensors.begin(); + sensors = sensor_loader::get_instance().get_sensors(type); + it_sensor = sensors.begin(); - while (it_sensor != last) { - (*it_sensor)->get_sensor_info(info); - permission = (*it_sensor)->get_permission(); + while (it_sensor != sensors.end()) { + (*it_sensor)->get_sensor_info(info); + permission = (*it_sensor)->get_permission(); - sensor_raw_data_map::iterator it_sensor_raw_data; - it_sensor_raw_data = m_sensor_raw_data_map.insert(std::make_pair(permission, raw_data_t())); + sensor_raw_data_map::iterator it_sensor_raw_data; + it_sensor_raw_data = m_sensor_raw_data_map.insert(std::make_pair(permission, raw_data_t())); - info.get_raw_data(it_sensor_raw_data->second); - info.clear(); - - ++it_sensor; + info.get_raw_data(it_sensor_raw_data->second); + info.clear(); + ++it_sensor; + } + ++it_type; } } diff --git a/src/server/sensor_loader.cpp.in b/src/server/sensor_loader.cpp.in index 6fd1dfd..897f843 100644 --- a/src/server/sensor_loader.cpp.in +++ b/src/server/sensor_loader.cpp.in @@ -252,6 +252,20 @@ sensor_base* sensor_loader::get_sensor(sensor_id_t id) return sensors[index]; } +vector sensor_loader::get_sensor_types(void) +{ + vector sensor_types; + + auto it = m_sensors.begin(); + + while (it != m_sensors.end()) { + sensor_types.push_back((sensor_type_t)(it->first)); + it = m_sensors.upper_bound(it->first); + } + + return sensor_types; +} + vector sensor_loader::get_sensors(sensor_type_t type) { vector sensor_list; diff --git a/src/server/sensor_loader.h b/src/server/sensor_loader.h index ae246fd..b0cb1eb 100644 --- a/src/server/sensor_loader.h +++ b/src/server/sensor_loader.h @@ -59,6 +59,7 @@ public: sensor_base* get_sensor(sensor_type_t type); sensor_base* get_sensor(sensor_id_t id); + std::vector get_sensor_types(void); std::vector get_sensors(sensor_type_t type); std::vector get_virtual_sensors(void); }; -- 2.7.4 From 6f0e3a51e756d12c9749ac3bcf735b883e46efae Mon Sep 17 00:00:00 2001 From: "kibak.yoon" Date: Mon, 25 Jan 2016 10:43:01 +0900 Subject: [PATCH 14/16] sensord: clear vector before using it Change-Id: Ie763cac292c7d3d1655c2e231ca519c061eba2dd Signed-off-by: kibak.yoon --- src/server/sensor_loader.cpp.in | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/server/sensor_loader.cpp.in b/src/server/sensor_loader.cpp.in index 897f843..4d4b1a5 100644 --- a/src/server/sensor_loader.cpp.in +++ b/src/server/sensor_loader.cpp.in @@ -115,6 +115,8 @@ bool sensor_loader::insert_sensors(std::vector devices) for (void *device_ptr : devices) { device = static_cast(device_ptr); + + handles.clear(); device->get_sensors(handles); for (unsigned int i = 0; i < handles.size(); ++i) { -- 2.7.4 From 45f9953014a6f22e547159ec3ea06fd08e5ed312 Mon Sep 17 00:00:00 2001 From: "kibak.yoon" Date: Mon, 25 Jan 2016 17:52:09 +0900 Subject: [PATCH 15/16] sensord: refactoring the way to load virtual sensor Change-Id: I661bc7347ef8d5b99d56f391242669e3865f1102 Signed-off-by: kibak.yoon --- .../plugins/auto_rotation/auto_rotation_sensor.cpp | 8 ++- .../plugins/auto_rotation/auto_rotation_sensor.h | 7 +-- src/server/sensor_base.cpp | 1 - src/server/sensor_base.h | 1 - src/server/sensor_loader.cpp.in | 57 ++++++++++++++-------- src/server/sensor_loader.h | 14 ++++-- src/server/virtual_sensor.cpp | 5 ++ src/server/virtual_sensor.h | 3 ++ src/shared/sensor_hal.h | 2 + 9 files changed, 63 insertions(+), 35 deletions(-) diff --git a/src/server/plugins/auto_rotation/auto_rotation_sensor.cpp b/src/server/plugins/auto_rotation/auto_rotation_sensor.cpp index c78a743..c50c9fd 100644 --- a/src/server/plugins/auto_rotation/auto_rotation_sensor.cpp +++ b/src/server/plugins/auto_rotation/auto_rotation_sensor.cpp @@ -83,8 +83,6 @@ auto_rotation_sensor::auto_rotation_sensor() INFO("m_default_sampling_time = %d", m_default_sampling_time); m_interval = m_default_sampling_time * MS_TO_US; - - init(); } auto_rotation_sensor::~auto_rotation_sensor() @@ -122,12 +120,12 @@ auto_rotation_alg *auto_rotation_sensor::get_alg() return new auto_rotation_alg_emul(); } -bool auto_rotation_sensor::init() +bool auto_rotation_sensor::init(void) { m_accel_sensor = sensor_loader::get_instance().get_sensor(ACCELEROMETER_SENSOR); if (!m_accel_sensor) { - ERR("cannot load accel sensor_hal[%s]", sensor_base::get_name()); + ERR("cannot load accel sensor_hal from %s", get_name()); return false; } @@ -143,7 +141,7 @@ bool auto_rotation_sensor::init() set_privilege(SENSOR_PRIVILEGE_INTERNAL); - INFO("%s is created!\n", sensor_base::get_name()); + INFO("%s is created!\n", get_name()); return true; } diff --git a/src/server/plugins/auto_rotation/auto_rotation_sensor.h b/src/server/plugins/auto_rotation/auto_rotation_sensor.h index 92e234f..cc62e57 100644 --- a/src/server/plugins/auto_rotation/auto_rotation_sensor.h +++ b/src/server/plugins/auto_rotation/auto_rotation_sensor.h @@ -29,7 +29,10 @@ public: auto_rotation_sensor(); virtual ~auto_rotation_sensor(); - /* module info */ + /* initialize sensor */ + bool init(); + + /* sensor info */ virtual sensor_type_t get_type(); virtual unsigned int get_event_type(void); virtual const char* get_name(void); @@ -51,8 +54,6 @@ private: std::string m_raw_data_unit; int m_default_sampling_time; - bool init(); - auto_rotation_alg *get_alg(); virtual bool on_start(void); virtual bool on_stop(void); diff --git a/src/server/sensor_base.cpp b/src/server/sensor_base.cpp index cbe5966..0ff9dd1 100644 --- a/src/server/sensor_base.cpp +++ b/src/server/sensor_base.cpp @@ -40,7 +40,6 @@ sensor_base::sensor_base() sensor_base::~sensor_base() { - INFO("%s is destroyed!\n", m_handle.name.c_str()); } sensor_type_t sensor_base::get_type(void) diff --git a/src/server/sensor_base.h b/src/server/sensor_base.h index 58b1087..7ac3e98 100644 --- a/src/server/sensor_base.h +++ b/src/server/sensor_base.h @@ -105,7 +105,6 @@ protected: private: sensor_id_t m_unique_id; - sensor_handle_t m_handle; sensor_privilege_t m_privilege; int m_permission; diff --git a/src/server/sensor_loader.cpp.in b/src/server/sensor_loader.cpp.in index 4d4b1a5..25d885b 100644 --- a/src/server/sensor_loader.cpp.in +++ b/src/server/sensor_loader.cpp.in @@ -92,7 +92,7 @@ physical_sensor* sensor_loader::create_sensor(sensor_handle_t handle, sensor_dev int index; physical_sensor *sensor; - index = m_sensors.count(handle.type); + index = m_sensors.count((sensor_type_t)handle.type); sensor = new(std::nothrow) physical_sensor(); if (!sensor) { @@ -107,7 +107,7 @@ physical_sensor* sensor_loader::create_sensor(sensor_handle_t handle, sensor_dev return sensor; } -bool sensor_loader::insert_sensors(std::vector devices) +bool sensor_loader::load_physical_sensors(std::vector devices) { sensor_device *device; vector handles; @@ -125,7 +125,7 @@ bool sensor_loader::insert_sensors(std::vector devices) continue; std::shared_ptr sensor_ptr(sensor); - m_sensors.insert(std::make_pair(handles[i].type, sensor_ptr)); + m_sensors.insert(std::make_pair((sensor_type_t)(handles[i].type), sensor_ptr)); INFO("inserted [%s] sensor", sensor->get_name()); } @@ -159,30 +159,47 @@ bool sensor_loader::load_sensors(void) std::vector devices; load_devices(path, devices, handle); - insert_sensors(devices); + load_physical_sensors(devices); } ); -#ifdef ENABLE_AUTO_ROTATION - auto_rotation_sensor* auto_rot_sensor_ptr = NULL; + load_virtual_sensors(); + + show_sensor_info(); + return true; +} + +template +void sensor_loader::load_virtual_sensor(const char *name) +{ + virtual_sensor *instance = NULL; + try { - auto_rot_sensor_ptr = new(std::nothrow) auto_rotation_sensor; + instance = new _sensor; + } catch (std::exception &e) { + ERR("Failed to create %s sensor, exception: %s", name, e.what()); + return; } catch (int err) { - ERR("Failed to create auto_rotation_sensor, err: %d, cause: %s", err, strerror(err)); + ERR("Failed to create %s sensor err: %d, cause: %s", name, err, strerror(err)); + return; } - if (auto_rot_sensor_ptr != NULL) { - std::shared_ptr sensor(auto_rot_sensor_ptr); - sensor_device_type type; - type = static_cast(sensor->get_type()); - sensor->set_id(type); - - m_sensors.insert(std::make_pair(type, sensor)); + if (!instance->init()) { + ERR("Failed to init %s", name); + delete instance; + return; } -#endif - show_sensor_info(); - return true; + std::shared_ptr sensor(instance); + sensor_type_t type = sensor->get_type(); + + sensor->set_id(type); + m_sensors.insert(std::make_pair(type, sensor)); +} + +void sensor_loader::load_virtual_sensors(void) +{ + load_virtual_sensor("Auto Rotation"); } void sensor_loader::show_sensor_info(void) @@ -231,7 +248,7 @@ bool sensor_loader::get_paths_from_dir(const string &dir_path, vector &p sensor_base* sensor_loader::get_sensor(sensor_type_t type) { - auto it_plugins = m_sensors.find(static_cast(type)); + auto it_plugins = m_sensors.find(type); if (it_plugins == m_sensors.end()) return NULL; @@ -276,7 +293,7 @@ vector sensor_loader::get_sensors(sensor_type_t type) if ((int)(type) == (int)SENSOR_DEVICE_ALL) ret = std::make_pair(m_sensors.begin(), m_sensors.end()); else - ret = m_sensors.equal_range(static_cast(type)); + ret = m_sensors.equal_range(type); for (auto it = ret.first; it != ret.second; ++it) sensor_list.push_back(it->second.get()); diff --git a/src/server/sensor_loader.h b/src/server/sensor_loader.h index b0cb1eb..41b1dcb 100644 --- a/src/server/sensor_loader.h +++ b/src/server/sensor_loader.h @@ -33,11 +33,11 @@ #include #include #include +#include -class sensor_hal; class sensor_base; -typedef std::multimap> sensor_map_t; +typedef std::multimap> sensor_map_t; class sensor_loader { @@ -45,11 +45,15 @@ private: sensor_loader(); bool load_devices(const std::string &path, std::vector &devices, void* &handle); + physical_sensor* create_sensor(sensor_handle_t handle, sensor_device *device); - bool insert_sensors(std::vector hals); - void show_sensor_info(void); + bool load_physical_sensors(std::vector devices); - bool get_paths_from_dir(const std::string &dir_path, std::vector &hal_paths); + template void load_virtual_sensor(const char *name); + void load_virtual_sensors(void); + + void show_sensor_info(void); + bool get_paths_from_dir(const std::string &dir_path, std::vector &plugin_paths); sensor_map_t m_sensors; public: diff --git a/src/server/virtual_sensor.cpp b/src/server/virtual_sensor.cpp index 112a3a0..ae3f9be 100644 --- a/src/server/virtual_sensor.cpp +++ b/src/server/virtual_sensor.cpp @@ -32,6 +32,11 @@ virtual_sensor::~virtual_sensor() } +bool virtual_sensor::init(void) +{ + return false; +} + bool virtual_sensor::is_virtual(void) { return true; diff --git a/src/server/virtual_sensor.h b/src/server/virtual_sensor.h index f781880..a9c998f 100644 --- a/src/server/virtual_sensor.h +++ b/src/server/virtual_sensor.h @@ -28,6 +28,9 @@ public: virtual_sensor(); virtual ~virtual_sensor(); + /* initialize sensor */ + virtual bool init(); + /* module info */ virtual sensor_type_t get_type() = 0; virtual unsigned int get_event_type(void) = 0; diff --git a/src/shared/sensor_hal.h b/src/shared/sensor_hal.h index 535ad28..b9f38c6 100644 --- a/src/shared/sensor_hal.h +++ b/src/shared/sensor_hal.h @@ -117,6 +117,8 @@ typedef struct sensor_handle_t { class sensor_device { public: + virtual ~sensor_device() {} + uint32_t get_hal_version(void) { return SENSOR_HAL_VERSION(1, 0); -- 2.7.4 From 0b77b5af15e4aaa6b77a6f2b48a61975db008e24 Mon Sep 17 00:00:00 2001 From: "kibak.yoon" Date: Mon, 25 Jan 2016 20:33:32 +0900 Subject: [PATCH 16/16] sensord: share the lock in physical sensors - lock the command flow and event flow using same mutex in physical_sensor Change-Id: I8ed6c061448c56f0b09e1a6b45709c1ff8e311ca Signed-off-by: kibak.yoon --- src/server/physical_sensor.cpp | 2 ++ src/server/physical_sensor.h | 2 ++ src/server/sensor_base.cpp | 49 ------------------------------------------ src/server/sensor_base.h | 8 ------- 4 files changed, 4 insertions(+), 57 deletions(-) diff --git a/src/server/physical_sensor.cpp b/src/server/physical_sensor.cpp index 71de409..3c6f697 100644 --- a/src/server/physical_sensor.cpp +++ b/src/server/physical_sensor.cpp @@ -22,6 +22,8 @@ #define UNKNOWN_NAME "UNKNOWN_SENSOR" +cmutex physical_sensor::m_mutex; + physical_sensor::physical_sensor() : m_sensor_device(NULL) { diff --git a/src/server/physical_sensor.h b/src/server/physical_sensor.h index 2c7742f..5abc41b 100644 --- a/src/server/physical_sensor.h +++ b/src/server/physical_sensor.h @@ -47,6 +47,8 @@ public: virtual int get_sensor_event(sensor_event_t **event); private: + static cmutex m_mutex; + sensor_handle_t m_handle; sensor_device *m_sensor_device; diff --git a/src/server/sensor_base.cpp b/src/server/sensor_base.cpp index 0ff9dd1..7096862 100644 --- a/src/server/sensor_base.cpp +++ b/src/server/sensor_base.cpp @@ -49,7 +49,6 @@ sensor_type_t sensor_base::get_type(void) bool sensor_base::start() { - AUTOLOCK(m_mutex); AUTOLOCK(m_client_mutex); ++m_client; @@ -70,7 +69,6 @@ bool sensor_base::start() bool sensor_base::stop(void) { - AUTOLOCK(m_mutex); AUTOLOCK(m_client_mutex); --m_client; @@ -323,7 +321,6 @@ int sensor_base::get_permission(void) bool sensor_base::is_started(void) { - AUTOLOCK(m_mutex); AUTOLOCK(m_client_mutex); return m_started; @@ -404,52 +401,6 @@ bool sensor_base::push(sensor_event_t *event, int event_length) return true; } -/* -bool sensor_base::push(const sensor_event_t &event) -{ - AUTOLOCK(m_client_mutex); - - if (m_client <= 0) - return false; - - sensor_event_queue::get_instance().push(event); - return true; -} - -bool sensor_base::push(sensor_event_t *event) -{ - AUTOLOCK(m_client_mutex); - - if (m_client <= 0) - return false; - - sensor_event_queue::get_instance().push(event); - return true; -} - -bool sensor_base::push(const sensorhub_event_t &event) -{ - AUTOLOCK(m_client_mutex); - - if (m_client <= 0) - return false; - - sensor_event_queue::get_instance().push(event); - return true; -} - -bool sensor_base::push(sensorhub_event_t *event) -{ - AUTOLOCK(m_client_mutex); - - if (m_client <= 0) - return false; - - sensor_event_queue::get_instance().push(event); - return true; -} -*/ - unsigned long long sensor_base::get_timestamp(void) { struct timespec t; diff --git a/src/server/sensor_base.h b/src/server/sensor_base.h index 7ac3e98..000dfad 100644 --- a/src/server/sensor_base.h +++ b/src/server/sensor_base.h @@ -87,19 +87,11 @@ public: /* push event to queue */ bool push(sensor_event_t *event, int event_length); - /* - bool push(const sensor_event_t &event); - bool push(sensor_event_t *event); - bool push(const sensorhub_event_t &event); - bool push(sensorhub_event_t *event); - */ /* for sensorhub */ virtual long set_command(unsigned int cmd, long value); virtual int send_sensorhub_data(const char* data, int data_len); protected: - cmutex m_mutex; - void set_privilege(sensor_privilege_t privilege); void set_permission(int permission); -- 2.7.4