@@ -15,87 +15,57 @@ def setup():
15
15
def initialized ():
16
16
return _initialized
17
17
18
- cdef class Reader :
19
- cdef am2302.CReader m_reader
18
+ cdef class Stream :
19
+ cdef am2302.StreamReader reader
20
20
21
- def __init__ (self , pin = 7 ):
22
- self .m_reader.m_pin = pin
21
+ def __init__ (self , pin ):
22
+ self .reader.pin = pin
23
23
24
24
def run (self ):
25
- return self .m_reader .run()
25
+ self .reader .run()
26
26
27
- # Main output properties
27
+ def print (self ):
28
+ self .reader.print ()
29
+
30
+ def valid (self ):
31
+ return self .reader.valid()
32
+
33
+ def correct (self ):
34
+ return self .reader.correct()
35
+
36
+ def humidity (self ):
37
+ return float (self .reader.humidity(self .reader.bits())) / 10.0
28
38
29
- @property
30
39
def temperature (self ):
31
- t = self .m_reader.m_temperature
40
+ t = self .reader.temperature( self .reader.bits())
32
41
if t & 0x8000 :
33
42
t = (~ t + 1 ) | 0x8000
34
43
return float (t) / 10.0
35
44
36
- @property
37
- def humidity (self ):
38
- return float (self .m_reader.m_humidity) / 10.0
39
-
40
- @property
41
- def parity (self ):
42
- return self .m_reader.m_parity
43
-
44
- @property
45
- def valid (self ):
46
- h = self .m_reader.m_humidity
47
- t = self .m_reader.m_temperature
48
- p = self .m_reader.m_parity
49
- return (((h >> 8 ) + h + (t >> 8 ) + t) & 0xFF ) == p
50
-
51
- # Debug properties
52
-
53
- @property
54
- def start1 (self ):
55
- return self .m_reader.m_start1
56
- @property
57
- def start2 (self ):
58
- return self .m_reader.m_start2
59
- @property
60
- def start3 (self ):
61
- return self .m_reader.m_start3
62
-
63
- @property
64
- def tempDone (self ):
65
- return self .m_reader.m_tempDone
66
- @property
67
- def humidityDone (self ):
68
- return self .m_reader.m_humidityDone
69
- @property
70
- def parityDone (self ):
71
- return self .m_reader.m_parityDone
72
-
73
- @property
74
- def awaitLevel (self ):
75
- return self .m_reader.m_awaitLevel
76
-
77
- @property
78
- def awaitDuration (self ):
79
- return self .m_reader.m_awaitDuration
80
-
81
- @property
82
- def awaitBit (self ):
83
- return self .m_reader.m_awaitBit
84
-
85
- class am3202_data :
86
- def __init__ (self , temperature , humidity ):
87
- self .temperature = temperature
88
- self .humidity = humidity
89
-
90
- def read (pin = 7 , retries = 10 ):
91
- setup()
92
- reader = Reader(pin)
93
- for r in range (retries):
94
- if reader.run() and reader.valid:
95
- return am3202_data(
96
- temperature = reader.temperature,
97
- humidity = reader.humidity,
98
- )
99
-
100
- # wait before checking sensor again
101
- time.sleep(1 )
45
+ def timingsStart (self , i , val = None ):
46
+ if val is None :
47
+ return self .reader.timingsStart[i]
48
+ else :
49
+ self .reader.timingsStart[i] = val
50
+
51
+ def timingsHigh (self , i , val = None ):
52
+ if val is None :
53
+ return self .reader.timingsHigh[i]
54
+ else :
55
+ self .reader.timingsHigh[i] = val
56
+
57
+ def timingsLow (self , i , val = None ):
58
+ if val is None :
59
+ return self .reader.timingsLow[i]
60
+ else :
61
+ self .reader.timingsLow[i] = val
62
+
63
+ def defectHigh (self ):
64
+ i = self .reader.defectHigh()
65
+ if i >= 0 :
66
+ return i
67
+
68
+ def defectLow (self ):
69
+ i = self .reader.defectLow()
70
+ if i >= 0 :
71
+ return i
0 commit comments