gpt4 book ai didi

Javascript与串口通信

转载 作者:行者123 更新时间:2023-11-30 11:17:40 24 4
gpt4 key购买 nike

我正在研究串行端口通信。要求是使用javascript通过串口与硬件通信。我正在研究 chrome WEB-USB-API现在

使用此 API,我能够连接到设备。现在我想向连接的设备发送命令,有人可以指导我吗?

device.controlTransferOut({requestType: 'class',recipient:'interface',request: 0x22,value: 0x01,index: 0x02})

以上代码在 web-usb-api 文档页面上给出,但无法了解如何通过它发送任何命令。

任何与 javascript 和串行端口通信相关的指导都会非常有帮助。

最佳答案

USB 协议(protocol)和 USB CDC-ACM(“串行”的奇特名称)协议(protocol)的一些背景知识是必要的,因为这里的上下文是:控制传输发送和接收少量数据,通常用于启用和禁用设备功能。上面代码片段中发送的控制传输来自 USB CDC-ACM 协议(protocol),是一个 SET_CONTROL_LINE_STATE 命令。当发送到实际的 USB 串行适配器时,它告诉适配器在串行线路上断言 DTR 信号,这允许连接的串行设备检测到主机已准备好接收数据。在一个简单地模拟 USB 串行适配器的设备中,就像为这个例子编写的那样,它只是一个指示,表明所有主机软件都已经初始化,并且准备好让设备发送数据。

现在,有了这个背景,应该清楚这不是您向设备发送自己的命令的方式。设备希望它们在虚拟串行端口上作为数据发送,而不是作为有关其状态的控制信号。为此,您需要使用 transferOut() 函数。这接受两个参数,第一个是发送数据的端点号,第二个是数据本身。在博客文章的示例中,仅使用了 transferIn() 函数。在此示例中,它从端点 5 读取 64 个字节。虽然文章中未显示,但将数据发送回设备的端点是端点 4。对于您自己的设备,您应该检查 USB 设备描述符以确定适当的端点用于发送和接收数据。这些描述符在 USBDevice 对象的 configurations 属性下可用。

关于Javascript与串口通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50962199/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com