Python同时循环让我发疯!求你了



这个脚本应该连续读取不同的rfid标签一次,打印出标签号并发送给远程xbee。然而,它在一个连续的循环中不断地读取标签。我希望它在显示结果后读取一个标签并将其发送到远程xbee,然后等待不同的标签并重复该过程。

def main():
    ann = as3992_api.AntennaDevice()
    print "Firmware info: %snHardware info: %s" % ann.get_system_info()
    print "Activating antenna"
    ann.set_antenna_state(True)
    print " Reading Tags:"
    while True:
        try:
            for epc, rssi in ann.iter_epc_rssi():
                #time.sleep(1)
                print "---------------------------------------"
                print "Scanning Tag..."
                time.sleep(1)
                print "Tag code epc:" +epc.encode("HEX"),rssi
                #send tag info to remote xbee
                xbee.tx_long_addr(frame='0x1', dest_addr=XBEE1_ADDR_LONG, data=epc.encode("HEX"))
                print "---------------------------------------"
                time.sleep(1)
                print "Sending tag information to XBee 1 ..."

        except KeyboardInterrupt:
            ann.set_antenna_state(False)
            break


if __name__ == "__main__":
    main()
def main():
    ann = as3992_api.AntennaDevice()
    print "Firmware info: %snHardware info: %s" % ann.get_system_info()
    print "Activating antenna"
    ann.set_antenna_state(True)
    print " Reading Tags:"
    ok=[]
    while True:
        try:
            for epc, rssi in ann.iter_epc_rssi():
                if epc+rssi not in ok:
                    #time.sleep(1)
                    print "---------------------------------------"
                    print "Scanning Tag..."
                    time.sleep(1)
                    print "Tag code epc:" +epc.encode("HEX"),rssi
                    #send tag info to remote xbee
                    xbee.tx_long_addr(frame='0x1', dest_addr=XBEE1_ADDR_LONG, data=epc.encode("HEX"))
                    print "---------------------------------------"
                    time.sleep(1)
                    print "Sending tag information to XBee 1 ..."
                    ok.append( epc+rssi )
        except KeyboardInterrupt:
            ann.set_antenna_state(False)
            break

最新更新