34 #include <mraa/common.hpp>
35 #include <mraa/uart_ow.hpp>
37 #define DS18B20_DEFAULT_UART 0
117 static const uint8_t DS18B20_FAMILY_CODE = 0x28;
122 CMD_WRITE_SCRATCHPAD = 0x4e,
123 CMD_READ_SCRATCHPAD = 0xbe,
124 CMD_COPY_SCRATCHPAD = 0x48,
125 CMD_RECALL_EEPROM = 0xb8,
126 CMD_READ_POWER_SUPPLY = 0xb4
131 CFG_RESOLUTION_R0 = 0x20,
132 CFG_RESOLUTION_R1 = 0x40,
133 _CFG_RESOLUTION_MASK = 3,
134 _CFG_RESOLUTION_SHIFT = 5
140 RESOLUTION_9BITS = 0,
141 RESOLUTION_10BITS = 1,
142 RESOLUTION_11BITS = 2,
143 RESOLUTION_12BITS = 3
151 DS18B20(
int uart=DS18B20_DEFAULT_UART);
175 void update(
int index=-1);
225 return m_devicesFound;
238 if (index < 0 || index >= m_devicesFound)
240 throw std::out_of_range(std::string(__FUNCTION__) +
241 ": device index out of range");
243 return m_deviceMap[index].id;
259 RESOLUTIONS_T resolution;
262 std::map<int, sensor_info_t> m_deviceMap;
267 float readSingleTemp(
int index);
DS18B20(int uart=DS18B20_DEFAULT_UART)
Definition: ds18b20.cxx:41
Definition: ds18b20.hpp:256
std::string getId(int index)
Definition: ds18b20.hpp:236
float getTemperature(int index, bool fahrenheit=false)
Definition: ds18b20.cxx:234
int devicesFound()
Definition: ds18b20.hpp:223
~DS18B20()
Definition: ds18b20.cxx:56
void setResolution(int index, RESOLUTIONS_T res)
Definition: ds18b20.cxx:248
void recallEEPROM(int index)
Definition: ds18b20.cxx:288
API for the DS18B20 1-Wire Temperature Sensor.
Definition: ds18b20.hpp:112
void copyScratchPad(int index)
Definition: ds18b20.cxx:274
void init()
Definition: ds18b20.cxx:60
void update(int index=-1)
Definition: ds18b20.cxx:136