• 易迪拓培训,专注于微波、射频、天线设计工程师的培养
首页 > 无线通信 > 技术文章 > 基于Windows CE.NET实现蓝牙通讯模块的几种方法

基于Windows CE.NET实现蓝牙通讯模块的几种方法

录入:edatop.com     点击:

利用此工具做两个蓝牙设备间进行简单文本传输的程序部分代码如下:

Server 端:
Guid serviceGuid = new Guid (" { 81553B2B-FFOB-4415-86C9-22B799058B81 } ");
ServerHandle sh = btseore. CreateService (ser-viceGuid);
NetworkStream ns= sh. AceeptConnection()Sting dataToSend= " Hello";
Byte [] dataBuffer = System. Text. ASCIIEncoding. ASCII. GetBytes(dataToSend);
ns. Write(dataBuffer, 0, dataBuffer. Length);
ns. Flush();
ns. Close();
Client 端:
PairedDevices= btsCore. GetPairedDevices();
Foreach (BluetoothDevice device in pairedDevices)
{pairedDevicesListBox. Item. Add (device. deviceName) ;}
Guid serviceGuid = new Guid (" { 01550D2D-FF0D-4415-86C9-22B799058B81 } ");
If (pairedDevicesListBox. SelectedIndex﹥=0);
{ BluetoothDevice deviceToConnect= ( BluetoothDevice ) pairedDevices [ pairedDevicesListBox. Selected];
NetworkStream ns = btsCore. Connect (deviceTo-Connect, serviceGuid);
byte[ ] buffer=new byte[2000]
ns. Read(buffer, 0,50);
char[ ] bufferAsChars= System. Text. ASCII. GetChars(buffer)
System. String s= System. Text. Encoding. ASCIIGetString(buffer, 0, buffer, length);
Message. Show(s)
ns. Close(); }

1.3 利用OpenNETCF编写蓝牙通讯模块

OpenNETCF是一个可以有效提高Windows Mobile开发效率的第三方开源类库。是一帮Windows Mobile爱好者共同编写的,里 面提供了很多在.NET Compact Framework 2.0中未能包含的类库。有两种方式可以来使用它:一种是可以将其当作一个组件安装在 Visual Studio2005中;另一种是可以将其原代码编辑拿来使用。在OpenNETCF开源类库中就包括有蓝牙方面的,所以也可以利用 OpenNETCF来编写蓝牙通讯模块。对应类库可在WWW.opennetcf.com网站下载。在类库中,可以利用命名空间 OpenNETCF.IO.Ports下的Blue-toothSerialPort来建立蓝牙连接,利用命名空间 OpenNETCF.IO.Serial中内容进行蓝牙程序的通讯。

2 基于本机码开发蓝牙通讯模块

本机码应用程序是使用一套特定软件平台的应用程序开发接口来开发,并且被编译成一个特定处理器的目的码或机器码。一般情况下,本机码提供较高的效能和最小 的资源要求,但是被编译好的本机码或是可执行文件却只能在此软件平台或特定处理器上运行。此外,本机码应用程序常需要应用开发者自行处理类似内存管理、资 源管理、安全性管理等。在Visual Studio 2005中已经可以利用C++语言来开发基于MFC,ATL或Win32API的本机码WinCE 程序。这就提供了类似于用eMbedded Visual C++来开发windows mobile设备的方法。而本文在利用P/Invoke方法编写 蓝牙通讯模块时介绍的就是调用本机码开发蓝牙应用程序,方法类似,所以此处就不再进行具体的分析了。

3 结束语

本文讨论了在Visual Studio 2005里分别利用托管码和本机码来开发Windows mobile设备蓝牙通讯模块的几种方法。文中介绍的 蓝牙通讯模块各种开发方法都有各自的优点和缺点,如果用户开发的蓝牙通讯设备需要较高的效能和最小的资源要求,一定是采用本机码的方法来开发是最好的。因 为采用本机码开发的程序是直接被编译成机器码来执行的,从而可以获得更高的性能。但是采用本机码来开发程序的最大缺点就是开发难度大,开发周期长,所以并 不适用于一般要求的用户。而在对效能和资源要求并不是很高的产品中采用文中所述的托管码中的几种方法来开发蓝牙通讯模块则是更好的选择,用托管码开发的程 序会比较的简单和快速,同时又由于其并不直接生成最终的机器代码,而是生成了中间代码来执行,所以用托管码开发的程序可以跨平台和处理器来运行,但是这是 以牺牲一定的访问速度为代价的。在基于托管码开发蓝牙通讯设备中本文共介绍了3种方法,因为到.NET FRAMEWORK 2.0的时候微软公司都没有 开发针对蓝牙通讯模块的类库,所以利用P/Invoke方法编写蓝牙通讯模块是在托管码下开发蓝牙通讯模块比较常见的选择。而微软蓝牙嵌入式工具包和 OpenNETCF类库编写蓝牙通讯模块方法比较类似,其都是类库对底层API的类封装,所以开发起来较为简单和快速,更适合于一般要求的蓝牙通讯模块的 开发。

蓝牙设备在嵌入式环境下的应用有着十分广阔的前景,目前还有很多工作尚需研究。解决如何在Windows mobile平台下开发更好更高效的蓝牙应用程序能够推动蓝牙技术在嵌入式产品上的更好利用。这一方面的开发将具有极强的实用性,将成为以后研究工作的重点。

来源:中国传动网

上一篇:优化TD-SCDMA OMC-R操作维护 及时准确保障网络安全运行
下一篇:简析大唐移动小区深度覆盖解决方案

手机天线设计培训教程详情>>

手机天线设计培训教程 国内最全面、系统、专业的手机天线设计培训课程,没有之一;是您学习手机天线设计的最佳选择...【More..

射频和天线工程师培训课程详情>>

  网站地图