Synchronizing geo sensor plugin with addition of IIO interface support 68/30368/1
authorAmit Dharmapurikar <amit.vd@samsung.com>
Mon, 17 Nov 2014 09:48:22 +0000 (15:18 +0530)
committerAmit Dharmapurikar <amit.vd@samsung.com>
Mon, 17 Nov 2014 09:48:22 +0000 (15:18 +0530)
Change-Id: I089d290206e03f283ed6a9bac2b1dbb8241bc219
Signed-off-by: Amit Dharmapurikar <amit.vd@samsung.com>
packaging/sensord.spec
sensors.xml.in
src/geo/CMakeLists.txt
src/geo/geo_sensor.cpp
src/geo/geo_sensor.h
src/geo/geo_sensor_hal.cpp
src/geo/geo_sensor_hal.h
src/libsensord/client.cpp

index 079f1cc..7420325 100755 (executable)
@@ -12,7 +12,7 @@ Source2:    sensord.socket
 %define gyro_state ON
 %define proxi_state OFF
 %define light_state OFF
-%define geo_state OFF
+%define geo_state ON
 %define pressure_state OFF
 %define temperature_state OFF
 %define orientation_state OFF
index bd078aa..37c1c34 100755 (executable)
                <MODEL id="AK09911C">
                        <NAME value="AK09911C"/>
                        <VENDOR value="AKM"/>
+                       <RAW_DATA_UNIT value="0.06"/>
+                       <MIN_RANGE value="-4900"/>
+                       <MAX_RANGE value="4900"/>
                </MODEL>
 
                <MODEL id="ak8975">
                        <NAME value="AK8975"/>
                        <VENDOR value="AKM"/>
+                       <RAW_DATA_UNIT value="0.03"/>
+                       <MIN_RANGE value="-1200"/>
+                       <MAX_RANGE value="1200"/>
                </MODEL>
 
                <MODEL id="MPU9250">
index 4478781..d011093 100755 (executable)
@@ -15,13 +15,14 @@ include_directories(${CMAKE_SOURCE_DIR}/src/libsensord)
 
 include(FindPkgConfig)
 pkg_check_modules(rpkgs REQUIRED vconf)
-add_definitions(${rpkgs_CFLAGS} -DUSE_ONLY_ONE_MODULE)
+add_definitions(${rpkgs_CFLAGS} -DUSE_ONLY_ONE_MODULE -DUSE_LCD_TYPE_CHECK)
 
 set(PROJECT_MAJOR_VERSION "0")
 set(PROJECT_MINOR_VERSION "0")
 set(PROJECT_RELEASE_VERSION "1")
 set(CMAKE_VERBOSE_MAKEFILE OFF)
 
+
 FIND_PROGRAM(UNAME NAMES uname)
 EXEC_PROGRAM("${UNAME}" ARGS "-m" OUTPUT_VARIABLE "ARCH")
 IF("${ARCH}" MATCHES "^arm.*")
index 6a80591..029df71 100755 (executable)
@@ -19,6 +19,7 @@
 
 #include <common.h>
 #include <sf_common.h>
+
 #include <geo_sensor.h>
 #include <sensor_plugin_loader.h>
 
@@ -26,6 +27,7 @@
 
 geo_sensor::geo_sensor()
 : m_sensor_hal(NULL)
+, m_resolution(0.0f)
 {
        m_name = string(SENSOR_NAME);
 
@@ -37,7 +39,7 @@ geo_sensor::geo_sensor()
 
 geo_sensor::~geo_sensor()
 {
-       INFO("geo_sensor is destroyed!");
+       INFO("geo_sensor is destroyed!\n");
 }
 
 bool geo_sensor::init()
@@ -49,7 +51,17 @@ bool geo_sensor::init()
                return false;
        }
 
-       INFO("%s is created!", sensor_base::get_name());
+       sensor_properties_t 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;
 }
 
@@ -60,8 +72,8 @@ sensor_type_t geo_sensor::get_type(void)
 
 bool geo_sensor::working(void *inst)
 {
-       geo_sensor *sensor = (geo_sensor *)inst;
-       return sensor->process_event();
+       geo_sensor *sensor = (geo_sensor*)inst;
+       return sensor->process_event();;
 }
 
 bool geo_sensor::process_event(void)
@@ -77,8 +89,9 @@ bool geo_sensor::process_event(void)
        AUTOLOCK(m_mutex);
 
        if (get_client_cnt(GEOMAGNETIC_EVENT_RAW_DATA_REPORT_ON_TIME)) {
+               event.sensor_id = get_id();
                event.event_type = GEOMAGNETIC_EVENT_RAW_DATA_REPORT_ON_TIME;
-
+               raw_to_base(event.data);
                push(event);
        }
 
@@ -87,10 +100,8 @@ bool geo_sensor::process_event(void)
 
 bool geo_sensor::on_start(void)
 {
-       AUTOLOCK(m_mutex);
-
        if (!m_sensor_hal->enable()) {
-               ERR("m_sensor_hal start fail");
+               ERR("m_sensor_hal start fail\n");
                return false;
        }
 
@@ -99,32 +110,20 @@ bool geo_sensor::on_start(void)
 
 bool geo_sensor::on_stop(void)
 {
-       AUTOLOCK(m_mutex);
-
        if (!m_sensor_hal->disable()) {
-               ERR("m_sensor_hal stop fail");
+               ERR("m_sensor_hal stop fail\n");
                return false;
        }
 
        return stop_poll();
 }
 
-long geo_sensor::set_command(const unsigned int cmd, long value)
-{
-       if (m_sensor_hal->set_command(cmd, value) < 0) {
-               ERR("m_sensor_hal set_cmd fail");
-               return -1;
-       }
-
-       return 0;
-}
-
-bool geo_sensor::get_properties(const unsigned int type, sensor_properties_t &properties)
+bool geo_sensor::get_properties(sensor_properties_t &properties)
 {
        return m_sensor_hal->get_properties(properties);
 }
 
-int geo_sensor::get_sensor_data(const unsigned int type, sensor_data_t &data)
+int geo_sensor::get_sensor_data(unsigned int type, sensor_data_t &data)
 {
        int state;
 
@@ -134,7 +133,7 @@ int geo_sensor::get_sensor_data(const unsigned int type, sensor_data_t &data)
        state = m_sensor_hal->get_sensor_data(data);
 
        if (state < 0) {
-               ERR("m_sensor_hal get struct_data fail");
+               ERR("m_sensor_hal get struct_data fail\n");
                return -1;
        }
 
@@ -146,9 +145,18 @@ 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;
+}
+
 extern "C" void *create(void)
 {
        geo_sensor *inst;
@@ -156,14 +164,14 @@ extern "C" void *create(void)
        try {
                inst = new geo_sensor();
        } catch (int err) {
-               ERR("Failed to create geo_sensor class, errno : %d, errstr : %s", err, strerror(err));
+               ERR("geo_sensor class create fail , errno : %d , errstr : %s\n", err, strerror(err));
                return NULL;
        }
 
-       return (void *)inst;
+       return (void*)inst;
 }
 
 extern "C" void destroy(void *inst)
 {
-       delete (geo_sensor *)inst;
+       delete (geo_sensor*)inst;;
 }
index 449a4d2..c211e5c 100755 (executable)
 #define _GEO_SENSOR_H_
 
 #include <sensor_common.h>
+
 #include <physical_sensor.h>
 #include <sensor_hal.h>
 
-class geo_sensor : public physical_sensor
-{
+class geo_sensor : public physical_sensor {
 public:
        geo_sensor();
        virtual ~geo_sensor();
@@ -35,17 +35,19 @@ public:
 
        static bool working(void *inst);
 
-       virtual bool on_start(void);
-       virtual bool on_stop(void);
-
        virtual bool set_interval(unsigned long interval);
-       virtual long set_command(const unsigned int cmd, long value);
-       virtual bool get_properties(const unsigned int type, sensor_properties_t &properties);
-       int get_sensor_data(const unsigned int type, sensor_data_t &data);
+       virtual bool get_properties(sensor_properties_t &properties);
+       int get_sensor_data(unsigned int type, sensor_data_t &data);
 private:
        sensor_hal *m_sensor_hal;
-       cmutex m_mutex;
 
+       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 /*_GEO_SENSOR_H_*/
+
+#endif
+
index f611162..872525b 100755 (executable)
@@ -1,5 +1,5 @@
 /*
- * sensord
+ * geo_sensor_hal
  *
  * Copyright (c) 2014 Samsung Electronics Co., Ltd.
  *
  * limitations under the License.
  *
  */
-
-#include <fstream>
 #include <fcntl.h>
 #include <sys/stat.h>
-#include <sys/ioctl.h>
 #include <dirent.h>
+
 #include <linux/input.h>
 #include <cconfig.h>
+
 #include <geo_sensor_hal.h>
+#include <sys/ioctl.h>
+#include <fstream>
+#include <cconfig.h>
 #include <iio_common.h>
 
 using std::ifstream;
-using std::string;
 using config::CConfig;
 
 #define SENSOR_TYPE_MAGNETIC   "MAGNETIC"
 #define ELEMENT_NAME                   "NAME"
 #define ELEMENT_VENDOR                 "VENDOR"
+#define ELEMENT_RAW_DATA_UNIT  "RAW_DATA_UNIT"
+#define ELEMENT_MIN_RANGE              "MIN_RANGE"
+#define ELEMENT_MAX_RANGE              "MAX_RANGE"
 #define ATTR_VALUE                             "value"
 
-#define SENSOR_MIN_RANGE               -1200
-#define SENSOR_MAX_RANGE               1200
-#define INITIAL_TIME                   0
-#define INITIAL_VALUE                  -1
-#define GAUSS_TO_UTESLA(val)   ((val) * 100)
+#define INITIAL_TIME                   -1
+#define GAUSS_TO_UTESLA(val)   ((val) * 100.0f)
 
 geo_sensor_hal::geo_sensor_hal()
-: m_x(INITIAL_VALUE)
-, m_y(INITIAL_VALUE)
-, m_z(INITIAL_VALUE)
+: m_x(0)
+, m_y(0)
+, m_z(0)
+, m_hdst(0)
+, m_node_handle(-1)
 , m_polling_interval(POLL_1HZ_MS)
 , m_fired_time(INITIAL_TIME)
-, m_sensorhub_supported(false)
 {
-       if (!check_hw_node())
-       {
-               ERR("check_hw_node() fail");
+       const string sensorhub_interval_node_name = "mag_poll_delay";
+       CConfig &config = CConfig::get_instance();
+
+       node_path_info_query query;
+       node_path_info info;
+       int input_method = IIO_METHOD;
+
+       if (!get_model_properties(SENSOR_TYPE_MAGNETIC, m_model_id, input_method)) {
+               ERR("Failed to find model_properties");
                throw ENXIO;
+
        }
 
-       CConfig &config = CConfig::get_instance();
+       query.input_method = input_method;
+       query.sensorhub_controlled = m_sensorhub_controlled = is_sensorhub_controlled(sensorhub_interval_node_name);
+       query.sensor_type = SENSOR_TYPE_MAGNETIC;
+       query.input_event_key = "geomagnetic_sensor";
+       query.iio_enable_node_name = "geomagnetic_enable";
+       query.sensorhub_interval_node_name = sensorhub_interval_node_name;
 
-       if (!config.get(SENSOR_TYPE_MAGNETIC, m_model_id, ELEMENT_VENDOR, m_vendor))
-       {
-               ERR("[VENDOR] is empty");
+       if (!get_node_path_info(query, info)) {
+               ERR("Failed to get node info");
                throw ENXIO;
        }
 
-       INFO("m_vendor = %s", m_vendor.c_str());
+       show_node_path_info(info);
+
+       m_data_node = info.data_node_path;
+       m_enable_node = info.enable_node_path;
+       m_interval_node = info.interval_node_path;
+
+       if (input_method == IIO_METHOD) {
+               m_geo_dir = info.base_dir;
+               m_x_node = m_geo_dir + string(X_RAW_VAL_NODE);
+               m_y_node = m_geo_dir + string(Y_RAW_VAL_NODE);
+               m_z_node = m_geo_dir + string(Z_RAW_VAL_NODE);
+               m_x_scale_node = m_geo_dir + string(X_SCALE_NODE);
+               m_y_scale_node = m_geo_dir + string(Y_SCALE_NODE);
+               m_z_scale_node = m_geo_dir + string(Z_SCALE_NODE);
+               INFO("Raw data node X: %s", m_x_node.c_str());
+               INFO("Raw data node Y: %s", m_y_node.c_str());
+               INFO("Raw data node Z: %s", m_z_node.c_str());
+               INFO("scale node X: %s", m_x_scale_node.c_str());
+               INFO("scale node Y: %s", m_y_scale_node.c_str());
+               INFO("scale node Z: %s", m_z_scale_node.c_str());
+       }
 
-       if (!config.get(SENSOR_TYPE_MAGNETIC, m_model_id, ELEMENT_NAME, m_chip_name))
-       {
-               ERR("[NAME] is empty");
+       if (!config.get(SENSOR_TYPE_MAGNETIC, m_model_id, ELEMENT_VENDOR, m_vendor)) {
+               ERR("[VENDOR] is empty\n");
                throw ENXIO;
        }
 
-       INFO("m_chip_name = %s", m_chip_name.c_str());
+       INFO("m_vendor = %s", m_vendor.c_str());
 
-       if (!init_resources())
+       if (!config.get(SENSOR_TYPE_MAGNETIC, m_model_id, ELEMENT_NAME, m_chip_name)) {
+               ERR("[NAME] is empty\n");
                throw ENXIO;
+       }
 
-       INFO("geo_sensor_hal is created!");
-}
+       init_resources();
+
+       INFO("m_chip_name = %s\n",m_chip_name.c_str());
+       INFO("m_raw_data_unit = %f\n", m_raw_data_unit);
+       INFO("geo_sensor_hal is created!\n");
 
-geo_sensor_hal::~geo_sensor_hal()
-{
-       INFO("geo_sensor_hal is destroyed!");
 }
 
-bool geo_sensor_hal::init_resources(void)
+geo_sensor_hal::~geo_sensor_hal()
 {
-       ifstream temp_handle;
-
-       if (!read_node_value<double>(m_x_scale_node, m_x_scale))
-               return false;
-
-       if (!read_node_value<double>(m_y_scale_node, m_y_scale))
-               return false;
-
-       if (!read_node_value<double>(m_z_scale_node, m_z_scale))
-               return false;
+       if (m_node_handle > 0)
+               close(m_node_handle);
+       m_node_handle = -1;
 
-       INFO("Scale Values: %f, %f, %f", m_x_scale, m_y_scale, m_z_scale);
-       return true;
+       INFO("geo_sensor is destroyed!\n");
 }
 
 string geo_sensor_hal::get_model_id(void)
@@ -114,13 +140,14 @@ sensor_type_t geo_sensor_hal::get_type(void)
 
 bool geo_sensor_hal::enable(void)
 {
-       INFO("Resource already enabled. Enable not supported.");
+       m_fired_time = INITIAL_TIME;
+       INFO("Geo sensor real starting");
        return true;
 }
 
 bool geo_sensor_hal::disable(void)
 {
-       INFO("Disable not supported.");
+       INFO("Geo sensor real stopping");
        return true;
 }
 
@@ -128,6 +155,7 @@ bool geo_sensor_hal::set_interval(unsigned long val)
 {
        INFO("Polling interval cannot be changed.");
        return true;
+
 }
 
 bool geo_sensor_hal::update_value(void)
@@ -137,10 +165,8 @@ bool geo_sensor_hal::update_value(void)
 
        if (!read_node_value<int>(m_x_node, raw_values[0]))
                return false;
-
        if (!read_node_value<int>(m_y_node, raw_values[1]))
                return false;
-
        if (!read_node_value<int>(m_z_node, raw_values[2]))
                return false;
 
@@ -149,7 +175,8 @@ bool geo_sensor_hal::update_value(void)
        m_z = GAUSS_TO_UTESLA(raw_values[2] * m_z_scale);
 
        m_fired_time = INITIAL_TIME;
-       INFO("x = %d, y = %d, z = %d, time = %lluus", raw_values[0], raw_values[0], raw_values[0], m_fired_time);
+       INFO("x = %d, y = %d, z = %d, time = %lluus", raw_values[0], raw_values[1], raw_values[2], m_fired_time);
+       INFO("x = %f, y = %f, z = %f, time = %lluus", m_x, m_y, m_z, m_fired_time);
 
        return true;
 }
@@ -163,9 +190,9 @@ bool geo_sensor_hal::is_data_ready(bool wait)
 
 int geo_sensor_hal::get_sensor_data(sensor_data_t &data)
 {
-       data.data_unit_idx = SENSOR_UNIT_MICRO_TESLA;
+       data.accuracy = SENSOR_ACCURACY_GOOD;
        data.timestamp = m_fired_time;
-       data.values_num = 3;
+       data.value_count = 3;
        data.values[0] = (float)m_x;
        data.values[1] = (float)m_y;
        data.values[2] = (float)m_z;
@@ -174,97 +201,52 @@ int geo_sensor_hal::get_sensor_data(sensor_data_t &data)
 
 bool geo_sensor_hal::get_properties(sensor_properties_t &properties)
 {
-       properties.sensor_unit_idx = SENSOR_UNIT_MICRO_TESLA;
-       properties.sensor_min_range = SENSOR_MIN_RANGE;
-       properties.sensor_max_range = SENSOR_MAX_RANGE;
-       snprintf(properties.sensor_name, sizeof(properties.sensor_name), "%s", m_chip_name.c_str());
-       snprintf(properties.sensor_vendor, sizeof(properties.sensor_vendor), "%s", m_vendor.c_str());
-       properties.sensor_resolution = 1;
+       properties.name = m_chip_name;
+       properties.vendor = m_vendor;
+       properties.min_range = m_min_range;
+       properties.max_range = m_max_range;
+       properties.min_interval = 1;
+       properties.resolution = m_raw_data_unit;
+       properties.fifo_count = 0;
+       properties.max_batch_count = 0;
        return true;
 }
 
-bool geo_sensor_hal::is_sensorhub_supported(void)
-{
-       return false;
-}
-
-bool geo_sensor_hal::check_hw_node(void)
+bool geo_sensor_hal::init_resources(void)
 {
-       string hw_name;
-       string file_name;
-       DIR *main_dir = NULL;
-       struct dirent *dir_entry = NULL;
-       bool find_node = false;
-
-       INFO("======================start check_hw_node=============================");
-
-       m_sensorhub_supported = is_sensorhub_supported();
-       main_dir = opendir(IIO_DIR);
+       ifstream temp_handle;
 
-       if (!main_dir)
-       {
-               ERR("Could not open IIO directory\n");
+       if (!read_node_value<double>(m_x_scale_node, m_x_scale)) {
+               ERR("Failed to read x scale node");
                return false;
        }
-
-       while (!find_node)
-       {
-               dir_entry = readdir(main_dir);
-               if(dir_entry == NULL)
-                       break;
-
-               if ((strncasecmp(dir_entry->d_name , ".", 1 ) != 0) && (strncasecmp(dir_entry->d_name , "..", 2 ) != 0) && (dir_entry->d_ino != 0))
-               {
-                       file_name = string(IIO_DIR) + string(dir_entry->d_name) + string(NAME_NODE);
-                       ifstream infile(file_name.c_str());
-
-                       if (!infile)
-                               continue;
-
-                       infile >> hw_name;
-
-                       if (CConfig::get_instance().is_supported(SENSOR_TYPE_MAGNETIC, hw_name) == true)
-                       {
-                               m_name = m_model_id = hw_name;
-                               INFO("m_model_id = %s", m_model_id.c_str());
-
-                               string temp = string(IIO_DIR) + string(dir_entry->d_name);
-
-                               m_x_node = temp + string(X_RAW_VAL_NODE);
-                               m_y_node = temp + string(Y_RAW_VAL_NODE);
-                               m_z_node = temp + string(Z_RAW_VAL_NODE);
-                               m_x_scale_node = temp + string(X_SCALE_NODE);
-                               m_y_scale_node = temp + string(Y_SCALE_NODE);
-                               m_z_scale_node = temp + string(Z_SCALE_NODE);
-
-                               find_node = true;
-                               break;
-                       }
-               }
+       if (!read_node_value<double>(m_y_scale_node, m_y_scale)) {
+               ERR("Failed to read y scale node");
+               return false;
        }
-
-       closedir(main_dir);
-       return find_node;
+       if (!read_node_value<double>(m_z_scale_node, m_z_scale)) {
+               ERR("Failed to read y scale node");
+               return false;
+       }
+       INFO("Scale Values: %f, %f, %f", m_x_scale, m_y_scale, m_z_scale);
+       return true;
 }
 
 extern "C" void *create(void)
 {
        geo_sensor_hal *inst;
 
-       try
-       {
+       try {
                inst = new geo_sensor_hal();
-       }
-       catch (int err)
-       {
-               ERR("Failed to create geo_sensor_hal class, errno : %d, errstr : %s", err, strerror(err));
+       } catch (int err) {
+               ERR("geo_sensor_hal class create fail , errno : %d , errstr : %s\n", err, strerror(err));
                return NULL;
        }
 
-       return (void *)inst;
+       return (void*)inst;
 }
 
 extern "C" void destroy(void *inst)
 {
-       delete (geo_sensor_hal *)inst;
+       delete (geo_sensor_hal*)inst;
 }
index c723fe6..25183d2 100755 (executable)
@@ -1,5 +1,5 @@
 /*
- * sensord
+ * geo_sensor_hal
  *
  * Copyright (c) 2014 Samsung Electronics Co., Ltd.
  *
 #include <sensor_hal.h>
 #include <string>
 
-#define IIO_DIR                        "/sys/bus/iio/devices/"
-#define X_RAW_VAL_NODE "/in_magn_x_raw"
-#define Y_RAW_VAL_NODE "/in_magn_y_raw"
-#define Z_RAW_VAL_NODE "/in_magn_z_raw"
-#define X_SCALE_NODE   "/in_magn_x_scale"
-#define Y_SCALE_NODE   "/in_magn_y_scale"
-#define Z_SCALE_NODE   "/in_magn_z_scale"
-#define NAME_NODE              "/name"
+#define X_RAW_VAL_NODE "in_magn_x_raw"
+#define Y_RAW_VAL_NODE "in_magn_y_raw"
+#define Z_RAW_VAL_NODE "in_magn_z_raw"
+#define X_SCALE_NODE   "in_magn_x_scale"
+#define Y_SCALE_NODE   "in_magn_y_scale"
+#define Z_SCALE_NODE   "in_magn_z_scale"
 
 using std::string;
 
@@ -47,9 +45,17 @@ public:
        bool is_data_ready(bool wait);
        virtual int get_sensor_data(sensor_data_t &data);
        bool get_properties(sensor_properties_t &properties);
-       bool check_hw_node(void);
-
 private:
+       string m_model_id;
+       string m_vendor;
+       string m_chip_name;
+
+       float m_min_range;
+       float m_max_range;
+       float m_raw_data_unit;
+
+       unsigned long m_polling_interval;
+
        double m_x;
        double m_y;
        double m_z;
@@ -57,15 +63,19 @@ private:
        double m_y_scale;
        double m_z_scale;
 
-       unsigned long m_polling_interval;
+       int m_hdst;
+
        unsigned long long m_fired_time;
-       bool m_sensorhub_supported;
+       int m_node_handle;
 
-       string m_model_id;
-       string m_name;
-       string m_vendor;
-       string m_chip_name;
+       string m_enable_node;
+
+       /*For Input Method*/
+       string m_data_node;
+       string m_interval_node;
 
+       /*For IIO method*/
+       string m_geo_dir;
        string m_x_node;
        string m_y_node;
        string m_z_node;
@@ -73,11 +83,11 @@ private:
        string m_y_scale_node;
        string m_z_scale_node;
 
+       bool m_sensorhub_controlled;
+
        cmutex m_value_mutex;
 
-       bool enable_resource(string &resource_node, bool enable);
        bool update_value(void);
-       bool is_sensorhub_supported(void);
        bool init_resources(void);
 };
 #endif /*_GEO_SENSOR_HAL_H_*/
index 4e967cb..9acf884 100755 (executable)
@@ -1068,7 +1068,6 @@ API bool sensord_get_data(int handle, unsigned int data_id, sensor_data_t* senso
                return false;
        }
 
-
        client_id = event_listener.get_client_id();
        retvm_if ((client_id < 0), false, "Invalid client id : %d, handle: %d, %s, %s", client_id, handle, get_sensor_name(sensor_id), get_client_name());