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

标签 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

最佳答案

当协调器收到您的消息时,您应该在发送节点上收到成功的“传输状态”消息(帧类型 0x88)。这是一个低级状态消息,表明 radio (XBee 模块)已收到该消息,并不能保证您的应用程序层已实际处理该消息。

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

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

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

关于python - 如何获得确认并停止发送数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16566593/

相关文章:

android - 如何为 Kivy 中的按钮添加功能

python - 无法安装 MySQL-python [CentOS]

c++ - xbee arduino通讯编程

c - 无论我要求我的系统发送什么,它只发送 FF 和 FE

python - 从网页中提取表格

python - 如何在 Python 中比较两个 CSV 文件?

c++ - 串行数据最初错误 C++

xbee - ZigBee Mesh VS DigiMesh

c++ - Arduino XBee 发送数据 API

python - PyAudio 和分贝变化和平移