在Windows mobile 6模拟器中实现蓝牙数据采集
- 格式:pdf
- 大小:26.42 KB
- 文档页数:11
一、连接网络设置安装后软件,其实就能运行模拟器来玩弄软件了,不过需要连接网络上QQ 、UC 的话,就得先设置好网络,这个也就是虚拟网卡驱动和ActiveSync 的作用了。
点击开始菜单,程序下的“Windows Mobile 6 SDK”下的“Standalone Emulator Images”下的“WM 6.5 Professional”(不同的屏幕大小有注明,如wvga ),启动模拟器.如图,可以多选.稍等几分钟,开机状态在安装好虚拟网卡驱动之后,我们点击模拟器File菜单中的Configure选项(如下图)然后选择“Network”选项卡。
勾选Enable NE2000 PCMCIA network adapter and bind to,然后选择已经能用来上网的选项卡。
(如下图)接着就是ActiveSync的设置了,若你安装了ActiveSync,找不到,就到电脑上搜索下吧.打开ActiveSync——文件——连接设置——安装下图设置即可!然后下一步是点击开始菜单,程序下的“Windows Mobile 6 SDK”下的“Tools”下的“Device Emulator Manager”如图所示,点击“Cradle”若Others下面没有,就点击下右边的refresh接下来在模拟器中,我们需要将连接Internet的设置更改为“单位设置”。
开始——设置——连接——连接——高级(左下角)——选择网络——如下图所示:ActiveSync建立连接的时候提示音就响起,模拟器中的Windows Mobile系统就和ActiveSync建立了连接。
二、软件安装使用首先要做的是点击模拟器File菜单中的Configure选项。
点击Shared Folder右侧红圈中的按钮选择安装文件这时我们需要做的是制定一个文件夹作为模拟器的“存储卡”,这样我们就可以复制软件到存储卡中了。
也就是说这个文件夹有什么,手机模拟器中的内存卡就显示什么了!无论是安装版还是绿色免安装版,都能运行。
Windows系统的常见蓝牙设备连接问题及解决方法蓝牙技术已经成为了现代设备之间进行无线数据传输的主要方式之一,然而在使用Windows系统时,我们常常会遇到一些与蓝牙设备连接相关的问题。
本文将介绍一些常见的蓝牙设备连接问题,并提供解决方法,帮助读者解决这些烦恼。
1. 蓝牙设备无法被识别这是使用蓝牙设备时最常见的问题之一。
当你的蓝牙设备无法被识别时,首先要确保你的设备已经开启,并处于可被检测到的状态。
同时,你也需要确保你的电脑已经开启了蓝牙功能。
解决方法:- 在Windows系统中,点击任务栏右下角的通知图标,找到并点击蓝牙图标,进入蓝牙设置。
在“蓝牙和其他设备设置”中,确保“蓝牙”选项已经打开。
- 如果你的蓝牙设备仍然无法被识别,尝试通过系统的设备管理器进行解决。
在Windows系统中,按下Win + X键,选择“设备管理器”,展开“蓝牙”选项。
找到你的蓝牙设备,右键点击选择“卸载设备驱动程序”,然后重新启动电脑,等待系统重新安装驱动程序。
2. 蓝牙设备无法连接当蓝牙设备可以被识别,但无法成功连接时,有几个常见的原因可能导致这个问题。
首先,你需要确保你的设备已经正确地配对并且在允许连接范围内。
其次,你可能需要更新或重新安装设备驱动程序,以确保系统对蓝牙设备提供充分的支持。
解决方法:- 首先,尝试在Windows系统中删除并重新配对你的蓝牙设备。
点击任务栏右下角的通知图标,找到蓝牙图标,进入蓝牙设置,找到你的设备,并选择“删除设备”。
然后重新进行设备配对流程。
- 如果蓝牙设备仍然无法连接,有可能是设备驱动程序出现了问题。
在设备管理器中,找到蓝牙设备,右键点击选择“更新驱动程序”,选择“自动搜索更新的驱动程序软件”。
如果系统找到了更新的驱动程序,按照提示进行安装。
- 如果驱动程序更新无效,你可以尝试在设备管理器中卸载驱动程序,然后重新启动电脑,等待系统重新安装驱动程序。
3. 蓝牙设备连接不稳定或断开连接有时候,在成功连接蓝牙设备之后,我们可能会遇到连接不稳定或频繁断开连接的问题。
微软正式发布了Windows Mobile 6.5开发工具包。
其中便包含了Windows Mobile 6.5模拟器。
我们可以在模拟器上体验一下Windows Mobile 6.5的各种全新特性。
Windows Mobile 6.5模拟器(开发工具包)下载链接在这里。
Windows Mobile 6.5 Professional CHS 模拟器 for Windows为PPC模拟器,Windows Mobile 6.5 Standard CHS 模拟器 for Windows为SP模拟器,如需其他语言版本,请点击进入微软官网下载。
相关下载Windows Mobile 6 Professional and Standard Software Development Kits Refresh Windows Mobile 6.1 Emulator Images在完成下载和安装之后,点击开始菜单,程序下的“Windows Mobile 6 SDK”下的“Standalone Emulator Images”下的“WM 6.5 Professional”,我们就可以启动模拟器了。
Windows Mobile 6.5 21202模拟器VGAWindows Mobile 6.5 21198模拟器QVGA下载提供的已经有中文版系统,直接支持中文。
如果你下载的是英文版模拟器,需要中文支持的可以安装CE-Star 2.8R3中文支持包一模拟器中的上网设置为了能在模拟器中使用网络,所以我们还需要安装一个虚拟网卡驱动Virtual Machine Network Driver(虚拟网卡驱动) for Device Emulator和微软同步中心ActiveSync4.5简体中文版在安装好虚拟网卡驱动之后,我们点击模拟器File菜单中的Configure选项。
然后选择“Network”选项卡。
勾选Enable NE2000 PCMCIA network adapter and bind to,然后选择已经能用来上网的选项卡。
电脑蓝牙设置指南连接设备和传输文件的方法电脑蓝牙设置指南:连接设备和传输文件的方法随着科技的不断进步,电脑已经成为我们生活中不可或缺的一部分。
而蓝牙技术的广泛应用,使得我们可以方便地连接各种设备并进行文件传输。
本指南将向您介绍一些简单的步骤,帮助您设置电脑的蓝牙连接,并实现设备之间的文件传输。
第一步:检查蓝牙设备在开始设置前,您需要确保计算机已经配备了蓝牙功能。
大多数新款笔记本电脑和台式机都内置了蓝牙芯片,但是对于一些老旧的设备,您可能需要另外购买一个蓝牙适配器。
检查设备时,可以在控制面板或者设备管理器中查看设备是否存在。
第二步:开启蓝牙功能一旦确定计算机具备蓝牙功能,接下来需要打开蓝牙。
打开蓝牙的具体操作方法可能因不同的操作系统而有所差异。
在Windows系统中,您可以通过以下步骤开启蓝牙功能:1. 点击任务栏上的“通知中心”图标。
2. 在弹出的菜单中,找到并单击“蓝牙”切换按钮,确保它处于打开状态。
3. 如果找不到蓝牙切换按钮,您可以进入“设置”菜单,然后找到“蓝牙和其他设备”选项,并确保蓝牙处于打开状态。
苹果电脑上开启蓝牙的方法也很简单:1. 点击屏幕右上角的苹果图标,打开“系统偏好设置”。
2. 选择“蓝牙”选项卡。
3. 在打开的窗口中,找到蓝牙开关,并将其切换到打开状态。
第三步:搜寻并连接设备一旦蓝牙功能开启,您可以开始寻找要连接的设备。
按照以下步骤操作:1. 打开要连接的设备的蓝牙功能,并将其设置为可检测模式。
此步骤中的具体操作方法因设备而异,请参考设备的用户手册。
2. 在计算机的蓝牙设置页面,点击“添加设备”或“搜索设备”按钮。
3. 此时,计算机将开始搜索附近的蓝牙设备。
请耐心等待,直到您要连接的设备出现在设备列表中。
4. 单击要连接的设备,然后点击“配对”按钮。
5. 按照设备的要求,可能需要输入配对码或确认密码。
请务必确保设备上显示的配对码与计算机上显示的一致。
6. 配对成功后,计算机将显示“已连接”,并且您可以开始在设备之间进行文件传输。
WINDOWS MOBILE6模拟器虚拟网卡联网之前为了测试模拟器连接PC机上的SQL SERVER,我采用的是双网卡的方法,还在百度文库上传了一个文档。
后来发现用模拟器虚拟网卡其实也可以实现跟PC机的联网,根本不需要两块网卡了。
原理是:如果安装了虚拟网卡,当模拟器的网卡映射到PC机物理网卡上时,这个物理网卡可以拥有两个IP地址,一个分配给PC,另外一个分配给模拟器,相互不影响。
操作步骤(以单个无线网卡举例):
1.在PC机安装虚拟网卡
安装完成后,在网络属性中可以看到有“Virtual Machine Network Services”。
如果没有勾上,记得勾上它。
2.设置模拟器的属性
打开VS2008,在“工具”--“选项”中,选择要设置的模拟器,我自己的是“CHS Windows Mobile6Professional Emulator”,按属性
把“传输”选项设置为“TCP连接传输”
然后点击“仿真器选项”,在“网络”页中,勾上“启用NE2000PCMCIA网络适配器”,
并且选择对应的网卡,按“确定”后保存。
3.启动模拟器
可以用VS2008的“工具”--“连接到设备”。
4.在模拟器中设置网络属性
“开始”--“设置”--“连接”,先设置“网卡”为“默认单位设置”。
再设置“连接”--“高级”--“选择网络”,把两个选择都设置为“单位设置”。
完成后,打开IE,输入网址,就看到效果了。
windowsBLE编程netwinform连接蓝⽛4.0winform 程序调⽤Windows.Devices.Bluetoot API 实现windows下BLE蓝⽛设备⾃动连接,收发数据功能。
不需要使⽤win10的UWP开发。
先贴图,回头来完善代码源码如下:using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using Windows.Devices.Bluetooth;using Windows.Devices.Bluetooth.GenericAttributeProfile;using Windows.Devices.Enumeration;using Windows.Foundation;using Windows.Security.Cryptography;namespace BLECode{public class BluetoothLECode{//存储检测的设备MAC。
public string CurrentDeviceMAC { get; set; }//存储检测到的设备。
public BluetoothLEDevice CurrentDevice { get; set; }//存储检测到的主服务。
public GattDeviceService CurrentService { get; set; }//存储检测到的写特征对象。
public GattCharacteristic CurrentWriteCharacteristic { get; set; }//存储检测到的通知特征对象。
public GattCharacteristic CurrentNotifyCharacteristic { get; set; }public string ServiceGuid { get; set; }public string WriteCharacteristicGuid { get; set; }public string NotifyCharacteristicGuid { get; set; }private const int CHARACTERISTIC_INDEX = 0;//特性通知类型通知启⽤private const GattClientCharacteristicConfigurationDescriptorValue CHARACTERISTIC_NOTIFICATION_TYPE = GattClientCharacteristicConfigurationDescriptorValue.Notify;private Boolean asyncLock = false;private DeviceWatcher deviceWatcher;//定义⼀个委托public delegate void eventRun(MsgType type, string str,byte[] data=null);//定义⼀个事件public event eventRun ValueChanged;public BluetoothLECode(string serviceGuid, string writeCharacteristicGuid, string notifyCharacteristicGuid){ServiceGuid = serviceGuid;WriteCharacteristicGuid = writeCharacteristicGuid;NotifyCharacteristicGuid = notifyCharacteristicGuid;}public void StartBleDeviceWatcher(){string[] requestedProperties = { "System.Devices.Aep.DeviceAddress", "System.Devices.Aep.IsConnected", "System.Devices.Aep.Bluetooth.Le.IsConnectable" };string aqsAllBluetoothLEDevices = "(System.Devices.Aep.ProtocolId:=\"{bb7bb05e-5972-42b5-94fc-76eaa7084d49}\")";deviceWatcher =DeviceInformation.CreateWatcher(aqsAllBluetoothLEDevices,requestedProperties,DeviceInformationKind.AssociationEndpoint);// Register event handlers before starting the watcher.deviceWatcher.Added += DeviceWatcher_Added;deviceWatcher.Stopped += DeviceWatcher_Stopped;deviceWatcher.Start();ValueChanged(MsgType.NotifyTxt, msg);}private void DeviceWatcher_Stopped(DeviceWatcher sender, object args){string msg = "⾃动发现设备停⽌";ValueChanged(MsgType.NotifyTxt, msg);}private void DeviceWatcher_Added(DeviceWatcher sender, DeviceInformation args){ValueChanged(MsgType.NotifyTxt, "发现设备:" + args.Id);if (args.Id.EndsWith(CurrentDeviceMAC)){Matching(args.Id);}}///<summary>///按MAC地址查找系统中配对设备///</summary>///<param name="MAC"></param>public async Task SelectDevice(string MAC){CurrentDeviceMAC = MAC;CurrentDevice = null;DeviceInformation.FindAllAsync(BluetoothLEDevice.GetDeviceSelector()).Completed = async (asyncInfo, asyncStatus) => {if (asyncStatus == pleted){DeviceInformationCollection deviceInformation = asyncInfo.GetResults();foreach (DeviceInformation di in deviceInformation){await Matching(di.Id);}if (CurrentDevice == null){string msg = "没有发现设备";ValueChanged(MsgType.NotifyTxt, msg);StartBleDeviceWatcher();}}};}///<summary>///按MAC地址直接组装设备ID查找设备///</summary>///<param name="MAC"></param>///<returns></returns>public async Task SelectDeviceFromIdAsync(string MAC){CurrentDeviceMAC = MAC;CurrentDevice = null;BluetoothAdapter.GetDefaultAsync().Completed = async (asyncInfo, asyncStatus) =>{if (asyncStatus == pleted){BluetoothAdapter mBluetoothAdapter = asyncInfo.GetResults();byte[] _Bytes1 = BitConverter.GetBytes(mBluetoothAdapter.BluetoothAddress);//ulong转换为byte数组Array.Reverse(_Bytes1);string macAddress = BitConverter.ToString(_Bytes1, 2, 6).Replace('-', ':').ToLower();string Id = "BluetoothLE#BluetoothLE" + macAddress + "-" + MAC;await Matching(Id);}};}private async Task Matching(string Id){try{BluetoothLEDevice.FromIdAsync(Id).Completed = async (asyncInfo, asyncStatus) =>{if (asyncStatus == pleted){BluetoothLEDevice bleDevice = asyncInfo.GetResults();//在当前设备变量中保存检测到的设备。
Windows mobile模拟器上网的配置步骤分类:Windows Mobile开发2009-04-18 08:58 6184人阅读评论(1) 收藏举报windowsmobile网络测试路由器networkk歌:这篇文章是网上最管用的模拟器上网设置文章,建议大家收藏:)转自/yanyouning/本文介绍配置Pocket PC 2003 SE设备仿真器网络设置的方法共有六个步骤:1. 下载虚拟网卡驱动程序2. 在PC上安装虚拟网卡驱动3. 在Visual Studio 2005中配置仿真器启动参数4. 配置Pocket PC 2003 SE 设备仿真器网卡参数5. 配置Pocket PC 2003 SE 设备仿真器虚拟网卡绑定6. 要求配置完后软启动一次仿真器,之后测试仿真器网络配置是否成功。
第一步,要求下载虚拟网卡驱动程序。
微软官方下载地址:/downloads/details.aspx?FamilyID=dc8332d6-565f-4 a57-be8c-1d4718d3af65&amp;DisplayLang=en,下载的文件为netsvwrap.msi。
英文版本的驱动程序也可以安装。
(H:\安装文件\Virtual PC 2007)第二步,要求在PC上安装虚拟网卡驱动。
虚拟网卡驱动安装成功后便可以在本地网络连接属性对话框中看到虚拟网卡。
如图一所示。
图一第三步,要求在Visual Studio 2005中配置仿真器参数。
启动Visual Studio 2005,从菜单选择:工具-〉选项,在显示的“设备”对话框左边选择:设备工具-〉设备,然后在右边的模拟器列表中选择“Pocket PC 2003 SE 仿真程序”,如图二所示。
之后再点击图二中的属性按钮,进入模拟器配置界面,如图三所示。
在图三“传输(R)”下拉框中选择“TCP 连接传输”。
最后点击仿真器选项按钮,进入“仿真程序属性”对话框,如图四所示。
Windows系统蓝牙设备连接与配置一、介绍蓝牙技术广泛应用于无线通信领域,使我们在使用电脑时能够方便地连接和配置各种蓝牙设备,如耳机、键盘、鼠标等。
本文将详细介绍在Windows系统下如何进行蓝牙设备的连接与配置。
二、连接蓝牙设备1. 打开蓝牙功能在Windows系统中,首先需要确保蓝牙功能已开启。
找到任务栏右下角的系统托盘,点击蓝牙图标,若显示为“关闭蓝牙”,则表示蓝牙已开启。
如果蓝牙图标未显示在任务栏中,可在控制面板或设置中搜索“蓝牙”并打开蓝牙设置页面,在此处开启蓝牙功能。
2. 搜索附近的蓝牙设备在开启蓝牙功能后,系统会自动搜索附近可连接的蓝牙设备。
点击任务栏中的蓝牙图标,选择“添加设备”或类似选项。
系统会列出附近检测到的蓝牙设备,包括耳机、键盘、鼠标等。
点击所需设备,系统将尝试与其建立连接。
3. 连接蓝牙设备选择所需设备后,系统会提示输入配对码以建立连接。
配对码可以在设备的说明书或包装盒上找到。
输入正确的配对码后,系统会进行设备连接。
4. 配置蓝牙设备属性部分蓝牙设备连接后需要进行进一步配置。
在设备连接成功后,可在系统中搜索该设备名称,并右键点击设备,选择“属性”或类似选项。
在设备属性中,可以进行设备配置,如更改设备名称、调整音量等。
三、配置蓝牙设备1. 管理已连接的蓝牙设备在Windows系统中,我们可以方便地管理已连接的蓝牙设备。
点击任务栏中的蓝牙图标,选择“蓝牙和其他设备设置”或类似选项。
系统将列出所有已连接的设备,包括音频设备、输入设备等。
通过点击设备,可以进行配置、解除配对等操作。
2. 调整蓝牙设备设置在管理已连接的蓝牙设备中,可以找到各个设备的设置选项。
例如,对于蓝牙耳机,可以调整音量、静音设置,甚至使用音效增强功能。
对于蓝牙鼠标或键盘,可以更改指针速度、按键重复速率等。
3. 管理蓝牙设备驱动程序如果发现蓝牙设备连接不稳定或出现问题,可能需要更新或重新安装蓝牙设备的驱动程序。
本文由changesway贡献 pdf1。
在 Windows mobile 6.0 模拟器中实现蓝牙数据采集 一、Windows mobile 6.0 中蓝牙驱动的加载 大家知道,Windows Mobile 6.0 SDK 自带了 cellular emulator 和 fake GPS,使 得我们可以在模拟器上调试 radio 级的 phone call 和基于 GPS 的地理位置应用。
我们来看看实现Bluetooth的架构,参考下图(来源于 Bluetooth for Microsoft Device Emulator),主要包括emulator端和PC端: 1.1 软硬件条件 1. Emulator 端 Bluetooth HCI Transport Driver Serial Port Driver Microsoft Remote Tools Framework remote agent 2. PC 端 Microsoft Remote Tools Framework desktop plugin FreeBT USB Driver runtime Driver Connected Bluetooth USB device 注意:作者采用了FreeBT这个开源的工程来控制Bluetooth的接入。
在 Windows Mobile 模拟器上使用蓝牙的必要条件有: 1. Visual studio 2005 with SP1 或者 Visual studio 2008 2. Windows Mobile 5.0 Pocket PC/Smartphone SDK and/or Windows Mobile 6 Standard/Professional SDK emulator images 3. Device Emulator 3.0 4. Microsoft Remote Tools Framework 1.00 5. 一个具有 USB 接口的 Bluetooth dongle FreeBT USB 1.2 模拟环境搭建 (一)安装 FreeBT 蓝牙驱动 在Windows Mobile模拟器上使用蓝牙,即在PC端安装下载的FreeBT的蓝牙驱 动,方法自然是通过“windows设备管理器” ,为新的硬件设备(也就是连接的 Bluetooth USB device)添加下载过来的驱动(主要是找到fbtusb.inf文件) 。
具体 如下: 1、打开 Windows 设备管理器。
2、在设备管理器,找到蓝牙设备将设备用作 FreeBT USB 接口。
3、点击鼠标右键并选择“更新驱动程序……”在弹出的菜单。
4、选择“否,暂时不”,然后点击“下一步>”。
5、选择“安装从列表或指定位置”,然后点击“下一步>”。
6、选择“不要搜索。
我将选择要安装的驱动”,然后点击“下一步>”。
7、选择设备驱动程序,然后点击“从磁盘安装…… ”. 8、在查找文件对话框中,浏览到 fbtusb.inf 文件,然后点击“下一步>”。
9、当一个“硬件安装警告”出现后,点击“仍然继续”。
10、一旦安装完毕后,点击“完成”。
11、设备管理器现在应显示“FreeBT USB 驱动”在名单的 USB 控制器。
(二)安装加载 Bluetooth for Microsoft Device Emulator 1、安装 FreeBT USB 驱动中描述了蓝牙 USB 驱动安装部分。
2、安装要求如描述的安装步骤。
3、 在 Remote Tools Framework plugin 中运行 BthEmulManager.cetool,将其 和模拟器建立连接。
4、从列表中选择一个仿真图像。
5、等待模拟器连接。
6、选择“Bluetooth for Microsoft Device Emulator”节点。
7、如果你有一个蓝牙设备连接成功,那么蓝牙设备信息(地址,制造商, 人机交互版本和 LMP 版本)将被显示。
现在,蓝牙应该运行在你的模拟器上。
如果有一个错误代码,则将被显示。
如图 9 所示。
8、要清除通讯记录,点击鼠标右键,选择“清除”。
9、当前设备信息复制到剪贴板,选择“蓝牙为微软装置模拟器"节点,点击 鼠标右键,选择“拷贝到剪贴板” 。
10、关掉蓝牙的模拟器,点击“连接”菜单,选择“脱离…模拟器” 。
11、 微软远程工具结构允许你在同一时间启动两个装置模拟器。
如果您已经 安装了两个或两个以上 FreeBT USB 设备, 点击“窗口”菜单并选择“切分窗口查看”。
重复步骤 3-6。
你将得到两个同时运行的蓝牙驱动仿真器。
12、很可能要启用/禁用设备端日志记录。
如果您启用“设备日志记录”复选 框,然后将启用远程登录在模拟器上。
关注\ \ Temp 的模拟器目录。
应该有建立 btd_bthemul_0.txt,btd_BthEmulAgent_0.txt,btd_bthemulcom_0.txt 文件。
13、很可能要启用/禁用桌面端日志记录。
如果您启用“桌面日志记录”复选 框, 那么就将启用本地记录。
查看你的安装目录, 应该有建立 BthEmulManager.txt 文件。
14、很可能要启用/禁用通讯记录。
通讯记录可以看到仿真器和蓝牙设备之 间的通信活动。
(三)连通测试 连接建立以后,蓝牙设备的信息(Address, Manufacturer, HCI Version, LMP Version)就会显示在界面上。
在程序启动后,首先搜索附近的蓝牙设备,搜索过程完成以后,将其设备的 名字和蓝牙地址显示在下拉列表中,然后就可以进行双向的消息发送和接收了。
程序运行界面如下图 10 所示: 需要注意的是,在设备蓝牙的时候,如果没有将“对其他设备可见”选项打 上勾,即只是将蓝牙打开,如下图所示。
可能无法正常通信,应用程序会提示无法发送消息。
选中“对其他设备可见” 之后,就能够正常通信了,如下图 12 所示: 在蓝牙配对中,当 Windows Mobile 找到了蓝牙设备金瓯,金瓯设置的蓝牙 连接密码是 1234。
如图 13 所示。
成功后,选择打开蓝牙时不会出错 正在搜索设备过程中 搜索完成 建立连接过程中要求输入连接密码 选择蓝牙服务——串口连接服务 创建成功 COM 端口 二、Bluetooth 操作的软件实现 由于蓝牙无线协议在手机中的应用较为广泛, 因此, 无论是 Windows Mobile SDK,还是其他第三方商业或开源软件组织,都对蓝牙程序设计有较好的支持。
如 著 名 的 OpenNETCF , 在 其 早 期 的 版 本 中 就 提 供 了 OpenNETCF.Bluetooth.WidComm 库 , 而 微 软 则 有 官 方 版 本 的 Microsoft Bluetooth Stack 提供,目前,比较流行的库有 32feet.net。
三方的地址 列表如下: 1. InTheHand.NET项目(即 32feet.net) 2. OpenNETCF项目 在.NET Compact Framework 下进行 Bluetooth 开发有几个可选解决方案 ? 可以 P/Invoke 直接调用 Bluetooth 的 API(btdrt.dll) ? 使用 MS 的 Windows Embedded Source Tools for Bluetooth ? 使用 32feet.NET 库 而这些库里, 对蓝牙串口服务的支持均存在一定的缺陷,如 Feet32.Net 的作 者甚至声称其中建立串口连接的代码是不安全的。
这个问题在模拟器下更显突 出,原因是模拟器下,对串口的支持仅是从 COM0~COM2,而在使用 SDK 中列 举时,得到的结果却是 COM0~COM10,这样,如果随机选择了大于 COM2 的虚 拟端口,程序便会报错。
而这个问题,在手动创建蓝牙虚拟串口服务时也会不时 发生。
由于暂时没有真实的 Mobile 设备进行测试,不能完全证明,是由于模拟 器的问题还是 SDK 使用不当的问题,留待购置了 Mobile 设备后再来研究。
OpenNETCF 的新版本中,不知何故去除了 WidComm 的包,但仍有网友在其 源代码上进行部分的改造利用, 下文就针对上面所列的两种库的使用进行简要的 说明。
2.1 利用 32feet.net 实现 Windows Mobile 上的蓝牙数据传输 (一)32feet.NET 简介 32feet.net 是由 InTheHand 公司所属的一个开源项目组织, 专门针对基于.NET 平台的无线数据传输(如蓝牙,红外等)提供技术支持。
目 前已经发布的组件有: ? Bluetooth(蓝牙) ? IrDA(红外) ? ObjectExchange(OBEX 文件交换) 对蓝牙的支持需要设备兼容 Microsoft Bluetooth 协议栈。
CE.NET4.2 或 XP 以 上的操作系统。
(二)32feet.NET 类库结构 表 1:InTheHand 类库结构 名字空间 InTheHand 描述 The InTheHand namespace contains classes for working with the Uri class for personal area networks. The InTheHand.Net namespace contains classes for working with addressing on personal area networks. The InTheHand.Net.Bluetooth namespace contains classes for working with Bluetooth functionality such as Radio hardware. InTheHand.Net InTheHand.Net.Bluetooth The InTheHand.Net.Bluetooth.AttributeIds InTheHand.Net.Bluetooth.AttributeIds namespace contains definitions of Service Discovery Protocol attributes. The InTheHand.Net.IrDA namespace contains classes for working with Infrared functionality. The InTheHand.Net.Mime namespace holds types that are used to represent Multipurpose Internet Mail Exchange (MIME) headers The InTheHand.Net.Ports namespace contains classes for working with legacy virtual COM ports over Bluetooth. The InTheHand.Net.Sockets namespace provides added functionality for working with IrDA and Bluetooth Sockets. The InTheHand.Windows.Forms namespace contains forms related to networking functionality. InTheHand.Net.IrDA InTheHand.Net.Mime InTheHand.Net.Ports InTheHand.Net.Sockets InTheHand.Windows.Forms 现仅列举 32feet.NET 中的 Buletooth 及 Sockets 名字空间,以供参考。