【问题标题】:How can I communicate from node js to ftdi? (without ftdi module)如何从节点 js 与 ftdi 通信? (不带 ftdi 模块)
【发布时间】:2019-04-14 20:03:22
【问题描述】:

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

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

到目前为止,我的逻辑是这样的:

  1. 我已经为 ftdi 安装了驱动程序。我的信念是,当我将它连接到我的计算机时,它和我的计算机会就如何通信达成一致。这个协议是什么,我想知道。也许关于如何发送/接收的参数?

  2. 我已经安装了一种从节点 js 连接到 USB 的方法,在这种情况下,我使用的是 npm usb。也许有更直接的路线?我在搜索中看到了serialport

  3. 我应该能够使用节点 USB 找到我的 ftdi。我试过使用usb.getDeviceList(),但没有办法从列表中辨别出什么是什么。

  4. 一旦我选择了设备,我应该能够向它发送数据(我的计算机会处理发生这种情况的物流)。

所有这些看起来都正确吗?或者,是否有人愿意向我展示一个查找 ftdi 设备并发送串行数据的小示例(假设已安装驱动程序)?

【问题讨论】:

  • 您使用的是哪个平台(Windows/Linux/MacOS)?您是否可以添加在安装 ftdi npm 包期间收到的错误消息?如果您使用的是 Linux/MacOS,您是否执行了install.sh脚本来安装基本驱动程序?你安装了哪个 Node.js 版本?
  • OSX,最新节点,不再愿意使用 npm ftdi。我想了解理想构建中发生了什么,而不是为我提供解决方案,所以我认为这些事情对这个问题都不重要。

标签: node.js ftdi


【解决方案1】:

在本站找到答案: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.usbserial-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 驱动程序发生了什么,但这可能是另一个问答。

【讨论】:

  • 我对项目有类似的要求。但是在写之后我没有得到回调值。错误和字节写入都返回未定义。也不采取任何行动。你能指导我吗? stackoverflow.com/questions/61486104/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多