說明
使用 chrome.serial
API 讀取及寫入已連線至序列埠的裝置。
權限
serial
類型
ConnectionInfo
屬性
-
bitrate
數字 選填
查看《
ConnectionOptions.bitrate
》。如果使用非標準位元率,或是查詢基礎裝置時發生錯誤,這個欄位可能會省略或不正確。 -
bufferSize
號碼
查看「
ConnectionOptions.bufferSize
」 -
connectionId
號碼
序列埠連線的 ID。
-
ctsFlowControl
布林值 (選用)
查看《
ConnectionOptions.ctsFlowControl
》。如果查詢基礎裝置時發生錯誤,則可省略這個欄位。 -
dataBits
DataBits 選用
查看《
ConnectionOptions.dataBits
》。如果查詢基礎裝置時發生錯誤,則可省略這個欄位。 -
名稱
字串
查看「
ConnectionOptions.name
」 -
parityBit
ParityBit 選用
查看《
ConnectionOptions.parityBit
》。如果查詢基礎裝置時發生錯誤,則可省略這個欄位。 -
已暫停
boolean
此標記可註明連線是否遭到封鎖,無法觸發 onReceive 事件。
-
永久
boolean
查看「
ConnectionOptions.persistent
」 -
receiveTimeout
號碼
查看「
ConnectionOptions.receiveTimeout
」 -
sendTimeout
號碼
查看「
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"
。 -
名稱
字串 選用
要與連線建立關聯的應用程式定義字串。
-
parityBit
ParityBit 選用
根據預設,系統會傳遞
"no"
。 -
永久
布林值 (選用)
此標記可表示應用程式暫停時,連線是否應保持開啟 (請參閱「管理應用程式生命週期」)。預設值為「false」。載入應用程式時,可使用
getConnections
擷取先前以 persistent=true 開啟的任何序列連線。 -
receiveTimeout
數字 選填
發生「逾時」錯誤並引發
onReceiveError
事件前,等待新資料的時間長度上限 (以毫秒為單位)。如果值為 0,系統就不會針對連線引發接收逾時錯誤。預設值為「0」。 -
sendTimeout
數字 選填
在呼叫含有「逾時」錯誤的回呼前,等待
send
作業完成的時間長度上限,以毫秒為單位。如果值為 0,系統就不會觸發傳送逾時錯誤。預設值為「0」。 -
stopBits
StopBits 選用
根據預設,系統會傳遞
"one"
。
DataBits
列舉
DeviceControlSignals
屬性
-
cts
boolean
CTS (清除即可傳送)。
-
DC
boolean
DCD (數據電信業者偵測) 或 RLSD (接收線訊號/ 偵測)。
-
DSA
boolean
DSR (資料集已就緒)。
-
裡
boolean
RI (響鈴指標)。
DeviceInfo
屬性
-
displayName
字串 選用
基礎裝置的顯示名稱 (可透過主機驅動程式查詢的話)。
-
path
字串
裝置的系統路徑。這個項目應以
path
引數的形式傳遞至chrome.serial.connect
,以便連線至這部裝置。 -
productId
數字 選填
可供判斷基礎裝置使用的 USB 產品 ID。
-
vendorId
數字 選填
PCI 或 USB 供應商 ID (如果可根據基礎裝置判斷)。
HostControlSignals
屬性
-
dtr
布林值 (選用)
DTR (資料終端機已就緒)。
-
克爾
布林值 (選用)
即時文字訊息 (要求傳送)。
ParityBit
列舉
ReceiveError
列舉
「已中斷連線」
連線已中斷。
"timeout"
沒有收到 receiveTimeout
毫秒的資料。
"device_lost"
裝置很可能與主機中斷連線。
"break"
裝置偵測到故障狀況。
"frame_error"
裝置偵測到取景錯誤。
"overrun"
發生字元緩衝區過度執行作業。下一個字元就遺失了。
"buffer_overflow"
發生輸入緩衝區溢位。輸入緩衝區中沒有任何空間,或檔案結尾 (EOF) 字元之後收到的字元。
"parity_error"
裝置偵測到一致性錯誤。
"system_error"
發生系統錯誤,可能無法復原連線。
ReceiveErrorInfo
屬性
-
connectionId
號碼
連線 ID。
-
錯誤
指出發生錯誤的錯誤代碼。
ReceiveInfo
屬性
-
connectionId
號碼
連線 ID。
-
資料或曾存取這類資料的人員
ArrayBuffer
收到的資料。
SendError
列舉
「已中斷連線」
連線已中斷。
"pending"
訊息已在處理中。
"timeout"
傳送逾時。
"system_error"
發生系統錯誤,可能無法復原連線。
SendInfo
屬性
-
bytesSent
號碼
傳送的位元組數。
-
錯誤
SendError 選用
如果發生錯誤,則會收到錯誤代碼。
StopBits
列舉
方法
clearBreak()
chrome.serial.clearBreak(
connectionId: number,
callback?: function,
)
還原指定連線中的字元傳輸作業,並將傳輸線置於不中斷狀態。
參數
-
connectionId
號碼
連線的 ID。
-
回呼
函式選用
callback
參數如下所示:(result: boolean) => void
-
結果
boolean
-
傳回
-
Promise<boolean>
Chrome 117 以上版本Promise 僅支援 Manifest V3 以上版本,其他平台就必須使用回呼。
connect()
chrome.serial.connect(
path: string,
options?: ConnectionOptions,
callback?: function,
)
連線至指定序列埠。
參數
-
path
字串
要開啟的序列埠系統路徑。
-
選項
通訊埠設定選項。
-
回呼
函式選用
callback
參數如下所示:(connectionInfo: ConnectionInfo) => void
-
connectionInfo
-
傳回
-
Promise<ConnectionInfo>
Chrome 117 以上版本Promise 僅支援 Manifest V3 以上版本,其他平台就必須使用回呼。
disconnect()
chrome.serial.disconnect(
connectionId: number,
callback?: function,
)
中斷與序列埠的連線。
參數
-
connectionId
號碼
已開啟連線的 ID。
-
回呼
函式選用
callback
參數如下所示:(result: boolean) => void
-
結果
boolean
-
傳回
-
Promise<boolean>
Chrome 117 以上版本Promise 僅支援 Manifest V3 以上版本,其他平台就必須使用回呼。
flush()
chrome.serial.flush(
connectionId: number,
callback?: function,
)
清除指定連線的輸入和輸出緩衝區中的所有位元組。
參數
-
connectionId
號碼
-
回呼
函式選用
callback
參數如下所示:(result: boolean) => void
-
結果
boolean
-
傳回
-
Promise<boolean>
Chrome 117 以上版本Promise 僅支援 Manifest V3 以上版本,其他平台就必須使用回呼。
getConnections()
chrome.serial.getConnections(
callback?: function,
)
擷取應用程式目前開啟的序列埠連線清單。
參數
-
回呼
函式選用
callback
參數如下所示:(connectionInfos: ConnectionInfo[]) => void
-
connectionInfos
-
傳回
-
Promise<ConnectionInfo[]>
Chrome 117 以上版本Promise 僅支援 Manifest V3 以上版本,其他平台就必須使用回呼。
getControlSignals()
chrome.serial.getControlSignals(
connectionId: number,
callback?: function,
)
擷取指定連線的控制信號狀態。
參數
-
connectionId
號碼
連線的 ID。
-
回呼
函式選用
callback
參數如下所示:(signals: DeviceControlSignals) => void
傳回
-
Promise<DeviceControlSignals>
Chrome 117 以上版本Promise 僅支援 Manifest V3 以上版本,其他平台就必須使用回呼。
getDevices()
chrome.serial.getDevices(
callback?: function,
)
傳回系統上可用的序列裝置相關資訊。每次呼叫此方法時,系統就會重新產生清單。
參數
-
回呼
函式選用
callback
參數如下所示:(ports: DeviceInfo[]) => void
-
ports
-
傳回
-
Promise<DeviceInfo[]>
Chrome 117 以上版本Promise 僅支援 Manifest V3 以上版本,其他平台就必須使用回呼。
getInfo()
chrome.serial.getInfo(
connectionId: number,
callback?: function,
)
擷取指定連線的狀態。
參數
-
connectionId
號碼
已開啟連線的 ID。
-
回呼
函式選用
callback
參數如下所示:(connectionInfo: ConnectionInfo) => void
-
connectionInfo
-
傳回
-
Promise<ConnectionInfo>
Chrome 117 以上版本Promise 僅支援 Manifest V3 以上版本,其他平台就必須使用回呼。
send()
chrome.serial.send(
connectionId: number,
data: ArrayBuffer,
callback?: function,
)
這個外掛程式能將資料寫入指定的連線。
參數
-
connectionId
號碼
連線的 ID。
-
資料或曾存取這類資料的人員
ArrayBuffer
要傳送的資料。
-
回呼
函式選用
callback
參數如下所示:(sendInfo: SendInfo) => void
-
sendInfo
-
傳回
-
Promise<SendInfo>
Chrome 117 以上版本Promise 僅支援 Manifest V3 以上版本,其他平台就必須使用回呼。
setBreak()
chrome.serial.setBreak(
connectionId: number,
callback?: function,
)
暫停在特定連線上的字元傳輸,並將傳輸線處於中斷狀態,直到呼叫 ClearBreak 為止。
參數
-
connectionId
號碼
連線的 ID。
-
回呼
函式選用
callback
參數如下所示:(result: boolean) => void
-
結果
boolean
-
傳回
-
Promise<boolean>
Chrome 117 以上版本Promise 僅支援 Manifest V3 以上版本,其他平台就必須使用回呼。
setControlSignals()
chrome.serial.setControlSignals(
connectionId: number,
signals: HostControlSignals,
callback?: function,
)
設定指定連線的控制信號狀態。
參數
-
connectionId
號碼
連線的 ID。
-
要傳送至裝置的信號組合變更。
-
回呼
函式選用
callback
參數如下所示:(result: boolean) => void
-
結果
boolean
-
傳回
-
Promise<boolean>
Chrome 117 以上版本Promise 僅支援 Manifest V3 以上版本,其他平台就必須使用回呼。
setPaused()
chrome.serial.setPaused(
connectionId: number,
paused: boolean,
callback?: function,
)
暫停或取消暫停開放連線。
參數
-
connectionId
號碼
已開啟連線的 ID。
-
已暫停
boolean
表明要暫停或取消暫停的標記。
-
回呼
函式選用
callback
參數如下所示:() => void
傳回
-
Promise<void>
Chrome 117 以上版本Promise 僅支援 Manifest V3 以上版本,其他平台就必須使用回呼。
update()
chrome.serial.update(
connectionId: number,
options: ConnectionOptions,
callback?: function,
)
更新開放式序列埠連線的選項設定。
參數
-
connectionId
號碼
已開啟連線的 ID。
-
通訊埠設定選項。
-
回呼
函式選用
callback
參數如下所示:(result: boolean) => void
-
結果
boolean
-
傳回
-
Promise<boolean>
Chrome 117 以上版本Promise 僅支援 Manifest V3 以上版本,其他平台就必須使用回呼。
活動
onReceive
chrome.serial.onReceive.addListener(
callback: function,
)
從連結讀取資料時引發事件。
參數
-
回呼
功能
callback
參數如下所示:(info: ReceiveInfo) => void
-
資訊
-
onReceiveError
chrome.serial.onReceiveError.addListener(
callback: function,
)
當執行階段在序列埠上等待資料時,發生錯誤時引發的事件。這個事件發生後,連線可能會設為 paused
。"timeout"
錯誤不會暫停連線。
參數
-
回呼
功能
callback
參數如下所示:(info: ReceiveErrorInfo) => void