【发布时间】:2015-01-13 09:19:20
【问题描述】:
我有自己开发的支持串口服务的蓝牙设备。
我正在使用来自 BTframework.com 的 WCL 库。
我也熟悉 32feet 代码。
我通过代码配对设备没有问题, 但我不知道如何激活 SPP 服务,知道怎么做吗?
谢谢
【问题讨论】:
标签: c# windows winapi bluetooth serial-port
我有自己开发的支持串口服务的蓝牙设备。
我正在使用来自 BTframework.com 的 WCL 库。
我也熟悉 32feet 代码。
我通过代码配对设备没有问题, 但我不知道如何激活 SPP 服务,知道怎么做吗?
谢谢
【问题讨论】:
标签: c# windows winapi bluetooth serial-port
使用 BTFramework(无线通信库),您可以通过 2 种方式与您的设备进行通信:
使用本地蓝牙连接进行直接通信。在这种情况下,使用 wclClient 类并将 Trasport 设置为 trBluetooth。它允许您与任何启用了 RFCOMM 的蓝牙设备进行通信。这是首选方式,您不需要使用任何 vCOM。据我所知,32feet 具有相同的机制。
传统 vCOM 方式。您可以使用 wclVirtualCOMPort 类创建与设备关联的 vCOM,然后您也可以使用 wclClient(将 Trasport 设置为 trSerial)或任何第三方串行库。这种方式不太好,在 WCL 中仅用于支持旧版应用程序。
【讨论】:
那么你能解释一下你需要做什么吗?根据您的问题,您无需激活服务。您可以简单地连接到该服务。有两种方法可以做到这一点。
第一种方式是使用原生蓝牙通信(API)。由于 Windows 平台上至少有 4 个流行的蓝牙堆栈,因此您要做的第一件事就是决定在您的 PC 上安装哪个。然后你可以使用它的API。它们都完全不同。 WCL 和 32feet 向您隐藏了这些不同之处,并提供了高级课程。两者都有演示演示如何与 spp 服务进行通信。在 WCL 中是 BluetoothClientDemo。
第二种方法是使用 vCOM 机制 当您使用蓝牙驱动程序工具(在您的图片上是 ms 添加设备对话框)与您的设备配对并连接到它时。在这种情况下,蓝牙驱动程序会隐藏虚拟 COM 端口下的连接,然后您可以在应用程序中使用该连接。同样,低级方法取决于所使用的驱动程序并且非常不同。我不确定 32feet 是否提供这样的功能,但您可以使用 WCL 轻松做到。
在这两种情况下,最好从您的应用程序中完全使用您的设备。因为蓝牙驱动工具安装的设备没有简单的方法找到vCOM号。
我应该重复一遍:yoj 不需要“激活”服务。将其视为 tcp 服务(ftp、smtp、http)。
我希望这回答了你的问题。
【讨论】:
启用 SPP:deviceInfo.SetServiceState(BluetoothService.SerialPort, true);
【讨论】: