协议栈: Z-stack 3.0.2
参考程序为:GenericApp
芯片型号:CC2530
问题:我使用按键触发了一个通过zcl_SendReportCmd报告自定义数据的函数,抓包显示发出去了接收方也ACK了,可是抓到的无线数据包多了9个字节的数据,并且接收方好像没有进入case ZCL_CMD_REPORT里面,求解,感谢。关键以及抓包文件附上。7月30日18_26_33_test1.rar
//发送方发送函数
void GenericApp_SendTheMessage(void)
{
zclReportCmd_t *pReportCmd;
uint8 send_data[5] = {0x04,0x11,0x22,0x33,0x99};
afAddrType_t devDstAddr;
devDstAddr.addrMode=(afAddrMode_t)Addr16Bit;
devDstAddr.endPoint=GENERICAPP_ENDPOINT;
devDstAddr.addr.shortAddr=0x0000;
pReportCmd = osal_mem_alloc( sizeof(zclReportCmd_t) + sizeof(zclReport_t) );
if ( pReportCmd != NULL )
{
pReportCmd->numAttr = 1;
pReportCmd->attrList[0].attrID = ATTRID_ON_OFF;
pReportCmd->attrList[0].dataType = ZCL_DATATYPE_UINT64;
pReportCmd->attrList[0].attrData = (uint8*)send_data;
zcl_SendReportCmd( GENERICAPP_ENDPOINT, &devDstAddr,
ZCL_CLUSTER_ID_GEN_ON_OFF,
pReportCmd, ZCL_FRAME_SERVER_CLIENT_DIR, TRUE, bdb_getZCLFrameCounter() );
}
osal_mem_free(pReportCmd);
}
//接收方
void zclGenericApp_ProcessInReportCmd( zclIncomingMsg_t *pInMsg )
{
zclReportCmd_t *pReportCmd;
pReportCmd=(zclReportCmd_t *)pInMsg->attrCmd;
if ( pReportCmd->attrList[0].attrID == ATTRID_ON_OFF )
{
HalUARTWrite(0,pReportCmd->attrList[0].attrData,5 );
HalUARTWrite(0,"success",sizeof("success") );
}
else
{
HalUARTWrite(0,"fail",sizeof("fail") );
}
}



