X-Git-Url: http://pilppa.org/gitweb/?a=blobdiff_plain;f=src%2FW1DataList.cc;h=844db8e34a435359b76e230e0f9a9f62befcf93b;hb=a7a92143366369dfba0d87570a589728b786574d;hp=5f85db07b6420b9ae18c4810ca02099bef9c3d92;hpb=d7ead1c059ca51e1d71e0f3928f41733d4c7f29c;p=lib1wire.git diff --git a/src/W1DataList.cc b/src/W1DataList.cc index 5f85db0..844db8e 100644 --- a/src/W1DataList.cc +++ b/src/W1DataList.cc @@ -22,15 +22,17 @@ using namespace plp; 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 = 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); } W1DataList::~W1DataList() { - //delete(device_dir); + delete(device_config); } Data *W1DataList::find_oldest_data(vector year_vector) { @@ -168,16 +170,33 @@ long int get_interval_type(Date *start_date, } 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,