我正在为Motorola MC55设备开发一个C#设备应用程序( Bluetopia )。此应用程序设置蓝牙查询和配对程序(通过企业移动开发工具包)并写下虚拟串口#:
public void DoConnection(IRemoteBTDevice rd)
{
RemoteDevice remoteDevice = new RemoteDevice(rd.DeviceName, rd.Id.Replace(":", ""), "");
this.bluetooth.RemoteDevices.Add(remoteDevice);
this.bluetooth.RemoteDevices.Refresh();
if (!remoteDevice.IsPaired)
{
remoteDevice.Pair(rd.Pin);
}
//TODO Note serial port # (get it by means of remoteDevice.LocalComPort)
//Works smoothly, but a second process has to do this (requirement).
remoteDevice.OpenPort();
}
但是只要第二个进程(例如另一个c#设备应用程序)打开该串口,就会启动BTExplorer。我该如何抑制这种现象?
this.comX = new SerialPort(this.BluetoothPortName);
this.comX.Open();
我正在使用另一个大会:http://32feet.codeplex.com/。它适用于摩托罗拉ES400(Microsoft Stack)。看到这个:http://32feet.codeplex.com/wikipage?title=Stonestreet%20One%20Bluetopia后,我使用了相同的代码,但它对MC55来说无法解决问题。
感谢您的支持, Roger Huber
答案 0 :(得分:0)
据我了解,BTExplorer.exe实际上提供/控制虚拟COM端口服务,所以当正在使用虚拟COM端口时它需要运行...
在使用我的32feet.NET Bluetopia支持时,请务必了解您在MC55上看到的问题。正如我在32feet.NET: Stonestreet One Bluetopia所指出的那样,我在M3 Mobile设备上进行了测试,该设备具有最新版本的Bluetopia堆栈。也许StoneStreetOne在你的版本之间改变了一些东西......(如果Bluetopia启动完全失败,那么我会更多地登录version 3.3 - 我离发布的距离太远了。)
当然,如果第二个C#程序需要使用虚拟COM端口,那么32feet.NET将无济于事 - 如上所述仍然需要BTExplorer。但是,如果您可以将该程序更改为使用BluetoothClient等而不是COM端口...(当然记住“一次一个Bluetopia”限制当然)。
艾伦