WEB开发网
开发学院手机开发Windows Mobile 开发 Windows Mobile 上的蓝牙点对点通信 阅读

Windows Mobile 上的蓝牙点对点通信

 2010-03-24 16:08:00 来源:WEB开发网   
核心提示:实验室做短距离通信,蓝牙是其中主要技术之一,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 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”中完成的,包括发现设备、建立连接和发送数据等等,其主要的函数如下:

1、 intDiscoverDevices();

2、intGetNumDevices(){returnm_iNumDevices;};

3、 intGetDeviceInfo(DeviceInfo*pPeerDevicesInfo);

4、 intGetLocalDeviceName(DeviceInfo*pLocalDeviceInfo);

5、 intGetDeviceInfo(DeviceInfo*pPeerDeviceInfo,intiSelectedItem);

6、 intOpenServerConnection(BYTE*rgbSdpRecord,intcSdpRecord,intiChannelOffset,void(*funcPtr)(WCHAR*));

7、 intSendMessageToServer(WCHAR*strGUID,WCHAR*szMessage,intiSelectedDeviceIndex);

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

Windows Mobile上的蓝牙点对点通信 - xkfzone - 飞雪的博客

1 2  下一页

Tags:Windows Mobile 蓝牙

编辑录入:coldstar [复制链接] [打 印]
赞助商链接