CC2540主机和CC2540从机建立连接后,4s内通过0xfff1主机发给从机的数据会丢失?
时间:10-02
整理:3721RD
点击:
目前这个问题我是让主机4s后再发数据给从机,绕过了问题,代码如下。
我想知道可以让前几秒的数据不丢失吗?修改哪里可以达到这个目的
attWriteReq_t req;
if(g_poll_cnt>(5*5))//连上5s后再往下转发数据 4s属于临界点(太早向下发的数据会丢掉)
{
req.handle = simpleBLECharHdl;
req.len = 1;
req.value[0] = g_hid_ecg_cmd_buf[g_prd_hid_ecg_cmd_buf++%sizeof(g_hid_ecg_cmd_buf)];
req.sig = 0;
req.cmd = 0;
GATT_WriteCharValue( simpleBLEConnHandle, &req, simpleBLETaskId );//转发命令给从机
}
好像大多手机很短时间向下发数据不会丢失,部分手机则和我的cc2540主机类似,是不是连接之初刷新参数等过程时间是不可控的,得等它所有过程完成后才可以由主机到从机稳定写0xfff1的值
建立连接时间跟实际应用有关,比如说,你广播间隔设置多少?调高一下广播频率试试
应该是我的主机程序哪个地方写得有问题,刚才用CDC的USB Dongle试了一下,连上后是可以马上发数成功的
是simpleBLECharHdl的值大约要4s才能返回正确的句柄0x25,如果强制它为0x25就可以快速向下发数而不丢失了