【问题标题】:C# Activate Bluetooth serial port serviceC#激活蓝牙串口服务
【发布时间】:2015-01-13 09:19:20
【问题描述】:

我有自己开发的支持串口服务的蓝牙设备。

我正在使用来自 BTframework.com 的 WCL 库。

我也熟悉 32feet 代码。

我通过代码配对设备没有问题, 但我不知道如何激活 SPP 服务,知道怎么做吗?

谢谢

【问题讨论】:

    标签: c# windows winapi bluetooth serial-port


    【解决方案1】:

    使用 BTFramework(无线通信库),您可以通过 2 种方式与您的设备进行通信:

    1. 使用本地蓝牙连接进行直接通信。在这种情况下,使用 wclClient 类并将 Trasport 设置为 trBluetooth。它允许您与任何启用了 RFCOMM 的蓝牙设备进行通信。这是首选方式,您不需要使用任何 vCOM。据我所知,32feet 具有相同的机制。

    2. 传统 vCOM 方式。您可以使用 wclVirtualCOMPort 类创建与设备关联的 vCOM,然后您也可以使用 wclClient(将 Trasport 设置为 trSerial)或任何第三方串行库。这种方式不太好,在 WCL 中仅用于支持旧版应用程序。

    【讨论】:

    • 感谢您提供的信息,但这不是我所要求的。
    【解决方案2】:

    那么你能解释一下你需要做什么吗?根据您的问题,您无需激活服务。您可以简单地连接到该服务。有两种方法可以做到这一点。

    第一种方式是使用原生蓝牙通信(API)。由于 Windows 平台上至少有 4 个流行的蓝牙堆栈,因此您要做的第一件事就是决定在您的 PC 上安装哪个。然后你可以使用它的API。它们都完全不同。 WCL 和 32feet 向您隐藏了这些不同之处,并提供了高级课程。两者都有演示演示如何与 spp 服务进行通信。在 WCL 中是 BluetoothClientDemo。

    第二种方法是使用 vCOM 机制 当您使用蓝牙驱动程序工具(在您的图片上是 ms 添加设备对话框)与您的设备配对并连接到它时。在这种情况下,蓝牙驱动程序会隐藏虚拟 COM 端口下的连接,然后您可以在应用程序中使用该连接。同样,低级方法取决于所使用的驱动程序并且非常不同。我不确定 32feet 是否提供这样的功能,但您可以使用 WCL 轻松做到。

    在这两种情况下,最好从您的应用程序中完全使用您的设备。因为蓝牙驱动工具安装的设备没有简单的方法找到vCOM号。

    我应该重复一遍:yoj 不需要“激活”服务。将其视为 tcp 服务(ftp、smtp、http)。

    我希望这回答了你的问题。

    【讨论】:

      【解决方案3】:

      启用 SPP:deviceInfo.SetServiceState(BluetoothService.SerialPort, true);

      【讨论】:

        猜你喜欢
        • 2017-09-26
        • 2011-05-01
        • 2011-07-29
        • 1970-01-01
        • 1970-01-01
        • 2017-02-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多