微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI Zigbee设计交流 > 请教一个父路由离开的问题

请教一个父路由离开的问题

时间:10-02 整理:3721RD 点击:

当前zll灯经过touch link已经被父路由(飞比路由器)接受后,现在父路由器按复位键复位到出厂模式键,zll灯被touch link后总是不能立即响应父路由器复位要求;但是如zll灯下电再上电后有一定的概率能响应父路由器复位要求。

已知zll不支持绑定,可是zll灯程序的哪个部分是处理父路由器复位要求的呢?NLME_LeaveReq和AssocRemove函数在父路由器复位时都未测试到被执行。现在zll灯需要改成“父路由器复位时即使刚刚被touch link接受后,也要立即响应父路由器复位要求”。

由于怀疑Touch link 簇0x07条目(Reset to factory new request)命令  是导致灯复位到出厂状态的原因,对zclLL_HdlIncoming做了补充测试,测试结果是程序始终没有停在断点上就发生了复位到初始值(加了液晶第3行显示输出运行信息也没看到流程走到zclLL_HdlIncoming的迹象);另外测试父路由器复位时,灯的zll_ResetToFactoryNew函数也未能断点断住。这样一来就很奇怪了,要么方法不对;要么我的思路有问题。求解答。

根据前面的测试结果,解授权操作需要先复位,这个好办,授权后延时一会主动自复位;复位后到底是在哪里起到解授权的作用的?怎么都没有技术支持啊?

当前这个问题已有些头绪了,测试基本确定解授权的接收帧处理函数是ZDO_LeaveInd,有关代码还在研究中,问题是飞比路由器解授权帧不是很容易收到,这个问题应如何解决?

现在已经确认ZDO_LeaveInd只能在复位后的几秒时间内能收到,几秒后(稍长时间)即使多按父路由离开键也接收不到,请提供问题解决的方法。当前只测到ZLL能接收到的飞比路由器离开通知就是ZDO_LeaveInd。设计要求是在设备运行期间都能收到,随时都可以取消授权,不仅仅是在设备复位后的几秒内。

你好,

不太明白你提到的授权是什么意思,你的ZLL协议栈应该是Feibit在TI ZLL协议栈基础上加了新的功能对吧?

告诉我下你用的ZLL协议栈版本。

另外测试过程中最好能够把抓包的文件保存下来,这样有利于分析。是否能提供抓包文件。

谢谢!

当前使用的例程是Z-Stack Lighting 1.0.2的SampleApp,我的ZLL协议栈就是Z-Stack Lighting 1.0.2,没有增加什么,当前是打算做个灯控。

授权的意思就是认证,zll_target.c文件targetProcessStateChange功能函数,程序刚启动运行状态是扫描,扫描OK后是加入网络,加入网络后如果你是经过认证的设备,状态就转成具体的设备类型,比如设备类型是路由器“devState == DEV_ROUTER”或者设备类型是末端节点“devState == DEV_END_DEVICE”。设备被认证的方法就是空机启动时被路由器touch link。

抓包怎么抓,我现在还只有一个板,TI 的ZLL开发套件申请了还没到。

这ZLL不支持协调器,也能抓包么?

对这个问题我的新想法是,定时检查网络的变化,如果发现变化了,主动复位设备启动扫描,扫描时自动就发现授权被取消了。只是路由器取消授权后,没检测到任何变化。灯啥事件也没发生,NLME_ReJoinRequest和ZDP_DeviceAnnce的定时调用结果都是成功。解授权前是成功,解授权后还是成功,有些困惑了。请技术人员尽快支持一下。

实在对你的 授权 认证 这些词有点搞不太懂!

你的问题是什么,目的是什么

zll的“授权 “认证就是Touch link,解“授权 认证”就是解除Touch link。留qq 2281649026方便和你在线交流一下。

Touch link实际效果是双方被绑定了,当一方路由器解除Touch link后,由于zll灯未能收到任何通告,还处在通过Touch link状态,启动不扫描网络,实际无法联机入网。现在需要zll灯在路由器解除Touch link后也能解除Touch link。

我称zll灯被touch link后又被解除touch link状态为未授权状态,zll灯从未被touch link后的状态也是未授权状态,原因代码中这个状态的英文名称为

”DEV_END_DEVICE_UNAUTH, // Joined but not yet authenticated by trust center“。这个是专业名称,怎么会不理解呢?

这个问题看来得等TI的zll 开发工具到了,把抓包信息发给TI支持人员分析才能解决。测试尚未找到touch link后及解除touch link后收发包情况的明显区别,调用ZDO_LeaveInd函数的入口zstack未开放,在osal_msg_enqueue_push函数内监测也未能断住发往ZDO_LeaveInd的消息。我原先考虑是层1的0x06命令收到后转发到层6,还是0x06命令,这样我就能处理;测试的结论是情况并非如此。

这个问题继续测试的情况,使用新的网关,发现该问题不存在;旧的网关touch_link后和灯设备已经失联,手机上找不到灯,难道对一个灯设备几百次解授权后会是这种情况?实在有些困惑。网关touch_link后和灯设备失联,现在2个旧网关即使是上电8s内,也是不能对灯设备解授权。

问题描述有误,修正一下。刚知道飞比网关上的OK键是“允许加入”键,不是“touch_link“键,该贴涉及”touch_link“的描述请理解为“允许加入”操作。旧的网关和其它灯板连接正常,解授权正常。

有改善,主要原因一个是消息流动受阻,一个可能是接收未能100%接收到,当前还是不能100%接收到。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top