public async void SendCommandTo1StChar(IReadOnlyList <GattCharacteristic> characteristics, byte[] commandToWrite) { var characteristic = characteristics[0]; Debug.WriteLine("Try to write to " + CharacteristicUuidsResolver.GetNameFromUuid(characteristic.Uuid)); try { var writer = new DataWriter(); writer.WriteBytes(commandToWrite); await characteristic.WriteValueAsync(writer.DetachBuffer()); } catch { } }
private static void ValidateChars(string deviceId, GattDeviceService service, Guid charsUuid) { var chars = service.GetCharacteristics(charsUuid); if (chars == null || chars.Count == 0) { return; } var charsName = CharacteristicUuidsResolver.GetNameFromUuid(charsUuid); Debug.WriteLine($" {chars.Count} found for {charsName}"); foreach (GattCharacteristic characteristic in chars) { var charName = CharacteristicUuidsResolver.GetNameFromUuid(characteristic.Uuid); var friendlyDesc = characteristic.UserDescription; Debug.WriteLine($" {charName} - {friendlyDesc} - {characteristic.ProtectionLevel}"); } }
public async void LoadDevicesCharacteristics(List <DeviceInformation> parrotDevices) { foreach (var device in parrotDevices) { try { var service = await GattDeviceService.FromIdAsync(device.Id); if (null == service) { continue; } var characteristics = service.GetAllCharacteristics(); if (null == characteristics || characteristics.Count <= 0) { return; } Debug.WriteLine($"{characteristics.Count} chars found for {device.Id}"); AddLogAction($"{characteristics.Count} chars found for {device.Id}"); foreach (var characteristic in characteristics) { try { var charName = CharacteristicUuidsResolver.GetNameFromUuid(characteristic.Uuid); Debug.WriteLine("char name: " + charName); AddLogAction($"{characteristics.Count} chars found for {device.Id}"); // read properties Debug.WriteLine("char name: " + characteristic.CharacteristicProperties); } catch { } } } catch { Debug.WriteLine("0 chars found for " + device.Id); } } }
public async void SendCommandToAllChar(IReadOnlyList <GattCharacteristic> characteristics, byte[] commandToWrite) { foreach (var characteristic in characteristics) { Debug.WriteLine("Try to write to " + CharacteristicUuidsResolver.GetNameFromUuid(characteristic.Uuid)); try { var writer = new DataWriter(); writer.WriteBytes(commandToWrite); await characteristic.WriteValueAsync(writer.DetachBuffer()); Debug.WriteLine("Write sucessfull"); } catch { Debug.WriteLine("Write error"); } } }
private Dictionary <string, RsCharacteristic> CompletePropsFromServiceChars(GattDeviceService service, string deviceId, Dictionary <string, RsCharacteristic> dicCharacteristics) { var characteristics = service.GetAllCharacteristics(); foreach (var characteristic in characteristics) { var charName = CharacteristicUuidsResolver.GetNameFromUuid(characteristic.Uuid); Debug.WriteLine(characteristic.Uuid + " - " + charName); if (charName == "undefined") { continue; } var rsCharacteristic = new RsCharacteristic { Characteristic = characteristic, CharName = charName, DeviceId = deviceId }; dicCharacteristics.Add(charName, rsCharacteristic); switch (charName) { case "undefined": Undefined = characteristic; break; case "GapDeviceName": GapDeviceName = characteristic; break; case "GapAppearance": GapAppearance = characteristic; break; case "GapPeripheralPreferredConnectionParameters": GapPeripheralPreferredConnectionParameters = characteristic; break; case "GattServiceChanged": GattServiceChanged = characteristic; break; case "Parrot_TourTheStairsParrotA01": TourTheStairsParrotA01 = characteristic; break; case "Parrot_Stop": Stop = characteristic; break; case "Parrot_PowerMotors": PowerMotors = characteristic; break; case "Parrot_DateTime": DateTime = characteristic; break; case "Parrot_EmergencyStop": EmergencyStop = characteristic; break; case "Parrot_InitCount1_20": InitCount1To20 = characteristic; break; case "Parrot_AIF": Aif = characteristic; break; case "Parrot_B01": B01 = characteristic; break; case "Parrot_B0E_BC_BD": B0E_BC_BD = characteristic; break; case "Parrot_Battery_B0F_BF_C0": B0F_BF_C0 = characteristic; break; case "Parrot_B1B_E3_E4": B1B_E3_E4 = characteristic; break; case "Parrot_B1C_E6_E7": B1C_E6_E7 = characteristic; break; case "Parrot_B1F": B1F = characteristic; break; case "Parrot_FC1": Fc1 = characteristic; break; case "Parrot_D22": D22 = characteristic; break; case "Parrot_D23": D23 = characteristic; break; case "Parrot_D24": D24 = characteristic; break; case "Parrot_D52": D52 = characteristic; break; case "Parrot_D53": D53 = characteristic; break; case "Parrot_D54": Fc1 = characteristic; break; default: Debug.WriteLine("not found for " + charName); break; } } return(dicCharacteristics); }