工具/软件:
您好:
我使用以下 SDK 和平台的多角色示例:
SDK:c:\ti\simplelink_cc13xx_cc26xx_sdk_7_10_02_23
板:LP_CC2651R3SIPA
示例:ble5stack\multi_role
我的用例:
我有一个使用 GATT_BORY_encrypt_read 的自定义特性。
在智能手机 电路板连接中、当手机尝试读取此特性时、配对序列会自动开始(配对弹出窗口,使用 Just Works)。
在板 板连接(多角色
多角色)中 ,当我调用 GATT_ReadCharValue() 时,调用成功,但返回 bleInundistentEncrypt (0x42 )。 配对不会自动开始。
为了解决这一问题、我明确调用了:GAPBond(pMsg->connHandle); Mgr_Pair
在 ATT 错误响应处理中、这将触发 MULTI_ROLE_PROCESSORPairState () 流、配对和绑定成功完成。
我的问题: 为什么需要 Mgr_Pair 在板对板场景中手动调用 GAPBond() 以触发配对,而在智能手机场景中,堆栈在访问加密特性时会自动启动配对?
这是多角色示例的预期行为、还是 Bond Manager/GAP 角色中存在我可能错过的一些配置?
syscfg 中的绑定管理器设置
uint8_t pairMode = GAPBOND_PAIRING_MODE_WAIT_FOR_REQ;
uint8_t MITM = false;
uint8_t ioCap = GAPBOND_IO_CAP_NO_INPUT_NO_OUTPUT;
uint8_t 绑定 = true;
uint8_t secureConnection = GAPBOND_SECURE_CONNECTION_ONLY ;
uint8_t rectalPairingOnly = false;
uint8_t autoSyncWL = true;
Uint8_t eccReGenPolicy = 0;
uint8_t KeySize = 16;
uint8_t removeLRUBond = true;
Uint8_t bondFailAction = GAPBOND_FAIL_TERMINATE_ERASE_SINGLE_BOND;
UINT8_t KeyDistList = GAPBOND_KEYDIST_MENCKEY | GAPBOND_KEYIST_MIDKEY | GAPBOND_KEYDIST_MSIGN | GAPBOND_KEYDIST_SENCKEY | GAPBOND_KEYDIST_SIDKEY | GAPBOND_KEYDIST;
Uint8_t allowDebugKeys = false;
Uint8_t eraseBondWhileInConn = false;
Uint8_t sameIrkAction = GAPBOND_SAMPLE_irk_update_bond_REC;
谢谢、
Vikas
