Używam OCCITITALIS V0.2 i dzwoniąc do modprobe ze skryptem Pythona, aby odczytać temperatury z jednego DS18B20!

Jestem nowy, podobnie jak Pythona, a także niedźwiedź ze mną, jest to mała część mojego kodu:

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

Przykład: Contontarray [0] może podać wyniki jako:

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

Lub:

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

Jeśli powyższy kod jest nieprawidłowy, jak mogę zrobić, aby znaleźć YES? Ponieważ stany Prawidłowe CRC. Jeśli mam tak, właściwie chcę wrócić contentArray[1] (który zawiera prawidłową wartość temperatury).

2
Christian 11 wrzesień 2012, 17:14

2 odpowiedzi

Najlepsza odpowiedź

Rozwiązany, musiałem dokonać tej zmiany w kodzie:

s = contentArray[0]
if s.find('YES') != -1:
  return contentArray[0]
else:
  return 88
1
Benjamin 2 luty 2014, 20:07

Dziękuję, wypróbuję polecenie .find następnym razem. Właśnie skryptujemy małą liniową na bash, aby zaoszczędzić odczyty temperatury. Oczywiście jest dużo miejsca na poprawę.

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

Jak widać, słowa kluczowe "tak" i "t =" znajdują się przez polecenie grep.

0
McPeppr 5 grudzień 2014, 16:15