SerialPort - 提供对主机设备串口的访问
SerialPort
是 Web Serial API
的接口,提供对主机设备串口的访问。
构造函数
此接口的实例可以通过调用 Serial
接口的方法获得,因此它没有自己的构造函数。
属性
SerialPort.readable
只读
返回一个 ReadableStream
,用于从连接到端口的设备接收数据。
SerialPort.writable
只读
返回一个 WritableStream
,用于向连接到端口的设备发送数据。
方法
SerialPort.getInfo()
返回使用包含端口属性的对象解析的 Promise
。
SerialPort.open()
返回打开端口时解析的 Promise
。默认情况下,端口以 8 个数据位、1 个停止位和无奇偶校验打开。
SerialPort.setSignals()
在端口上设置控制信号并返回一个 Promise
,当它们被设置时解析。
SerialPort.getSignals()
返回一个 Promise
,它解析为一个包含端口控制信号当前状态的对象。
SerialPort.close()
返回一个 Promise
,在端口关闭时解析。
事件
connect
当端口连接到设备时触发的事件。
disconnect
当端口与设备断开连接时触发的事件。
实例
打开一个端口
在串口上通信之前,必须将其打开。打开端口允许站点指定控制数据传输和接收方式的必要参数。开发人员应该查看他们要连接的设备的文档,以获取适当的参数。
await port.open({ baudRate: /* 选择您的波特率 */ });
当 open()
返回的 Promise
解析后,即可访问 readable
和 writable
属性,获取 ReadableStream
和 WritableStream
实例,用于在连接的设备上收发数据。
从端口读取数据
以下实例显示如何从端口读取数据。外部循环处理非致命错误,创建一个新的读取器,直到遇到致命错误并且 readable
变为 null
。
while (port.readable) {
const reader = port.readable.getReader();
try {
while (true) {
const { value, done } = await reader.read();
if (done) {
// 读取器已取消。
break;
}
// 处理读取的值
}
} catch (error) {
// 处理错误...
} finally {
reader.releaseLock();
}
}
将数据写入端口
下面的实例显示如何将字符串写入端口。在传输前,TextEncode
会将字符串转换为 Uint8Array
。
const encoder = new TextEncoder();
const writer = port.writable.getWriter();
await writer.write(encoder.encode("PING"));
writer.releaseLock();
规范
规范 |
---|
Web Serial API # dom-serialport |
桌面浏览器兼容性
暂无兼容数据