SerialPort
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.
Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.
Note: This feature is available in Dedicated Web Workers.
Giao diện SerialPort của Web Serial API cung cấp khả năng truy cập vào một cổng nối tiếp trên thiết bị chủ.
Hàm khởi tạo
Các thực thể của giao diện này có thể được tạo ra bằng cách gọi các phương thức của giao diện Serial, do đó nó không có hàm khởi tạo riêng.
Thuộc tính phiên bản
SerialPort.connectedRead only Experimental-
Trả về giá trị boolean cho biết liệu cổng có được kết nối logic với thiết bị hay không.
SerialPort.readableRead only Experimental-
Trả về một
ReadableStreamđể nhận dữ liệu từ thiết bị kết nối với cổng. SerialPort.writableRead only Experimental-
Trả về một
WritableStreamđể gửi dữ liệu tới thiết bị kết nối với cổng.
Phương thức phiên bản
SerialPort.forget()Experimental-
Trả về một
Promisephân giải khi quyền truy cập vào cổng nối tiếp bị thu hồi. Gọi phương thức này sẽ "quên" thiết bị, đặt lại mọi quyền đã được thiết lập trước đó để trang gọi không còn có thể giao tiếp với cổng nữa. SerialPort.getInfo()Experimental-
Trả về một đối tượng chứa thông tin định danh cho thiết bị có sẵn qua cổng.
SerialPort.open()Experimental-
Trả về một
Promisephân giải khi cổng được mở. Mặc định cổng được mở với 8 bit dữ liệu, 1 bit dừng và không kiểm tra chẵn lẻ. SerialPort.setSignals()Experimental-
Đặt các tín hiệu điều khiển trên cổng và trả về một
Promisephân giải khi chúng được đặt. SerialPort.getSignals()Experimental-
Trả về một
Promisephân giải với một đối tượng chứa trạng thái hiện tại của các tín hiệu điều khiển của cổng. SerialPort.close()Experimental-
Trả về một
Promisephân giải khi cổng đóng.
Sự kiện
connectExperimental-
Kích hoạt khi cổng kết nối với thiết bị.
disconnectExperimental-
Kích hoạt khi cổng ngắt kết nối khỏi thiết bị.
Ví dụ
>Mở một cổng
Trước khi giao tiếp trên một cổng nối tiếp, cổng đó phải được mở. Mở cổng cho phép trang web chỉ định các tham số cần thiết kiểm soát cách dữ liệu được truyền và nhận. Nhà phát triển nên kiểm tra tài liệu của thiết bị đang kết nối để biết các tham số phù hợp.
await port.open({ baudRate: 9600 /* pick your baud rate */ });
Sau khi Promise được trả về bởi open() phân giải, các thuộc tính readable và writable có thể được truy cập để lấy các thực thể ReadableStream và WritableStream để nhận dữ liệu từ và gửi dữ liệu đến thiết bị được kết nối.
Đọc dữ liệu từ một cổng
Ví dụ sau đây cho thấy cách đọc dữ liệu từ một cổng. Vòng lặp ngoài xử lý các lỗi không nghiêm trọng, tạo một trình đọc mới cho đến khi gặp lỗi nghiêm trọng và readable trở thành null.
while (port.readable) {
const reader = port.readable.getReader();
try {
while (true) {
const { value, done } = await reader.read();
if (done) {
// |reader| has been canceled.
break;
}
// Do something with |value|…
}
} catch (error) {
// Handle |error|…
} finally {
reader.releaseLock();
}
}
Ghi dữ liệu vào một cổng
Ví dụ sau đây cho thấy cách ghi một chuỗi vào một cổng. Một TextEncoder chuyển đổi chuỗi thành Uint8Array trước khi truyền.
const encoder = new TextEncoder();
const writer = port.writable.getWriter();
await writer.write(encoder.encode("PING"));
writer.releaseLock();
Thông số kỹ thuật
| Specification |
|---|
| Web Serial API> # dom-serialport> |