|
FireBlue QN9021 Proximity Reportor profile(防丢器) 之源码分析 (二)疑惑与解惑
发表于 2015-4-3 11:36:23
浏览:9722
|
回复:2
打印
只看该作者
[复制链接]
楼主
本帖最后由 dezhi 于 2015-4-3 11:49 编辑
文篇开头时,本想再啰嗦一下,但回头一想,看这个这篇文章的朋友,应该估计着也是学习的朋友,非最终用户,对防丢器这个东西的原理就算不懂应该也能会操作会使用,所以小弟就不去啰嗦介绍这个东西是怎么使用,大概扯蛋一下自己刚接触这东西的时候对防丢器的疑惑与解惑的过程。
我拿到FireBlue 板子的时候 里面固化的程序就是防丢器这个应用,抱着对这个IC不熟悉的心理,我一开始没有急着去烧录跑其他例程尝新鲜,而是照着 wiki 的入门指南玩起了这个应用,小弟手上刚好有个 5S 于是便在app_store 下载了iswhere 。应用也挺简单的,就扫描,连接,发出报警,走远报警想起,靠近报警取消,基本就这样。这就是功能了。
wiki 上推荐了一块 IOS 的BLE 调试app ,Light Blue,我也下载安装了,用这工具分析了一下防丢器这个应用。还真别说,这绝对是一个好工具,看来开发商的推荐不错,为入门者扫清了基本障碍。
疑惑来了,
1.防丢器的原理是什么?
2.为什么防丢器的server 要这么设计,这么设计的构想是什么?
3.它与App 是怎么配合工作的?
抱着这些疑惑,我网上找了不少资料,
1.我自己一直以为防丢的原理就是检测蓝牙的连接,如果连接断开了,就报警,但是肯定不是我想的那么简单,连接丢失报警这是其中之一,还有就是检测信号的强度,计算距离,如果超过设置的阀值就发出警报。
2.为什么这么设计,我想就我现在唯一能给的就是规格书这么一件了,只能看大厂商们一起制定的 specification 下载地址为:http://download.csdn.net/detail/q562359345/8560331
3.玩转应用后,就应该能知道,与app 的配合,就是提供数据给APP.或者接受APP 发下来的指令,处理指令,比如接受APP 的报警指令。
根据提供的 Proximity profile specification 里所提到的三个Server,分别如下:
1.Link Loss (UUID:0x1803)
连接丢失服务,当手机离得防丢器距离较远,信号丢失导致连接丢失的情况下,手机app会收到该链接丢失的事件,软件处理该事件,使手机发出警告;同样,防丢器设备端,也会收到链接已断开的消息,同样是使设备驱动蜂鸣器,发出警报。
2.Immediate Alert (UUID:0x1802)
即时报警服务,该服务接受app 端下发的报警指令,当app 端通过计算与设备端的信号值 小于某个阀值是便下发指令 报警提示。该server 为Write without Response 接受写的值为No Alert(0x00),Mild Alert(0x01),High Alert(0x02)
3.Tx Power(UUID:0x1804)
发射功率服务,该服务,提供一个只读的属性,该属性值代表当前设备的发射功率。以供手机端APP 用于配合RSSI计算距离、
欢迎关注小弟博客http://blog.csdn.net/q562359345
|
|