expect {
-i ${sid} -re "^success\[^\n\]*\n" { return }
-i ${sid} -re "^\r\n" { }
- -i ${sid} -re "^listen .*\n" {}
- -i ${sid} -re "^ignore .*\n" {}
+ -i ${sid} -re "^listen\[^\n\]*\n" {}
+ -i ${sid} -re "^ignore\[^\n\]*\n" {}
timeout { error "LCD protocol failure while waiting for success?" }
}
}
}
- -i ${sid} -re "^listen .*\n" {}
- -i ${sid} -re "^ignore .*\n" {}
+ -i ${sid} -re "^listen\[^\n\]*\n" {}
+ -i ${sid} -re "^ignore\[^\n\]*\n" {}
timeout { error "LCD protocol failure while waiting for echo?" }
}
}
spawn socat STDIO "TCP:${host}:${port}"
send -i ${spawn_id} "hello\n"
expect {
- -i ${spawn_id} -re "^hello\r\nconnect .*\r\n" { return ${spawn_id} }
+ -i ${spawn_id} -re "^hello\r\nconnect\[^\n]*\r\n" { return ${spawn_id} }
timeout { error "LCD protocol failure while sending hello?" }
}
}
bmemid = BME280.BME280(port=1, address=0x77)
def log(devfn, temp, logname, rrd, kw="temp"):
- rrdtool.update(rrd, "N:" + ("%f" % temp))
+ try:
+ rrdtool.update(rrd, "N:" + ("%f" % temp))
+ except Exception, e :
+ print("WARN: Cannot log %s: %s ." % (logname, e))
print ("DATA: %s %s=%s" % (logname, kw, temp))
def logfail(devfn, name, *arg):
- print ("FAIL: %s %s %s" % (name, devfn, arg))
+ print ("FAIL: %s ; %s ; %s ." % (name, devfn, arg))
-def with_ow_temp_fk_id2(devfn, loop, s, *arg, **kwarg):
+def with_ow_temp_fk_id3(devfn, loop, err, s, *arg, **kwarg):
print("WARNING: failed to read %s" % devfn)
return s # an ugly default
def with_ow_temp(cache, devfn, sk, fk, *arg, **kwarg):
if devfn in cache :
return sk(devfn, cache[devfn], *arg, **kwarg)
- with open(devfn) as devf:
- devstr = devf.read()
- devlines = devstr.split("\n")
- if devlines[0].find("YES") > 0:
- val = float((devlines[1].split(" ")[9])[2:]) / 1000
- cache[devfn] = val
- return sk(devfn, val, *arg, **kwarg)
- return fk(devfn, *arg, **kwarg)
+ try:
+ with open(devfn) as devf:
+ devstr = devf.read()
+ devlines = devstr.split("\n")
+ if devlines[0].find("YES") > 0:
+ val = float((devlines[1].split(" ")[9])[2:]) / 1000
+ cache[devfn] = val
+ return sk(devfn, val, *arg, **kwarg)
+ except Exception as e:
+ fk(devfn, e, *arg, **kwarg)
+ return fk(devfn, None, *arg, **kwarg)
def checkpid(devfn, temp, loop, s, offset, rrd, logname):
desire = 128.0 + loop.update(temp, time.time())
# Drive loop
s = with_ow_temp(cache, "/sys/bus/w1/devices/28-011620f10dee/w1_slave",
- checkpid, with_ow_temp_fk_id2, loop_hidenear, s, 5, "/home/pi/sc/data/hide-near-dmx.rrd", "dmx-hidenear")
+ checkpid, with_ow_temp_fk_id3, loop_hidenear, s, 5, "/home/pi/sc/data/hide-near-dmx.rrd", "dmx-hidenear")
s = with_ow_temp(cache, "/sys/bus/w1/devices/28-011620c805ee/w1_slave",
- checkpid, with_ow_temp_fk_id2, loop_tanknear, s, 6, "/home/pi/sc/data/tank-near-dmx.rrd", "dmx-tanknear")
+ checkpid, with_ow_temp_fk_id3, loop_tanknear, s, 6, "/home/pi/sc/data/tank-near-dmx.rrd", "dmx-tanknear")
print ("check temps fini: out=%r lhn=(%s)" % (s, loop_hidenear))
assert(dmxdev.write(s) == len(s))