def run(self): access_base = self._access_base LOG.setLevel(logging.DEBUG) LOG.info("Watching changes in accessbase") while True: if self._done_event.wait(0.100): LOG.info("Effects done") self._done_event.clear() if self._player is not None and not self._player.play_next(): LOG.info("Cleaning up") self._current_mode = Mode.stop() self._access_base.set_mode(self._current_mode) if access_base.wait_for_change(0.100): if not self.current_mode().equals(access_base.mode()): LOG.info("Accessbase has changed!") self.apply_mode(access_base.mode())
alpha = manager.accessor() bravo = manager.accessor() charlie = manager.accessor() ta = threading.Thread(target=wait_ab, args=(alpha, 'alpha')) tb = threading.Thread(target=wait_ab, args=(bravo, 'bravo')) tc = threading.Thread(target=wait_ab, args=(charlie, 'charlie')) manager.change_watcher() ta.start() tb.start() tc.start() time.sleep(1) logging.info("Changing alpha") alpha.set_mode(Mode.stop()) time.sleep(1) logging.info("Changing bravo") bravo.set_mode(Mode.stop()) time.sleep(2) logging.info("Changing charli") charlie.set_mode(Mode.stop()) time.sleep(2) logging.info("Changing alpha") alpha.set_mode(Mode.stop())
def trigger_reset(): accessbase.set_mode(Mode.stop())
else: input_reset = False time.sleep(0.2) if __name__ == '__main__': root = os.path.dirname(__file__) accessbase_path = os.path.join(root, '..', 'state') access_base = AccessBaseManager(accessbase_path) server_accessor = access_base.accessor('server') effect_accessor = access_base.accessor('effectenbak') interface_accessor = access_base.accessor('interface') # Stop effect_accessor.set_mode(Mode.stop()) access_base.change_watcher() logging.info("Starting effectenbak thread") effectenbak = threading.Thread(target=effectbak_runner, args=(effect_accessor,), name='effectenbak') effectenbak.start() logging.info("Starting interface thread") interface = threading.Thread(target=interface_runner, args=(interface_accessor,), name='interface') interface.start() logging.info("Starting http server") http.server.start(server_accessor)