这是一个相当普遍的问题,我认为但在网上搜索我真的找不到那么多信息。我有一个带蓝牙芯片的嵌入式系统,我经常用它连接到另一个嵌入式设备。这种连接非常强大,永远不会失败。
然而,嵌入式系统也可以通过虚拟串行端口连接到Windows。我写了一个软件来处理使用32Foot内部蓝牙库的连接。它在某些计算机(包括我自己的计算机)上运行非常一致但完全失败或者在其他计算机上非常不稳定。其中一个实际上是一个相同的系统(相同的硬件/相同版本的Windows)
在蓝牙配对,虚拟COM端口的创建等方面,我的软件中是否应该特别注意提高不同计算机/ Windows版本的可靠性。
谢谢
答案 0 :(得分:1)
我编写的软件在Windows上运行,并使用32Foot库通过虚拟串行端口连接到嵌入式设备。我遇到了类似的问题,从经验来看,主要问题是:
Windows上蓝牙无线电之间的冲突: 是否安装了多个蓝牙无线电/连接?我发现,如果在Windows机器上插入了外部蓝牙适配器,并且内置蓝牙已打开,则无法正常工作。
Widcomm / Broadcom和BlueSoleil堆栈:
这些不支持身份验证,Widcomm / Broadcom不支持设置PIN。您可以检查BluetoothRadio.PrimaryRadio
是否为空,如果是,则查找蓝牙无线电的SoftwareManufacturer
。如果Manufacturer
枚举为Bluesoleil
,Widcomm
或Broadcom
,那么在初始化SetPin
时,请不要使用身份验证或BluetoothClient
。
东芝堆栈: 并非所有
都支持此功能 目前支持的蓝牙无线电和堆栈是否可用?:
您可以处理PlatformNotSupportedException
,它会告诉您机器上是否没有当前支持的蓝牙堆栈。但是,如果有多个无线电连接,这不会让你知道。
最后,根据经验,内部蓝牙芯片并不总是具有良好的范围,干扰确实会影响连接。我有一个外部蓝牙适配器的好运。