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。如果查詢基礎裝置時發生錯誤,可省略這個欄位。

  • 已暫停

    布林值

    此標記用於註明是否在「Receive 事件」事件中啟動連線封鎖。

  • 永久

    布林值

    查看「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"

  • 名稱

    string optional

    要與連線建立關聯的應用程式定義字串。

  • parityBit

    ParityBit 選用

    根據預設,系統會傳遞 "no"

  • 永久

    布林值 選填

    此標記用於指出應用程式暫停時,連線是否應保持開啟 (請參閱管理應用程式生命週期)。預設值為「false」。載入應用程式時,可使用 getConnections 擷取先前以 Persistent=true 開啟的任何序列連線。

  • receiveTimeout

    編號 選填

    發生「逾時」onReceiveError事件之前,等待新資料所需的時間上限 (以毫秒為單位)錯誤。如果值為零,系統就不會針對連線產生逾時錯誤。預設值為 0。

  • sendTimeout

    編號 選填

    設定「逾時」來呼叫回呼之前,等待 send 作業完成的時間上限 (以毫秒為單位)錯誤。如果值為零,系統就不會觸發傳送逾時錯誤。預設值為 0。

  • stopBits

    StopBits 選用

    根據預設,系統會傳遞 "one"

DataBits

列舉

"七"

"八人"

DeviceControlSignals

屬性

  • 點擊

    布林值

    CTS (清除傳送)。

  • dcd

    布林值

    DCD (資料電信業者偵測) 或 RLSD (接收線訊號/ 偵測)。

  • dsr

    布林值

    DSR (資料集已就緒)。

  • 布林值

    RI (鈴聲指標)。

DeviceInfo

屬性

  • displayName

    string optional

    使用者可理解的基礎裝置的顯示名稱 (如果可透過主機驅動程式查詢)。

  • 路徑

    字串

    裝置的系統路徑。這個引數應做為 path 引數傳遞至 chrome.serial.connect,才能連線至這部裝置。

  • productId

    編號 選填

    USB 產品 ID (如果可確定基礎裝置)。

  • vendorId

    編號 選填

    PCI 或 USB 廠商 ID (如果可以確定基礎裝置)。

HostControlSignals

屬性

  • dtr

    布林值 選填

    DTR (資料終端機已就緒)。

  • rts

    布林值 選填

    即時文字訊息 (要求傳送)。

ParityBit

列舉

"否"

「odd」

"平均"

ReceiveError

列舉

"已中斷連線"
連線已中斷。

"timeout"
至今未收到資料 receiveTimeout 毫秒。

"device_lost"
裝置最有可能與主機中斷連線。

"break"
裝置偵測到中斷情形。

"frame_error"
裝置偵測到取景錯誤。

"overrun"
超過字元緩衝區空間。下一個角色失蹤。

"buffer_overflow"
發生輸入緩衝區溢位。輸入緩衝區中沒有任何空間,或是在檔案結尾 (EOF) 字元後收到字元。

"parity_error"
裝置偵測到相似性錯誤。

"system_error"
系統發生錯誤,可能無法復原連線。

ReceiveErrorInfo

屬性

  • connectionId

    數字

    連線 ID。

  • 錯誤

    指出發生錯誤的錯誤代碼。

ReceiveInfo

屬性

  • connectionId

    數字

    連線 ID。

  • 資料

    ArrayBuffer

    收到的資料。

SendError

列舉

"已中斷連線"
連線已中斷。

"待處理"
傳送內容已在處理中。

"timeout"
傳送逾時。

"system_error"
系統發生錯誤,可能無法復原連線。

SendInfo

屬性

  • bytesSent

    數字

    傳送的位元組數。

  • 錯誤

    SendError 選用

    如果發生錯誤,則會顯示錯誤代碼。

StopBits

列舉

"一個"

"two"

方法

clearBreak()

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

還原特定連線的字元傳輸,並將傳輸線設為非中斷狀態。

參數

  • connectionId

    數字

    連線的 ID,

  • 回呼

    函式 選用

    callback 參數如下所示:

    (result: boolean) => void

    • 結果

      布林值

傳回

  • Promise<boolean>

    Chrome 117 以上版本

    Promise 僅適用於 Manifest V3 及以上版本,其他平台需要使用回呼。

connect()

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

這個外掛程式能連線至指定的序列埠。

參數

  • 路徑

    字串

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

  • 選項

    通訊埠設定選項。

  • 回呼

    函式 選用

    callback 參數如下所示:

    (connectionInfo: ConnectionInfo) => void

傳回

  • Promise<ConnectionInfo>

    Chrome 117 以上版本

    Promise 僅適用於 Manifest V3 及以上版本,其他平台需要使用回呼。

disconnect()

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

中斷與序列埠的連線。

參數

  • connectionId

    數字

    已開啟連線的 ID。

  • 回呼

    函式 選用

    callback 參數如下所示:

    (result: boolean) => void

    • 結果

      布林值

傳回

  • Promise<boolean>

    Chrome 117 以上版本

    Promise 僅適用於 Manifest V3 及以上版本,其他平台需要使用回呼。

flush()

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

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

參數

  • connectionId

    數字

  • 回呼

    函式 選用

    callback 參數如下所示:

    (result: boolean) => void

    • 結果

      布林值

傳回

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

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

參數

傳回

  • Promise<DeviceControlSignals>

    Chrome 117 以上版本

    Promise 僅適用於 Manifest V3 及以上版本,其他平台需要使用回呼。

getDevices()

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

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

參數

  • 回呼

    函式 選用

    callback 參數如下所示:

    (ports: DeviceInfo[]) => void

傳回

  • Promise<DeviceInfo[]>

    Chrome 117 以上版本

    Promise 僅適用於 Manifest V3 及以上版本,其他平台需要使用回呼。

getInfo()

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

擷取指定連線的狀態。

參數

  • connectionId

    數字

    已開啟連線的 ID。

  • 回呼

    函式 選用

    callback 參數如下所示:

    (connectionInfo: ConnectionInfo) => void

傳回

  • Promise<ConnectionInfo>

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

暫停特定連線的字元傳輸,並將傳輸線排入休息狀態,直到呼叫明分為止。

參數

  • connectionId

    數字

    連線的 ID,

  • 回呼

    函式 選用

    callback 參數如下所示:

    (result: boolean) => void

    • 結果

      布林值

傳回

  • Promise<boolean>

    Chrome 117 以上版本

    Promise 僅適用於 Manifest V3 及以上版本,其他平台需要使用回呼。

setControlSignals()

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

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

參數

  • connectionId

    數字

    連線的 ID,

  • 要傳送到裝置的信號組合。

  • 回呼

    函式 選用

    callback 參數如下所示:

    (result: boolean) => void

    • 結果

      布林值

傳回

  • Promise<boolean>

    Chrome 117 以上版本

    Promise 僅適用於 Manifest V3 及以上版本,其他平台需要使用回呼。

setPaused()

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

暫停或取消暫停開啟的連線。

參數

  • connectionId

    數字

    已開啟連線的 ID。

  • 已暫停

    布林值

    此標記用於註明是否要暫停或取消暫停。

  • 回呼

    函式 選用

    callback 參數如下所示:

    () => void

傳回

  • 承諾<void>

    Chrome 117 以上版本

    Promise 僅適用於 Manifest V3 及以上版本,其他平台需要使用回呼。

update()

Promise
chrome.serial.update(
  connectionId: number,
  options: ConnectionOptions,
  callback?: function,
)

更新開放式序列埠連線的選項設定。

參數

  • connectionId

    數字

    已開啟連線的 ID。

  • 通訊埠設定選項。

  • 回呼

    函式 選用

    callback 參數如下所示:

    (result: boolean) => void

    • 結果

      布林值

傳回

  • Promise&lt;boolean&gt;

    Chrome 117 以上版本

    Promise 僅適用於 Manifest V3 及以上版本,其他平台需要使用回呼。

活動

onReceive

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

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

參數

onReceiveError

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

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

參數