蓝牙--对象交换协议(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 ...
随机推荐
- Codeforces 607B Zuma(区间DP)
题目大概说,有n个颜色的宝石,可以消除是回文串的连续颜色序列,问最少要几下才能全部消除. 自然想到dp[i][j]表示序列i...j全部消除的最少操作数 有几种消除的方式都能通过枚举k(i<=k ...
- sql 、linq、lambda 总结
LINQ的书写格式如下: from 临时变量 in 集合对象或数据库对象 where 条件表达式 [order by条件] select 临时变量中被查询的值 [group by 条件] Lambda ...
- jquery上传文件控件Uploadify
基于jquery的文件上传控件,支持ajax无刷新上传,多个文件同时上传,上传进行进度显示,删除已上传文件. 要求使用jquery1.4或以上版本,flash player 9.0.24以上. 有两个 ...
- 如何清除swap里的文件
vi打开一个文件的时候突然断网,再次连接上去vi打开的时候提示在swap里面已经存在一个.要删除这个文件怎么办呢? 如下: 关了swapoff -a后 再ls -al查看 把文件所在目录里*.swp结 ...
- Air Raid[HDU1151]
Air RaidTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submis ...
- BZOJ1946 : [Ceoi2006]ANTENNA
首先通过随机增量法求出最小覆盖圆,作为答案的上界. 然后二分答案,检验的时候枚举每个点作为原点,求出其他每个点被包括在圆内的角度区间,然后扫描线即可. 时间复杂度$O(Tn^2\log n)$. #i ...
- Activiti工作流学习(二)流程实例、执行对象、任务
一.前言 前面说明了基本的流程部署.定义,启动流程实例等基本操作,下面我们继续来学习流程实例.执行对象.任务. 二.流程实例.执行对象说明 整个Activiti的生命周期经过了如下的几个步骤: 1.流 ...
- 栈式自动编码器(Stacked AutoEncoder)
起源:自动编码器 单自动编码器,充其量也就是个强化补丁版PCA,只用一次好不过瘾. 于是Bengio等人在2007年的 Greedy Layer-Wise Training of Deep Netw ...
- odeforces Beta Round #77 (Div. 2 Only)
A. Football time limit per test 2 seconds memory limit per test 256 megabytes input standard input o ...
- Codeforces Round #210 (Div. 2) A. Levko and Table
让对角线的元素为k就行 #include <iostream> using namespace std; int main() { int n,k; cin >> n > ...