Fixed graphing problem for PMS5003 results
authorKostadin <kostadinvo+github@gmail.com>
Sat, 26 Oct 2019 10:26:47 +0000 (13:26 +0300)
committerKostadin <kostadinvo+github@gmail.com>
Sat, 26 Oct 2019 10:26:47 +0000 (13:26 +0300)
The PMS5003 library returns integers. This causes the current formula for color scaling of the graph to not work properly because of integer division instead of float division. Converting the PMS5003 results from int to float solves the problem.

examples/all-in-one.py

index 87acc6fd8fbf09e4f5ebd9fd72a90ec2b674f3dc..03e4d5880d186e4cede2112ac836119b593b72f6 100755 (executable)
@@ -201,7 +201,7 @@ try:
             except pmsReadTimeoutError:
                 logging.warn("Failed to read PMS5003")
             else:
-                data = data.pm_ug_per_m3(1.0)
+                data = float(data.pm_ug_per_m3(1.0))
                 display_text(variables[mode], data, unit)
 
         if mode == 8:
@@ -212,7 +212,7 @@ try:
             except pmsReadTimeoutError:
                 logging.warn("Failed to read PMS5003")
             else:
-                data = data.pm_ug_per_m3(2.5)
+                data = float(data.pm_ug_per_m3(2.5))
                 display_text(variables[mode], data, unit)
 
         if mode == 9:
@@ -223,7 +223,7 @@ try:
             except pmsReadTimeoutError:
                 logging.warn("Failed to read PMS5003")
             else:
-                data = data.pm_ug_per_m3(10)
+                data = float(data.pm_ug_per_m3(10))
                 display_text(variables[mode], data, unit)
 
 # Exit cleanly