]> pilppa.org Git - lib1wire.git/blob - src_test/test_w1_datalog_read.cc
api changes
[lib1wire.git] / src_test / test_w1_datalog_read.cc
1 /*
2  * test_data_read.cc
3  *
4  *  Created on: Nov 15, 2010
5  *      Author: lamikr
6  */
7 #include <list>
8 #include <string>
9 #include <iostream>
10
11 #include <errno.h>
12 #include <stdlib.h>
13
14 #include <plp/log.h>
15 #include <plp/Date.hh>
16 #include <plp/DataReader.hh>
17 #include <plp/DeviceConfig.hh>
18 #include <plp/Device.hh>
19 #include <plp/SensorDevice.hh>
20
21 #include "Factory.hh"
22
23 using namespace std;
24 using namespace plp;
25 using namespace w1;
26
27 int main(int argc, char** argv) {
28         string                          loc;
29         Data                            *fdata;
30         Data                            *ldata;
31         const DataReader                *reader;
32         Device                          *dev;
33         SensorDevice                    *device;
34         DataRange                       *dr;
35         DataRange                       *dr2;
36         list<Device *>                  dev_lst;
37         list<Device *>::iterator        list_iter;
38
39         // default values than can be overwritten with parameters
40         loc     = DeviceConfig::get_base_dir_name();
41         if (argc > 1) {
42                 loc     = argv[1];
43                 log_info("storage location: %s\n", loc.c_str());
44                 DeviceConfig::set_base_dir_name(loc);
45         }
46         else {
47                 log_warning("No storage location parameter given, using default location: %s\n", loc.c_str());
48         }
49         dev_lst = Factory::get_device_list();
50         for(list_iter = dev_lst.begin(); list_iter != dev_lst.end(); list_iter++) {
51                 dev     = (Device *)*list_iter;
52                 if (dev != NULL) {
53                         device  = dynamic_cast<SensorDevice *>(dev);
54                         if (device != NULL) {
55                                 reader  = device->get_datareader();
56                                 device->get_name();
57                                 if (reader != NULL) {
58                                         dr      = ((DataReader *)reader)->get_data_range();
59                                         if (dr != NULL) {
60                                                 fdata   = dr->get_first();
61                                                 if (fdata != NULL) {
62                                                         fdata->printout();
63                                                         ldata   = dr->get_last();
64                                                         if (ldata != NULL) {
65                                                                 ldata->printout();
66                                                                 plp::Date d1;
67                                                                 plp::Date d2;
68
69                                                                 d1      = fdata->get_date();
70                                                                 d2      = ldata->get_date();
71                                                                 dr2     = ((DataReader *)reader)->get_data(&d1, &d2);
72                                                                 if (dr2 != NULL) {
73                                                                         dr2->printout();
74                                                                         delete(dr2);
75                                                                 }
76                                                                 delete(ldata);
77                                                         }
78                                                         delete(fdata);
79                                                 }
80                                                 delete(dr);
81                                         }
82                                 }
83                         }
84                 }
85         }
86         while (dev_lst.empty() == false) {
87                 dev     = dev_lst.back();
88                 dev_lst.pop_back();
89                 delete(dev);
90         }
91         return 0;
92 }