TI中文支持网
TI专业的中文技术问题搜集分享网站

关于BLE蓝牙连接Connection Interval值的问题

两个BLE设备按照一定的间隙时间进行连接,也就是Connection Interval。BLE从设备可以配置Connection Interval的最大值和最小值,但是当建立一个连接的时候,主设备会指定这个参数,成功连接之后,从设备可以请求修改参数,但是主设备也不一定会同意。所以对从设备来说,Connection Interval值是不可控的。

1,请问我以上理解是否正确?

2,我通过调用GAP_SetParamValue()设置 TGAP_CONN_EST_INT_MIN, TGAP_CONN_EST_INT_MAX来设置BLE从设备的Connection Interval最大最小值,是否正确?

3,建立了一个连接之后,我怎样得知当前实际的Connection Interval?

Viki Shi:

1、严格说来,从设备也可以修改Connection Interval【虽然主设备可以不同意】。对于从设备,先把#define DEFAULT_ENABLE_UPDATE_REQUEST FALSE 改为true,然后设置#define DEFAULT_UPDATE_MIN_CONN_INTERVAL     和     #define DEFAULT_UPDATE_MAX_CONN_INTERVAL  这两个参数,如果你使用BTool的话,可以在里面设置Connection settings。2、对,这两个参数是针对simpleBLECentral的,即主设备。3、查看ADV_CONNECT_REQ packet 。

mahone alex:

回复 Yan:

Hi ,Yan:

    you found me,scofield and me are creating some  weapons base on BLE, in preparation for the next jailbreak.

    多谢你的解答,前面两个问题我明白了。

    第三个问题我还有些疑问,抓包是一个方法,可以从交互的报文中看到,可是有没有其他方法可以看到从设备 实际的 connection interval值?

    我之前在和iphone连接的从设备上设置了一些连接参数(现在我知道了这些参数不符合苹果的要求),然后把GAPROLE_PARAM_UPDATE_ENABLE参数设置为Enable之后,iphone很快就提示连接断开,我猜想这次修改参数的请求没有成功,而结果apple按照原来的参数运行,从设备按修改之后的参数运行,所以导致断开。

    我理解这种保持链路的连接,是Link Layer的工作,我该在哪里加代码从程序中获取呢?比如有没有地方可以加入代码,在每一次connection时执行?

    其实这个问题已经不影响工作,我只要把参数设置在ios允许的范围内就可以避开了,不过我还想弄清楚这个问题,烦请解惑。

附:我使用的BLE软件版本是1.2.1

ggg chen:

回复 Yan:

YAN  你好!   想请问你一个苹果修改连接参数的问题: 我现在按照苹果的规定每次连接之后就去设定连接参数, 而且苹果也能接受,  但是如果我主动让我的设备不停地和IOS设备断开然后再连接的话,某个时候就会出现IOS设备永远拒绝修改连接参数的状况,现象就是每次我的设备和IOS设备连接上之后因为我的设备连上后要去修改IOS的连接参数,但是IOS设备此时又拒绝修改并且会强制断开与我的设备的连接。  这样就会出现我的设备和IOS设备一直连上又断开连上又断开,只有把IOS设备的蓝牙给关掉再重新打开才能恢复正常。

         我的问题是:IOS设备在什么情况下会拒绝修改连接参数?

                                 我对IOS开发不了解,不知道我能从哪里得到IOS关于BLE的资料?

谢谢

yang zhi1:

回复 ggg chen:

请问下从设备怎么主动断开连接呢?谢谢

Derek Wu:

回复 yang zhi1:

我也想问这问题,从设备如何主动断开连接呢?

Yan:

回复 Derek Wu:

Derek,

你可以直接调用 GAPRole_TerminateConnection() 来主动断开连接。

Derek Wu:

回复 Yan:

Yan

Derek,

你可以直接调用 GAPRole_TerminateConnection() 来主动断开连接。

Yan:

回复 Derek Wu:

Derek,

那个函数调用后,连接顺利断开后会收到 GAP_LINK_TERMINATED_EVENT 事件。

在这个事件之后,你再重新启动广播,即可。

赞(0)
未经允许不得转载:TI中文支持网 » 关于BLE蓝牙连接Connection Interval值的问题
分享到: 更多 (0)