コード例 #1
0
    try:
        client.connect(config["mqtt"]["host"], config["mqtt"]["port"], 60)
    except socket.error as err:
        _LOG.fatal("Unable to connect to MQTT server: %s" % err)
        sys.exit(1)

    client.loop_start()

    try:
        while True:
            sleep(1)
    except KeyboardInterrupt:
        print("")
        msg_infos = []
        for name, veh in vehicles.items():
            veh.disconnect()
            msg_infos.append(
                client.publish('%s/%s/connected' % (topic_prefix, name),
                               False,
                               qos=2))
        for msg_info in msg_infos:
            msg_info.wait_for_publish()
    finally:
        msg_info = client.publish(
            "%s/%s" % (topic_prefix, config["mqtt"]["status_topic"]),
            config["mqtt"]["status_payload_stopped"],
            qos=1,
            retain=True)
        # This should also quit the mqtt loop thread.
        msg_info.wait_for_publish()
        client.disconnect()
コード例 #2
0
ファイル: test.py プロジェクト: flyte/anki-overdrive-mqtt
        'Location from {addr} : Piece={piece} Location={location} Speed={speed} Clockwise={clockwise}'
        .format(**params))


car.setLocationChangeCallback(locationChangeCallback)


def transitionChangeCallback(addr, params):
    params['addr'] = addr
    print('Transition from {addr} From={piecePrev} To={piece} Offset={offset}'.
          format(**params))


car.setTransitionCallback(transitionChangeCallback)

car.changeSpeed(500, 800)

while True:
    inpt = input(
        '[ to change lane to left, ] to change lane to right, enter to stop.\n'
    )
    if inpt == '[':
        car.changeLaneLeft(500, 800)
    elif inpt == ']':
        car.changeLaneRight(500, 800)
    else:
        break

car.changeSpeed(0, 800)
car.disconnect()