chrome.serial

說明

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

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

在指定連線上還原字元傳輸,並將傳輸線置於非中斷狀態。

參數

  • connectionId

    數字

    連線的 ID。

  • 回呼

    函式 選填

    callback 參數如下所示:

    (result: boolean) => void

    • 結果

      布林值

傳回

  • Promise<boolean>

    Chrome 117 以上版本

    承諾僅支援資訊清單 V3 以上版本,其他平台則需要使用回呼。

connect()

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

連線至指定的序列埠。

參數

  • 路徑

    字串

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

  • 選項

    通訊埠設定選項。

  • 回呼

    函式 選填

    callback 參數如下所示:

    (connectionInfo: ConnectionInfo) => void

傳回

  • Chrome 117 以上版本

    承諾僅支援資訊清單 V3 以上版本,其他平台則需要使用回呼。

disconnect()

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

中斷序列埠連線。

參數

  • connectionId

    數字

    已開啟連線的 ID。

  • 回呼

    函式 選填

    callback 參數如下所示:

    (result: boolean) => void

    • 結果

      布林值

傳回

  • Promise<boolean>

    Chrome 117 以上版本

    承諾僅支援資訊清單 V3 以上版本,其他平台則需要使用回呼。

flush()

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

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

參數

  • connectionId

    數字

  • 回呼

    函式 選填

    callback 參數如下所示:

    (result: boolean) => void

    • 結果

      布林值

傳回

  • Promise<boolean>

    Chrome 117 以上版本

    承諾僅支援資訊清單 V3 以上版本,其他平台則需要使用回呼。

getConnections()

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

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

參數

傳回

  • Promise<ConnectionInfo[]>

    Chrome 117 以上版本

    承諾僅支援資訊清單 V3 以上版本,其他平台則需要使用回呼。

getControlSignals()

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

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

參數

傳回

  • Chrome 117 以上版本

    承諾僅支援資訊清單 V3 以上版本,其他平台則需要使用回呼。

getDevices()

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

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

參數

  • 回呼

    函式 選填

    callback 參數如下所示:

    (ports: DeviceInfo[]) => void

傳回

  • Promise<DeviceInfo[]>

    Chrome 117 以上版本

    承諾僅支援資訊清單 V3 以上版本,其他平台則需要使用回呼。

getInfo()

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

擷取指定連線的狀態。

參數

  • connectionId

    數字

    已開啟連線的 ID。

  • 回呼

    函式 選填

    callback 參數如下所示:

    (connectionInfo: ConnectionInfo) => void

傳回

  • Chrome 117 以上版本

    承諾僅支援資訊清單 V3 以上版本,其他平台則需要使用回呼。

send()

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

將資料寫入指定的連線。

參數

  • connectionId

    數字

    連線的 ID。

  • 資料

    ArrayBuffer

    要傳送的資料。

  • 回呼

    函式 選填

    callback 參數如下所示:

    (sendInfo: SendInfo) => void

傳回

  • Promise<SendInfo>

    Chrome 117 以上版本

    承諾僅支援資訊清單 V3 以上版本,其他平台則需要使用回呼。

setBreak()

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

暫停指定連線上的字元傳輸,並將傳輸行置於暫停狀態,直到呼叫 clearBreak 為止。

參數

  • connectionId

    數字

    連線的 ID。

  • 回呼

    函式 選填

    callback 參數如下所示:

    (result: boolean) => void

    • 結果

      布林值

傳回

  • Promise<boolean>

    Chrome 117 以上版本

    承諾僅支援資訊清單 V3 以上版本,其他平台則需要使用回呼。

setControlSignals()

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

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

參數

  • connectionId

    數字

    連線的 ID。

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

  • 回呼

    函式 選填

    callback 參數如下所示:

    (result: boolean) => void

    • 結果

      布林值

傳回

  • Promise<boolean>

    Chrome 117 以上版本

    承諾僅支援資訊清單 V3 以上版本,其他平台則需要使用回呼。

setPaused()

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

暫停或重新啟動已開啟的連線。

參數

  • connectionId

    數字

    已開啟連線的 ID。

  • 已暫停

    布林值

    標記,用於指出是否要暫停或取消暫停。

  • 回呼

    函式 選填

    callback 參數如下所示:

    () => void

傳回

  • Promise<void>

    Chrome 117 以上版本

    承諾僅支援資訊清單 V3 以上版本,其他平台則需要使用回呼。

update()

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

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

參數

onReceiveError

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

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

參數