Skip to content

Commit d9dad9d

Browse files
committed
ds18b20: remove special handling of parasite mode devices
1 parent ca8d008 commit d9dad9d

File tree

2 files changed

+10
-48
lines changed

2 files changed

+10
-48
lines changed

lua_modules/ds18b20/ds18b20-integer.lua

Lines changed: 5 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -100,30 +100,11 @@ end
100100

101101
conversion = (function (self)
102102
local sens = self.sens
103-
local powered_only = true
104-
for _, s in ipairs(sens) do powered_only = powered_only and s:byte(9) ~= 1 end
105-
if powered_only then
106-
debugPrint("starting conversion: all sensors")
107-
ow_reset(pin)
108-
ow_skip(pin) -- skip ROM selection, talk to all sensors
109-
ow_write(pin, CONVERT_T, MODE) -- and start conversion
110-
for i, _ in ipairs(sens) do status[i] = 1 end
111-
else
112-
local started = false
113-
for i, s in ipairs(sens) do
114-
if status[i] == 0 then
115-
local addr, parasite = s:sub(1,8), s:byte(9) == 1
116-
if parasite and started then break end -- do not start concurrent conversion of powered and parasite
117-
debugPrint("starting conversion:", to_string(addr), parasite and "parasite" or "")
118-
ow_reset(pin)
119-
ow_select(pin, addr) -- select the sensor
120-
ow_write(pin, CONVERT_T, MODE) -- and start conversion
121-
status[i] = 1
122-
if parasite then break end -- parasite sensor blocks bus during conversion
123-
started = true
124-
end
125-
end
126-
end
103+
debugPrint("starting conversion: all sensors")
104+
ow_reset(pin)
105+
ow_skip(pin) -- skip ROM selection, talk to all sensors
106+
ow_write(pin, CONVERT_T, MODE) -- and start conversion
107+
for i, _ in ipairs(sens) do status[i] = 1 end
127108
tmr_create():alarm(750, tmr_ALARM_SINGLE, function() return readout(self) end)
128109
end)
129110

lua_modules/ds18b20/ds18b20.lua

Lines changed: 5 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -97,30 +97,11 @@ end
9797

9898
conversion = (function (self)
9999
local sens = self.sens
100-
local powered_only = true
101-
for _, s in ipairs(sens) do powered_only = powered_only and s:byte(9) ~= 1 end
102-
if powered_only then
103-
debugPrint("starting conversion: all sensors")
104-
ow_reset(pin)
105-
ow_skip(pin) -- skip ROM selection, talk to all sensors
106-
ow_write(pin, CONVERT_T, MODE) -- and start conversion
107-
for i, _ in ipairs(sens) do status[i] = 1 end
108-
else
109-
local started = false
110-
for i, s in ipairs(sens) do
111-
if status[i] == 0 then
112-
local addr, parasite = s:sub(1,8), s:byte(9) == 1
113-
if parasite and started then break end -- do not start concurrent conversion of powered and parasite
114-
debugPrint("starting conversion:", to_string(addr), parasite and "parasite" or "")
115-
ow_reset(pin)
116-
ow_select(pin, addr) -- select the sensor
117-
ow_write(pin, CONVERT_T, MODE) -- and start conversion
118-
status[i] = 1
119-
if parasite then break end -- parasite sensor blocks bus during conversion
120-
started = true
121-
end
122-
end
123-
end
100+
debugPrint("starting conversion: all sensors")
101+
ow_reset(pin)
102+
ow_skip(pin) -- skip ROM selection, talk to all sensors
103+
ow_write(pin, CONVERT_T, MODE) -- and start conversion
104+
for i, _ in ipairs(sens) do status[i] = 1 end
124105
tmr_create():alarm(750, tmr_ALARM_SINGLE, function() return readout(self) end)
125106
end)
126107

0 commit comments

Comments
 (0)