2

我正在使用 Occidentalis v0.2 并使用 python 脚本调用 modprobe 来读取 DS18B20 的温度!

我也是 python 新手,所以请耐心等待,这是我代码的一小部分:

with open(path, "r") as f:
  contentArray = []
  for line in f:
    contentArray.append (line)
f.close

s = contentArray[0]
if s.find('YES'):
  return contentArray[0]
else:
  return 88

示例: contentArray[0] 可以给出如下结果:

68 01 4b 46 7f ff 0c 10 05 : crc=3e NO

或者:

68 01 4b 46 7f ff 08 10 05 : crc=05 YES

如果上面的代码是错误的,我该怎么做才能找到YES?因为这表明正确的 CRC。如果我有一个是,我实际上想返回contentArray[1](其中包含正确的温度值)。

4

2 回答 2

1

解决了,我必须在代码中进行此更改:

s = contentArray[0]
if s.find('YES') != -1:
  return contentArray[0]
else:
  return 88
于 2012-09-11T13:49:41.820 回答
0

谢谢,下次我会试试 .find 命令。我只是为 bash 编写了一个小单行脚本以保存温度读数。当然还有很大的改进空间。

while true; do echo -n "$(date '+%D %T'); " >> output.csv; cat /sys/devices/w1_bus_master1/*/w1_slave | grep -A 1 YES | grep -m 1 t= | cut -c30- >> output.csv; sleep 1; done

如您所见,关键字“YES”和“t=”由 grep 命令找到。

于 2014-12-05T16:15:26.800 回答