繁体   English   中英

Javascript和串口通信

[英]Javascript and serial port communication

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

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

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

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

任何与javascript和串口通信相关的指南都会非常有用。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM