X-Git-Url: http://pilppa.org/gitweb/?a=blobdiff_plain;f=src%2FW1Device.cc;h=3160c81034e6e502b8526a5890c00226d5ebf2e7;hb=5c90b2e54752b52c8e5851df68ab9d9063c52ffd;hp=48f366db655a1d74bdf92d717b629a03e7e8c168;hpb=edb0f03a4703a3e260d051dbe94c3fbe14e6549f;p=lib1wire.git diff --git a/src/W1Device.cc b/src/W1Device.cc index 48f366d..3160c81 100644 --- a/src/W1Device.cc +++ b/src/W1Device.cc @@ -5,6 +5,8 @@ * Author: lamikr */ #include +#include + #include #include "W1Device.hh" @@ -61,6 +63,48 @@ string W1Device::get_time() { void W1Device::printout() { string text; - text = get_time() + ": device type = , id = " + id + ", value = " + get_value(); + text = get_formatted_data(); cout << text << endl; } + +string W1Device::get_formatted_data() { + string ret_val; + + ret_val = get_formatted_data(get_value()); + return ret_val; +} + +string W1Device::get_formatted_data(string value) { + string ret_val; + + ret_val = get_time() + ": device type = " + get_devicetype_name() + ", id = " + id + ", value = " + value + " " + get_unit(); + return ret_val; +} + +void W1Device::add_to_memory_cache(std::string formatted_data) { + // TODO: add mutex for memory_cache + memory_cache.push_back(formatted_data); +} + +void W1Device::store() { + string file_path = "/tmp/" + id + ".txt"; + string text_line; + ofstream data_file(file_path.c_str(), ios::app); + + cout << "storing to " << file_path << "data size " << memory_cache.size() << endl; + // TODO: add mutex to protect memory_cache while it's read and emptied + if (data_file.is_open()) { + while(memory_cache.size() > 0) { + text_line = memory_cache.front(); + memory_cache.pop_front(); + if (text_line.length() > 0) { + cout << "storing line: " << text_line << endl; + data_file << text_line << endl; + } + } + data_file.close(); + } + else { + cout << "could not open file " << file_path << " for writing data." << endl; + } +}