private void btnSendPairingRequest_Click(object sender, EventArgs e) { PairBondFieldTabDisable(true); HCICmds.GAPCmds.GAP_Authenticate gapAuthenticate = new HCICmds.GAPCmds.GAP_Authenticate(); gapAuthenticate.connHandle = devForm.devInfo.Handle; try { gapAuthenticate.connHandle = Convert.ToUInt16(tbPairingConnHandle.Text.Trim(), 16); } catch (Exception ex) { msgBox.UserMsgBox(SharedObjects.MainWin, MsgBox.MsgTypes.Error, string.Format("Invalid Connection Handle\nFormat: 0x0000\n\n{0}\n", ex.Message)); tbPairingConnHandle.Focus(); PairBondUserInputControl(); return; } tbPasskeyConnHandle.Text = tbPairingConnHandle.Text; gapAuthenticate.secReq_ioCaps = HCICmds.GAP_IOCaps.KeyboardDisplay; gapAuthenticate.secReq_oobAvailable = HCICmds.GAP_TrueFalse.False; gapAuthenticate.secReq_oob = "00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00"; byte num = (byte)0; if (ckBoxBondingEnabled.Checked && ckBoxAuthMitmEnabled.Checked) num = (byte)5; else if (ckBoxBondingEnabled.Checked) num = (byte)1; else if (ckBoxAuthMitmEnabled.Checked) num = (byte)4; gapAuthenticate.secReq_authReq = num; gapAuthenticate.secReq_maxEncKeySize = (byte)16; gapAuthenticate.secReq_keyDist = (byte)63; gapAuthenticate.pairReq_Enable = HCICmds.GAP_EnableDisable.Disable; gapAuthenticate.pairReq_ioCaps = HCICmds.GAP_IOCaps.NoInputNoOutput; gapAuthenticate.pairReq_oobDataFlag = HCICmds.GAP_EnableDisable.Disable; gapAuthenticate.pairReq_authReq = (byte)1; gapAuthenticate.pairReq_maxEncKeySize = (byte)16; gapAuthenticate.pairReq_keyDist = (byte)63; ShowProgress(true); devForm.StartTimer(DeviceForm.EventType.PairBond); devForm.sendCmds.SendGAP(gapAuthenticate); }