#include <time.h>
#include <plp/log.h>
-#include "W1Store.hh"
+#include "DeviceConfig.hh"
+#include "Factory.hh"
+#include "StoreDay.hh"
#include "W1Device.hh"
-using namespace w1;
using namespace std;
+using namespace w1;
+using namespace plp;
W1Device::W1Device(int family_code_param,
string device_id_param,
log_debug("w1 data file: %s\n", slave_file.c_str());
family_code = family_code_param;
id = device_id_param;
- name = device_id_param;
+ name = "";
}
W1Device::~W1Device() {
+ list<Data *>::iterator iter;
+ Data *data;
+
+ for(iter = memory_cache.begin(); iter != memory_cache.end(); iter++) {
+ data = (Data *)*iter;
+ delete(data);
+ }
+ memory_cache.clear();
}
int W1Device::get_w1_family_code() {
}
string W1Device::get_name() {
+ DeviceConfig *cfg;
+
+ if (name.empty() == true) {
+ cfg = Factory::get_device_config(id);
+ if (cfg != NULL) {
+ name = cfg->get_cfg_value("name");
+ delete(cfg);
+ }
+ }
return name;
}
void W1Device::set_name(string name_param) {
- name = name_param;
-}
-
-string W1Device::get_time() {
- time_t wtime;
- struct tm *ltime;
- char buffer[80];
- string ret_val;
+ DeviceConfig *cfg;
- time(&wtime);
- ltime = localtime(&wtime);
- strftime(buffer, 80, "%Y-%m-%d %H:%M:%S", ltime);
- ret_val = buffer;
- return ret_val;
+ name = name_param;
+ cfg = Factory::get_device_config(id);
+ if (cfg != NULL) {
+ cfg->set_cfg_value("name", name_param);
+ delete(cfg);
+ }
}
void W1Device::printout() {
return ret_val;
}
-/*
-Data *W1Device::get_formatted_data(Data *data) {
- Data *ret_val;
-
- ret_val = get_time() + "|" + raw_data + " " + get_unit();
- add_to_save_fifo(ret_val);
- return ret_val;
-}
-*/
-
void W1Device::collect_data(Data *data) {
// TODO: add mutex for memory_cache
memory_cache.push_back(data);
void W1Device::save_data() {
list<Data *>::iterator iter;
Data *data;
+ int dec_precision;
- W1Store::save(id, &memory_cache);
+ dec_precision = get_data_decimal_precision();
+ StoreDay::save(id, &memory_cache, dec_precision);
for(iter = memory_cache.begin(); iter != memory_cache.end(); iter++) {
data = (Data *)*iter;
delete(data);