蓝牙的OBEX协议
1.概述
2.Object Model
OBEX定义了Object model来进行数据的交换,形式为Request-Response。OBEX定义了Headers来描述数据,结构如下:
<HI, the header ID> 1byte
<HV, the header value> n byte
由HI和HV两部分组成。HI的最高两位表示这个Header的编码形式,低6位表示header的类型,HV表示数据实体。
高两位的编码如下:
0x00和0x40两种后面会跟上2字节的length(length prefixed),表示的是整个Header的长度,包括HI和HV。
低6位的定义类型如下:
提一下End-Of-Body,用来表示数据传输的最后一个data chunk。
3.Request和Response
在OBEX的规定中,Client和Server通过request-response的形式来进行对话,交换的数据包含在这两种包中,分别定义如下:
(1)Request format
参数opcode表示该request的类型,length表示整个request的字节数,最后跟着的是第2节中定义的各种Headers。
Opcode有如下几种形式:
opcode的最高位称为Final bit,用来表示某一个request的最后一个packrt,这个在下面的例子中说明。
(2)Response format
参数response code表示该response的类型,length表示整个request的字节数,最后跟着的是第2节中定义的各种Headers。
response code的最高位称为Final bit,用来表示可以继续传输数据,这个在下面的例子中说明,其有如下几种:
4.几种常见的操作及其实例
(1)Connect
一个Connect的实例:
可以看出,rquest中带了两个Header,分别是Count和Length。
(2)Disconnect
(3)Put
一个Put的实例:
在这个例子中,可以看出OpCode和Response code的final bit的作用。在client端,用Put命令发送数据时,如果不是最后一个packet,Final bit都是为0,最后一个packet时时置为1;在server端, 当接受到Final bit为0的client端的request时,response的final bit总是置为1,表示可以继续传输,当收到最后一个request时,发现client发过来的request置为1了,这时候response的final bit变为0。
5,总结
OBEX协议在蓝牙中用于对象交换,来源于红外的OBEX协议。OBEX协议规定Client与Server之间以Request-Response的形式进行对话,有Request和response两种数据形式。常用的OBEX的操作位Connect,disconnect,Put,
Get等,操作十分简单。
蓝牙的OBEX协议的更多相关文章
- 蓝牙--对象交换协议(OBEX)
1.OBEX协议概述 OBEX是IrOBEX的简称,IrOBEX协议是红外数据协会IrDA开发的用于红外数据链路上数据对象交换的会话层协议.OBEX是一种紧凑高效的二进制协议,功能类似于HTTP协议. ...
- ZT 蓝牙的AVCTP协议笔记
蓝牙的AVCTP协议笔记 (2013-07-31 08:52:41) 转载▼ 标签: bluetooth avctp command response 分类: Bluetooth 1.概述 A ...
- ZT 蓝牙的AVDTP协议笔记
我的电子杂烩饭 http://blog.sina.com.cn/wuchuchu2012 [订阅][手机订阅] 首页 博文目录 图片 关于我 个人资料 Tifnan Qing 微博 加好友 发纸条 写 ...
- 蓝牙的AVCTP协议笔记
1.概述 AVCTP协议描述了蓝牙设备间Audio/Video的控制信号交换的格式和机制,它是一个总体的协议,具体的控制信息由其指定的协议(如AVRCP)实现,AVCTP本身只指定控制comm ...
- 蓝牙的AVDTP协议笔记
1.概述 AVDTP(AUDIO/VIDEO DISTRIBUTION TRANSPORT PROTOCOL)是用来描述音频/视频在蓝牙设备间的传输的协议,是A2DP协议的基础协议,其在协议栈中 ...
- 蓝牙—服务发现协议(SDP)
服务搜索协议(SDP)提供了应用发现可用服务以及确定可用服务特点的方法.SDP发现协议提供下面的能力 <1>为客户提供搜索所需要服务的能力. <2>允许基于服务类型搜索服务 & ...
- 蓝牙的L2CAP协议
1.概述 L2CAP能向上层提供面向连接的或者无连接的数据服务,拥有multiplexing capability and segmentation and reassembly operat ...
- 蓝牙的SDP协议总结
1.概念 SDP协议让客户机的应用程序发现存在的服务器应用程序提供的服务以及这些服务的属性.SDP只提供发现服务的机制,不提供使用这些服务的方法.每个蓝牙设备都需要一个SDP Service, ...
- iOS蓝牙4.0协议简单介绍
iOS开发蓝牙4.0的框架是CoreBluetooth,本文主要介绍CoreBluetooth的使用,关于本文中的代码片段大多来自github上的一个demo,地址是myz1104/Bluetooth ...
随机推荐
- Mac Android签名生成keystore
1.打开终端 2.去到java安装的根目录,即输入 cd /Library/Java/Home/bin/ 3.当前用户没有最高权限,在Library文件夹下不能生成任何文件,可以到当前用户目录下生成文 ...
- ubuntu下android开发环境安装
一 安装jdk 网址:http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html 新建一个文 ...
- Android广播机制概述
1.Android广播机制概述 Android广播分为两个方面:广播发送者和广播接收者,通常情况下,BroadcastReceiver指的就是广播接收者(广播接收器).广播作为Android组件间的通 ...
- js:数据结构笔记14--高级算法
动态规划: 递归是从顶部开始将问题分解,通过解决所有分解出小问题来解决整体问题: 动态规划从底部开始解决问题,将所有小问题解决,然后合并掉一个整体解决方案: function dynFib(n) { ...
- sprint1的个人总结及《构建之法》8、9、10章读后感
对sprint1的总结: 我们这次的sprint1做的挺差的,大家原来说好的分工都没有完成,也许是大家这段时间的大作业花了更多的时间,所以对这次团队任务的进度是拖慢了很多,但是团队已经认清了现阶段的问 ...
- KVM切换器
所谓KVM,就是Keyboard.Video.Mouse的缩写,正式的名称为多计算机切换器.简单的说,就是一组键盘.显示器和鼠标,控制2台.4 台.8台.16台甚至到4096台以上的计算机主机. KV ...
- Gap
Gap Time Limit: 20000/10000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submi ...
- BZOJ3448 : [Usaco2014 Feb]Auto-complete
RE了几十发,实在没办法了…只好向管理员要数据,然后发现数据规模与题目描述不符… 建立Trie并求出DFS序,同时根据DFS序确定字典序 然后每次询问相当于询问子树第k小,用主席树维护,注意压缩内存 ...
- 使用CSS修改HTML5 input placeholder颜色
HTML <input type="text" placeholder="Value" /> 有三种实现方式:伪元素(pseudo-elements ...
- TYVJ P1016 装箱问题 Label:01背包 DP
做题记录:2016-08-15 23:07:04 背景 太原成成中学第2次模拟赛 第三道 描述 有一个箱子容量为v(正整数,o≤v≤20000),同时有n个物品(o≤n≤30),每个物品有一个体积 ( ...