]>
vault307.fbx.one Git - micorpython_ir.git/blob - ir_rx/test.py
9a5dacaa42ef2cbe392c900566368fc886c7c383
1 # test.py Test program for IR remote control decoder
2 # Supports Pyboard, ESP32 and ESP8266
5 # Copyright Peter Hinch 2020 Released under the MIT license
7 # Run this to characterise a remote.
9 from sys
import platform
12 from machine
import Pin
, freq
13 from ir_rx
.print_error
import print_error
# Optional print of error codes
14 # Import all implemented classes
15 from ir_rx
.nec
import NEC_8
, NEC_16
16 from ir_rx
.sony
import SONY_12
, SONY_15
, SONY_20
17 from ir_rx
.philips
import RC5_IR
, RC6_M0
18 from ir_rx
.mce
import MCE
20 # Define pin according to platform
21 if platform
== 'pyboard':
23 elif platform
== 'esp8266':
26 elif platform
== 'esp32' or platform
== 'esp32_LoBo':
30 def cb(data
, addr
, ctrl
):
31 if data
< 0: # NEC protocol sends repeat codes.
34 print('Data {:02x} Addr {:04x} Ctrl {:02x}'.format(data
, addr
, ctrl
))
37 classes
= (NEC_8
, NEC_16
, SONY_12
, SONY_15
, SONY_20
, RC5_IR
, RC6_M0
, MCE
)
38 ir
= classes
[proto
](p
, cb
) # Instantiate receiver
39 ir
.error_function(print_error
) # Show debug information
41 # A real application would do something here...
47 except KeyboardInterrupt:
50 # **** DISPLAY GREETING ****
51 s
= '''Test for IR receiver. Run:
52 from ir_rx.test import test
53 test() for NEC 8 bit protocol,
54 test(1) for NEC 16 bit,
55 test(2) for Sony SIRC 12 bit,
56 test(3) for Sony SIRC 15 bit,
57 test(4) for Sony SIRC 20 bit,
58 test(5) for Philips RC-5 protocol,
59 test(6) for RC6 mode 0.
60 test(7) for Microsoft Vista MCE.
62 Hit ctrl-c to stop, then ctrl-d to soft reset.'''