UNPKG

susi-forge

Version:
40 lines (36 loc) 1.34 kB
var TemperatureController = { lastTemp: 0.0, notifyThreshold: 0.1, init: function(){ var self = this; susi.registerProcessor("demo::temperature::get", self.getTemp.bind(self)); susi.registerConsumer("heartbeat::five",function(evt){ susi.publish({ topic: "demo::temperature::get" },function(res){ log(JSON.stringify(res)); var currentTemp = res.payload.temperature; if(currentTemp !== null && Math.abs(currentTemp-self.lastTemp) > self.notifyThreshold){ self.lastTemp = currentTemp; susi.publish({ topic: "demo::temperature::update", payload: { temperature: currentTemp } }); } }); }); log("Temperature-Controller init ready."); }, getTemp: function(event){ MainController.syscall('get-temperature',function(res){ log(JSON.stringify(res)); var stdout = res.payload.stdout; var arr = stdout.split("\r\n"); var tempStr = arr[1]; event.payload = {temperature: parseFloat(tempStr)}; susi.ack(event); }); } };