]> pilppa.org Git - lib1wire.git/blob - src_test/test_w1_datalog_read.cc
acddf0d6fd69d7d4c73c2695d19da07ab5a3c6ad
[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
16 #include "W1DataList.hh"
17 #include "W1Store.hh"
18 #include "W1Scanner.hh"
19
20 #include "W1Util.hh"
21
22 using namespace w1;
23 using namespace std;
24
25 bool try_parse_long(const char *str, long *result) {
26         int     new_result;
27         char    *endptr;
28         bool    ret_val;
29
30         ret_val         = false;
31         errno           = 0;
32         new_result      = strtol(str, &endptr, 10);
33         if (errno != 0) {
34                 log_error("invalid input %s, could not convert to integer.\n", str);
35         }
36         else {
37                 if (endptr == str) {
38                         log_error("invalid input %s, could not convert to integer.\n", str);
39                 }
40                 else {
41                         *result = new_result;
42                         ret_val = true;
43                 }
44         }
45         return ret_val;
46 }
47
48 int main(int argc, char** argv) {
49         int             round;
50         string          loc;
51         bool            err_flg;
52         Data            *fdata;
53         Data            *ldata;
54         W1DataList      *dlist;
55         DataRange       *dr;
56         DataRange       *dr2;
57
58         // default values than can be overwritten with parameters
59         //location      = "/tmp/";
60         loc     = "/home/lamikr/own/src/plp/w1data2/";
61         if (argc > 1) {
62                 loc     = argv[1];
63                 log_info("storage location: %s\n", loc.c_str());
64         }
65         else {
66                 log_warning("No storage location parameter given, using default location: %s\n", loc.c_str());
67         }
68         W1Store::set_store_base_dir(loc.c_str());
69         dlist   = new W1DataList("0008014e9e09");
70         if (dlist != NULL) {
71                 dr      = dlist->get_data_range();
72                 if (dr != NULL) {
73                         fdata   = dr->get_first_data();
74                         if (fdata != NULL) {
75                                 fdata->printout();
76                                 ldata   = dr->get_last_data();
77                                 if (ldata != NULL) {
78                                         ldata->printout();
79                                         dr2     = dlist->get_data(&fdata->get_date(), &ldata->get_date());
80                                         delete(ldata);
81                                         if (dr2 != NULL) {
82                                                 delete(dr2);
83                                         }
84                                 }
85                                 delete(fdata);
86                         }
87                         delete(dr);
88                 }
89                 delete(dlist);
90         }
91         return 0;
92 }