主题中讨论的其他器件:LAUNCHXL-CC26X2R1、 BLE-STACK
您好!
我有一个基于 multi_role 示例的应用、但进行了修改和扩展。 软件充当定制电路板上的外设。 我需要支持多达20个绑定器件。
为此我修改了最大键合定义:
#define GAP_BONDINGS_MAX 20
因此、关于文档 simplelink_cc2640r2_sdk_5_30_00_03/docs/blestack/ble_user_guide/html/ble-stack-3.x/gapbondmngr.html 和 simplelink_cc2640r2_sdk_5_30_00_03/docs/blestack/ble_user_guide/html/ble-stack-common/combdef 更改了 flash_memory-cc2640.html 中的参数 :
// For GAP: (BLE_NVID_GAP_BOND_END - BLE_NVID_GAP_BOND_START) >= GAP_BONDINGS_MAX*6 // For GATT: (BLE_NVID_GATT_CFG_END - BLE_NVID_GATT_CFG_START) >= GAP_BONDINGS_MAX. // No overlap can exist between any of the ranges. // All indexes are 1 Byte values and so should note exceed 0xFF or 255. // Bonding NV Items - Range 0x20 - 0x98 - This allows for 20 bondings #define BLE_NVID_GAP_BOND_START 0x20 //!< Start of the GAP Bond Manager's NV IDs #define BLE_NVID_GAP_BOND_END 0x98 //!< End of the GAP Bond Manager's NV IDs Range // GATT Configuration NV Items - Range 0xA0 - 0xB4 - This must match the number of Bonding entries #define BLE_NVID_GATT_CFG_START 0xA0 //!< Start of the GATT Configuration NV IDs #define BLE_NVID_GATT_CFG_END 0xB4 //!< End of the GATT Configuration NV IDs // Customer NV Items - Range 0xC0 - 0xD5 - This must match the number of Bonding entries #define BLE_NVID_CUST_START 0xC0 //!< Start of the Customer's NV IDs #define BLE_NVID_CUST_END 0xD5 //!< End of the Customer's NV IDs
作为中央设备,我使用几个智能手机(三星 S7, iPhone 7和8,三星 S10,小米等)与自定义应用程序.
测试设置: 最多可连接并绑定10部智能手机。 绑定连接后,断开和重新连接的这首10智能手机(与绑定索引0..9 )是工作没有问题。
然后连接并键合11。 智能手机和它正在工作:我可以发送和接收数据。 断开智能手机并重新连接:连接被外设禁止:
2023年06月22日17:28:55.384:GapMessageEvent:
LinkEstablishedEvent (0x05)
状态:0x00
DeviceAddressType:0x01
DeviceAddress:xx:xx:xx:xx:xx:xx (此处为 ramdom 地址)
连接处理程序:0x00
连接角色:0x04
连接间隔:0x28
连接延迟:0x00
ConnectionTimeOut:0x1F4
时钟精度:0x01
2023年06月22日17:28:55.507:GapMessageEvent:
LinkTerminatedEvent (0x06)
状态:0x00
连接处理程序:0x00
原因:0x16
智能手机12、13、14、15等也会发生同样的情况。 绑定 和首次连接工作正常。 重新连接失败。 同时我可以重新连接智能手机1至10。
现在我不知道导致这种行为的原因是什么。 我注意到的唯一一件事是:"正常工作"的智能手机重新连接地址类型2 (公共身份地址)。 "故障"智能手机以 地址类型1 (随机设备地址)重新连接、请参阅上面的日志输出。 但我不知道这些信息是否有帮助。
我做过的一次测试:
1.已删除智能手机的绑定7.
2.粘合另一个智能手机(它成为 bondandex 6 )。 粘接和第一次连接工作正常。 重新连接失败。
3.移除新智能手机的绑定。
4.绑定的智能手机7再次:第一次连接工作,所有重新连接失败。
您是否有任何想法或暗示会导致这种行为?
Br
安德烈亚斯
