X-Git-Url: http://pilppa.org/gitweb/?a=blobdiff_plain;f=src%2FDataReader.cc;h=00f861a61dc116907712e6e8bb10ac7c52ca4492;hb=2cdc3f40842afe29f3ea07f11e52b1eb824dabd5;hp=1c7e9a36121bc85403f80d5552c4c74765c96fe7;hpb=063ec715601bf9662797725cb39732bea0572d26;p=libplp.git diff --git a/src/DataReader.cc b/src/DataReader.cc index 1c7e9a3..00f861a 100644 --- a/src/DataReader.cc +++ b/src/DataReader.cc @@ -34,6 +34,7 @@ bool string_to_number(NumberDataType& result, DataReader::DataReader(string device_id_param) { string base_dir; + log_debug("device_id: %s\n", device_id_param.c_str()); device_config = NULL; device_id = device_id_param; base_dir = DeviceConfig::get_base_dir_name(); @@ -74,7 +75,9 @@ Data *DataReader::get_latest_data() { ret_val = NULL; y_list = FileUtil::get_subdirectories(device_dir); - ret_val = find_latest_data(y_list); + if (y_list.size() > 0) { + ret_val = find_latest_data(y_list); + } return ret_val; } @@ -282,6 +285,34 @@ DataRange *DataReader::get_monthly_summary(Date *start_date, return ret_val; } +/* + * Get Daily summary from the latest date + */ +DataRange *DataReader::get_daily_summary() { + if (device_config == NULL) { + device_config = DeviceConfig::get_device_config(device_id); + summary_calc_type = device_config->get_summary_calculation_type(); + } + return get_daily_summary(summary_calc_type); +} + +/* + * Get Daily summary specified by the calc_type from the latest date. + */ +DataRange *DataReader::get_daily_summary(EnumSummaryCalculationType calc_type_param) { + Data *data; + Date date; + DataRange *ret_val; + + ret_val = NULL; + data = get_latest_data(); + if (data != NULL) { + date = data->get_date(); + ret_val = get_daily_summary(&date, calc_type_param); + } + return ret_val; +} + DataRange *DataReader::get_daily_summary(Date *date, EnumSummaryCalculationType calc_type_param) { return get_summary(date, calc_type_param, PERIOD_DAILY); @@ -377,8 +408,6 @@ DataRange *DataReader::get_data(Date *start_date, EnumSummaryPeriod period; ret_val = NULL; - start_date->printout(); - end_date->printout(); period = get_period_type(start_date, end_date); switch(period) { case PERIOD_YEARLY: @@ -413,14 +442,19 @@ string DataReader::get_device_id() { } /** - * Read device type from the device specific config file + * Read device type from the device specific config file. + * + * @rerurn string representing device type. + * In the case of error, an empty string is returned. */ string DataReader::get_device_type() { string ret_val; if (device_config == NULL) { device_config = DeviceConfig::get_device_config(device_id); - ret_val = device_config->get_cfg_value(DEVICE_CONFIG_VALUE_KEY__TYPE); + } + if (device_config != NULL) { + ret_val = device_config->get_config_value(DEVICE_CONFIG_VALUE_KEY__TYPE); } return ret_val; }