from PyQt6.QtWidgets import QApplication from src.bot import Bot from src.command import CarControl from src.recorder import RecorderWindow from src.snapshot import Snapshot class ExampleBot(Bot): def nn_infer(self, snapshot: Snapshot) -> list[tuple[CarControl, bool]]: # Do smart NN inference here return [(CarControl.FORWARD, True)] def on_snapshot_received(self, snapshot: Snapshot): controls: list[tuple[CarControl, bool]] = self.nn_infer(snapshot) for control, active in controls: self.recorder.on_car_controlled(control, active) def main(): import sys def except_hook(cls, exception, traceback): sys.__excepthook__(cls, exception, traceback) sys.excepthook = except_hook app: QApplication = QApplication(sys.argv) recorder: RecorderWindow = RecorderWindow("localhost", 5000) bot: ExampleBot = ExampleBot() bot.set_recorder(recorder) app.aboutToQuit.connect(recorder.shutdown) recorder.register_bot(bot) recorder.show() app.exec() if __name__ == "__main__": main()