feat: add bot class
This commit is contained in:
		
							
								
								
									
										40
									
								
								scripts/example_bot.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										40
									
								
								scripts/example_bot.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,40 @@ | ||||
| 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(recorder) | ||||
|  | ||||
|     app.aboutToQuit.connect(recorder.shutdown) | ||||
|     recorder.register_bot(bot) | ||||
|     recorder.show() | ||||
|  | ||||
|     app.exec() | ||||
|  | ||||
|  | ||||
| if __name__ == "__main__": | ||||
|     main() | ||||
		Reference in New Issue
	
	Block a user