2016-07-25 59 views
0

在UWP物联网的核心,我们可以查询远程蓝牙设备作为simultanously在物联网核心使用多个蓝牙HCI UWP

var DeviceInfoCollection = await DeviceInformation.FindAllAsync(RfcommDeviceService.GetDeviceSelector(RfcommServiceId.SerialPort)); 

我想知道,如果我们可以指定HCI控制器查询远程设备,我们需要连接每个HCI /加密狗1个蓝牙LE设备,以保持数据速率@ 100hz。

如果有人可以推荐C#或C++ API,那么这两者都是我们的选择。

回答

0

不知道我完全理解你的问题,但是对于蓝牙低功耗设备,我在UWP应用程序中做了类似以下C#的事情。

using System; 
using Windows.Devices.Bluetooth.Advertisement; 

namespace WindowsIoTCorePi2FezHat 
{ 
    internal class BleTagWatcher 
    { 
     private ulong tagNo; 
     private BluetoothLEAdvertisementWatcher watcher; 

     private const short OutOfRange = -127; 
     private short rssi; 
     private DateTime lastDetected; 

     public BleTagWatcher(ulong v) 
     { 
      this.tagNo = v; 
      Rssi = OutOfRange; 

      watcher = new BluetoothLEAdvertisementWatcher { ScanningMode = BluetoothLEScanningMode.Active }; 
      watcher.Received += OnAdvertisementReceipt; 
      watcher.Stopped += (s, a) => { Rssi = OutOfRange; }; 
      watcher.Start(); 
     } 

     private void OnAdvertisementReceipt(BluetoothLEAdvertisementWatcher sender, BluetoothLEAdvertisementReceivedEventArgs args) 
     { 
      if (args.BluetoothAddress == tagNo) 
       Rssi = args.RawSignalStrengthInDBm; 
     } 

     public short Rssi 
     { 
      get 
      { 
       //if (lastDetected.AddSeconds(20) < DateTime.Now) 
       // return OutOfRange; 
       return rssi; 
      } 
      set 
      { 
       rssi = value; 
       lastDetected = DateTime.Now; 
      } 
     } 
    } 
} 

当然您可以从设备广告中获得更多信息。不仅仅是信号强度。

对于使用Windows 10 IoT核心的Raspberry Pi 3运行的信息。

希望这能给你一点指导。