Other Parts Discussed in Thread: Z-STACK
您好!
假设现在有若干cc2530设备,他们都使用同一套Z-stack2.5.1开发的程序,安装在不同的位置,当协调器接收到来自他们的数据时,如何确定这条数据是来自哪一个位置的设备?
假如我知道每个位置的设备对应的IEEE地址,那么可以根据数据中的IEEE地址判断出来数据来源,请问您还有别的建议么?
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
您好,根据IEEE地址是一个很好的方法来确定数据来源。
为您提供其他思路
1.使用设备的短地址:每个设备在加入网络时都会被分配唯一一个短地址。您可以将每个位置的设备于其特定的短地址进行映射,然后根据数据中的短地址来确定数据来源。
2.使用设备的唯一标识符:如果每个设备都有一个唯一的标识符,您可以将每个位置的设备与特定的标识符进行映射。
3.使用网络拓扑信息:您可以通过构建设备之间的拓扑关系来确定数据来源。通过了解设备之间的直接关系以及路径
3.唯一标识符 是 PANID
PANID简介
PANID其全称是Personal Area Network ID,即某个网络的标识符,是针对一个或 多个应用的网络,
一般是mesh或者cluster tree两种拓扑结构之一。
一个网络只有一个PANID,该网络中的所有节点的panID唯一,它是由协调器生成的,PANID是可选配置项,
用来控制ZigBee路由器和终端节点要加入那个网络。
若要在应用中查看PANID,可以通过_NIB.nwkPanId读取即可。
在ccdebugger中会有memory view,可以看到078c到0x793的8个字节,这是IEEE地址,但是是反序的。IEEE地址是出厂时写入的,所以可以通过读取特殊区域来获取信息。当然,这只是一种小方法,仅仅可以一试。