From 999ad768255eb2dc21ae58195dacd90dd2a7efa2 Mon Sep 17 00:00:00 2001 From: Federico Barresi Date: Tue, 2 Apr 2019 22:36:43 +0200 Subject: [PATCH 1/2] included nuget symbols --- Sharp7.Rx/Sharp7.Rx.csproj | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Sharp7.Rx/Sharp7.Rx.csproj b/Sharp7.Rx/Sharp7.Rx.csproj index adc56e5..3b8b25d 100644 --- a/Sharp7.Rx/Sharp7.Rx.csproj +++ b/Sharp7.Rx/Sharp7.Rx.csproj @@ -10,6 +10,8 @@ Reactive framework for Sharp7, the Ethernet S7 PLC communication suite https://github.com/evopro-ag/Sharp7Reactive https://raw.githubusercontent.com/evopro-ag/Sharp7Reactive/master/LICENSE + true + snupkg From e3600e30d138990c42cd5cacc3362d25c333e838 Mon Sep 17 00:00:00 2001 From: Stefan Werner Date: Fri, 20 Sep 2019 15:29:24 +0200 Subject: [PATCH 2/2] Changed from select to select many implementation in transfer with handshake --- Sharp7.Rx/Extensions/ObservableExtensions.cs | 23 -------------------- Sharp7.Rx/Extensions/PlcExtensions.cs | 9 ++++++-- 2 files changed, 7 insertions(+), 25 deletions(-) diff --git a/Sharp7.Rx/Extensions/ObservableExtensions.cs b/Sharp7.Rx/Extensions/ObservableExtensions.cs index 0b98c69..052b6ee 100644 --- a/Sharp7.Rx/Extensions/ObservableExtensions.cs +++ b/Sharp7.Rx/Extensions/ObservableExtensions.cs @@ -16,20 +16,6 @@ namespace Sharp7.Rx.Extensions { internal static class ObservableExtensions { - public static IObservable Select(this IObservable source, Func selector) - { - return source - .Select(x => Observable.FromAsync(async () => await selector(x))) - .Concat(); - } - - public static IObservable Select(this IObservable source, Func> selector) - { - return source - .Select(x => Observable.FromAsync(async () => await selector(x))) - .Concat(); - } - public static IObservable LogAndRetry(this IObservable source, ILogger logger, string message) { return source @@ -101,14 +87,5 @@ namespace Sharp7.Rx.Extensions return new CompositeDisposable(serialDisposable, subscription); }); } - - public static IObservable SelectMany(this IObservable source, Func selector) - { - return source.SelectMany(async item => - { - await selector(item); - return Unit.Default; - }); - } } } \ No newline at end of file diff --git a/Sharp7.Rx/Extensions/PlcExtensions.cs b/Sharp7.Rx/Extensions/PlcExtensions.cs index 23cbcf5..88259cf 100644 --- a/Sharp7.Rx/Extensions/PlcExtensions.cs +++ b/Sharp7.Rx/Extensions/PlcExtensions.cs @@ -1,4 +1,5 @@ using System; +using System.Reactive; using System.Reactive.Disposables; using System.Reactive.Linq; using System.Threading.Tasks; @@ -28,13 +29,17 @@ namespace Sharp7.Rx.Extensions notification .Where(trigger => trigger) - .Select(_ => ReadDataAndAcknowlodge(plc, readData, ackTriggerAddress)) + .SelectMany(_ => ReadDataAndAcknowlodge(plc, readData, ackTriggerAddress)) .Subscribe(observer) .AddDisposableTo(subscriptions); notification .Where(trigger => !trigger) - .Select(_ => plc.SetValue(ackTriggerAddress, false)) + .SelectMany(async _ => + { + await plc.SetValue(ackTriggerAddress, false); + return Unit.Default; + }) .Subscribe() .AddDisposableTo(subscriptions);