/// <summary>
 /// Continuously reads RSSI from a connected peripheral
 /// WARNING: you really don't want to run this with an Android GATT connection
 /// </summary>
 /// <param name="peripheral"></param>
 /// <param name="readInterval"></param>
 /// <returns></returns>
 public static IObservable <int> ReadRssiContinuously(this IPeripheral peripheral, TimeSpan?readInterval = null) => Observable
 .Interval(readInterval ?? TimeSpan.FromSeconds(1))
 .Select(_ => peripheral.ReadRssi())
 .Switch();