使用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
答案 0 :(得分:1)
当协调员收到您的消息时,您应该在发送节点上收到SUCCESS的“发送状态”消息(帧类型0x88)。这是无线电(XBee模块)已收到消息的低级状态消息,并不保证您的应用层实际上已处理该消息。
例如,如果您的应用程序崩溃但XBee仍然通电,您仍会看到SUCCESS的传输状态。
我不知道如何配置python-xbee
来接收传输状态消息的副本。您需要更新代码以使用递增帧ID(1到255并返回1)并保留最近发送的帧的表。将传输状态消息中引用的帧ID与您的表进行匹配,以了解已接收的帧。
python-xbee
库应该有一种模式,它为发送的每封邮件使用新的帧ID,并将该信息提供给您在表中使用。