Utility method for generating set-baseline

Realy the read/write command should probbably get updated to be able to
tale some additional data for writing but meh... creating an utility
function to generate extra-data is also workable, even if it creates
some unneccesary objects...
This commit is contained in:
Simon Albinsson
2018-04-07 22:38:26 +00:00
parent 3e10e27c85
commit 866814fe59

View File

@@ -11,10 +11,9 @@ import os.path
DEVICE_BUS = 1
DEVICE_ADDR = 0x58
BASELINE_FILENAME = os.path.expanduser("~/sgp_config_data.txt")
#print bus.write_byte_datadata(DEVICE_ADDR, 0x00, 0x01)
#self._i2c_read_words_from_cmd([0x36, 0x82], 0.01, 3)
class Sgp30():
class _commands():
"""container class for mapping between human readable names and the command values used by the sgp"""
Sgp30Cmd = namedtuple("Sgp30Cmd",["commands","replylen","waittime"])
GET_SERIAL=Sgp30Cmd([0x36, 0x82],6,10)
GET_FEATURES=Sgp30Cmd([0x20, 0x15],2,2)
@@ -24,6 +23,14 @@ class Sgp30():
GET_BASELINE=Sgp30Cmd([0x20, 0x15],6,120)
SET_BASELINE=Sgp30Cmd([0x20, 0x1e],0,10)
@classmethod
def new_set_baseline(cls,baseline_data):
baseline_cmd = copy(cls.SET_BASELINE)
baseline_cmd.commands += baseline_data
return baseline_cmd
class Sgp30():
Sgp30Answer = namedtuple("Sgp30Answer",["data","raw"])
def read_write(cmd,bus,addr=DEVICE_ADDR):
@@ -42,9 +49,7 @@ class Sgp30():
def try_set_baseline():
try:
with open(BASELINE_FILENAME,"w") as conf:
baseline=json.load(conf)
baseline_cmd = copy(SET_BASELINE)
baseline_cmd.commands += baseline
baseline_cmd = _commands.new_set_baseline(json.load(conf))
except IOError:
pass
except ValueError: