예제 #1
0
파일: pyhid.py 프로젝트: hiepnv89/karlnet
def runMainLoop():
    data_queue = Queue.Queue()
    teensy = Usbreader(data_queue)
    teensy.daemon = True
    teensy.start()

    serial = FakeSerial(data_queue)

    if stomp:
        stomp.connect(clientid="teensy usb listener", username="******", password="******")

    while 1:
        packet = xbee_receiver.find_packet(serial)
        if packet:
            xb = xbee_receiver(packet)
        else:
            continue

        try:
            if xb.app_id == xbee.SERIES1_RXPACKET_16:
                kp = kpacket.wire_packet(xb.rfdata)
            else:
                log.warn("Received a packet, but not a normal rx, was instead: %#x", xb.app_id)
                continue
        except kpacket.BadPacketException as e:
            log.warn("Couldn't decode: %s" % e.msg)
            continue
        hp = kpacket.human_packet(node=xb.address_16, sensors=kp.sensors)
        hp.time_received = time.time()
        if stomp:
            stomp.put(jsonpickle.encode(hp), destination="/topic/karlnet.%d" % hp.node)
        log.info(hp)
예제 #2
0
def runMainLoop():
    lastgoodtime = 0
    port = None
    manualTimeout = 40

    if stomp:
        stomp.connect(clientid="serial port listener",
                      username="******",
                      password="******")

    while (1):
        if time.time() - lastgoodtime > manualTimeout:
            log.warn("XXX Reopening the serial port, no data for %d seconds!",
                     manualTimeout)
            if port:
                port.close()
            port = serial.Serial(options.port, 19200, timeout=10)
        packet = xbee_receiver.find_packet(port)
        if packet:
            xb = xbee_receiver(packet)
        else:
            log.warn("NO PACKET FOUND")
            continue

        try:
            if xb.app_id == xbee.SERIES1_RXPACKET_16:
                lastgoodtime = time.time()
                kp = kpacket.wire_packet(xb.rfdata)
            else:
                log.warn(
                    "Received a packet, but not a normal rx, was instead: %#x",
                    xb.app_id)
                qq = kpacket.wire_packet(xb.rfdata)
                qqhp = kpacket.human_packet(node=xb.address_16,
                                            sensors=qq.sensors)
                log.info("was actually: %s", qqhp)
                lastgoodtime = time.time()
                continue
        except kpacket.BadPacketException as e:
            log.warn("Couldn't decode: %s" % e.msg)
            continue
        lastgoodtime = time.time()
        hp = kpacket.human_packet(node=xb.address_16, sensors=kp.sensors)
        hp.time_received = time.time()
        if stomp:
            stomp.put(jsonpickle.encode(hp),
                      destination="/topic/karlnet.%d" % hp.node)
        log.info(hp)
예제 #3
0
def runMainLoop():
    lastgoodtime = 0
    port = None
    manualTimeout = 40

    if mqttc:
        mqttc.connect("localhost")

    while mqttc.loop() == 0:
        if time.time() - lastgoodtime > manualTimeout:
            log.warn("XXX Reopening the serial port, no data for %d seconds!", manualTimeout)
            if port:
                port.close()
            port = serial.Serial(options.port, 19200, timeout=10)
        packet = xbee_receiver.find_packet(port)
        if packet:
            xb = xbee_receiver(packet)
        else:
            log.warn("NO PACKET FOUND")
            continue

        try:
            if xb.app_id == xbee.SERIES1_RXPACKET_16:
                lastgoodtime = time.time()
                kp = kpacket.wire_packet(xb.rfdata)
            else:
                log.warn("Received a packet, but not a normal rx, was instead: %#x", xb.app_id)
                qq = kpacket.wire_packet(xb.rfdata)
                qqhp = kpacket.human_packet(node=xb.address_16, sensors=qq.sensors)
                log.info("was actually: %s", qqhp)
                lastgoodtime = time.time()
                continue
        except kpacket.BadPacketException as e:
            log.warn("Couldn't decode: %s" % e.msg)
            continue
        lastgoodtime = time.time()
        hp = kpacket.human_packet(node=xb.address_16, sensors=kp.sensors)
        hp.time_received = time.time()
        if mqttc:
            mqttc.publish("karlnet/readings/%d" % hp.node, jsonpickle.encode(hp))
            #stomp.put(jsonpickle.encode(hp), destination="/topic/karlnet.%d" % hp.node)
        log.info(hp)
예제 #4
0
def runMainLoop():
    data_queue = Queue.Queue()
    teensy = Usbreader(data_queue)
    teensy.daemon = True
    teensy.start()

    serial = FakeSerial(data_queue)

    if stomp:
        stomp.connect(clientid="teensy usb listener",
                      username="******",
                      password="******")

    while 1:
        packet = xbee_receiver.find_packet(serial)
        if packet:
            xb = xbee_receiver(packet)
        else:
            continue

        try:
            if xb.app_id == xbee.SERIES1_RXPACKET_16:
                kp = kpacket.wire_packet(xb.rfdata)
            else:
                log.warn(
                    "Received a packet, but not a normal rx, was instead: %#x",
                    xb.app_id)
                continue
        except kpacket.BadPacketException as e:
            log.warn("Couldn't decode: %s" % e.msg)
            continue
        hp = kpacket.human_packet(node=xb.address_16, sensors=kp.sensors)
        hp.time_received = time.time()
        if stomp:
            stomp.put(jsonpickle.encode(hp),
                      destination="/topic/karlnet.%d" % hp.node)
        log.info(hp)