Spec-Zone.ru › Web APIs

SerialPort

Ограниченная доступность

Эта функция не является базовой, так как она не работает во всех наиболее широко используемых браузерах.

  • Узнать больше
  • Полная совместимость
  • Отправить отзыв

Безопасный контекст: Эта функция доступна только в безопасных контекстах (HTTPS) в некоторых или всех поддерживающих браузерах.

Экспериментальная: Это экспериментальная технология
Перед использованием в производстве внимательно проверьте таблицу совместимости с браузерами.

Примечание: Эта функция доступна в специализированных веб-воркерах.

Интерфейс SerialPort API веб-порта предоставляет доступ к последовательному порту на устройстве-хосте.

EventTarget SerialPort

Конструктор

Экземпляры этого интерфейса могут быть получены путем вызова методов интерфейса 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API