Merge branch 'use-generic-variables' of git://github.com/cipy/enviroplus-python into...
authorPhil Howard <phil@gadgetoid.com>
Tue, 20 Aug 2019 15:28:38 +0000 (16:28 +0100)
committerPhil Howard <phil@gadgetoid.com>
Tue, 20 Aug 2019 15:28:38 +0000 (16:28 +0100)
1  2 
examples/all-in-one.py

diff --combined examples/all-in-one.py
index 87840901fd5efd3610d2aecbb943ed6c27432d41,74b49581cd94681d71a6c4c889707d08b9246111..85a9a155ce8e7c12860f64c3e394cc0bfabe056b
@@@ -8,20 -8,14 +8,20 @@@ import ST773
  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 PIL import ImageDraw
  from PIL import ImageFont
 +import logging
  
 -print("""all-in-one.py - Displays readings from all of Enviro plus' sensors
 +logging.basicConfig(
 +    format='%(asctime)s.%(msecs)03d %(levelname)-8s %(message)s',
 +    level=logging.INFO,
 +    datefmt='%Y-%m-%d %H:%M:%S')
 +
 +logging.info("""all-in-one.py - Displays readings from all of Enviro plus' sensors
  
  Press Ctrl+C to exit!
  
@@@ -70,7 -64,7 +70,7 @@@ def display_text(variable, data, unit)
                 - min(values[variable]) + 1) for v in values[variable]]
      # Format the variable name and value
      message = "{}: {:.1f} {}".format(variable[:4], data, unit)
 -    print(message)
 +    logging.info(message)
      draw.rectangle((0, 0, WIDTH, HEIGHT), (255, 255, 255))
      for i in range(len(colours)):
          # Convert the values to colours from red to blue
@@@ -193,7 -187,7 +193,7 @@@ try
              unit = "ug/m3"
              try:
                  data = pms5003.read()
-             except pms5003.ReadTimeoutError:
+             except pmsReadTimeoutError:
                  pass
              else:
                  data = data.pm_ug_per_m3(1.0)
          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"
-             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: