opengpio
Version:
A performant c++ based general purpose GPIO controller for linux devices. OpenGPIO is written using libgpiod, line & chip based abstractions.
35 lines (32 loc) • 996 B
text/typescript
export enum Edge {
Rising = 1,
Falling = -1,
Both = 0
}
export type Gpio = {
chip: number;
line: number;
};
// The type of the object returned by the native module.
export type DutyCycleSetter = (dutyCycle: number) => void;
export type FrequencySetter = (frequency: number) => void;
export type CleanupCallback = () => void;
export type PinSetter = (value: boolean) => void;
export type PinGetter = () => boolean;
export type WatchCallback = (value: boolean) => void;
export type OpenGpioBindings = {
info: () => string;
input: (chip: number, line: number) => [PinGetter, CleanupCallback];
output: (chip: number, line: number) => [PinSetter, CleanupCallback];
watch: (
chip: number,
line: number,
callback: WatchCallback,
) => [PinGetter, CleanupCallback];
pwm: (
chip: number,
line: number,
dutyCycle: number,
frequency: number
) => [DutyCycleSetter, FrequencySetter, CleanupCallback];
};