Mercurial > code > home > repos > homeauto
annotate service/arduinoNode/arduino-libraries/DallasTemperature/DallasTemperature.h @ 1449:a2bc6602a0db
dockerfile deps
Ignore-this: b12d406bc1fee7c07092d273904b8b3d
darcs-hash:8b40b2634a6df26e0de4f6ef31c6ef2aabf14c31
author | drewp <drewp@bigasterisk.com> |
---|---|
date | Wed, 25 Sep 2019 17:25:19 -0700 |
parents | 4f5825a9fc47 |
children |
rev | line source |
---|---|
970
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
1 #ifndef DallasTemperature_h |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
2 #define DallasTemperature_h |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
3 |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
4 #define DALLASTEMPLIBVERSION "3.7.2" |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
5 |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
6 // This library is free software; you can redistribute it and/or |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
7 // modify it under the terms of the GNU Lesser General Public |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
8 // License as published by the Free Software Foundation; either |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
9 // version 2.1 of the License, or (at your option) any later version. |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
10 |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
11 // set to true to include code for new and delete operators |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
12 #ifndef REQUIRESNEW |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
13 #define REQUIRESNEW false |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
14 #endif |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
15 |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
16 // set to true to include code implementing alarm search functions |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
17 #ifndef REQUIRESALARMS |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
18 #define REQUIRESALARMS true |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
19 #endif |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
20 |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
21 #include <inttypes.h> |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
22 #include <OneWire.h> |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
23 |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
24 // Model IDs |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
25 #define DS18S20MODEL 0x10 // also DS1820 |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
26 #define DS18B20MODEL 0x28 |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
27 #define DS1822MODEL 0x22 |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
28 #define DS1825MODEL 0x3B |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
29 |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
30 // OneWire commands |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
31 #define STARTCONVO 0x44 // Tells device to take a temperature reading and put it on the scratchpad |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
32 #define COPYSCRATCH 0x48 // Copy EEPROM |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
33 #define READSCRATCH 0xBE // Read EEPROM |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
34 #define WRITESCRATCH 0x4E // Write to EEPROM |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
35 #define RECALLSCRATCH 0xB8 // Reload from last known |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
36 #define READPOWERSUPPLY 0xB4 // Determine if device needs parasite power |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
37 #define ALARMSEARCH 0xEC // Query bus for devices with an alarm condition |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
38 |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
39 // Scratchpad locations |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
40 #define TEMP_LSB 0 |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
41 #define TEMP_MSB 1 |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
42 #define HIGH_ALARM_TEMP 2 |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
43 #define LOW_ALARM_TEMP 3 |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
44 #define CONFIGURATION 4 |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
45 #define INTERNAL_BYTE 5 |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
46 #define COUNT_REMAIN 6 |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
47 #define COUNT_PER_C 7 |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
48 #define SCRATCHPAD_CRC 8 |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
49 |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
50 // Device resolution |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
51 #define TEMP_9_BIT 0x1F // 9 bit |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
52 #define TEMP_10_BIT 0x3F // 10 bit |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
53 #define TEMP_11_BIT 0x5F // 11 bit |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
54 #define TEMP_12_BIT 0x7F // 12 bit |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
55 |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
56 // Error Codes |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
57 #define DEVICE_DISCONNECTED_C -127 |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
58 #define DEVICE_DISCONNECTED_F -196.6 |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
59 #define DEVICE_DISCONNECTED_RAW -7040 |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
60 |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
61 typedef uint8_t DeviceAddress[8]; |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
62 |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
63 class DallasTemperature |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
64 { |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
65 public: |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
66 |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
67 DallasTemperature(OneWire*); |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
68 |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
69 // initialise bus |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
70 void begin(void); |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
71 |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
72 // returns the number of devices found on the bus |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
73 uint8_t getDeviceCount(void); |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
74 |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
75 // returns true if address is valid |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
76 bool validAddress(const uint8_t*); |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
77 |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
78 // finds an address at a given index on the bus |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
79 bool getAddress(uint8_t*, uint8_t); |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
80 |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
81 // attempt to determine if the device at the given address is connected to the bus |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
82 bool isConnected(const uint8_t*); |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
83 |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
84 // attempt to determine if the device at the given address is connected to the bus |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
85 // also allows for updating the read scratchpad |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
86 bool isConnected(const uint8_t*, uint8_t*); |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
87 |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
88 // read device's scratchpad |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
89 void readScratchPad(const uint8_t*, uint8_t*); |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
90 |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
91 // write device's scratchpad |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
92 void writeScratchPad(const uint8_t*, const uint8_t*); |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
93 |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
94 // read device's power requirements |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
95 bool readPowerSupply(const uint8_t*); |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
96 |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
97 // get global resolution |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
98 uint8_t getResolution(); |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
99 |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
100 // set global resolution to 9, 10, 11, or 12 bits |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
101 void setResolution(uint8_t); |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
102 |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
103 // returns the device resolution: 9, 10, 11, or 12 bits |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
104 uint8_t getResolution(const uint8_t*); |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
105 |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
106 // set resolution of a device to 9, 10, 11, or 12 bits |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
107 bool setResolution(const uint8_t*, uint8_t); |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
108 |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
109 // sets/gets the waitForConversion flag |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
110 void setWaitForConversion(bool); |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
111 bool getWaitForConversion(void); |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
112 |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
113 // sets/gets the checkForConversion flag |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
114 void setCheckForConversion(bool); |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
115 bool getCheckForConversion(void); |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
116 |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
117 // sends command for all devices on the bus to perform a temperature conversion |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
118 void requestTemperatures(void); |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
119 |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
120 // sends command for one device to perform a temperature conversion by address |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
121 bool requestTemperaturesByAddress(const uint8_t*); |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
122 |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
123 // sends command for one device to perform a temperature conversion by index |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
124 bool requestTemperaturesByIndex(uint8_t); |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
125 |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
126 // returns temperature raw value (12 bit integer of 1/16 degrees C) |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
127 int16_t getTemp(const uint8_t*); |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
128 |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
129 // returns temperature in degrees C |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
130 float getTempC(const uint8_t*); |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
131 |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
132 // returns temperature in degrees F |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
133 float getTempF(const uint8_t*); |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
134 |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
135 // Get temperature for device index (slow) |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
136 float getTempCByIndex(uint8_t); |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
137 |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
138 // Get temperature for device index (slow) |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
139 float getTempFByIndex(uint8_t); |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
140 |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
141 // returns true if the bus requires parasite power |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
142 bool isParasitePowerMode(void); |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
143 |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
144 bool isConversionAvailable(const uint8_t*); |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
145 |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
146 #if REQUIRESALARMS |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
147 |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
148 typedef void AlarmHandler(const uint8_t*); |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
149 |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
150 // sets the high alarm temperature for a device |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
151 // accepts a char. valid range is -55C - 125C |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
152 void setHighAlarmTemp(const uint8_t*, char); |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
153 |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
154 // sets the low alarm temperature for a device |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
155 // accepts a char. valid range is -55C - 125C |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
156 void setLowAlarmTemp(const uint8_t*, char); |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
157 |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
158 // returns a signed char with the current high alarm temperature for a device |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
159 // in the range -55C - 125C |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
160 char getHighAlarmTemp(const uint8_t*); |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
161 |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
162 // returns a signed char with the current low alarm temperature for a device |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
163 // in the range -55C - 125C |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
164 char getLowAlarmTemp(const uint8_t*); |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
165 |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
166 // resets internal variables used for the alarm search |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
167 void resetAlarmSearch(void); |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
168 |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
169 // search the wire for devices with active alarms |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
170 bool alarmSearch(uint8_t*); |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
171 |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
172 // returns true if ia specific device has an alarm |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
173 bool hasAlarm(const uint8_t*); |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
174 |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
175 // returns true if any device is reporting an alarm on the bus |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
176 bool hasAlarm(void); |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
177 |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
178 // runs the alarm handler for all devices returned by alarmSearch() |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
179 void processAlarms(void); |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
180 |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
181 // sets the alarm handler |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
182 void setAlarmHandler(const AlarmHandler *); |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
183 |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
184 // The default alarm handler |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
185 static void defaultAlarmHandler(const uint8_t*); |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
186 |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
187 #endif |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
188 |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
189 // convert from Celsius to Fahrenheit |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
190 static float toFahrenheit(float); |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
191 |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
192 // convert from Fahrenheit to Celsius |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
193 static float toCelsius(float); |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
194 |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
195 // convert from raw to Celsius |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
196 static float rawToCelsius(int16_t); |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
197 |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
198 // convert from raw to Fahrenheit |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
199 static float rawToFahrenheit(int16_t); |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
200 |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
201 #if REQUIRESNEW |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
202 |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
203 // initialize memory area |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
204 void* operator new (unsigned int); |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
205 |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
206 // delete memory reference |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
207 void operator delete(void*); |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
208 |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
209 #endif |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
210 |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
211 private: |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
212 typedef uint8_t ScratchPad[9]; |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
213 |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
214 // parasite power on or off |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
215 bool parasite; |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
216 |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
217 // used to determine the delay amount needed to allow for the |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
218 // temperature conversion to take place |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
219 uint8_t bitResolution; |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
220 |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
221 // used to requestTemperature with or without delay |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
222 bool waitForConversion; |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
223 |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
224 // used to requestTemperature to dynamically check if a conversion is complete |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
225 bool checkForConversion; |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
226 |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
227 // count of devices on the bus |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
228 uint8_t devices; |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
229 |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
230 // Take a pointer to one wire instance |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
231 OneWire* _wire; |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
232 |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
233 // reads scratchpad and returns the raw temperature |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
234 int16_t calculateTemperature(const uint8_t*, uint8_t*); |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
235 |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
236 int16_t millisToWaitForConversion(uint8_t); |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
237 |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
238 void blockTillConversionComplete(uint8_t, const uint8_t*); |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
239 |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
240 #if REQUIRESALARMS |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
241 |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
242 // required for alarmSearch |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
243 uint8_t alarmSearchAddress[8]; |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
244 char alarmSearchJunction; |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
245 uint8_t alarmSearchExhausted; |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
246 |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
247 // the alarm handler function pointer |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
248 AlarmHandler *_AlarmHandler; |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
249 |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
250 #endif |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
251 |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
252 }; |
4f5825a9fc47
some external arduino libs, minus examples and docs
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
253 #endif |