Reset LCD on comm error
authorJoseph Coffland <joseph@cauldrondevelopment.com>
Sat, 13 May 2017 04:00:06 +0000 (21:00 -0700)
committerJoseph Coffland <joseph@cauldrondevelopment.com>
Sat, 13 May 2017 04:00:06 +0000 (21:00 -0700)
src/py/bbctrl/LCD.py

index b21591dd72ed47020171a7189c0ed6371356c71f..ec9eebaefb27e0798289cc7993dd83a132bb1ce2 100644 (file)
@@ -16,6 +16,7 @@ class LCD:
         self.lcd = None
         self.timeout = None
         self.clear_next_write = False
+        self.reset = False
 
         self.clear()
         self.text('Loading', 6, 1)
@@ -75,6 +76,11 @@ class LCD:
                                    self.ctrl.args.lcd_addr,
                                    self.height, self.width)
 
+            if self.reset:
+                self.lcd.reset()
+                self.redraw = True
+                self.reset = False
+
             cursorX, cursorY = -1, -1
 
             for y in range(self.height):
@@ -94,7 +100,7 @@ class LCD:
 
         except IOError as e:
             log.error('LCD communication failed, retrying: %s' % e)
-            self.redraw = True
+            self.reset = True
             self.timeout = self.ctrl.ioloop.call_later(1, self.update_screen)