@@ -73,7 +73,7 @@ def bin_data(self, pulses):
73
73
return bins
74
74
75
75
def decode_bits (self , pulses , debug = False ):
76
- if debug : print ("length: " , len (pulses ))
76
+ print ("length: " , len (pulses )) if debug
77
77
78
78
# special exception for NEC repeat code!
79
79
if (len (pulses ) == 3 ) and (8000 <= pulses [0 ] <= 10000 ) and (2000 <= pulses [1 ] <= 3000 ) and (450 <= pulses [2 ] <= 700 ):
@@ -86,19 +86,19 @@ def decode_bits(self, pulses, debug=False):
86
86
del pulses [0 ]
87
87
if (len (pulses ) % 2 ):
88
88
del pulses [0 ]
89
-
90
- if debug : print ("new length: " , len (pulses ))
89
+ print ("new length: " , len (pulses )) if debug
91
90
92
91
evens = pulses [0 ::2 ]
93
92
odds = pulses [1 ::2 ]
94
93
# bin both halves
95
94
even_bins = self .bin_data (evens )
96
95
odd_bins = self .bin_data (odds )
97
- if debug : print ("evenbins: " , even_bins , "oddbins:" , odd_bins )
96
+ print ("evenbins: " , even_bins , "oddbins:" , odd_bins ) if debug
97
+
98
98
outliers = [b [0 ] for b in (even_bins + odd_bins ) if b [1 ] == 1 ]
99
99
even_bins = [b for b in even_bins if (b [1 ] > 1 )]
100
100
odd_bins = [b for b in odd_bins if (b [1 ] > 1 )]
101
- if debug : print ("evenbins: " , even_bins , "oddbins:" , odd_bins , "outliers:" , outliers )
101
+ print ("evenbins: " , even_bins , "oddbins:" , odd_bins , "outliers:" , outliers ) if debug
102
102
103
103
if not even_bins or not odd_bins :
104
104
raise IRDecodeException ("Not enough data" )
@@ -112,15 +112,15 @@ def decode_bits(self, pulses, debug=False):
112
112
else :
113
113
raise IRDecodeException ("Both even/odd pulses differ" )
114
114
115
- if debug : print ("Pulses:" , pulses , "& Bins:" , pulse_bins )
115
+ print ("Pulses:" , pulses , "& Bins:" , pulse_bins ) if debug
116
116
if len (pulse_bins ) == 1 :
117
117
raise IRDecodeException ("Pulses do not differ" )
118
118
elif len (pulse_bins ) > 2 :
119
119
raise IRDecodeException ("Only mark & space handled" )
120
120
121
121
mark = min (pulse_bins [0 ][0 ], pulse_bins [1 ][0 ])
122
122
space = max (pulse_bins [0 ][0 ], pulse_bins [1 ][0 ])
123
- if debug : print ("Space:" ,space ,"Mark:" ,mark )
123
+ print ("Space:" ,space ,"Mark:" ,mark ) if debug
124
124
125
125
if outliers :
126
126
pulses = [p for p in pulses if not (outliers [0 ]* 0.75 ) <= p <= (outliers [0 ]* 1.25 )] # skip outliers
@@ -132,17 +132,17 @@ def decode_bits(self, pulses, debug=False):
132
132
pulses [i ] = True
133
133
else :
134
134
raise IRDecodeException ("Pulses outside mark/space" )
135
- if debug : print (pulses )
135
+ print (len ( pulses ), pulses ) if debug
136
136
137
- if debug : print ( len ( pulses ), pulses )
137
+ # convert bits to bytes!
138
138
output = [0 ] * ((len (pulses )+ 7 )// 8 )
139
139
for i in range (len (pulses )):
140
140
output [i // 8 ] = output [i // 8 ] << 1
141
141
if (pulses [i ]):
142
142
output [i // 8 ] | = 1
143
143
return output
144
144
145
- def read_pulses (self , input , max_pulse = 10000 , debug = False ):
145
+ def read_pulses (self , input , max_pulse = 10000 ):
146
146
received = []
147
147
while True :
148
148
while len (input ) < 8 : # not too big (slower) or too small (underruns)!
@@ -153,7 +153,6 @@ def read_pulses(self, input, max_pulse=10000, debug=False):
153
153
if not received :
154
154
continue
155
155
else :
156
- if debug : print (received )
157
156
return received
158
157
received .append (p )
159
158
0 commit comments