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 | 
桌面浏览器兼容性
暂无兼容数据