wip gpio thread

This commit is contained in:
ohsqueezy 2022-11-04 21:10:14 -04:00
parent d70c305626
commit fa481631f2
1 changed files with 13 additions and 6 deletions

19
NS.py
View File

@ -243,6 +243,10 @@ class NS(Game, Animation):
# Initialize GPIO interface # Initialize GPIO interface
gpio.initialize_gpio() gpio.initialize_gpio()
# Launch a separate thread for reading the GPIO (and allowing its custom delays/sleeps)
self.gpio_thread = Thread(target=self.read_gpio)
self.gpio_thread.start()
# init Arduino # init Arduino
elif self.serial_enabled(): elif self.serial_enabled():
@ -329,6 +333,12 @@ class NS(Game, Animation):
def serial_enabled(self): def serial_enabled(self):
return self.get_configuration("input", "serial") return self.get_configuration("input", "serial")
def read_gpio(self):
"""
Test all connections of GPIO input pins.
"""
pass
def read_serial(self): def read_serial(self):
while not self.serial_kill: while not self.serial_kill:
name = self.get_configuration("input", "arduino-port") name = self.get_configuration("input", "arduino-port")
@ -382,15 +392,12 @@ class NS(Game, Animation):
""" """
Check the connection status of the GPIO pins and turn on the appropriate light objects (the pads). Check the connection status of the GPIO pins and turn on the appropriate light objects (the pads).
""" """
# Get the active (a.k.a. pressed) state of each GPIO pin (a.k.a. pad) for light_id in self.gpio_data:
activity = gpio.activity()
for light_id in activity.keys():
# The pressed state is set to the activity state # The pressed state is set to the activity state
self.platform.lights[light_id].pressed = activity[light_id] self.platform.lights[light_id].pressed = self.gpio_data[light_id]
# Reset idle timer if a light is detected as pressed # Reset idle timer if a light is detected as pressed
if activity[light_id]: if self.gpio_data[light_id]:
self.idle_elapsed = 0 self.idle_elapsed = 0
def reset(self, leave_wipe_running=False): def reset(self, leave_wipe_running=False):