新闻中心

EEPW首页 > 手机与无线通信 > 设计应用 > SmartPhone 蓝牙遥控系统的设计与实现

SmartPhone 蓝牙遥控系统的设计与实现

作者:时间:2011-12-04来源:网络收藏

3.

3.1 结构

分为 端和PC 端。首先 端与PC 端通过虚拟串行口建立 的通信连接,然后 端通过键盘或触摸屏向PC 端发送文件打开、幻灯片播放、 翻页、关闭、窗口放大、窗口缩小、文件关闭等指令,PC 端在收到指令后调用后台Office Powerpoint 控制程序,对Powerpoint 对应的操作,同时PC 端传回Powerpoint 播放的状 态信息在SmartPhone 端进行显示。

3.2 设备间的数据传输

SmartPhone 端在利用模块与PC 端进行通信前,首先要对PC 端的蓝牙设备进行查 询搜索,来获得设备的名称、地址、所提供的服务等相关信息。在以往的系统中,设备 查询需要调用相关的蓝牙API 函数来遍历取得通信范围内的蓝牙设备信息,并将结果信息 存入系统定义的WSAQUERYSET 数据结构中,然后再通过注册虚拟串口,设备间的蓝 牙串行通信,整个过程复杂并且容易出错,或者有的系统干脆采用手工指定的方式。本系统 则采取一种新的方法,通过读取系统的注册表,来查询相关的蓝牙设备名称、服务以及使用 的虚拟串口号。在Windows Mobile 5.0 平台中, 注册表HKEY_LOCAL_MACHINESOFTWAREMicrosoftBluetoothDevice 下存储了蓝牙设备的设 备名称、16 位字符的ID 号以及设备的CLASS , 而 HKEY_LOCAL_MACHINESOFTWAREMicrosoftBluetoothSerialPorts 下则存储了蓝牙连 接所使用的虚拟串口号,但不包含系统保留的串口标识。在这个键值下系统为每一个匹配的 设备都设定了一个蓝牙串口号,而且可以通过指定New Outgoing Port值设定设备的新虚拟 串口号。

利用这种新的机制就不在需要使用传统的RegisterDevice()方法去注册虚拟串口号 然后使用,而是通过查询或设定注册表进行使用,而不与别的串口相冲突。 通过对以上方法获得设备及虚拟串口号的信息后,再利用这些信息实现 SmartPhone 端 和PC 端的蓝牙通信。通信过程的流程图如图2 所示:

3.3 Powerpoint 控制解决方案

系统采用方便灵活的Microsoft Office 自动化方法将 Office 功能并入自定义解决方案 中。Office 基于 COM,因此必须使用 COM 的编程方式。.NET Framework 中使用COM Interop 集实现与早期 COM 的通信。COM Interop 的作用是在 .NET 代码与COM 对象之 间添加一个“填充程序”。在项目中添加对 COM 服务器的引用时,.NET 使用类型信息生 成运行库可调用包装 (RCW) 的代码。这些托管代码将被编译到单独的Interop 程序集中, 并由 .NET Framework 访问,RCW 充当托管代码与 COM 服务器之间的媒介。

由于 OFFICE COM 服务器能够支持 .NET,它可以提供一个安装并注册到全局程序集缓 存中的主 Interop 程序集 (PIA)。这些程序集都是共享程序集,PIA 被视为在 .NET 项目中 引用早期 COM 服务器的最佳方法。

从类型库创建的 Interop 程序集使用早期绑定与 COM 项目进行通信。为了让绑定细节保持通用状态,除了绑定外,另一个重要问题是对象实例化。如果使用 Interop 程序集, Office 应用程序的 RCW 将在使用 New 运算符时控制对象实例化。RCW 隐含调用相应的 COM 例程来创建该应用程序的新实例供代码使用。

本系统通过引用互操作程序集 Microsoft.Office.Interop.PowerPoint 实现Office 自动化过 程,利用.NET 编写应用程序来实现在PC 端控制Powerpoint 应用程序。PC 端通过蓝牙通信 接收SmartPhone 端发来的指令,利用 Powerpoint 的自动化功能实现文档的打开、关闭、缩 放、播放等控制功能,并且将获得的Powerpoint 的总页数、当前播放页等信息返回给 SmartPhone 端进行显示。理论上来说通过用户界面手动执行的操作几乎都可以通过该解决 方案来执行。主要控制代码如下:



评论


相关推荐

技术专区

关闭