forked from platypush/platypush
Option to pair a specific device to the Wiimote backend
This commit is contained in:
parent
f6dcd00848
commit
7cd1efe2c6
1 changed files with 16 additions and 2 deletions
|
@ -32,21 +32,34 @@ class WiimoteBackend(Backend):
|
||||||
_inactivity_timeout = 300
|
_inactivity_timeout = 300
|
||||||
_connection_attempts = 0
|
_connection_attempts = 0
|
||||||
_last_btn_event_time = 0
|
_last_btn_event_time = 0
|
||||||
|
_bdaddr = None
|
||||||
|
|
||||||
|
|
||||||
def __init__(self, inactivity_timeout=_inactivity_timeout, *args, **kwargs):
|
def __init__(self, bdaddr=_bdaddr, inactivity_timeout=_inactivity_timeout,
|
||||||
|
*args, **kwargs):
|
||||||
"""
|
"""
|
||||||
|
:param bdaddr: If set, connect to this specific Wiimote physical address (example: 00:11:22:33:44:55)
|
||||||
|
:type bdaddr: str
|
||||||
|
|
||||||
:param inactivity_timeout: Number of seconds elapsed from the last Wiimote action before disconnecting the device (default: 300 seconds)
|
:param inactivity_timeout: Number of seconds elapsed from the last Wiimote action before disconnecting the device (default: 300 seconds)
|
||||||
:type inactivity_timeout: float
|
:type inactivity_timeout: float
|
||||||
"""
|
"""
|
||||||
|
|
||||||
super().__init__(*args, **kwargs)
|
super().__init__(*args, **kwargs)
|
||||||
|
self._bdaddr = bdaddr
|
||||||
self._inactivity_timeout = inactivity_timeout
|
self._inactivity_timeout = inactivity_timeout
|
||||||
|
|
||||||
|
|
||||||
def get_wiimote(self):
|
def get_wiimote(self):
|
||||||
if not self._wiimote:
|
if not self._wiimote:
|
||||||
self._wiimote = cwiid.Wiimote()
|
if self._connection_attempts <= 1:
|
||||||
|
self.logger.info('Press 1+2 on your Wiimote to pair it')
|
||||||
|
|
||||||
|
if self._bdaddr:
|
||||||
|
self._wiimote = cwiid.Wiimote(bdaddr=self._bdaddr)
|
||||||
|
else:
|
||||||
|
self._wiimote = cwiid.Wiimote()
|
||||||
|
|
||||||
self._wiimote.enable(cwiid.FLAG_MOTIONPLUS)
|
self._wiimote.enable(cwiid.FLAG_MOTIONPLUS)
|
||||||
self._wiimote.rpt_mode = cwiid.RPT_ACC | cwiid.RPT_BTN | cwiid.RPT_MOTIONPLUS
|
self._wiimote.rpt_mode = cwiid.RPT_ACC | cwiid.RPT_BTN | cwiid.RPT_MOTIONPLUS
|
||||||
|
|
||||||
|
@ -110,6 +123,7 @@ class WiimoteBackend(Backend):
|
||||||
|
|
||||||
self._connection_attempts = 0
|
self._connection_attempts = 0
|
||||||
last_state = {}
|
last_state = {}
|
||||||
|
self.logger.info('Initialized Wiimote backend')
|
||||||
|
|
||||||
while not self.should_stop():
|
while not self.should_stop():
|
||||||
try:
|
try:
|
||||||
|
|
Loading…
Reference in a new issue