catching the correct ReadTimeoutError for pms5003
[EVA-2020-02-2.git] / examples / all-in-one.py
index bfefe7ad4c0824f58514da53d894ec5d0402dcbd..74b49581cd94681d71a6c4c889707d08b9246111 100755 (executable)
@@ -8,7 +8,7 @@ import ST7735
 import ltr559
 
 from bme280 import BME280
 import ltr559
 
 from bme280 import BME280
-from pms5003 import PMS5003
+from pms5003 import PMS5003, ReadTimeoutError as pmsReadTimeoutError
 from enviroplus import gas
 from subprocess import PIPE, Popen
 from PIL import Image
 from enviroplus import gas
 from subprocess import PIPE, Popen
 from PIL import Image
@@ -183,11 +183,11 @@ try:
             display_text(variables[mode], data, unit)
 
         if mode == 7:
             display_text(variables[mode], data, unit)
 
         if mode == 7:
-            #variable = "pm1"
+            # variable = "pm1"
             unit = "ug/m3"
             try:
                 data = pms5003.read()
             unit = "ug/m3"
             try:
                 data = pms5003.read()
-            except pms5003.ReadTimeoutError:
+            except pmsReadTimeoutError:
                 pass
             else:
                 data = data.pm_ug_per_m3(1.0)
                 pass
             else:
                 data = data.pm_ug_per_m3(1.0)
@@ -196,16 +196,24 @@ try:
         if mode == 8:
             # variable = "pm25"
             unit = "ug/m3"
         if mode == 8:
             # variable = "pm25"
             unit = "ug/m3"
-            data = pms5003.read()
-            data = data.pm_ug_per_m3(2.5)
-            display_text(variables[mode], data, unit)
+            try:
+                data = pms5003.read()
+            except pmsReadTimeoutError:
+                pass
+            else:
+                data = data.pm_ug_per_m3(2.5)
+                display_text(variables[mode], data, unit)
 
         if mode == 9:
             # variable = "pm10"
             unit = "ug/m3"
 
         if mode == 9:
             # variable = "pm10"
             unit = "ug/m3"
-            data = pms5003.read()
-            data = data.pm_ug_per_m3(10)
-            display_text(variables[mode], data, unit)
+            try:
+                data = pms5003.read()
+            except pmsReadTimeoutError:
+                pass
+            else:
+                data = data.pm_ug_per_m3(10)
+                display_text(variables[mode], data, unit)
 
 # Exit cleanly
 except KeyboardInterrupt:
 
 # Exit cleanly
 except KeyboardInterrupt: