grovepi/Software/NodeJS/libs/sensors/fourDigitDigitalSensor.js
2025-03-21 16:04:17 +01:00

97 lines
No EOL
3 KiB
JavaScript

var DigitalSensor = require('./base/digitalSensor')
var commands = require('../commands')
function FourDigitDigitalSensor(pin) {
DigitalSensor.apply(this, Array.prototype.slice.call(arguments))
}
FourDigitDigitalSensor.prototype = new DigitalSensor()
FourDigitDigitalSensor.prototype.init = function() {
this.board.pinMode(this.board.OUTPUT)
return this.board.writeBytes(commands.fourDigitInit.concat([this.pin, commands.unused, commands.unused]))
}
FourDigitDigitalSensor.prototype.setNumber = function(value, useLeadingZero) {
this.board.pinMode(this.board.OUTPUT)
var byte1 = value & 255
var byte2 = value >> 8
var command = useLeadingZero ? commands.fourDigitValue : commands.fourDigitValueZeros
var write = this.board.writeBytes(command.concat([this.pin, byte1, byte2]))
if (write) {
this.board.wait(500)
return true
} else {
return false
}
}
FourDigitDigitalSensor.prototype.setBrightness = function(brightness) {
this.board.pinMode(this.board.OUTPUT)
var write = this.board.writeBytes(commands.fourDigitBrightness.concat([this.pin, brightness, commands.unused]))
if (write) {
this.board.wait(500)
return true
} else {
return false
}
}
FourDigitDigitalSensor.prototype.setDigit = function(segment, value) {
this.board.pinMode(this.board.OUTPUT)
var write = this.board.writeBytes(commands.fourDigitIndividualDigit.concat([this.pin, segment, value]))
if (write) {
this.board.wait(500)
return true
} else {
return false
}
}
FourDigitDigitalSensor.prototype.setSegment = function(segment, leds) {
this.board.pinMode(this.board.OUTPUT)
var write = this.board.writeBytes(commands.fourDigitIndividualLeds.concat([this.pin, segment, leds]))
if (write) {
this.board.wait(500)
return true
} else {
return false
}
}
FourDigitDigitalSensor.prototype.setScore = function(left, right) {
this.board.pinMode(this.board.OUTPUT)
var write = this.board.writeBytes(commands.fourDigitScore.concat([this.pin, left, right]))
if (write) {
this.board.wait(500)
return true
} else {
return false
}
}
FourDigitDigitalSensor.prototype.monitor = function(analog, duration) {
this.board.pinMode(this.board.OUTPUT)
var write = this.board.writeBytes(commands.fourDigitAnalogRead.concat([this.pin, analog, duration]))
if (write) {
this.board.wait(duration/1000 + 500) // TODO: This should be tested
return true
} else {
return false
}
}
FourDigitDigitalSensor.prototype.on = function() {
this.board.pinMode(this.board.OUTPUT)
var write = this.board.writeBytes(commands.fourDigitAllOn.concat([this.pin, commands.unused, commands.unused]))
if (write) {
this.board.wait(500)
return true
} else {
return false
}
}
FourDigitDigitalSensor.prototype.off = function() {
this.board.pinMode(this.board.OUTPUT)
var write = this.board.writeBytes(commands.fourDigitAllOff.concat([this.pin, commands.unused, commands.unused]))
if (write) {
this.board.wait(500)
return true
} else {
return false
}
}
module.exports = FourDigitDigitalSensor