Avoid using assert/retract directly in IoT alerting
This commit is contained in:
parent
6591091bb6
commit
5c5da4e569
|
@ -121,7 +121,6 @@ function spawnClock() {
|
||||||
}
|
}
|
||||||
|
|
||||||
function spawnTimeoutListener() {
|
function spawnTimeoutListener() {
|
||||||
var message = tvAlert('Stove on too long?');
|
|
||||||
actor {
|
actor {
|
||||||
this.mostRecentTime = 0;
|
this.mostRecentTime = 0;
|
||||||
this.powerOnTime = null;
|
this.powerOnTime = null;
|
||||||
|
@ -132,12 +131,9 @@ function spawnTimeoutListener() {
|
||||||
}
|
}
|
||||||
on message time($now) {
|
on message time($now) {
|
||||||
this.mostRecentTime = now;
|
this.mostRecentTime = now;
|
||||||
if (this.powerOnTime !== null && this.mostRecentTime - this.powerOnTime > 3000) {
|
|
||||||
Syndicate.Dataspace.stateChange(Syndicate.assert(message));
|
|
||||||
} else {
|
|
||||||
Syndicate.Dataspace.stateChange(Syndicate.retract(message));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
assert tvAlert('Stove on too long?')
|
||||||
|
when (this.powerOnTime !== null && this.mostRecentTime - this.powerOnTime > 3000);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -146,17 +142,14 @@ function spawnTimeoutListener() {
|
||||||
// Failure monitor
|
// Failure monitor
|
||||||
|
|
||||||
function spawnFailureMonitor() {
|
function spawnFailureMonitor() {
|
||||||
function messageFor(who) {
|
|
||||||
return tvAlert('FAILURE: ' + who);
|
|
||||||
}
|
|
||||||
|
|
||||||
actor {
|
actor {
|
||||||
forever {
|
forever {
|
||||||
on asserted componentPresent($who) {
|
|
||||||
Syndicate.Dataspace.stateChange(Syndicate.retract(messageFor(who)));
|
|
||||||
}
|
|
||||||
on retracted componentPresent($who) {
|
on retracted componentPresent($who) {
|
||||||
Syndicate.Dataspace.stateChange(Syndicate.assert(messageFor(who)));
|
state {
|
||||||
|
assert tvAlert('FAILURE: ' + who);
|
||||||
|
} until {
|
||||||
|
case asserted componentPresent(who);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue