@@ -54,11 +54,11 @@ class Nunchuk:
54
54
_Buttons = namedtuple ("Buttons" , ("C" , "Z" ))
55
55
_Acceleration = namedtuple ("Acceleration" , ("x" , "y" , "z" ))
56
56
57
- def __init__ (self , i2c , address = 0x52 , i2c_read_delay = 0.002 , force_read = True ):
57
+ def __init__ (self , i2c , address = 0x52 , i2c_read_delay = 0.002 ):
58
58
self .buffer = bytearray (8 )
59
59
self .i2c_device = I2CDevice (i2c , address )
60
60
self ._i2c_read_delay = i2c_read_delay
61
- self ._force_read = force_read
61
+ self ._do_read = True
62
62
time .sleep (_I2C_INIT_DELAY )
63
63
with self .i2c_device as i2c_dev :
64
64
# turn off encrypted data
@@ -70,45 +70,44 @@ def __init__(self, i2c, address=0x52, i2c_read_delay=0.002, force_read=True):
70
70
@property
71
71
def values (self ):
72
72
"""Return named tuple of all the input values."""
73
- self .read_data ()
74
- temp_force_read = self ._force_read
75
- self ._force_read = False
73
+ self ._read_data ()
74
+ self ._do_read = False
76
75
values = self ._Values (
77
76
self ._Joystick (self .joystick [0 ], self .joystick [1 ]),
78
77
self ._Buttons (self .button_C , self .button_Z ),
79
78
self ._Acceleration (
80
79
self .acceleration [0 ], self .acceleration [1 ], self .acceleration [2 ]
81
80
),
82
81
)
83
- self ._force_read = temp_force_read
82
+ self ._do_read = True
84
83
return values
85
84
86
85
@property
87
86
def joystick (self ):
88
87
"""Return tuple of current joystick position."""
89
- if self ._force_read :
90
- self .read_data ()
88
+ if self ._do_read :
89
+ self ._read_data ()
91
90
return self .buffer [0 ], self .buffer [1 ]
92
91
93
92
@property
94
93
def button_C (self ): # pylint: disable=invalid-name
95
94
"""Return current pressed state of button C."""
96
- if self ._force_read :
97
- self .read_data ()
95
+ if self ._do_read :
96
+ self ._read_data ()
98
97
return not bool (self .buffer [5 ] & 0x02 )
99
98
100
99
@property
101
100
def button_Z (self ): # pylint: disable=invalid-name
102
101
"""Return current pressed state of button Z."""
103
- if self ._force_read :
104
- self .read_data ()
102
+ if self ._do_read :
103
+ self ._read_data ()
105
104
return not bool (self .buffer [5 ] & 0x01 )
106
105
107
106
@property
108
107
def acceleration (self ):
109
108
"""Return 3 tuple of accelerometer reading."""
110
- if self ._force_read :
111
- self .read_data ()
109
+ if self ._do_read :
110
+ self ._read_data ()
112
111
x = (self .buffer [5 ] & 0xC0 ) >> 6
113
112
x |= self .buffer [2 ] << 2
114
113
y = (self .buffer [5 ] & 0x30 ) >> 4
@@ -117,7 +116,7 @@ def acceleration(self):
117
116
z |= self .buffer [4 ] << 2
118
117
return x , y , z
119
118
120
- def read_data (self ):
119
+ def _read_data (self ):
121
120
"""Reads all of the raw input data from i2c."""
122
121
return self ._read_register (b"\x00 " )
123
122
0 commit comments