2

我正在编写一个蓝牙扫描仪来监控我家外面的交通。我了解车载BT设备一般有3种状态,可见(常亮)、受限、不可见。

我正在使用带有 Bluesoleil 驱动程序和 1 类蓝牙加密狗的异步设备发现。

我的问题是设备名称和设备类没有被发现。它正在发现设备地址和范围,但不是设备名称。

我尝试使用 System.Threading.Thread.Sleep(1000) 然后调用 device.Refresh() 无济于事。

它正在获取范围内的一些东西的名称,例如电视和 Fitbit Flexes,但重要的是我可以找到汽车蓝牙设备的名称和 CoD,而不仅仅是 MAC 地址和范围。

  public void SetupListener()
    {
        var client = new BluetoothClient();
        var component = new BluetoothComponent(client);
        component.DiscoverDevicesAsync(255, false, false, true, false, null);
        component.DiscoverDevicesProgress += component_DiscoverDevicesProgress;
        component.DiscoverDevicesComplete += component_DiscoverDevicesComplete;
    }

    void component_DiscoverDevicesComplete(object sender, DiscoverDevicesEventArgs e)
    {
        SetupListener();
    }

    void component_DiscoverDevicesProgress(object sender, DiscoverDevicesEventArgs e)
    {
        BluetoothDeviceInfo[] availableDevices = e.Devices as BluetoothDeviceInfo[];
        foreach (BluetoothDeviceInfo device in availableDevices)
        {
            device.Refresh();

            var name = device.DeviceName; // This mostly returns the MAC address
            var cod = device.ClassOfDevice.Device; // This mostly returns Miscellaneous
        }
    }

我构建的应用程序是一个简单的 WPF 表单,它将找到的设备转储到数据网格(为简单起见,我已将其从代码中删除)。这通常是结果的样子。

当我坐在外面靠近马路的地方时,随着汽车的驶过,它肯定会拾取越来越多的设备,但我不知道它正在检测什么类型的设备。

结果数据网格

任何帮助将不胜感激。

4

0 回答 0