你好,我想请问下cc2530芯片一直快速不停的发属性上报,开始很正常,一会芯片会报IDATA堆栈不足,而且网络链路会自动断(有时还会复位),但是devState 还是等于DEV_ROUTER,经排查,是属性上报函数zcl_SendReportCmd()里到达APSDE_DataReq( &req )这个函数就死在这里。使用的stack是1.2.2版本
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芯片一直快速不停的发属性上报,开始很正常,一会芯片会报IDATA堆栈不足,而且网络链路会自动断(有时还会复位),但是devState 还是等于DEV_ROUTER,经排查,是属性上报函数zcl_SendReportCmd()里到达APSDE_DataReq( &req )这个函数就死在这里。使用的stack是1.2.2版本
void GeneralAttrReport(uint16 ClusterId,uint16 AttributeID,uint16 SourceEndpoint)
{
uint8 i = 0;
uint8 state;
zclReportCmd_t* reportCmd = osal_mem_alloc( sizeof( zclReportCmd_t ) + sizeof( zclReport_t ));
zclAttrRec_t attrRec;
if((ZDApp_GetState() == DEV_ROUTER) && (reportCmd != NULL))
{
state = zclFindAttrRec( SourceEndpoint, ClusterId, AttributeID, &attrRec );
if(state == TRUE)
{
for(i = 0; i < SwitchLight_NumAttributes[SourceEndpoint - 1]; i++)
{
if(attrRec.clusterID == ClusterId)
{
if(attrRec.attr.attrId == AttributeID)
{
reportCmd->numAttr = 1;
reportCmd->attrList[0].attrID = AttributeID;
reportCmd->attrList[0].dataType = attrRec.attr.dataType;
reportCmd->attrList[0].attrData = attrRec.attr.dataPtr;
zcl_SendReportCmd(SourceEndpoint, &DstAddr, ClusterId,
reportCmd, ZCL_FRAME_SERVER_CLIENT_DIR,0,TRUE, Num++);
break;
}
}
}
}
}
osal_mem_free( reportCmd );
}
你好,我把zcl_SendReportCmd()函数屏蔽了,就不会出现这些问题,一切看起来很正常。不过这样我就不确定这个zcl_SendReportCmd()为什么会引导出这些问题。这个函数是官方提供的接口函数