Neuron®
The Neuron® is the basis for the creation of open and secure federated networks for smart societies.
Loading...
Searching...
No Matches
OnTime.cs
1
using
System;
2
using
System.Threading.Tasks;
3
using
System.Xml;
4
using
Waher.Content
;
5
using
Waher.Persistence.Attributes
;
6
using
Waher.Service.IoTBroker.StateMachines.Model.Attributes
;
7
8
namespace
Waher.Service.IoTBroker.StateMachines.Model.Events
9
{
13
public
class
OnTime
:
TimedEventNode
14
{
15
private
ScriptableTimeSpanAttribute
value;
16
20
public
OnTime
()
21
: base()
22
{
23
}
24
28
[DefaultValueNull]
29
public
string
ValueDefinition
30
{
31
get
=> this.value?.
Definition
;
32
set
=> this.value =
new
ScriptableTimeSpanAttribute
(value,
this
);
33
}
34
38
public
override
string
LocalName
=> nameof(
OnTime
);
39
44
public
override
IStateMachineNode
Create
()
45
{
46
return
new
OnTime
();
47
}
48
53
public
override
Task
Parse
(XmlElement Xml)
54
{
55
this.value =
new
ScriptableTimeSpanAttribute
(Xml.InnerText,
this
);
56
57
return
base.Parse(Xml);
58
}
59
65
public
override
async Task<EventTimepoint>
GetEventTimepoint
(
EvaluationArguments
Arguments)
66
{
67
if
(this.value is
null
)
68
return
new
EventTimepoint
();
69
else
70
{
71
TimeSpan TS = await this.value.
Evaluate
(Arguments.
Variables
);
72
DateTime Now = DateTime.Now;
73
DateTime TP = Now.Date.Add(TS);
74
75
if
(TP < Now)
76
TP = TP.AddDays(Math.Ceiling(Now.Subtract(TP).TotalDays));
77
78
return
new
EventTimepoint
(Now, TP, everyDay);
79
}
80
}
81
82
private
static
readonly
Duration
everyDay =
Duration
.
FromDays
(1);
83
87
public
override
string
Label
=> this.value.
Definition
;
88
}
89
}
Waher.Service.IoTBroker.StateMachines.Model.Attributes.ScriptableAttribute.Evaluate
async Task< T > Evaluate(Variables Variables)
Evaluates the attribute
Definition:
ScriptableAttribute.cs:66
Waher.Service.IoTBroker.StateMachines.Model.Attributes.ScriptableAttribute.Definition
string Definition
Attribute definition
Definition:
ScriptableAttribute.cs:37
Waher.Service.IoTBroker.StateMachines.Model.Attributes.ScriptableTimeSpanAttribute
Scriptable string attribute.
Definition:
ScriptableTimeSpanAttribute.cs:9
Waher.Service.IoTBroker.StateMachines.Model.EvaluationArguments
Contains information required for evaluating script in a state-machine.
Definition:
EvaluationArguments.cs:15
Waher.Service.IoTBroker.StateMachines.Model.EvaluationArguments.Variables
Variables Variables
Current set of variables.
Definition:
EvaluationArguments.cs:47
Waher.Service.IoTBroker.StateMachines.Model.Events.OnTime
Event raised at a certain time.
Definition:
OnTime.cs:14
Waher.Service.IoTBroker.StateMachines.Model.Events.OnTime.Label
override string Label
UML Label for event.
Definition:
OnTime.cs:87
Waher.Service.IoTBroker.StateMachines.Model.Events.OnTime.Create
override IStateMachineNode Create()
Creates a new node of the corresponding type.
Definition:
OnTime.cs:44
Waher.Service.IoTBroker.StateMachines.Model.Events.OnTime.Parse
override Task Parse(XmlElement Xml)
Parses the State-machine node.
Definition:
OnTime.cs:53
Waher.Service.IoTBroker.StateMachines.Model.Events.OnTime.ValueDefinition
string ValueDefinition
Value definition.
Definition:
OnTime.cs:30
Waher.Service.IoTBroker.StateMachines.Model.Events.OnTime.LocalName
override string LocalName
Local name
Definition:
OnTime.cs:38
Waher.Service.IoTBroker.StateMachines.Model.Events.OnTime.GetEventTimepoint
override async Task< EventTimepoint > GetEventTimepoint(EvaluationArguments Arguments)
Gets the timepoint for when the event elapses.
Definition:
OnTime.cs:65
Waher.Service.IoTBroker.StateMachines.Model.Events.OnTime.OnTime
OnTime()
Event raised at a certain time.
Definition:
OnTime.cs:20
Waher.Service.IoTBroker.StateMachines.Model.Events.TimedEventNode.EventTimepoint
Contains information about when a timed event elapses.
Definition:
TimedEventNode.cs:43
Waher.Service.IoTBroker.StateMachines.Model.Events.TimedEventNode
Abstract base class for timed State-Machine event nodes.
Definition:
TimedEventNode.cs:18
Waher.Service.IoTBroker.StateMachines.Model.IStateMachineNode
Interface for State-Machine nodes
Definition:
IStateMachineNode.cs:11
Waher.Content
Definition:
Array.cs:6
Waher.Persistence.Attributes
Definition:
ArchivingTimeAttribute.cs:4
Waher.Service.IoTBroker.StateMachines.Model.Attributes
Definition:
ExpressionAttribute.cs:9
Waher.Service.IoTBroker.StateMachines.Model.Events
Definition:
EntryEventNode.cs:12
Waher.Content.Duration
Represents a duration value, as defined by the xsd:duration data type: http://www....
Definition:
Duration.cs:13
Waher.Content.Duration.FromDays
static Duration FromDays(int Days)
Creates a Duration object from a given number of days.
Definition:
Duration.cs:559
Waher.Service.IoTBroker
StateMachines
Model
Events
OnTime.cs
Generated by
1.9.5