BayEOS-Arduino  1.8.0_0.0.4
DS18B20.h
1 
12 #ifndef ds18b20_h
13 #define ds18b20_h
14 #define NAN 0x7fffffff
15 #ifndef DS18B20_CHANNELS
16 #define DS18B20_CHANNELS 16
17 #endif
18 
19 #include <OneWire.h>
20 #include <inttypes.h>
21 #include <EEPROM.h>
22 #include <WString.h>
23 
24 
25 
26 class DS18B20 : protected OneWire{
27 public:
31  DS18B20(uint8_t pin,uint8_t channel_offset=0,uint8_t ds18b20_channels=DS18B20_CHANNELS);
32 
33 
37  ~DS18B20() { free(_addr); }
38 
39 
40 
44  void t_conversion(void);
45 
50  const uint8_t* search(void);
51 
56  uint8_t checkSensors(void);
57 
62  uint8_t getNextChannel(void);
63 
67  uint8_t addSensor(const uint8_t* new_addr,uint8_t channel);
68 
73  uint8_t getNextFreeChannel(void);
74 
79  uint8_t getChannel(const uint8_t* addr);
80 
84  const uint8_t* getChannelAddress(uint8_t channel) const;
85 
90  uint8_t deleteChannel(const uint8_t* addr);
91 
98  uint8_t readChannel(uint8_t channel,float* f,uint8_t tries=1);
99 
105  uint8_t readAddrFromEEPROM(uint8_t channel);
106 
112  uint8_t setAllAddrFromEEPROM(void);
113 
119  int setAllAddr(void);
120 
124  void writeAddrToEEPROM(uint8_t channel);
125 
129  const String addr2String(const uint8_t* addr);
130 
131 
135  uint8_t getNumberOfChannels(void);
136 
137 
138 private:
139  uint8_t _channel_offset;
140  uint8_t _ds18b20_channels;
141  uint8_t* _addr;
142  uint8_t _new_addr[8];
143  uint8_t _data[12];
144  uint8_t _current_channel;
145 
146 };
147 
148 
149 
150 #endif
uint8_t getNextChannel(void)
Definition: DS18B20.cpp:14
DS18B20(uint8_t pin, uint8_t channel_offset=0, uint8_t ds18b20_channels=DS18B20_CHANNELS)
Definition: DS18B20.cpp:4
uint8_t checkSensors(void)
Definition: DS18B20.cpp:40
const uint8_t * getChannelAddress(uint8_t channel) const
Definition: DS18B20.cpp:152
uint8_t getChannel(const uint8_t *addr)
Definition: DS18B20.cpp:156
const String addr2String(const uint8_t *addr)
Definition: DS18B20.cpp:167
uint8_t readChannel(uint8_t channel, float *f, uint8_t tries=1)
Definition: DS18B20.cpp:115
uint8_t getNextFreeChannel(void)
Definition: DS18B20.cpp:136
uint8_t setAllAddrFromEEPROM(void)
Definition: DS18B20.cpp:81
uint8_t getNumberOfChannels(void)
Definition: DS18B20.cpp:176
const uint8_t * search(void)
Definition: DS18B20.cpp:30
uint8_t deleteChannel(const uint8_t *addr)
Definition: DS18B20.cpp:143
int setAllAddr(void)
Definition: DS18B20.cpp:89
void writeAddrToEEPROM(uint8_t channel)
Definition: DS18B20.cpp:106
~DS18B20()
Definition: DS18B20.h:37
uint8_t readAddrFromEEPROM(uint8_t channel)
Definition: DS18B20.cpp:66
uint8_t addSensor(const uint8_t *new_addr, uint8_t channel)
Definition: DS18B20.cpp:58
void t_conversion(void)
Definition: DS18B20.cpp:23