NRF51822配对绑定要点

NRF51822配对绑定要点:

当手机发来配对请求,协议栈触发事件 BLE_GAP_EVT_SEC_PARAMS_REQUEST,将事件传送到设备管理器事件处理函数中: dm_ble_evt_handler()

该事件处理函数在ble_evt_dispatch()中注册。

在对该事件的处理中,需要调用回复API回复配对参数 sd_ble_gap_sec_params_reply
sd_ble_gap_sec_params_repl 的第三个参数g_pair_params参数就是要回复的配对绑定参数设置。

该参数的配置是使用设备管理器注册函数 dm_register() 。具体初始化过程可以参考上一篇教程。

如果需要配对和绑定,参数通常设置为:
#define SEC_PARAM_BOND 1 /**< Perform bonding. */
#define SEC_PARAM_MITM 0 /**< Man In The Middle protection not required. */
#define SEC_PARAM_IO_CAPABILITIES BLE_GAP_IO_CAPS_NONE /**< No I/O capabilities. */
#define SEC_PARAM_OOB 0 /**< Out Of Band data not available. */
#define SEC_PARAM_MIN_KEY_SIZE 7 /**< Minimum encryption key size. */
#define SEC_PARAM_MAX_KEY_SIZE 16 /**< Maximum encryption key size. */

注:绑定是配对过程的一个可选项。使用设备管理器绑定对端设备之后(BOND 1),再次连接不需要手动配对,双方会自动配对,建立加密连接。

时间: 2024-11-02 11:19:10

NRF51822配对绑定要点的相关文章

nRF51822 配对之device_manager_init 调用,以及保证 用户数据存储 的Flash 操作不与device manager 模块冲突

昨天 遇到了一个烦心的问题,被老外客户怼了两句,恼火,很想发火,发现英文不够用,算了,就不跟直肠的鬼佬一般见识.说正事. 最近的一个nRF51822+MT2503 钱包防丢项目,准备接近量产了.昨天做APP的老外发现设备没有 配对绑定功能,就不明真相的说为什么一开始不加上. WTF,记住MAC地址就可以了啊,做销售的老外以为没有配对绑定功能的意思是手机不能连接上,做APP的老外才真正配对绑定功能是为看手机省电和连接方便,..好吧, 加上去. 据说,配对功能就是为了 手机绑定设备后,可以直接启动连

NRF51 使用设备管理器实现配对绑定(教程翻译)

教程原地址: https://devzone.nordicsemi.com/tutorials/15/ 如何使用nrf51开发工具包的设备管理器库来绑定和连接对端蓝牙设备. 下面来讲讲如何使用设备管理器(devicce manager)来存储和删除绑定信息. 配对是每个BLE设备的安全功能的初始交互,创建一个临时加密. 设备配对后,可以选择和继续绑定.绑定就是交换一个长期安全秘钥,它被存储起来以便之后重连和加密. 设备管理器做到这一点,是利用存储模块pstorage,将绑定信息存储进flash,

Android 屏蔽蓝牙连接时的首次配对系统弹窗

连接配对密码已知且固定的蓝牙设备时,明明在代码里就可以完成配对,却依旧被系统弹出配对窗口. 这无疑是令人难受的. 所以,便尝试着去屏蔽掉这个配对窗口. 要点: 中断系统发出的蓝牙配对广播 需要用到ClsUtils开源框架 个人测试在Android 4.4上成功拦截,在4.2上不行,也许是高版本把蓝牙配对广播设为了有序广播? code: public class BluetoothConnectReceiver extends BroadcastReceiver { private final S

ASP.NET(C#) GridView (编辑、删除、更新、取消)

转自:http://my.oschina.net/dldlhrmc/blog/93458 前台代码 view source print? 01 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default5.aspx.cs" Inherits="Default5" %> 02    03  <!DOCTYPE html PUBLIC "

Android设备怎么获取扫码枪扫描内容

1. 蓝牙配对,连接设备 打开系统设置,找到蓝牙,打开扫码枪,配对扫码枪设备.输入一个固定的配对码,一般扫码枪说明书里都有写.配对完成后,显示设备已连接.就ok. 2.AndroidManifest中配置权限 android项目中的AndroidManifest.xml文件添加蓝牙权限. <uses-permission android:name="android.permission.BLUETOOTH" /> <uses-permission android:na

Tomcat 域名绑定多个Host配置要点

一.添加Host节点,name就是需要绑定的域名,多个域名用<Alias></Alias> <Engine name="Catalina" defaultHost="ren"> <Host name="ren" appBase="renapps"/> <Host name="stimpy" appBase="stimpyapps"/&

[nRF51822] 14、浅谈蓝牙低功耗(BLE)的几种常见的应用场景及架构(科普类干货)

蓝牙在短距离无线通信领域占据举足轻重的地位—— 从手机.平板.PC到车载设备, 到耳机.游戏手柄.音响.电视, 再到手环.电子秤.智能医疗器械(血糖仪.数字血压计.血气计.数字脉搏/心率监视器.数字体温计.耳温枪.皮肤水分计等), 再到智能家居等领域均占有一席之地. 而蓝牙低功耗(BLE)是在蓝牙4.0协议上修改以适用低功耗应用场景的一种蓝牙协议. 随着上一股智能消费类电子大潮的到来,BLE的各种应用也像雨后春笋般在市场上铺开. 如果想 紧跟蓝牙协议的最新动态 ,可以在https://www.b

【netty】Netty系列之Netty百万级推送服务设计要点

1. 背景 1.1. 话题来源 最近很多从事移动互联网和物联网开发的同学给我发邮件或者微博私信我,咨询推送服务相关的问题.问题五花八门,在帮助大家答疑解惑的过程中,我也对问题进行了总结,大概可以归纳为如下几类: Netty是否可以做推送服务器? 如果使用Netty开发推送服务,一个服务器最多可以支撑多少个客户端? 使用Netty开发推送服务遇到的各种技术问题. 由于咨询者众多,关注点也比较集中,我希望通过本文的案例分析和对推送服务设计要点的总结,帮助大家在实际工作中少走弯路. 1.2. 推送服务

Angular指令封装jQuery日期时间插件datetimepicker实现双向绑定

一放假就高产似母猪了. 00.混乱的前端界 Angular1.x确实是个学习成本很高的框架,刚开始实习那会儿,前端啥也不懂,工头说用Angular,我们这群小弟也只能硬着头皮学.在这之前,前端的东西大部分都用的jQuery,而Angular正好是和jQuery的思维是相反的,开发过程中遇到了不少坑.而Angular团队也放弃了1.x开始开发和React神似的2.0版本,唉,真是沧海桑田啊. 01.Angular vs jQuery Angular模块化和解耦的思路确实值得一学,但是相对于成熟的j