From 85439fb1907acf97eba629f9432cf824d9ebf28c Mon Sep 17 00:00:00 2001 From: Sandy Macdonald Date: Thu, 13 Jun 2019 12:44:11 +0100 Subject: [PATCH] Fix for PMS5003 ReadTimeoutError --- examples/luftdaten.py | 14 ++++++++++---- examples/particulates.py | 11 +++++++---- 2 files changed, 17 insertions(+), 8 deletions(-) diff --git a/examples/luftdaten.py b/examples/luftdaten.py index 2177a56..d22be88 100755 --- a/examples/luftdaten.py +++ b/examples/luftdaten.py @@ -5,7 +5,7 @@ import json import requests import ST7735 from bme280 import BME280 -from pms5003 import PMS5003 +from pms5003 import PMS5003, ReadTimeoutError from subprocess import PIPE, Popen, check_output from PIL import Image, ImageDraw, ImageFont @@ -55,9 +55,15 @@ def read_values(): values["temperature"] = "{:.2f}".format(comp_temp) values["pressure"] = "{:.2f}".format(bme280.get_pressure() * 100) values["humidity"] = "{:.2f}".format(bme280.get_humidity()) - pm_values = pms5003.read() - values["P2"] = str(pm_values.pm_ug_per_m3(2.5)) - values["P1"] = str(pm_values.pm_ug_per_m3(10)) + try: + pm_values = pms5003.read() + values["P2"] = str(pm_values.pm_ug_per_m3(2.5)) + values["P1"] = str(pm_values.pm_ug_per_m3(10)) + except ReadTimeoutError: + pms5003 = PMS5003() + pm_values = pms5003.read() + values["P2"] = str(pm_values.pm_ug_per_m3(2.5)) + values["P1"] = str(pm_values.pm_ug_per_m3(10)) return values # Get CPU temperature to use for compensation diff --git a/examples/particulates.py b/examples/particulates.py index 99803ec..e71ca5d 100755 --- a/examples/particulates.py +++ b/examples/particulates.py @@ -1,7 +1,7 @@ #!/usr/bin/env python import time -from pms5003 import PMS5003 +from pms5003 import PMS5003, ReadTimeoutError print("""particulates.py - Print readings from the PMS5003 particulate sensor. @@ -14,8 +14,11 @@ time.sleep(1.0) try: while True: - readings = pms5003.read() - print(readings) - time.sleep(1.0) + try: + readings = pms5003.read() + print(readings) + time.sleep(1.0) + except ReadTimeoutError: + pms5003 = PMS5003() except KeyboardInterrupt: pass -- 2.30.2