X-Git-Url: https://vault307.fbx.one/gitweb/micorpython_ir.git/blobdiff_plain/093078a906a962da52082b2c4a5de746102d92e8..3bc46448ddca0bfdf3a98d96c3e9315159bf642b:/ir_rx_test.py diff --git a/ir_rx_test.py b/ir_rx_test.py index 2785398..a436082 100644 --- a/ir_rx_test.py +++ b/ir_rx_test.py @@ -8,6 +8,7 @@ from sys import platform import time +import gc from machine import Pin, freq from ir_rx import * @@ -19,20 +20,21 @@ elif platform == 'esp8266': freq(160000000) p = Pin(13, Pin.IN) elif ESP32: - p = Pin(23, Pin.IN) - -errors = {BADSTART : 'Invalid start pulse', BADBLOCK : 'Error: bad block', - BADREP : 'Error: repeat', OVERRUN : 'Error: overrun', - BADDATA : 'Error: invalid data', BADADDR : 'Error: invalid address'} + p = Pin(23, Pin.IN) # was 27 +# User callback def cb(data, addr, ctrl): - if data == REPEAT: # NEC protocol sends repeat codes. + if data < 0: # NEC protocol sends repeat codes. print('Repeat code.') - elif data >= 0: - print('Data {:03x} Addr {:03x} Ctrl {:01x}'.format(data, addr, ctrl)) else: - print(errors[data]) # Application would ignore errors + print('Data {:03x} Addr {:03x} Ctrl {:01x}'.format(data, addr, ctrl)) +# Optionally print debug information +def errf(data): + errors = {BADSTART : 'Invalid start pulse', BADBLOCK : 'Error: bad block', + BADREP : 'Error: repeat', OVERRUN : 'Error: overrun', + BADDATA : 'Error: invalid data', BADADDR : 'Error: invalid address'} + print(errors[data]) s = '''Test for IR receiver. Run: from ir_rx_test import test @@ -43,8 +45,7 @@ test(3) for Sony SIRC 20 bit, test(5) for Philips RC-5 protocol, test(6) for RC6 mode 0. -Background processing means REPL prompt reappears. -Hit ctrl-D to stop (soft reset).''' +Hit ctrl-c to stop, then ctrl-d to soft reset.''' print(s) @@ -52,15 +53,16 @@ def test(proto=0): if proto == 0: ir = NEC_IR(p, cb) # Extended mode elif proto < 4: - bits = (12, 15, 20)[proto - 1] - ir = SONY_IR(p, cb, bits) - ir.verbose = True + ir = SONY_IR(p, cb) + ir.bits = (12, 15, 20)[proto - 1] + #ir.verbose = True elif proto == 5: ir = RC5_IR(p, cb) elif proto == 6: ir = RC6_M0(p, cb) - ir.verbose = True + ir.error_function(errf) # Show debug information # A real application would do something here... - #while True: - #time.sleep(5) - #print('running') + while True: + print('running') + time.sleep(5) + gc.collect()