diff --git a/WelcomeScreen.py b/WelcomeScreen.py index 12c1950..82adc3a 100644 --- a/WelcomeScreen.py +++ b/WelcomeScreen.py @@ -37,6 +37,7 @@ class WelcomeScreen: self.lines = self.lcd.num_lines self.interrupt_pins = interrupt_pins + self.subtitle = subtitle self.starting_msg = starting_msg self.started_msg = started_msg @@ -71,6 +72,13 @@ class WelcomeScreen: self.lcd.move_to(0,4) self.lcd.putstr(padding_hyphen) + # get the current pin values (only if there are pins specified) (when something changes, the interrupt happens and the cycle stops) + if self.interrupt_pins: + break_flag = False + pin_values = [] + for p in self.interrupt_pins: + pin_values.append(p.value()) + # cycle the text 'cycles' times and listen for changes on interrupt pins (if any given) for i in range(cycles): line1 = padding + self.starting_msg + padding line2 = self.subtitle.center(self.columns) @@ -80,6 +88,12 @@ class WelcomeScreen: self.lcd.move_to(0,y_offset+1) self.lcd.putstr(line2[0:self.columns]) line1 = line1[1:] + if self.interrupt_pins: + for i, p in enumerate(self.interrupt_pins): + if pin_values[i] != p.value(): + break_flag = True + if break_flag: + break self.lcd.move_to(0,y_offset) self.lcd.putstr(self.started_msg.center(16))