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.

[参考译文] CC2530:发送消息

Guru**** 2582405 points
Other Parts Discussed in Thread: Z-STACK

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

https://e2e.ti.com/support/wireless-connectivity/zigbee-thread-group/zigbee-and-thread/f/zigbee-thread-forum/830755/cc2530-sending-message

器件型号:CC2530
Thread 中讨论的其他器件:Z-stack

您好!

在前面的帖子之后、我现在通过了以下步骤:

1) 1)协调器成功启动网络

2) 2)终端设备成功加入网络

现在、我希望终端设备向协调器发送包含"Hello World"等字符串的消息。

我应该怎么做?

我正在使用 Z-stack 3、IAR 编译器、温度传感器和恒温器示例应用。

谢谢

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

    您好!

    请参阅此相关文章 :https://e2e.ti.com/support/wireless-connectivity/zigbee-and-thread/f/158/p/780670/2886600#2886600

    此致、
    Toby

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

    谢谢你。

    由于我希望发送更多常规消息、而不仅仅是温度值报告、因此我认为函数 osal_msg_send 会更有帮助。 我是对的吗? 我想知道它是如何工作的?! 可以麻烦你解释一下吗?

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

    OSAL_msg_send 不用于通过无线方式发送消息。 应为此类专有消息创建自定义群集/属性,并使用 zcl_SendReport 发送该消息。

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

    谢谢、

    假设温度为已知值、等于25。 现在、我希望终端设备将此值发送给协调器。 此函数是否适用于此情况? 我不确定我的寻址和 zcl_SendReportCmd 参数。  

    静态空 zclSampleTemperatureSensor_SendTemp(空)

    zclReportCmd_t *pReportCmd;
    pReportCmd = osal_mem_alloc (sizeof (zclReportCmd_t)+ sizeof (zclReport_t));
    if (pReportCmd!= NULL)

    uint8 zclSampleTemperatureSensorSeqNum;
    uint8 * my_temp;
    * my_temp = 25;
    afAddrType_t * destination_address;
    destination_address->addr.shortAddr = 0x0000;
    destination_address->addrMode = Addr16Bit;
    destination_address->endpoint = 0;
    pReportCmd->numAttr = 1;
    pReportCmd->attrList[0].attrID = 0x0020;//ATTRID_MS_TEMP_TEMPERATE_meased_value;
    pReportCmd->atList[0].datatype = ZCL_datatype_uint8;
    pReportCmd->attrList[0].attrData = my_temp;
    zcl_SendReportCmd (SAMPLETEMPERATURESENSOR_终结 点、destination_address、
    ZCL_CLUSTER_ID_GEN_ANALOG_INPUT_BASIC、
    pReportCmd、ZCL_FRAME_SERVER_CLIENT_DIR、TRUE、zclSampleTemperatureSensorSeqNum);
    zclSampleTemperatureSensorSeqNum++;

    OSAL_mem_free( pReportCmd );

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

    基本上,使用 zcl_SendReportCmd 是正确的,但 destination_address->endpoint 不应为0。 destination_address->endpoint 应该是协调器的端点。

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

    好的、非常感谢您、  

    抱歉、我在哪里可以看到我的协调器端点?

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

    您可以发送活动的端点请求以获取它。

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

    我不知道如何做到这一点:(

    设置此端点后、您是否认为消息将成功发送?

    样品恒温器中需要什么命令来检查收到的消息?

     

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

    SampleThermstate 使用8作为默认端点、因此您可以在目标端点中对8进行硬编码。 您应该能够在 zclSampleThermostat_ProcessIncomingMsg 中接收消息

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

    工作正常:) 谢谢  

    现在、终端器件会向协调器发送字符数据(hello)、并在 zclSampleThermost_ProcessInReportCmd 中命中断点。 但是、我应该怎么做才能在协调器中看到接收到的数据? 如何从数据包中提取传输的数据并在示例恒温器观察窗口中查看这些数据??

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

    您可以参阅 zclSampleThermost_ProcessInReportCmd 以了解如何处理接收到的数据并相应地添加您自己的群集/属性相关代码。