TI中文支持网
TI专业的中文技术问题搜集分享网站

如何在Z-Stack-3.0.2增加自定义Cluster?

在zcl_xxx_data.c文件增加了如下Cluster信息,但是发不去;

#define MAX_INCLUSTERS4
const cId_t zcl_InClusterList[MAX_INCLUSTERS] =
{ZCL_CLUSTER_ID_GEN_BASIC,ZCL_CLUSTER_ID_GEN_IDENTIFY,ZCL_CLUSTER_ID_HVAC_FAN_CONTROL,TEST_CLUSTER_ID
//  ZCL_CLUSTER_ID_MS_TEMPERATURE_MEASUREMENT
};

#define MAX_OUTCLUSTERS2
const cId_t zcl_OutClusterList[MAX_OUTCLUSTERS] =
{ZCL_CLUSTER_ID_GEN_IDENTIFY,TEST_CLUSTER_ID
 // ZCL_CLUSTER_ID_MS_TEMPERATURE_MEASUREMENT
};

//atrribute 初始化 {TEST_CLUSTER_ID,{ // Attribute recordTEST_ATRR_ID,ZCL_DATATYPE_UINT8,ACCESS_REPORTABLE | ACCESS_CONTROL_WRITE,(void *)&testAttr}},{TEST_CLUSTER_ID,{ // Attribute recordATTRID_CLUSTER_REVISION,ZCL_DATATYPE_UINT16,ACCESS_CONTROL_READ | ACCESS_GLOBAL,(void *)&zcl_clusterRevision_all}},

增加了上述代码,然后原本的Cluster是可以Report,自定义的却不行。

Alvin Chen:

不要描述现象,抓包又发出吗,是否绑定成功或者地址是否正确?

one Man:

回复 Alvin Chen:

抓包发现没有发出来,广播模式发送。

one Man:

回复 Alvin Chen:

使用zcl_SendReportCmd发送,没用邦定。

Alvin Chen:

回复 one Man:

你要确认一下endpoint

user5798117:

回复 Alvin Chen:

我当时也被折腾了好久。
如果是用了样例程序,大约是这个原因,样例程序中有两个地方都对EndPoint进行了注册:
// Register the Simple Descriptor for this applicationbdb_RegisterSimpleDescriptor( &zclSampleSw_SimpleDesc );


// Register for a test endpointafRegister( &sampleSw_TestEp );

将第一个注释掉即可。 原因是第一个用的是zclTaskId

赞(0)
未经允许不得转载:TI中文支持网 » 如何在Z-Stack-3.0.2增加自定义Cluster?
分享到: 更多 (0)