manager = AccessBaseManager(accessbase_path, )

def wait_ab(ab, name):
    while True:
        if ab.wait_for_change():
            logging.info(name + " notified")

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")
Beispiel #2
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)