发现我程序对主机下达连接命令后,如果从机没法响应(突然断电或者其他),主机就会卡在那里,我个人猜想是主机不断尝试连接,请问有什么方法可以解决吗?
我猜想是不是有某个参数的设置令主机不断等待?我是不是可以设置为连接多少次或者等待多少秒不成功就判定连接失败呢?
还是说这种情况不可能发生,是我的程序本身有问题呢?
谢谢诸位
Yan:
Weijie Gan,
主机尝试连接是会有一个timeout的情况存在,这是无线通信的一个必要机制。
如果主机发出连接请求,如果从机一直不回复,就会产生你看到的现象。你可以设置一个timer,自己设定一个值,比如2秒内从机不回复,你就可以cancel这次连接请求。比如HCI_LE_CreateConnCancelCmd()
Weijie Gan:
回复 Yan:
Y,
如果我绕过GAPCentralRole_EstablishLink函数
直接调用
extern hciStatus_t HCI_LE_CreateConnCmd( uint16 scanInterval, uint16 scanWindow, uint8 initFilterPolicy, uint8 addrTypePeer, uint8 *peerAddr, uint8 ownAddrType, uint16 connIntervalMin, uint16 connIntervalMax, uint16 connLatency, uint16 connTimeout, uint16 minLen, uint16 maxLen );
里面可以设置的这么多参数有没有能满足我的要求的呢?比如: connTimeout ??
另,再请教一下,调用GAPCentralRole_EstablishLink最终是不是也是会调用了HCI_LE_CreateConnCmd??
谢谢~
TI中文支持网


