#include <dirent.h>
#include <stdbool.h>
+#include "Data.hh"
+
#ifndef W1_SCAN_ROOTDIR
#define W1_SCAN_ROOTDIR "/sys/bus/w1/devices"
#endif
namespace w1 {
class W1Device {
public:
- W1Device(dirent *direntry, int family_code_param, std::string id_param);
+ W1Device(int family_code_param,
+ std::string device_id_param,
+ dirent *direntry_param);
virtual ~W1Device();
- int get_family_code();
+ int get_w1_family_code();
std::string get_id();
std::string get_name();
void set_name(std::string name_param);
- virtual std::string get_value() = 0;
virtual std::string get_unit() = 0;
- virtual std::string get_devicetype_name() = 0;
- std::string get_time();
+ virtual std::string get_device_type() = 0;
+ Data *get_and_collect_data();
+ virtual void save_data();
virtual void printout();
- virtual void store();
protected:
- void add_to_memory_cache(std::string formatted_data);
- std::string get_formatted_data();
- std::string get_formatted_data(std::string value);
- virtual bool is_supported_family_code(int family_code) = 0;
+ virtual std::vector<double> *get_raw_data() = 0;
+ virtual unsigned int get_data_decimal_precision() = 0;
+ void collect_data(Data *data);
+ std::string to_string(double val, int digit_count);
+ //Data *get_formatted_data(Data *data);
+ virtual bool is_supported_w1_family_code(int family_code) = 0;
int family_code;
std::string id;
std::string name;
std::string dir_path;
std::string slave_file;
- std::list<std::string> memory_cache;
- private:
+ std::list<w1::Data *> memory_cache;
};
}