]> 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 80822bd76a5016f17e882f3dfb0f52423ed0e332..48425e21b342069775512f050fcaeb0bc9c2d85d 100644 (file)
@@ -15,6 +15,8 @@
 #include <plp/Date.hh>
 #include <plp/DataReader.hh>
 #include <plp/DeviceConfig.hh>
+#include <plp/Device.hh>
+#include <plp/SensorDevice.hh>
 
 #include "Factory.hh"
 
@@ -50,7 +52,8 @@ int main(int argc, char** argv) {
        Data                            *fdata;
        Data                            *ldata;
        DataReader                      *reader;
-       Device                          *device;
+       Device                          *dev;
+       SensorDevice                    *device;
        DataRange                       *dr;
        DataRange                       *dr2;
        list<Device *>                  dev_lst;
@@ -68,35 +71,38 @@ int main(int argc, char** argv) {
        }
        dev_lst = Factory::get_device_list();
        for(list_iter = dev_lst.begin(); list_iter != dev_lst.end(); list_iter++) {
-               device  = (Device *)*list_iter;
-               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;
+               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);
+                                                               d1      = fdata->get_date();
+                                                               d2      = ldata->get_date();
+                                                               dr2     = reader->get_data(&d1, &d2);
+                                                               if (dr2 != NULL) {
+                                                                       dr2->printout();
+                                                                       delete(dr2);
+                                                               }
+                                                               delete(ldata);
                                                        }
-                                                       delete(ldata);
+                                                       delete(fdata);
                                                }
-                                               delete(fdata);
+                                               delete(dr);
                                        }
-                                       delete(dr);
+                                       delete(reader);
                                }
-                               delete(reader);
                        }
                }
        }