Beispiel #1
0
    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())
Beispiel #3
0
 def trigger_reset():
     accessbase.set_mode(Mode.stop())
Beispiel #4
0
        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)