说明
使用 chrome.serial
API 对连接到串行端口的设备执行读写操作。
权限
serial
类型
ConnectionInfo
属性
-
比特率
number 可选
请参阅
ConnectionOptions.bitrate
。如果使用非标准比特率,或者在查询底层设备时发生错误,此字段可能会被省略或不准确。 -
bufferSize
数值
查看
ConnectionOptions.bufferSize
-
connectionId
数值
串行端口连接的 ID。
-
ctsFlowControl
布尔值(可选)
请参阅
ConnectionOptions.ctsFlowControl
。如果在查询底层设备时发生错误,则可以省略此字段。 -
dataBits
DataBits(可选)
请参阅
ConnectionOptions.dataBits
。如果在查询底层设备时发生错误,则可以省略此字段。 -
name
字符串
查看
ConnectionOptions.name
-
parityBit
ParityBit(奇偶校验位)可选
请参阅
ConnectionOptions.parityBit
。如果在查询底层设备时发生错误,则可以省略此字段。 -
已暂停
布尔值
此标志指示是否阻止连接触发 onReceive 事件。
-
持久性
布尔值
查看
ConnectionOptions.persistent
-
receiveTimeout
数值
查看
ConnectionOptions.receiveTimeout
-
sendTimeout
数值
查看
ConnectionOptions.sendTimeout
-
stopBits
StopBits(可选)
请参阅
ConnectionOptions.stopBits
。如果在查询底层设备时发生错误,则可以省略此字段。
ConnectionOptions
属性
-
比特率
number 可选
要打开的连接的请求比特率。为了与最广泛的硬件兼容,此数字应与常用的比特率之一匹配,例如 110、300、1200、2400、4800、9600、14400、19200、38400、57600、115200。当然,我们无法保证连接到串行端口的设备会支持请求的比特率,即使端口本身支持该比特率也是如此。默认情况下,系统会传递
9600
。 -
bufferSize
number 可选
用于接收数据的缓冲区大小。默认值为 4096。
-
ctsFlowControl
布尔值(可选)
此标志指示是否启用 RTS/CTS 硬件流控制。默认值为 false。
-
dataBits
DataBits(可选)
默认情况下,系统会传递
"eight"
。 -
name
字符串(选填)
与连接相关联的应用定义的字符串。
-
parityBit
ParityBit(奇偶校验位)可选
默认情况下,系统会传递
"no"
。 -
持久性
布尔值(可选)
一个标志,用于指示在应用暂停时是否应保持连接处于打开状态(请参阅管理应用生命周期)。默认值为“false”。加载应用后,可以使用
getConnections
提取之前使用 persistent=true 打开的任何串行连接。 -
receiveTimeout
number 可选
在抛出包含“超时”错误的
onReceiveError
事件之前,等待新数据的最长时间(以毫秒为单位)。如果为零,系统不会为连接引发接收超时错误。默认值为 0。 -
sendTimeout
number 可选
在调用包含“超时”错误的回调之前,等待
send
操作完成的最长时间(以毫秒为单位)。如果为零,则不会触发发送超时错误。默认值为 0。 -
stopBits
StopBits(可选)
默认情况下,系统会传递
"one"
。
DataBits
枚举
“seven”
“eight”
DeviceControlSignals
属性
-
cts
布尔值
CTS(Clear To Send)。
-
dcd
布尔值
DCD(数据载波检测)或 RLSD(接收线信号/ 检测)。
-
dsr
布尔值
DSR(数据集准备就绪)。
-
ri
布尔值
RI(铃声指示器)。
DeviceInfo
属性
-
displayName
字符串(选填)
底层设备的直观易懂的显示名称(如果可以从主机驱动程序查询)。
-
路径
字符串
设备的系统路径。应将其作为
path
参数传递给chrome.serial.connect
,以便连接到此设备。 -
productId
number 可选
USB 产品 ID(如果可以为底层设备确定)。
-
vendorId
number 可选
PCI 或 USB 供应商 ID(如果可以为底层设备确定)。
HostControlSignals
属性
-
dtr
布尔值(可选)
DTR(数据终端就绪)。
-
rts
布尔值(可选)
RTS(请求发送)。
ParityBit
枚举
“no”
"odd"
“even”
ReceiveError
枚举
“disconnected”
连接已断开。
"timeout"
receiveTimeout
毫秒内未收到任何数据。
"device_lost"
设备很可能已与主机断开连接。
“break”
设备检测到断开连接的情况。
"frame_error"
设备检测到取景错误。
“overrun”
发生了字符缓冲区溢出。下一个字符丢失。
"buffer_overflow"
发生了输入缓冲区溢出。输入缓冲区中没有空间,或者在文件结束 (EOF) 字符之后收到了字符。
"parity_error"
设备检测到奇偶性错误。
"system_error"
系统发生错误,连接可能无法恢复。
ReceiveErrorInfo
属性
-
connectionId
数值
连接标识符。
-
错误
一个错误代码,用于指明出现了什么问题。
ReceiveInfo
属性
-
connectionId
数值
连接标识符。
-
数据
ArrayBuffer
收到的数据。
SendError
枚举
“disconnected”
连接已断开。
“pending”
发送操作已待处理。
“timeout”
发送超时。
"system_error"
系统发生错误,连接可能无法恢复。
SendInfo
属性
-
bytesSent
数值
发送的字节数。
-
错误
SendError 可选
如果发生错误,则返回错误代码。
StopBits
枚举
“one”
“two”
方法
clearBreak()
chrome.serial.clearBreak(
connectionId: number,
callback?: function,
)
恢复给定连接上的字符传输,并将传输线路置于非中断状态。
参数
-
connectionId
数值
连接的 ID。
-
callback
函数(可选)
callback
参数如下所示:(result: boolean) => void
-
结果
布尔值
-
返回
-
Promise<boolean>
Chrome 117 及更高版本只有 Manifest V3 及更高版本支持 Promise,其他平台需要使用回调。
connect()
chrome.serial.connect(
path: string,
options?: ConnectionOptions,
callback?: function,
)
连接到给定的串行端口。
参数
-
路径
字符串
要打开的串行端口的系统路径。
-
选项
端口配置选项。
-
callback
函数(可选)
callback
参数如下所示:(connectionInfo: ConnectionInfo) => void
-
connectionInfo
-
返回
-
Promise<ConnectionInfo>
Chrome 117 及更高版本只有 Manifest V3 及更高版本支持 Promise,其他平台需要使用回调。
disconnect()
chrome.serial.disconnect(
connectionId: number,
callback?: function,
)
断开与串行端口的连接。
参数
-
connectionId
数值
已打开连接的 ID。
-
callback
函数(可选)
callback
参数如下所示:(result: boolean) => void
-
结果
布尔值
-
返回
-
Promise<boolean>
Chrome 117 及更高版本只有 Manifest V3 及更高版本支持 Promise,其他平台需要使用回调。
flush()
chrome.serial.flush(
connectionId: number,
callback?: function,
)
刷新给定连接的输入和输出缓冲区中的所有字节。
参数
-
connectionId
数值
-
callback
函数(可选)
callback
参数如下所示:(result: boolean) => void
-
结果
布尔值
-
返回
-
Promise<boolean>
Chrome 117 及更高版本只有 Manifest V3 及更高版本支持 Promise,其他平台需要使用回调。
getConnections()
chrome.serial.getConnections(
callback?: function,
)
检索应用当前拥有的打开的串行端口连接的列表。
参数
-
callback
函数(可选)
callback
参数如下所示:(connectionInfos: ConnectionInfo[]) => void
-
connectionInfos
-
返回
-
Promise<ConnectionInfo[]>
Chrome 117 及更高版本只有 Manifest V3 及更高版本支持 Promise,其他平台需要使用回调。
getControlSignals()
chrome.serial.getControlSignals(
connectionId: number,
callback?: function,
)
检索给定连接上的控制信号状态。
参数
-
connectionId
数值
连接的 ID。
-
callback
函数(可选)
callback
参数如下所示:(signals: DeviceControlSignals) => void
返回
-
Promise<DeviceControlSignals>DeviceControlSignals
Chrome 117 及更高版本只有 Manifest V3 及更高版本支持 Promise,其他平台需要使用回调。
getDevices()
chrome.serial.getDevices(
callback?: function,
)
返回系统上可用串行设备的相关信息。每次调用此方法时,系统都会重新生成列表。
参数
-
callback
函数(可选)
callback
参数如下所示:(ports: DeviceInfo[]) => void
-
ports
-
返回
-
Promise<DeviceInfo[]>
Chrome 117 及更高版本只有 Manifest V3 及更高版本支持 Promise,其他平台需要使用回调。
getInfo()
chrome.serial.getInfo(
connectionId: number,
callback?: function,
)
检索给定连接的状态。
参数
-
connectionId
数值
已打开连接的 ID。
-
callback
函数(可选)
callback
参数如下所示:(connectionInfo: ConnectionInfo) => void
-
connectionInfo
-
返回
-
Promise<ConnectionInfo>
Chrome 117 及更高版本只有 Manifest V3 及更高版本支持 Promise,其他平台需要使用回调。
send()
chrome.serial.send(
connectionId: number,
data: ArrayBuffer,
callback?: function,
)
将数据写入给定连接。
参数
-
connectionId
数值
连接的 ID。
-
数据
ArrayBuffer
要发送的数据。
-
callback
函数(可选)
callback
参数如下所示:(sendInfo: SendInfo) => void
-
sendInfo
-
返回
-
Promise<SendInfo>
Chrome 117 及更高版本只有 Manifest V3 及更高版本支持 Promise,其他平台需要使用回调。
setBreak()
chrome.serial.setBreak(
connectionId: number,
callback?: function,
)
暂停给定连接上的字符传输,并将传输线路置于中断状态,直到调用 clearBreak 为止。
参数
-
connectionId
数值
连接的 ID。
-
callback
函数(可选)
callback
参数如下所示:(result: boolean) => void
-
结果
布尔值
-
返回
-
Promise<boolean>
Chrome 117 及更高版本只有 Manifest V3 及更高版本支持 Promise,其他平台需要使用回调。
setControlSignals()
chrome.serial.setControlSignals(
connectionId: number,
signals: HostControlSignals,
callback?: function,
)
设置给定连接上的控制信号状态。
参数
-
connectionId
数值
连接的 ID。
-
要发送到设备的一组信号更改。
-
callback
函数(可选)
callback
参数如下所示:(result: boolean) => void
-
结果
布尔值
-
返回
-
Promise<boolean>
Chrome 117 及更高版本只有 Manifest V3 及更高版本支持 Promise,其他平台需要使用回调。
setPaused()
chrome.serial.setPaused(
connectionId: number,
paused: boolean,
callback?: function,
)
暂停或取消暂停打开的连接。
参数
-
connectionId
数值
已打开连接的 ID。
-
已暂停
布尔值
用于指示是否暂停或取消暂停的标志。
-
callback
函数(可选)
callback
参数如下所示:() => void
返回
-
Promise<void>
Chrome 117 及更高版本只有 Manifest V3 及更高版本支持 Promise,其他平台需要使用回调。
update()
chrome.serial.update(
connectionId: number,
options: ConnectionOptions,
callback?: function,
)
更新打开的串行端口连接的选项设置。
参数
-
connectionId
数值
已打开连接的 ID。
-
端口配置选项。
-
callback
函数(可选)
callback
参数如下所示:(result: boolean) => void
-
结果
布尔值
-
返回
-
Promise<boolean>
Chrome 117 及更高版本只有 Manifest V3 及更高版本支持 Promise,其他平台需要使用回调。
事件
onReceive
chrome.serial.onReceive.addListener(
callback: function,
)
从连接读取数据时引发的事件。
参数
-
callback
函数
callback
参数如下所示:(info: ReceiveInfo) => void
-
资讯
-
onReceiveError
chrome.serial.onReceiveError.addListener(
callback: function,
)
当运行时在串行端口上等待数据时发生错误时引发的事件。引发此事件后,连接可能会设为 paused
。"timeout"
错误不会暂停连接。
参数
-
callback
函数
callback
参数如下所示:(info: ReceiveErrorInfo) => void