Ich verbinde mit einem Magicblue Bluetooth LE LED-Licht mit C# unter Windows 10 und möchte in der Lage sein, seine Farben zu ändern.Wie kann ich mit C# alle Dienste für ein Bluetooth LE-Gerät (BLE) abrufen?
Ich bin in der Lage, den GattDeviceService zu bekommen und auf seine einzige Eigenschaft gut zugreifen. Ich bin jedoch nicht in der Lage, herauszufinden, wie ich zu den anderen beiden Diensten des Geräts komme. Einer von ihnen hat eine Schreibeigenschaft, um die RGB-Farbe einzustellen.
Mit meinem iPhone mit der LightBlue App und Microsofts BthGATTDump.exe kann ich die Dienste und Eigenschaften sehen. Ich dachte, sobald ich den GattDeviceService bekomme, konnte ich "GetAllIncludeServices()" aber das gibt eine leere Liste zurück. Wenn ich versuche, eine bestimmte Dienstleistung zu erhalten, für die ich die Guid habe, ist es nicht auch (siehe unten):
//Watcher for Bluetooth LE Services
private void StartBLEWatcher()
{
int discoveredServices = 0;
// Hook up handlers for the watcher events before starting the watcher
OnBLEAdded = async (watcher, deviceInfo) =>
{
Dispatcher.RunAsync(CoreDispatcherPriority.Low, async() =>
{
Debug.WriteLine("OnBLEAdded: " + deviceInfo.Id);
GattDeviceService service = await GattDeviceService.FromIdAsync(deviceInfo.Id);
var services = service.GetAllIncludedServices();
int count0 = services.Count; //returns 0
Guid G = new Guid("0000ffe5-0000-1000-8000-00805f9b34fb");
var services2 = service.GetIncludedServices(G);
int count = services2.Count; //returns 0 although this service "should" exist
var characteristics = service.GetAllCharacteristics();
int count2 = characteristics.Count; //return 1 This is the Gatt service with Notify
Im Fall ist es für jedermann nützlich mir zu helfen, unten ist der bthgattdump.exe Ausgang für die LED BLE-Gerät.
C:\Program Files (x86)\Windows Kits\10\Tools\x64\Bluetooth\BthGATTDump>bthgattdump
Microsoft Bluetooth GATT database viewer v1.00 Copyright (c) Microsoft Corp.
Please select device
0 - LEDBLE-CA913BE2
1 - HID OVER GATT
2: To quit
0
Selected device - LEDBLE-CA913BE2
Device Address - eb0cca913be2 (STATIC)
[Service] Handle=0x0001 Type=0x1800(GAP)
[Characteristic] Handle=0x0002 ValueHandle=0x0003 Type=0x2a00(Device Name) Properties=(Read/Write)
[Value] LEDBLE-CA913BE2
[Characteristic] Handle=0x0004 ValueHandle=0x0005 Type=0x2a01(Appearance) Properties=(Read)
[Value] [4000]
[Characteristic] Handle=0x0006 ValueHandle=0x0007 Type=0x2a04(Peripheral Preferred Connection Parameters) Properties=(Read)
[Value] [100018000000C800]
[Service] Handle=0x0008 Type=0x1801(GATT)
[Service] Handle=0x0009 Type=0xfff0
[Service] Handle=0x000a Type=0xffe5
[Characteristic] Handle=0x000b ValueHandle=0x000c Type=0xffe9 Properties=(WriteWithoutResponse)
[Service] Handle=0x000d Type=0xffe0
[Characteristic] Handle=0x000e ValueHandle=0x000f Type=0xffe4 Properties=(Notify)
[Descriptor] Handle=0x0010 Type=0x2902(Client Configuration)
[Value] No subscription
C:\Program Files (x86)\Windows Kits\10\Tools\x64\Bluetooth\BthGATTDump>
Welche dumme Sache fehlt mir?
Das war es ... Ich musste zurück zum Gerät gehen, um die Dienste zu bekommen. – burhop