nRF51822 配对之device_manager_init 调用,以及保证 用户数据存储 的Flash 操作不与device manager 模块冲突
昨天 遇到了一个烦心的问题,被老外客户怼了两句,恼火,很想发火,发现英文不够用,算了,就不跟直肠的鬼佬一般见识。说正事。
最近的一个nRF51822+MT2503 钱包防丢项目,准备接近量产了。昨天做APP的老外发现设备没有 配对绑定功能,就不明真相的说为什么一开始不加上。
WTF,记住MAC地址就可以了啊,做销售的老外以为没有配对绑定功能的意思是手机不能连接上,做APP的老外才真正配对绑定功能是为看手机省电和连接方便,..好吧,
加上去。
据说,配对功能就是为了 手机绑定设备后,可以直接启动连接设备而不用首先进行扫描,一直扫描的话太耗电。
还有,苹果手机的一些蓝牙功能也需要配对完成才能用。否则是用不了的。
下面是老外的原话:
@ceiba if device paired, Android system save BT device profile in system and can get Bluetooth device object to connect to it (trying to connect). If profile doesn't exist in system, need always scan nearby devices and compare saved addresses to get device and connect it
流程应该是这样的:
1.手机与设备首次进行了连接,
2.手机向设备请求绑定(配对,bond&pair)
3.设备如果有配对功能,返回自身的一些配对信息给手机,否则就啥都不管,或者回一句,“我不支持配对功能”
4.设备本身将手机发来的手机配对信息进行存储
5.手机接收到设备返回的配对信息后,也进行储存
6.下次连接,手机可能不需要扫描就可以直接启动连接设备(经过和经验丰富的老外沟通后,我认为是这样),
设备接受连接后也会检查配对信息是否正确,正确了就返回告诉手机
7.直接进行通信。
以上是这两天的收获,感谢老外和我的技术支持。
下面开始移植 device manager 模块,也就是 设备的绑定配对功能,
。。。。
我就不写了,还是直接给个链接跳去看论坛上人家的做法吧,
https://devzone.nordicsemi.com/tutorials/15/
下面是第二个关键的问题,因在移植 device manager 这个模块的代码之前,加有对 pstorage 的操作, 而device manager 里面也有,这时候就有点冲突了,因为pstorage_init 只需要调用一次。
OK,那就把 我自己的 pstorage_init() 删掉,但还是不行,pstorage_register 分配了同一块地址(返回0x00000007)。。。导致错误,复位。。
后来再进去,发现下面这块代码的时候出了错:
#define MODULE_ID_RANGE_CHECK(ID) \
if ((((ID)->module_id) >= PSTORAGE_NUM_OF_PAGES) || \
(m_app_table[(ID)->module_id].cb == NULL)) \
{ \
return NRF_ERROR_INVALID_PARAM; \
}
哦,原来是 PSTORAGE_NUM_OF_PAGES 这个宏的问题,原来是1,OK ,改成2 ,问题完美解决。。。
#define PSTORAGE_NUM_OF_PAGES 2//
。。。
nRF51822 配对之device_manager_init 调用,以及保证 用户数据存储 的Flash 操作不与device manager 模块冲突的更多相关文章
- SQLite实现用户数据存储+Android之app:lintVitalRelease解决办法
今日所学 SQLite实现用户数据存储 遇到的问题 界面没能显示出存在数据库中的信息 明日计划 查找界面没能显示出存在数据库中的信息的原因 报错:app:lintVitalRelease 解决办法: ...
- oracle中的sys用户(修改密码)/////Oracle删除表空间的同时删除数据文件 ///// Oracle中如何保证用户只有一个session登录
oracle中的sys用户(修改密码) (2011-07-01 09:18:11) 转载▼ 标签: it 分类: oracle 概念: SYS用户是Oracle中权限最高的用户,而SYSTEM是一个用 ...
- OpenGL在图形管道中调用了什么用户模式图形驱动程序(UMD)?
OpenGL在图形管道中调用了什么用户模式图形驱动程序(UMD)? 图形硬件供应商,需要为显示适配器编,编写用户模式显示驱动程序.用户模式显示驱动程序,是由Microsoft Direct3D运行时加 ...
- Cocos Creator存储和读取用户数据--官方文档
存储数据 cc.sys.localStorage.setItem(key, value) 上面的方法需要两个参数,用来索引的字符串键值 key,和要保存的字符串数据 value. 假如我们要保存玩家最 ...
- Ruby Rails学习中:User 模型,验证用户数据
用户建模 一. User 模型 实现用户注册功能的第一步是,创建一个数据结构,用于存取用户的信息. 在 Rails 中,数据模型的默认数据结构叫模型(model,MVC 中的 M).Rails 为解决 ...
- 使用python抓取婚恋网用户数据并用决策树生成自己择偶观
最近在看<机器学习实战>的时候萌生了一个想法,自己去网上爬一些数据按照书上的方法处理一下,不仅可以加深自己对书本的理解,顺便还可以在github拉拉人气.刚好在看决策树这一章,书里面的理论 ...
- 微信小程序之用户数据解密(七)
[未经作者本人同意,请勿以任何形式转载] 经常看到有点的小伙伴在群里问小程序用户数据解密流程,所以打算写一篇关于小程序用户敏感数据解密教程: 加密过程微信服务器完成,解密过程在小程序和自身服务器完成, ...
- C#开发微信门户及应用(14)-在微信菜单中采用重定向获取用户数据
我曾经在系列文章中的<C#开发微信门户及应用(11)--微信菜单的多种表现方式介绍>中介绍了微信菜单里面的重定向操作,通过这个重定向操作,我们可以获取一个code值,然后获取用户的open ...
- SQL Server 2016五大优势挖掘企业用户数据价值
SQL Server 2016五大优势挖掘企业用户数据价值 转载自:http://soft.zdnet.com.cn/software_zone/2016/0318/3074442.shtml 3月1 ...
随机推荐
- 接口的鉴权cookie、session和token
1.HTTP是无状态协议 什么是无状态?就是说这一次的请求和上一次的请求是没有任何关系的,无法共享信息.好处就是速度快. 2.cookie.session的加入 HTTP请求是无状态的,所以解决共享信 ...
- 学习笔记之DBeaver
DBeaver Community | Free Universal Database Tool https://dbeaver.io/ Universal Database Tool Free mu ...
- 简单后台管理系统框架--HTML练手项目2【Frameset】
[本文为原创,转载请注明出处] 技术[HTML] 布局[Frameset] 无步骤 <!DOCTYPE html> <html lang="en"> & ...
- electron-vue多显示屏下将新窗口投放是其他屏幕
display对象可以获取所有显示屏此处演示程序启动是投放新窗口至另一屏幕 import { app, BrowserWindow } from 'electron' const electron = ...
- JavaScript之轮播图
(1)html <div class="box" id="box"> <ul class="uls" id="u ...
- 英语Bisynes商务
英语bisynes商务概念的提出是改革的产物,有一个演变的过程:贸易部--商业部.外贸部--内贸部--内贸局--商务部.是内外贸一体化的概念. 中文名:商务 外文名:Business,Bisynes商 ...
- android ViewFlipper(翻转视图) 使用
1.布局文件 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns ...
- maven设定项目编码
今天在DOS下执行mvn compile命令时报错说缺少必要符号,事实上根本就没有缺少,但何以如此呢,为啥eclipse在编译时就没有这问题呢? 原因是编码的问题造成的! eclipse在编译的使用使 ...
- Termux和Ubuntu建立ssh连接
1 本机环境 Android:Termux v0.77 作为客户端 Linux:Ubuntu 19.10 作为服务器 两者处于同一局域网下 2 ssh安装 2.1 Termux pkg install ...
- Web数据库架构
Web服务器的基本操作如图下图所示: 这个系统由两个对象组成:一个Web浏览器和一个Web服务器.它们之间需要通信连接.Web浏览器向服务器发出请求.服务器返回一个响应.这种架构非常适合服务器发布静态 ...