/// <summary> /// 按GUID 查找主服务 /// </summary> /// <param name="characteristic">GUID 字符串</param> /// <returns></returns> public async Task SelectDeviceService() { Guid guid = new Guid(ServiceGuid); CurrentDevice.GetGattServicesForUuidAsync(guid).Completed = (asyncInfo, asyncStatus) => { if (asyncStatus == AsyncStatus.Completed) { try { GattDeviceServicesResult result = asyncInfo.GetResults(); if (result.Services.Count > 0) { CurrentService = result.Services[CHARACTERISTIC_INDEX]; if (CurrentService != null) { asyncLock = true; GetCurrentWriteCharacteristic(); GetCurrentNotifyCharacteristic(); } } } catch (Exception ex) { Log4netHelper.Error(ex); } } }; }
/// <summary> /// 按GUID 查找主服务 /// </summary> /// <param name="characteristic">GUID 字符串</param> /// <returns></returns> public async Task SelectDeviceService() { Guid guid = new Guid(ServiceGuid); //foreach (var CurrentService in rr.GetResults().Services) //{ Debug.WriteLine(CurrentService.Uuid.ToString()); } CurrentDevice.GetGattServicesForUuidAsync(guid).Completed = (asyncInfo, asyncStatus) => { if (asyncStatus == AsyncStatus.Completed) { try { GattDeviceServicesResult result = asyncInfo.GetResults(); string msg = "主服务=" + CurrentDevice.ConnectionStatus; ValueChanged(MsgType.NotifyTxt, msg, CurrentDevice == null ? null : CurrentDevice.DeviceId); if (result.Services.Count > 0) { //Debug.WriteLine(result.Services[0].Uuid.ToString()); CurrentService = result.Services[CHARACTERISTIC_INDEX]; if (CurrentService != null) { asyncLock = true; //GetCurrentWriteCharacteristic(); GetCurrentNotifyCharacteristic(); } } else { msg = "没有发现服务,自动重试中"; ValueChanged(MsgType.NotifyTxt, msg, CurrentDevice == null ? null : CurrentDevice.DeviceId); SelectDeviceService(); } } catch (Exception e) { ValueChanged(MsgType.NotifyTxt, "没有发现服务,自动重试中", CurrentDevice == null ? null : CurrentDevice.DeviceId); SelectDeviceService(); } } }; }
/// <summary> /// 按GUID 查找主服务 /// </summary> /// <param name="characteristic">GUID 字符串</param> /// <returns></returns> public async Task SelectDeviceService() { Guid guid = new Guid(ServiceGuid); CurrentDevice.GetGattServicesForUuidAsync(guid).Completed = (asyncInfo, asyncStatus) => { if (asyncStatus == AsyncStatus.Completed) { try { GattDeviceServicesResult result = asyncInfo.GetResults(); string msg = "主服务=" + CurrentDevice.ConnectionStatus; ValueChanged(MsgType.NotifyTxt, msg); if (result.Services.Count > 0) { CurrentService = result.Services[CHARACTERISTIC_INDEX]; if (CurrentService != null) { asyncLock = true; GetCurrentWriteCharacteristic(); GetCurrentNotifyCharacteristic(); } } else { msg = "没有发现服务,自动重试中"; ValueChanged(MsgType.NotifyTxt, msg); SelectDeviceService(); } } catch (Exception e) { ValueChanged(MsgType.NotifyTxt, "没有发现服务,自动重试中"); SelectDeviceService(); } } }; }