1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
|
using System; using System.Reactive.Linq; using TwinCAT.Ads; using TwinRx;
var adsClient = new TcAdsClient(); adsClient.Connect(801);
var client = new TwinCatRxClient(adsClient);
var counter = client.ObservableFor<short>("MAIN.var1", 20);
counter.Subscribe(v => Console.WriteLine("Variable is now:" + v));
var buffered = counter.Buffer(10); buffered.Subscribe(v => Console.WriteLine("Last 10 values were:" + String.Join(" - ", v)));
var valuesWithTimestamp = counter.Select(i => new Tuple<short, DateTime>(i, DateTime.Now)); valuesWithTimestamp.Subscribe(Console.WriteLine);
valuesWithTimestamp .Sample(TimeSpan.FromSeconds(5)) .Subscribe(Console.WriteLine);
var myString = client.ObservableFor<string>("MAIN.var2"); myString.Subscribe(Console.WriteLine);
var valueEverySecond = Observable .Interval(TimeSpan.FromSeconds(1)) .Select(i => (short) i); var writer = client.StreamTo("MAIN.var3", valueEverySecond);
var evens = client.ObservableFor<short>("MAIN.var4").Where(i => i%2 == 0); var evensWithTimestamp = evens .Timestamp() .Zip( evens.TimeInterval(), (valWithTimestamp, interval) => new { val = "Even value is " + valWithTimestamp, interval } ); evensWithTimestamp.Subscribe(Console.WriteLine);
|
近期评论