chrome.serial

Mô tả

Sử dụng API chrome.serial để đọc và ghi vào một thiết bị được kết nối với cổng nối tiếp.

Quyền

serial

Phạm vi cung cấp

Chỉ dành cho ChromeOS

Loại

ConnectionInfo

Thuộc tính

  • tốc độ bit

    number không bắt buộc

    Vui lòng xem ConnectionOptions.bitrate. Trường này có thể bị bỏ qua hoặc không chính xác nếu tốc độ bit không chuẩn đang được sử dụng hoặc nếu xảy ra lỗi khi truy vấn thiết bị cơ bản.

  • bufferSize

    số

    Xem ConnectionOptions.bufferSize

  • connectionId

    số

    Mã nhận dạng của kết nối cổng nối tiếp.

  • ctsFlowControl

    boolean không bắt buộc

    Vui lòng xem ConnectionOptions.ctsFlowControl. Trường này có thể bị bỏ qua nếu xảy ra lỗi khi truy vấn thiết bị cơ bản.

  • dataBits

    DataBits không bắt buộc

    Vui lòng xem ConnectionOptions.dataBits. Trường này có thể bị bỏ qua nếu xảy ra lỗi khi truy vấn thiết bị cơ bản.

  • tên

    chuỗi

    Xem ConnectionOptions.name

  • parityBit

    ParityBit không bắt buộc

    Vui lòng xem ConnectionOptions.parityBit. Trường này có thể bị bỏ qua nếu xảy ra lỗi khi truy vấn thiết bị cơ bản.

  • tạm dừng

    boolean

    Cờ cho biết liệu kết nối có bị chặn kích hoạt sự kiện onReceive hay không.

  • bền vững

    boolean

    Xem ConnectionOptions.persistent

  • receiveTimeout

    số

    Xem ConnectionOptions.receiveTimeout

  • sendTimeout

    số

    Xem ConnectionOptions.sendTimeout

  • stopBits

    StopBits không bắt buộc

    Vui lòng xem ConnectionOptions.stopBits. Trường này có thể bị bỏ qua nếu xảy ra lỗi khi truy vấn thiết bị cơ bản.

ConnectionOptions

Thuộc tính

  • tốc độ bit

    number không bắt buộc

    Tốc độ bit được yêu cầu của kết nối cần mở. Để tương thích với nhiều loại phần cứng nhất, số này phải khớp với một trong các tốc độ bit thường có, chẳng hạn như 110, 300, 1200, 2400, 4800, 9600, 14400, 19200, 38400, 57600, 115200. Tất nhiên, không có gì đảm bảo rằng thiết bị được kết nối với cổng nối tiếp sẽ hỗ trợ tốc độ bit được yêu cầu, ngay cả khi chính cổng đó hỗ trợ tốc độ bit đó. 9600 sẽ được truyền theo mặc định.

  • bufferSize

    number không bắt buộc

    Kích thước của vùng đệm dùng để nhận dữ liệu. Giá trị mặc định là 4096.

  • ctsFlowControl

    boolean không bắt buộc

    Cờ cho biết có bật tính năng kiểm soát luồng phần cứng RTS/CTS hay không. Giá trị mặc định là false.

  • dataBits

    DataBits không bắt buộc

    "eight" sẽ được truyền theo mặc định.

  • tên

    chuỗi không bắt buộc

    Một chuỗi do ứng dụng xác định để liên kết với kết nối.

  • parityBit

    ParityBit không bắt buộc

    "no" sẽ được truyền theo mặc định.

  • bền vững

    boolean không bắt buộc

    Cờ cho biết liệu có nên để kết nối mở khi ứng dụng bị tạm ngưng hay không (xem phần Quản lý vòng đời ứng dụng). Giá trị mặc định là "false". Khi ứng dụng được tải, mọi kết nối nối tiếp đã mở trước đó bằng persistent=true đều có thể được tìm nạp bằng getConnections.

  • receiveTimeout

    number không bắt buộc

    Thời gian tối đa (tính bằng mili giây) để chờ dữ liệu mới trước khi kích hoạt sự kiện onReceiveError có lỗi "hết thời gian chờ". Nếu bằng 0, lỗi hết thời gian chờ nhận sẽ không được đưa ra cho kết nối. Giá trị mặc định là: 0

  • sendTimeout

    number không bắt buộc

    Thời gian tối đa (tính bằng mili giây) để chờ một thao tác send hoàn tất trước khi gọi lệnh gọi lại kèm theo lỗi "hết thời gian chờ". Nếu là 0, lỗi hết thời gian chờ gửi sẽ không được kích hoạt. Giá trị mặc định là: 0

  • stopBits

    StopBits không bắt buộc

    "one" sẽ được truyền theo mặc định.

DataBits

Enum

"bảy"

"eight"

DeviceControlSignals

Thuộc tính

  • cts

    boolean

    CTS (Clear To Send).

  • dcd

    boolean

    DCD (Phát hiện sóng mang dữ liệu) hoặc RLSD (Phát hiện/Tín hiệu đường truyền nhận).

  • dsr

    boolean

    DSR (Data Set Ready – Tập dữ liệu đã sẵn sàng).

  • ri

    boolean

    RI (Ring Indicator – Chỉ báo chuông).

DeviceInfo

Thuộc tính

  • Tên hiển thị

    chuỗi không bắt buộc

    Tên hiển thị mà con người có thể đọc được cho thiết bị cơ bản nếu có thể truy vấn tên đó từ trình điều khiển máy chủ.

  • đường dẫn

    chuỗi

    Đường dẫn hệ thống của thiết bị. Bạn nên truyền giá trị này dưới dạng đối số path đến chrome.serial.connect để kết nối với thiết bị này.

  • productId

    number không bắt buộc

    Mã sản phẩm USB nếu có thể xác định được mã này cho thiết bị cơ bản.

  • vendorId

    number không bắt buộc

    Mã nhà cung cấp PCI hoặc USB nếu có thể xác định được mã này cho thiết bị cơ bản.

HostControlSignals

Thuộc tính

  • dtr

    boolean không bắt buộc

    DTR (Data Terminal Ready – Thiết bị đầu cuối dữ liệu đã sẵn sàng).

  • rts

    boolean không bắt buộc

    RTS (Yêu cầu gửi).

ParityBit

Enum

"no"

"odd"

"even"

ReceiveError

Enum

"disconnected"
Kết nối đã bị ngắt.

"timeout"
Không nhận được dữ liệu nào trong receiveTimeout mili giây.

"device_lost"
Thiết bị có nhiều khả năng đã bị ngắt kết nối khỏi máy chủ.

"break"
Thiết bị phát hiện thấy điều kiện ngắt.

"frame_error"
Thiết bị phát hiện thấy lỗi khung hình.

"overrun"
Đã xảy ra lỗi tràn vùng đệm ký tự. Ký tự tiếp theo bị mất.

"buffer_overflow"
Đã xảy ra lỗi tràn bộ đệm đầu vào. Không có chỗ trong vùng đệm đầu vào hoặc đã nhận được một ký tự sau ký tự kết thúc tệp (EOF).

"parity_error"
Thiết bị phát hiện thấy lỗi chẵn lẻ.

"system_error"
Đã xảy ra lỗi hệ thống và có thể không khôi phục được kết nối.

ReceiveErrorInfo

Thuộc tính

  • connectionId

    số

    Giá trị nhận dạng kết nối.

  • error

    Mã lỗi cho biết vấn đề đã xảy ra.

ReceiveInfo

Thuộc tính

  • connectionId

    số

    Giá trị nhận dạng kết nối.

  • khác

    ArrayBuffer

    Dữ liệu đã nhận.

SendError

Enum

"disconnected"
Kết nối đã bị ngắt.

"pending"
Một lượt gửi đã ở trạng thái đang chờ xử lý.

"timeout"
Hết thời gian gửi.

"system_error"
Đã xảy ra lỗi hệ thống và có thể không khôi phục được kết nối.

SendInfo

Thuộc tính

  • bytesSent

    số

    Số byte đã gửi.

  • error

    SendError không bắt buộc

    Mã lỗi nếu xảy ra lỗi.

StopBits

Enum

"một"

"hai"

Phương thức

clearBreak()

Promise Chrome 45 trở lên
chrome.serial.clearBreak(
  connectionId: number,
  callback?: function,
)
: Promise<boolean>

Khôi phục việc truyền ký tự trên một kết nối nhất định và đặt đường truyền ở trạng thái không ngắt.

Thông số

  • connectionId

    số

    Mã của mối kết nối.

  • callback

    hàm không bắt buộc

    Tham số callback có dạng như sau:

    (result: boolean) => void

    • kết quả

      boolean

Giá trị trả về

  • Promise<boolean>

    Chrome 117 trở lên

    Lời hứa chỉ được hỗ trợ cho Manifest V3 trở lên, các nền tảng khác cần sử dụng lệnh gọi lại.

connect()

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

Kết nối với một cổng nối tiếp nhất định.

Thông số

  • đường dẫn

    chuỗi

    Đường dẫn hệ thống của cổng nối tiếp cần mở.

  • tùy chọn

    ConnectionOptions không bắt buộc

    Các lựa chọn cấu hình cổng.

  • callback

    hàm không bắt buộc

    Tham số callback có dạng như sau:

    (connectionInfo: ConnectionInfo) => void

Giá trị trả về

  • Chrome 117 trở lên

    Lời hứa chỉ được hỗ trợ cho Manifest V3 trở lên, các nền tảng khác cần sử dụng lệnh gọi lại.

disconnect()

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

Ngắt kết nối khỏi cổng nối tiếp.

Thông số

  • connectionId

    số

    Mã của kết nối đã mở.

  • callback

    hàm không bắt buộc

    Tham số callback có dạng như sau:

    (result: boolean) => void

    • kết quả

      boolean

Giá trị trả về

  • Promise<boolean>

    Chrome 117 trở lên

    Lời hứa chỉ được hỗ trợ cho Manifest V3 trở lên, các nền tảng khác cần sử dụng lệnh gọi lại.

flush()

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

Xoá tất cả byte trong vùng đệm đầu vào và đầu ra của kết nối đã cho.

Thông số

  • connectionId

    số

  • callback

    hàm không bắt buộc

    Tham số callback có dạng như sau:

    (result: boolean) => void

    • kết quả

      boolean

Giá trị trả về

  • Promise<boolean>

    Chrome 117 trở lên

    Lời hứa chỉ được hỗ trợ cho Manifest V3 trở lên, các nền tảng khác cần sử dụng lệnh gọi lại.

getConnections()

Promise
chrome.serial.getConnections(
  callback?: function,
)
: Promise<ConnectionInfo[]>

Truy xuất danh sách các kết nối cổng nối tiếp hiện đang mở thuộc sở hữu của ứng dụng.

Thông số

  • callback

    hàm không bắt buộc

    Tham số callback có dạng như sau:

    (connectionInfos: ConnectionInfo[]) => void

Giá trị trả về

  • <ConnectionInfo[]> hứa hẹn

    Chrome 117 trở lên

    Lời hứa chỉ được hỗ trợ cho Manifest V3 trở lên, các nền tảng khác cần sử dụng lệnh gọi lại.

getControlSignals()

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

Truy xuất trạng thái của tín hiệu điều khiển trên một kết nối nhất định.

Thông số

Giá trị trả về

  • Chrome 117 trở lên

    Lời hứa chỉ được hỗ trợ cho Manifest V3 trở lên, các nền tảng khác cần sử dụng lệnh gọi lại.

getDevices()

Promise
chrome.serial.getDevices(
  callback?: function,
)
: Promise<DeviceInfo[]>

Trả về thông tin về các thiết bị nối tiếp có sẵn trên hệ thống. Danh sách này được tạo lại mỗi khi phương thức này được gọi.

Thông số

  • callback

    hàm không bắt buộc

    Tham số callback có dạng như sau:

    (ports: DeviceInfo[]) => void

Giá trị trả về

  • Promise<DeviceInfo[]>

    Chrome 117 trở lên

    Lời hứa chỉ được hỗ trợ cho Manifest V3 trở lên, các nền tảng khác cần sử dụng lệnh gọi lại.

getInfo()

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

Truy xuất trạng thái của một kết nối nhất định.

Thông số

  • connectionId

    số

    Mã của kết nối đã mở.

  • callback

    hàm không bắt buộc

    Tham số callback có dạng như sau:

    (connectionInfo: ConnectionInfo) => void

Giá trị trả về

  • Chrome 117 trở lên

    Lời hứa chỉ được hỗ trợ cho Manifest V3 trở lên, các nền tảng khác cần sử dụng lệnh gọi lại.

send()

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

Ghi dữ liệu vào kết nối đã cho.

Thông số

  • connectionId

    số

    Mã của mối kết nối.

  • khác

    ArrayBuffer

    Dữ liệu cần gửi.

  • callback

    hàm không bắt buộc

    Tham số callback có dạng như sau:

    (sendInfo: SendInfo) => void

Giá trị trả về

  • Promise<SendInfo>

    Chrome 117 trở lên

    Lời hứa chỉ được hỗ trợ cho Manifest V3 trở lên, các nền tảng khác cần sử dụng lệnh gọi lại.

setBreak()

Promise Chrome 45 trở lên
chrome.serial.setBreak(
  connectionId: number,
  callback?: function,
)
: Promise<boolean>

Tạm ngưng việc truyền ký tự trên một kết nối nhất định và đặt đường truyền ở trạng thái ngắt cho đến khi clearBreak được gọi.

Thông số

  • connectionId

    số

    Mã của mối kết nối.

  • callback

    hàm không bắt buộc

    Tham số callback có dạng như sau:

    (result: boolean) => void

    • kết quả

      boolean

Giá trị trả về

  • Promise<boolean>

    Chrome 117 trở lên

    Lời hứa chỉ được hỗ trợ cho Manifest V3 trở lên, các nền tảng khác cần sử dụng lệnh gọi lại.

setControlSignals()

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

Đặt trạng thái của tín hiệu điều khiển trên một kết nối nhất định.

Thông số

  • connectionId

    số

    Mã của mối kết nối.

  • tín hiệu

    Tập hợp các thay đổi về tín hiệu cần gửi đến thiết bị.

  • callback

    hàm không bắt buộc

    Tham số callback có dạng như sau:

    (result: boolean) => void

    • kết quả

      boolean

Giá trị trả về

  • Promise<boolean>

    Chrome 117 trở lên

    Lời hứa chỉ được hỗ trợ cho Manifest V3 trở lên, các nền tảng khác cần sử dụng lệnh gọi lại.

setPaused()

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

Tạm dừng hoặc tiếp tục một kết nối đang mở.

Thông số

  • connectionId

    số

    Mã của kết nối đã mở.

  • tạm dừng

    boolean

    Cờ cho biết nên tạm dừng hay tiếp tục.

  • callback

    hàm không bắt buộc

    Tham số callback có dạng như sau:

    () => void

Giá trị trả về

  • Promise<void>

    Chrome 117 trở lên

    Lời hứa chỉ được hỗ trợ cho Manifest V3 trở lên, các nền tảng khác cần sử dụng lệnh gọi lại.

update()

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

Cập nhật chế độ cài đặt tuỳ chọn trên một kết nối cổng nối tiếp đang mở.

Thông số

  • connectionId

    số

    Mã của kết nối đã mở.

  • tùy chọn

    Các lựa chọn cấu hình cổng.

  • callback

    hàm không bắt buộc

    Tham số callback có dạng như sau:

    (result: boolean) => void

    • kết quả

      boolean

Giá trị trả về

  • Promise<boolean>

    Chrome 117 trở lên

    Lời hứa chỉ được hỗ trợ cho Manifest V3 trở lên, các nền tảng khác cần sử dụng lệnh gọi lại.

Sự kiện

onReceive

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

Sự kiện được kích hoạt khi dữ liệu đã được đọc từ kết nối.

Thông số

onReceiveError

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

Sự kiện được kích hoạt khi xảy ra lỗi trong khi thời gian chạy đang chờ dữ liệu trên cổng nối tiếp. Sau khi sự kiện này được kích hoạt, kết nối có thể được đặt thành paused. Lỗi "timeout" không tạm dừng kết nối.

Thông số