use generic variables; handle pms5003.ReadTimeoutError
authorCiprian Manea <ciprian.manea@gmail.com>
Sun, 4 Aug 2019 08:08:54 +0000 (11:08 +0300)
committerCiprian Manea <ciprian.manea@gmail.com>
Sun, 4 Aug 2019 08:08:54 +0000 (11:08 +0300)
examples/all-in-one.py

index ca0760b6e84f651a456921b88f5ed34f37a1c424..bfefe7ad4c0824f58514da53d894ec5d0402dcbd 100755 (executable)
@@ -130,7 +130,7 @@ try:
 
         # One mode for each variable
         if mode == 0:
-            variable = "temperature"
+            variable = "temperature"
             unit = "C"
             cpu_temp = get_cpu_temperature()
             # Smooth out with some averaging to decrease jitter
@@ -138,70 +138,74 @@ try:
             avg_cpu_temp = sum(cpu_temps) / float(len(cpu_temps))
             raw_temp = bme280.get_temperature()
             data = raw_temp - ((avg_cpu_temp - raw_temp) / factor)
-            display_text(variable, data, unit)
+            display_text(variables[mode], data, unit)
 
         if mode == 1:
-            variable = "pressure"
+            variable = "pressure"
             unit = "hPa"
             data = bme280.get_pressure()
-            display_text(variable, data, unit)
+            display_text(variables[mode], data, unit)
 
         if mode == 2:
-            variable = "humidity"
+            variable = "humidity"
             unit = "%"
             data = bme280.get_humidity()
-            display_text(variable, data, unit)
+            display_text(variables[mode], data, unit)
 
         if mode == 3:
-            variable = "light"
+            variable = "light"
             unit = "Lux"
             if proximity < 10:
                 data = ltr559.get_lux()
             else:
                 data = 1
-            display_text(variable, data, unit)
+            display_text(variables[mode], data, unit)
 
         if mode == 4:
-            variable = "oxidised"
+            variable = "oxidised"
             unit = "kO"
             data = gas.read_all()
             data = data.oxidising / 1000
-            display_text(variable, data, unit)
+            display_text(variables[mode], data, unit)
 
         if mode == 5:
-            variable = "reduced"
+            variable = "reduced"
             unit = "kO"
             data = gas.read_all()
             data = data.reducing / 1000
-            display_text(variable, data, unit)
+            display_text(variables[mode], data, unit)
 
         if mode == 6:
-            variable = "nh3"
+            variable = "nh3"
             unit = "kO"
             data = gas.read_all()
             data = data.nh3 / 1000
-            display_text(variable, data, unit)
+            display_text(variables[mode], data, unit)
 
         if mode == 7:
-            variable = "pm1"
+            #variable = "pm1"
             unit = "ug/m3"
-            data = pms5003.read()
-            data = data.pm_ug_per_m3(1.0)
-            display_text(variable, data, unit)
+            try:
+                data = pms5003.read()
+            except pms5003.ReadTimeoutError:
+                pass
+            else:
+                data = data.pm_ug_per_m3(1.0)
+                display_text(variables[mode], data, unit)
 
         if mode == 8:
-            variable = "pm25"
+            variable = "pm25"
             unit = "ug/m3"
             data = pms5003.read()
             data = data.pm_ug_per_m3(2.5)
-            display_text(variable, data, unit)
+            display_text(variables[mode], data, unit)
 
         if mode == 9:
-            variable = "pm10"
+            variable = "pm10"
             unit = "ug/m3"
             data = pms5003.read()
             data = data.pm_ug_per_m3(10)
-            display_text(variable, data, unit)
+            display_text(variables[mode], data, unit)
 
 # Exit cleanly
 except KeyboardInterrupt: