PythonWrapper: cwiidpy.py

File cwiidpy.py, 2.0 kB (added by jmtulloss, 2 years ago)

Removed unnecessary proxy class

Line 
1 #!/usr/bin/python
2 #
3 #
4 #Justin Tulloss
5 #
6 #
7 #
8 """Provides a python interface to the CWIID driver"""
9
10 import cwiidmodule
11 from cwiidmodule import Wiimote
12
13 #Set up the massive number of enumerations that don't actually work in py
14
15 #Flags
16 FLAG_MESG_IFC = 0x01
17 FLAG_CONTINUOUS = 0x02
18 FLAG_REPEAT_BTN = 0x04
19 FLAG_NONBLOCK = 0x08
20
21 # Report Mode Flags
22 RPT_STATUS=0x01
23 RPT_BTN=0x02
24 RPT_ACC=0x04
25 RPT_IR=0x08
26 RPT_NUNCHUK=0x10
27 RPT_CLASSIC=0x20
28 RPT_EXT=(RPT_NUNCHUK | RPT_CLASSIC)
29
30 # LED flags #
31 LED1_ON=0x01
32 LED2_ON=0x02
33 LED3_ON=0x04
34 LED4_ON=0x08
35
36 # Button flags #
37 BTN_2=0x0001
38 BTN_1=0x0002
39 BTN_B=0x0004
40 BTN_A=0x0008
41 BTN_MINUS=0x0010
42 BTN_HOME=0x0080
43 BTN_LEFT=0x0100
44 BTN_RIGHT=0x0200
45 BTN_DOWN=0x0400
46 BTN_UP=0x0800
47 BTN_PLUS=0x1000
48
49 NUNCHUK_BTN_Z=0x01
50 NUNCHUK_BTN_C=0x02
51
52 CLASSIC_BTN_UP=0x0001
53 CLASSIC_BTN_LEFT=0x0002
54 CLASSIC_BTN_ZR=0x0004
55 CLASSIC_BTN_X=0x0008
56 CLASSIC_BTN_A=0x0010
57 CLASSIC_BTN_Y=0x0020
58 CLASSIC_BTN_B=0x0040
59 CLASSIC_BTN_ZL=0x0080
60 CLASSIC_BTN_R=0x0200
61 CLASSIC_BTN_PLUS=0x0400
62 CLASSIC_BTN_HOME=0x0800
63 CLASSIC_BTN_MINUS=0x1000
64 CLASSIC_BTN_L=0x2000
65 CLASSIC_BTN_DOWN=0x4000
66 CLASSIC_BTN_RIGHT=0x8000
67
68 # Data Read/Write flags #
69 RW_EEPROM=0x00
70 RW_REG=0x04
71 RW_DECODE=0x01
72
73 # Maximum Data Read Length #
74 MAX_READ_LEN=0xFFFF
75
76 # IR Defs #
77 IR_SRC_COUNT=4
78 IR_X_MAX=1024
79 IR_Y_MAX=768
80
81 # Battery #
82 BATTERY_MAX=0xD0
83
84 # Classic Controller Maxes #
85 CLASSIC_L_STICK_MAX=0x3F
86 CLASSIC_R_STICK_MAX=0x1F
87 CLASSIC_LR_MAX=0x1F
88
89 # Environment Variables #
90 WIIMOTE_BDADDR="WIIMOTE_BDADDR"
91
92 # Callback Maximum Message Count #
93 MAX_MESG_COUNT=5
94
95 #Enumerations##########################
96 [CMD_STATUS,
97 CMD_LED,
98 CMD_RUMBLE,
99 CMD_RPT_MODE] = range(4)
100
101 [MESG_STATUS,
102 MESG_BTN,
103 MESG_ACC,
104 MESG_IR,
105 MESG_NUNCHUK,
106 MESG_CLASSIC,
107 MESG_ERROR,
108 MESG_UNKNOWN] = range(8)
109
110 [EXT_NONE,
111 EXT_NUNCHUK,
112 EXT_CLASSIC,
113 EXT_UNKNOWN] = range(4)
114
115 [ERROR_DISCONNECT,
116 ERROR_COMM] = range(2)
117
118 if __name__=="__main__":
119         def test(mesgs):
120                 print mesgs
121        
122         myWii = Wiimote(FLAG_MESG_IFC)
123         myWii.command(CMD_RPT_MODE, RPT_BTN)
124
125         print "Get_mesg:", myWii.get_mesg()
126
127         myWii.set_callback(test)
128
129         while 1:
130                 pass