当前位置: 首页>>代码示例>>Python>>正文


Python ZigBee.wait_read_frame方法代码示例

本文整理汇总了Python中xbee.ZigBee.wait_read_frame方法的典型用法代码示例。如果您正苦于以下问题:Python ZigBee.wait_read_frame方法的具体用法?Python ZigBee.wait_read_frame怎么用?Python ZigBee.wait_read_frame使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在xbee.ZigBee的用法示例。


在下文中一共展示了ZigBee.wait_read_frame方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: main

# 需要导入模块: from xbee import ZigBee [as 别名]
# 或者: from xbee.ZigBee import wait_read_frame [as 别名]
def main():
    """
    Sends an API AT command to read the lower-order address bits from 
    an XBee Series 1 and looks for a response
    """
    try:
        
        # Open serial port
        ser0 = serial.Serial('/dev/ttyUSB0', 9600)
        ser1 = serial.Serial('/dev/ttyUSB1', 9600)
        
        # Create XBee Series 1 object
        #xbee = XBee(ser)
	xbee = ZigBee(ser1, escaped=True)
        
        
        # Send AT packet
        xbee.send('at', frame_id='A', command='DH')
        
        # Wait for response
        response = xbee.wait_read_frame()
        print response
        
        # Send AT packet
        xbee.send('at', frame_id='B', command='DL')
        
        # Wait for response
        response = xbee.wait_read_frame()
        print response
        
        # Send AT packet
        xbee.send('at', frame_id='C', command='MY')
        
        # Wait for response
        response = xbee.wait_read_frame()
        print response
        
        # Send AT packet
        xbee.send('at', frame_id='D', command='CE')
        
        # Wait for response
        response = xbee.wait_read_frame()
        print response
    except KeyboardInterrupt:
        pass
    finally:
        ser0.close()
        ser1.close()
开发者ID:louietsai,项目名称:python-xbee,代码行数:50,代码来源:serial_example_series_1.py

示例2: xbee_tp

# 需要导入模块: from xbee import ZigBee [as 别名]
# 或者: from xbee.ZigBee import wait_read_frame [as 别名]
def xbee_tp(xbeeRemAddr):
    """
    XBee TP command implementation. Input: xbeeRemAddr. Ex: xbee_is('0013A200406B5174')
    """
    comPortList = getActiveComPort()
    if comPortList:
        comPort = comPortList[0].get('name')
        timeOut = int(comPortList[0].get('timeout'))
        baudRate = int(comPortList[0].get('baudrate'))
        count = 0

    try:
        ser = serial.Serial(comPort, baudRate, timeout=timeOut) 
        xbee = ZigBee(ser,escaped=True)
        
        xbee.remote_at(dest_addr_long=xbeeRemAddr,command="TP",frame_id="C")
        response = xbee.wait_read_frame()
        return response
    
    except serial.SerialException as ex:
        text = "Exception is: " + ex.__str__()
        return 0
    else:
        xbee.halt()
        ser.close() 
开发者ID:verdered,项目名称:waterStrider,代码行数:27,代码来源:sprinklercomm.py

示例3: node_discovery

# 需要导入模块: from xbee import ZigBee [as 别名]
# 或者: from xbee.ZigBee import wait_read_frame [as 别名]
def node_discovery():
    comPortList = getActiveComPort()
    if comPortList:
        comPort = comPortList[0].get('name')
        timeOut = int(comPortList[0].get('timeout'))
        baudRate = int(comPortList[0].get('baudrate'))
        count = 0
    
    try:
        ser = serial.Serial(comPort, baudRate, timeout=timeOut)
        xbee = ZigBee(ser,escaped=True)
        node_list=[]        
        xbee.at(command='ND')
        response = {'':''}
        while response <> {}:
            response = xbee.wait_read_frame()
            if response:
                print response
                node_list.append(response)
            else:
                text = "Xbee: Timeout during node discovery operation!"
         
        print "Spisak: ", node_list # return []
        return node_list
    
    except serial.SerialException as ex:
        text = "Exception: " + ex.__str__()
        return text
    else:
        xbee.halt()
        ser.close()
开发者ID:verdered,项目名称:waterStrider,代码行数:33,代码来源:sprinklercomm.py

示例4: main

# 需要导入模块: from xbee import ZigBee [as 别名]
# 或者: from xbee.ZigBee import wait_read_frame [as 别名]
def main():
    args = setup_argparser()

    #setup serial port
    ser = serial.Serial(args.port, 9600)
    xbee = ZigBee(ser, escaped=True)

    exit_code = 0

    #send force sample command IS
    xbee.remote_at(dest_addr_long=to_hex(args.device), command='IS', frame_id=cmd_id)
    try:
        response = xbee.wait_read_frame()

        #ack received
        if response['status'] == '\x00' and response['frame_id'] == cmd_id:
            try:
                print response['parameter'][0][response_lookup[args.gpio]]

            #desired value not included in response
            except KeyError:
                print "No sample for {0} received. The PIN may not be properly configured. For ADC select Mode 2 (analog input)".format(args.gpio)
                exit_code = -1

        #error message received
        else:
            print "Command was not successful: ", status_help[response['status']]
            exit_code = ord(response['status'])

    except KeyboardInterrupt:
        print "cancel script"

    #clean up
    ser.close()
    exit(exit_code)
开发者ID:WBSS,项目名称:RPi-remote-LED,代码行数:37,代码来源:XBEE-remote-get.py

示例5: hiddenNodediscovery

# 需要导入模块: from xbee import ZigBee [as 别名]
# 或者: from xbee.ZigBee import wait_read_frame [as 别名]
def hiddenNodediscovery():
    
    comPortList = getActiveComPort()
    if comPortList:
        comPort = comPortList[0].get('name')
        timeOut = int(comPortList[0].get('timeout'))
        baudRate = int(comPortList[0].get('baudrate'))
        
    print "Hidden Discovery"
    
    try:
        ser = serial.Serial(comPort, baudRate, timeout=timeOut)
        print "porta e otworen", ser.isOpen() 
        xbee = ZigBee(ser,escaped=True)
        xbee.at(command='ND')
        response = {'':''}
        while response <> {}:
            response = xbee.wait_read_frame()
            if response:
                print response
            else:
                text = "Xbee: Timeout during node discovery operation!"
                response = {}
                print text

    
    except serial.SerialException as ex:
        text = "Exception: " + ex.__str__()
        return text
    else:
        ser.close()
开发者ID:verdered,项目名称:waterStrider,代码行数:33,代码来源:sprinklercomm.py

示例6: main

# 需要导入模块: from xbee import ZigBee [as 别名]
# 或者: from xbee.ZigBee import wait_read_frame [as 别名]
def main(argv=sys.argv[1:]):
    parser = argparse.ArgumentParser(
        description="Continuously read sensor data from XBee and write to "
                    "data files in specified folder.")
    parser.add_argument('-d', '--device', metavar='DEVICE',
                        default='/dev/ttyXBEE',
                        help='XBee serial device pseudofile')
    parser.add_argument('-b', '--baud', metavar='RATE', type=int, default=9600,
                        help='Baud rate of XBee serial device.')
    parser.add_argument('folder', metavar='FOLDER', help='Folder for data files.')
    args = parser.parse_args(argv)

    ser = serial.Serial(args.device, args.baud)
    xbee = ZigBee(ser)

    if not os.path.exists(args.folder):
        os.makedirs(args.folder)

    # Continuously read and print packets
    while True:
        try:
            today = datetime.date.today()
            fname = '%4d-%02d-%02d.csv' % (today.year, today.month, today.day)
            response = xbee.wait_read_frame()
            source_addr_long = response['source_addr_long'].encode("hex")
            with open(os.path.join(args.folder, fname), 'a') as f:
                csvout = csv.writer(f)
                for sample in response['samples']:
                    row = (time(), source_addr_long,
                           tempAir(sample['adc-0']), tempWater(sample['adc-1']))
                    csvout.writerow(row)
        except KeyboardInterrupt:
            break

    ser.close()
开发者ID:huslage,项目名称:qfi-xbee-sensor,代码行数:37,代码来源:xbee_sensor.py

示例7: main

# 需要导入模块: from xbee import ZigBee [as 别名]
# 或者: from xbee.ZigBee import wait_read_frame [as 别名]
def main():
    args = setup_argparser()

    #setup serial port
    ser = serial.Serial(args.port, 9600)
    xbee = ZigBee(ser, escaped=True)

    exit_code = 0
    p = on if args.state == 1 else off

    if args.ack:
        #send command and request an acknowledge
        xbee.remote_at(dest_addr_long=to_hex(args.device), command=pin_to_command[args.gpio], parameter=p, frame_id=cmd_id)
        try:
            response = xbee.wait_read_frame()

            #sucessfully transmitted command
            if response['status'] == '\x00' and response['frame_id'] == cmd_id:
                print "command successfull"

            else:
                print "Command was not successful: ", status_help[response['status']]
                exit_code = ord(response['status'])

        except KeyboardInterrupt:
            print "cancel script"
    else:
        #send command without requesting ack
        xbee.remote_at(dest_addr_long=to_hex(args.device), command=pin_to_command[args.gpio], parameter=p)

    #clean up
    ser.close()
    exit(exit_code)
开发者ID:WBSS,项目名称:RPi-remote-LED,代码行数:35,代码来源:XBEE-remote-set.py

示例8: find_bots

# 需要导入模块: from xbee import ZigBee [as 别名]
# 或者: from xbee.ZigBee import wait_read_frame [as 别名]
def find_bots():
    #The coordinator broadcasts a "Node Discover" AT command and records the addresses recieved, I suspect
    #Add coordinator first, then add on each bot as it responds.
    #robot id command
    
    global xbee
    
    ser = serial.Serial(DEVICE, 57600)
    xbee = ZigBee(ser)

    try:
        print("Searching for bots...")
        xbee.at(
            dest_addr_long = XBEE_ADDR_LONG,
            dest_addr = XBEE_ADDR_SHORT,
            command = 'ND'
            )
        timeout = time.time() + 30
        num_of_robots = 0
        while timeout > time.time():
            dict = xbee.wait_read_frame()
            if dict == None:
                break
            bot_array.append(parse_ND(dict))
            print "Response: %r " % bot_array[num_of_robots]
            num_of_robots += 1
    except KeyboardInterrupt, SerialException:
        sys.exit(0)
开发者ID:RachaelT,项目名称:UTDchess-RospyXbee,代码行数:30,代码来源:cmd_vel_listener.py

示例9: linkxbee

# 需要导入模块: from xbee import ZigBee [as 别名]
# 或者: from xbee.ZigBee import wait_read_frame [as 别名]
def linkxbee(q_down, q_up, e_pause, e_kill, config):
    """
    собиралка телеметрии.
    получает пакет с xbee, тут же бросает в линию данные
    затем не спеша отрисовывает полученные данные

    """
    # подсос значений из конфига
    baudrate = config.getint('Link', 'baudrate')
    port     = config.getint('Link', 'port')

    # 2 стоп-бита стоит установить при наличии глюков с xbee на 115200
    ser = serial.Serial(port, baudrate, stopbits=2)

    xbee = ZigBee(ser, escaped=True)
    device={"GND":'\x00\x13\xA2\x00\x40\x5D\xF9\xEA',
            "PNS":'\x00\x13\xA2\x00\x40\x5D\xF9\xE9'}

    xbee_response = None # пришедший с модема пакет
    msg_up = None # строка, которую надо запихнуть в пакет для отправки

    # ждем, пока нас снимут с паузы
    print "---- link ready"
    e_pause.wait()
    print "---- link run"

    while True:
        if e_kill.is_set():
            print "=== Link. Kill signal received. Exiting"
            return

        # читаем из модема
        try:
            xbee_response = xbee.wait_read_frame()
        except:
            print "xbee not respond"

        # пихаем нагрузку из пришедшего пакета в очередь протокольного анализатора
        if (xbee_response != None) and (xbee_response['id'] == 'rx'):
            try:
                q_down.put_nowait(xbee_response['rf_data'])
            except Full:
                print "Input packet lost"

        # тут же берем из очереди сообщение для отправки
        try:
            msg_up = q_up.get_nowait()
        except Empty:
            pass
        if msg_up != None: # пихаем в модем
            xbee.send("tx",
                      frame_id='\x00',
                      dest_addr_long=device["PNS"],
                      broadcast_radius = '\x01',
                      dest_addr='\xFF\xFE',
                      data=msg_up)
        msg_up = None
开发者ID:barthess,项目名称:u,代码行数:59,代码来源:link.py

示例10: XBeeReader

# 需要导入模块: from xbee import ZigBee [as 别名]
# 或者: from xbee.ZigBee import wait_read_frame [as 别名]
class XBeeReader(SerialReader):
    def __init__(self, port, baud_rate, logger_name=__name__):
        SerialReader.__init__(self, port, baud_rate, logger_name=logger_name)
        self.xbee = ZigBee(self.ser)

    def _read_loop(self):
        while self.is_reading:
            frame = self.xbee.wait_read_frame()

            # Data packet - read in the data
            if frame['id'] == 'rx' or frame['id'] == 'rx_explicit':
                self.convert_to_json(frame['rf_data'])
开发者ID:trevorandersen,项目名称:SinkNode,代码行数:14,代码来源:dead-XbeeReader.py

示例11: __init__

# 需要导入模块: from xbee import ZigBee [as 别名]
# 或者: from xbee.ZigBee import wait_read_frame [as 别名]
class zbDataLogger:
    def __init__(self, port='/dev/ttyUSB0', baud=9600, escaped=True, appLog=None):
        self.appLog = appLog or logging.getLogger(__name__)
        self.port = port
        self.baud = baud
        self.escaped = escaped
        try:
            self.serial_port = serial.Serial(self.port, self.baud)
            self.xbee = ZigBee(self.serial_port, escaped=self.escaped)
            self.appLog.info("Successfully initialised ZigBee on " + self.port + " at " + str(self.baud) + " baud")
        except:
            self.appLog.error("Unable to initialise Zigbee on " + self.port + " at " + str(self.baud) + " baud")
            raise
        self.frame = ""
        self.msg = {}
        self.data = ""
        self.appHandlers = {}

    def getMsg(self):
        self.frame = self.xbee.wait_read_frame() # blocking
        self.rfdata = self.frame.get("rf_data")
        self.msg["source"] = "0x%0.16X" % struct.unpack(">Q",self.frame.get("source_addr_long"))
        # convert to friendly name if we have defined it
        if self.msg["source"] in friendly["xbees"]:
            self.msg["source"] = friendly["xbees"][self.msg["source"]]
        self.appLog.debug("Got message")
        self.msg["logtime"] = datetime.isoformat(datetime.now())

        decodeHdr = struct.unpack("HHHH", self.rfdata[0:8])
        self.msg["appID"]= "0x%0.4X" % decodeHdr[0]
        self.msg["msgType"] = "0x%0.4X" % decodeHdr[1]
        # convert to friendly names if we have defined them
        if self.msg["appID"] in friendly["appIDs"]:
            self.msg["appID"] = friendly["appIDs"][self.msg["appID"]]
            if self.msg["appID"] in friendly["msgTypes"]:
                if self.msg["msgType"] in friendly["msgTypes"][self.msg["appID"]]:
                    self.msg["msgType"] = friendly["msgTypes"][self.msg["appID"]][self.msg["msgType"]]
        self.msg["reserved"] = decodeHdr[2]
        self.msg["length"] = decodeHdr[3]
        self.msg["data"] = self.rfdata[8:]
        if self.msg["length"] != len(self.msg["data"]):
            self.appLog.error("Incorrect data length in received packet. Rx: %s, Expected: %s" % (len(self.msg["data"]), self.msg["length"]))
        else:
            if self.msg["appID"] in self.appHandlers:
                self.appLog.debug("Handling application ID: %s" % self.msg["appID"])
                return self.appHandlers[self.msg["appID"]].decode(self.msg)
            else:
                self.appLog.warn("No handler registered for appID %s, dropping message..." % self.msg["appID"])
        return []

    def register(self, appID, handler):
        self.appHandlers[appID] = handler
        self.appLog.info("Registered handler for appID: %s" % appID)
开发者ID:vanceb,项目名称:mqtt_gateway,代码行数:55,代码来源:datalogger.py

示例12: run

# 需要导入模块: from xbee import ZigBee [as 别名]
# 或者: from xbee.ZigBee import wait_read_frame [as 别名]
 def run(self):
     stop = False
     ser = serial.Serial(PORT, BAUD_RATE)
     xbee = ZigBee(ser)
     i = 0
     count = 0
     while(True):
         response = xbee.wait_read_frame()
         parsed = self.parse(response)
         if(self.parse(response) != None):
             if(len([x for x in parsed.fftMags if(x == 0)]) == len(parsed.fftMags)):
                 count+= 1
                 print("TOTAL NONZEROS THUS FAR: " + str(count))
             else:
                 data_queue.append(parsed)
     ser.close
开发者ID:reicruz,项目名称:iot-shm,代码行数:18,代码来源:gatewayMain.py

示例13: collect_from_zigbee

# 需要导入模块: from xbee import ZigBee [as 别名]
# 或者: from xbee.ZigBee import wait_read_frame [as 别名]
def collect_from_zigbee(target, stream_id, device=DEFAULT_SERIAL_DEVICE, baud_rate=DEFAULT_BAUD_RATE):
    """Synchronously read from the serial port to target

    target can either be the URL of a couchdb server or a restkit resource
    instance.
    """
    from xbee import ZigBee

    if not hasattr(target, "post"):
        target = Resource(target)

    serial_device = serial.Serial(device, baud_rate)
    headers = {"Content-Type": "application/json"}
    if stream_id is None:
        stream_prefix = ""
    else:
        stream_prefix = stream_id + "_"
    try:
        xbee = ZigBee(serial_device, escaped=True)
        # Continuously read and print packets
        while True:
            try:
                response = xbee.wait_read_frame()
                now = datetime.datetime.utcnow()
                timestamp = now.replace(microsecond=0).isoformat() + "Z"
                logging.debug(response)
                samples = response.get("samples", [])
                for sample in samples:
                    for sensor_id, sensor_value in sample.iteritems():
                        target.post(
                            headers=headers,
                            payload=json.dumps(
                                {
                                    # TODO: use a mapping mechanism instead of stream_id
                                    # prefix
                                    "datastream_id": stream_prefix + sensor_id,
                                    "value": sensor_value,
                                    "timestamp": timestamp,
                                }
                            ),
                        )

            except KeyboardInterrupt:
                break
    finally:
        serial_device.close()
开发者ID:ogrisel,项目名称:instrumentalist,代码行数:48,代码来源:collect.py

示例14: XbeeAPIWatcher

# 需要导入模块: from xbee import ZigBee [as 别名]
# 或者: from xbee.ZigBee import wait_read_frame [as 别名]
class XbeeAPIWatcher(object):
    def __init__(self):
        self.FILE = open(settings.LOG_FILE_NAME, 'a')
        self.ser = None
        self.xbee = None
        self.last_message = None
        self.last_signal = None

        self._setup_serial()

    def _setup_serial(self):
        self.ser = serial.Serial(settings.SERIAL_PORT, 9600, timeout=0)
        self.xbee = ZigBee(self.ser, escaped=True)

    def _process_message(self, message):
        if message['id'] == 'rx':
            self.last_message = message
            logger.info(time.strftime('%Y-%m-%d %H:%M:%S')) # TODO: use a higher resolution timestamp
            self.xbee.send('at', command='DB')
            # wait for signal strength response
        elif message['id'] == 'at_response' and message['command'] == 'DB':
            logger.info('Signal Strength: -%ddBm' % ord(message['parameter']))
            self.last_signal = ord(message['parameter'])
            data_string = '%s,%s,%s' % (time.strftime('%Y-%m-%d %H:%M:%S'),
                                            '-%d' % self.last_signal,
                                            self.last_message['rf_data'].strip('\r\n'))
            self.FILE.write('%s\r\n' % data_string)
            self.FILE.flush()
            try:
                ChickenAPI.add_data(data_string)
            except ConnectionError as e:
                logger.error(e)


    def start(self):
        while True:
            try:
                response = self.xbee.wait_read_frame()
                self._process_message(response)
            except KeyboardInterrupt:
                break

    def stop(self):
        self.xbee.halt()
        self.ser.close()
开发者ID:stratospark,项目名称:sensor_hub,代码行数:47,代码来源:xbee_api_watcher.py

示例15: PollDevice

# 需要导入模块: from xbee import ZigBee [as 别名]
# 或者: from xbee.ZigBee import wait_read_frame [as 别名]
def PollDevice(serialId):
    logging.debug('Starting Process.')
    ser = serial.Serial("/dev/tty.{}".format(serialId), 9600)
    xbee = ZigBee(ser, escaped=True)
    sampleRate = 1
    Alive = True
    while Alive:
        logging.debug('Getting data.')
        try:
            packet = xbee.wait_read_frame()
            logging.debug("Frame received")
            logging.debug(packet)
            SendToTeleceptor(packet)
        except Exception, e:
            logging.error('Error getting data')
            logging.error(e)
            Alive = False
        time.sleep(sampleRate)
开发者ID:visgence,项目名称:teleceptor,代码行数:20,代码来源:xBeePoller.py


注:本文中的xbee.ZigBee.wait_read_frame方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。