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.

[参考译文] CC2650EMK:Zigbee连接后SampleDoorLock示例无限循环

Guru**** 2540720 points
Other Parts Discussed in Thread: Z-STACK, CC2650, CC2538

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/zigbee-thread-group/zigbee-and-thread/f/zigbee-thread-forum/581224/cc2650emk-sampledoorlock-example-infinite-loop-after-zigbee-connection

部件号:CC2650EMK
主题中讨论的其他部件:Z-stackCC2650CC2538

问候,

我正在尝试将CC2650EM作为终端设备连接到由CC2538EM作为协调员创建的Zigbee网络。 我使用Z-Stack Home 1.2 .2a中的样本门锁对示例。

我在CC2538EM上使用了“SampleDoorLockController”示例,并将其修改为每3秒发送一次“切换”(我使用 osal_start_timerEx()函数每3秒生成一次事件,并像单击“up”开关那样处理)。 我调试了此代码,它工作正常。

我在CC2650EM上刷新了“SampleDoorLock”示例(未进行修改)。 它成功连接到Zigbee网络(开机几秒钟后,它在SmartRF06 LCD上显示一个地址),但此后没有任何反应。 当我调试时,我发现它在连接到网络后的下一个迭代中进入无限循环。 它在第1001行(dlsapp.c)中无限等待响应消息:

 

为什么它不接收任何数据? 两台设备之间建立了网络,协调员每隔3秒发送一条消息。 什么使终端设备等待无限时间?

此致

* James *

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,James:

    在开箱示例中,终端设备应每2秒轮询一次协调器,这是由znwk_config.h中的ZNWK_POLLINE_RATE配置的 您是否有嗅探器日志? 您应每2秒看到一次从终端设备发出的数据请求。

    您放置断点的"无限循环"按预期运行,设备将在此阻止并进入休眠模式,直到收到另一条消息。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    谢谢Jason。

    我不是很理解您,但您的话语引发了一些问题:

    1.您的意思是我的终端设备CC2650EM向其协调员发送请求以查找消息吗? 我认为终端设备只会等待直到收到协调员的消息。

    2.如果是,那么我如何在代码中检查此问题,因为我没有嗅探器,我尝试调试它,但我没有找到它轮询某事的部分?

    3.如果我将ZNWK_poll_rate更改为与以前一样的1秒,这是否会有任何影响,或者它仍然会忽略来自协调员的讯息?

    此致
    * James *
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    1.是的,终端设备需要轮询其父设备才能查找任何缓冲数据。 这是使用终端设备与使用路由器的主要理念。 使用路由器时,接收器始终处于打开状态,这意味着它无需轮询即可接收数据,但由于它不会进入休眠模式,因此它消耗的电量要多得多。 对于终端设备,它只能在轮询后接收数据,但在轮询之间,终端设备可以进入休眠模式。

    2.为了绑定匹配的群集,您是否在两台设备上执行了EZ模式调试? 否则,您将无法在这些设备之间发送有意义的数据。

    3.消息将在协调器中缓存长达7秒(Nwk_indiry_MSG_timeout),因此将轮询速率从2秒更改为1秒不会产生任何影响,只是明显地加快了轮询速率。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Jason非常好,我不知道他一直在轮询。

    2.我真的不知道是不是,我只是在EZ模式的部分中未经修改地使用了示例中的代码。但现在您提到了它,我获得了Z-stack开发人员指南和z-stacks家庭开发人员指南,并阅读了EZ模式的部分内容。 我认为您是对的,但我检查了CC2650,发现“ZCL_EZMODE”已定义(我认为这意味着它的EZ模式已打开,如果我对此有误,请更正我),您能不能告诉我在哪里可以选中此选项?

    提前感谢
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    通过将2x SmartRF06与CC2538EM门锁控制器协调器和CC2650EM门锁终端设备配合使用,我执行了以下操作:

    >(两个设备均关闭,NV已清除,出厂重置等)
    >打开CC2538,让其自动创建网络(形成后LCD将显示网络信息)
    >按CC2538板上的SW2,开始EZ模式调试
    >打开CC2650,按SW2,开始网络连接+ EZ模式调试
    在加入后几秒钟以上,如果工作正常,第2行的两张LCD都应该显示“EZMode: Success”(EZMode:成功)
    >您现在可以将命令从控制器发送到门锁,如门锁切换。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    非常感谢Jason,它工作得像魔法一样!

    此致
    詹姆斯