// build : 20240524 // gpio 输出,只能输出2种状态,高电平/低电平,如果接入继电器,则高电平是开,低电平是关 import { gpioClass } from './libvbar-b-dxgpio.so' const gpioObj = new gpioClass(); const gpio = {} /** * 初始化,只需要执行一次即可 * @returns true/false */ gpio.init = function () { return gpioObj.init(); } /** * 释放gpio资源 * @returns true/false */ gpio.deinit = function () { return gpioObj.exit(); } /** * 申请gpio,每个gpio只需要申请一次 * @param {number} gpio的标识,不同的设备不同的标识,必填 * @returns true/false */ gpio.request = function (gpio_) { let res = gpioObj.request(gpio_) if (!res) { return res } gpioObj.setFunc(gpio_, 0x04); return true } /** * 释放指定gpio * @param {number} gpio的标识,不同的设备不同的标识,必填 * @returns true/false */ gpio.free = function (gpio_) { return gpioObj.free(gpio_); } /** * 指定gpio输出高/低电平 * @param {number} gpio的标识,不同的设备不同的标识,必填 * @param {number} value 只能是1和0,1表示高电平,0表示低电平,缺省是高电平,必填 * @returns true/false */ gpio.setValue = function (gpio_, value) { return gpioObj.setValue(gpio_, value); } /** * 获取指定gpio当前的输出 :高/低电平 * @param {number} gpio的标识,不同的设备不同的标识,必填 * @returns 1和0,1表示高电平,0表示低电平 */ gpio.getValue = function (gpio_) { return gpioObj.getValue(gpio_); } /** * 申请gpio,每个gpio只需要申请一次 * @param {number} gpio的标识,不同的设备不同的标识,必填 * @returns true/false */ gpio.requestGpio = function (gpio_) { let res = gpioObj.request(gpio_) return res } /** * 设置gpio功能 * @param {number} gpio的标识,不同的设备不同的标识,必填 * @param {number} gpio功能属性,不同的设备不同的功能属性,必填 * @returns true/false */ gpio.setFuncGpio = function (gpio_, func) { let res = gpioObj.setFunc(gpio_, func) return res } /** * 设置指定gpio上拉状态 * @param {number} gpio的标识,不同的设备不同的标识,必填 * @param {number} state 上拉状态,必填 * @returns true/false */ gpio.setPullState = function (gpio_, state) { return gpioObj.setPullState(gpio_, state); } /** * 获取指定gpio上拉状态 * @param {number} gpio的标识,不同的设备不同的标识,必填 * @returns 上拉状态(int) */ gpio.getPullState = function (gpio_) { return gpioObj.getPullState(gpio_); } /** * 设置指定gpio的驱动能力 * @param {number} gpio的标识,不同的设备不同的标识,必填 * @param {number} strength 能力,必填 * @returns true/false */ gpio.setDriveStrength = function (gpio_, strength) { return gpioObj.setDriveStrength(gpio_, strength); } /** * 获取指定gpio的驱动能力 * @param {number} gpio的标识,不同的设备不同的标识,必填 * @returns 能力(int) */ gpio.getDriveStrength = function (gpio_) { return gpioObj.getDriveStrength(gpio_); } export default gpio;