X-Git-Url: http://pilppa.org/gitweb/?a=blobdiff_plain;f=src_test%2Ftest_w1_datalog_read.cc;h=064831b4bc8c71432bd57b1e87294792e73effd3;hb=9e569babf7e271015fedac3b7153d9035ff17ee0;hp=49c567e746928102281487b34ac9670e106cd037;hpb=64f4c95cf6d3a772bfc721081dc39e2105c2756c;p=lib1wire.git diff --git a/src_test/test_w1_datalog_read.cc b/src_test/test_w1_datalog_read.cc index 49c567e..064831b 100644 --- a/src_test/test_w1_datalog_read.cc +++ b/src_test/test_w1_datalog_read.cc @@ -12,65 +12,80 @@ #include #include +#include +#include +#include +#include +#include -#include "W1DataList.hh" -#include "W1Store.hh" -#include "W1Scanner.hh" +#include "Factory.hh" -#include "W1Util.hh" - -using namespace w1; using namespace std; - -bool try_parse_long(const char *str, long *result) { - int new_result; - char *endptr; - bool ret_val; - - ret_val = false; - errno = 0; - new_result = strtol(str, &endptr, 10); - if (errno != 0) { - log_error("invalid input %s, could not convert to integer.\n", str); - } - else { - if (endptr == str) { - log_error("invalid input %s, could not convert to integer.\n", str); - } - else { - *result = new_result; - ret_val = true; - } - } - return ret_val; -} +using namespace plp; +using namespace w1; int main(int argc, char** argv) { - int round; - string location; - bool err_flg; - W1DataList *datalist; - DataRange *dr; + string loc; + Data *fdata; + Data *ldata; + const DataReader *reader; + Device *dev; + SensorDevice *device; + DataRange *dr; + DataRange *dr2; + list dev_lst; + list::iterator list_iter; // default values than can be overwritten with parameters - //location = "/tmp/"; - location = "/home/lamikr/own/src/plp/w1data2/"; + loc = DeviceConfig::get_base_dir_name(); if (argc > 1) { - location = argv[1]; - log_info("storage location: %s\n", location.c_str()); + loc = argv[1]; + log_info("storage location: %s\n", loc.c_str()); + DeviceConfig::set_base_dir_name(loc); } else { - log_warning("No storage location parameter given, using default location: %s\n", location.c_str()); + log_warning("No storage location parameter given, using default location: %s\n", loc.c_str()); } - W1Store::set_location_base_dir(location.c_str()); - datalist = new W1DataList("00080160c563"); - if (datalist != NULL) { - dr = datalist->get_data_range(); - if (dr != NULL) { - W1Util::printout_data(dr->first_data); - delete(dr); + dev_lst = Factory::get_device_list(); + for(list_iter = dev_lst.begin(); list_iter != dev_lst.end(); list_iter++) { + dev = (Device *)*list_iter; + if (dev != NULL) { + device = dynamic_cast(dev); + if (device != NULL) { + reader = device->get_device_data(); + if (reader != NULL) { + dr = ((DataReader *)reader)->get_data_range(); + if (dr != NULL) { + fdata = dr->get_first(); + if (fdata != NULL) { + fdata->printout(); + ldata = dr->get_last(); + if (ldata != NULL) { + ldata->printout(); + plp::Date d1; + plp::Date d2; + + d1 = fdata->get_date(); + d2 = ldata->get_date(); + dr2 = ((DataReader *)reader)->get_data(&d1, &d2); + if (dr2 != NULL) { + dr2->printout(); + delete(dr2); + } + delete(ldata); + } + delete(fdata); + } + delete(dr); + } + } + } } - delete(datalist); + } + while (dev_lst.empty() == false) { + dev = dev_lst.back(); + dev_lst.pop_back(); + delete(dev); } return 0; }