昨天 遇到了一个烦心的问题,被老外客户怼了两句,恼火,很想发火,发现英文不够用,算了,就不跟直肠的鬼佬一般见识。说正事。

最近的一个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)。。。导致错误,复位。。

  后来再进去,发现下面这块代码的时候出了错:

1 #define MODULE_ID_RANGE_CHECK(ID)                                                                 \
2         if ((((ID)->module_id) >= PSTORAGE_NUM_OF_PAGES) ||                                       \
3             (m_app_table[(ID)->module_id].cb == NULL))                                            \
4         {                                                                                         \
5             return NRF_ERROR_INVALID_PARAM;                                                       \
6         }

哦,原来是 PSTORAGE_NUM_OF_PAGES 这个宏的问题,原来是1,OK ,改成2 ,问题完美解决。。。

#define PSTORAGE_NUM_OF_PAGES       2// 1

。。。

转载于:https://www.cnblogs.com/ceibacity/p/7233254.html

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

  1. 华为网盘停止用户数据存储

    5月3日消息,继金山快盘.新浪微盘等多家网盘停止存储服务后,华为网盘今日也宣布停止用户数据存储分享服务. 华为网盘发布公告称,为配合国家有关部门积极开展网盘涉黄.涉盗版内容的清查工作,即日起停止用户数 ...

  2. 云空间服务,助力用户数据存储与协同

    当我们在使用电子设备时,存储无疑是最基础.最不可或缺的功能,随着信息膨胀,单纯依靠设备内存,已经不足以支撑储存全部数据,云空间应运而生. 云空间,顾名思义就是将大量数据存储在云端,减少设备内存的占用, ...

  3. JSON文件的应用——记录类型的用户数据存储

    章节索引 前提 从问题出发 JSON和XML 专精JSON JSON文件读与写 (1)读JSON文件 (2)正向映射 (3)反向映射 (4)写JSON文件 后记 前提 之前一直有个问题没有弄清楚,就是 ...

  4. python调用菜单响应事件_Python处理菜单消息操作示例【基于win32ui模块】

    本文实例讲述了Python处理菜单消息操作.分享给大家供大家参考,具体如下: 一.代码 # -*- coding:utf-8 -*- #! python3 import win32ui import ...

  5. 【Alios-things笔记】EMW3060 Flash用户数据存储KV

    [KV介绍] KV组件是AliOS Things中一个以Key-Value方式进行持久化存储的轻量级组件,主要为基于nor flash的小型MCU设备(Micro Control Unit)提供通用的 ...

  6. 小程序中神秘的用户数据

    前面 上一篇文章手把手教会你小程序登录鉴权介绍了小程序如何进行登录鉴权,那么一般小程序的用户标识可以使用上文所述微信提供的jscode2session接口来换取,小程序还提供了一个getUserInf ...

  7. 从壹开始 [ Ids4实战 ] 之三║ 详解授权持久化 用户数据迁移

    哈喽大家周三好,今天终于又重新开启 IdentityServer4 的落地教程了,不多说,既然开始了,就要努力做好?. 书接上文,在很久之前的上篇文章<二║ 基础知识集合 & 项目搭建一 ...

  8. 【NRF51822】百度手环开源源码分析--数据自动同步部分

    1.  void send_all_data(boolis_from_cb) 发送数据都是通过send_all_data()去上传的. 1)  static boolneed_send_sync_pr ...

  9. MySQL存储用户点赞的信息_点赞数据存储方法及设备与流程

    本申请涉及互联网技术领域,尤其涉及一种点赞数据存储方法及设备. 背景技术: 为了增加用户的互动性,许多社交平台为用户提供了投票/点赞,或反对/踩的功能.例如,在网络直播平台上,为了使用户和主播具有良性 ...

最新文章

  1. vim 成“神“之路 (一)
  2. 关于 synchronizeOnSession
  3. 开发日记-20190817 关键词 Hello Unix
  4. Python 技术篇-用PIL库旋转图片、改变图像尺寸
  5. “leave the world behind”十一快乐出行
  6. java确认rabbitmq_RabbitMQ的消息确认模式
  7. 将数据库中一张表中数据复制到另一张表
  8. jetson windows_生命不息,折腾不止:Jetson Nano填坑之软件篇
  9. 【转】心等久了就会死心
  10. java 替换pdf 文本_java 查找替换pdf中的指定文本
  11. keba驱动器_KEBA控制器说明书
  12. 视频直播技术详解之延迟优化
  13. 移动mm 话费支付接入过程(ane)
  14. 如何使用纯CSS将页面转换为繁体字
  15. Golang面向对象之-类
  16. python可视化是什么意思_python3数据可视化是什么?
  17. python爬取物流信息_手把手教你用Python爬取快递100查询你的物流信息
  18. 相机快门之:电子快门
  19. Lawnmower(codeforces115B)
  20. 你的电脑被黑客黑过吗?

热门文章

  1. 找对象年龄差多大最好_女生找对象到底最看重什么?调查了全球6万多名女性的结果是......
  2. photoshop案例_玩手机不如学PS!200集入门到精通Photoshop自学教程分享3
  3. c语言调用android surface,Android GUI SurfaceFlinger
  4. (大整数类Biginteger)大斐波数
  5. hashmap hash冲突怎么解决_HashMap原理及冲突之简谈
  6. 二元置信椭圆r语言_r语言二元期权barrier option实现案例
  7. php+new+mysqli+utf+8,MySQL和PHP:utf-8带有西里尔字符
  8. 多相机坐标转换_使用KITTI数据集实现坐标转换
  9. 接口自动化测试_Python自动化测试学习路线之接口自动化测试「模块四」
  10. 定时器中断实验 编写程序使定时器0或者定时器1工作在方式2,自动重装载模式,定时500ms使两位数码管从00、01、02……98、99每间隔500ms加1显示。