UNPKG

raspi-io-server-utils

Version:

Utilities for interacting with Raspberry IOs and Raspbian

37 lines 2.6 kB
"use strict"; 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=