低功耗蓝牙BLE [学习笔记]
手机设备会区分 "connecting" and "pairing" ,前者可以自动连接,后者则需要请求。
BLE不再有pairing的麻烦,能直接连上目标设备,并开启服务自动发送数据功能。
开发蓝牙程序,主要是两块:连接和数据解析。
1. Connect 连接。
1.1) How to know service UUID?
https://developer.bluetooth.org/gatt/services/Pages/ServicesHome.aspx
1.2) How to know Characteristics UUID?
https://developer.bluetooth.org/gatt/characteristics/Pages/CharacteristicsHome.aspx
1.3) How to know Descriptors UUID?
https://developer.bluetooth.org/gatt/descriptors/Pages/DescriptorsHomePage.aspx
如果不在上述列表,那么Service是custom service,只能通过相关文档或者遍历尝试了。
2. Data parsing 数据解析。
GATT Specifications
https://developer.bluetooth.org/gatt/Pages/default.aspx
其中,Units/Format Types/GATT Namespace Descriptors 三个是基本命名规则等,可以不看。
想知道某个角色模型:(Sample: https://developer.bluetooth.org/TechnologyOverview/Pages/HRP.aspx)
Web site -> GATT Specifications -> Bluetooth specifications -> "Overview Page" column
角色模型,Service组成都在这里了。
具体查阅某个Characteristics的数据格式,还是跟查UUID一样:
https://developer.bluetooth.org/gatt/characteristics/Pages/CharacteristicsHome.aspx
===================================
参考:
一个很好的例子,手机与BLE串口设备通信,用串口小助手辅助调试:
(http://blog.csdn.net/hellogv/article/details/24267685)
Callback及基本介绍:http://www.xlgps.com/article/114904.html
一个很好的给官方的翻译页面,http://blog.csdn.net/qinxiandiqi/article/details/40741269
给出很好的介绍及新旧两种连接方式: http://blog.davidvassallo.me/2015/09/02/ble-health-devices-first-steps-with-android/
各种Callback 函数的总结: http://www.cnblogs.com/liqw/p/4031437.html
一些很好的翻译及介绍: http://www.race604.com/gatt-connect/
http://www.race604.com/gatt-profile-intro/
https://learn.adafruit.com/introduction-to-bluetooth-low-energy?view=all
====================================
关于开发板的开发,C语言开发的:
http://china.cypress.com/blog/100-projects-100-days
http://china.cypress.com/blog/100-projects-100-days/project-045-pulse-oximetry-heart-rate-monitor
BLE 设备有6 tytes 的唯一地址标识。
====================================
低功耗蓝牙BLE [学习笔记]的更多相关文章
- 低功耗蓝牙BLE外围模式(peripheral)-使用BLE作为服务端
低功耗蓝牙BLE外围模式(peripheral)-使用BLE作为服务端 Android对外模模式(peripheral)的支持 从Android5.0开始才支持 关键术语和概念 以下是关键BLE术语和 ...
- 深入浅出低功耗蓝牙(BLE)协议栈
深入浅出低功耗蓝牙(BLE)协议栈 BLE协议栈为什么要分层?怎么理解蓝牙"连接"?如果蓝牙协议只有ATT没有GATT会发生什么? 协议栈框架 一般而言,我们把某个协议的实现代码称 ...
- 使用BleLib的轻松搞定Android低功耗蓝牙Ble 4.0开发具体解释
转载请注明来源: http://blog.csdn.net/kjunchen/article/details/50909410 使用BleLib的轻松搞定Android低功耗蓝牙Ble 4.0开发具体 ...
- 深入浅出讲解低功耗蓝牙(BLE)协议栈
详解BLE连接建立过程https://www.cnblogs.com/iini/p/8972635.html 详解BLE 空中包格式—兼BLE Link layer协议解析https://www.cn ...
- 低功耗蓝牙BLE之连接事件、连接参数和更新方法
转自:http://blog.csdn.net/zzfenglin/article/details/51304084 连接事件 在一个连接当中,主设备会在每个连接事件里向从设备发送数据包.一个连接事件 ...
- Android低功耗蓝牙(BLE)开发的一点感受
最近一段时间,因为产品的需要我做了一个基于低功耗蓝牙设备的Android应用,其中碰到了一些困难,使我深深体会到Android开发的难处:不同品牌,不同型号和不同版本之间的差异使得Android应用适 ...
- Android 低功耗蓝牙BLE 开发注意事项
基本概念和问题 1.蓝牙设计范式? 当手机通过扫描低功耗蓝牙设备并连接上后,手机与蓝牙设备构成了客户端-服务端架构.手机通过连接蓝牙设备,可以读取蓝牙设备上的信息.手机就是客户端,蓝牙设备是服务端. ...
- Ti CC2540蓝牙模块学习笔记整理
接触CC2540几天,终于有了初步的理解,现将笔记整理如下,只是皮毛,如有错误,还请指正,还有好多没闹明白的地方,以后应该还会继续向里面更新~ 一.整体 1.TI的蓝牙平台支持2种协议栈/应用配置:单 ...
- Android 蓝牙 BLE 开发笔记
最近公司头戴换了一块蓝牙4.0 BLE模块,所以我们Android组要适配 BLE.Android BLE 需要 4.3 以上系统,api 还是非常简单的, 第一步就是扫描, 扫描到设备后就可以连接了 ...
随机推荐
- coalesce
coalesce我理解就是将多个partition合并成少量的partition. data.coalesce(2,true) 第一个参数是partition数量 第二个参数是合并是是否进行shuff ...
- Hark的数据结构与算法练习之快速排序
前言 快速排序是最常见,也是面试中最容易考的排序方法,这里做一下总结 算法说明 其实这里说的很清楚了:http://blog.csdn.net/morewindows/article/details/ ...
- [HTTP那些事] JSON数据
随着Android的发展,各路大神的贡献,我们可用的轮子越来越多.比如HTTP请求框架,有自家的Volley,Square的okhttp, async-http-lib, 还有聚合版的xUtils以及 ...
- SU Demos-04Deconvolution-02Wiener_Levinson
本Demo共有4个脚本,我只看了第一个,后面的3个不熟悉,就不往这里贴图了,望谅解. 不足之处,欢迎批评指正. 先看readme 生成数据所需的c程序 make上述c程序时需要的makefile(本人 ...
- 2015CCPC小记
距离第一届CCPC也正好一星期了,突然想到还没写总结,现在补上.做为刚度过大一的我,能有机会去参加国赛是很激动的.周五下午出发,坐了13个小时的火车抵达南阳,南阳不算大城市,有点落后,但是这里的人很热 ...
- VC创建预编译文件
Building a simple "hello world" Ogre application can take several seconds on a modern mach ...
- ural 1306. Sequence Median
1306. Sequence Median Time limit: 1.0 secondMemory limit: 1 MBLanguage limit: C, C++, Pascal Given a ...
- 初识API函数
我之前是一个只会编写数值计算的程序的OIer,但我并不甘于这种现状,于是我编写了我的第一个使用API函数的C++程序,开发平台是VS2012: // ConsoleApplication.cpp : ...
- cocos2d CCArray
CCArray* arr=CCArray::create(); arr->retain();//如果不加这个东西,CCArray会被清空 arr->addObject(CCSprite:: ...
- BZOJ2707 : [SDOI2012]走迷宫
首先求出SCC缩点,E[T]=0,按拓扑序计算 对于无边连出的块,如果不是T所在块,则称该块是死路块 对于一个块,如果其中的点连出的边是死路块,则它也是死路块 否则对于每块进行高斯消元求出期望 如果S ...