实验室做短距离通信,蓝牙是其中主要技术之一。研究生入学复试的时候,大老板跟我们说,蓝牙的起源和一位弹钢琴的人有关,因为蓝牙用到了跳频,这个和手指在各个琴键之间跳动的现象有一定的联系。各学科之间的碰撞,会出现一些奇妙的火花。
其实,安装了windows mobile 6.0 Professional SDK之后,自带的sample中就有蓝牙通信的例子,包括Bluetooth Device Discovery、Chatting over Bluetooth和Bluetooth 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所示:
图1:WM5和WM6上的程序运行界面
需要注意的是,在设置蓝牙的时候,如果没有将“对其他设备可见”选项打上勾,即只是将蓝牙打开,如下图2所示:
图2:蓝牙处于打开状态
可能无法正常通信,应用程序会提示无法发送消息。选中“对其他设备可见”之后,就能够正常通信了,如下图3所示:
图3:蓝牙处于可见状态
参考链接:
<a href="http://www.winbile.net/cms/News/Newsc7c83i12264.aspx">使用C#来开发.NET CF 蓝牙通信模块</a>
<a href="http://www.codeproject.com/KB/mobile/Bluetooth_connection_C_.aspx">Bluetooth Connection in Windows Mobile 5.0 using InThehand - C#</a>
<a href="http://www.codeproject.com/KB/mobile/bth_serial_port.aspx">Bluetooth Simulation in C# with Serial Ports</a>
本文转自施炯博客园博客,原文链接:http://www.cnblogs.com/dearsj001/archive/2009/02/05/1384691.html,如需转载请自行联系原作者