找回密码
 立即注册

微信扫码登录

查看: 41|回复: 4

Can I modify zdp client functions ?

[复制链接]

33

主题

27

回帖

483

积分

璀璨钻石

积分
483
发表于 7 天前 | 显示全部楼层 |阅读模式 来自 韩国
information
说明:   建议参照本版块置顶帖内容输入必要信息
芯片型号: TLSR8258
SDK及版本: Concurrent SDK v2.4.1.0


Can I modify zdp client functions like zdo_bindOrUnbindIndicate() ?


const zdp_funcList_t g_zdpClientFunc[] = {
        {NWK_ADDR_REQ_CLID,                                  FALSE,        zdo_nwkAddrIndicate},
        {IEEE_ADDR_REQ_CLID,                                  FALSE,        zdo_ieeeAddrIndicate},
        {NODE_DESC_REQ_CLID,                                 FALSE,        zdo_descriptorsIndicate},
        {POWER_DESC_REQ_CLID,                                 FALSE,        zdo_descriptorsIndicate},
        {SIMPLE_DESC_REQ_CLID,                                FALSE,        zdo_descriptorsIndicate},
        {ACTIVE_EP_REQ_CLID,                                 FALSE,        zdo_activeEpIndicate},
        {MATCH_DESC_REQ_CLID,                                 FALSE,        zdo_matchDescriptorIndicate},
//        {COMPLEX_DESC_REQ_CLID,                           FALSE,        zdo_complexDescIndicate},                //DEPRECATED
//        {USER_DESC_REQ_CLID,                                FALSE,        zdo_userDescIndicate},                        //DEPRECATED
#ifdef ZB_ROUTER_ROLE
        {DEVICE_ANNCE_CLID,                                        FALSE,        zdo_deviceAnnounceIndicate},
        {PARENT_ANNCE_CLID,                                        FALSE,        zdo_parentAnnounceIndicate},
#endif
        {SYSTEM_SERVER_DISCOVERY_REQ_CLID,        FALSE,        zdo_SysServerDiscoveryIndicate},
        {END_DEVICE_BIND_REQ_CLID,                        FALSE,        zdo_endDeviceBindIndicate},
        {BIND_REQ_CLID,                                                TRUE,        zdo_bindOrUnbindIndicate},
        {UNBIND_REQ_CLID,                   TRUE,        zdo_bindOrUnbindIndicate},
        {MGMT_LQI_REQ_CLID,                                        FALSE,        zdo_mgmtLqiIndicate},
        {MGMT_BIND_REQ_CLID,                       FALSE,        zdo_mgmtBindIndicate},
        {MGMT_LEAVE_REQ_CLID,               TRUE,        zdo_mgmtLeaveIndicate},
#ifdef ZB_ROUTER_ROLE
        {MGMT_PERMIT_JOINING_REQ_CLID,                FALSE,        zdo_mgmtPermitJoinIndicate},
#endif
        {MGMT_NWK_UPDATE_REQ_CLID,                    FALSE,        zdo_mgmtNwkUpdateIndicate}
};


27

主题

330

回帖

1065

积分

版主

积分
1065
发表于 6 天前 | 显示全部楼层 来自 上海
You can use your new function instead of original function, like as zdo_userDescIndicate().
But at the same time, you need to pay special attention to the use and release of zbbuf.

33

主题

27

回帖

483

积分

璀璨钻石

积分
483
 楼主| 发表于 5 天前 | 显示全部楼层 来自 韩国
TL_YB 发表于 2026-2-4 16:53
You can use your new function instead of original function, like as zdo_userDescIndicate().
But at t ...

Can I get original code ?

33

主题

27

回帖

483

积分

璀璨钻石

积分
483
 楼主| 发表于 5 天前 | 显示全部楼层 来自 韩国
TL_YB 发表于 2026-2-4 16:53
You can use your new function instead of original function, like as zdo_userDescIndicate().
But at t ...

Can I get original code ?

27

主题

330

回帖

1065

积分

版主

积分
1065
发表于 4 天前 | 显示全部楼层 来自 上海
A simple example code is as follows.
void zdo_userDescIndicate(void *buf)
{
    zb_buf_t *zbuff = buf;
    aps_data_ind_t *ad = buf;
    u8 *payload = ad->asdu;
    u8 seqNum = *payload++;

    u16 nwkAddrReq;
    COPY_BUFFERTOU16(nwkAddrReq, payload);
    payload += 2;

    zdo_zdp_req_t zzr;
    TL_SETSTRUCTCONTENT(zzr, 0);

    u8 offset = OFFSETOF(zdo_user_descriptor_resp_t, user_desc);
    TL_BUF_INITIAL_ALLOC(zbuff, offset, zzr.zdu, u8 *);

    u8 *ptr = zzr.zdu;
    *ptr++ = seqNum;
    *ptr++ = ZDO_NOT_SUPPORTED;
    COPY_U16TOBUFFER(ptr, nwkAddrReq);
    ptr += 2;
    *ptr++ = 0;//length

    zzr.cluster_id = USER_DESC_RSP_CLID;
    zzr.zduLen = ptr - zzr.zdu;
    zzr.buff_addr = buf;
    zzr.dst_addr_mode = SHORT_ADDR_MODE;
    zzr.dst_nwk_addr = ad->src_short_addr;
    zzr.zdoRspReceivedIndCb = NULL;

    zdo_send_req(&zzr);
    zb_buf_free((zb_buf_t *)zzr.buff_addr);
}

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Telink forum ( 沪ICP备17008231号-1 |沪公网安备31011502403548号 )

GMT+8, 2026-2-10 19:39 , Processed in 0.093954 second(s), 24 queries .

Powered by Discuz! 隐私政策

泰凌微电子版权所有 © 。保留所有权利。 2024

快速回复 返回顶部 返回列表