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.

[参考译文] CC2650DK:如何使用ZCL API发送数据

Guru**** 2551860 points
Other Parts Discussed in Thread: CC2530

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

https://e2e.ti.com/support/wireless-connectivity/zigbee-thread-group/zigbee-and-thread/f/zigbee-thread-forum/590503/cc2650dk-how-to-send-data-using-zcl-api

部件号:CC2650DK

大家好,

我使用 ZStack_HOME_1_02_02a_4.4539万中的SampleSwitch作为我的项目的基础。

现在,我想从端点向协调员发送数据,以发送我正在使用的数据  

AF_DataRequest (destAddr,epDesc,clusterID,msgLen,pBuf, &zcl_transID,选项,AF_DEFAULT_RADIUS);

使用"pBuf"中的数据。

但是当我在使用Wireshark的嗅探器中看到时,我看不到我发送的数据。

你知道我错了吗? 或者,我使用的API不正确

请帮我解决这个问题。

我将"源端点"设置为27以识别邮件。

这是嗅探数据

帧163:线上30字节(240位),接口0上捕获28字节(224位)
接口ID:0 (\\.\pipe\ws_socket)
封装类型:IEEE 802.15 4无线PAN (104)
抵达时间:2017年4月22日16:31:49.0.0014亿 SE亚洲标准时间
[此数据包的时移:0.0亿 秒]
Epoch Time: 1492853509.000140000</xmt-block>0.0014亿 seconds.(Epoch时间:秒。
[与上一捕获帧相比的时间增量:1.9.99952亿 秒]
[与上一显示帧相比的时间增量:1.9.99952亿 秒]
[自参考或第一帧以来的时间:123.9.99705亿 秒]
帧号:163.
帧长度:30字节(240位)
捕获长度:28字节(224位)
[帧标记为:false ]
[帧被忽略:false ]
[帧中的协议:wpan:zbe_nwk:zbe_aps:zbe_zcl]
IEEE 802.15 4数据,DST:0x0000,src:0x5fe9
帧控制字段:0x8861,帧类型:数据,确认请求,PAN ID压缩,目标寻址模式:短/16位,帧版本:IEEE Std 802.15。4-2003,源寻址模式:短/16位
序列号:244
目标PAN:0x6b43
目的地:0x0000
资料来源:0x5fe9
ZigBee网络层数据,DST:广播,src:0x5fe9
帧控制字段:0x0008,帧类型:数据,发现路由:抑制数据
目的地:0xFFFF
资料来源:0x5fe9
半径:30
序列号:255
ZigBee应用支持层数据,DST端点:255,SRC端点:27
帧控制字段:数据(0x08)
目的端点:255
群集:标识(0x0003)
配置文件:家庭自动化(0x0104)
源端点:27
计数器:92
ZigBee群集库框架,命令:读取属性,序列:4
帧控制字段:配置文件范围(0x00)
.... ...00 =帧类型:全轮廓(0x0)
.... 0。 =制造商特定:错误
.... 0。 =方向:服务器
0。。 =禁用默认响应:假
序号:4.
命令:读取属性(0x00)

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您的目标端点设置为255,这是不正确的。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    嗨,YK:

    我虽然端点255是广播端点,但如果我要发送数据,这是个问题吗?
    我没有管理端点,只想先正确发送数据。

    谢谢您的回复
    此致
    Tonny
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是的,这是一个问题。 您必须使用正确的端点,否则无法正常工作。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    嗨,YK:

    如果我的端点是协调员,我是否可以使用ztool设置端点值?

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

    如果我使用ZnP-bringup.zjs,这是端点配置吗?
    私有var端点 :字节= 0x07;

    我仍然无法更改终端节点中的目标端点,
    SampleSwitch示例是否可以与ZAP-ZNP Coordinator无故障连接? 或需要修改?
    如果默认情况下示例可以正常工作,我可能需要重新安装ZStack Home

    谢谢您的回复
    此致
    Tonny
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是的,SampleSwitch可以与ZAP-ZNP协调器连接,没有问题。 我建议您使用ZDP_ACTIVE_EP_Req MT命令将端点从协调员请求到您的SampleSwitch。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    嗨,YK:

    仍需要阅读有关端点的更多信息,因为仍然无法设置端点。

    但是,如果我使用CC2530和Wireshark捕获数据,消息将被加密。
    您知道如何发送普通邮件,以便我可以看到正在发送的数据吗?

    谢谢您的回复
    此致
    Tonny
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    由于Zigbee HA使用TC链路密钥传输网络密钥,因此您必须输入TC链路密钥才能使Wireshark解密Zigbee HA消息。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    嗨,YK:

    对于密钥信息,现在我可以看到数据。

    但我循环AF_DataRequest函数,但为什么没有发送数据?

    状态= AF_DataRequest (destAddr,epDesc,clusterID,msgLen,msgBuf,
    &zcl_transID,选项,AF_DEFAULT_RADIUS);

    我会逐步跟踪,不会出现任何错误。
    您知道我的编码可能有什么问题吗?应该发送消息的功能是什么?

    我将基本的默认"static void Switch_sendToggle (void)"修改为该值

    静态无效Switch_sendToggle (void)

    zclReportCmd_t *pReportCmd;

    //生成ZCL温度读数并将其发送到匹配的设备
    pReportCmd = iCall_malloc(sizeof(zclReportCmd_t)+ sizeof(zclReport_t));
    if(pReportCmd !=空)

    afAddrType_t dstAddr;

    //填写目标地址
    dstAddr.addrMode =(afAddrMode_t)zswDstAddr.addrMode;
    dstAddr.addr.shortAddr = zswDstAddr.addr.shortAddr;
    dstAddr.endpoint = zswDstAddr.endpoint;
    dstAddr.panId = zswDstAddr.panID;

    //填写温度读数的单个属性信息
    pReportCmd->numAttr =1;
    pReportCmd->attList[0].attalID = ATTRID_MS_TEMPERATY_Measured_Value;
    pReportCmd->atterList[0].datatype = ZCL_datatype_Int16;
    pReportCmd->attList[0].attData ="Hallo";//(void *)(&staTempMeasuredValue);

    //调用ZCL函数发送报告
    zcl_SendReportCmd (switch_ep,&dstAddr,
    ZCL_CLUST_ID_MS_TEMPERATURE,pReportCmd,
    ZCL_FRAME_SERVER_CLIENT_DIR,TRUE,STATransID++);

    iCall_free (pReportCmd);

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

    顺便提一下我的设置,如下所示:
    CC2650DK (Zed)(SampleSwitch SOC)连接到CC2650DK (ZC)+ Ztool (使用ZNP-bringup.zjs)
    您是否对我的问题的设置有任何疑虑

    谢谢您的回复
    此致
    Tonny
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    否,我认为您的配置没有问题。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    嗨,YK:

    在看到"zclGeneral _SendIdentifyQuery"函数后,我看到了一些先决条件,以便"zcl_SendCommand"可以发送消息。
    可能是因为Switch_sendToggle无法发送消息,除了Dest端点不是255外,您知道"zcl_SendCommand"的预请求是什么才能发送消息吗?

    可能需要某些状态或事件?
    特定条件?

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

    正确吗?在使用SampleSwitch中的“zclGeneral _SendOnOff_CmdToggle”从“C:\ti\simplelink\ZStack_HOME_1_02_02a_4.4539万\projects\ZStack\HomeAutomation\SampleSwitch”成功发送数据之前,我需要成功地将开关映射到灯光?

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

    以下消息来自何处? 是ZStack Core,因为我无法从示例应用程序中跟踪源,
    当我尝试打开ZStackCore代码时,总是弹出消息说“更改活动配置将终止调试会话”

    我看到你可以在ZstackCore上设置断点,你是怎么做的?

    帧1.0799万:12字节线缆(96位),10字节(80位)在接口0上捕获
    接口ID:0 (\\.\pipe\ws_socket)
    封装类型:IEEE 802.15 4无线PAN (104)
    抵达时间:2017年4月24日23:35:24.0.00311亿 SE亚洲标准时间
    [此数据包的时移:0.0亿 秒]
    Epoch Time: 1493051724.000311000</xmt-block>0.00311亿 seconds.(Epoch时间:秒。
    [与上一捕获帧相比的时间增量:2.0亿 秒]
    [与上一显示帧相比的时间增量:2.0亿 秒]
    [自参考或第一帧以来的时间:1.1257万.999429000</xmt-block>9.99429亿 秒]
    帧号:1.0799万
    帧长度:12字节(96位)
    捕获长度:10字节(80位)
    [帧标记为:false ]
    [帧被忽略:false ]
    [帧中的协议:WPAN ]
    IEEE 802.15 4命令,DST:0x0000,src:0xc35e
    帧控制字段:0x8863,帧类型:命令,确认请求,PAN ID压缩,目标寻址模式:短/16位,帧版本:IEEE Std 802.15。4-2003,源寻址模式:短/16位
    序号:214
    目标PAN:0x8213
    目的地:0x0000
    资料来源:0xc35e
    [扩展来源:TexasIns_00:06:8b:4e:07 (00:12:4b:00:06:8b:4e:07)]
    [出处:20岁]
    命令标识符:数据请求(0x04)

    谢谢您的回复
    此致
    Tonny
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    1.您必须执行绑定或知道目标短地址/端点,然后才能将邮件从SampleSwitch发送到SampleLight。
    2.可以,您可以在ZStackCore中设置断点,但应该从应用程序进行调试。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    嗨,YK:

    是的,您之前是正确的,问题在端点值中,它必须是有效值,

    我现在的问题是,我们如何知道正确的端点值列表是什么,以及如果您要创建特定的端点值,如何定义一个端点值?

    您是否可以参考有关此问题的文档  

    这是我的嗅探,我的数据广播了,数据在负载中

    帧1.1777万:线上53字节(424位),接口0上捕获51字节(408位)
    IEEE 802.15 4数据,DST:广播,src:0x0000
    帧控制字段:0x8841,帧类型:数据,PAN ID压缩,目标寻址模式:短/16位,帧版本:IEEE Std 802.15 .4-2003,源寻址模式:短/16位
    序列号:50
    目标PAN:0x2bde
    目的地:0xFFFF
    资料来源:0x0000
    [扩展源:TexasIns_00:06:8b:0e:0A (00:12:4b:00:06:8b:0e:0A)]
    [出处:7013]
    ZigBee网络层数据,DST:广播,src:0x83ce
    帧控制字段:0x0208,帧类型:数据,发现路由:抑制,安全数据
    目的地:0xFFFF
    资料来源:0x83ce
    半径:29
    序号:178
    [扩展来源:TexasIns_00:06:8b:4e:07 (00:12:4b:00:06:8b:4e:07)]
    [出处:7009]
    ZigBee安全管座
    ZigBee应用支持层数据,DST端点:39,SRC端点:8
    帧控制字段:数据(0x08)
    目的端点:39.
    群集:标识(0x0003)
    配置文件:家庭自动化(0x0104)
    源端点:8
    柜台:63
    ZigBee群集库框架
    帧控制字段:特定于群集(0x11)
    序号:29
    命令:标识查询(0x01)
    有效负载

    谢谢您的回复

    此致

    Tonny S

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    当设备加入Zigbee网络时,它将广播终端节点通告,该通告将包含设备的短地址和IEEE地址。 您可以使用短地址请求端点。 如果您使用ZNP,则可以使用ZDO_ACTIVE_EP_Req请求端点。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    嗨,YK:

    是的,我使用ZNP作为协调员。
    在从Zed获取端点值后,我需要在协调人端点表中注册它吗?

    谢谢您的回复
    此致
    Tonny S
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    否,您应该存储端点和短地址,以便使用AF_DataRequest发送消息。