29
29
30
30
"""
31
31
from time import sleep
32
- from struct import unpack_from , pack_into
33
- from micropython import const
32
+ from struct import unpack_from
34
33
import adafruit_bus_device .i2c_device as i2c_device
35
34
36
35
__version__ = "0.0.0-auto.0"
@@ -56,15 +55,15 @@ def initialize(self):
56
55
# check serial number
57
56
self ._command_buffer [0 ] = 0x36
58
57
self ._command_buffer [1 ] = 0x82
59
- serialnumber = self .readWordFromCommand (3 )
58
+ serialnumber = self ._read_word_from_command (3 )
60
59
61
60
if serialnumber [0 ] != 0x0000 :
62
61
raise RuntimeError ("Serial number does not match" )
63
62
64
63
# Check feature set
65
64
self ._command_buffer [0 ] = 0x20
66
65
self ._command_buffer [1 ] = 0x2F
67
- featureset = self .readWordFromCommand ()
66
+ featureset = self ._read_word_from_command ()
68
67
if featureset [0 ] != 0x3220 :
69
68
70
69
raise RuntimeError ("Feature set does not match: %s" % hex (featureset [0 ]))
@@ -74,7 +73,7 @@ def initialize(self):
74
73
# Self Test
75
74
self ._command_buffer [0 ] = 0x28
76
75
self ._command_buffer [1 ] = 0x0E
77
- self_test = self .readWordFromCommand (delay_ms = 250 )
76
+ self_test = self ._read_word_from_command (delay_ms = 250 )
78
77
if self_test [0 ] != 0xD400 :
79
78
raise RuntimeError ("Self test failed" )
80
79
self ._reset ()
@@ -85,7 +84,7 @@ def _reset(self):
85
84
self ._command_buffer [0 ] = 0x00
86
85
self ._command_buffer [1 ] = 0x06
87
86
try :
88
- self .readWordFromCommand (delay_ms = 50 )
87
+ self ._read_word_from_command (delay_ms = 50 )
89
88
except OSError :
90
89
# print("\tGot expected OSError from reset")
91
90
pass
@@ -96,28 +95,30 @@ def raw(self):
96
95
"""The raw gas value"""
97
96
# recycle a single buffer
98
97
self ._command_buffer = bytearray (_READ_CMD )
99
- read_value = self .readWordFromCommand (delay_ms = 250 )
98
+ read_value = self ._read_word_from_command (delay_ms = 250 )
100
99
self ._command_buffer = bytearray (2 )
101
100
return read_value [0 ]
102
101
103
- def readWordFromCommand (
102
+ def _read_word_from_command (
104
103
self ,
105
104
delay_ms = 10 ,
106
105
readlen = 1 ,
107
106
):
108
- """readWordFromCommand - send a given command code and read the result back
107
+ """_read_word_from_command - send a given command code and read the result back
109
108
110
109
Args:
111
- delay_ms (int, optional): The delay between write and read, in milliseconds. Defaults to 10ms
110
+ delay_ms (int, optional): The delay between write and read, in milliseconds.
111
+ Defaults to 10ms
112
112
readlen (int, optional): The number of bytes to read. Defaults to 1.
113
113
"""
114
+ # TODO: Take 2-byte command as int (0x280E, 0x0006) and packinto command buffer
114
115
115
116
with self .i2c_device as i2c :
116
117
i2c .write (self ._command_buffer )
117
118
118
119
sleep (round (delay_ms * 0.001 , 3 ))
119
120
120
- if readlen == None :
121
+ if readlen is None :
121
122
return None
122
123
readdata_buffer = []
123
124
0 commit comments