UNPKG

@iiot2k/gpiox

Version:

Input/Output on any gpio library

201 lines (179 loc) 6.04 kB
/** * Copyright 2025 Derya Y. (iiot2k@gmail.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use node file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. **/ // for detail see API.md // gpio mode constans export const GPIO_MODE_INPUT_NOPULL: number; // 0 -> floating input export const GPIO_MODE_INPUT_PULLDOWN: number; // 1 -> input with pull down resistor export const GPIO_MODE_INPUT_PULLUP: number; // 2 -> input with pull up resistor export const GPIO_MODE_OUTPUT: number; // 3 -> output export const GPIO_MODE_OUTPUT_SOURCE: number; // 4 -> output source, Hi-Z on 0, connect to +3.3V on 1 export const GPIO_MODE_OUTPUT_SINK: number; // 5 -> output sink, Hi-Z on 0, connect to ground on 1 // pwm constans export const DUTY_MIN: number; // 0 -> min. duty cycle (%) export const DUTY_MAX: number; // 100 -> max. duty cycle (%) export const FREQ_MIN: number; // 1 -> min. pwm frequency (Hz) export const FREQ_MAX: number; // 1000 -> max. pwm frequency (Hz) export const FREQ_MAX_RT: number; // 50000 -> max. realtime pwm frequency (Hz) /** * returns error text on failure. * @returns error text */ export function error_text(): string; /** * returns addon version. * @returns version */ export function version(): string; /** * inits gpio. * * @param pin - gpio pin number 0..27 * @param mode - constant GPIO_MODE_.. * @param setval - debounce time in us for input, state to set 0/1 or true/false for output * @returns true on ok, false on error * * @note setval 0 for inputs disables debounce */ export function init_gpio( pin: number, mode: number, setval: number|boolean, ): boolean; /** * deinits gpio. * * @param pin - gpio pin number 0..27 * @returns true on ok, false on error * * @note GPIO pin is deinitialized when the program ends * @note stops also blink */ export function deinit_gpio(pin: number): boolean; /** * gets gpio state as boolean. * * @param pin - gpio pin number 0..27 * @returns true/false, undefined on error */ export function get_gpio(pin: number) : boolean; /** * gets gpio state as number. * * @param pin - gpio pin number 0..27 * @returns 0/1, undefined on error */ export function get_gpio_num(pin: number): number; /** * sets gpio state of output. * * @param pin - gpio pin number 0..27 * @param mode - constant GPIO_MODE_.. * @param value - state to set 0/1 or true/false * @returns true on ok, false on error */ export function set_gpio(pin:number, value: number|boolean): boolean; /** * toggle gpio output. * * @param pin - gpio pin number 0..27 * @returns true on ok, false on error */ export function toggle_gpio(pin: number): boolean; /** * blink gpio output. * * @param pin - gpio pin number 0..27 * @param period blink period in ms (1..), 0 stops blink * @returns true on ok, false on error */ export function blink_gpio(pin: number, period: number): boolean; /** * stop blink gpio output. * * @param pin - gpio pin number 0..27 * @returns true on ok, false on error * * @note call of read/write/toggle/pulse/pwm functions stops also blink */ export function stop_blink_gpio(pin: number): boolean; /** * pulse gpio output in ms. * * @param pin - gpio pin number 0..27 * @param period pulse period in ms (1..), 0 stops pulse * @returns true on ok, false on error */ export function pulse_gpio(pin: number, period: number): boolean; /** * pulse realtime gpio output in us. * * @param pin - gpio pin number 0..27 * @param period pulse period in us (1..), 0 stops pulse * @returns true on ok, false on error */ export function pulse_rt_gpio(pin: number, period: number): boolean; /** * stop pulse gpio output. * * @param pin - gpio pin number 0..27 * @returns true on ok, false on error * * @note call of read/write/toggle/blink/pwm functions stops also pulse */ export function stop_pulse_gpio(pin: number): boolean; /** * pwm gpio output. * * @param pin - gpio pin number 0..27 * @param frequency pwm frequency in Hz (1..FREQ_MAX), 0 stops pwm * @param dutycycle pwm dutycycle in % (0..100), 0 turns output off, 100 turns output on * @returns true on ok, false on error */ export function pwm_gpio(pin: number, frequency: number, dutycycle: number): boolean; /** * pwm realtime gpio output (may result in higher CPU usage). * * @param pin - gpio pin number 0..27 * @param frequency pwm frequency in Hz (1..FREQ_MAX_RT), 0 stops pwm * @param dutycycle pwm dutycycle in % (0..100), 0 turns output off, 100 turns output on * @returns true on ok, false on error */ export function pwm_rt_gpio(pin: number, frequency: number, dutycycle: number): boolean; /** * stop pwm gpio output. * * @param pin - gpio pin number 0..27 * @returns true on ok, false on error * * @note call of read/write/toggle/blink/pulse functions stops also pwm */ export function stop_pwm_gpio(pin: number): boolean; /** * returns pwm frequency. * if pwm not started default frequency is returned (400Hz) * * @param pin - gpio pin number 0..27 * @returns pwm frequency in Hz, undefined on error */ export function get_pwm_frequency(pin: number): number; /** * returns pwm duty cycle. * if pwm not started default duty cycle is returned (50%) * * @param pin - gpio pin number 0..27 * @returns duty cycle in %, undefined on error */ export function get_pwm_dutycycle(pin: number): number;