merge magfest branch into master

This commit is contained in:
Frank DeMarco 2020-10-05 18:28:14 -04:00
commit dd938d8da2
1 changed files with 22 additions and 11 deletions

33
NS.py
View File

@ -44,6 +44,7 @@ class NS(Game, Animation):
STEP = .4
IDLE_TIMEOUT = 60000 * 5
CHANNEL_COUNT = 8
NO_RESET_TIMEOUT = 3000
def __init__(self):
Game.__init__(self)
@ -109,36 +110,37 @@ class NS(Game, Animation):
name = self.get_configuration("input", "arduino-port")
try:
transmission = self.serial_reader.readline().strip()
print transmission
print(transmission)
except SerialException:
print "Serial not ready... passing..."
print("Serial not ready... passing...")
transmission = ""
if len(transmission) == 4:
try:
self.serial_data = int(transmission, 2)
except ValueError:
print "Value error checking four digit serial transmission"
print("Value error checking four digit serial transmission")
self.handle_garbage(transmission)
self.reset_arduino()
self.idle_elapsed = 0
self.idle_elapsed = 0
elif len(transmission) > 0:
try:
int(transmission, 2)
except ValueError:
print "Received a non-four digit serial transmission"
print("Received a non-four digit serial transmission")
self.handle_garbage(transmission)
else:
self.serial_data = 0
def handle_garbage(self, transmission):
self.serial_data = 0
print "Garbage detected: %s" % transmission
print("Garbage detected: %s" % transmission)
self.serial_reader.reset_input_buffer()
def reset_arduino(self):
self.serial_reader.dtr = False
self.serial_reader.reset_input_buffer()
self.serial_reader.dtr = True
if self.serial_enabled():
self.serial_reader.dtr = False
self.serial_reader.reset_input_buffer()
self.serial_reader.dtr = True
def end(self, evt):
if evt.type == QUIT or self.delegate.compare(evt, "quit"):
@ -162,6 +164,7 @@ class NS(Game, Animation):
self.chemtrails.reset()
self.platform.reset()
self.dialogue.reset()
self.no_reset_elapsed = 0
def set_most_recent_time(self, score):
self.most_recent_time = score
@ -201,8 +204,16 @@ class NS(Game, Animation):
def update(self):
Animation.update(self)
if self.serial_enabled():
self.apply_serial()
last_frame_duration = self.time_filter.get_last_frame_duration()
if self.serial_enabled() or True:
# self.apply_serial()
if self.title.active or self.introduction.active or self.ending.active or \
self.dialogue.active:
self.no_reset_elapsed += last_frame_duration
if self.no_reset_elapsed >= self.NO_RESET_TIMEOUT:
print("auto arduino reset triggered")
self.reset_arduino()
self.no_reset_elapsed = 0
self.title.update()
self.introduction.update()
self.ending.update()