56 lines
No EOL
2 KiB
JavaScript
56 lines
No EOL
2 KiB
JavaScript
var DigitalSensor = require('./base/digitalSensor')
|
|
var commands = require('../commands')
|
|
|
|
function LedBarDigitalSensor(pin, orientation) {
|
|
DigitalSensor.apply(this, Array.prototype.slice.call(arguments))
|
|
this.orientation = orientation
|
|
this.level = 0
|
|
}
|
|
LedBarDigitalSensor.prototype = new DigitalSensor()
|
|
|
|
LedBarDigitalSensor.prototype.init = function() {
|
|
return this.setOrientation(this.orientation)
|
|
}
|
|
LedBarDigitalSensor.prototype.setOrientation = function(orientation) {
|
|
this.board.pinMode(this.board.OUTPUT)
|
|
this.orientation = orientation
|
|
return this.board.writeBytes(commands.ledBarInit.concat([this.pin, this.orientation, commands.unused]))
|
|
}
|
|
LedBarDigitalSensor.prototype.setLevel = function(level) {
|
|
this.board.pinMode(this.board.OUTPUT)
|
|
this.level = level
|
|
return this.board.writeBytes(commands.ledBarLevel.concat([this.pin, this.level, commands.unused]))
|
|
}
|
|
LedBarDigitalSensor.prototype.setLed = function(led, state) {
|
|
this.board.pinMode(this.board.OUTPUT)
|
|
return this.board.writeBytes(commands.ledBarSetOne.concat([this.pin, led, state]))
|
|
}
|
|
LedBarDigitalSensor.prototype.toggleLed = function(led) {
|
|
this.board.pinMode(this.board.OUTPUT)
|
|
return this.board.writeBytes(commands.ledBarToggleOne.concat([this.pin, led, commands.unused]))
|
|
}
|
|
LedBarDigitalSensor.prototype.setBits = function(led, state) {
|
|
this.board.pinMode(this.board.OUTPUT)
|
|
var byte1 = state & 255
|
|
var byte2 = state >> 8
|
|
return this.board.writeBytes(commands.ledBarSet.concat([this.pin, byte1, byte2]))
|
|
}
|
|
LedBarDigitalSensor.prototype.getBits = function() {
|
|
this.board.pinMode(this.board.OUTPUT)
|
|
var byte1 = state & 255
|
|
var byte2 = state >> 8
|
|
var write = this.board.writeBytes(commands.ledBarGet.concat([this.pin, commands.unused, commands.unused]))
|
|
if (write) {
|
|
this.board.wait(200)
|
|
this.board.readByte()
|
|
var bytes = this.board.readBytes()
|
|
if (bytes instanceof Buffer)
|
|
return (bytes[1] ^ (bytes[2] << 8))
|
|
else
|
|
return false
|
|
} else {
|
|
return false
|
|
}
|
|
}
|
|
|
|
module.exports = LedBarDigitalSensor |