Symbian 蓝牙编程
2010-08-24 05:49:00 来源:WEB开发网当通过蓝牙建立通讯连接时,蓝牙设备扮演两种角色:启动器和接收器。接收器设置完毕后等待启动器发起连接。一旦建立了连接,接收与发送端就是等价的,任何一端都可以发送并接收数据,任何一端也可以中断该连接。这个Api支持任何一种角色编程。
蓝牙套接字Api支持蓝牙协议集内的L2CAP层和RFCOMM层通讯。这个Api以Sockets客户端api为基础。提供了一个标准的Api,它允许某个客户端建立与远程设备的连接,或者让该远程设备建立与其本身的连接。然后,在中断连接前发送并接收数据。蓝牙套接字Api针对蓝牙环境也添加了一些适当的类型和常量。
这个Api有5个关键概念:套接字地址、远程设备查询、RFCOMM命令和选项、L2CAP命令,以及HCI命令。
1. 套接字地址
每个蓝牙设备都有一个唯一的48位的地址。它被封装在TBTDevAddr中。
Sockets Api 提供了一个普通套接字地址TSockAddr。蓝牙套接字地址TBTSockAddr继承自普通套接字地址TSockAddr。蓝牙套接字地址TBTSockAddr可以添加一个蓝牙设备地址字段TBTDevAddr 。
Note:
蓝牙套接字地址(TBTSockAddr)可以添加一个蓝牙设备地址(TBTDevAddr)。
蓝牙套接字地址(TBTSockAddr)继承自普通套接字地址(TSockAddr)
蓝牙设备地址(TBTDevAddr)
蓝牙套接字地址(TBTSockAddr)
普通套接字地址(TSockAddr)
2. 远程设备查询
A client can query for available remote devices through the sockets class RHostResolver. A parameter of type TInquirySockAddr is supplied for such queries: principally, this allows you to limit discovery to a particular classes of device.
一个客户端可以通过套接字类的RHostResolver搜寻可用的远程设备。
远程设备搜寻套接字地址TInquirySockAddr
3. 命令和选项
你可以传送命令到 RFCOMM 套接字通过调用 RSocket::Ioctl() 。套接字上的选项可以通过RSocket::GetOpt() 和 RSocket::SetOpt() 来实现 。
你可以传送命令到 L2CAP 套接字和主控制器接口(HCI)层通过调用 RSocket::Ioctl()。
蓝牙服务搜寻数据库RSdpDatabase
蓝牙服务搜寻数据库模块允许某个本地服务将其属性加入到一个本地的蓝牙服务数据库中。这样就能让各种远程蓝牙设备的相关服务搜寻到这个服务。
更多精彩
赞助商链接