raspi-io-server-utils
Version:
Utilities for interacting with Raspberry IOs and Raspbian
37 lines • 2.6 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const EventEmitter = require('events');
const rpio = require('rpio');
/**
* Digital output, keeps track of the state.
*/
class DigitalOutput extends EventEmitter {
constructor(pin, inverted = false) {
super();
this._pin = pin;
this._enabled = false;
this._low = inverted ? rpio.HIGH : rpio.LOW;
this._high = inverted ? rpio.LOW : rpio.HIGH;
try {
rpio.open(pin, rpio.OUTPUT, this._low);
}
catch (e) {
throw new Error(`Could not open input pin ${pin}: ${e.message || e}`);
}
}
get status() {
return {
pin: this._pin,
enabled: this.enabled
};
}
get enabled() {
return this._enabled;
}
set enabled(enabled) {
this._enabled = enabled;
rpio.write(this._pin, enabled ? this._high : this._low);
}
}
exports.DigitalOutput = DigitalOutput;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlnaXRhbC1vdXRwdXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaW8vZGlnaXRhbC1vdXRwdXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxNQUFNLFlBQVksR0FBRyxPQUFPLENBQUUsUUFBUSxDQUFFLENBQUM7QUFDekMsTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUFFLE1BQU0sQ0FBRSxDQUFDO0FBRS9COztHQUVHO0FBQ0gsTUFBYSxhQUFjLFNBQVEsWUFBWTtJQU8zQyxZQUFhLEdBQVksRUFBRSxXQUFxQixLQUFLO1FBQ2pELEtBQUssRUFBRSxDQUFDO1FBRVIsSUFBSSxDQUFDLElBQUksR0FBRyxHQUFHLENBQUM7UUFDaEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFDdEIsSUFBSSxDQUFDLElBQUksR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7UUFDNUMsSUFBSSxDQUFDLEtBQUssR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7UUFFN0MsSUFBSTtZQUNBLElBQUksQ0FBQyxJQUFJLENBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBRSxDQUFDO1NBQzVDO1FBQUMsT0FBUSxDQUFDLEVBQUc7WUFDVixNQUFNLElBQUksS0FBSyxDQUFFLDRCQUE0QixHQUFHLEtBQUssQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBRSxDQUFDO1NBQzNFO0lBQ0wsQ0FBQztJQUVELElBQUksTUFBTTtRQUNOLE9BQU87WUFDSCxHQUFHLEVBQUUsSUFBSSxDQUFDLElBQUk7WUFDZCxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87U0FDeEIsQ0FBQTtJQUNMLENBQUM7SUFFRCxJQUFJLE9BQU87UUFDUCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDekIsQ0FBQztJQUVELElBQUksT0FBTyxDQUFFLE9BQWlCO1FBQzFCLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxLQUFLLENBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUUsQ0FBQztJQUM5RCxDQUFDO0NBRUo7QUF0Q0Qsc0NBc0NDIn0=