]> pilppa.org Git - lib1wire.git/blobdiff - src_test/test_w1_datalog_read.cc
sensor data read fixes.
[lib1wire.git] / src_test / test_w1_datalog_read.cc
index 49c567e746928102281487b34ac9670e106cd037..48425e21b342069775512f050fcaeb0bc9c2d85d 100644 (file)
 #include <stdlib.h>
 
 #include <plp/log.h>
+#include <plp/Date.hh>
+#include <plp/DataReader.hh>
+#include <plp/DeviceConfig.hh>
+#include <plp/Device.hh>
+#include <plp/SensorDevice.hh>
 
-#include "W1DataList.hh"
-#include "W1Store.hh"
-#include "W1Scanner.hh"
+#include "Factory.hh"
 
-#include "W1Util.hh"
-
-using namespace w1;
 using namespace std;
+using namespace plp;
+using namespace w1;
 
 bool try_parse_long(const char *str, long *result) {
        int     new_result;
@@ -46,31 +48,63 @@ bool try_parse_long(const char *str, long *result) {
 }
 
 int main(int argc, char** argv) {
-       int             round;
-       string          location;
-       bool            err_flg;
-       W1DataList      *datalist;
-       DataRange       *dr;
+       string                          loc;
+       Data                            *fdata;
+       Data                            *ldata;
+       DataReader                      *reader;
+       Device                          *dev;
+       SensorDevice                    *device;
+       DataRange                       *dr;
+       DataRange                       *dr2;
+       list<Device *>                  dev_lst;
+       list<Device *>::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<SensorDevice *>(dev);
+                       if (device != NULL) {
+                               reader  = device->get_device_data();
+                               if (reader != NULL) {
+                                       dr      = 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     = reader->get_data(&d1, &d2);
+                                                               if (dr2 != NULL) {
+                                                                       dr2->printout();
+                                                                       delete(dr2);
+                                                               }
+                                                               delete(ldata);
+                                                       }
+                                                       delete(fdata);
+                                               }
+                                               delete(dr);
+                                       }
+                                       delete(reader);
+                               }
+                       }
                }
-               delete(datalist);
        }
        return 0;
 }