#include <stdbool.h>
#include "Data.hh"
+#include "SensorDevice.hh"
+#include "Device.hh"
#ifndef W1_SCAN_ROOTDIR
#define W1_SCAN_ROOTDIR "/sys/bus/w1/devices"
#endif
namespace w1 {
- class W1Device {
+ 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);
- virtual std::string get_unit() = 0;
- virtual std::string get_device_type() = 0;
- plp::Data *get_and_collect_data();
- virtual void save_data();
- virtual void printout();
+ void printout();
+ plp::Data *get_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<double> *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<plp::Data *> memory_cache;
+ plp::EnumDeviceLifeCycleStatus lifecycle_status;
};
}