SerialPort
Ограниченная доступность
Эта функция не является базовой, так как она не работает во всех наиболее широко используемых браузерах.
Безопасный контекст: Эта функция доступна только в безопасных контекстах (HTTPS) в некоторых или всех поддерживающих браузерах.
Экспериментальная: Это экспериментальная технология
Перед использованием в производстве внимательно проверьте таблицу совместимости с браузерами.
Примечание: Эта функция доступна в специализированных веб-воркерах.
Интерфейс SerialPort API веб-порта предоставляет доступ к последовательному порту на устройстве-хосте.
Конструктор
Экземпляры этого интерфейса могут быть получены путем вызова методов интерфейса Serial, поэтому у него нет собственного конструктора.
Свойства экземпляра
-
SerialPort.connectedТолько для чтения Экспериментальная -
Возвращает булево значение, указывающее, логически ли подключен порт к устройству.
-
SerialPort.readableТолько для чтения Экспериментальная -
Возвращает
ReadableStreamдля получения данных с устройства, подключенного к порту. -
SerialPort.writableТолько для чтения Экспериментальная -
Возвращает
WritableStreamдля отправки данных устройству, подключенному к порту.
Методы экземпляра
-
SerialPort.forget()Экспериментальная -
Возвращает
Promise, который разрешается, когда доступ к последовательному порту аннулирован. Вызов этого метода «забывает» устройство, сбрасывая ранее установленные разрешения, чтобы вызывающий сайт больше не мог взаимодействовать с портом. -
SerialPort.getInfo()Экспериментальная -
Возвращает объект, содержащий идентификационную информацию о устройстве, доступном через порт.
-
SerialPort.open()Экспериментальная -
Возвращает
Promise, который разрешается при открытии порта. По умолчанию порт открывается с 8 битами данных, 1 стоп-битом и без проверки четности. -
SerialPort.setSignals()Экспериментальная -
Устанавливает управляющие сигналы на порту и возвращает
Promise, который разрешается при их установке. -
SerialPort.getSignals()Экспериментальная -
Возвращает
Promise, который разрешается объектом, содержащим текущее состояние управляющих сигналов порта. -
SerialPort.close()Экспериментальная -
Возвращает
Promise, который разрешается при закрытии порта.
События
-
connectЭкспериментальная -
Срабатывает при подключении порта к устройству.
-
disconnectЭкспериментальная -
Срабатывает при отключении порта от устройства.
Примеры
Открытие порта
Перед взаимодействием с последовательным портом необходимо его открыть. Открытие порта позволяет сайту указать необходимые параметры, которые контролируют передачу и прием данных. Разработчики должны проверить документацию по устройству, к которому они подключаются, чтобы узнать соответствующие параметры.
await port.open({ baudRate: 9600 /* pick your baud rate */ });
После того, как Promise возвращенное open() разрешится, можно получить доступ к свойствам readable и writable, чтобы получить экземпляры ReadableStream и WritableStream для получения данных с подключенного устройства и отправки данных на него.
Чтение данных из порта
Следующий пример демонстрирует чтение данных из порта. Внешний цикл обрабатывает некритические ошибки, создавая нового ридера, пока не произойдет критическая ошибка, и readable станет 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();
}
}
Запись данных в порт
В следующем примере показано, как записать строку в порт. TextEncoder преобразует строку в Uint8Array перед передачей.
const encoder = new TextEncoder();
const writer = port.writable.getWriter();
await writer.write(encoder.encode("PING"));
writer.releaseLock();
Спецификации
| Спецификация |
|---|
| API веб-порта # dom-serialport |
Совместимость с браузерами
| Рабочий стол | Мобильный | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на IOS | Samsung Internet | WebView Android | |
SerialPort |
89 | 89 | Нет | 75 | Нет | Нет | Нет | Нет | Нет | Нет | Нет |
close |
89 | 89 | Нет | 75 | Нет | Нет | Нет | Нет | Нет | Нет | Нет |
connect_event |
89 | 89 | Нет | 75 | Нет | Нет | Нет | Нет | Нет | Нет | Нет |
connected |
130 | 130 | Нет | 115 | Нет | Нет | Нет | Нет | Нет | Нет | Нет |
disconnect_event |
89 | 89 | Нет | 75 | Нет | Нет | Нет | Нет | Нет | Нет | Нет |
forget |
103 | 103 | Нет | 89 | Нет | Нет | Нет | Нет | Нет | Нет | Нет |
getInfo |
89 | 89 | Нет | 75 | Нет | Нет | Нет | Нет | Нет | Нет | Нет |
getSignals |
89 | 89 | Нет | 75 | Нет | Нет | Нет | Нет | Нет | Нет | Нет |
open |
89 | 89 | Нет | 75 | Нет | Нет | Нет | Нет | Нет | Нет | Нет |
readable |
89 | 89 | Нет | 75 | Нет | Нет | Нет | Нет | Нет | Нет | Нет |
setSignals |
89 | 89 | Нет | 75 | Нет | Нет | Нет | Нет | Нет | Нет | Нет |
writable |
89 | 89 | Нет | 75 | Нет | Нет | Нет | Нет | Нет | Нет | Нет |
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/SerialPort