win-duino
Version:
Arduino framework for use node.js on Windows based on duino
45 lines (39 loc) • 1.04 kB
JavaScript
var events = require('events'),
util = require('util');
/*
* Main Button constructor
* Process options
* Tell the board to set it up
*/
var Button = function (options) {
if (!options || !options.board) throw new Error('Must supply required options to Button');
this.board = options.board;
this.pin = options.pin || 13;
this.down = false;
this.board.pinMode(this.pin, 'in');
var self = this;
setInterval(function () {
self.board.digitalRead(self.pin);
}, 50);
this.board.on('data', function (m) {
m = m.slice(0, -1).split('::');
var err = null;
if (m.length > 1 && m[0] == self.pin) {
// 0 is up
// 1 is down
if (m[1] == 0 && self.down) {
self.down = false;
self.emit('up', err);
}
if (m[1] == 1 && !self.down) {
self.down = true;
self.emit('down', err);
}
}
});
}
/*
* EventEmitter, I choose you!
*/
util.inherits(Button, events.EventEmitter);
module.exports = Button;