您好,我有个问题,我这里需要上传720个Byte的数据,但是通过手机蓝牙读取这些数据的时候只能够读到640个,不知道是不是蓝牙上传的buffer有限,数据丢了呢?
//上传数据
datalen = (g_PM25PeriodCnt*2); //datalen = 720
i = 0;
while(datalen>=SIMPLEPROFILE_CHAR4_LEN) // SIMPLEPROFILE_CHAR4_LEN = 20
{
simpleProfile_NofifyChar4Data(PM25PeriodBuffer+i*SIMPLEPROFILE_CHAR4_LEN,SIMPLEPROFILE_CHAR4_LEN); // 上传数据
i++;
datalen = datalen – SIMPLEPROFILE_CHAR4_LEN;
}
if(datalen>0)
{
simpleProfile_NofifyChar4Data(PM25PeriodBuffer+i*SIMPLEPROFILE_CHAR4_LEN,datalen);
}
//上传数据的函数
bStatus_t simpleProfile_NofifyChar4Data(uint8 *data,uint32 len)
{
bStatus_t status = SUCCESS;
attHandleValueNoti_t nData;
nData.len = len;
nData.handle = simpleProfileAttrTbl[11].handle;
osal_memcpy( &nData.value, data, len );
// Send the Notification
status=GATT_Notification( 0, &nData, FALSE );
if(SUCCESS!=status)
{
status = status;
}
return status;
}
Barbara Wu:
建议首先可以抓包看一下是notification设备这一侧没有发出来还是手机那一侧没有收到