+ delete(first_data);
+ }
+ return ret_val;
+}
+/*
+long int get_date_as_seconds(struct tm *date) {
+ long int ret_val;
+
+ ret_val = date->tm
+ date->tm_hour * 3600 +
+ date->tm_min * 60 +
+ date->tm_sec;
+}
+*/
+
+long int get_interval_type(Date *start_date,
+ Date *end_date) {
+ int diff;
+ int ret_val;
+
+ ret_val = 0;
+ diff = end_date->year - start_date->year;
+ if (diff != 0) {
+ ret_val = 0;
+ }
+ else {
+ diff = end_date->month - start_date->month;
+ if (diff != 0) {
+ ret_val = 1;
+ }
+ else {
+ diff = end_date->day - start_date->day;
+ if (diff != 0) {
+ ret_val = 2;
+ }
+ else {
+ diff = end_date->hour - start_date->hour;
+ if (diff != 0) {
+ ret_val = 3;
+ }
+ else {
+ diff = end_date->min - start_date->min;
+ if (diff != 0) {
+ ret_val = 4;
+ }
+ else {
+ ret_val = 5;
+ }
+ }
+ }
+ }
+ }
+ return ret_val;
+}
+
+string W1DataList::get_day_data(Date *date) {
+ string ret_val;
+
+ ret_val = W1Store::get_store_file_name(device_id, date);
+ return ret_val;
+}
+
+Data *W1DataList::get_avg_day_data(Date *date) {
+ return NULL;
+}
+
+/*
+time_t to_seconds2(const char *date)
+{
+ struct tm storage={0,0,0,0,0,0,0,0,0};
+ char *p=NULL;
+ time_t retval=0;
+
+ p=(char *)strptime(date,"%d-%b-%Y",&storage);
+ if(p==NULL) {
+ retval=0;
+ }
+ else
+ {
+ errno = 0;
+ retval =mktime(&storage);
+ if (retval == ((time_t)-1)) {
+ log_error("Error2 converting struct tm to seconds: %s\n", strerror(errno));
+ }
+ else {
+ log_debug("succ2: %ld\n", retval);
+ }
+ }
+ return retval;
+}
+*/
+
+DataRange *W1DataList::get_avg_day_data(Date *start_date,
+ Date *end_date) {
+ DataRange *ret_val;
+ Data *data;
+ W1Store *store;
+ Date *date;
+
+ ret_val = NULL;
+ date = start_date->clone();
+ while(date->before(*end_date)) {
+ store = new W1Store(device_id, date);
+ store->load();
+ data = store->get_mean();
+ data->printout();
+ if (ret_val == NULL) {
+ ret_val = new DataRange(*data);
+ }
+ else {
+ ret_val->add_data(*data);
+ }
+ delete(store);
+ delete(data);
+ date->tomorrow();
+ }
+ delete(date);
+ return ret_val;
+}
+
+DataRange *W1DataList::get_data(Date *start_date,
+ Date *end_date) {
+ DataRange *ret_val;
+ int int_type;
+
+ ret_val = NULL;
+ start_date->printout();
+ end_date->printout();
+ int_type = get_interval_type(start_date, end_date);
+ switch(int_type) {
+ case 0:
+ log_debug("get avg year data\n");
+ break;
+ case 1:
+ log_debug("get avg month data\n");
+ break;
+ case 2:
+ log_debug("get avg day data\n");
+ ret_val = get_avg_day_data(start_date, end_date);
+ break;
+ case 3:
+ log_debug("get avg hour data\n");
+ break;
+ case 4:
+ log_debug("get avg min data\n");
+ break;
+ case 5:
+ log_debug("get avg sec data\n");
+ break;