如何获得确认并停止发送数据

时间:2013-05-15 13:38:10

标签: python xbee

使用python-xbee库,我编写了将数据从端点发送到协调器的代码。我已成功将数据发送给协调员,协调员会收到该数据。但是,在端点代码中,在协调器获取数据之后,我想结束通信。我该怎么写才能发现协调员收到了数据?

我用

发送数据
 class XbeeSend(Concurrent):
    def __init__(self):
            self.stopped = False
            threading.Thread.__init__(self)
    def run(self):
        try: 
            while self.stopped == False :
                    data_ = str( .... ) 
                    xbee.send('tx',frame_id='\x01',dest_addr_long=DEST_ADDR_LONG,dest_addr="\xff\xfe",data=data_)
                    time.sleep(1)
                    threading.Timer(2, self.run())
        except:
                    None

1 个答案:

答案 0 :(得分:1)

当协调员收到您的消息时,您应该在发送节点上收到SUCCESS的“发送状态”消息(帧类型0x88)。这是无线电(XBee模块)已收到消息的低级状态消息,并不保证您的应用层实际上已处理该消息。

例如,如果您的应用程序崩溃但XBee仍然通电,您仍会看到SUCCESS的传输状态。

我不知道如何配置python-xbee来接收传输状态消息的副本。您需要更新代码以使用递增帧ID(1到255并返回1)并保留最近发送的帧的表。将传输状态消息中引用的帧ID与您的表进行匹配,以了解已接收的帧。

python-xbee库应该有一种模式,它为发送的每封邮件使用新的帧ID,并将该信息提供给您在表中使用。