Other Parts Discussed in Thread: CC2650, CC2538
ZED: CC2650 is used as ZED. ZED transmits data frame (32 bytes payload data) continuously after some time interval.
ZC: 1) Sample thermostat application used for CC2538 coordinator.
2) I have modified function to receive 20 data frames from ZED.
static void zclSampleThermostat_ProcessInReportCmd( zclIncomingMsg_t *pInMsg )
{
zclIncomingMsg_t InMess;
InMess = * pInMsg ;
zclReportCmd_t *pInTempSensorReport;
int8 *ptr_data = NULL;
int8 data_byte_counter =0;
int8 ZED_data[Size_of_data_frame]={0};
pInTempSensorReport = (zclReportCmd_t *)pInMsg->attrCmd;
if ( pInTempSensorReport->attrList[0].attrID != ATTRID_MS_TEMPERATURE_MEASURED_VALUE )
{
return;
}
ptr_data =pInTempSensorReport->attrList[0].attrData;
ptr_data += 14;
for (data_byte_counter=0;data_byte_counter<32;data_byte_counter++)
{
ZED_data[data_byte_counter]= *(ptr_data++);
temp1_array[array_index][data_byte_counter] = ZED_data[data_byte_counter];
}
array_index++;
if(array_index >=20)
{
array_index = 0;
}
}
3) Out of 20 only approximately 2-10 frames have correct 32 bytes data and other frames have some junk data of 32 bytes.
Please let me know the changes in code so I can get always correct 32 bytes of data payload.