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)的更多相关文章

  1. 简易远程消息交换协议SRMP

    一.SRMP目标定位 经过十多年实战经验积累以及多方共同讨论,新生命团队(https://github.com/newlifex)制订了一种简单而又具有较好扩展性的RPC(Remote Procedu ...

  2. 自研DCI网络路由交换协议DCIP-白牌交换机时代的企业网络

    一转眼从听华为3Com的路由交换课程到如今已经13年有余了,依稀记得第一节课的时候我带着老婆去听的课(老婆是日语系的.那时还是女朋友,并不懂网络,仅仅是跟着我去上课的).抢了个头排,讲师宋岩老师提问了 ...

  3. ZT 蓝牙的AVCTP协议笔记

    蓝牙的AVCTP协议笔记 (2013-07-31 08:52:41) 转载▼ 标签: bluetooth avctp command response 分类: Bluetooth 1.概述     A ...

  4. ZT 蓝牙的AVDTP协议笔记

    我的电子杂烩饭 http://blog.sina.com.cn/wuchuchu2012 [订阅][手机订阅] 首页 博文目录 图片 关于我 个人资料 Tifnan Qing 微博 加好友 发纸条 写 ...

  5. 社区观点 | 理解比原链MOV链上交换协议

    去中心化交换协议的发展 从Bitshare,Stellar到以太坊上的Etherdelta,Bancor,0x协议,去中心化交换协议也经过了好几代发展和很多模式的探索,每一代都通过前面的协议的痛点来进 ...

  6. C++ 运算符重载时,将运算符两边对象交换问题.

    在C++进行运算符重载时, 一般来讲,运算符两边的对象的顺序是不能交换的. 比如下面的例子: #include <iostream> using namespace std; class ...

  7. 蓝牙的AVCTP协议笔记

    1.概述     AVCTP协议描述了蓝牙设备间Audio/Video的控制信号交换的格式和机制,它是一个总体的协议,具体的控制信息由其指定的协议(如AVRCP)实现,AVCTP本身只指定控制comm ...

  8. 蓝牙的AVDTP协议笔记

    1.概述    AVDTP(AUDIO/VIDEO DISTRIBUTION TRANSPORT PROTOCOL)是用来描述音频/视频在蓝牙设备间的传输的协议,是A2DP协议的基础协议,其在协议栈中 ...

  9. 蓝牙的L2CAP协议

    1.概述     L2CAP能向上层提供面向连接的或者无连接的数据服务,拥有multiplexing capability and segmentation and reassembly operat ...

随机推荐

  1. WordPress ”无法发送电子邮件,可能原因:您的主机禁用了mail()函数“的解决办法

    WordPress网站中出现 "无法发送电子邮件,可能原因:您的主机禁用了mail()函数"的情况一般都是因为所在主机环境不支持在线邮件收发功能导致,如果不支持的话,那么像类似 N ...

  2. React的第一步

    首先了解React中所牵扯到的几个重要的概念 什么是React? 是Facebook的开发团队开发出来的一个用于构建用户界面个js库,最近才开源出来公布于世,它的初衷是用于创建“独立的视图组件”,一个 ...

  3. mysql case then使用

    表的创建CREATE TABLE `lee` (`id` int(10) NOT NULL AUTO_INCREMENT, `name` char(20) DEFAULT NULL, `birthda ...

  4. webpack: require.ensure与require AMD的区别

    http://blog.csdn.net/zhbhun/article/details/46826129

  5. Codeforces Round #253 (Div. 2) B - Kolya and Tandem Repeat

    本题要考虑字符串本身就存在tandem, 如测试用例 aaaaaaaaabbb 3 输出结果应该是8而不是6,因为字符串本身的tanderm时最长的 故要考虑字符串本身的最大的tanderm和添加k个 ...

  6. AFNetworking 2.0 出现Use of undeclared identifier AFURLSessionManager错误

    当向下面使用时会出现错误 #import "AFNetworking.h" #import "AFURLSessionManager.h" AFURLSessi ...

  7. 洛谷 P1305 新二叉树 Label:字符串的输出总是有惊喜

    题目描述 输入一串完全二叉树,用遍历前序打出. 输入输出格式 输入格式: 第一行为二叉树的节点数n. 后面n行,每一个字母为节点,后两个字母分别为其左右儿子. 空节点用*表示 输出格式: 前序排列的完 ...

  8. NOIP 2005 等价表达式 (TYVJ P1060)

    做题记录: 2016-08-10 23:35:09 背景 NOIP2005 提高组 第四道 描述 明明进了中学之后,学到了代数表达式.有一天,他碰到一个很麻烦的选择题.这个题目的题干中首先给出了一个代 ...

  9. NOI 题库 1792

    1792  迷宫 描述 一天Extense在森林里探险的时候不小心走入了一个迷宫,迷宫可以看成是由n * n的格点组成,每个格点只有2种状态,.和#,前者表示可以通行后者表示不能通行.同时当Exten ...

  10. insert into select 与select into from -- sql 批量插入

    参考资料:http://www.w3school.com.cn/sql/sql_union.asp   UNION:操作符用于合并两个或多个select语句的结果集.                 ...