def begin_frame(self): self.update_packet_speed_label() self.update_gyro_labels() self.signal_mag_label.text = 'mag: %gx' % self.renderer.multiplier self.signal_mag_label.invalidate() if dev.battery is not None: self.battery_label.text = 'BATT: %d%%' % (dev.battery * 100) else: self.battery_label.text = 'NO DATA' self.battery_label.invalidate() # no sense in updating if we are not going to use it if self.render_cursor and (dev.gyro_x is not None) and (dev.gyro_y is not None): new_pos_x = max(20, min(800, self.sq_pos[0] + (105 - dev.gyro_x) * 4)) if abs(dev.gyro_x - 105) > 1 else self.sq_pos[0] new_pos_y = max(20, min(600, self.sq_pos[1] + (dev.gyro_y - 105) * 4)) if abs(dev.gyro_y - 105) > 1 else self.sq_pos[1] self.sq_pos = new_pos_x, new_pos_y RootWidget.begin_frame(self)