#include "W1Util.hh"
#include "W1DataList.hh"
#include "W1Store.hh"
+#include "DeviceConfig.hh"
#include "plp/log.h"
W1DataList::W1DataList(string device_id_param) {
string base_dir;
- device_id = device_id_param;
- base_dir = W1Store::get_base_dir_name();
- device_dir = W1Util::concat_paths(base_dir, device_id);
- device_ch_dir = W1Util::concat_paths(base_dir, "cache");
- device_ch_dir = W1Util::concat_paths(device_ch_dir, device_id);
+ device_config = new DeviceConfig(device_id_param);
+ summary_calc_type = device_config->get_summary_calculation_type();
+ device_id = device_id_param;
+ base_dir = DeviceConfig::get_base_dir_name();
+ device_dir = W1Util::concat_paths(base_dir, device_id);
+ device_ch_dir = W1Util::concat_paths(base_dir, "cache");
+ device_ch_dir = W1Util::concat_paths(device_ch_dir, device_id);
}
W1DataList::~W1DataList() {
- //delete(device_dir);
+ delete(device_config);
}
Data *W1DataList::find_oldest_data(vector<string> year_vector) {
- int ii;
+ unsigned int ii;
string year_dir;
string month_dir;
vector<string> month_vector;
DataRange *W1DataList::get_data_range() {
DataRange *ret_val;
- DIR *data_dir;
- struct dirent *year_dirent;
vector<string> year_list;
Data *first_data;
Data *newest_data;
}
Data *W1DataList::get_daily_summary(Date *date) {
- Data *data;
+ Data *ret_val;
W1Store *store;
store = new W1Store(device_id, date);
store->load();
- data = store->get_mean();
- data->printout();
+ switch(summary_calc_type) {
+ case SUM:
+ ret_val = store->get_sum();
+ break;
+ case DELTA:
+ ret_val = store->get_delta();
+ break;
+ case MEAN:
+ default:
+ ret_val = store->get_mean();
+ break;
+ case MAX:
+ ret_val = store->get_max();
+ break;
+ case MIN:
+ ret_val = store->get_min();
+ break;
+ }
+ ret_val->printout();
delete(store);
- return data;
+ return ret_val;
}
DataRange *W1DataList::get_daily_summary(Date *start_date,