zdi-mainfranken / feinstaub

Projekt zur Entwicklung eines Feinstaub-Messers auf Basis eines Pi
1 stars 0 forks source link

aqi.py stürzt nach einigen durchläufen ab. #1

Open consoleiro opened 5 years ago

consoleiro commented 5 years ago

PM2.5: 0.0 , PM10: 0.0 PM2.5: 3.5 , PM10: 3.8 PM2.5: 4.1 , PM10: 4.4 PM2.5: 4.5 , PM10: 4.9 PM2.5: 4.7 , PM10: 5.3 PM2.5: 4.6 , PM10: 5.1 PM2.5: 4.6 , PM10: 5.1 PM2.5: 4.6 , PM10: 5.8 PM2.5: 4.8 , PM10: 6.1 PM2.5: 4.7 , PM10: 5.8 PM2.5: 4.8 , PM10: 5.7 PM2.5: 4.9 , PM10: 5.7 PM2.5: 4.9 , PM10: 5.7 PM2.5: 4.9 , PM10: 5.6 PM2.5: 4.9 , PM10: 5.5 Going to sleep for 1 min... PM2.5: 5.2 , PM10: 6.9 PM2.5: 4.8 , PM10: 5.3 PM2.5: 4.9 , PM10: 6.9 PM2.5: 4.9 , PM10: 6.9 PM2.5: 5.1 , PM10: 6.2 PM2.5: 5.2 , PM10: 10.6 PM2.5: 5.2 , PM10: 10.6 PM2.5: 5.1 , PM10: 9.9 PM2.5: 5.4 , PM10: 9.6 PM2.5: 5.4 , PM10: 9.6 PM2.5: 5.6 , PM10: 9.7 PM2.5: 5.5 , PM10: 9.0 PM2.5: 5.5 , PM10: 9.0 PM2.5: 5.2 , PM10: 8.3 PM2.5: 5.2 , PM10: 7.9 Going to sleep for 1 min... PM2.5: 5.3 , PM10: 7.3 PM2.5: 5.2 , PM10: 6.9 PM2.5: 5.2 , PM10: 6.9 PM2.5: 5.3 , PM10: 6.8 PM2.5: 5.3 , PM10: 7.6 PM2.5: 5.3 , PM10: 7.6 PM2.5: 5.3 , PM10: 8.6 PM2.5: 5.3 , PM10: 8.3 PM2.5: 5.3 , PM10: 8.3 PM2.5: 5.3 , PM10: 8.1 PM2.5: 5.3 , PM10: 8.3 PM2.5: 5.3 , PM10: 8.3 PM2.5: 5.3 , PM10: 8.1 PM2.5: 5.3 , PM10: 7.8 PM2.5: 5.3 , PM10: 7.8 Going to sleep for 1 min... PM2.5: 5.3 , PM10: 9.0 PM2.5: 5.3 , PM10: 9.0 PM2.5: 5.2 , PM10: 8.8 PM2.5: 5.2 , PM10: 8.6 PM2.5: 5.2 , PM10: 8.6 PM2.5: 5.2 , PM10: 8.4 PM2.5: 5.1 , PM10: 8.2 Traceback (most recent call last): File "./aqi.py", line 105, in print("PM2.5: ", values[0], ", PM10: ", values[1]) IndexError: list index out of range

philippze commented 5 years ago

Anscheinend ist der Array values leer. Das muss daran liegen, dass die Bedingung d[1] == "\xc0" nicht erfüllt ist, hier: https://github.com/zdi-mainfranken/feinstaub/blob/master/AQI/aqi.py#L74

Was bedeutet diese Bedingung?

consoleiro commented 5 years ago

Die Daten die ankommen werden aus dem sensor via serial port ausgelesen. schätze mal es wird das raw encoding sein, auf das er wartet. und wenn der hex string nicht \xc0 enthält, die frage ist dann warum, dann stirbt er. kann man an der stelle evtl. sowas wie eine weiche reinmachen, das er den string immer schluckt und umwandelt, egal was kommt, dann kann es halt sein das mal unsinige werte rasukommen. ich mache später mal noch einen lauf im debug modus, dann gibt er die hexwerte mit aus.

philippze commented 5 years ago

Im Branch issue/1-quickfix wird der Fehler jetzt gefangen. Falls die Daten nicht OK sind, wir einfach ausgegeben: "A strange error occured" und das Programm läuft weiter.