javascript - NodeJS Event Loops & Listening for Events -


i have door sensor attached raspberry pi. check if door has been opened, below script runs on 2 second interval. if has been opened, post request made external api server.

this works great, goal make post request containing information of how long door opened , when opened. first thought use node events & eventemitter capabilities i'm unsure on implementation of this.

var rest = require('restler'); var gpio = require('pi-gpio');  setinterval(function(){   gpio.read(16, function(err, value) { // sensor attached pin 16     if(err) throw err;     if(value === 1){ // if closed, value 0       console.log("door opened");       rest.post('http://192.168.6.109:3000/door/save', {               data: {                 door: 'open'               }       }).on('complete', function(data, response){           console.log('door status code: ' + response.statuscode);       });     }   }); },2000); 

you need 2 things: timestamp , elapsed time between open , close events. can send information server. work:

var rest = require('restler'); var gpio = require('pi-gpio');  var open;  setinterval(function(){     gpio.read(16, function(err, value) { // sensor attached pin          if(err) throw err;         if(value == '1'){ // if closed, value '0'             console.log("door opened");             open = date.now ();         }else{             //"0" assumed             console.log("door closed");              //check whether door opened             if (open){                 var elapsed = date.now () - open;                  rest.post('http://192.168.6.109:3000/door/save', {                     data: {                         door: 'open',                         opentime: open,                         elapsedtime: elapsed                     }                 }).on('complete', function(data, response){                         console.log('door status code: ' + response.statuscode);                 });                  open = null;             }         }     }); },2000); 

but i'm afraid elapsed time multiple of 2000. try decrease interval time.


Comments

Popular posts from this blog

apache - Remove .php and add trailing slash in url using htaccess not loading css -

inno setup - TLabel or TNewStaticText - change .Font.Style on Focus like Cursor changes with .Cursor -