SerialPort - 提供对主机设备串口的访问

安全上下文
该功能仅在部分或所有支持的浏览器中的安全上下文(HTTPS)中可用。

SerialPortWeb 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 解析后,即可访问 readablewritable属性,获取 ReadableStreamWritableStream 实例,用于在连接的设备上收发数据。

从端口读取数据

以下实例显示如何从端口读取数据。外部循环处理非致命错误,创建一个新的读取器,直到遇到致命错误并且 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

桌面浏览器兼容性

暂无兼容数据