0

我一直在研究 windows wdf 示例中的蓝牙回声服务器示例。我想了解l2cap bt驱动程序的实现,但我还是有点困惑。

下面我列出了示例中的代码。

在这里,我们有一个 GUID 和一个由 bt 服务器开发者发布的服务的名称。如果客户端想要连接到服务器,它必须知道该信息。

    //
    // Service GUID and name for the service published by our bth server device
    //
    
    /* c07508f2-b970-43ca-b5dd-cc4f2391bef4 */
    DEFINE_GUID(BTHECHOSAMPLE_SVC_GUID, 0xc07508f2, 0xb970, 0x43ca, 0xb5, 0xdd, 0xcc, 0x4f, 0x23, 0x91, 0xbe, 0xf4);
    
    extern __declspec(selectany) const PWSTR BthEchoSampleSvcName =L"BthEchoSampleSrv";
    
    //
    // Device interface exposed by our bth client device
    //
    
    /* fc71b33d-d528-4763-a86c-78777c7bcd7b */
    DEFINE_GUID(BTHECHOSAMPLE_DEVICE_INTERFACE, 0xfc71b33d, 0xd528, 0x4763, 0xa8, 0x6c, 0x78, 0x77, 0x7c, 0x7b, 0xcd, 0x7b);

以下是客户端连接到服务器的方式:

DWORD err = GetDevicePath((LPGUID)&BTHECHOSAMPLE_DEVICE_INTERFACE, &devicePath);

if (ERROR_SUCCESS != err) {
    printf("Failed to find the BTHECHO device\n");
    exit(1);
}

hDevice = CreateFile(devicePath,
                     GENERIC_READ|GENERIC_WRITE,
                     FILE_SHARE_READ | FILE_SHARE_WRITE,
                     NULL,
                     OPEN_EXISTING,
                     0,
                     NULL );

我的问题是:如果我有一部手机或平板电脑,并且可以使用 WSALookupServiceXXXX 从我的 bt 列表设备中选择它怎么办。如何仍然使用或连接到 l2cap 驱动程序?如果我是客户端,如何获取外部服务器设备的 GUID?反之,客户端如何知道服务器的 GUID 服务器?GUID 和服务类 ID(bt 配置文件)是两个不同的东西,不是吗?

最好的,

4

0 回答 0