说明
使用 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()
chrome.serial.clearBreak(
connectionId: number,
callback?: function,
)
恢复给定连接上的字符传输,并将传输线置于不间断状态。
参数
-
connectionId
number
连接的 ID。
-
callback
函数(可选)
callback
参数如下所示:(result: boolean) => void
-
结果
boolean
-
返回
-
Promise<boolean>
Chrome 117 及更高版本只有 Manifest V3 及更高版本支持 Promise,其他平台需要使用回调。
connect()
chrome.serial.connect(
path: string,
options?: ConnectionOptions,
callback?: function,
)
连接到指定的串行端口。
参数
-
path
string
要打开的串行端口的系统路径。
-
选项
端口配置选项。
-
callback
函数(可选)
callback
参数如下所示:(connectionInfo: ConnectionInfo) => void
-
connectionInfo
-
返回
-
Promise<ConnectionInfo>
Chrome 117 及更高版本只有 Manifest V3 及更高版本支持 Promise,其他平台需要使用回调。
disconnect()
chrome.serial.disconnect(
connectionId: number,
callback?: function,
)
与串行端口断开连接。
参数
-
connectionId
number
已打开连接的 ID。
-
callback
函数(可选)
callback
参数如下所示:(result: boolean) => void
-
结果
boolean
-
返回
-
Promise<boolean>
Chrome 117 及更高版本只有 Manifest V3 及更高版本支持 Promise,其他平台需要使用回调。
flush()
chrome.serial.flush(
connectionId: number,
callback?: function,
)
清空指定连接的输入和输出缓冲区中的所有字节。
参数
-
connectionId
number
-
callback
函数(可选)
callback
参数如下所示:(result: boolean) => void
-
结果
boolean
-
返回
-
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
number
连接的 ID。
-
callback
函数(可选)
callback
参数如下所示:(signals: DeviceControlSignals) => void
返回
-
Promise<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
number
已打开连接的 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
number
连接的 ID。
-
data
ArrayBuffer
要发送的数据。
-
callback
函数(可选)
callback
参数如下所示:(sendInfo: SendInfo) => void
-
sendInfo
-
返回
-
Promise<SendInfo>
Chrome 117 及更高版本只有 Manifest V3 及更高版本支持 Promise,其他平台需要使用回调。
setBreak()
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()
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()
chrome.serial.setPaused(
connectionId: number,
paused: boolean,
callback?: function,
)
暂停或取消暂停打开的连接。
参数
-
connectionId
number
已打开连接的 ID。
-
已暂停
boolean
此标记指示是暂停还是取消暂停。
-
callback
函数(可选)
callback
参数如下所示:() => void
返回
-
Promise<void>
Chrome 117 及更高版本只有 Manifest V3 及更高版本支持 Promise,其他平台需要使用回调。
update()
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,
)
从连接中读取数据时引发的事件。
参数
-
callback
功能
callback
参数如下所示:(info: ReceiveInfo) => void
-
资讯
-
onReceiveError
chrome.serial.onReceiveError.addListener(
callback: function,
)
运行时在串行端口上等待数据时发生错误时引发的事件。引发此事件后,连接可设置为 paused
。"timeout"
错误不会导致连接暂停。
参数
-
callback
功能
callback
参数如下所示:(info: ReceiveErrorInfo) => void