Commit fc56b100bc9c5fa39cb4de18fdd26f4a58c6617f

Authored by Hugo Stephens
1 parent fecdb287
Exists in master

Error handling to prevent freeze

tested on windows host
robots/little_john/telemetry/code/monitor/graph_plotter_rewrite.py
... ... @@ -77,8 +77,14 @@ class Plot(pyglet.window.Window):
77 77  
78 78 def on_resize(self, width, height):
79 79 """Handle a resize event from the pyglet event loop"""
80   - self.bounds = ((int(self.width * self.margins[0]), int(self.width * (1 - self.margins[0]))),
  80 + try:
  81 + self.bounds = ((int(self.width * self.margins[0]), int(self.width * (1 - self.margins[0]))),
81 82 (int(self.height * self.margins[1]), int(self.height * (1 - self.margins[1]))))
  83 + except Exception as e:
  84 + logging.critical(str(e))
  85 + self.close()
  86 + logging.critical('Instance closed')
  87 + sys.exit()
82 88 self.tag_size = min(self.height*self.margins[1]*0.3,self.width*self.margins[0]*0.3)
83 89 # This sometimes seems to throw an error ('AttributeError: 'Plot' object has no attribute 'margins') when started for a second time from the same instance. Interesting. Causes the plot windows to freeze
84 90 pyglet.window.Window.on_resize(self, width, height)
... ...