/* * W1Device.hh * * Created on: Oct 20, 2010 * Author: lamikr */ #ifndef W1DEVICE_HH_ #define W1DEVICE_HH_ #include #include #include #include #include "Data.hh" #include "DeviceTypeSensor.hh" #ifndef W1_SCAN_ROOTDIR #define W1_SCAN_ROOTDIR "/sys/bus/w1/devices" #endif #ifndef W1_SLAVE_FILE #define W1_SLAVE_FILE "w1_slave"; #endif namespace w1 { class W1Device : public plp::DeviceTypeSensor { public: W1Device(int family_code_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(); protected: virtual std::vector *get_raw_data() = 0; virtual unsigned int get_data_decimal_precision() = 0; void collect_data(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 name; std::string dir_path; std::string slave_file; std::list memory_cache; }; } #endif /* W1DEVICE_HH_ */