新闻中心

EEPW首页>手机与无线通信>设计应用> 基于Windows CE.NET实现蓝牙通讯模块的几种方法

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

作者: 时间:2010-11-29 来源:网络 收藏

1.2利用微软工具包编写通讯模块
微软工具包是微软公司新推出来基于.NETCompactFramework2.0的一款专门用来快速开发蓝牙应用程序的工具包,直接 在.NET平台下直接调用其中类库,可以快速,简单的开发一般的蓝牙应用程序。不过该工具包只能在WindowsCE5.0下使用。利用工具包可以完 成:启动一个蓝牙服务,寻找周边蓝牙设备,连接已存在的蓝牙设备或者服务。工具包可以在微软网站下载。
利用此工具做两个蓝牙设备间进行简单文本传输的程序部分代码如下:
Server端:
GuidserviceGuid=newGuid({81553B2B-FFOB-4415-86C9-22B799058B81});
ServerHandlesh=btseore.CreateService(ser-viceGuid);
NetworkStreamns=sh.AceeptConnection()StingdataToSend=Hello;
Byte[]dataBuffer=System.Text.ASCIIEncoding.ASCII.GetBytes(dataToSend);
ns.Write(dataBuffer,0,dataBuffer.Length);
ns.Flush();
ns.Close();
Client端:
PairedDevices=btsCore.GetPairedDevices();
Foreach(BluetoothDevicedeviceinpairedDevices)
{pairedDevicesListBox.Item.Add(device.deviceName);}
GuidserviceGuid=newGuid({01550D2D-FF0D-4415-86C9-22B799058B81});
If(pairedDevicesListBox.SelectedIndex=0);
{BluetoothDevicedeviceToConnect=(BluetoothDevice)pairedDevices[pairedDevicesListBox.Selected];
NetworkStreamns=btsCore.Connect(deviceTo-Connect,serviceGuid);
byte[]buffer=newbyte[2000]
ns.Read(buffer,0,50);
char[]bufferAsChars=System.Text.ASCII.GetChars(buffer)
System.Strings=System.Text.Encoding.ASCIIGetString(buffer,0,buffer,length);
Message.Show(s)
ns.Close();}
1.3利用OpenNETCF编写蓝牙通讯模块
OpenNETCF是一个可以有效提高WindowsMobile开发效率的第三方开源类库。是一帮WindowsMobile爱好者共同编写的,里 面提供了很多在.NETCompactFramework2.0中未能包含的类库。有两种方式可以来使用它:一种是可以将其当作一个组件安装在 VisualStudio2005中;另一种是可以将其原代码编辑拿来使用。在OpenNETCF开源类库中就包括有蓝牙方面的,所以也可以利用 OpenNETCF来编写蓝牙通讯模块。对应类库可在WWW.opennetcf.com网站下载。在类库中,可以利用命名空间 OpenNETCF.IO.Ports下的Blue-toothSerialPort来建立蓝牙连接,利用命名空间 OpenNETCF.IO.Serial中内容进行蓝牙程序的通讯。
2基于本机码开发蓝牙通讯模块
本机码应用程序是使用一套特定软件平台的应用程序开发接口来开发,并且被编译成一个特定处理器的目的码或机器码。一般情况下,本机码提供较高的效能和最小 的资源要求,但是被编译好的本机码或是可执行文件却只能在此软件平台或特定处理器上运行。此外,本机码应用程序常需要应用开发者自行处理类似内存管理、资 源管理、安全性管理等。在VisualStudio2005中已经可以利用C++语言来开发基于MFC,ATL或Win32API的本机码WinCE 程序。这就提供了类似于用eMbeddedVisualC++来开发windowsmobile设备的方法。而本文在利用P/Invoke方法编写 蓝牙通讯模块时介绍的就是调用本机码开发蓝牙应用程序,方
法类似,所以此处就不再进行具体的分析了。
3结束语
本文讨论了在VisualStudio2005里分别利用托管码和本机码来开发Windowsmobile设备蓝牙通讯模块的几种方法。文中介绍的 蓝牙通讯模块各种开发方法都有各自的优点和缺点,如果用户开发的蓝牙通讯设备需要较高的效能和最小的资源要求,一定是采用本机码的方法来开发是最好的。因 为采用本机码开发的程序是直接被编译成机器码来执行的,从而可以获得更高的性能。但是采用本机码来开发程序的最大缺点就是开发难度大,开发周期长,所以并 不适用于一般要求的用户。而在对效能和资源要求并不是很高的产品中采用文中所述的托管码中的几种方法来开发蓝牙通讯模块则是更好的选择,用托管码开发的程 序会比较的简单和快速,同时又由于其并不直接生成最终的机器代码,而是生成了中间代码来执行,所以用托管码开发的程序可以跨平台和处理器来运行,但是这是 以牺牲一定的访问速度为代价的。在基于托管码开发蓝牙通讯设备中本文共介绍了3种方法,因为到.NETFRAMEWORK2.0的时候微软公司都没有 开发针对蓝牙通讯模块的类库,所以利用P/Invoke方法编写蓝牙通讯模块是在托管码下开发蓝牙通讯模块比较常见的选择。而微软蓝牙工具包和 OpenNETCF类库编写蓝牙通讯模块方法比较类似,其都是类库对底层API的类封装,所以开发起来较为简单和快速,更适合于一般要求的蓝牙通讯模块的 开发。
蓝牙设备在嵌入式环境下的应用有着十分广阔的前景,目前还有很多工作尚需研究。解决如何在Windowsmobile平台下开发更好更高效的蓝牙应用程序能够推动蓝牙技术在嵌入式产品上的更好利用。这一方面的开发将具有极强的实用性,将成为以后研究工作的重点。

本文引用地址: //m.amcfsurvey.com/article/156912.htm

linux操作系统文章专题:linux操作系统详解(linux不再难懂)

c++相关文章:c++教程



上一页 1 2 3 下一页

关键词:蓝牙嵌入式

评论


相关推荐

技术专区

关闭