Skip to content

Remove debugging to save 300 bytes in pIRkey builds. #27

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Jun 13, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 2 additions & 16 deletions adafruit_irremote.py
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@
pulses = decoder.read_pulses(pulsein)
print("Heard", len(pulses), "Pulses:", pulses)
try:
code = decoder.decode_bits(pulses, debug=False)
code = decoder.decode_bits(pulses)
print("Decoded:", code)
except adafruit_irremote.IRNECRepeatException: # unusual short code!
print("NEC repeat!")
Expand Down Expand Up @@ -111,11 +111,9 @@ def bin_data(self, pulses):
#print(bins)
return bins

def decode_bits(self, pulses, debug=False):
def decode_bits(self, pulses):
"""Decode the pulses into bits."""
# pylint: disable=too-many-branches,too-many-statements
if debug:
print("length: ", len(pulses))

# special exception for NEC repeat code!
if ((len(pulses) == 3) and (8000 <= pulses[0] <= 10000) and
Expand All @@ -129,22 +127,16 @@ def decode_bits(self, pulses, debug=False):
del pulses[0]
if len(pulses) % 2 == 1:
del pulses[0]
if debug:
print("new length: ", len(pulses))

evens = pulses[0::2]
odds = pulses[1::2]
# bin both halves
even_bins = self.bin_data(evens)
odd_bins = self.bin_data(odds)
if debug:
print("evenbins: ", even_bins, "oddbins:", odd_bins)

outliers = [b[0] for b in (even_bins + odd_bins) if b[1] == 1]
even_bins = [b for b in even_bins if b[1] > 1]
odd_bins = [b for b in odd_bins if b[1] > 1]
if debug:
print("evenbins: ", even_bins, "oddbins:", odd_bins, "outliers:", outliers)

if not even_bins or not odd_bins:
raise IRDecodeException("Not enough data")
Expand All @@ -158,17 +150,13 @@ def decode_bits(self, pulses, debug=False):
else:
raise IRDecodeException("Both even/odd pulses differ")

if debug:
print("Pulses:", pulses, "& Bins:", pulse_bins)
if len(pulse_bins) == 1:
raise IRDecodeException("Pulses do not differ")
elif len(pulse_bins) > 2:
raise IRDecodeException("Only mark & space handled")

mark = min(pulse_bins[0][0], pulse_bins[1][0])
space = max(pulse_bins[0][0], pulse_bins[1][0])
if debug:
print("Space:", space, "Mark:", mark)

if outliers:
# skip outliers
Expand All @@ -182,8 +170,6 @@ def decode_bits(self, pulses, debug=False):
pulses[i] = True
else:
raise IRDecodeException("Pulses outside mark/space")
if debug:
print(len(pulses), pulses)

# convert bits to bytes!
output = [0] * ((len(pulses)+7)//8)
Expand Down
2 changes: 1 addition & 1 deletion examples/irremote_simpletest.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
pulses = decoder.read_pulses(pulsein)
print("Heard", len(pulses), "Pulses:", pulses)
try:
code = decoder.decode_bits(pulses, debug=False)
code = decoder.decode_bits(pulses)
print("Decoded:", code)
except adafruit_irremote.IRNECRepeatException: # unusual short code!
print("NEC repeat!")
Expand Down