]> pilppa.org Git - lib1wire.git/blob - src_test/test_w1_datalog_read.cc
configuration data related 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_device_data();
56                                 if (reader != NULL) {
57                                         dr      = ((DataReader *)reader)->get_data_range();
58                                         if (dr != NULL) {
59                                                 fdata   = dr->get_first();
60                                                 if (fdata != NULL) {
61                                                         fdata->printout();
62                                                         ldata   = dr->get_last();
63                                                         if (ldata != NULL) {
64                                                                 ldata->printout();
65                                                                 plp::Date d1;
66                                                                 plp::Date d2;
67
68                                                                 d1      = fdata->get_date();
69                                                                 d2      = ldata->get_date();
70                                                                 dr2     = ((DataReader *)reader)->get_data(&d1, &d2);
71                                                                 if (dr2 != NULL) {
72                                                                         dr2->printout();
73                                                                         delete(dr2);
74                                                                 }
75                                                                 delete(ldata);
76                                                         }
77                                                         delete(fdata);
78                                                 }
79                                                 delete(dr);
80                                         }
81                                 }
82                         }
83                 }
84         }
85         while (dev_lst.empty() == false) {
86                 dev     = dev_lst.back();
87                 dev_lst.pop_back();
88                 delete(dev);
89         }
90         return 0;
91 }