Thread 中讨论的其他器件:CC2650、 BLE-STACK、 LAUNCHXL-CC2650、 CC2541、
我的应用程序连接到 iOS 时遇到了一些严重问题。 最初似乎可以找到器件并正确接合、但此后会定期断开连接。
在示波器上查看功耗时、我可以看到连接断开的确切时刻以及重新建立连接的时间。 它们之间的时序可能是完全随机的。 有时、连接将持续10秒、有时它将持续5分钟。 我应该注意到、我除了使用 Android 的稳定连接之外、没有遇到任何其他问题。
对于应用、已按如下方式设置连接参数:
//如果启用了自动参数更新请求,则最小连接间隔(单位为1.25ms,80=100ms) #define DEFAULT_MILLET_CONN_INTERVAL 264//330ms //最大连接间隔(单位为1.25ms,800=1000ms) 如果启用了自动参数更新请求 、则使用#define DEFAULT_REGIND_MAX_CONN_INTERVAL 288//360ms //如果启用了自动参数更新请求、则使用从器件延迟 #define DEFAULT_REGIND_SLAVE 4 //监控超时值(10ms、1000=10s 单位) 如果启用了自动参数更新请求 #define DEFAULT_MILLED_CONN_TIMEOUT 600 //在建立连接时是否启用自动参数更新请求 #define DEFAULT_ENABLE_UPDATE_REQUEST TRUE //连接暂停外设时间值(以秒为单位) #define DEFAULT_CONN_PAUSE_PERPLED_PERAPTER 10 //器件可发现时的广播间隔(单位625us、160=100ms) #define DEFAULT_INTERVAL 广播间隔244 // 150.5ms 广播间隔 #define ADV_TYPE_General_ADV_INT2056 // 1285ms 广播间隔// 1022.5/1285 max?
在初始化函数中、执行以下操作:
uint16_t desedMinInterval = default_desed_min_CONN_interval; uint16_t desedMaxInterval = default_desed_MAX_CONN_interval; uint16_t DesedSlaveLatency = default_desired Slave_slave_latency; uint16_t UpdateTimeTimeout = default_desired _CONN_timeout;uint8 param_ench_ench_ench_enq_dimeter (default_ench_ench_ench_ench_ench_ench_ench_ench_rase_rum_encheap_enchrom_ench_ench_ench_enchine_enchinese_enchine_enchine_enpetrase_rase_rase_rum_ sizeof (uint16_t)、esedMaxInterval); GAPRole_SetSlaveter (default_desed_slave_latency、sizeof (uint16_t)、desedSlaveLatency); GAPRole_SetParameter (default_desed_CONN_timeout、sizeof (uint16_t)、desedConnTimeout); GAPRole_SetParameter (GAPROLE_PARAM_UPDATE_ENABLE、sizeof (uint8_t)、 enableUpdateRequest (enableUpdateRequest)(enableUpdateRequest));
请注意:出于某种原因,此示例最初称为 GAPRole_SendUpdateParam(...) 函数、这似乎毫无意义、因为它需要连接才能正常工作、而初始化的这一点从未如此。 项目0示例中需要修复的问题
因此、您可以看到所有参数都在 Apple 的规格范围内:
MaxConnInt = 360ms
MinConnInt = 330ms
从器件延迟= 4
ConnSupervisionTimeout = 6.
- MaxConnInt *(sl+1)< 2秒: 是
- Min ConnInt < MaxConnInt-20ms: 是
- 从机延迟<= 4: 是
- ConnSupervisionTimeout≤6秒:是
- MaxConnInt *(SL + 1)* 3 < connSupervisionTimeout: 是
为什么这些问题仍然存在?
