說明
使用 chrome.serial
API 讀取序列埠連接裝置的資料,並寫入該裝置。
權限
serial
類型
ConnectionInfo
屬性
-
bitrate
號碼 選填
請參閱
ConnectionOptions.bitrate
。如果使用非標準的位元率,或是在查詢底層裝置時發生錯誤,這個欄位可能會省略或不正確。 -
bufferSize
數字
查看「
ConnectionOptions.bufferSize
」 -
connectionId
數字
序列埠連線的 ID。
-
ctsFlowControl
boolean 選填
請參閱
ConnectionOptions.ctsFlowControl
。如果查詢底層裝置時發生錯誤,則可以省略這個欄位。 -
dataBits
DataBits 選填
請參閱
ConnectionOptions.dataBits
。如果查詢底層裝置時發生錯誤,則可以省略這個欄位。 -
名稱
字串
查看「
ConnectionOptions.name
」 -
parityBit
ParityBit 選填
請參閱
ConnectionOptions.parityBit
。如果查詢底層裝置時發生錯誤,則可以省略這個欄位。 -
已暫停
布林值
此標記用於指出是否封鎖連線,以免觸發 onReceive 事件。
-
永久
布林值
查看「
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
boolean 選填
此標記可用於註明是否要啟用 RTS/CTS 硬體資料流控制。預設值為 false。
-
dataBits
DataBits 選填
預設會傳遞
"eight"
。 -
名稱
string 選填
應用程式定義的字串,用於與連線建立關聯。
-
parityBit
ParityBit 選填
預設會傳遞
"no"
。 -
永久
boolean 選填
標記:指出應用程式暫停時,是否應保留連線 (請參閱「管理應用程式生命週期」)。預設值為「false」。應用程式載入時,
getConnections
可擷取先前以 persistent=true 開啟的任何序列連線。 -
receiveTimeout
號碼 選填
在發生「逾時」錯誤前,等待新資料的最大時間 (以毫秒為單位),
onReceiveError
如果為零,則不會針對連線產生接收逾時錯誤。預設為 0。 -
sendTimeout
號碼 選填
在呼叫回呼時,等待
send
作業完成的時間上限 (以毫秒為單位),逾時後會傳回「逾時」錯誤。如果為零,系統就不會觸發傳送逾時錯誤。預設為 0。 -
stopBits
StopBits 選填
預設會傳遞
"one"
。
DataBits
列舉
"seven"
"eight"
DeviceControlSignals
屬性
-
cts
布林值
CTS (Clear To Send)。
-
dcd
布林值
DCD (Data Carrier Detect) 或 RLSD (Receive Line Signal/ Detect)。
-
dsr
布林值
DSR (資料集準備就緒)。
-
ri
布林值
RI (Ring Indicator)。
DeviceInfo
屬性
-
displayName
string 選填
如果可以從主機驅動程式查詢,則為基礎裝置提供人類可讀的顯示名稱。
-
路徑
字串
裝置的系統路徑。您應將此值做為
path
引數傳遞至chrome.serial.connect
,才能連線至此裝置。 -
productId
號碼 選填
如果可以為基礎裝置判斷 USB 產品 ID,則會提供該 ID。
-
vendorId
號碼 選填
如果可以為基礎裝置判斷 PCI 或 USB 供應商 ID,則會提供這項資訊。
HostControlSignals
屬性
-
dtr
boolean 選填
DTR (Data Terminal Ready)。
-
rts
boolean 選填
RTS (Request To Send)。
ParityBit
列舉
"no"
"odd"
"even"
ReceiveError
列舉
「disconnected」
連線已中斷。
"timeout"
receiveTimeout
毫秒內未收到任何資料。
"device_lost"
裝置很可能已與主機中斷連線。
"break"
裝置偵測到中斷條件。
"frame_error"
裝置偵測到構圖錯誤。
"overrun"
字元緩衝區發生溢位。下一個字元會遺失。
"buffer_overflow"
發生輸入緩衝區溢位。輸入緩衝區沒有空間,或是在檔案結尾 (EOF) 字元之後收到字元。
"parity_error"
裝置偵測到奇偶性錯誤。
"system_error"
系統發生錯誤,連線可能無法復原。
ReceiveErrorInfo
屬性
-
connectionId
數字
連線 ID。
-
錯誤
錯誤代碼,指出發生錯誤的情況。
ReceiveInfo
屬性
-
connectionId
數字
連線 ID。
-
資料
ArrayBuffer
收到的資料。
SendError
列舉
「disconnected」
連線已中斷。
「pending」
傳送作業已處於待處理狀態。
"timeout"
傳送作業逾時。
"system_error"
系統發生錯誤,連線可能無法復原。
SendInfo
屬性
-
bytesSent
數字
傳送的位元組數。
-
錯誤
SendError 選填
如果發生錯誤,就會傳回錯誤代碼。
StopBits
列舉
"one"
"two"
方法
clearBreak()
chrome.serial.clearBreak(
connectionId: number,
callback?: function,
)
在指定連線上還原字元傳輸,並將傳輸線置於非中斷狀態。
參數
-
connectionId
數字
連線的 ID。
-
回呼
函式 選填
callback
參數如下所示:(result: boolean) => void
-
結果
布林值
-
傳回
-
Promise<boolean>
Chrome 117 以上版本承諾僅支援資訊清單 V3 以上版本,其他平台則需要使用回呼。
connect()
chrome.serial.connect(
path: string,
options?: ConnectionOptions,
callback?: function,
)
連線至指定的序列埠。
參數
-
路徑
字串
要開啟的序列埠系統路徑。
-
選項
通訊埠設定選項。
-
回呼
函式 選填
callback
參數如下所示:(connectionInfo: ConnectionInfo) => void
-
connectionInfo
-
傳回
-
Promise<ConnectionInfo>
Chrome 117 以上版本承諾僅支援資訊清單 V3 以上版本,其他平台則需要使用回呼。
disconnect()
chrome.serial.disconnect(
connectionId: number,
callback?: function,
)
中斷序列埠連線。
參數
-
connectionId
數字
已開啟連線的 ID。
-
回呼
函式 選填
callback
參數如下所示:(result: boolean) => void
-
結果
布林值
-
傳回
-
Promise<boolean>
Chrome 117 以上版本承諾僅支援資訊清單 V3 以上版本,其他平台則需要使用回呼。
flush()
chrome.serial.flush(
connectionId: number,
callback?: function,
)
將指定連線的輸入和輸出緩衝區中的所有位元組刷出。
參數
-
connectionId
數字
-
回呼
函式 選填
callback
參數如下所示:(result: boolean) => void
-
結果
布林值
-
傳回
-
Promise<boolean>
Chrome 117 以上版本承諾僅支援資訊清單 V3 以上版本,其他平台則需要使用回呼。
getConnections()
chrome.serial.getConnections(
callback?: function,
)
擷取應用程式擁有的目前已開啟序列埠連線清單。
參數
-
回呼
函式 選填
callback
參數如下所示:(connectionInfos: ConnectionInfo[]) => void
-
connectionInfos
-
傳回
-
Promise<ConnectionInfo[]>
Chrome 117 以上版本承諾僅支援資訊清單 V3 以上版本,其他平台則需要使用回呼。
getControlSignals()
chrome.serial.getControlSignals(
connectionId: number,
callback?: function,
)
擷取指定連線的控制信號狀態。
參數
-
connectionId
數字
連線的 ID。
-
回呼
函式 選填
callback
參數如下所示:(signals: DeviceControlSignals) => void
傳回
-
Promise<DeviceControlSignals>
Chrome 117 以上版本承諾僅支援資訊清單 V3 以上版本,其他平台則需要使用回呼。
getDevices()
chrome.serial.getDevices(
callback?: function,
)
傳回系統上可用的序列裝置相關資訊。每次呼叫此方法時,系統都會重新產生清單。
參數
-
回呼
函式 選填
callback
參數如下所示:(ports: DeviceInfo[]) => void
-
ports
-
傳回
-
Promise<DeviceInfo[]>
Chrome 117 以上版本承諾僅支援資訊清單 V3 以上版本,其他平台則需要使用回呼。
getInfo()
chrome.serial.getInfo(
connectionId: number,
callback?: function,
)
擷取指定連線的狀態。
參數
-
connectionId
數字
已開啟連線的 ID。
-
回呼
函式 選填
callback
參數如下所示:(connectionInfo: ConnectionInfo) => void
-
connectionInfo
-
傳回
-
Promise<ConnectionInfo>
Chrome 117 以上版本承諾僅支援資訊清單 V3 以上版本,其他平台則需要使用回呼。
send()
chrome.serial.send(
connectionId: number,
data: ArrayBuffer,
callback?: function,
)
將資料寫入指定的連線。
參數
-
connectionId
數字
連線的 ID。
-
資料
ArrayBuffer
要傳送的資料。
-
回呼
函式 選填
callback
參數如下所示:(sendInfo: SendInfo) => void
-
sendInfo
-
傳回
-
Promise<SendInfo>
Chrome 117 以上版本承諾僅支援資訊清單 V3 以上版本,其他平台則需要使用回呼。
setBreak()
chrome.serial.setBreak(
connectionId: number,
callback?: function,
)
暫停指定連線上的字元傳輸,並將傳輸行置於暫停狀態,直到呼叫 clearBreak 為止。
參數
-
connectionId
數字
連線的 ID。
-
回呼
函式 選填
callback
參數如下所示:(result: boolean) => void
-
結果
布林值
-
傳回
-
Promise<boolean>
Chrome 117 以上版本承諾僅支援資訊清單 V3 以上版本,其他平台則需要使用回呼。
setControlSignals()
chrome.serial.setControlSignals(
connectionId: number,
signals: HostControlSignals,
callback?: function,
)
設定指定連線的控制信號狀態。
參數
-
connectionId
數字
連線的 ID。
-
要傳送至裝置的訊號變更組合。
-
回呼
函式 選填
callback
參數如下所示:(result: boolean) => void
-
結果
布林值
-
傳回
-
Promise<boolean>
Chrome 117 以上版本承諾僅支援資訊清單 V3 以上版本,其他平台則需要使用回呼。
setPaused()
chrome.serial.setPaused(
connectionId: number,
paused: boolean,
callback?: function,
)
暫停或重新啟動已開啟的連線。
參數
-
connectionId
數字
已開啟連線的 ID。
-
已暫停
布林值
標記,用於指出是否要暫停或取消暫停。
-
回呼
函式 選填
callback
參數如下所示:() => void
傳回
-
Promise<void>
Chrome 117 以上版本承諾僅支援資訊清單 V3 以上版本,其他平台則需要使用回呼。
update()
chrome.serial.update(
connectionId: number,
options: ConnectionOptions,
callback?: function,
)
更新已開啟序列埠連線的選項設定。
參數
-
connectionId
數字
已開啟連線的 ID。
-
通訊埠設定選項。
-
回呼
函式 選填
callback
參數如下所示:(result: boolean) => void
-
結果
布林值
-
傳回
-
Promise<boolean>
Chrome 117 以上版本承諾僅支援資訊清單 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