首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从节点js到ftdi进行通信?(没有ftdi模块)

如何从节点js到ftdi进行通信?(没有ftdi模块)
EN

Stack Overflow用户
提问于 2019-04-14 20:03:22
回答 1查看 1K关注 0票数 1

我正在使用nodejs对一些东西进行排序,然后将其发送到FTDI,但我无法弄清楚如何做到这一点。

我试着从npm安装ftdi,但是它的安装脚本失败了,所以现在我想知道如何不用它(教人钓鱼)。我不想让这个特定的包工作,但我真的很想知道它是如何工作的。

到目前为止我的逻辑是:

  1. 我为ftdi安装了一个驱动程序。我的心声是,当我把它连接到我的电脑上时,它和我的电脑就如何沟通达成了协议。这个协议是什么,我想知道。也许是关于如何发送/接收的参数?
  2. 我已经安装了一种从节点js连接到usb的方法,在本例中我使用的是npm usb。也许还有更直接的路线?我在搜索中看到了serialport
  3. 我应该能够找到我的ftdi使用节点usb。我尝试过使用usb.getDeviceList(),但没有办法从列表中分辨出什么是什么。
  4. 一旦我选择了设备,我应该能够发送数据到它(用我的计算机处理物流如何发生)。

这一切看起来都是对的吗?或者,是否有人愿意向我展示一个小例子,说明如何找到一个ftdi设备并将其发送给串行数据(假设驱动程序已经安装)?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-14 20:27:38

在这个网站上找到了一个答案:https://itp.nyu.edu/physcomp/labs/labs-serial-communication/lab-serial-communication-with-node-js/

  1. 从ftdi安装驱动程序。他们会得到你的操作系统的最新指示。
  2. 安装npm i serialport

(我使用的是类型记录,因此如果需要,可以将其转换为js )。

然后,列出所有的端口。尝试列出您的ftdi插件,并将其拔出。你应该多看一条。如果不是..。抱歉的。我的名字叫“/dev/tty.usbSeries-A5XK3RJT”

代码语言:javascript
复制
import SerialPort from 'serialport';

// list serial ports:
SerialPort.list(function (err, ports) {
  ports.forEach(function(port) {
    console.log("PORT", port.comName);
  });
});

一旦您有了您的串口名称,只需发送一个缓冲区的Uint8Array到它。例如:

代码语言:javascript
复制
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。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55679528

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档