Windows Mobile上的蓝牙点对点通信

    实验室做短距离通信,蓝牙是其中主要技术之一。研究生入学复试的时候,大老板跟我们说,蓝牙的起源和一位弹钢琴的人有关,因为蓝牙用到了跳频,这个和手指在各个琴键之间跳动的现象有一定的联系。各学科之间的碰撞,会出现一些奇妙的火花。

    在Windows Mobile平台上,如何来实现蓝牙通信呢?有好多人已经做过这方面的工作,比如在winbile论坛的“使用C#来开发.NET CF 蓝牙通信模块”,codeproject上的“Bluetooth Connection in Windows Mobile 5.0 using InThehand - C#”和“Bluetooth Simulation in C# with Serial Ports”等等。

    其实,安装了windows mobile 6.0 Professional SDK之后,自带的sample中就有蓝牙通信的例子,包括Bluetooth Device DiscoveryChatting over BluetoothBluetooth Game。前面两个是C++写的,第三个是用C#来写的。Bluetooth Device Discovery是采用“Winsock 2 API”来实现蓝牙设备的发现。Chatting over Bluetooth是在两个蓝牙设备之间建立点对点的通信。Bluetooth Game是使用蓝牙技术,在两台设备之间建立连接,然后进行游戏。手头正好有两台bluetooth的设备,一台是WM5系统,一台是WM6的,所以决定试试Chatting over Bluetooth

    打开Chatting over Bluetooth工程,发现这是一个基于对话框的MFC,对蓝牙的操作主要是在“BthUtils.cpp”中完成的,包括发现设备、建立连接和发送数据等等,其主要的函数如下:

Code

 

    在程序启动后,首先搜索附近的蓝牙设备,搜索过程完成以后,将其设备的名字和蓝牙地址显示在下拉列表中,然后就可以进行双向的消息发送和接收了。程序运行界面如下图1所示:

1WM5WM6上的程序运行界面

    需要注意的是,在设置蓝牙的时候,如果没有将“对其他设备可见”选项打上勾,即只是将蓝牙打开,如下图2所示:

2:蓝牙处于打开状态

    可能无法正常通信,应用程序会提示无法发送消息。选中“对其他设备可见”之后,就能够正常通信了,如下图3所示:

3:蓝牙处于可见状态

   

参考链接:

使用C#来开发.NET CF 蓝牙通信模块

Bluetooth Connection in Windows Mobile 5.0 using InThehand - C#

Bluetooth Simulation in C# with Serial Ports

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
posted on 2009-02-05 16:08  施炯  阅读(4185)  评论(18编辑  收藏  举报