Browse Source

Progress on USB-UIRT wrapper (kind of; it can turn down the volume on Cody's television); captured the IR codes that the Vornado remote sends.

Douglas William Thrift 12 years ago
parent
commit
dad68fb374
2 changed files with 173 additions and 0 deletions
  1. 42 0
      usbuirt.py
  2. 131 0
      vornado.py

+ 42 - 0
usbuirt.py

@@ -7,3 +7,45 @@
 # usbuirt.py
 
 import ctypes
+
+UUIRTDRV_ERR_NO_DEVICE  = 0x20000001
+UUIRTDRV_ERR_NO_RESP    = 0x20000002
+UUIRTDRV_ERR_NO_DLL     = 0x20000003
+UUIRTDRV_ERR_VERSION    = 0x20000004
+
+UUIRTDRV_CFG_LEDRX      = 0x0001
+UUIRTDRV_CFG_LEDTX      = 0x0002
+UUIRTDRV_CFG_LEGACYRX   = 0x0004
+
+UUIRTDRV_IRFMT_UUIRT    = 0x0000
+UUIRTDRV_IRFMT_PRONTO   = 0x0010
+
+UUIRTDRV_IRFMT_LEARN_FORCERAW   = 0x0100
+UUIRTDRV_IRFMT_LEARN_FORCESTRUC = 0x0200
+UUIRTDRV_IRFMT_LEARN_FORCEFREQ  = 0x0400
+UUIRTDRV_IRFMT_LEARN_FREQDETECT = 0x0800
+
+class UUINFO(ctypes.Structure):
+    _fields_ = [
+        ('fwVersion', ctypes.c_uint),
+        ('protVersion', ctypes.c_uint),
+        ('fwDateDay', ctypes.c_ubyte),
+        ('fwDateMonth', ctypes.c_ubyte),
+        ('fwDateYear', ctypes.c_ubyte),
+    ]
+
+if __name__ == '__main__':
+    uuirtdrv = ctypes.WinDLL('uuirtdrv', use_last_error = True)
+    handle = uuirtdrv.UUIRTOpen()
+
+    print handle
+    print uuirtdrv.UUIRTTransmitIR(handle, '''
+        0000 006E 0022 0002 0155 00AA 0015 0016 0015 0016 0015 0040 0015 0016
+        0015 0016 0015 0016 0015 0016 0015 0016 0015 0040 0015 0040 0015 0016
+        0015 0040 0015 0040 0015 0040 0015 0040 0015 0040 0015 0040 0015 0040
+        0015 0016 0015 0016 0015 0016 0015 0016 0015 0016 0015 0016 0015 0016
+        0015 0016 0015 0040 0015 0040 0015 0040 0015 0040 0015 0040 0015 0040
+        0015 05EC 0155 0055 0015 0E34
+    ''', UUIRTDRV_IRFMT_PRONTO, 1, 0, None, None, None)
+
+    uuirtdrv.UUIRTClose(handle)

+ 131 - 0
vornado.py

@@ -0,0 +1,131 @@
+#!/usr/bin/env python
+# DT Home
+#  Vornado
+#
+# Douglas Thrift
+#
+# vornado.py
+
+class Vornado(object):
+    def __init__(self):
+        pass
+
+    def mode(self):
+        return '''
+            0000 006D 0000 0054 002F 0010 002F 0010 0010 0031 002F 0011 002F
+            0010 0010 0031 0010 0031 0010 0031 0010 0031 0010 0031 0010 0031
+            002F 0114 002F 0010 002F 0010 0010 0031 002F 0011 002F 0010 0010
+            0031 0010 0031 0010 0031 0010 0031 0010 0031 0010 0031 002F 0114
+            002F 0010 002F 0010 0010 0031 002F 0011 002F 0010 0010 0031 0010
+            0031 0010 0031 0010 0031 0010 0031 0010 0031 002F 0114 002F 0010
+            002F 0010 0010 0031 002F 0011 002F 0010 0010 0031 0010 0031 0010
+            0031 0010 0031 0010 0031 0010 0031 002F 0114 002F 0010 002F 0010
+            0010 0031 002F 0011 002F 0010 0010 0031 0010 0031 0010 0031 0010
+            0031 0010 0031 0010 0031 002F 0114 002F 0010 002F 0010 0010 0031
+            002F 0011 002F 0010 0010 0031 0010 0031 0010 0031 0010 0031 0010
+            0031 0010 0031 002F 0114 002F 0010 002F 0010 0010 0031 002F 0011
+            002F 0010 0010 0031 0010 0031 0010 0031 0010 0031 0010 0031 0010
+            0031 002F 0F8F
+        '''
+
+    def power(self):
+        return '''
+            0000 006C 0000 006C 002F 0010 002F 0010 0010 0031 002F 0011 002F
+            0010 0010 0031 0010 0031 0010 0031 002F 0010 0010 0031 0010 0031
+            0010 0135 002F 0010 002F 0010 0010 0031 002F 0011 002F 0010 0010
+            0031 0010 0031 0010 0031 002F 0010 0010 0031 0010 0031 0010 0135
+            002F 0010 002F 0010 0010 0031 002F 0011 002F 0010 0010 0031 0010
+            0031 0010 0031 002F 0010 0010 0031 0010 0031 0010 0135 002F 0010
+            002F 0010 0010 0031 002F 0011 002F 0010 0010 0031 0010 0031 0010
+            0031 002F 0010 0010 0031 0010 0031 0010 0135 002F 0010 002F 0010
+            0010 0031 002F 0011 002F 0010 0010 0031 0010 0031 0010 0031 002F
+            0010 0010 0031 0010 0031 0010 0135 002F 0010 002F 0010 0010 0031
+            002F 0011 002F 0010 0010 0031 0010 0031 0010 0031 002F 0010 0010
+            0031 0010 0031 0010 0135 002F 0010 002F 0010 0010 0031 002F 0011
+            002F 0010 0010 0031 0010 0031 0010 0031 002F 0010 0010 0031 0010
+            0031 0010 0135 002F 0010 002F 0010 0010 0031 002F 0011 002F 0010
+            0010 0031 0010 0031 0010 0031 002F 0010 0010 0031 0010 0031 0010
+            0135 002F 0010 002F 0010 0010 0031 002F 0011 002F 0010 0010 0031
+            0010 0031 0010 0031 002F 0010 0010 0031 0010 0031 0010 0F93
+        '''
+
+    def timer_up(self):
+        return '''
+            0000 006D 0000 0090 002F 0010 002F 0010 0010 0031 002F 0011 002F
+            0010 002F 0010 0010 0031 0010 0031 0010 0031 0010 0031 002F 0010
+            002F 0114 002F 0010 002F 0010 0010 0031 002F 0011 002F 0010 002F
+            0010 0010 0031 0010 0031 0010 0031 0010 0031 002F 0010 002F 0114
+            002F 0010 002F 0010 0010 0031 002F 0011 002F 0010 002F 0010 0010
+            0031 0010 0031 0010 0031 0010 0031 002F 0010 002F 0114 002F 0010
+            002F 0010 0010 0031 002F 0011 002F 0010 002F 0010 0010 0031 0010
+            0031 0010 0031 0010 0031 002F 0010 002F 0114 002F 0010 002F 0010
+            0010 0031 002F 0011 002F 0010 002F 0010 0010 0031 0010 0031 0010
+            0031 0010 0031 002F 0010 002F 0114 002F 0010 002F 0010 0010 0031
+            002F 0011 002F 0010 002F 0010 0010 0031 0010 0031 0010 0031 0010
+            0031 002F 0010 002F 0114 002F 0010 002F 0010 0010 0031 002F 0011
+            002F 0010 002F 0010 0010 0031 0010 0031 0010 0031 0010 0031 002F
+            0010 002F 0114 002F 0010 002F 0010 0010 0031 002F 0011 002F 0010
+            002F 0010 0010 0031 0010 0031 0010 0031 0010 0031 002F 0010 002F
+            0114 002F 0010 002F 0010 0010 0031 002F 0011 002F 0010 002F 0010
+            0010 0031 0010 0031 0010 0031 0010 0031 002F 0010 002F 0114 002F
+            0010 002F 0010 0010 0031 002F 0011 002F 0010 002F 0010 0010 0031
+            0010 0031 0010 0031 0010 0031 002F 0010 002F 0114 002F 0010 002F
+            0010 0010 0031 002F 0011 002F 0010 002F 0010 0010 0031 0010 0031
+            0010 0031 0010 0031 002F 0010 002F 0114 002F 0010 002F 0010 0010
+            0031 002F 0011 002F 0010 002F 0010 0010 0031 0010 0031 0010 0031
+            0010 0031 002F 0010 002F 0F8F
+        '''
+
+    def timer_down(self):
+        return '''
+            0000 006D 0000 0078 002F 0010 002F 0010 0010 0031 002F 0011 002F
+            0010 0010 0031 002F 0010 0010 0031 0010 0031 0010 0031 0010 0031
+            0010 0135 002F 0010 002F 0010 0010 0031 002F 0011 002F 0010 0010
+            0031 002F 0010 0010 0031 0010 0031 0010 0031 0010 0031 0010 0135
+            002F 0010 002F 0010 0010 0031 002F 0011 002F 0010 0010 0031 002F
+            0010 0010 0031 0010 0031 0010 0031 0010 0031 0010 0135 002F 0010
+            002F 0010 0010 0031 002F 0011 002F 0010 0010 0031 002F 0010 0010
+            0031 0010 0031 0010 0031 0010 0031 0010 0135 002F 0010 002F 0010
+            0010 0031 002F 0011 002F 0010 0010 0031 002F 0010 0010 0031 0010
+            0031 0010 0031 0010 0031 0010 0135 002F 0010 002F 0010 0010 0031
+            002F 0011 002F 0010 0010 0031 002F 0010 0010 0031 0010 0031 0010
+            0031 0010 0031 0010 0135 002F 0010 002F 0010 0010 0031 002F 0011
+            002F 0010 0010 0031 002F 0010 0010 0031 0010 0031 0010 0031 0010
+            0031 0010 0135 002F 0010 002F 0010 0010 0031 002F 0011 002F 0010
+            0010 0031 002F 0010 0010 0031 0010 0031 0010 0031 0010 0031 0010
+            0135 002F 0010 002F 0010 0010 0031 002F 0011 002F 0010 0010 0031
+            002F 0010 0010 0031 0010 0031 0010 0031 0010 0031 0010 0135 002F
+            0010 002F 0010 0010 0031 002F 0011 002F 0010 0010 0031 002F 0010
+            0010 0031 0010 0031 0010 0031 0010 0031 0010 0F91
+        '''
+
+    def temp_up(self):
+        return '''
+            0000 006C 001E 0007 002F 0011 002F 0011 0010 0031 002F 0011 002F
+            0010 0010 0031 0010 0031 0010 0031 0010 0031 0010 0031 002F 0010
+            0010 0136 002F 0011 002F 0011 0010 0031 002F 0011 002F 0011 0010
+            0031 0010 0031 0010 0031 0010 0031 0010 0031 002F 0011 0010 0136
+            002F 0091 002F 0091 0010 0031 0010 0031 0010 0031 0010 15D7 002F
+            0091 002F 0091 0010 0031 0010 0031 0010 0031 0010 0031 002F 15D7
+        '''
+
+    def temp_down(self):
+        return '''
+            0000 006D 0000 006C 002F 0010 002F 0010 0010 0031 002F 0011 002F
+            0010 0010 0031 0010 0031 0010 0031 0010 0031 002F 0010 0010 0031
+            0010 0135 002F 0010 002F 0010 0010 0031 002F 0011 002F 0010 0010
+            0031 0010 0031 0010 0031 0010 0031 002F 0010 0010 0031 0010 0135
+            002F 0010 002F 0010 0010 0031 002F 0011 002F 0010 0010 0031 0010
+            0031 0010 0031 0010 0031 002F 0010 0010 0031 0010 0135 002F 0010
+            002F 0010 0010 0031 002F 0011 002F 0010 0010 0031 0010 0031 0010
+            0031 0010 0031 002F 0010 0010 0031 0010 0135 002F 0010 002F 0010
+            0010 0031 002F 0011 002F 0010 0010 0031 0010 0031 0010 0031 0010
+            0031 002F 0010 0010 0031 0010 0135 002F 0010 002F 0010 0010 0031
+            002F 0011 002F 0010 0010 0031 0010 0031 0010 0031 0010 0031 002F
+            0010 0010 0031 0010 0135 002F 0010 002F 0010 0010 0031 002F 0011
+            002F 0010 0010 0031 0010 0031 0010 0031 0010 0031 002F 0010 0010
+            0031 0010 0135 002F 0010 002F 0010 0010 0031 002F 0011 002F 0010
+            0010 0031 0010 0031 0010 0031 0010 0031 002F 0010 0010 0031 0010
+            0135 002F 0010 002F 0010 0010 0031 002F 0011 002F 0010 0010 0031
+            0010 0031 0010 0031 0010 0031 002F 0010 0010 0031 0010 0F90
+        '''