1)我将peripheral的
uint8 pairMode = GAPBOND_PAIRING_MODE_INITIATE;
uint8 mitm = TRUE;
用lightblue连接peripheral时,会要求输入密码。输入对的密码后,会bond成功,Authenticate成功。用断点查看,
// Save off of the authentication state
bondRec.stateFlags |= (pPkt->authState & SM_AUTH_STATE_AUTHENTICATED) ? GAP_BONDED_STATE_AUTHENTICATED : 0;
bondRec.stateFlags = 1。
2)但是如果用开发板做central,central默认密码不论是多少,都会bond成功,但是Authenticate失败。断点查看bondRec.stateFlags = 0.
我有如下问题。
1)central端如果要输入密码,代码里面是在哪里响应啊?协议里central端哪里会从用户输入得到密码,并且发送到peripheral端认证。这个在lightblue里面是可以的,手机会弹出一个对话框。但是在开发板上如何实现呢?多谢!
Yan:
jack,
由于没有数字键输入功能,central没法像手机那样做复杂的操作来完成配对过程。
如果你是没有屏幕的开发板,建议你最好把 ioCap 这个参数设置成 GAPBOND_IO_CAP_NO_INPUT_NO_OUTPUT。
jack wong:
回复 Yan:
我的central是有屏幕的,我想知道,在central端哪里生成密码,发送到peripheral端去完成验证。请问ti 的 stack里面有这块代码吗?