Quantcast
Channel: 蓝牙论坛 - 最近的话题
Viewing all articles
Browse latest Browse all 7485

CC2640R2 配对问题

$
0
0

Dear All:

        最近在使用 CC2640R2 Peripheral工程 增加配对使能,设置如下:

// Setup the GAP Bond Manager
{
uint32_t passkey = 0;
uint8_t pairMode = GAPBOND_PAIRING_MODE_INITIATE; //GAPBOND_PAIRING_MODE_WAIT_FOR_REQ;
uint8_t mitm = true;
uint8_t ioCap = GAPBOND_IO_CAP_KEYBOARD_ONLY; //GAPBOND_IO_CAP_DISPLAY_ONLY; //GAPBOND_IO_CAP_NO_INPUT_NO_OUTPUT; //GAPBOND_IO_CAP_DISPLAY_ONLY;
uint8_t bonding = false;
GAPBondMgr_SetParameter(GAPBOND_DEFAULT_PASSCODE, sizeof(uint32_t), &passkey);
GAPBondMgr_SetParameter(GAPBOND_PAIRING_MODE, sizeof(uint8_t), &pairMode);
GAPBondMgr_SetParameter(GAPBOND_MITM_PROTECTION, sizeof(uint8_t), &mitm);
GAPBondMgr_SetParameter(GAPBOND_IO_CAPABILITIES, sizeof(uint8_t), &ioCap);
GAPBondMgr_SetParameter(GAPBOND_BONDING_ENABLED, sizeof(uint8_t), &bonding);
}

//注册配对绑定回调
VOID GAPBondMgr_Register(&simpleBLEPeripheral_BondMgrCBs);

void HIDDev_ProcessPairState(uint8_t state, uint8_t status)
{
//配对开始
if(state == GAPBOND_PAIRING_STATE_STARTED) {
UserPairStatus = PAIRING_FAILE;
}
else {
//配对完成
if(state == GAPBOND_PAIRING_STATE_COMPLETE) {
if(status == SUCCESS) {
UserPairStatus = PAIRING_SUCCESS;
}
}
//配对绑定
else if(state == GAPBOND_PAIRING_STATE_BONDED) {
if(status == SUCCESS) {

}
}
//配对失败
if(UserPairStatus == PAIRING_FAILE) {
GAPRole_TerminateConnection(); //掉线
}
}
}

仿真测试 部分 安卓手机 在配对过程中会出现无法配对问题,在启动 GAPBOND_PAIRING_STATE_STARTED 后 就无法再进入配对状态回调了。抓包现象如下:

请问这是什么问题?该如何解决,在添加 配对绑定源代码时,无法设置断点操作,这个增加了排查问题的难度,请问是不是哪里不对?怎样才能在源文件设置断点,查看回调错误在哪个状态下?(分别添加了源文件 icall_api.c 和 gapbondmgr.c)

请各位大神求解!谢谢~~~


Viewing all articles
Browse latest Browse all 7485

Trending Articles