PythonWrapper: cwiidpy.py

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