/// <summary> /// Will discover all services/characteristics when connected state occurs /// </summary> /// <param name="peripheral"></param> /// <returns></returns> public static IObservable <IGattCharacteristic> WhenAnyCharacteristicDiscovered(this IPeripheral peripheral) => peripheral .WhenConnected() .Select(x => peripheral.DiscoverServices()) .Switch() .SelectMany(x => x.DiscoverCharacteristics());