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