我正在使用nodejs对一些东西进行排序,然后将其发送到FTDI,但我无法弄清楚如何做到这一点。
我试着从npm安装ftdi,但是它的安装脚本失败了,所以现在我想知道如何不用它(教人钓鱼)。我不想让这个特定的包工作,但我真的很想知道它是如何工作的。
到目前为止我的逻辑是:
serialport。usb.getDeviceList(),但没有办法从列表中分辨出什么是什么。这一切看起来都是对的吗?或者,是否有人愿意向我展示一个小例子,说明如何找到一个ftdi设备并将其发送给串行数据(假设驱动程序已经安装)?
发布于 2019-04-14 20:27:38
在这个网站上找到了一个答案:https://itp.nyu.edu/physcomp/labs/labs-serial-communication/lab-serial-communication-with-node-js/
npm i serialport(我使用的是类型记录,因此如果需要,可以将其转换为js )。
然后,列出所有的端口。尝试列出您的ftdi插件,并将其拔出。你应该多看一条。如果不是..。抱歉的。我的名字叫“/dev/tty.usbSeries-A5XK3RJT”
import SerialPort from 'serialport';
// list serial ports:
SerialPort.list(function (err, ports) {
ports.forEach(function(port) {
console.log("PORT", port.comName);
});
});一旦您有了您的串口名称,只需发送一个缓冲区的Uint8Array到它。例如:
import SerialPort from 'serialport';
// baudRate is specific to my project
const myPort = new SerialPort("/dev/tty.usbserial-A5XK3RJT", { baudRate: 57600 });
var bellOnMidi = new Uint8Array(3);
bellOnMidi[0] = (0b1001 << 4) + 2;
bellOnMidi[1] = 1;
bellOnMidi[2] = 0;
myPort.write(Buffer.from(bellOnMidi));
var bellOffMidi = new Uint8Array(3);
bellOffMidi[0] = (0b1000 << 4) + 2;
bellOffMidi[1] = 1;
bellOffMidi[2] = 0;
setTimeout(() => myPort.write(Buffer.from(bellOffMidi)), 500);我仍然不确定usb驱动程序会发生什么,但这可能是另一个Q& A。
https://stackoverflow.com/questions/55679528
复制相似问题