请问,主从机连接以后,怎么启动绑定流程
Barbara Wu:
有关绑定的问题,请参考
http://www.deyisupport.com/question_answer/wireless_connectivity/f/45/p/48801/109119.aspx#109119
ida song:
你好,你提供的资料我看了,这个是说使用BTOOL配对,我想说的是使用主机程序的话使用什么函数可以发起绑定的一系列流程
Barbara Wu:
回复 ida song:
可以参考SimpleBLECentral例程里面对按下JOYSTICK中间按键的事件的操作
if ( keys & HAL_KEY_CENTER ) { uint8 addrType; uint8 *peerAddr; // Connect or disconnect if ( simpleBLEState == BLE_STATE_IDLE ) { // if there is a scan result if ( simpleBLEScanRes > 0 ) { // connect to current device in scan result peerAddr = simpleBLEDevList[simpleBLEScanIdx].addr; addrType = simpleBLEDevList[simpleBLEScanIdx].addrType; simpleBLEState = BLE_STATE_CONNECTING; GAPCentralRole_EstablishLink( DEFAULT_LINK_HIGH_DUTY_CYCLE, DEFAULT_LINK_WHITE_LIST, addrType, peerAddr ); LCD_WRITE_STRING( "Connecting", HAL_LCD_LINE_1 ); LCD_WRITE_STRING( bdAddr2Str( peerAddr ), HAL_LCD_LINE_2 ); } } else if ( simpleBLEState == BLE_STATE_CONNECTING || simpleBLEState == BLE_STATE_CONNECTED ) { // disconnect simpleBLEState = BLE_STATE_DISCONNECTING;
gStatus = GAPCentralRole_TerminateLink( simpleBLEConnHandle ); LCD_WRITE_STRING( "Disconnecting", HAL_LCD_LINE_1 ); } }
ida song:
回复 Barbara Wu:
您好,你的这段代码是指,开始连接和断开联接的操作,我的问题是如何控制主机让他在联接上从机以后,让从机同他开始配对,绑定的过程
Barbara Wu:
回复 ida song:
可以尝试修改这个部分
// Default GAP pairing mode#define DEFAULT_PAIRING_MODE GAPBOND_PAIRING_MODE_WAIT_FOR_REQ
// Default MITM mode (TRUE to require passcode or OOB when pairing)#define DEFAULT_MITM_MODE FALSE
// Default bonding mode, TRUE to bond#define DEFAULT_BONDING_MODE TRUE
// Default GAP bonding I/O capabilities#define DEFAULT_IO_CAPABILITIES GAPBOND_IO_CAP_DISPLAY_ONLY
// Default service discovery timer delay in ms#define DEFAULT_SVC_DISCOVERY_DELAY 1000
// TRUE to filter discovery results on desired service UUID#define DEFAULT_DEV_DISC_BY_SVC_UUID TRUE
Barbara Wu:
回复 Barbara Wu:
感觉可以试试这么个设置GAPBOND_PAIRING_MODE_INITIATE, MITM=TRUE, BONDING_MODE=FALSE, GAPBOND_IO_CAP_DISPLAY_ONLY在central端
然后 GAPBOND_PAIRING_MODE_WAIT_FOR_REQ, MITM=TRUE, BONDING_MODE=FALSE, GAPBOND_IO_CAP_DISPLAY_ONLY在peripheral端
ida song:
回复 Barbara Wu:
我按照这个方式,试了一下,可以配对成功,接收到Pairing started,以及Pairing success,但是没有绑定成功的信息,Bonding success,也没有接收到simpleBLECentralPasscodeCB这函数发送的信息,请问如何启动绑定以及密码输入这两个操作
Barbara Wu:
回复 ida song:
可以试试把两边的BONDING_MODE=FALSE都改为TRUE,然后要输入密码的话GAPBOND_IO_CAP_DISPLAY_ONLY这个也要改,因为DISPLAY_ONLY说明自己不含键盘
ida song:
回复 Barbara Wu:
我按照您给出的参数设置了主从机的GAPBOND_BONDING_ENABLED这个参数,但是还是没有启动绑定过程,请问是为什么
ida song:
回复 ida song:
启动了绑定,并且返回了"Bonding success",之后再连接好以后,是不是就不会启动配对过程,而是直接就绑定了?