终端发送如下
HalUARTWrite(0,zclSampleSw_SensorData,19 );//发送器先把发送的数据打印到串口
//上报
pReportCmd = osal_mem_alloc( sizeof(zclReportCmd_t) + sizeof(zclReport_t) );
if ( pReportCmd != NULL )
{
pReportCmd->numAttr = 1;
pReportCmd->attrList[0].attrID = ATTRID_BASIC_DEVICE_ENABLED;
pReportCmd->attrList[0].dataType = ZCL_DATATYPE_CHAR_STR;
pReportCmd->attrList[0].attrData = (void *)(&zclSampleSw_SensorData);
zcl_SendReportCmd( SAMPLELIGHT_ENDPOINT, &zclSampleLight_DstAddr,
ZCL_CLUSTER_ID_GEN_ON_OFF,
pReportCmd, ZCL_FRAME_SERVER_CLIENT_DIR, TRUE, zclSampleLightSeqNum++ );
}
协调器端接收如下:
static uint8 zclSampleSw_ProcessInReportCmd( zclIncomingMsg_t *pInMsg )
{
zclReportCmd_t *pReportCmd;
pReportCmd=(zclReportCmd_t *)pInMsg->attrCmd;
HalLedSet( HAL_LED_1, HAL_LED_MODE_BLINK );
if ( pReportCmd->attrList[0].attrID == ATTRID_BASIC_DEVICE_ENABLED )
{
//osal_memcpy(&LongData,pReportCmd->attrList[0].attrData,19);
HalUARTWrite(0,pReportCmd->attrList[0].attrData,19 );
}
}
发现发送端通过串口打印的数据和协调器收到的数据是不一样的,附件是抓的包,请帮忙分析一下
终端发送的19字节数据示例 01 03 0E 01 A4 00 24 00 0D 00 36 5C 3A 63 93 00 43 AA 93
其中前面三个字节是固定的01 03 0E,后面的16自己是传感器采集的数值,不是固定的,附件是抓包数据
