Hello.
I am 2 endpoints.
Code.
static void app_reportAttrTimerStart() {
if (zcl_reportingEntryActiveNumGet()) {
for(u8 i = 0; i < ZCL_REPORTING_TABLE_NUM; i++) {
reportCfgInfo_t *pEntry = &reportingTab.reportCfgInfo[i];
if(pEntry->used && (pEntry->maxInterval != 0xffff) && (pEntry->minInterval || pEntry->maxInterval)) {
printf("(%d) endPoint: %d, clusterID: 0x%x, attrID: 0x%x, minInterval: %d, maxInterval: %d\r\n",
i, pEntry->endPoint, pEntry->clusterID, pEntry->attrID, pEntry->minInterval, pEntry->maxInterval);
}
}
}
}
Output
(0) endPoint: 1, clusterID: 0x1, attrID: 0x20, minInterval: 300, maxInterval: 3600
(1) endPoint: 1, clusterID: 0x1, attrID: 0x21, minInterval: 300, maxInterval: 3600
(2) endPoint: 1, clusterID: 0x702, attrID: 0x0, minInterval: 60, maxInterval: 0
(3) endPoint: 2, clusterID: 0x702, attrID: 0x0, minInterval: 60, maxInterval: 0
New Code.
static void app_reportAttrTimerStart() {
if (zcl_reportingEntryActiveNumGet()) {
for(u8 i = 0; i < ZCL_REPORTING_TABLE_NUM; i++) {
reportCfgInfo_t *pEntry = &reportingTab.reportCfgInfo[i];
if(pEntry->used && (pEntry->maxInterval != 0xffff) && (pEntry->minInterval || pEntry->maxInterval)) {
if(zb_bindingTblSearched(pEntry->clusterID, pEntry->endPoint)) {
printf("(%d) endPoint: %d, clusterID: 0x%x, attrID: 0x%x, minInterval: %d, maxInterval: %d\r\n",
i, pEntry->endPoint, pEntry->clusterID, pEntry->attrID, pEntry->minInterval, pEntry->maxInterval);
}
}
}
}
}
Output.
(0) endPoint: 1, clusterID: 0x1, attrID: 0x20, minInterval: 300, maxInterval: 3600
(1) endPoint: 1, clusterID: 0x1, attrID: 0x21, minInterval: 300, maxInterval: 3600
(2) endPoint: 1, clusterID: 0x702, attrID: 0x0, minInterval: 60, maxInterval: 0
Why doesn't the function zb_bindingTblSearched() skip endpoint 2?
Hi,
which SDK version you are using,and did you really bound the EP 2?
SDK latest on your site.
default in example
#define APS_BINDING_TABLE_NUM 2
my cfg
#define APS_BINDING_TABLE_NUM 4
It s ok!