public async Task StartDiscoveryAsync(DiscoverMode mode = DiscoverMode.Generic, DiscoverSettings settings = null) { if (settings != null) { var activeValue = settings.Active ? (byte)1 : (byte)0; await _messageHub.GAP.SetScanParametersAsync(settings.Interval, settings.Window, activeValue); } var modeV4 = (SDK.V4.GAP.DiscoverMode)mode; await _messageHub.GAP.DiscoverAsync(modeV4); }
/// <summary> /// <para> /// This command starts the GAP discovery procedure to scan for advertising devices i.e. to perform a device /// discovery. /// </para> /// Scanning parameters can be configured with the <see cref="SetScanParametersAsync(ushort, ushort, bool)"/> /// <para> /// To cancel on an ongoing discovery process use the <see cref="EndProcedureAsync"/> /// </para> /// </summary> /// <param name="mode">GAP Discover modes</param> /// <returns></returns> public async Task DiscoverAsync(DiscoverMode mode) { var modeValue = (byte)mode; var commandValue = new[] { modeValue }; var responseValue = await WriteAsync(0x02, commandValue); var errorCode = BitConverter.ToUInt16(responseValue, 0); if (errorCode != 0) { throw new ErrorException(errorCode); } }