bad*_*d99 17 .net c# bluetooth
我们有一个应用程序需要能够使用蓝牙满足以下要求:
我们在Windows XP上运行.
我做了一些环顾四周,似乎有3个主要堆栈:
BlueSoleil的
在BlueSoleil网站上,在他们的SDK部分,似乎只提到支持1个连接,这显然是不好的.
视窗
似乎只支持1个蓝牙加密狗,这可能意味着我们无法满足我们的所有要求.
WIDCOMM
昂贵且可能过度杀伤?更复杂的API?思考?
对于C#的SDK,正在看Franson Bluetools,有人使用过这个API吗?
谢谢
ala*_*mcf 18
首先是免责声明,我是32feet.NET库的维护者.:-)
我刚刚检查过,在XP上使用Microsoft堆栈(使用一个加密狗)我可以同时接收两个OBEX PUT并发现设备.那是使用32feet.NET的ObexListener类和BluetoothClient.DiscoverDevices方法.要发送OBEX PUT,可以使用其ObexWebRequest类.要与ObexListener进行多个并行连接,我只需要多个线程调用其GetContext()方法.
所以这可能比我们想象的更简单......
我还使用他的Brecham.Obex库和Andy Hume的OBEX服务器测试了它,并且并发接收工作也很好.它可从http://32feet.net/files/folders/objectexchange/entry6511.aspx获得.
关于我们的Widcomm支持.希望它在客户端看起来不太"不完整"......查询(设备发现)和连接都可以正常工作.服务器端仍然需要一些工作,但Widcomm API有些东西根本不支持,例如.(程序化认证处理).
样品有什么问题?编译时还是运行时?在MSFT堆栈或Widcomm?如果您愿意,请访问http://32feet.net/forums/37.aspx.
是时候解释一下我们最终做了什么......
2个加密狗为什么?
因此,我们的想法是连续扫描一个加密狗(因此设备尽可能快地出现),另一个加密狗保留用于传输,并且由于它不是扫描,因此传输非常快速.
我们用的图书馆
经过多次测试和思考,我们最终选择了BT框架的WirelessCommunicationLibrary.
它支持Widcomm,Windows,BlueSoleil和Toshiba堆栈.它支持我们需要的所有服务器端,是一个支持良好的商业产品,完美无误地工作.
哪个堆栈?
嗯,这是一个复杂的问题.堆栈中没有一个同时支持2个加密狗.所以唯一的选择是在一个堆栈上运行一个加密狗而在另一个堆栈上运行另一个加密狗.这是WCL库派上用场的地方!
Microsoft - 如果在扫描期间发生错误,则整个堆栈通常会崩溃.这不太理想!您必须关闭并重新启动无线电设备,这需要时间并且容易出错.但是...... Microsoft堆栈确实很好地处理文件传输.
Widcomm - Widcomm堆栈不适合文件传输.有一些讨厌的小应用程序与Widcomm一起安装,它们一直试图从你的应用程序中获取控制权.您可以杀死bttray.exe,这有帮助,但在传输过程中仍然会从堆栈中获得一些奇怪的行为.我确信这可以解决,但由于Windows扫描效果不佳,因此使用Widcomm进行扫描是有意义的.
所以...我们有一个加密狗设置为Widcomm来反复扫描,一个设置为Microsoft的加密狗设置为仅处理文件传输(进出).
让2个加密狗工作
我们开始使用2个相同的加密狗,我们可以批量订购它们并将它们全部存放起来以减少混乱.每个出货的设备只需要2个蓝牙加密狗,简单.
唯一的问题是,这些是widcomm加密狗,我们在Windows堆栈上需要一个加密狗.Windows不会将这些视为Windows加密狗,因此不会将它们注册为Windows堆栈.所以......你可以对bt.inf文件进行破解,使其识别Windows的加密狗.然后你需要切换其中一个加密狗的驱动程序在Windows驱动程序上运行,你就完成了.
摘要
所以...我们一直有一个加密狗扫描,一个处理转移,每个都在不同的堆栈上,一切都运行良好.这是我发现在Windows上顺利运行2个加密狗的唯一方法.如果您有更好的建议,请发布!
| 归档时间: |
|
| 查看次数: |
18425 次 |
| 最近记录: |