blob: 9ce96e633c7fa76cedd6a5c17a79755161037ca9 (
plain)
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
47
48
49
|
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Tango.Core;
using Tango.Logging;
using Tango.PMR;
using Tango.PMR.Stubs;
using Tango.Transport;
namespace Tango.Stubs.Stubs
{
[Stub("Progress", "Check for multiple response request", StubDirection.ToMachine)]
public class Progress : StubBase
{
public Progress(ITransporter transporter) : base(transporter)
{
Amount = 100;
Delay = 4;
}
[ParameterItem(Minimum = null, Maximum = null, Default = 100.0)]
public double Amount { get; set; }
[ParameterItem(Minimum = null, Maximum = null, Default = 4.0)]
public double Delay { get; set; }
protected override Task<string> OnRun(Action<String> multiResponseCallback)
{
Transporter.SendContinuousRequest<ProgressRequest, ProgressResponse>(MessageFactory.CreateTangoMessage<ProgressRequest>(new ProgressRequest()
{
Amount = (int)Amount,
Delay = (int)Delay,
})).Subscribe((x) =>
{
multiResponseCallback(x.Message.Progress.ToString());
}, (ex) =>
{
multiResponseCallback(ex.Message);
}, () =>
{
multiResponseCallback("Completed!");
});
return Task.FromResult<String>("");
}
}
}
|