X-Git-Url: http://pilppa.org/gitweb/?p=lib1wire.git;a=blobdiff_plain;f=src%2FW1Device.hh;fp=src%2FW1Device.hh;h=4dab3a657de10e960d58e6ebdf8657ad156a01f4;hp=d1371e9e5214a598bd267872bfef9a076789c03f;hb=da203ad44792ca37320768f4cbe68587c4806910;hpb=6caee6cb22c1334701afe7aa30bcf9668ca3a5c5 diff --git a/src/W1Device.hh b/src/W1Device.hh index d1371e9..4dab3a6 100644 --- a/src/W1Device.hh +++ b/src/W1Device.hh @@ -15,7 +15,8 @@ #include #include "Data.hh" -#include "DeviceTypeSensor.hh" +#include "SensorDevice.hh" +#include "Device.hh" #ifndef W1_SCAN_ROOTDIR #define W1_SCAN_ROOTDIR "/sys/bus/w1/devices" @@ -26,32 +27,34 @@ #endif namespace w1 { - class W1Device : public plp::DeviceTypeSensor { + class W1Device : public plp::SensorDevice { public: - W1Device(int family_code_param, + W1Device(std::string device_type_param, std::string device_id_param, dirent *direntry_param); virtual ~W1Device(); - int get_w1_family_code(); std::string get_id(); std::string get_name(); void set_name(std::string name_param); void printout(); plp::Data *get_data(); - void save_data(); + plp::DataReader *get_device_data(); + std::string get_device_type(); + plp::EnumDeviceLifeCycleStatus get_lifecycle_state(); protected: + void save_and_clean_cache(); virtual std::vector *get_raw_data() = 0; virtual unsigned int get_data_decimal_precision() = 0; - void collect_data(plp::Data *data); + void cache(plp::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 type; std::string name; std::string dir_path; std::string slave_file; std::list memory_cache; + plp::EnumDeviceLifeCycleStatus lifecycle_status; }; }