比如有一个智能家居系统需要施工安装,系统为一个协调器+多个终端节点。假如厨房一个节点,客厅一个节点,协调器建立网络,节点加入网络后,厨房节点和客厅节点自动把各自的网络ID发给协调器,然后上位机终端通过网络ID来控制厨房和客厅的节点。但是终端怎么能确认哪个网络ID是厨房的,哪个网络ID又是客厅的呢。有个前提是所有的节点都是同一套软件固件,不会有其他任何信息来区别节点的不同。不知道你们有没有什么好的建议?谢谢!
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.
比如有一个智能家居系统需要施工安装,系统为一个协调器+多个终端节点。假如厨房一个节点,客厅一个节点,协调器建立网络,节点加入网络后,厨房节点和客厅节点自动把各自的网络ID发给协调器,然后上位机终端通过网络ID来控制厨房和客厅的节点。但是终端怎么能确认哪个网络ID是厨房的,哪个网络ID又是客厅的呢。有个前提是所有的节点都是同一套软件固件,不会有其他任何信息来区别节点的不同。不知道你们有没有什么好的建议?谢谢!
你好!
那可以再给你推荐一个方法,你可以采用Secondary IEEE address这个作为你的不同应用对象的标记,你在协议栈里面用的Primary IEEEE address,每个芯片出厂时都固定好的没法更改,而Secondary IEEE address 是通过smartRF Flash Programmer软件在烧写hex文件的程序时,可以进行设置的。这个Secondary IEEE address 就是存放在NV区域中的最后8个字节,所以你每次只需要从flash中把这8个字节读出来以后,就可以知道你的节点是应该是哪个具体对象,执行什么样的应用,而且在NV区域中,掉电也不会丢失,重启后还可以从里面读取。
操作有点麻烦!关于如何读FLASH,你可以参考Z-stack中hal_flash.c hal_flash.h 文件
谢谢!