]> vault307.fbx.one Git - micorpython_ir.git/blobdiff - ir_rx/test.py
Support transmit and receive on Samsung remotes.
[micorpython_ir.git] / ir_rx / test.py
index 48f342e2f4633a1ef70a6cde8fe815fb4dcca4c2..c4dbd7f4e39008818140658214b63d36eb647579 100644 (file)
@@ -2,7 +2,7 @@
 # Supports Pyboard, ESP32 and ESP8266
 
 # Author: Peter Hinch
-# Copyright Peter Hinch 2020 Released under the MIT license
+# Copyright Peter Hinch 2020-2022 Released under the MIT license
 
 # Run this to characterise a remote.
 
@@ -11,46 +11,49 @@ import time
 import gc
 from machine import Pin, freq
 from ir_rx.print_error import print_error  # Optional print of error codes
+
 # Import all implemented classes
-from ir_rx.nec import NEC_8, NEC_16
+from ir_rx.nec import NEC_8, NEC_16, SAMSUNG
 from ir_rx.sony import SONY_12, SONY_15, SONY_20
 from ir_rx.philips import RC5_IR, RC6_M0
 from ir_rx.mce import MCE
 
 # Define pin according to platform
-if platform == 'pyboard':
-    p = Pin('X3', Pin.IN)
-elif platform == 'esp8266':
+if platform == "pyboard":
+    p = Pin("X3", Pin.IN)
+elif platform == "esp8266":
     freq(160000000)
     p = Pin(13, Pin.IN)
-elif platform == 'esp32' or platform == 'esp32_LoBo':
+elif platform == "esp32" or platform == "esp32_LoBo":
     p = Pin(23, Pin.IN)
-elif platform == 'rp2':
+elif platform == "rp2":
     p = Pin(16, Pin.IN)
 
 # User callback
 def cb(data, addr, ctrl):
     if data < 0:  # NEC protocol sends repeat codes.
-        print('Repeat code.')
+        print("Repeat code.")
     else:
-        print('Data {:02x} Addr {:04x} Ctrl {:02x}'.format(data, addr, ctrl))
+        print(f"Data 0x{data:02x} Addr 0x{addr:04x} Ctrl 0x{ctrl:02x}")
+
 
 def test(proto=0):
-    classes = (NEC_8, NEC_16, SONY_12, SONY_15, SONY_20, RC5_IR, RC6_M0, MCE)
+    classes = (NEC_8, NEC_16, SONY_12, SONY_15, SONY_20, RC5_IR, RC6_M0, MCE, SAMSUNG)
     ir = classes[proto](p, cb)  # Instantiate receiver
     ir.error_function(print_error)  # Show debug information
-    #ir.verbose = True
+    # ir.verbose = True
     # A real application would do something here...
     try:
         while True:
-            print('running')
+            print("running")
             time.sleep(5)
             gc.collect()
     except KeyboardInterrupt:
         ir.close()
 
+
 # **** DISPLAY GREETING ****
-s = '''Test for IR receiver. Run:
+s = """Test for IR receiver. Run:
 from ir_rx.test import test
 test() for NEC 8 bit protocol,
 test(1) for NEC 16 bit,
@@ -60,7 +63,8 @@ test(4) for Sony SIRC 20 bit,
 test(5) for Philips RC-5 protocol,
 test(6) for RC6 mode 0.
 test(7) for Microsoft Vista MCE.
+test(8) for Samsung.
 
-Hit ctrl-c to stop, then ctrl-d to soft reset.'''
+Hit ctrl-c to stop, then ctrl-d to soft reset."""
 
 print(s)