projects
/
platform
/
core
/
system
/
sensord.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Coverity issues Fix
[platform/core/system/sensord.git]
/
src
/
client
/
sensor_provider.cpp
diff --git
a/src/client/sensor_provider.cpp
b/src/client/sensor_provider.cpp
old mode 100644
(file)
new mode 100755
(executable)
index
94036e0
..
c8f0ef6
--- a/
src/client/sensor_provider.cpp
+++ b/
src/client/sensor_provider.cpp
@@
-26,9
+26,13
@@
#include <sensor_utils.h>
#include <ipc_client.h>
#include <command_types.h>
#include <sensor_utils.h>
#include <ipc_client.h>
#include <command_types.h>
+#include <cfloat>
+#include <cmath>
#include "sensor_provider_channel_handler.h"
#include "sensor_provider_channel_handler.h"
+#define DEFAULT_RESOLUTION 0.1
+
using namespace sensor;
sensor_provider::sensor_provider(const char *uri)
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_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);
/* 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);
m_channel->send_sync(&msg);
+ delete []bytes;
+
return OP_SUCCESS;
}
return OP_SUCCESS;
}
@@
-147,16
+153,7
@@
bool sensor_provider::disconnect(void)
retv_if(!is_connected(), false);
m_connected.store(false);
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();
m_channel->disconnect();
-
delete m_channel;
m_channel = NULL;
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)
{
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);
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);
}
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);
}
{
m_handler->set_interval_cb(cb, user_data);
}