]> pilppa.org Git - lib1wire.git/blobdiff - src/Data.cc
Several data read and store fixes.
[lib1wire.git] / src / Data.cc
index 98425c63d64d63b0506f47b4d2602765c1129cb0..c964bc411f3f2d8763aeec3a135763a69b8d2d22 100644 (file)
@@ -45,13 +45,13 @@ Data::Data(int size, double default_value) {
 }
 
 Data::Data(vector<double> vector_param, Date *date_param) {
-       int     ii;
-       int     size;
+       unsigned int    ii;
+       unsigned int    size;
 
        size    = vector_param.size();
        //log_debug("Data(), value count: %d\n", size);
        value_arr.resize(size);
-       for (int ii = 0; ii < vector_param.size(); ii++) {
+       for (ii = 0; ii < vector_param.size(); ii++) {
                value_arr[ii]   = vector_param.at(ii);
                //log_debug("Data(), value[%d]: %f\n", ii, value_arr[ii]);
        }
@@ -59,8 +59,10 @@ Data::Data(vector<double> vector_param, Date *date_param) {
 }
 
 Data::Data(std::valarray<double> value_arr_param, Date *date_param) {
+       unsigned int ii;
+
        value_arr.resize(value_arr_param.size());
-       for (int ii = 0; ii < value_arr_param.size(); ii++) {
+       for (ii = 0; ii < value_arr_param.size(); ii++) {
                value_arr[ii]   = value_arr_param[ii];
        }
        date_time.copy(date_param);
@@ -69,6 +71,13 @@ Data::Data(std::valarray<double> value_arr_param, Date *date_param) {
 Data::~Data() {
 }
 
+Data *Data::clone() {
+       Data    *ret_val;
+
+       ret_val = new Data(value_arr, &date_time);
+       return ret_val;
+}
+
 plp::Date Data::get_date() {
        return date_time;
 }
@@ -78,7 +87,7 @@ void Data::set_date(plp::Date date) {
 }
 
 void Data::printout() {
-       int     ii;
+       unsigned int    ii;
 
        date_time.printout();
        for (ii = 0; ii < value_arr.size(); ii++) {
@@ -102,9 +111,7 @@ Data *Data::parse_data_string(const string& dataline) {
                        // parse date
                        date    = W1Util::parse_date_str(item);
                }
-               // skip the device type and device id fields
-               // TODO: store device type and id to own file
-               else if (ii >= 3) {
+               else if (ii >= 1) {
                        suc_flg = string_to_number<double>(val, item, dec);
                        if (suc_flg) {
                                //log_debug("adding number: %f\n", val);
@@ -131,8 +138,8 @@ DataRange::DataRange(Data data) {
 }
 
 DataRange::~DataRange() {
-       int     ii;
-       Date    *date;
+       unsigned int    ii;
+       Date            *date;
 
        if (val_matrix != NULL) {
                free(val_matrix);
@@ -145,10 +152,9 @@ DataRange::~DataRange() {
 }
 
 void DataRange::add_data(Data data) {
-       int                     ii;
-       int                     r_count;
-       int                     indx;
-       Date                    date;
+       unsigned int    ii;
+       int             indx;
+       Date            date;
 
        //log_debug("old row_count: %d, column_count: %d, value_arr_size: %d\n", row_count, column_count, data.value_arr.size());
        val_matrix      = (double *)realloc(val_matrix, ((row_count + 1) * column_count) * sizeof(double));
@@ -207,3 +213,18 @@ Data *DataRange::get_first_data() {
 Data *DataRange::get_last_data() {
        return get_data(row_count - 1);
 }
+
+void DataRange::printout() {
+       int     ii;
+       Data    *data;
+
+       log_debug("---- DataRange, number of data items: %d\n ----", row_count);
+       for (ii = 0; ii < row_count; ii++) {
+               data    = get_data(ii);
+               if (data != NULL) {
+                       data->printout();
+                       delete(data);
+               }
+       }
+       log_debug("---- DataRange printout done ----\n");
+}