]> pilppa.org Git - lib1wire.git/blobdiff - src_test/test_w1_datalog_read.cc
Initial support for reading log-data.
[lib1wire.git] / src_test / test_w1_datalog_read.cc
diff --git a/src_test/test_w1_datalog_read.cc b/src_test/test_w1_datalog_read.cc
new file mode 100644 (file)
index 0000000..49c567e
--- /dev/null
@@ -0,0 +1,76 @@
+/*
+ * test_data_read.cc
+ *
+ *  Created on: Nov 15, 2010
+ *      Author: lamikr
+ */
+#include <list>
+#include <string>
+#include <iostream>
+
+#include <errno.h>
+#include <stdlib.h>
+
+#include <plp/log.h>
+
+#include "W1DataList.hh"
+#include "W1Store.hh"
+#include "W1Scanner.hh"
+
+#include "W1Util.hh"
+
+using namespace w1;
+using namespace std;
+
+bool try_parse_long(const char *str, long *result) {
+       int     new_result;
+       char    *endptr;
+       bool    ret_val;
+
+       ret_val         = false;
+       errno           = 0;
+       new_result      = strtol(str, &endptr, 10);
+       if (errno != 0) {
+               log_error("invalid input %s, could not convert to integer.\n", str);
+       }
+       else {
+               if (endptr == str) {
+                       log_error("invalid input %s, could not convert to integer.\n", str);
+               }
+               else {
+                       *result = new_result;
+                       ret_val = true;
+               }
+       }
+       return ret_val;
+}
+
+int main(int argc, char** argv) {
+       int             round;
+       string          location;
+       bool            err_flg;
+       W1DataList      *datalist;
+       DataRange       *dr;
+
+       // default values than can be overwritten with parameters
+       //location      = "/tmp/";
+       location        = "/home/lamikr/own/src/plp/w1data2/";
+       if (argc > 1) {
+               location        = argv[1];
+               log_info("storage location: %s\n", location.c_str());
+       }
+       else {
+               log_warning("No storage location parameter given, using default location: %s\n", location.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);
+               }
+               delete(datalist);
+       }
+       return 0;
+}