From 348b35c2355abf89040e6e12654283f710ae832c Mon Sep 17 00:00:00 2001 From: Mu-Woong Lee Date: Fri, 18 Dec 2015 16:56:05 +0900 Subject: [PATCH 01/16] Restore dependency from libsensord to sensord Change-Id: I2389a2ba8d30c1f82b967f134a5e928a73f2439f Signed-off-by: Mu-Woong Lee --- packaging/sensord.spec | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packaging/sensord.spec b/packaging/sensord.spec index 8ae48ac..b907dd6 100644 --- a/packaging/sensord.spec +++ b/packaging/sensord.spec @@ -2,7 +2,7 @@ Name: sensord Summary: Sensor daemon Version: 2.0.0 Release: 0 -Group: System/Sensor Framework +Group: System/Sensor Framework License: Apache-2.0 Source0: %{name}-%{version}.tar.gz Source1: sensord.manifest @@ -38,6 +38,7 @@ Sensor daemon %package -n libsensord Summary: Sensord library Group: System/Libraries +Requires: %{name} = %{version}-%{release} %description -n libsensord Sensord library -- 2.7.4 From d0262b12cbddd8aef62cee4c572dd9a282a925ad Mon Sep 17 00:00:00 2001 From: "kibak.yoon" Date: Fri, 18 Dec 2015 16:20:04 +0900 Subject: [PATCH 02/16] sensord: initialize member variables in csocket constructors Change-Id: I98156912b4dba0d68bba76b48e652366828b3b4c Signed-off-by: kibak.yoon --- src/shared/csocket.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/shared/csocket.cpp b/src/shared/csocket.cpp index 9845b5f..dfb8ce1 100644 --- a/src/shared/csocket.cpp +++ b/src/shared/csocket.cpp @@ -33,7 +33,9 @@ csocket::csocket() csocket::csocket(int sock_fd) -: m_send_flags(MSG_NOSIGNAL) +: m_sock_fd(-1) +, m_sock_type(SOCK_STREAM) +, m_send_flags(MSG_NOSIGNAL) , m_recv_flags(MSG_NOSIGNAL) { m_sock_fd = sock_fd; @@ -43,6 +45,10 @@ csocket::csocket(int sock_fd) csocket::csocket(const csocket &sock) +: m_sock_fd(-1) +, m_sock_type(SOCK_STREAM) +, m_send_flags(MSG_NOSIGNAL) +, m_recv_flags(MSG_NOSIGNAL) { if (this == &sock) return; -- 2.7.4 From ed3b24c35f19cbbdd9fa4136312d6ec164f66d40 Mon Sep 17 00:00:00 2001 From: Mu-Woong Lee Date: Fri, 18 Dec 2015 17:16:50 +0900 Subject: [PATCH 03/16] Rename libsensord-devel.so to libsensord-shared.so Change-Id: Idb2476ee1bc85be9fc4040cc1d74e56ae39492f3 Signed-off-by: Mu-Woong Lee --- packaging/sensord.spec | 4 ++-- src/client/CMakeLists.txt | 2 +- src/server/CMakeLists.txt | 4 ++-- src/shared/CMakeLists.txt | 3 +-- 4 files changed, 6 insertions(+), 7 deletions(-) diff --git a/packaging/sensord.spec b/packaging/sensord.spec index b907dd6..4b56aa6 100644 --- a/packaging/sensord.spec +++ b/packaging/sensord.spec @@ -108,13 +108,13 @@ systemctl daemon-reload %defattr(-,root,root,-) %manifest libsensord.manifest %{_libdir}/libsensor.so.* -%{_libdir}/libsensord-devel.so +%{_libdir}/libsensord-shared.so %license LICENSE.APLv2 %files -n libsensord-devel %defattr(-,root,root,-) %{_includedir}/sensor/*.h -%{_includedir}/sensord-devel/*.h +%{_includedir}/sensord-shared/*.h %{_libdir}/libsensor.so %{_libdir}/pkgconfig/sensor.pc %license LICENSE.APLv2 diff --git a/src/client/CMakeLists.txt b/src/client/CMakeLists.txt index 0a404d3..e949a05 100755 --- a/src/client/CMakeLists.txt +++ b/src/client/CMakeLists.txt @@ -37,7 +37,7 @@ add_library(${PROJECT_NAME} SHARED poller.cpp ) -target_link_libraries(${PROJECT_NAME} ${lib_pkgs_LDFLAGS} "sensord-devel") +target_link_libraries(${PROJECT_NAME} ${lib_pkgs_LDFLAGS} "sensord-shared") SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES SOVERSION ${VERSION_MAJOR}) SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES VERSION ${VERSION}) diff --git a/src/server/CMakeLists.txt b/src/server/CMakeLists.txt index 30a5eff..a17facd 100755 --- a/src/server/CMakeLists.txt +++ b/src/server/CMakeLists.txt @@ -31,6 +31,6 @@ SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -pie") add_executable(${PROJECT_NAME} ${SERVER_SRCS} ${PLUGIN_SRCS}) -target_link_libraries(${PROJECT_NAME} ${lib_pkgs_LDFLAGS} "sensord-devel") +target_link_libraries(${PROJECT_NAME} ${lib_pkgs_LDFLAGS} "sensord-shared") -install(TARGETS ${PROJECT_NAME} DESTINATION bin) \ No newline at end of file +install(TARGETS ${PROJECT_NAME} DESTINATION bin) diff --git a/src/shared/CMakeLists.txt b/src/shared/CMakeLists.txt index df5670c..cc46347 100644 --- a/src/shared/CMakeLists.txt +++ b/src/shared/CMakeLists.txt @@ -1,5 +1,5 @@ cmake_minimum_required(VERSION 2.6) -project(sensord-devel CXX) +project(sensord-shared CXX) INCLUDE(FindPkgConfig) PKG_CHECK_MODULES(shared_pkgs REQUIRED dlog libxml-2.0) @@ -43,4 +43,3 @@ install(FILES sensor_types.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/sensor/) install(FILES sensor_internal_deprecated.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/sensor/) install(FILES sensor_internal.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/sensor/) install(FILES sensor_common.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/sensor/) - -- 2.7.4 From 6b3026329d731d869f779187b6ef076c94f2f37b Mon Sep 17 00:00:00 2001 From: "kibak.yoon" Date: Fri, 18 Dec 2015 19:29:33 +0900 Subject: [PATCH 04/16] sensord: add checking code whether socket is valid or not Change-Id: I666e46a69e23e1471b92764917612ef77baf4656 Signed-off-by: kibak.yoon --- src/client/csensor_event_listener.cpp | 5 ++++- src/server/csensor_event_dispatcher.cpp | 15 ++++++++++----- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/src/client/csensor_event_listener.cpp b/src/client/csensor_event_listener.cpp index aad9c89..8c298dc 100644 --- a/src/client/csensor_event_listener.cpp +++ b/src/client/csensor_event_listener.cpp @@ -464,7 +464,10 @@ bool csensor_event_listener::create_event_channel(void) return false; } - m_event_socket.set_connection_mode(); + if (!m_event_socket.set_connection_mode()) { + ERR("Failed to set connection mode for client %s", get_client_name()); + return false; + } client_id = m_client_info.get_client_id(); diff --git a/src/server/csensor_event_dispatcher.cpp b/src/server/csensor_event_dispatcher.cpp index 605b9e7..970d776 100755 --- a/src/server/csensor_event_dispatcher.cpp +++ b/src/server/csensor_event_dispatcher.cpp @@ -222,11 +222,13 @@ void csensor_event_dispatcher::send_sensor_events(void* events, int event_cnt, b while (it_client_id != id_vec.end()) { csocket client_socket; - - client_info_manager.get_event_socket(*it_client_id, client_socket); - bool ret; + if (!client_info_manager.get_event_socket(*it_client_id, client_socket)) { + ++it_client_id; + continue; + } + if (is_hub_event) ret = (client_socket.send(sensor_hub_events + i, sizeof(sensorhub_event_t)) > 0); else @@ -240,7 +242,6 @@ void csensor_event_dispatcher::send_sensor_events(void* events, int event_cnt, b ++it_client_id; } } - } cclient_info_manager& csensor_event_dispatcher::get_client_info_manager(void) @@ -311,7 +312,11 @@ void csensor_event_dispatcher::request_last_event(int client_id, sensor_id_t sen csocket client_socket; if (client_info_manager.get_registered_events(client_id, sensor_id, event_vec)) { - client_info_manager.get_event_socket(client_id, client_socket); + if (!client_info_manager.get_event_socket(client_id, client_socket)) { + ERR("Failed to get event socket from %s", + client_info_manager.get_client_info(client_id)); + return; + } auto it_event = event_vec.begin(); while (it_event != event_vec.end()) { -- 2.7.4 From 86fb91cb73cb7f76220f029713cfd53a4b41b2ac Mon Sep 17 00:00:00 2001 From: "kibak.yoon" Date: Fri, 18 Dec 2015 19:35:38 +0900 Subject: [PATCH 05/16] sensord: initialize member variables Change-Id: Idbc272167bf9330d08d15d36e039372b8050f935 Signed-off-by: kibak.yoon --- src/server/plugins/pressure/pressure_sensor.cpp | 1 + src/server/virtual_sensor.cpp | 1 + 2 files changed, 2 insertions(+) diff --git a/src/server/plugins/pressure/pressure_sensor.cpp b/src/server/plugins/pressure/pressure_sensor.cpp index 8352f5b..533bb71 100755 --- a/src/server/plugins/pressure/pressure_sensor.cpp +++ b/src/server/plugins/pressure/pressure_sensor.cpp @@ -35,6 +35,7 @@ using std::vector; pressure_sensor::pressure_sensor() : m_sensor_hal(NULL) +, m_pressure(0.0f) , m_resolution(0.0f) { m_name = string(SENSOR_NAME); diff --git a/src/server/virtual_sensor.cpp b/src/server/virtual_sensor.cpp index bd0aa84..9a9aabb 100755 --- a/src/server/virtual_sensor.cpp +++ b/src/server/virtual_sensor.cpp @@ -22,6 +22,7 @@ virtual_sensor::virtual_sensor() +: m_hardware_fusion(false) { } -- 2.7.4 From c93d4c349250a092a24bb836e60a2c99084e23c1 Mon Sep 17 00:00:00 2001 From: "kibak.yoon" Date: Fri, 18 Dec 2015 19:39:32 +0900 Subject: [PATCH 06/16] sensord: change sprintf to snprintf Change-Id: I2675f9d10a0e01ef334c68052e488fadec658a2d Signed-off-by: kibak.yoon --- src/shared/sensor_logs.cpp | 2 +- test/src/fusion-data-collection.c | 2 +- test/src/multi-process-performance-test.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/shared/sensor_logs.cpp b/src/shared/sensor_logs.cpp index 4be987f..6af6cc5 100644 --- a/src/shared/sensor_logs.cpp +++ b/src/shared/sensor_logs.cpp @@ -143,7 +143,7 @@ bool get_proc_name(pid_t pid, char *process_name) { char buf[NAME_MAX]; - if (sprintf(buf, "%d process", pid) < 1) { + if (snprintf(buf, sizeof(buf), "%d process", pid) < 1) { return false; } diff --git a/test/src/fusion-data-collection.c b/test/src/fusion-data-collection.c index 86e9a0f..10c1091 100755 --- a/test/src/fusion-data-collection.c +++ b/test/src/fusion-data-collection.c @@ -95,7 +95,7 @@ int main(int argc, char **argv) char file_name[50]; for (i = 0; i < MAXSIZE; i++) { - sprintf(file_name, "output_%d", sensors[i]); + snprintf(file_name, sizeof(file_name), "output_%d", sensors[i]); file_output[i] = fopen(file_name, "w+"); sensor_t sensor = sensord_get_sensor(sensors[i]); handle[i] = sensord_connect(sensor); diff --git a/test/src/multi-process-performance-test.c b/test/src/multi-process-performance-test.c index c3555e2..c9b02ec 100755 --- a/test/src/multi-process-performance-test.c +++ b/test/src/multi-process-performance-test.c @@ -107,7 +107,7 @@ int main(int argc, char** argv) for (j = 0; j < MAX; j++) { char command[100]; - sprintf(command, "kill %d", pids[j]); + snprintf(command, sizeof(command), "kill %d", pids[j]); if (system(command) == -1) return -1; } -- 2.7.4 From 49826bd83f3d0a5aed484ab106c39f1a3453fddc Mon Sep 17 00:00:00 2001 From: "kibak.yoon" Date: Fri, 18 Dec 2015 19:47:07 +0900 Subject: [PATCH 07/16] sensord: fix the bug which returns true although there is an error Change-Id: I0ba655602ff782bd947fca3f10e66df4865d5c1c Signed-off-by: kibak.yoon --- src/shared/csocket.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/shared/csocket.cpp b/src/shared/csocket.cpp index dfb8ce1..9d80138 100644 --- a/src/shared/csocket.cpp +++ b/src/shared/csocket.cpp @@ -336,7 +336,7 @@ bool csocket::connect(const char *sock_path) } else if (!ret) { ERR("select timeout: %d seconds elapsed for %s", tv.tv_sec, get_client_name()); close(); - return true; + return false; } if (!FD_ISSET(m_sock_fd, &write_fds)) { -- 2.7.4 From 575e3ccc29853fefcf091812afc77e6175fe91aa Mon Sep 17 00:00:00 2001 From: "Hongkuk, Son" Date: Fri, 18 Dec 2015 20:00:44 +0900 Subject: [PATCH 08/16] sensord: initialize member variables 2 csensor_event_dispatcher/accel/temperature Signed-off-by: Hongkuk, Son Change-Id: If4214b2e19dcf04fd9fe7031c22d72c7cecef3d7 --- src/server/csensor_event_dispatcher.cpp | 1 + src/server/plugins/accel/accel_sensor.cpp | 1 + src/server/plugins/temperature/temperature_sensor.cpp | 1 + 3 files changed, 3 insertions(+) diff --git a/src/server/csensor_event_dispatcher.cpp b/src/server/csensor_event_dispatcher.cpp index 970d776..7408520 100755 --- a/src/server/csensor_event_dispatcher.cpp +++ b/src/server/csensor_event_dispatcher.cpp @@ -30,6 +30,7 @@ using std::vector; #define MAX_PENDING_CONNECTION 32 csensor_event_dispatcher::csensor_event_dispatcher() +: m_lcd_on(false) { } diff --git a/src/server/plugins/accel/accel_sensor.cpp b/src/server/plugins/accel/accel_sensor.cpp index 9652fd4..b122f50 100755 --- a/src/server/plugins/accel/accel_sensor.cpp +++ b/src/server/plugins/accel/accel_sensor.cpp @@ -39,6 +39,7 @@ using std::vector; accel_sensor::accel_sensor() : m_sensor_hal(NULL) +, m_raw_data_unit(0.0f) , m_interval(POLL_1HZ_MS) { m_name = string(SENSOR_NAME); diff --git a/src/server/plugins/temperature/temperature_sensor.cpp b/src/server/plugins/temperature/temperature_sensor.cpp index 533dcca..5b18a5b 100755 --- a/src/server/plugins/temperature/temperature_sensor.cpp +++ b/src/server/plugins/temperature/temperature_sensor.cpp @@ -29,6 +29,7 @@ using std::vector; temperature_sensor::temperature_sensor() : m_sensor_hal(NULL) +, m_temperature(0.0f) , m_resolution(0.0f) { m_name = string(SENSOR_NAME); -- 2.7.4 From 5afcaf8ad0b140a6169486a29390a592c853c265 Mon Sep 17 00:00:00 2001 From: Mu-Woong Lee Date: Mon, 21 Dec 2015 10:41:19 +0900 Subject: [PATCH 09/16] Fix for build errors of packages that are using deprecated sensor api Change-Id: I16348de21848f571b77d24e15420e79b04cd7593 Signed-off-by: Mu-Woong Lee (cherry picked from commit 104ea8470b8dba2b6ee4990efcb10b6923ab540b) --- src/shared/sensor_internal_deprecated.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/shared/sensor_internal_deprecated.h b/src/shared/sensor_internal_deprecated.h index 38665f7..cdf3084 100755 --- a/src/shared/sensor_internal_deprecated.h +++ b/src/shared/sensor_internal_deprecated.h @@ -39,6 +39,8 @@ extern "C" /*header for each sensor type*/ #include +#include + #define MAX_KEY_LEN 30 typedef struct { -- 2.7.4 From 9e0d4de2aa01f4e1f015c8a1df2797523e575c70 Mon Sep 17 00:00:00 2001 From: "kibak.yoon" Date: Mon, 21 Dec 2015 12:01:55 +0900 Subject: [PATCH 10/16] sensord: close socket fd if accept() is failed Change-Id: I93093632a3f9bcbcbcf4007564bb6c7d9512bd7a Signed-off-by: kibak.yoon --- src/shared/csocket.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/shared/csocket.cpp b/src/shared/csocket.cpp index 9d80138..5fbb2c1 100644 --- a/src/shared/csocket.cpp +++ b/src/shared/csocket.cpp @@ -154,8 +154,10 @@ bool csocket::accept(csocket& client_socket) const do { client_socket.m_sock_fd = ::accept(m_sock_fd, (sockaddr *)&m_addr, (socklen_t *)&addr_length); - if (!client_socket.is_valid()) + if (!client_socket.is_valid()) { err = errno; + ::close(client_socket.m_sock_fd); + } } while (err == EINTR); if (!client_socket.is_valid()) { -- 2.7.4 From c9a346716ee3ec1a8c0345338a9dd72757953f90 Mon Sep 17 00:00:00 2001 From: "Hongkuk, Son" Date: Tue, 22 Dec 2015 15:07:23 +0900 Subject: [PATCH 11/16] sensord: choose "Default" device when no matching device in virtual_sensors.xml -add "Default" device in virtual_sensors.xml file -when device id does not match with devices in virtual_sensors.xml, choose "Default" device Signed-off-by: Hongkuk, Son Change-Id: I37526479de706eccda36127e6d93ee66a1b32d55 --- src/server/cvirtual_sensor_config.cpp | 13 +++++++++++-- virtual_sensors.xml | 9 +++++++++ 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/src/server/cvirtual_sensor_config.cpp b/src/server/cvirtual_sensor_config.cpp index 25538ce..c963d48 100755 --- a/src/server/cvirtual_sensor_config.cpp +++ b/src/server/cvirtual_sensor_config.cpp @@ -35,6 +35,7 @@ using std::stringstream; #define DEFAULT_ATTR1 "value1" #define DEFAULT_ATTR2 "value2" #define DEFAULT_ATTR3 "value3" +#define DEFAULT_DEVICE "Default" cvirtual_sensor_config::cvirtual_sensor_config() { @@ -148,7 +149,6 @@ bool cvirtual_sensor_config::load_config(const string& config_path) attr_ptr = attr_ptr->next; } - element_node_ptr = element_node_ptr->next; } @@ -169,7 +169,16 @@ bool cvirtual_sensor_config::get(const string& sensor_type, const string& elemen if (it_device_list == m_virtual_sensor_config.end()) { ERR("There is no <%s> device\n",m_device_id.c_str()); - return false; + + m_device_id = DEFAULT_DEVICE; + it_device_list = m_virtual_sensor_config.find(m_device_id); + + if (it_device_list == m_virtual_sensor_config.end()) { + ERR("There is no Default device\n"); + return false; + } + + INFO("m_device_id is set to Default\n"); } auto it_virtual_sensor_list = it_device_list->second.find(sensor_type); diff --git a/virtual_sensors.xml b/virtual_sensors.xml index 68282e8..c0c08f5 100755 --- a/virtual_sensors.xml +++ b/virtual_sensors.xml @@ -1,5 +1,14 @@ + + + + + + + + + -- 2.7.4 From 4846fc6c5071e734e99de9ec4ae0cb0f5d4f91d2 Mon Sep 17 00:00:00 2001 From: "Hongkuk, Son" Date: Tue, 22 Dec 2015 15:34:55 +0900 Subject: [PATCH 12/16] sensord: enable auto_rotation sensor Signed-off-by: Hongkuk, Son Change-Id: Ibce2bc591af30465c6511535a1aa1f198ebf11a9 --- packaging/sensord.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packaging/sensord.spec b/packaging/sensord.spec index 4b56aa6..d7516ed 100644 --- a/packaging/sensord.spec +++ b/packaging/sensord.spec @@ -21,7 +21,7 @@ BuildRequires: pkgconfig(cynara-client) BuildRequires: pkgconfig(cynara-session) Requires: libsensord = %{version}-%{release} -%define auto_rotation_state OFF +%define auto_rotation_state ON %define orientation_state OFF %define gravity_state OFF %define linear_accel_state OFF -- 2.7.4 From 7d52f4c8878a16c36bf4c25b22bf796add8b93da Mon Sep 17 00:00:00 2001 From: "kibak.yoon" Date: Tue, 22 Dec 2015 20:53:16 +0900 Subject: [PATCH 13/16] sensord: version up to 2.0.1 Change-Id: I4d31eb4511eebc34d77bda5a2e185e8215ac6e81 Signed-off-by: kibak.yoon --- packaging/sensord.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packaging/sensord.spec b/packaging/sensord.spec index d7516ed..cd22230 100644 --- a/packaging/sensord.spec +++ b/packaging/sensord.spec @@ -1,6 +1,6 @@ Name: sensord Summary: Sensor daemon -Version: 2.0.0 +Version: 2.0.1 Release: 0 Group: System/Sensor Framework License: Apache-2.0 -- 2.7.4 From 11bbc9d950316623ed4b108e9ba8fbea0f5dafa5 Mon Sep 17 00:00:00 2001 From: "Hongkuk, Son" Date: Wed, 30 Dec 2015 14:55:59 +0900 Subject: [PATCH 14/16] sensord: fix test code's sensord_() API's return type check fix to check return type as 'bool' Signed-off-by: Hongkuk, Son Change-Id: I39c4edde0be9569a187d35fe4a0310a50f705479 --- test/src/api-test.c | 11 +++-------- test/src/check-sensor.c | 15 +++++++++------ test/src/fusion-data-collection.c | 6 +++--- 3 files changed, 15 insertions(+), 17 deletions(-) diff --git a/test/src/api-test.c b/test/src/api-test.c index aa065f9..bdeec6a 100755 --- a/test/src/api-test.c +++ b/test/src/api-test.c @@ -38,7 +38,7 @@ void callback(sensor_t sensor, unsigned int event_type, sensor_data_t *data, voi bool check_sensor_api(unsigned int event_type, int cond_value) { - int result, handle; + int handle; mainloop = g_main_loop_new(NULL, FALSE); @@ -126,9 +126,8 @@ bool check_sensor_api(unsigned int event_type, int cond_value) return false; } - result = sensord_register_event(handle, event_type, cond_value, 0, callback, NULL); - - if (result < 0) { + result_boolean = sensord_register_event(handle, event_type, cond_value, 0, callback, NULL); + if (!result_boolean) { free(output2); free(output_list); fprintf(fp, "Sensor - %d, event - %d, failed at sensord_register_event\n", sensor_type, event_type); @@ -136,7 +135,6 @@ bool check_sensor_api(unsigned int event_type, int cond_value) } result_boolean = sensord_start(handle, 1); - if (!result_boolean) { sensord_unregister_event(handle, event_type); sensord_disconnect(handle); @@ -177,7 +175,6 @@ bool check_sensor_api(unsigned int event_type, int cond_value) } result_boolean = sensord_unregister_event(handle, event_type); - if (!result_boolean) { free(output2); free(output_list); @@ -186,7 +183,6 @@ bool check_sensor_api(unsigned int event_type, int cond_value) } result_boolean = sensord_stop(handle); - if (!result_boolean) { free(output2); free(output_list); @@ -195,7 +191,6 @@ bool check_sensor_api(unsigned int event_type, int cond_value) } result_boolean = sensord_disconnect(handle); - if (!result_boolean) { free(output2); free(output_list); diff --git a/test/src/check-sensor.c b/test/src/check-sensor.c index 160045e..0475880 100755 --- a/test/src/check-sensor.c +++ b/test/src/check-sensor.c @@ -243,7 +243,8 @@ void *check_sensor(void *arg) struct pthread_arguments * argu = (struct pthread_arguments *) arg; GMainLoop *mainloop; - int handle, result, start_handle, stop_handle; + int handle; + bool result, start_handle, stop_handle; mainloop = g_main_loop_new(NULL, FALSE); @@ -252,14 +253,14 @@ void *check_sensor(void *arg) result = sensord_register_event(handle, argu->event, argu->interval, 0, callback, NULL); - if (result < 0) { + if (!result) { printf("Can't register sensor\n"); return NULL; } start_handle = sensord_start(handle, 0); - if (start_handle < 0) { + if (!start_handle) { printf("Error\n\n\n\n"); sensord_unregister_event(handle, argu->event); sensord_disconnect(handle); @@ -271,14 +272,14 @@ void *check_sensor(void *arg) result = sensord_unregister_event(handle, argu->event); - if (result < 0) { + if (!result) { printf("Error\n\n"); return NULL; } stop_handle = sensord_stop(handle); - if (stop_handle < 0) { + if (!stop_handle) { printf("Error\n\n"); return NULL; } @@ -289,7 +290,9 @@ void *check_sensor(void *arg) int polling_sensor(sensor_type_t sensor_type, unsigned int event) { - int result, handle; + bool result; + int handle; + printf("Polling based\n"); sensor_t sensor; sensor = sensord_get_sensor(sensor_type); diff --git a/test/src/fusion-data-collection.c b/test/src/fusion-data-collection.c index 10c1091..6abd6f5 100755 --- a/test/src/fusion-data-collection.c +++ b/test/src/fusion-data-collection.c @@ -81,7 +81,7 @@ int main(int argc, char **argv) int i; int handle[MAXSIZE]; - int result[MAXSIZE], start_handle[MAXSIZE]; + bool result[MAXSIZE], start_handle[MAXSIZE]; unsigned int event[MAXSIZE]; int sensors[MAXSIZE]; @@ -102,13 +102,13 @@ int main(int argc, char **argv) event[i] = (sensors[i] << 16) | 0x0001; result[i] = sensord_register_event(handle[i], event[i], interval, 0, callback, NULL); - if (result[i] < 0) { + if (!result[i]) { printf("error: unable to register sensor\n"); return -1; } start_handle[i] = sensord_start(handle[i], 1); - if (start_handle[i] < 0) { + if (!start_handle[i]) { printf("error: unable to start handle\n"); sensord_unregister_event(handle[i], event[i]); sensord_disconnect(handle[i]); -- 2.7.4 From 6b2ab778c21e200d3b6a543b3ce7ed4a6dc5a7af Mon Sep 17 00:00:00 2001 From: "Hongkuk, Son" Date: Tue, 19 Jan 2016 18:25:23 +0900 Subject: [PATCH 15/16] sensord: fix default interval from 10ms to 100ms when user interval 0ms When user interval is 0, then fix it to default interval 100ms. Additionally, user can set small interval values(1~9ms) now. Signed-off-by: Hongkuk, Son Change-Id: I9f0e240b5954859a151b985e29f20b767ef50f52 --- src/client/client.cpp | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/src/client/client.cpp b/src/client/client.cpp index f2b3db0..035d907 100644 --- a/src/client/client.cpp +++ b/src/client/client.cpp @@ -36,7 +36,7 @@ using std::vector; #define API __attribute__((visibility("default"))) #endif -#define MIN_INTERVAL 10 +#define DEFAULT_INTERVAL POLL_10HZ_MS static const int OP_SUCCESS = 0; static const int OP_ERROR = -1; @@ -768,8 +768,8 @@ static bool register_event(int handle, unsigned int event_type, unsigned int int return false; } - if (interval < MIN_INTERVAL) - interval = MIN_INTERVAL; + if (interval == 0) + interval = DEFAULT_INTERVAL; INFO("%s registers event %s[0x%x] for sensor %s[%d] with interval: %d, latency: %d, cb: 0x%x, user_data: 0x%x", get_client_name(), get_event_name(event_type), event_type, get_sensor_name(sensor_id), @@ -973,9 +973,6 @@ static bool change_event_batch(int handle, unsigned int event_type, unsigned int return false; } - if (interval == 0) - interval = 1; - INFO("%s changes batch of event %s[0x%x] for %s[%d] to (%d, %d)", get_client_name(), get_event_name(event_type), event_type, get_sensor_name(sensor_id), handle, interval, latency); @@ -983,8 +980,8 @@ static bool change_event_batch(int handle, unsigned int event_type, unsigned int client_info.get_event_info(handle, event_type, prev_interval, prev_latency, prev_cb_type, prev_cb, prev_user_data); - if (interval < MIN_INTERVAL) - interval = MIN_INTERVAL; + if (interval == 0) + interval = DEFAULT_INTERVAL; if (!client_info.set_event_batch(handle, event_type, interval, latency)) return false; -- 2.7.4 From fb425e805e8d661b084bbb2adbcec1ad6a7ee70b Mon Sep 17 00:00:00 2001 From: "kibak.yoon" Date: Wed, 20 Jan 2016 15:58:18 +0900 Subject: [PATCH 16/16] sensord: reordering the sensor internal type for managing them easily * Internal sensor types must be matched with sensor capi types Change-Id: Ib7ec34f67a72476e4492de57860627c08ecf7609 Signed-off-by: kibak.yoon --- src/shared/sensor_types.h | 63 +++++++++++++++++++++++++++++------------------ 1 file changed, 39 insertions(+), 24 deletions(-) diff --git a/src/shared/sensor_types.h b/src/shared/sensor_types.h index 6ac6aef..93fcfa1 100644 --- a/src/shared/sensor_types.h +++ b/src/shared/sensor_types.h @@ -8,42 +8,57 @@ extern "C" typedef enum { + UNKNOWN_SENSOR = -2, ALL_SENSOR = -1, - UNKNOWN_SENSOR = 0, ACCELEROMETER_SENSOR, - GEOMAGNETIC_SENSOR, - LIGHT_SENSOR, - PROXIMITY_SENSOR, - THERMOMETER_SENSOR, - GYROSCOPE_SENSOR, - PRESSURE_SENSOR, - MOTION_SENSOR, - FUSION_SENSOR, - PEDOMETER_SENSOR, - CONTEXT_SENSOR, - FLAT_SENSOR, - BIO_SENSOR, - BIO_HRM_SENSOR, - AUTO_ROTATION_SENSOR, GRAVITY_SENSOR, LINEAR_ACCEL_SENSOR, + GEOMAGNETIC_SENSOR, ROTATION_VECTOR_SENSOR, - GEOMAGNETIC_RV_SENSOR, - GAMING_RV_SENSOR, ORIENTATION_SENSOR, - TILT_SENSOR, - PIR_SENSOR, - PIR_LONG_SENSOR, + GYROSCOPE_SENSOR, + LIGHT_SENSOR, + PROXIMITY_SENSOR, + PRESSURE_SENSOR, + ULTRAVIOLET_SENSOR, TEMPERATURE_SENSOR, HUMIDITY_SENSOR, - ULTRAVIOLET_SENSOR, - DUST_SENSOR, + BIO_HRM_SENSOR, BIO_LED_GREEN_SENSOR, BIO_LED_IR_SENSOR, BIO_LED_RED_SENSOR, - RV_RAW_SENSOR, GYROSCOPE_UNCAL_SENSOR, - UNCAL_GEOMAGNETIC_SENSOR + UNCAL_GEOMAGNETIC_SENSOR, + GAMING_RV_SENSOR, + GEOMAGNETIC_RV_SENSOR, + + ACTIVITY_STATIONARY_SENSOR = 0x100, + ACTIVITY_WALK_SENSOR, + ACTIVITY_RUN_SENSOR, + ACTIVITY_IN_VEHICLE_SENSOR, + ACTIVITY_ON_BICYCLE_SENSOR, + + GESTURE_MOVEMENT_SENSOR = 0x200, + GESTURE_WRIST_UP_SENSOR, + GESTURE_WRIST_DOWN_SENSOR, + + HUMAN_PEDOMETER_SENSOR = 0x300, + HUMAN_SLEEP_MONITOR_SENSOR, + + FUSION_SENSOR = 0x900, + AUTO_ROTATION_SENSOR, + + CONTEXT_SENSOR = 0x1000, + MOTION_SENSOR, + PIR_SENSOR, + PIR_LONG_SENSOR, + DUST_SENSOR, + THERMOMETER_SENSOR, + PEDOMETER_SENSOR, + FLAT_SENSOR, + BIO_SENSOR, + TILT_SENSOR, + RV_RAW_SENSOR, } sensor_type_t; // Sensor Event Types -- 2.7.4