diff --git a/dist/digital-pin.js b/dist/digital-pin.js index d51ee11..1e2c01b 100644 --- a/dist/digital-pin.js +++ b/dist/digital-pin.js @@ -87,24 +87,28 @@ }); }; - DigitalPin.prototype.digitalRead = function() { - var readData, - _this = this; + DigitalPin.prototype.digitalRead = function(interval) { + var readData; if (this.mode !== 'r') { this.self._setMode('r'); } readData = null; - FS.readFile(this.pinFile, function(err, data) { + 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); + console.log(data.toString()); return _this.self.emit('digitalRead', data); } }); - return readData; }; DigitalPin.prototype._setMode = function(mode, emitConnect) { diff --git a/examples/raspi_digitalread.coffee b/examples/raspi_digitalread.coffee index 74f765a..881510d 100644 --- a/examples/raspi_digitalread.coffee +++ b/examples/raspi_digitalread.coffee @@ -12,6 +12,6 @@ Cylon.robot ] work: (my) -> - my.button.on 'push', -> my.led.toggle() + my.button.on 'push', console.log("Reading pin...") .start() diff --git a/src/digital-pin.coffee b/src/digital-pin.coffee index ac719d3..4790d67 100644 --- a/src/digital-pin.coffee +++ b/src/digital-pin.coffee @@ -62,22 +62,23 @@ namespace 'Cylon.IO', -> @self.emit('digitalWrite', value) ) - digitalRead: -> + digitalRead: (interval) -> @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) + console.log(data.toString()) @self.emit('digitalRead', data) ) - readData - # Sets the mode for the GPIO pin by writing the correct values to the pin reference files _setMode: (mode, emitConnect = false) -> if mode == 'w'