如何使用 digi xbee Python 获取网络中的 xbee 设备列表
How to get list of xbee devices in network using digi xbee Python
我有一个 xbee
代码 运行ning,它有一个计划程序 运行 每 1 分钟。此调度程序查询网络并获取在线的 xbee
台设备。下面是代码:
def search_devices_in_nw():
log_debug.error("Discovery process starting....")
net = device.get_network()
net.start_discovery_process(deep=True, n_deep_scans=1)
while net.is_discovery_running():
time.sleep(0.5)
active_nodes = net.get_devices()
print(active_nodes)
schedule.every(1).minutes.do(search_devices_in_nw)
while device.is_open():
schedule.run_pending()
我的 xbee
网络中有两个设备,运行 宁此代码,给出 2 mac 地址是正确的。但是,如果我将其中一个 xbee 设备置于离线状态,它仍然会给出 2 mac 地址在线的结果,这是不正确的。
如果我停止我的代码并重新启动它,那么它会显示 1 mac 个在线地址。我不确定为什么代码不能正常工作。谁能帮我解决这个问题。请帮忙。谢谢
文档页面:https://xbplib.readthedocs.io/en/latest/user_doc/discovering_the_xbee_network.html#discovernetwork
根据 documentation,“所有发现的 XBee 节点都存储在 XBeeNetwork 实例中。”
但您也可以在 XBeeNetwork
对象上使用 clear()
方法 clear the list of nodes,然后再开始新的发现:
[...]
# Instantiate a local XBee object.
xbee = XBeeDevice(...)
[...]
# Get the XBee network object from the local XBee.
xnet = xbee.get_network()
# Discover XBee devices in the network and add them to the list of nodes.
[...]
# Clear the list of nodes.
xnet.clear()
[...]
我有一个 xbee
代码 运行ning,它有一个计划程序 运行 每 1 分钟。此调度程序查询网络并获取在线的 xbee
台设备。下面是代码:
def search_devices_in_nw():
log_debug.error("Discovery process starting....")
net = device.get_network()
net.start_discovery_process(deep=True, n_deep_scans=1)
while net.is_discovery_running():
time.sleep(0.5)
active_nodes = net.get_devices()
print(active_nodes)
schedule.every(1).minutes.do(search_devices_in_nw)
while device.is_open():
schedule.run_pending()
我的 xbee
网络中有两个设备,运行 宁此代码,给出 2 mac 地址是正确的。但是,如果我将其中一个 xbee 设备置于离线状态,它仍然会给出 2 mac 地址在线的结果,这是不正确的。
如果我停止我的代码并重新启动它,那么它会显示 1 mac 个在线地址。我不确定为什么代码不能正常工作。谁能帮我解决这个问题。请帮忙。谢谢
文档页面:https://xbplib.readthedocs.io/en/latest/user_doc/discovering_the_xbee_network.html#discovernetwork
根据 documentation,“所有发现的 XBee 节点都存储在 XBeeNetwork 实例中。”
但您也可以在 XBeeNetwork
对象上使用 clear()
方法 clear the list of nodes,然后再开始新的发现:
[...]
# Instantiate a local XBee object.
xbee = XBeeDevice(...)
[...]
# Get the XBee network object from the local XBee.
xnet = xbee.get_network()
# Discover XBee devices in the network and add them to the list of nodes.
[...]
# Clear the list of nodes.
xnet.clear()
[...]