]> pilppa.org Git - lib1wire.git/blob - src/W1Device.hh
Initial support for reading and writing device specific config data.
[lib1wire.git] / src / W1Device.hh
1 /*
2  * W1Device.hh
3  *
4  *  Created on: Oct 20, 2010
5  *      Author: lamikr
6  */
7
8 #ifndef W1DEVICE_HH_
9 #define W1DEVICE_HH_
10
11 #include <string>
12 #include <list>
13
14 #include <dirent.h>
15 #include <stdbool.h>
16
17 #ifndef W1_SCAN_ROOTDIR
18 #define W1_SCAN_ROOTDIR         "/sys/bus/w1/devices"
19 #endif
20
21 #ifndef W1_SLAVE_FILE
22 #define W1_SLAVE_FILE           "w1_slave";
23 #endif
24
25 namespace w1 {
26         class W1Device {
27                 public:
28                         W1Device(int family_code_param,
29                                 std::string device_id_param,
30                                 dirent *direntry_param);
31                         virtual ~W1Device();
32                         int get_family_code();
33                         std::string get_id();
34                         std::string get_name();
35                         void set_name(std::string name_param);
36                         virtual std::string get_raw_value() = 0;
37                         std::string get_formatted_value();
38                         virtual std::string get_unit() = 0;
39                         virtual std::string get_device_type() = 0;
40                         std::string get_time();
41                         virtual void printout();
42                         virtual void store();
43                 protected:
44                         void add_to_memory_cache(std::string formatted_data);
45                         std::string get_formatted_value(std::string value);
46                         virtual bool is_supported_family_code(int family_code) = 0;
47                         int family_code;
48                         std::string id;
49                         std::string name;
50                         std::string dir_path;
51                         std::string slave_file;
52                         std::list<std::string> memory_cache;
53                 private:
54         };
55 }
56
57 #endif /* W1DEVICE_HH_ */