#!/usr/bin/python import bluetooth import threading import time import sys import wave from threading import Thread from visual import * wiimote_adress="00:21:BD:01:68:92" receiveSocket = bluetooth.BluetoothSocket(bluetooth.L2CAP) controlSocket = bluetooth.BluetoothSocket(bluetooth.L2CAP) etat = "deconnecte" def connect() : global etat receiveSocket.connect((wiimote_adress, 0x13)) controlSocket.connect((wiimote_adress, 0x11)) if receiveSocket and controlSocket : etat = "connecte" wiiThread = threading.Thread(None, receive, None, (1,), None) wiiThread.start() return True else : print "connexion rejetee" return False def actionsOnButtons(etat, data) : octet1 = ord(data[2]) octet2 = ord(data[3]) if (octet1 & 0x01) == 1 : print "pad gauche" if (octet1 & 0x02) == 2 : print "pad droit" if (octet1 & 0x04) == 4 : print "pad bas" if (octet1 & 0x08) == 8 : print "pad haut" if (octet1 & 0x10) == 0x10 : print "plus" if (octet2 & 0x01) == 1 : print "2" if (octet2 & 0x02) == 2 : print "1" if (octet2 & 0x04) == 4 : print "B" if (octet2 & 0x08) == 8 : print "deconnection" etat = "deconnecte" return etat def actionsOnMode30(etat) : while etat == "connecte" : try : data = receiveSocket.recv(23) chaine = "" if len(data) == 4 : etat = actionsOnButtons(etat, data) except bluetooth.BluetoothError : pass receiveSocket.close() controlSocket.close() etat = "deconnecte" return def receive(nb) : global etat global mode controlSocket.send(chr(0x52) + chr(0x12) + chr(0x00) + chr(mode)) receiveSocket.settimeout(0.1) return actionsOnMode30(etat) mode = 0x30 connect()