catching the correct ReadTimeoutError for pms5003
authorCiprian Manea <ciprian.manea@gmail.com>
Sun, 18 Aug 2019 19:18:58 +0000 (22:18 +0300)
committerCiprian Manea <ciprian.manea@gmail.com>
Sun, 18 Aug 2019 19:18:58 +0000 (22:18 +0300)
examples/all-in-one.py

index 63439519670181ad5e6467e057aa6556588d7cf8..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
@@ -187,7 +187,7 @@ try:
             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: