2016-11-01 5 views
0

예를 들어, 두 대의 심박 측정기를 내 태블릿 PC와 페어링했습니다. 나는 HRM 장치의 목록을 얻으려면 이러한 코드를 사용하고 있습니다 : 동일한 수신 장치에서 두 가지 다른 서비스에 액세스하는 방법

var devices = await Windows.Devices.Enumeration.DeviceInformation.FindAllAsync 
(
    GattDeviceService.GetDeviceSelectorFromUuid(GattServiceUuids.HeartRate) 
); 

은 그 때 나는 장치 이름은 장치 [I] .NAME에서 가지고와 GUI에서 목록 상자를 표시합니다.

var service = await GattDeviceService.FromIdAsync(devices[0].Id); 
var characteristic = await service.GetCharacteristics(attCharacteristicUuids.HeartRateMeasurement); 

심장 박동수와 함께 I는 배터리 상태를 필요 : 예를 들어 , 나는 그럼 난 인사 serivice 및 HRM의 특성에 대한 액세스 권한을 얻을 수 있습니다 인덱스 0으로 장치를 선택합니다. 동일한 (이미 선택된) 장치의 배터리 서비스에 액세스하려면 어떻게합니까? 우리가 시작하기 전에

답변

0

일부 정보 :

당신은 할 당신이 그들을 스캔하기 전에, 컴퓨터와 블루투스 장치 를 페어링해야합니다! 당신이 블루투스 장치의 배터리 수명을 알고 싶다면

ListBox1.Items.Clear(); 

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

foreach (var device in devices) 
{ 
    ListBox1.Items.Add(device); 
} 

:

Listing your paired devices

How to get the battery level after connect to the BLE device?

한 번에 여러 서비스에 액세스하기를, 당신이 필요 "다시 연결" 장치에 :

장치 A는 장치 B에서 S를 처리하기 위해 한 번에 하나씩 만 연결할 수 있습니다. 장치 A는 장치 B, C, D 및 E 등에서 서비스 S에 동시에 연결할 수 있습니다.

@alanjmcf

출처 : Establishing multiple bluetooth SPPs at the same time

그러나 정말 "포함 된 서비스"를 반환 않기 때문에, 방법 GetAllIncludedServices();와 혼동하지 않습니다. 한 대답은 an other question에 있습니다 :

아마도 "포함 된 서비스"를 얻고 싶지 않습니다. 포함 된 서비스는 BLE의 특별한 개념으로, 내가 사용하고있는 서비스가 다른 서비스를 연결하는 데 사용되는 것인지 의심 스럽습니다.

@Emil

+0

장치 페어링 및 장치 목록에 문제가 없습니다. HRM을받지 않고도 인생을 개선하는 데 아무런 문제가 없습니다. 내가 선택한 장치의 두 가지 servicies에 액세스하는 데 문제가 있습니다. –

관련 문제