chrome.serial

说明

使用 chrome.serial API 对连接到串行端口的设备执行读写操作。

权限

serial

类型

ConnectionInfo

属性

  • bitrate

    数字可选

    请参阅 ConnectionOptions.bitrate。如果使用的是非标准比特率,或者查询底层设备时出错,此字段可能会省略或不准确。

  • bufferSize

    number

    查看ConnectionOptions.bufferSize

  • connectionId

    number

    串行端口连接的 ID。

  • ctsFlowControl

    布尔值 选填

    请参阅 ConnectionOptions.ctsFlowControl。如果在查询底层设备时出错,可以省略此字段。

  • dataBits

    DataBits 可选

    请参阅 ConnectionOptions.dataBits。如果在查询底层设备时出错,可以省略此字段。

  • name

    string

    查看ConnectionOptions.name

  • parityBit

    ParityBit(可选)

    请参阅 ConnectionOptions.parityBit。如果在查询底层设备时出错,可以省略此字段。

  • 已暂停

    boolean

    此标记指示是否阻止连接触发 onReceive 事件。

  • 持久性

    boolean

    查看ConnectionOptions.persistent

  • receiveTimeout

    number

    查看ConnectionOptions.receiveTimeout

  • sendTimeout

    number

    查看ConnectionOptions.sendTimeout

  • stopBits

    StopBits 可选

    请参阅 ConnectionOptions.stopBits。如果在查询底层设备时出错,可以省略此字段。

ConnectionOptions

属性

  • bitrate

    数字可选

    要打开的连接的请求比特率。为了与最广泛的硬件兼容,此数字应与常用的比特率之一相符,例如 110、300、1200、2400、4800、9600、14400、19200、38400、57600、115200。当然,连接到串行端口的设备并不能保证一定支持请求的比特率,即使端口本身支持该比特率也是如此。默认情况下,9600 将传递。

  • bufferSize

    数字可选

    用于接收数据的缓冲区大小。默认值为 4096。

  • ctsFlowControl

    布尔值 选填

    此标记指示是否启用 RTS/CTS 硬件流控制。默认值为 false。

  • dataBits

    DataBits 可选

    默认情况下,"eight" 将传递。

  • name

    字符串(可选)

    与连接相关联的应用定义字符串。

  • parityBit

    ParityBit(可选)

    默认情况下,"no" 将传递。

  • 持久性

    布尔值 选填

    此标记指示在应用暂停时是否应使连接保持打开状态(请参阅管理应用生命周期)。默认值为“false”。加载应用时,可以使用 getConnections 提取之前使用永久性磁盘=true 打开的任何串行连接。

  • receiveTimeout

    数字可选

    在引发带有“超时”错误的 onReceiveError 事件之前,等待新数据的最长时间(以毫秒为单位)。如果为零,则不会针对连接引发接收超时错误。默认值为 0。

  • sendTimeout

    数字可选

    在调用包含“超时”错误的回调之前,等待 send 操作完成的最长时间(以毫秒为单位)。如果为零,则不会触发发送超时错误。默认值为 0。

  • stopBits

    StopBits 可选

    默认情况下,"one" 将传递。

DataBits

枚举

DeviceControlSignals

属性

  • cts

    boolean

    CTS(清除后发送)。

  • DCD

    boolean

    DCD(数据载体检测)或 RLSD(接收线信号/ 检测)。

  • DSR

    boolean

    DSR(数据集就绪)。

  • Ri

    boolean

    RI(环形指示器)。

DeviceInfo

属性

  • displayName

    字符串(可选)

    人类可读的底层设备的显示名称(如果可以从主机驱动程序查询)。

  • path

    string

    设备的系统路径。它应作为 path 参数传递给 chrome.serial.connect,以便连接到此设备。

  • productId

    数字可选

    一个 USB 产品 ID(如果能为底层设备确定此 ID)。

  • vendorId

    数字可选

    PCI 或 USB 供应商 ID(如果可以为底层设备确定此 ID)。

HostControlSignals

属性

  • dtr

    布尔值 选填

    DTR(数据终端就绪)。

  • RTS

    布尔值 选填

    RTS(请求发送)。

ParityBit

枚举

ReceiveError

枚举

"disconnection"
连接已断开。

"timeout"
receiveTimeout 毫秒内未收到任何数据。

"device_lost"
设备很可能已断开与主机的连接。

"break"
设备检测到中断情况。

"frame_error"
设备检测到了取景错误。

"overrun"
发生了字符缓冲区溢出。下一个字符会丢失。

"buffer_overflow"
输入缓冲区溢出。输入缓冲区没有空间,或者在文件结束 (EOF) 字符之后接收到了字符。

"parity_error"
设备检测到奇异错误。

"system_error"
发生系统错误,连接可能无法恢复。

ReceiveErrorInfo

属性

  • connectionId

    number

    连接标识符。

  • error

    指明出了什么问题的错误代码。

ReceiveInfo

属性

  • connectionId

    number

    连接标识符。

  • data

    ArrayBuffer

    收到的数据。

SendError

枚举

"disconnection"
连接已断开。

"pending"
发送已在等待处理。

"timeout"
发送超时。

"system_error"
发生系统错误,连接可能无法恢复。

SendInfo

属性

  • bytesSent

    number

    已发送的字节数。

  • error

    SendError 可选

    如果发生错误,则为错误代码。

StopBits

枚举

方法

clearBreak()

Promise Chrome 45 及更高版本
chrome.serial.clearBreak(
  connectionId: number,
  callback?: function,
)

恢复给定连接上的字符传输,并将传输线置于不间断状态。

参数

  • connectionId

    number

    连接的 ID。

  • callback

    函数(可选)

    callback 参数如下所示:

    (result: boolean)=>void

    • 结果

      boolean

返回

  • Promise<boolean>

    Chrome 117 及更高版本

    只有 Manifest V3 及更高版本支持 Promise,其他平台需要使用回调。

connect()

Promise
chrome.serial.connect(
  path: string,
  options?: ConnectionOptions,
  callback?: function,
)

连接到指定的串行端口。

参数

  • path

    string

    要打开的串行端口的系统路径。

  • 选项

    端口配置选项。

  • callback

    函数(可选)

    callback 参数如下所示:

    (connectionInfo: ConnectionInfo)=>void

返回

  • Chrome 117 及更高版本

    只有 Manifest V3 及更高版本支持 Promise,其他平台需要使用回调。

disconnect()

Promise
chrome.serial.disconnect(
  connectionId: number,
  callback?: function,
)

与串行端口断开连接。

参数

  • connectionId

    number

    已打开连接的 ID。

  • callback

    函数(可选)

    callback 参数如下所示:

    (result: boolean)=>void

    • 结果

      boolean

返回

  • Promise<boolean>

    Chrome 117 及更高版本

    只有 Manifest V3 及更高版本支持 Promise,其他平台需要使用回调。

flush()

Promise
chrome.serial.flush(
  connectionId: number,
  callback?: function,
)

清空指定连接的输入和输出缓冲区中的所有字节。

参数

  • connectionId

    number

  • callback

    函数(可选)

    callback 参数如下所示:

    (result: boolean)=>void

    • 结果

      boolean

返回

  • Promise<boolean>

    Chrome 117 及更高版本

    只有 Manifest V3 及更高版本支持 Promise,其他平台需要使用回调。

getConnections()

Promise
chrome.serial.getConnections(
  callback?: function,
)

检索应用所拥有的当前打开的串行端口连接的列表。

参数

返回

  • Promise<ConnectionInfo[]>

    Chrome 117 及更高版本

    只有 Manifest V3 及更高版本支持 Promise,其他平台需要使用回调。

getControlSignals()

Promise
chrome.serial.getControlSignals(
  connectionId: number,
  callback?: function,
)

检索指定连接上的控制信号状态。

参数

返回

  • Chrome 117 及更高版本

    只有 Manifest V3 及更高版本支持 Promise,其他平台需要使用回调。

getDevices()

Promise
chrome.serial.getDevices(
  callback?: function,
)

返回有关系统中可用串行设备的信息。每次调用此方法时,系统都会重新生成该列表。

参数

  • callback

    函数(可选)

    callback 参数如下所示:

    (ports: DeviceInfo[])=>void

返回

  • Promise<DeviceInfo[]>

    Chrome 117 及更高版本

    只有 Manifest V3 及更高版本支持 Promise,其他平台需要使用回调。

getInfo()

Promise
chrome.serial.getInfo(
  connectionId: number,
  callback?: function,
)

检索指定连接的状态。

参数

  • connectionId

    number

    已打开连接的 ID。

  • callback

    函数(可选)

    callback 参数如下所示:

    (connectionInfo: ConnectionInfo)=>void

返回

  • Chrome 117 及更高版本

    只有 Manifest V3 及更高版本支持 Promise,其他平台需要使用回调。

send()

Promise
chrome.serial.send(
  connectionId: number,
  data: ArrayBuffer,
  callback?: function,
)

将数据写入指定连接。

参数

  • connectionId

    number

    连接的 ID。

  • data

    ArrayBuffer

    要发送的数据。

  • callback

    函数(可选)

    callback 参数如下所示:

    (sendInfo: SendInfo)=>void

返回

  • Promise<SendInfo>

    Chrome 117 及更高版本

    只有 Manifest V3 及更高版本支持 Promise,其他平台需要使用回调。

setBreak()

Promise Chrome 45 及更高版本
chrome.serial.setBreak(
  connectionId: number,
  callback?: function,
)

挂起给定连接上的字符传输,并将传输线置于中断状态,直到调用 clearBreak。

参数

  • connectionId

    number

    连接的 ID。

  • callback

    函数(可选)

    callback 参数如下所示:

    (result: boolean)=>void

    • 结果

      boolean

返回

  • Promise<boolean>

    Chrome 117 及更高版本

    只有 Manifest V3 及更高版本支持 Promise,其他平台需要使用回调。

setControlSignals()

Promise
chrome.serial.setControlSignals(
  connectionId: number,
  signals: HostControlSignals,
  callback?: function,
)

设置指定连接上控制信号的状态。

参数

  • connectionId

    number

    连接的 ID。

  • 要发送到设备的信号集会发生变化。

  • callback

    函数(可选)

    callback 参数如下所示:

    (result: boolean)=>void

    • 结果

      boolean

返回

  • Promise<boolean>

    Chrome 117 及更高版本

    只有 Manifest V3 及更高版本支持 Promise,其他平台需要使用回调。

setPaused()

Promise
chrome.serial.setPaused(
  connectionId: number,
  paused: boolean,
  callback?: function,
)

暂停或取消暂停打开的连接。

参数

  • connectionId

    number

    已打开连接的 ID。

  • 已暂停

    boolean

    此标记指示是暂停还是取消暂停。

  • callback

    函数(可选)

    callback 参数如下所示:

    ()=>void

返回

  • Promise<void>

    Chrome 117 及更高版本

    只有 Manifest V3 及更高版本支持 Promise,其他平台需要使用回调。

update()

Promise
chrome.serial.update(
  connectionId: number,
  options: ConnectionOptions,
  callback?: function,
)

在打开的串行端口连接上更新选项设置。

参数

  • connectionId

    number

    已打开连接的 ID。

  • 端口配置选项。

  • callback

    函数(可选)

    callback 参数如下所示:

    (result: boolean)=>void

    • 结果

      boolean

返回

  • Promise<boolean>

    Chrome 117 及更高版本

    只有 Manifest V3 及更高版本支持 Promise,其他平台需要使用回调。

活动

onReceive

chrome.serial.onReceive.addListener(
  callback: function,
)

从连接中读取数据时引发的事件。

参数

onReceiveError

chrome.serial.onReceiveError.addListener(
  callback: function,
)

运行时在串行端口上等待数据时发生错误时引发的事件。引发此事件后,连接可设置为 paused"timeout" 错误不会导致连接暂停。

参数