UNPKG

autograph

Version:

A visual data routing automation tool.

64 lines (53 loc) 1.29 kB
/** * Component to fire a bang at regular, settable interval. * * @class * @type {*} */ var ClockComponent = BaseComponent.extend({ label: "clock", inputs: { toggle: { name: "toggle", description: "Turn the clock off or on." }, period: { name: "period", description: "Period of the clock in milliseconds." } }, outputs: { output: {name: "output"} }, defaults: { period: 1000, running: true }, initialize: function () { BaseComponent.prototype.initialize.call(this); // reset clock when period changes this.on("change:period", function () { clearTimeout(this.timeoutId); this.tick(); }); this.tick(); }, receiveBang: function () { if (this.get("running")) { this.set("running", false); } else { this.set("running", true); this.tick(); } }, tick: function () { var self = this; this.timeoutId = setTimeout(function () { if (self.get("running")) { self.sendBang(); self.tick(); } }, this.get("period")); } });