2016-07-25 93 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運行的信息。

希望這能給你一點指導。