标签分类
当前位置:首页 > 程序设计电子书 > 蓝牙开发电子书网盘下载
低功耗蓝牙开发权威指南 低功耗蓝牙开发权威指南
warcraftzhaochen

warcraftzhaochen 提供上传

资源
12
粉丝
12
喜欢
111
评论
5

    低功耗蓝牙开发权威指南 PDF 高清版

    蓝牙开发电子书
    • 发布时间:

    给大家带来的一篇关于蓝牙开发相关的电子书资源,介绍了关于蓝牙开发方面的内容,本书是由机械工业出版社出版,格式为PDF,资源大小67.2 MB,海登编写,目前豆瓣、亚马逊、当当、京东等电子书综合评分为:7.4,更多相关的学习资源可以参阅 程序设计电子书、等栏目。

  • 低功耗蓝牙开发权威指南 PDF 下载
  • 下载地址:https://pan.baidu.com/s/1sfFEQK6Mzur1enLcnL535w
  • 分享码:zca3
  • 低功耗蓝牙开发权威指南

    功耗蓝牙开发权威性指南根据与經典手机蓝牙作比照,详细详细介绍了将深层次危害下多次无线通信技术辛亥革命的功耗蓝牙技术的造成、设计方案、原理以及优良的环保节能、抗干扰性特点和灵便、简易的开发设计特性。这书分成4个一部分,各自论述了功耗蓝牙技术以及控制板、服务器的原理,及其手机应用程序的开发设计,合适从业功耗手机蓝牙产品研发工作中的技术工程师、应用开发工作人员、室内设计师或网络营销工作人员等各种用户阅读文章

    目录

    • 译者序
    • 前言
    • 第一部分 综  述
    • 第1章 什么是低功耗蓝牙技术 2
    • 1.1 设备类型 4
    • 1.2 设计目标 5
    • 1.3 术语 6
    • 第2章 基本概念 8
    • 2.1 纽扣电池 8
    • 2.2 时间即能量 9
    • 2.3 昂贵的内存 10
    • 2.4 非对称设计 10
    • 2.5 为成功而设计 11
    • 2.6 凡事皆有状态 12
    • 2.7 客户端–服务器架构 12
    • 2.8 模块化架构 13
    • 2.9 十亿只是个小数目 14
    • 2.10 无连接模型 14
    • 2.11 范式 14
    • 2.11.1 客户端–服务器架构 14
    • 2.11.2 面向服务的架构 15
    • 第3章 低功耗蓝牙的体系结构 19
    • 3.1 控制器 20
    • 3.1.1 物理层 20
    • 3.1.2 直接测试模式 20
    • 3.1.3 链路层 21
    • 3.1.4 主机/控制器接口 22
    • 3.2 主机 22
    • 3.2.1 逻辑链路控制和适配协议 22
    • 3.2.2 安全管理器协议 23
    • 3.2.3 属性协议 23
    • 3.2.4 通用属性规范 24
    • 3.2.5 通用访问规范 25
    • 3.3 应用层 25
    • 3.3.1 特性 26
    • 3.3.2 服务 26
    • 3.3.3 规范 26
    • 3.4 协议栈划分 27
    • 3.4.1 单芯片解决方案 27
    • 3.4.2 双芯片解决方案 28
    • 3.4.3 三芯片解决方案 28
    • 第4章 新的使用模型 30
    • 4.1 存在检测 30
    • 4.2 广播数据 31
    • 4.3 无连接模式 31
    • 4.4 网关 32
    • 第二部分 控 制 器
    • 第5章 物理层 36
    • 5.1 背景 36
    • 5.2 模拟调制 36
    • 5.3 数字调制 38
    • 5.4 频段 39
    • 5.5 调制 40
    • 5.6 射频信道 41
    • 5.7 发射功率 41
    • 5.8 容限 42
    • 5.9 接收机灵敏度 42
    • 5.10 通信距离 42
    • 第6章 直接测试模式 45
    • 6.1 背景 45
    • 6.2 收发机测试 46
    • 6.2.1 测试报文格式 46
    • 6.2.2 发射机测试 47
    • 6.2.3 接收机测试 47
    • 6.3 硬件接口 48
    • 6.3.1 串口 48
    • 6.3.2 命令与事件 48
    • 6.4 使用HCI的直接测试模式 50
    • 第7章 链路层 51
    • 7.1 链路层状态机 51
    • 7.1.1 就绪态 52
    • 7.1.2 广播态 53
    • 7.1.3 扫描态 53
    • 7.1.4 发起态 54
    • 7.1.5 连接态 55
    • 7.1.6 多状态机 55
    • 7.2 报文 57
    • 7.2.1 广播与数据报文 57
    • 7.2.2 白化 57
    • 7.3 报文结构 59
    • 7.3.1 比特序与字节 60
    • 7.3.2 前导 60
    • 7.3.3 接入地址 60
    • 7.3.4 报头 61
    • 7.3.5 长度 61
    • 7.3.6 净荷 63
    • 7.3.7 循环冗余校验 63
    • 7.4 信道 63
    • 7.4.1 跳频 66
    • 7.4.2 自适应跳频 66
    • 7.5 设备发现 68
    • 7.5.1 通用广播 69
    • 7.5.2 定向广播 69
    • 7.5.3 不可连接广播 70
    • 7.5.4 可发现广播 70
    • 7.6 广播 70
    • 7.7 建立连接 71
    • 7.7.1 接入地址 72
    • 7.7.2 CRC初始化 72
    • 7.7.3 发送窗口 72
    • 7.7.4 连接事件 73
    • 7.7.5 信道图 74
    • 7.7.6 睡眠时钟精度 74
    • 7.8 发送数据 74
    • 7.8.1 数据报头 75
    • 7.8.2 逻辑链路标识符 75
    • 7.8.3 序列号 76
    • 7.8.4 确认 76
    • 7.8.5 更多数据 77
    • 7.8.6 使用序列号和更多数据的例子 77
    • 7.9 加密 79
    • 7.9.1 AES 79
    • 7.9.2 加密净荷数据 80
    • 7.9.3 消息完整性校验 81
    • 7.10 管理连接 82
    • 7.10.1 连接参数更新 83
    • 7.10.2 自适应跳频 84
    • 7.10.3 启动加密 85
    • 7.10.4 重启加密 87
    • 7.10.5 版本交换 87
    • 7.10.6 功能交换 89
    • 7.10.7 终止连接 90
    • 7.11 鲁棒性 90
    • 7.11.1 自适应跳频 90
    • 7.11.2 强CRC 92
    • 7.12 为低功耗优化 93
    • 7.12.1 短报文 93
    • 7.12.2 高比特率 94
    • 7.12.3 低开销 95
    • 7.12.4 确认机制 96
    • 7.12.5 单信道连接事件 96
    • 7.12.6 亚速率连接事件 97
    • 7.12.7 离线加密 98
    • 第8章 主机/控制器接口 99
    • 8.1 介绍 99
    • 8.2 物理接口 99
    • 8.2.1 UART 99
    • 8.2.2 3线UART 100
    • 8.2.3 USB 101
    • 8.2.4 SDIO 102
    • 8.3 逻辑接口 102
    • 8.3.1 HCI信道 102
    • 8.3.2 命令数据包 102
    • 8.3.3 事件数据包 103
    • 8.3.4 数据包 104
    • 8.3.5 命令流控 105
    • 8.3.6 数据流控 106
    • 8.4 控制器的配置 106
    • 8.4.1 重置控制器为已知状态 106
    • 8.4.2 读取设备地址 107
    • 8.4.3 设置事件掩码 107
    • 8.4.4 读取缓冲区大小 108
    • 8.4.5 读取控制器支持的功能 109
    • 8.4.6 读取控制器支持的状态 109
    • 8.4.7 随机数 110
    • 8.4.8 加密数据 110
    • 8.4.9 设置随机地址 111
    • 8.4.10 白名单 112
    • 8.5 广播和观察 112
    • 8.5.1 广播 112
    • 8.5.2 被动扫描 114
    • 8.5.3 主动扫描 115
    • 8.6 发起连接 116
    • 8.6.1 与白名单设备发起连接 116
    • 8.6.2 与单一设备发起连接 118
    • 8.6.3 取消连接请求 118
    • 8.7 连接管理 119
    • 8.7.1 更新连接 119
    • 8.7.2 更新信道映射图 120
    • 8.7.3 交换功能列表 121
    • 8.7.4 交换版本信息 121
    • 8.7.5 加密连接 122
    • 8.7.6 重启加密 123
    • 8.7.7 终止连接 125
    • 第三部分 主  机
    • 第9章 逻辑链路控制和适配协议 128
    • 9.1 背景 128
    • 9.2 L2CAP信道 130
    • 9.3 L2CAP数据包结构 130
    • 9.4 低功耗信令信道 131
    • 9.4.1 命令拒绝 132
    • 9.4.2 连接参数更新请求和响应 132
    • 第10章 属性 135
    • 10.1 背景 135
    • 10.1.1 精简协议 136
    • 10.1.2 无所不在的数据 136
    • 10.1.3 数据与状态 137
    • 10.1.4 几种常见的状态 137
    • 10.1.5 状态机 138
    • 10.1.6 服务和规范 139
    • 10.2 属性 142
    • 10.2.1 属性概述 143
    • 10.2.2 属性句柄 143
    • 10.2.3 属性类型 143
    • 10.2.4 属性值 144
    • 10.2.5 数据库、服务器和客户端 145
    • 10.2.6 属性许可 145
    • 10.2.7 接入属性 147
    • 10.2.8 原子操作和事务 148
    • 10.3 分组 149
    • 10.4 服务 150
    • 10.4.1 扩展服务 151
    • 10.4.2 其他服务的重用 153
    • 10.4.3 结合服务 153
    • 10.4.4 首要还是次要 154
    • 10.4.5 即插即用的客户端应用 156
    • 10.4.6 服务声明 157
    • 10.4.7 包含服务 158
    • 10.5 特性 159
    • 10.5.1 特性声明 159
    • 10.5.2 特性数值 161
    • 10.5.3 描述符 161
    • 10.6 属性协议 164
    • 10.6.1 协议消息 165
    • 10.6.2 交换MTU请求 165
    • 10.6.3 查找信息请求 166
    • 10.6.4 按类型值查找请求 167
    • 10.6.5 按类型读取请求 168
    • 10.6.6 读取请求 168
    • 10.6.7 大对象读取请求 168
    • 10.6.8 多重读取请求 169
    • 10.6.9 按组类型读取请求 169
    • 10.6.10 写入请求 169
    • 10.6.11 写入命令 169
    • 10.6.12 签名写入命令 169
    • 10.6.13 准备写入请求与执行写入请求 170
    • 10.6.14 句柄值通知 171
    • 10.6.15 句柄值指示 171
    • 10.6.16 错误响应 171
    • 10.7 通用属性规范 173
    • 10.7.1 发现规程 174
    • 10.7.2 发现服务 174
    • 10.7.3 特性发现 175
    • 10.7.4 客户端发起规程 176
    • 10.7.5 服务器发起规程 178
    • 10.7.6 属性协议数据单元(ATT PDU)到GATT规程的映射 178
    • 第11章 安全 180
    • 11.1 安全概念 180
    • 11.1.1 认证 180
    • 11.1.2 授权 181
    • 11.1.3 完整性 181
    • 11.1.4 机密性 182
    • 11.1.5 隐私 182
    • 11.1.6 加密引擎 182
    • 11.1.7 共享机密 182
    • 11.2 配对和绑定 185
    • 11.2.1 配对 185
    • 11.2.2 配对信息交换 185
    • 11.2.3 认证 186
    • 11.2.4 密钥分配 187
    • 11.2.5 绑定 188
    • 11.3 数据签名 188
    • 第12章 通用访问规范 189
    • 12.1 背景 189
    • 12.1.1 初次发现 190
    • 12.1.2 建立初始连接 191
    • 12.1.3 服务特性 191
    • 12.1.4 长期关系 192
    • 12.1.5 重连 192
    • 12.1.6 私有地址 193
    • 12.2 GAP角色 193
    • 12.3 模式和规程 194
    • 12.3.1 广播模式和观察规程 195
    • 12.3.2 可发现性 195
    • 12.3.3 可连接性 197
    • 12.3.4 绑定 199
    • 12.4 安全模式 200
    • 12.5 广播数据 201
    • 12.5.1 标识 202
    • 12.5.2 服务 202
    • 12.5.3 本地名称 203
    • 12.5.4 发射功率等级 203
    • 12.5.5 从设备连接间隔范围 203
    • 12.5.6 服务请求 203
    • 12.5.7 服务数据 203
    • 12.5.8 制造商指定数据 203
    • 12.6 GAP服务 204
    • 12.6.1 设备名特性 204
    • 12.6.2 外观特性 204
    • 12.6.3 外围设备隐私标识 204
    • 12.6.4 重连地址 205
    • 12.6.5 外围设备首选连接参数 205
    • 第四部分 应  用
    • 第13章 中央设备 208
    • 13.1 背景 208
    • 13.2 发现设备 208
    • 13.3 连接设备 209
    • 13.4 这个设备能做什么 210
    • 13.5 通用客户端 211
    • 13.6 与服务交互 211
    • 13.6.1 可读特性 212
    • 13.6.2 控制点 212
    • 13.6.3 状态机 213
    • 13.6.4 通知和指示 214
    • 13.7 绑定 214
    • 13.8 变更服务 215
    • 13.9 实现规范 216
    • 13.9.1 定义规范 216
    • 13.9.2 查找服务 217
    • 13.9.3 查找特性 217
    • 13.9.4 使用特性 217
    • 13.9.5 规范安全 217
    • 第14章 外围设备 219
    • 14.1 背景 219
    • 14.2 仅广播 219
    • 14.3 可发现 220
    • 14.4 可连接 220
    • 14.5 公开服务 221
    • 14.6 特性 221
    • 14.7 安全事项 222
    • 14.8 为低功耗优化 222
    • 14.8.1 可发现广播 224
    • 14.8.2 绑定 224
    • 14.8.3 可连接广播 224
    • 14.8.4 定向广播 225
    • 14.8.5 已连接 225
    • 14.8.6 保持连接还是断开 226
    • 14.9 优化属性 227
    • 第15章 测试和质量鉴定 229
    • 15.1 启动项目 229
    • 15.2 选择功能 231
    • 15.3 一致性检查 232
    • 15.4 生成测试计划 232
    • 15.5 建立合规文件夹 232
    • 15.6 鉴定测试 233
    • 15.7 鉴定设计 234
    • 15.8 合规声明 234
    • 15.9 产品名录 234
    • 15.10 结合组件 235

    上一篇:React与Redux开发实例精解  下一篇:Python高效开发实战:Django、Tornado、Flask、Twisted

    展开 +

    收起 -

    蓝牙开发相关电子书
    学习笔记
    网友NO.138507

    微信小程序蓝牙连接小票打印机实例代码详解

    1.连接蓝牙 (第一次发表博客) 第一步打开蓝牙并搜索附近打印机设备// startSearch: function() {var that = thiswx.openBluetoothAdapter({success: function(res) {wx.getBluetoothAdapterState({success: function(res) {if (res.available) {if (res.discovering) {wx.stopBluetoothDevicesDiscovery({success: function(res) {console.log(res)}})}that.checkPemission()} else {wx.showModal({title: '提示',content: '本机蓝牙不可用',})}},})},fail: function() {wx.showModal({title: '提示',content: '蓝牙初始化失败,请打开蓝牙',})}})} 2.将搜索到的设备列表绑定点击事件并连接 bindViewTap: function(e) {var that = thiswx.stopBluetoothDevicesDiscovery({success: function(res) {console.log(res)},})that.setData({serviceId: 0,writeCharacter: false,readCharacter: false,notifyCharacter: false})var shebei = e.currentTarget.dataset.titlewx.setStorageSync('shebei', shebei)wx.showLoading({title: '正在连接',})wx.createBLEConnection({deviceId: e.currentTarget.dataset.title,success: function(res) {console.log(res)app.BLEInformation.deviceId = e.currentTarget.dataset.titleconsole.log(e.currentTarget.dataset.title)that.getSeviceId()},fail: function(e) {wx.showModal({title: '提示',content: '连接失败',})console.log(e)wx.hideLoading()},complete: function(e) {console.log(e)}})} 3.连接成功后保存连接状态 getSeviceId: function() {var that = thisvar platform = app.BLEInformation.platformconsole.log(app.BLEInformation.deviceId)wx.getBLEDevice……

    网友NO.887500

    Java Lombok开发用法指南

    1. 前言 在目前众多编程语言中,Java 语言的表现还是抢眼,不论是企业级服务端开发,还是 Andorid 客户端开发,都是作为开发语言的首选,甚至在大数据开发领域,Java 语言也能占有一席之地,如 Hadoop,Spark,Flink 大数据等。而作为已经诞生 24 年的 Java 相比其他语言来说,编写起来略显得冗长和复杂,而为了能极大提升 Java 开发的效率和代码简洁性,一个 Java 库 Lombok 就这样诞生了。 首先我们还是看下 Lombok 官方的描述: Project Lombok is a java library that automatically plugs into your editor and build tools, spicing up your java. Never write another getter or equals method again, with one annotation your class has a fully featured builder, Automate your logging variables, and much more. 从上面的说明里我们可以初步认识一下 Lombok,一个作用于编辑器和构建工具的 Java 库,可以对编写的 Java 代码进行增强,比如说不用再写实体类的 getter 方法,equals 方法而是自动生成,自动生成日志输出变量等等,减少重复模板的代码。 大概知道了 Lombok 框架提供的功能后,接下来我们就真正使用一下 Lombok 提供的注解,看它是如何帮助我们提高书写 Java 代码的简洁性和效率的。 本文主要内容涉及如下: Lombok 插件安装 Lombok 常用注解使用 示例项目:github.com/wrcj12138aa lombok-actions: 环境支持: JDK 8 Sp……

    网友NO.308273

    IDEA中osgi的开发应用指南详解

    前言 最近一直在接触osgi的开发任务,了解到本部门都在使用IDEA作为开发工具,而只有本小组还在使用Eclipse。正好赶上版本发布之后的空闲期,因此想要将osgi插件的开发从Eclipse转至IDEA。搜了不少资料,但是均不够详细,经过几天的仔细摸索,终于成功移植了自己的项目,在此也分享给大家在IDEA上开发osgi,对于IDEA的使用操作过程。 OSGI简介 OSGI的全称是Open Service Gateway Initiative,直译就是开放服务网关。最新的OSGI定义是The Dynamic Module System for Java,即面向java的动态模块化系统。 在传统Web开发中,我们为了进行功能的分离,经常会进行模块划分,比如基础信息模块交由A和B做,接口信息模块交由C和D做。最终,再汇集到一起,组成一个完整的项目。在这整一个流程中,我们做到的只是逻辑上的解耦,最终这些模块还是运行于同一服务器上,共享同一个classpath。这时就会出现一个局限性问题,比如现在接口规范改了,我只想停掉接口信息模块,而基础信息模块仍能正常运行,这显然是无法实现的。而使用OSGI可以完美解决这个问题,OSGI是基于模块(Bundle)驱动的,每个模块都有属于自己的classpath和类加载器,模块之间通过服务注册和发现进行关联,每个模块有着自己独立的生命周期,我们可以动态地对模块进行加载、卸载、更……

    网友NO.867559

    详解mpvue中小程序自定义导航组件开发指南

    这篇笔记主要记录一下基于mpvue的小程序中实现自定义导航的思路及应用。分享出来抛砖引玉,如有谬误或优化空间,欢迎交流。 小程序的配置项 navigationStyle 设置为 custom 之后,导航栏只保留右上角胶囊按钮,颜色、标题文字内容均可以自定义,可以此实现导航栏的个性化需求,实际应用如沉浸式视频播放页等。 小程序7.0.0之后的版本开始支持自定义单个页面的导航栏,将页面的 navigationStyle 设置为 custom 即可。mpvue的配置方式如下: 由于不同操作系统、不同机型的导航栏高度是不同的,所以自定义导航栏核心要解决的问题是不同机型中导航栏高度的兼容问题。 如上图所示,导航栏一共由两部分组成:状态栏和标题栏。状态栏就是用来展示时间、网络状态的那一栏,全面屏(刘海屏幕)的机型中状态栏会比其他屏幕高很多:ios系统带刘海屏的都是44,其他都为20,包括pad。 而安卓机的数值则更多。我们可以通过微信的api wx.getSystemInfo 获取状态栏的高度( statusBarHeight )。而标题栏高度不能通过小程序api获取到,通过同级多个机型的测试数据,我们基本可以按照ios中44px安卓中48px来算。 这样一来就好办了,通过 statusBarHeight 获取到状态栏高度后,再判断当前的系统加上对应的标题栏后,就可以获取到正确的导航栏高度了。 t……

    Copyright 2018-2019 xz577.com 码农之家

    版权责任说明