X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=src%2Fclient%2Fsensor_provider.cpp;h=c8f0ef6c3e8d9004b8e7c71203a5cbba7d42b165;hb=refs%2Ftags%2Faccepted%2Ftizen%2Funified%2F20190828.011028;hp=94036e02921866d5d75482e43b1d4662668d9490;hpb=bdf894e8ea0812fc48021d4212238b1ab112c749;p=platform%2Fcore%2Fsystem%2Fsensord.git diff --git a/src/client/sensor_provider.cpp b/src/client/sensor_provider.cpp old mode 100644 new mode 100755 index 94036e0..c8f0ef6 --- a/src/client/sensor_provider.cpp +++ b/src/client/sensor_provider.cpp @@ -26,9 +26,13 @@ #include #include #include +#include +#include #include "sensor_provider_channel_handler.h" +#define DEFAULT_RESOLUTION 0.1 + using namespace sensor; sensor_provider::sensor_provider(const char *uri) @@ -57,9 +61,9 @@ bool sensor_provider::init(const char *uri) } m_sensor.set_uri(uri); - m_sensor.set_min_range(0); - m_sensor.set_max_range(1); - m_sensor.set_resolution(1); + m_sensor.set_min_range(-FLT_MAX); + m_sensor.set_max_range(FLT_MAX); + m_sensor.set_resolution(DEFAULT_RESOLUTION); /* TODO: temporary walkaround */ const char *priv = sensor::utils::get_privilege(uri); m_sensor.set_privilege(priv); @@ -119,6 +123,8 @@ int sensor_provider::send_sensor_info(sensor_info *info) m_channel->send_sync(&msg); + delete []bytes; + return OP_SUCCESS; } @@ -147,16 +153,7 @@ bool sensor_provider::disconnect(void) retv_if(!is_connected(), false); m_connected.store(false); - ipc::message msg(OP_SUCCESS); - ipc::message reply; - - msg.set_type(CMD_PROVIDER_DISCONNECT); - - m_channel->send_sync(&msg); - m_channel->read_sync(reply); - m_channel->disconnect(); - delete m_channel; m_channel = NULL; @@ -175,6 +172,14 @@ void sensor_provider::restore(void) int sensor_provider::publish(sensor_data_t *data, int len) { + for (int i = 0; i < data->value_count; ++i) { + if (!(data->values[i] >= m_sensor.get_min_range() && + data->values[i] <= m_sensor.get_max_range())) { + _E("Out of range"); + return OP_ERROR; + } + } + ipc::message msg; msg.set_type(CMD_PROVIDER_PUBLISH); msg.enclose((const char *)data, len); @@ -199,7 +204,7 @@ void sensor_provider::set_stop_cb(sensord_provider_stop_cb cb, void *user_data) m_handler->set_stop_cb(cb, user_data); } -void sensor_provider::set_interval_cb(sensord_provider_set_interval_cb cb, void *user_data) +void sensor_provider::set_interval_cb(sensord_provider_interval_changed_cb cb, void *user_data) { m_handler->set_interval_cb(cb, user_data); }