Updated DigitalPin and raspi_button example.

This commit is contained in:
Edgar O Silva 2013-11-06 13:44:37 -06:00
parent 250a0d0166
commit ff978f3a0d
3 changed files with 24 additions and 32 deletions

29
dist/digital-pin.js vendored
View File

@ -88,27 +88,22 @@
};
DigitalPin.prototype.digitalRead = function(interval) {
var readData;
var readData,
_this = this;
if (this.mode !== 'r') {
this.self._setMode('r');
}
readData = null;
return setInterval(this._readFileCallback, interval);
};
DigitalPin.prototype._readFileCallback = function() {
var _this = this;
return FS.readFile(this.pinFile, function(err, data) {
var readData;
if (err) {
return _this.self.emit('error', "Error occurred while reading from pin " + _this.pinNum);
} else {
readData = data;
console.log("Digital read VALUE ===>");
console.log(data.toString());
return _this.self.emit('digitalRead', data);
}
});
return setInterval(function() {
return FS.readFile(_this.pinFile, function(err, data) {
if (err) {
return _this.self.emit('error', "Error occurred while reading from pin " + _this.pinNum);
} else {
readData = data;
return _this.self.emit('digitalRead', data);
}
});
}, interval);
};
DigitalPin.prototype._setMode = function(mode, emitConnect) {

View File

@ -7,11 +7,11 @@ Cylon.robot
devices:
[
{name: 'led', driver: 'led', pin: 13},
{name: 'button', driver: 'button', pin: 2}
{name: 'led', driver: 'led', pin: 11},
{name: 'button', driver: 'button', pin: 7}
]
work: (my) ->
my.button.on 'push', console.log("Reading pin...")
my.button.on 'push', my.led.toggle()
.start()

View File

@ -66,18 +66,15 @@ namespace 'Cylon.IO', ->
@self._setMode('r') unless @mode == 'r'
readData = null
setInterval(@_readFileCallback, interval)
_readFileCallback: ->
FS.readFile(@pinFile, (err, data) =>
if err
@self.emit('error', "Error occurred while reading from pin #{ @pinNum }")
else
readData = data
console.log("Digital read VALUE ===>")
console.log(data.toString())
@self.emit('digitalRead', data)
)
setInterval(() =>
FS.readFile(@pinFile, (err, data) =>
if err
@self.emit('error', "Error occurred while reading from pin #{ @pinNum }")
else
readData = data
@self.emit('digitalRead', data)
)
, interval)
# Sets the mode for the GPIO pin by writing the correct values to the pin reference files
_setMode: (mode, emitConnect = false) ->