1

我对 NodeJS 中的usb库有一些问题。我尝试通过 USB 向Armbian Linux的某个设备发送一些命令。我的代码看起来像这样

const usb = require("usb");
const elzabUSB = usb.findByIds(1155, 22336);

elzabUSB.open();

let interface = elzabUSB.interfaces[1];
let flag = false;

if (interface.isKernelDriverActive()) {
    flag = true;
    interface.detachKernelDriver();
}

interface.claim();

let out = interface.endpoints[0];

let cmd; // some data to be send 

out.transfer(cmd, function (err) { //
    if (err) console.log(err);
    console.log("OK");
});

setTimeout(() => {
    interface.release((err) => {
        if (err) console.log(err);
        try {
            if (flag) interface.attachKernelDriver(); // error here
            elzabUSB.close();
        } catch (err) {
            console.log(err);
        }
    });
}, 500);

因为我的主机是 Armbian Linux,所以我必须从我的 USB 中分离内核驱动程序,以至少对 Endpoints 做一些事情。当我尝试使用接口函数.attachKernelDriver()将设置重置为默认值时,我收到了这个错误......

{ Error: LIBUSB_ERROR_NOT_FOUND
    at Interface.attachKernelDriver (/home/felg/node_modules/usb/usb.js:330:21)
    at Interface.interface.release (/home/felg/usb.js:74:62)
    at Device.<anonymous> (/home/felg/node_modules/usb/usb.js:316:7) errno: -5 }

如果有人遇到此错误并且知道如何解决,请回复。

此致

4

0 回答 0