chrome.serial

說明

使用 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()

Promise Chrome 45 以上版本
chrome.serial.clearBreak(
  connectionId: number,
  callback?: function,
)

還原指定連線中的字元傳輸作業,並將傳輸線置於不中斷狀態。

參數

  • connectionId

    號碼

    連線的 ID。

  • 回呼

    函式選用

    callback 參數如下所示:

    (result: boolean)=>void

    • 結果

      boolean

傳回

  • Promise<boolean>

    Chrome 117 以上版本

    Promise 僅支援 Manifest V3 以上版本,其他平台就必須使用回呼。

connect()

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

連線至指定序列埠。

參數

  • path

    字串

    要開啟的序列埠系統路徑。

  • 選項

    通訊埠設定選項。

  • 回呼

    函式選用

    callback 參數如下所示:

    (connectionInfo: ConnectionInfo)=>void

傳回

  • Chrome 117 以上版本

    Promise 僅支援 Manifest V3 以上版本,其他平台就必須使用回呼。

disconnect()

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

中斷與序列埠的連線。

參數

  • connectionId

    號碼

    已開啟連線的 ID。

  • 回呼

    函式選用

    callback 參數如下所示:

    (result: boolean)=>void

    • 結果

      boolean

傳回

  • Promise<boolean>

    Chrome 117 以上版本

    Promise 僅支援 Manifest V3 以上版本,其他平台就必須使用回呼。

flush()

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

清除指定連線的輸入和輸出緩衝區中的所有位元組。

參數

  • connectionId

    號碼

  • 回呼

    函式選用

    callback 參數如下所示:

    (result: boolean)=>void

    • 結果

      boolean

傳回

  • Promise<boolean>

    Chrome 117 以上版本

    Promise 僅支援 Manifest V3 以上版本,其他平台就必須使用回呼。

getConnections()

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

擷取應用程式目前開啟的序列埠連線清單。

參數

傳回

  • Promise<ConnectionInfo[]>

    Chrome 117 以上版本

    Promise 僅支援 Manifest V3 以上版本,其他平台就必須使用回呼。

getControlSignals()

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

擷取指定連線的控制信號狀態。

參數

傳回

  • Chrome 117 以上版本

    Promise 僅支援 Manifest V3 以上版本,其他平台就必須使用回呼。

getDevices()

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

傳回系統上可用的序列裝置相關資訊。每次呼叫此方法時,系統就會重新產生清單。

參數

傳回

  • Promise<DeviceInfo[]>

    Chrome 117 以上版本

    Promise 僅支援 Manifest V3 以上版本,其他平台就必須使用回呼。

getInfo()

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

擷取指定連線的狀態。

參數

  • connectionId

    號碼

    已開啟連線的 ID。

  • 回呼

    函式選用

    callback 參數如下所示:

    (connectionInfo: ConnectionInfo)=>void

傳回

  • Chrome 117 以上版本

    Promise 僅支援 Manifest V3 以上版本,其他平台就必須使用回呼。

send()

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

這個外掛程式能將資料寫入指定的連線。

參數

  • connectionId

    號碼

    連線的 ID。

  • 資料或曾存取這類資料的人員

    ArrayBuffer

    要傳送的資料。

  • 回呼

    函式選用

    callback 參數如下所示:

    (sendInfo: SendInfo)=>void

傳回

  • Promise<SendInfo>

    Chrome 117 以上版本

    Promise 僅支援 Manifest V3 以上版本,其他平台就必須使用回呼。

setBreak()

Promise Chrome 45 以上版本
chrome.serial.setBreak(
  connectionId: number,
  callback?: function,
)

暫停在特定連線上的字元傳輸,並將傳輸線處於中斷狀態,直到呼叫 ClearBreak 為止。

參數

  • connectionId

    號碼

    連線的 ID。

  • 回呼

    函式選用

    callback 參數如下所示:

    (result: boolean)=>void

    • 結果

      boolean

傳回

  • Promise<boolean>

    Chrome 117 以上版本

    Promise 僅支援 Manifest V3 以上版本,其他平台就必須使用回呼。

setControlSignals()

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

設定指定連線的控制信號狀態。

參數

  • connectionId

    號碼

    連線的 ID。

  • 要傳送至裝置的信號組合變更。

  • 回呼

    函式選用

    callback 參數如下所示:

    (result: boolean)=>void

    • 結果

      boolean

傳回

  • Promise<boolean>

    Chrome 117 以上版本

    Promise 僅支援 Manifest V3 以上版本,其他平台就必須使用回呼。

setPaused()

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

暫停或取消暫停開放連線。

參數

  • connectionId

    號碼

    已開啟連線的 ID。

  • 已暫停

    boolean

    表明要暫停或取消暫停的標記。

  • 回呼

    函式選用

    callback 參數如下所示:

    ()=>void

傳回

  • Promise<void>

    Chrome 117 以上版本

    Promise 僅支援 Manifest V3 以上版本,其他平台就必須使用回呼。

update()

Promise
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,
)

從連結讀取資料時引發事件。

參數

onReceiveError

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

當執行階段在序列埠上等待資料時,發生錯誤時引發的事件。這個事件發生後,連線可能會設為 paused"timeout" 錯誤不會暫停連線。

參數