Skip to content

Commit fa3e67c

Browse files
committed
remove individual properties
1 parent 8bdbb8f commit fa3e67c

File tree

4 files changed

+38
-74
lines changed

4 files changed

+38
-74
lines changed

adafruit_nunchuk.py

Lines changed: 32 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -5,22 +5,14 @@
55
"""
66
`adafruit_nunchuk`
77
================================================================================
8-
98
CircuitPython library for Nintendo Nunchuk controller
10-
11-
129
* Author(s): Carter Nelson
13-
1410
Implementation Notes
1511
--------------------
16-
1712
**Hardware:**
18-
1913
* `Wii Remote Nunchuk <https://en.wikipedia.org/wiki/Wii_Remote#Nunchuk>`_
2014
* `Wiichuck <https://www.adafruit.com/product/342>`_
21-
2215
**Software and Dependencies:**
23-
2416
* Adafruit CircuitPython firmware for the supported boards:
2517
https://github.com/adafruit/circuitpython/releases
2618
* Adafruit's Bus Device library: https://github.com/adafruit/Adafruit_CircuitPython_BusDevice
@@ -38,7 +30,6 @@
3830
class Nunchuk:
3931
"""
4032
Class which provides interface to Nintendo Nunchuk controller.
41-
4233
:param i2c: The `busio.I2C` object to use.
4334
:param address: The I2C address of the device. Default is 0x52.
4435
:type address: int, optional
@@ -58,7 +49,6 @@ def __init__(self, i2c, address=0x52, i2c_read_delay=0.002):
5849
self.buffer = bytearray(8)
5950
self.i2c_device = I2CDevice(i2c, address)
6051
self._i2c_read_delay = i2c_read_delay
61-
self._do_read = True
6252
time.sleep(_I2C_INIT_DELAY)
6353
with self.i2c_device as i2c_dev:
6454
# turn off encrypted data
@@ -69,55 +59,52 @@ def __init__(self, i2c, address=0x52, i2c_read_delay=0.002):
6959

7060
@property
7161
def values(self):
72-
"""Return named tuple of all the input values."""
62+
"""The current state of all values."""
7363
self._read_data()
74-
self._do_read = False
75-
values = self._Values(
76-
self._Joystick(self.joystick[0], self.joystick[1]),
77-
self._Buttons(self.button_C, self.button_Z),
78-
self._Acceleration(
79-
self.acceleration[0], self.acceleration[1], self.acceleration[2]
80-
),
64+
return self._Values(
65+
self._joystick(do_read=False),
66+
self._buttons(do_read=False),
67+
self._acceleration(do_read=False),
8168
)
82-
self._do_read = True
83-
return values
8469

8570
@property
8671
def joystick(self):
87-
"""Return tuple of current joystick position."""
88-
if self._do_read:
89-
self._read_data()
90-
return self.buffer[0], self.buffer[1]
72+
"""The current joystick position."""
73+
return self._joystick()
9174

9275
@property
93-
def button_C(self): # pylint: disable=invalid-name
94-
"""Return current pressed state of button C."""
95-
if self._do_read:
96-
self._read_data()
97-
return not bool(self.buffer[5] & 0x02)
76+
def buttons(self): # pylint: disable=invalid-name
77+
"""The current pressed state of button Z."""
78+
return self._buttons()
9879

9980
@property
100-
def button_Z(self): # pylint: disable=invalid-name
101-
"""Return current pressed state of button Z."""
102-
if self._do_read:
81+
def acceleration(self):
82+
"""The current accelerometer reading."""
83+
return self._acceleration()
84+
85+
def _joystick(self, do_read=True):
86+
if do_read:
10387
self._read_data()
104-
return not bool(self.buffer[5] & 0x01)
88+
return self._Joystick(self.buffer[0], self.buffer[1]) # x, y
10589

106-
@property
107-
def acceleration(self):
108-
"""Return 3 tuple of accelerometer reading."""
109-
if self._do_read:
90+
def _buttons(self, do_read=True):
91+
if do_read:
11092
self._read_data()
111-
x = (self.buffer[5] & 0xC0) >> 6
112-
x |= self.buffer[2] << 2
113-
y = (self.buffer[5] & 0x30) >> 4
114-
y |= self.buffer[3] << 2
115-
z = (self.buffer[5] & 0x0C) >> 2
116-
z |= self.buffer[4] << 2
117-
return x, y, z
93+
return self._Buttons(
94+
not bool(self.buffer[5] & 0x02), # C
95+
not bool(self.buffer[5] & 0x01) # Z
96+
)
97+
98+
def _acceleration(self, do_read=True):
99+
if do_read:
100+
self._read_data()
101+
return self._Acceleration(
102+
((self.buffer[5] & 0xC0) >> 6) | (self.buffer[2] << 2), #ax
103+
((self.buffer[5] & 0x30) >> 4) | (self.buffer[3] << 2), #ay
104+
((self.buffer[5] & 0x0C) >> 2) | (self.buffer[4] << 2), #az
105+
)
118106

119107
def _read_data(self):
120-
"""Reads all of the raw input data from i2c."""
121108
return self._read_register(b"\x00")
122109

123110
def _read_register(self, address):

examples/nunchuk_accel_mouse.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,9 +42,10 @@
4242
relY = y - centerY
4343

4444
m.move(int(scaleX * relX), int(scaleY * relY), 0)
45+
buttons = nc.buttons
4546

46-
c = nc.button_C
47-
z = nc.button_Z
47+
c = buttons.C
48+
z = buttons.Z
4849

4950
if z and not zDown:
5051
stillDown = True

examples/nunchuk_analog_mouse.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,9 @@
3737

3838
m.move(int(scaleX * relX), int(scaleY * relY), 0)
3939

40-
c = nc.button_C
41-
z = nc.button_Z
40+
buttons = nc.buttons
41+
c = buttons.C
42+
z = buttons.Z
4243

4344
if z and not zDown:
4445
stillDown = True

examples/nunchuk_mouse.py

Lines changed: 0 additions & 25 deletions
This file was deleted.

0 commit comments

Comments
 (0)