Merge pull request #52 from hybridgroup/21-beaglebone-adaptor

Added GPIO examples for beaglebone.
This commit is contained in:
Ron Evans 2013-12-03 18:09:37 -08:00
commit a6b442116f
4 changed files with 41 additions and 9 deletions

10
dist/digital-pin.js vendored
View File

@ -21,15 +21,15 @@
namespace('Cylon.IO', function() {
return this.DigitalPin = (function(_super) {
var GPIO_DIRECTION_READ, GPIO_DIRECTION_WRITE, GPIO_PATH, HIGH, LOW;
var GPIO_PATH, GPIO_READ, GPIO_WRITE, HIGH, LOW;
__extends(DigitalPin, _super);
GPIO_PATH = "/sys/class/gpio";
GPIO_DIRECTION_READ = "in";
GPIO_READ = "in";
GPIO_DIRECTION_WRITE = "out";
GPIO_WRITE = "out";
HIGH = 1;
@ -154,11 +154,11 @@
}
this.mode = mode;
if (mode === 'w') {
return FS.writeFile(this._directionPath(), GPIO_DIRECTION_WRITE, function(err) {
return FS.writeFile(this._directionPath(), GPIO_WRITE, function(err) {
return _this._setModeCallback(err, emitConnect);
});
} else if (mode === 'r') {
return FS.writeFile(this._directionPath(), GPIO_DIRECTION_READ, function(err) {
return FS.writeFile(this._directionPath(), GPIO_READ, function(err) {
return _this._setModeCallback(err, emitConnect);
});
}

15
examples/bbb_blink.coffee Normal file
View File

@ -0,0 +1,15 @@
Cylon = require('..')
# Initialize the robot
Cylon.robot
connection:
name: 'beaglebone', adaptor: 'beaglebone'
device:
name: 'led', driver: 'led', pin: 'P9_12'
work: (my) ->
# we do our thing here
every 1.second(), -> my.led.toggle()
.start()

View File

@ -0,0 +1,17 @@
Cylon = require('..')
# Initialize the robot
Cylon.robot
connection:
name: 'beaglebone', adaptor: 'beaglebone'
devices:
[
{name: 'led', driver: 'led', pin: 'P9_12'},
{name: 'button', driver: 'button', pin: 'P9_14'}
]
work: (my) ->
my.button.on 'push', () -> my.led.toggle()
.start()

View File

@ -19,8 +19,8 @@ namespace 'Cylon.IO', ->
class @DigitalPin extends EventEmitter
GPIO_PATH = "/sys/class/gpio"
GPIO_DIRECTION_READ = "in"
GPIO_DIRECTION_WRITE = "out"
GPIO_READ = "in"
GPIO_WRITE = "out"
HIGH = 1
LOW = 0
@ -111,11 +111,11 @@ namespace 'Cylon.IO', ->
_setMode: (mode, emitConnect = false) ->
@mode = mode
if mode is 'w'
FS.writeFile(@_directionPath(), GPIO_DIRECTION_WRITE, (err) =>
FS.writeFile(@_directionPath(), GPIO_WRITE, (err) =>
@_setModeCallback(err, emitConnect)
)
else if mode is 'r'
FS.writeFile(@_directionPath(), GPIO_DIRECTION_READ, (err) =>
FS.writeFile(@_directionPath(), GPIO_READ, (err) =>
@_setModeCallback(err, emitConnect)
)