/// <summary> /// Discover the known characteristic and read on a set interval /// </summary> /// <param name="peripheral"></param> /// <param name="serviceUuid"></param> /// <param name="characteristicUuid"></param> /// <param name="timeSpan"></param> /// <returns></returns> public static IObservable <CharacteristicGattResult> ReadIntervalCharacteristic(this IPeripheral peripheral, Guid serviceUuid, Guid characteristicUuid, TimeSpan timeSpan) => peripheral .GetKnownCharacteristics(serviceUuid, characteristicUuid) .Select(ch => ch.ReadInterval(timeSpan)) .Switch();
/// <summary> /// Discover the characteristic and write to it /// </summary> /// <param name="peripheral"></param> /// <param name="serviceUuid"></param> /// <param name="characteristicUuid"></param> /// <param name="withResponse"></param> /// <param name="data"></param> /// <returns></returns> public static IObservable <CharacteristicGattResult> WriteCharacteristic(this IPeripheral peripheral, Guid serviceUuid, Guid characteristicUuid, byte[] data, bool withResponse = true) => peripheral .GetKnownCharacteristics(serviceUuid, characteristicUuid) .Select(x => x.Write(data, withResponse)) .Switch();