首 页 | 新 闻 | Symbian | Android| Windows Mobile | J2ME | 下载中心 | 游戏策划招聘与求职 | 购书指南 | 视频教程
您现在的位置: 开发视界 >> Symbian >> Symbian开发 >> 正文
S60平台:Bluetooth API开发伙伴指南——常用蓝牙数据类型
作者:姜者译    文章来源:诺基亚    更新时间:2007-3-6 22:58:33

此文档为开发视界翻译转载者请注明出处(开发视界 www.sf.org.cn)否则追究法律责任
2、常用蓝牙数据类型
蓝牙在数据传输中定义了一系列标准的数据类型、结构和容器。
关于蓝牙协议如何工作可以参考网站www.bluetooth.com.完整的蓝牙说明书可以从http://www.bluetooth.org/spec/上下载。
蓝牙进行数据传输协议中使用的大部分数据和容器,设计的时候都是用尽量少的信息传递尽量多的信息。因为这个要求的限制,我们可以看到很多陌生的数据类型和容器类型。
本节介绍主要的数据类型和机构,以及Symbian操作系统提供的蓝牙应用开发接口。所有的这些应用程序都在S60的SDK的以下头文件中定义:
 􀂃 bt_sock.h
 􀂃 btdevice.h
 􀂃 btextnotifiers.h
 􀂃 btsdp.h
 􀂃 bttypes.h
更多关于上述文件的定义信息,请阅读头文件内容。
(1)蓝牙设备地址
一个远程的蓝牙设备通过一个48位的地址被确认,这个地址在Symbian的开发接口类TBTDevAddr中可以体现。这个类定义在bttypes.h头文件中。
(2)通用身份识别(UUID)
通用身份识别(UUID)是通过SDP和说明来使用的。说明调用很多不同的UUID。所有的UUID都通过TUUID处理,其可以处理全长度、128位的UUID或者短的。TUUID类在头文件bttypes.h中定义。
(3)服务记录
一个蓝牙服务通过UUID识别,每一个服务都通过蓝牙服务记录来表示,服务记录包括UUID和一系列服务所提供的信息的属性。在Symbian OS的开发接口中并没有生命服务记录。相反,开发接口只是提供了蓝牙SDP数据库,实现服务记录的应用,同时提供一些列类,通过应用程序实现搜索可用服务以及服务的相关属性的功能。
(4)服务类和概况
服务类通过UUID来表示!这些类用于识别设备所提供的服务。另外,说明书可以从http://www.bluetooth.rog下载。每个服务类中还提供了服务的属性。
(5)服务记录语句
所有的服务记录都存储在SDP数据库中。SDP数据库通过一个32位的数据区分服务记录,或者服务记录语句。一个服务记录语句是通过TsdpServRecordHandle数据类型来表示的,该文件在btsdp.h头文件中定义。
(6)服务属性ID
每个服务都包含一组属性,这些属性都是通过不同的ID区分的,这个ID值是通过数据类型TsdpAttributeID 来表示的。这个数据类型不是一个类,实际上是一个16位的整数,该数据类型在头文件btsdp.h中定义。Symbian SDP数据库使用服务记录语句和ID属性区分不同的服务。该内容将在第四节“服务搜索”中讲述。
(7)SDP数据库
每个蓝牙设备都有一个本地的数据库,用来存储可以提供的服务。数据库是通过SymbianOS开发接口中的RSdpDatabase类表示的。这个类在头文件btsdp.h中定义。关于使用该类的更多信息,参考4.1。
(8)数据元素
表1说明了蓝牙的数据元素类型在Symbian操作系统中是如何表示的。他们直接的父类或者基类、头文件的定义。表格中列举的所有的数据类型都在头文件btsdp.h中定义。
Symbian系统的开发接口所有数据元素类都是从基类CSdpAttrValue衍生的。除了CSdpAttrValueDES和CSdpAttrValueDEA类,其余的类都是CSdpAttrValue基类直接衍生的。

蓝牙数据元素类型

Symbian 系统表示方式

Nil

CSdpAttrValueNIL

Unsigned Integer

CsdpAttrValueUInt

Signed Twos-Complement Integer

CsdpAttrValueInt

UUID (Universally Unique Identifier)

CSdpAttrValueUUID

Text String

CsdpAttrValueString

Boolean

CsdpAttrValueBoolean

Data Element Sequence (list)

CSdpAttrValueDES

Data Element Alternative (list)

CSdpAttrValueDEA

URL

CSdpAttrValueURL

表1:Symbian操作系统中的蓝牙数据类型
数据类型在头文件btsdp.h中定义。
(9) CSdpAttrValue数据类型值
列表中没有列举的所有数据类型都可以直接使用。所有数据类型都有相同的API,对CSdpAttrValueInt的描述如下:
l        NewIntL-该结构接受任何未定义的值,作为数据类型的缓冲。
l        Tupe-该函数返回一个值,这个值代表存储在类中的数据的类型。
l        DataSize-以位为单位返回数据类型。
l        Int-自身访问数据的值。
l        DoesIntFit-如果类所表示的数据类型符合某一个整数,则返回真。
l        Des-将类处理过的数据返回给一个指针。
(10)服务搜索方式
Symbian系统的开发接口有自己的服务搜索形式。CSdpSearchPattern类定义在btsdp.h头文件中,该类在操作系统中作为一个搜索形式的对象来使用的。
对CSdpSearchPattern的学习,该类提供了创建TUUID的所有接口。这些接口用来在有效的范围内搜索服务。
(11)属性的搜索方法
与服务搜索的形式相似,Symbian系统开发接口也提供了一个类,用来创建一系列属性标志。CSdpAttrIDMatchList用来处理向远程SDP数据库发送询问属性信息的请求。他的公共接口与前面提到的服务搜索开发接口非常类似。
(12)属性范围
需要提到的一个CSdpSearchPattern和CSdpAttrIDMatchList的区别是后者支持TattrTange结构。该结构允许客户应用程序指定其所关心的属性值的范围。该结构在btsdp.h头文件中定义的。

相关文章:
cpp命令
蓝牙API指南
SDP的核心概念
Symbian中左右软键的处理
S60平台:Bluetooth API开发伙伴指南——搜索和发布
S60平台:Bluetooth API开发伙伴指南——服务搜索
S60平台:Bluetooth API开发伙伴指南——设备搜索
S60平台:Bluetooth API开发伙伴指南——蓝牙开发接口V2的结构
 

站点地图 | 加入收藏 | 联系站长 | 广告服务 |
QQ:280529124  Tel:0592-8271361 辽ICP备05021703号