opengpio
Version:
A performant c++ based general purpose GPIO controller for linux devices. OpenGPIO is written using libgpiod, line & chip based abstractions.
42 lines (41 loc) • 1.31 kB
JavaScript
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.Pin = exports.Direction = void 0;
const lib_1 = __importDefault(require("../lib"));
var Direction;
(function (Direction) {
Direction[Direction["Input"] = 0] = "Input";
Direction[Direction["Output"] = 1] = "Output";
})(Direction || (exports.Direction = Direction = {}));
class Pin {
constructor(gpio, direction) {
this.gpio = gpio;
this.direction = direction;
this.getter = () => false;
this.setter = () => { };
this.cleanup = () => { };
if (direction === Direction.Input) {
const [getter, cleanup] = lib_1.default.input(gpio.chip, gpio.line);
this.getter = getter;
this.cleanup = cleanup;
}
else if (direction === Direction.Output) {
const [setter, cleanup] = lib_1.default.output(gpio.chip, gpio.line);
this.setter = setter;
this.cleanup = cleanup;
}
}
stop() {
this.cleanup();
}
get value() {
return this.getter();
}
set value(value) {
this.setter(value);
}
}
exports.Pin = Pin;
;