list<Device *>::iterator list_iter;
Device *device;
SensorDevice *sensor;
+ long read_int_sec;
+ plp::Data *data;
+ read_int_sec = DeviceConfig::get_read_interval_seconds();
+ if (read_int_sec < 0)
+ read_int_sec = 600;
_dev_lst = (list<Device *> *)thread_args_pointer;
while(1) {
for (list_iter = _dev_lst->begin(); list_iter != _dev_lst->end(); list_iter++) {
device = (Device *)*list_iter;
sensor = dynamic_cast<SensorDevice *>(device);
if (sensor != NULL) {
- sensor->get_data();
- sleep(60);
+ data = sensor->get_data();
+ if (data != NULL)
+ delete(data);
}
}
+ sleep(read_int_sec);
}
pthread_exit(NULL);
}
//DeviceConfig::set_base_dir_name(storage_dir_param);
//_dev_lst = Factory::get_device_list();
_dev_lst = dev_lst_param;
- log_info("device count: %lu\n", _dev_lst.size());
+ /* In some toolchains the size is not unsigned int instead of long
+ unsigned int, and that can cause warnings/errors without typecasting
+ */
+ log_info("device count: %lu\n", (long unsigned int)_dev_lst.size());
_lstnr_thrd = 0;
pthread_create(&_lstnr_thrd,
NULL,
SensorDevice *sensor;
int indx;
ostringstream key;
+ string data_str;
indx = 0;
((BusMessage *)ret_val)->add_int_parameter(RSP__DEVICE_LIST__DEVICE_COUNT, _dev_lst.size());
key << RSP__DEVICE_LIST__DATA << indx;
data = sensor->get_data();
if (data != NULL) {
- log_debug("returning data: %s\n", data->to_string().c_str());
- ((BusMessage *)ret_val)->add_string_parameter(key.str(), data->to_string());
+ data_str = data->to_string();
+ log_debug("returning data: %s\n", data_str.c_str());
+ ((BusMessage *)ret_val)->add_string_parameter(key.str(), data_str);
+ delete(data);
}
}
indx++;
if (data != NULL) {
cnt = data->get_value_count();
((BusMessage *)ret_val)->add_int_parameter(RSP__GET_LATEST_DATA__VALUE_COUNT, cnt);
- ((BusMessage *)ret_val)->add_string_parameter(RSP__GET_LATEST_DATA__DATE, data->get_date().to_string());
- add_data_values_to_bus_message(ret_val, data, RSP__GET_LATEST_DATA__VALUE);
+ ((BusMessage *)ret_val)->add_string_parameter(RSP__GET_LATEST_DATA__DATE,
+ data->get_date().to_string());
+ add_data_values_to_bus_message(ret_val,
+ data, RSP__GET_LATEST_DATA__VALUE);
((BusMessage *)ret_val)->printout();
dr = ((DataReader *)reader)->get_daily_summary(MIN);
if (dr != NULL) {
if (dr->get_count() > 0) {
data = dr->get_first()->clone();;
- add_data_values_to_bus_message(ret_val, data, RSP__GET_LATEST_DATA__MIN_VALUE);
+ add_data_values_to_bus_message(ret_val,
+ data,
+ RSP__GET_LATEST_DATA__MIN_VALUE);
}
delete(dr);
}
if (dr != NULL) {
if (dr->get_count() > 0) {
data = dr->get_first()->clone();
- add_data_values_to_bus_message(ret_val, data, RSP__GET_LATEST_DATA__MAX_VALUE);
+ add_data_values_to_bus_message(ret_val,
+ data,
+ RSP__GET_LATEST_DATA__MAX_VALUE);
}
delete(dr);
}