]> pilppa.org Git - lib1wire.git/blobdiff - src_test/test_w1_datalog_read.cc
Support for querying the list devices having data stored.
[lib1wire.git] / src_test / test_w1_datalog_read.cc
index 0c4a5b9b1859f65b8833dc3c09589d130fc3d4b3..046a47508c98eb52753636223a1498d9935bbb25 100644 (file)
 
 #include <plp/log.h>
 
-#include "W1DataList.hh"
-#include "DeviceConfig.hh"
-#include "W1Scanner.hh"
-
 #include "Date.hh"
+#include "DeviceData.hh"
+#include "DeviceConfig.hh"
+#include "Factory.hh"
 #include "W1Util.hh"
 
 using namespace w1;
@@ -47,16 +46,16 @@ bool try_parse_long(const char *str, long *result) {
 }
 
 int main(int argc, char** argv) {
-       string          loc;
-       Data            *fdata;
-       Data            *ldata;
-       W1DataList      *dlist;
-       DataRange       *dr;
-       DataRange       *dr2;
+       string                  loc;
+       Data                    *fdata;
+       Data                    *ldata;
+       DeviceData              *dta;
+       DataRange               *dr;
+       DataRange               *dr2;
+       list<DeviceData *>      dta_list;
 
        // default values than can be overwritten with parameters
-       //location      = "/tmp/";
-       loc     = "/home/lamikr/own/src/plp/w1data2/";
+       loc     = "/tmp/w1data";
        if (argc > 1) {
                loc     = argv[1];
                log_info("storage location: %s\n", loc.c_str());
@@ -65,32 +64,35 @@ int main(int argc, char** argv) {
                log_warning("No storage location parameter given, using default location: %s\n", loc.c_str());
        }
        DeviceConfig::set_base_dir_name(loc);
-       dlist   = new W1DataList("0008014e9e09");
-       if (dlist != NULL) {
-               dr      = dlist->get_data_range();
-               if (dr != NULL) {
-                       fdata   = dr->get_first_data();
-                       if (fdata != NULL) {
-                               fdata->printout();
-                               ldata   = dr->get_last_data();
-                               if (ldata != NULL) {
-                                       ldata->printout();
-                                       plp::Date d1;
-                                       plp::Date d2;
+       dta_list        = Factory::get_device_data_list();
+       for(list<DeviceData *>::iterator list_iter = dta_list.begin(); list_iter != dta_list.end(); list_iter++) {
+               dta     = (DeviceData *)*list_iter;
+               if (dta != NULL) {
+                       dr      = dta->get_data_range();
+                       if (dr != NULL) {
+                               fdata   = dr->get_first_data();
+                               if (fdata != NULL) {
+                                       fdata->printout();
+                                       ldata   = dr->get_last_data();
+                                       if (ldata != NULL) {
+                                               ldata->printout();
+                                               plp::Date d1;
+                                               plp::Date d2;
 
-                                       d1      = fdata->get_date();
-                                       d2      = ldata->get_date();
-                                       dr2     = dlist->get_data(&d1, &d2);
-                                       delete(ldata);
-                                       if (dr2 != NULL) {
-                                               delete(dr2);
+                                               d1      = fdata->get_date();
+                                               d2      = ldata->get_date();
+                                               dr2     = dta->get_data(&d1, &d2);
+                                               delete(ldata);
+                                               if (dr2 != NULL) {
+                                                       delete(dr2);
+                                               }
                                        }
+                                       delete(fdata);
                                }
-                               delete(fdata);
+                               delete(dr);
                        }
-                       delete(dr);
+                       delete(dta);
                }
-               delete(dlist);
        }
        return 0;
 }