蓝牙--对象交换协议(OBEX)
1.OBEX协议概述
OBEX是IrOBEX的简称,IrOBEX协议是红外数据协会IrDA开发的用于红外数据链路上数据对象交换的会话层协议.OBEX是一种紧凑高效的二进制协议,功能类似于HTTP协议。为了支持不同的平台,OBEX不指定特定的传输数据类型,只定义传输对象(Object).
OBEX在蓝牙系统中被映射到RFCOMM和TCP/IP层之上,其中OBEX over TCP/IP是作为可选项出现的.蓝牙只支持面向连接的OBEX应用.IrDA则同时支持面向连接和无连接的应用.
OBEX协议本身分为两部分:数据对象模型和会话协议.对象模型包括了将要传输的数据对象的各种信息以及数据对象本身.该模型的建立完全基于各种标准的或者用户自定义的可分析的信息头(Headers),类似于Http中的信息头.会话协议则规定了设备间的数据传输过程,OBEX使用基于二进制分组结构的客户机/服务器模式作为该过程的模型.
2.OBEX对象模型
对象模型描述了对象在OBEX协议中如何表示。这个模型必须能够表示出被传输的对象信息。OBEX协议使用了将各个不同的功能数据块按顺序组合成可选头的方法来解决问题.可选头是一个能够描述被传输对象某些性质的实体单元,这些性质包括名字、长度、叙述性文本、或者是被传输对象本身.
2.1 OBEX可选分组头.
OBEX可选头的基本形式为: .其中,HI为无符号单字节整数,用它来确定头包括的内容以及头的组成格式.HV由一个或多个字节按照HI的值指定的格式以及内容组成。根据设备类型以及传输内容特性的不同,头的内容是可选的,可以不用头,用部分头,或者是全部的头。头HI部分的低6位表示头的意思,高2位表示头的编码方式。HV中长度前缀的编码方式在网络中按字节顺序传送,长度包括1字节的HI以及2字节的长度前缀本身(本身).



3. 会话协议
3.1 会话协议概述
OBEX操作采用请求-应答模式.客户端发出请求,服务器应答。在客户端收到请求应答之前,将等待服务端的应答而不发送下一个请求.

请求分组由一字节的操作码、2字节的长度标识以及不定字节长度的分组头或者请求数据组成。应答分组由一字节的应答码、2字节的长度标识以及不定字节的应答数据组成。



3.2 连接操作
3.3 连接断开操作
3.4 推操作
3.5拉操作
3.6 取消(Abort)操作
3.7设置路径操作
蓝牙--对象交换协议(OBEX)的更多相关文章
- 简易远程消息交换协议SRMP
一.SRMP目标定位 经过十多年实战经验积累以及多方共同讨论,新生命团队(https://github.com/newlifex)制订了一种简单而又具有较好扩展性的RPC(Remote Procedu ...
- 自研DCI网络路由交换协议DCIP-白牌交换机时代的企业网络
一转眼从听华为3Com的路由交换课程到如今已经13年有余了,依稀记得第一节课的时候我带着老婆去听的课(老婆是日语系的.那时还是女朋友,并不懂网络,仅仅是跟着我去上课的).抢了个头排,讲师宋岩老师提问了 ...
- 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 微博 加好友 发纸条 写 ...
- 社区观点 | 理解比原链MOV链上交换协议
去中心化交换协议的发展 从Bitshare,Stellar到以太坊上的Etherdelta,Bancor,0x协议,去中心化交换协议也经过了好几代发展和很多模式的探索,每一代都通过前面的协议的痛点来进 ...
- C++ 运算符重载时,将运算符两边对象交换问题.
在C++进行运算符重载时, 一般来讲,运算符两边的对象的顺序是不能交换的. 比如下面的例子: #include <iostream> using namespace std; class ...
- 蓝牙的AVCTP协议笔记
1.概述 AVCTP协议描述了蓝牙设备间Audio/Video的控制信号交换的格式和机制,它是一个总体的协议,具体的控制信息由其指定的协议(如AVRCP)实现,AVCTP本身只指定控制comm ...
- 蓝牙的AVDTP协议笔记
1.概述 AVDTP(AUDIO/VIDEO DISTRIBUTION TRANSPORT PROTOCOL)是用来描述音频/视频在蓝牙设备间的传输的协议,是A2DP协议的基础协议,其在协议栈中 ...
- 蓝牙的L2CAP协议
1.概述 L2CAP能向上层提供面向连接的或者无连接的数据服务,拥有multiplexing capability and segmentation and reassembly operat ...
随机推荐
- HDU4511 小明系列故事——女友的考验(AC自动机 + DP)
题目大概说有平面有n个点,从1点出发走到n点,每一步只能走到序号比当前更大的点且走的序列不能包含给定的m个序列中的任何一个,问1走到n的最短路. 用m个序列建个AC自动机,后缀包含整个序列的结点标记一 ...
- CF# 334 Moodular Arithmetic
B. Moodular Arithmetic time limit per test 1 second memory limit per test 256 megabytes input standa ...
- H
很爽的一局,打了70分钟,还刷新了我的最高击杀记录.打完出来一看居然是H局,第一次在H局里打出不错的表现诶.好像找人说一说,可惜并没有谁听,以前的朋友也不在了,还是算了,自己心里慢慢发霉去吧. 这局末 ...
- BZOJ2082 : [Poi2010]Divine divisor
将所有数分解质因数,那么第一问就是求指数的最大值,第二问就是$2^{指数最大的质数个数}-1$. 首先将$10^6$以内的质因数全部找到,那么剩下部分的因子$>10^6$,且只有3种情况: 1. ...
- topcoder SRM 610 DIV2 DivideByZero
题目的意思是给你一组数,然后不断的进行除法(注意是大数除以小数),然后将得到的结果加入这组数种然后继续进行除法, 直到没有新添加的数为止 此题按照提议模拟即可 注意要保持元素的不同 int Count ...
- ACM: hdu 2647 Reward -拓扑排序
hdu 2647 Reward Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Des ...
- 【BZOJ1503】 [NOI2004]郁闷的出纳员 splay
splay模板题,都快把我做忧郁了. 由于自己调两个坑点. 1.删除时及时updata 2.Kth 考虑k满足该点的条件即r->ch[1]->size+1<=k && ...
- 深入浅出 - Android系统移植与平台开发(九)- JNI介绍
作者:唐老师,华清远见嵌入式学院讲师. JNI是在学习Android HAL时必须要面临一个知识点,如果你不了解它的机制,不了解它的使用方式,你会被本地代码绕的晕头转向,JNI作为一个中间语言的翻译官 ...
- C++ string 类的 find 方法实例详解
1.C++ 中 string 类的 find 方法列表 size_type std::basic_string::find(const basic_string &__str, size_ty ...
- Controller 通信 发布接收广播
在Angularjs开发一些经验总结随笔中提到我们需要按照业务却分angular controller,避免过大无所不能的上帝controller,我们把controller分离开了,但是有时候我们需 ...