#include <time.h>
#include <plp/log.h>
-#include "DeviceConfig.hh"
+#include <plp/DeviceConfig.hh>
+#include <plp/StoreDay.hh>
+
#include "Factory.hh"
-#include "StoreDay.hh"
#include "W1Device.hh"
using namespace std;
using namespace w1;
using namespace plp;
-W1Device::W1Device(string device_type_param,
- string device_id_param,
- dirent *direntry_param) {
+W1Device::W1Device(string device_id_param,
+ string device_type_param,
+ dirent *direntry_param) : SensorDevice(device_id_param, device_type_param) {
string rootdir;
string device_dir;
string temp_str;
else {
lifecycle_status = LIFECYCLE_STATUS__UNAVAILABLE;
}
- name = "";
+ reader = new DataReader(id);
+ name = "";
}
W1Device::~W1Device() {
save_and_clean_cache();
-}
-
-string W1Device::get_id() {
- return id;
+ delete(reader);
}
string W1Device::get_name() {
DeviceConfig *cfg;
if (name.empty() == true) {
- cfg = Factory::get_device_config(id);
+ cfg = DeviceConfig::get_device_config(id);
if (cfg != NULL) {
name = cfg->get_cfg_value(DEVICE_CONFIG_VALUE_KEY__NAME);
delete(cfg);
void W1Device::set_name(string name_param) {
DeviceConfig *cfg;
- name = name_param;
- cfg = Factory::get_device_config(id);
- if (cfg != NULL) {
- cfg->set_cfg_value(DEVICE_CONFIG_VALUE_KEY__NAME, name_param);
- delete(cfg);
+ if (name.compare(name_param) != 0) {
+ name = name_param;
+ cfg = DeviceConfig::get_device_config(id);
+ if (cfg != NULL) {
+ cfg->set_cfg_value(DEVICE_CONFIG_VALUE_KEY__NAME, name_param);
+ delete(cfg);
+ }
}
}
cout << text << endl;
}
else {
- type = get_device_type();
+ type = get_type();
name = get_name();
- log_error("Could not data for %s device: %s\n", type.c_str(), name.c_str());
+ log_error("Could not read data for %s device: %s\n", type.c_str(), name.c_str());
}
}
cache(ret_val);
delete(vect);
}
+ else {
+ // read old data already saved
+ ret_val = reader->get_latest_data();
+ }
return ret_val;
}
}
DataReader *W1Device::get_device_data() {
- string id;
-
- id = get_id();
- return new DataReader(id);
-}
-
-EnumDeviceLifeCycleStatus W1Device::get_lifecycle_state() {
- return lifecycle_status;
-}
-
-string W1Device::get_device_type() {
- return type;
+ return reader;
}