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.

[参考译文] CC2652P:Zigbee Linux网关演示中是否已使用端点1?

Guru**** 2466670 points


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

https://e2e.ti.com/support/wireless-connectivity/zigbee-thread-group/zigbee-and-thread/f/zigbee-thread-forum/1087573/cc2652p-is-endpoint-1-already-used-in-zigbee-linux-gateway-demo

部件号:CC2652P

客户的协议要求使用端点1作为OTA端点,但在尝试注册端点时发生错误,即端点1已注册。

我查看了Linux网关代码,但找不到端点1的定义,是否已使用? 如果是,修改端点并允许OTA使用端点1的步骤是什么?

巴西,

双阳

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

    您好,Shuyang,

    端点0x01尚未使用,但是OTA保留为0x0E,如zcl_ota.h和serverep.h文件所示。  其他保留端点为0x00 (ZDO),0x04 (组合接口)和0xF2 (绿色电源),如gateway_config.tlg文件中所示。  客户应相应地修改这些文件并参考文档以启用其OTA功能。

    此致,
    Ryan

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

    您好,Ryan:

    我与客户进行了检查,发现端点1已由客户注册用于发送用户数据,他们还需要使用同一个端点进行OTA,因为这是他们网络中的其他设备使用的端点。

    客户遵循OTA示例注册了OTA端点(端点已修改为1),并遇到"端点已注册"错误。 我假设不应再次注册端点,但我不确定如何修改示例以使用相同的端点进行数据交换和OTA。 请您提供一些帮助吗? 谢谢。

    巴西,

    双阳

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

    您可以将OTA集群支持添加到现有端点1。

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

    我同意YK的观点,即可以将OTA集群添加到您的简单描述符中,并修改OTA文件以引用此端点。  另一个选项是,如果他们需要修改现有端点,则使用afDelete,然后使用afRegister。  

    此致,
    Ryan

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

    您好,Ryan:

    请详细说明如何将OTA集群添加到现有端点? 谢谢。

    巴西,

    双阳

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

    您可以在最新的simplelink_cc13xx_cc26xx_sdk_6_10_00_29中参考zed_sw_OTA示例(搜索ota_client_integrated)。

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

    嗨,YK:

    您是否有使用Linux网关演示的步骤? 我在网关代码中找不到类似的文件,谢谢。

    巴西,

    双阳

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

    Linux网关将充当OTA服务器,您的设备是OTA客户端。 您是否打算将OTA群集客户端集成到设备上的同一应用程序端点,或将OTA群集服务器端集成到Linux Gateway上的同一应用程序端点? 我没有适用于Linux Gateway服务器端的步骤。

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

    您好,Shuyang,

    YK和我已经指出了当前可用于在Zigbee Linux网关上使用OTA的所有资源。

    此致,
    Ryan

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

    嗨,YK:

    我需要在服务器端集成OTA,感谢您的帮助。

    巴西,

    双阳

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

    您好,Ryan:

    我仍然不清楚如何在Linux网关上将OTA集群集成到服务器端,能否指出我应该查看哪个文件? 谢谢。

    巴西,

    双阳

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

    Source\Projects\ZStack\Linux\otaserver, sources\projects\ZStack\OTA\Source以及用户/开发人员指南。

    此致,
    Ryan

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

    您好,Ryan和YK:

    我还有一个关于OTA的问题:服务器和客户端在OTA期间是否必须使用相同的端点号码? 我提出这个问题是因为我刚发现 zd_sw_ota_client使用 SAMPLESW_ENendpoint=8, 而zc_ota_server使用 zcl_ota_endpoint=20,它们似乎工作正常。

    如果服务器和客户端不必使用相同的端点,这是否意味着Zigbee Linux网关可以执行OTA至支持OTA的客户端,而无论其使用哪个端点?

    是否存在服务器和客户端建立OTA通信时必须遵守的任何其他限制?

    巴西,

    双阳

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

    服务器和客户端不必使用相同的端点。 没有进一步的限制。

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

    您好,Ryan:

    出于兼容性原因,客户仍需要对网关服务器和OTA服务器使用相同的端点(端点1)。 尝试将OTA集群合并到网关服务器时遇到问题。 请您帮忙吗?

    我在Linux网关代码中执行了以下操作:

    1.在gateway_config.tlg中为OTA添加端点1

    //************ OTA Endpoint definitions *****************//
    // Device IDs
    #define DeviceID_ZCL_SE     0x0507
    
    // Cluster IDs
    #define OTAClusterId 0x0019
    
    // endpointdefs define all fields for a simple descriptor (with the exception of the endpoint id)
    //  uint16 profileid;
    //  uint16 deviceid;
    //  uint8  devicever;
    //  input clusterlist;
    //  output clusterlist;
    endpointdef OTAEpDef { ha_profile, DeviceID_ZCL_SE , 0, OTAInputClusters, OTAOutputClusters }
    
    // clusterlists include a list of clusters
    // for some common ZigBee clusters there is an internal keyword defined, that can optionally be used instead of a number or an explicit #define. These keywords are: basic, identify, groups, scenes, onoff.
    // - supporting as server (accepting client to server commands):
    clusterlist OTAInputClusters { basic, identify, OTAClusterId }
    // - supporting as clients (accepting server to client commands):
    clusterlist OTAOutputClusters { basic }
    
    // attribute definition include cluster id, attribute id, data type, and access control
    //  uint16  attrid;         // in hex (0x050E) or decimal (0, 99, etc..)
    //  uint8   datatype;       // Enther a keyword or any supported ZigBee type value. Supported keywords are: uint8, uint16, uint32, boolean, octetstr, charstr, enum8
    //  uint8   accesscontrol;  // one of the keywords: rdonly, rdwr
    // special case: if attribute datatype is charstring or octetstring, a length byte follows the type
    //               { 99, charstring, 16, rdwr } // a character string up to 16 bytes
    attr Basic_HwVersionAttr { basic, 0x0003, uint8, rdonly }
    
    // attrlists are a collection of attributes
    attrlist OTAAttrList { Basic_ZCLVersionAttr, Basic_HwVersionAttr, Basic_PowerSourceAttr, Basic_ClusterRevision, Identify_IdentifyTimeAttr, Identify_ClusterRevision }
    
    
    //************ Endpoint definitions *****************//
    
    // Application endpoints IDs may be in the range 1-254, except:
    // endpoint IDs 0 is reserved by the system (ZDO)
    // endpoint ID 14 is reserved as well (OtaMgr)
    // endpoint ID 244 is reserved for green power
    // the same endpointdef may be used by more than one endpoint
    // endpoint { ID, EndpointDef, AttrDef }
    endpoint { 0x04, CombinedInterfaceEpDef, CombinedInterfaceAttrList }
    endpoint { GreenPowerEndpoint, GPProxyBasicEpDef, GPProxyBasicAttrList }
    endpoint { 0x01, OTAEpDef, OTAAttrList }

    2.在source/projects/ZStack/linux/otaserver/zcl_otaserver_lnx.c -> appInitPhase3中注释掉OTA端点注册的代码:

        //Register OTA Endpoint
        //if (FALSE == zotaRegEndpoint(&zotaDongleSimpleDesc))
        //{
        //  uiPrintfEx(trUNMASKABLE, "\nError - Could not register OTA endpoint with zstackserver."
        //    "Exiting...\n\n");
        //  return 5;
        //}

    3.在  source/projects/ZStack/linux/otaserver/zcl_ota.h中将ZCL_OTA_EndPoint定义更改为1:

    #define ZCL_OTA_ENDPOINT    1

    4.运行setup.sh以重建网关演示。

      

    完成这些步骤后,我尝试在演示应用程序中输入"O"以启动OTA,但客户端没有响应。 我不确定是否可以在网关服务器中注册端点1,但在OTA服务器中运行其他OTA API? 在所有这些线程之后都是不同的线程。

    此致,

    双阳

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

    您好,Ryan:

    我进行了一些调试,发现当我将端点注册移到gatewaysrvr.c时,zcl_otaserver_lnx.c中的zclota_ServerHdlIncoming回调未被调用,因此Linux OTA服务器没有响应QueryNextImageReq。

    我猜是因为 如果同一服务器中没有af_register_req,zcl_registerPlugin调用就不会生效。 您可以确认吗?

    如果是这种情况,这是否意味着不可能在网关服务器和OTA服务器之间共享同一端点?

    巴西,

    双阳

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

    好的捕获物:Shuyang,如果您希望合并端点,则还需要共享同一台服务器的功能。  因此,OTA服务器必须合并到网关服务器才能正常运行。  虽然可能,但现有解决方案目前不支持它。

    此致,
    Ryan

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

    您好,Ryan:

    我将内容从otasrvr.proto迁移到gateway.proto,并对网关代码进行了一些修改,它现在与运行客户端示例的Zed一起工作。

    感谢您的指导,如果还有其他问题,我会告诉您。

    此致,

    双阳