class Robot(): # 100 ms update (stable frequency) / 50 ms update (maximum frequency) PERIODIC_DELAY = 0.05 stopped = False def __init__(self): self.drive = Drive() self.oi = OperatorInterface(self.drive) self.drive.setOperatorInterface(self.oi) def update(self): self.drive.update() def stop(self): self.stopped = True self.drive.stop() self.oi.stop() def periodic(self): nextTime = time.time() while (not self.stopped): try: self.update() nextTime = nextTime + self.PERIODIC_DELAY delay = max(0, nextTime - time.time()) if (delay == 0): print("--------------THRASH--------------") time.sleep(delay) except: print("Exception in Periodic") traceback.print_exc() self.stop()