X-Git-Url: http://pilppa.org/gitweb/?a=blobdiff_plain;f=src%2FW1Device.hh;h=a9303030859cc5c0713ca48259f2cab36f4129b9;hb=557fe3a639d7bd6fd146fdc9d573cf53bb2adff0;hp=73cd8f5ff7b65cfd50cee68a4cbdcc0dfdd8e57a;hpb=c4d8504b99fa1e354d15b2b91e4e2797f54ba028;p=lib1wire.git diff --git a/src/W1Device.hh b/src/W1Device.hh index 73cd8f5..a930303 100644 --- a/src/W1Device.hh +++ b/src/W1Device.hh @@ -14,6 +14,11 @@ #include #include +#include +#include +#include +#include + #ifndef W1_SCAN_ROOTDIR #define W1_SCAN_ROOTDIR "/sys/bus/w1/devices" #endif @@ -23,34 +28,27 @@ #endif namespace w1 { - class W1Device { + class W1Device : public plp::SensorDevice { public: - W1Device(int family_code_param, - std::string device_id_param, + W1Device(std::string device_id_param, + std::string device_type_param, dirent *direntry_param); virtual ~W1Device(); - int get_family_code(); - std::string get_id(); std::string get_name(); void set_name(std::string name_param); - virtual std::string get_raw_data() = 0; - std::string get_formatted_data(); - virtual std::string get_unit() = 0; - virtual std::string get_device_type() = 0; - std::string get_time(); - virtual void printout(); - virtual void store(); + void printout(); + plp::Data *get_data(); + plp::DataReader *get_device_data(); protected: - void add_to_memory_cache(std::string formatted_data); - std::string get_formatted_data(std::string raw_data); - virtual bool is_supported_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 memory_cache; - private: + std::list memory_cache; + plp::DataReader *reader; + void save_and_clean_cache(); + virtual std::vector *get_raw_data() = 0; + virtual unsigned int get_data_decimal_precision() = 0; + void cache(plp::Data *data); + std::string to_string(double val, int digit_count); }; }