Windows Mobile模拟器蓝牙连接实现指南

在Windows Mobile开发过程中,蓝牙功能测试是一个常见的需求。但是,Windows Mobile模拟器默认并不支持蓝牙连接。本文将介绍如何通过一系列步骤实现模拟器的蓝牙连接功能。

诺基亚(Nokia)曾经发布了适用于Windows XP的S60 SDK蓝牙驱动程序。这启发了开发者们,既然诺基亚能够实现,那么Windows Mobile模拟器也应该能够实现蓝牙连接。经过深入研究,发现Windows Mobile镜像中已经包含了完整的微软蓝牙堆栈实现,唯一缺少的是蓝牙硬件。因此,开发者需要开发一个蓝牙HCI传输驱动程序,将HCI/ACL请求和响应传输到连接到桌面的蓝牙USB设备。但是,这个过程需要解决几个问题,包括如何访问蓝牙设备的HCI级别,以及如何连接设备模拟器和桌面。

需求

要实现蓝牙连接,必须安装以下软件:

  • Windows XP或Windows Vista 32位操作系统,包含最新的服务包。
  • Microsoft Visual Studio 2005或2008,包含最新的服务包。Visual Studio安装必须包括Smart Device Programmability特性。
  • Windows Mobile5.0 Pocket PC SDK、Windows Mobile 5.0 Smartphone SDK、Windows Mobile 6 Professional SDK或Windows Mobile 6 Standard SDK模拟器镜像。
  • 推荐使用Microsoft Device Emulator 3.0版本。
  • Microsoft Remote Tools Framework 1.00。
  • 一个可用的蓝牙USB适配器。

架构概览

项目由以下组件构成:

  • 设备端:蓝牙HCI传输驱动程序、串口驱动程序(用于抽象传输驱动程序的通信方式)、Microsoft Remote Tools Framework远程代理。
  • 桌面端:Microsoft Remote Tools Framework桌面插件、FreeBT USB驱动程序运行时、FreeBT USB驱动程序、连接的蓝牙USB设备。

蓝牙USB驱动程序安装

打开Windows设备管理器,定位到要作为FreeBT USB设备使用的蓝牙设备。右键点击并选择“更新驱动程序...”,选择“不,暂时不”并点击“下一步>”,选择“从列表或指定位置安装”,点击“下一步>”,选择“不要搜索。要自己选择要安装的驱动程序”,点击“下一步>”,选择设备驱动程序并点击“浏览...”,在定位文件对话框中,浏览到fbtusb.inf文件并点击“下一步>”,如果出现“硬件安装警告”,则点击“仍然继续”。安装完成后,点击“完成”。设备管理器现在应该在USB控制器列表中显示“FreeBT USB驱动程序”。

安装

安装Visual Studio 2005或2008,并包含最新的服务包。Visual Studio安装应包括Smart Device Programmability特性。安装Microsoft Device Emulator,如果尚未安装,请更新到Microsoft Device Emulator 3.0。安装所需的模拟器镜像。必须有一个USB蓝牙适配器,并将其插入可用的USB端口。按照蓝牙USB驱动程序安装部分的描述安装FreeBT USB驱动程序。安装Microsoft Remote Tools Framework 1.00。

开始使用

按照蓝牙USB驱动程序安装部分的描述安装FreeBT USB驱动程序。按照安装部分的描述安装所有需求。启动Remote Tools Framework插件BthEmulManager.cetool,从"RTFx Plugin"文件夹中选择一个模拟器镜像。等待模拟器连接。选择"Bluetooth for Microsoft Device Emulator"节点。如果蓝牙设备成功连接,那么蓝牙设备信息(地址、制造商、HCI版本、LMP版本)将显示出来。现在模拟器中的蓝牙应该已经可以正常工作了。如果出现错误代码和描述,则显示错误。

故障排除

Q: 已经安装了FreeBT USB驱动程序,但是在部署模拟器后蓝牙仍然无法工作。 A: 如果还没有安装Microsoft Remote Tools Framework 1.00,请安装它。启动Remote Tools Framework插件BthEmulManager.cetool,从"RTFx Plugin"文件夹中启动。

Q: 尝试连接Pocket PC 2003 SE模拟器,但总是收到错误:"设备Pocket PC 2003 SE VGA模拟器的CPU类型为ARMV4,操作系统版本为4.21。" A: Pocket PC 2003和Smartphone 2003目前还不支持。

Q: README中提到的Windows设备管理器是什么? A: Win2K&XP: 开始 -> 设置 -> 控制面板 -> 系统 -> 硬件选项卡 -> 设备管理器 Vista: 开始 -> 设置 -> 控制面板 -> 硬件和声音 -> 设备管理器

Q: 第一次启动BthEmulManager.cetool插件,但是没有任何反应。模拟器中没有蓝牙。 A: 尝试重新启动之前选择的模拟器的插件。同时在模拟器上,转到设置 -> 连接 -> 蓝牙 -> 模式标签页,打开蓝牙。

可能会在使用FreeBT USB驱动程序时遇到问题。该驱动程序仍然(并且可能会保持在这个阶段)处于alpha版本。有报告称它存在一些问题,包括:

  • 无缘无故停止工作。
  • 在写/读操作中可能会丢失数据包。当发送大量数据包非常快时,问题就开始了。最有可能的问题是使用HCI缓冲区不正确(读取缓冲区大小命令,完成的数据包数量事件)。
  • 与某些芯片组(如CSR)不稳定。
如果遇到这样的问题并且有Windows驱动程序开发经验,请尝试改进驱动程序并分享结果。

如果驱动程序启动一段时间后出现问题,请打开设备管理器,从USB设备列表中选择有问题的FreeBT USB驱动程序,右键点击并选择弹出菜单中的"禁用"。之后,再次右键点击并选择弹出菜单中的"启用"。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485