Use Timer driver in IoT example.
This commit is contained in:
parent
43e94b83b4
commit
e54b6566f5
|
@ -1,6 +1,5 @@
|
||||||
assertion type switchState(on);
|
assertion type switchState(on);
|
||||||
assertion type powerDraw(watts);
|
assertion type powerDraw(watts);
|
||||||
assertion type time(now);
|
|
||||||
assertion type remoteClick();
|
assertion type remoteClick();
|
||||||
assertion type tvAlert(text);
|
assertion type tvAlert(text);
|
||||||
assertion type switchAction(on);
|
assertion type switchAction(on);
|
||||||
|
@ -107,37 +106,63 @@ function spawnPowerDrawMonitor() {
|
||||||
}
|
}
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////
|
||||||
// Clock and "timeout listener"
|
// Timeout listener
|
||||||
|
|
||||||
function spawnClock() {
|
|
||||||
actor {
|
|
||||||
setInterval(Syndicate.Dataspace.wrap(function () {
|
|
||||||
:: time(+(new Date()));
|
|
||||||
}), 200);
|
|
||||||
forever {
|
|
||||||
assert componentPresent('real time clock');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function spawnTimeoutListener() {
|
function spawnTimeoutListener() {
|
||||||
actor {
|
actor {
|
||||||
this.mostRecentTime = 0;
|
|
||||||
this.powerOnTime = null;
|
|
||||||
|
|
||||||
forever {
|
forever {
|
||||||
on asserted powerDraw($watts) {
|
during powerDraw($watts) {
|
||||||
this.powerOnTime = (watts > 0) ? this.mostRecentTime : null;
|
init {
|
||||||
|
if (watts > 0) {
|
||||||
|
var powerOnTime = Date.now();
|
||||||
|
forever {
|
||||||
|
on asserted Syndicate.Timer.timeLaterThan(powerOnTime + 3000) {
|
||||||
|
forever { assert tvAlert('Stove on too long?'); }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
on message time($now) {
|
|
||||||
this.mostRecentTime = now;
|
|
||||||
}
|
|
||||||
assert tvAlert('Stove on too long?')
|
|
||||||
when (this.powerOnTime !== null && this.mostRecentTime - this.powerOnTime > 3000);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// function spawnTimeoutListener() {
|
||||||
|
// actor {
|
||||||
|
// forever {
|
||||||
|
// on asserted powerDraw($watts) {
|
||||||
|
// if (watts > 0) {
|
||||||
|
// var powerOnTime = Date.now();
|
||||||
|
// state {
|
||||||
|
// on asserted Syndicate.Timer.timeLaterThan(powerOnTime + 3000) {
|
||||||
|
// forever { assert tvAlert('Stove on too long?'); }
|
||||||
|
// }
|
||||||
|
// } until {
|
||||||
|
// case asserted powerDraw(0); // alt: on retracted powerDraw(watts);
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
|
||||||
|
// function spawnTimeoutListener() {
|
||||||
|
// actor {
|
||||||
|
// this.mostRecentTime = 0;
|
||||||
|
// this.powerOnTime = null;
|
||||||
|
// forever {
|
||||||
|
// on asserted powerDraw($watts) {
|
||||||
|
// this.powerOnTime = (watts > 0) ? this.mostRecentTime : null;
|
||||||
|
// }
|
||||||
|
// on message Syndicate.Timer.periodicTick(200) {
|
||||||
|
// this.mostRecentTime = Date.now();
|
||||||
|
// }
|
||||||
|
// assert tvAlert('Stove on too long?')
|
||||||
|
// when (this.powerOnTime !== null && this.mostRecentTime - this.powerOnTime > 3000);
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////
|
||||||
// Failure monitor
|
// Failure monitor
|
||||||
|
|
||||||
|
@ -178,13 +203,13 @@ $(document).ready(function () {
|
||||||
ground dataspace G {
|
ground dataspace G {
|
||||||
Syndicate.JQuery.spawnJQueryDriver();
|
Syndicate.JQuery.spawnJQueryDriver();
|
||||||
Syndicate.DOM.spawnDOMDriver();
|
Syndicate.DOM.spawnDOMDriver();
|
||||||
|
Syndicate.Timer.spawnTimerDriver();
|
||||||
|
|
||||||
spawnTV();
|
spawnTV();
|
||||||
spawnRemoteControl();
|
spawnRemoteControl();
|
||||||
spawnRemoteListener();
|
spawnRemoteListener();
|
||||||
spawnStoveSwitch();
|
spawnStoveSwitch();
|
||||||
spawnPowerDrawMonitor();
|
spawnPowerDrawMonitor();
|
||||||
spawnClock();
|
|
||||||
spawnTimeoutListener();
|
spawnTimeoutListener();
|
||||||
|
|
||||||
spawnFailureMonitor();
|
spawnFailureMonitor();
|
||||||
|
|
Loading…
Reference in New Issue