# create hooks keyboardHook = KeyboardHook() # create controllers arduinoController = ArduinoController() steeringController = SteeringController(keyboardHook) screenCapturer = ScreenCapturer("Desktop-Win10", True) # !!! TRUE !!! systemManager = SystemManager(keyboardHook, steeringController, screenCapturer, arduinoController) # program exit handling def exitHandler(keycode, character, press): if character == "q" and press: systemManager.stop() systemManager.join() arduinoController.stop() arduinoController.join() exit() # keyboardHook.stop() not needed, runs synchronously keyboardHook.addTapListener(exitHandler) # start controllers arduinoController.start() systemManager.start() # start hooks keyboardHook.run()