chrome.serial

Описание

Используйте chrome.serial API для чтения и записи данных на устройстве, подключенном к последовательному порту.

Разрешения

serial

Доступность

Только для ChromeOS

Типы

ConnectionInfo

Свойства

  • bitrate

    number (необязательно)

    Посмотрите ConnectionOptions.bitrate. Это поле может быть опущено или содержать неточные данные, если используется нестандартный битрейт или при запросе к устройству произошла ошибка.

  • bufferSize

    число

    Посмотреть: ConnectionOptions.bufferSize

  • connectionId

    число

    Идентификатор подключения к последовательному порту.

  • ctsFlowControl

    Логическое значение (необязательно)

    Посмотрите ConnectionOptions.ctsFlowControl. Это поле может быть опущено, если при запросе к базовому устройству произошла ошибка.

  • dataBits

    DataBits необязательный

    Посмотрите ConnectionOptions.dataBits. Это поле может быть опущено, если при запросе к базовому устройству произошла ошибка.

  • name

    string

    Посмотреть: ConnectionOptions.name

  • parityBit

    ParityBit необязательный

    Посмотрите ConnectionOptions.parityBit. Это поле может быть опущено, если при запросе к базовому устройству произошла ошибка.

  • приостановлено

    Логическое значение

    Флаг, указывающий, заблокировано ли подключение для запуска событий onReceive.

  • постоянный

    Логическое значение

    Посмотреть: ConnectionOptions.persistent

  • receiveTimeout

    число

    Посмотреть: ConnectionOptions.receiveTimeout

  • sendTimeout

    число

    Посмотреть: ConnectionOptions.sendTimeout

  • stopBits

    StopBits необязательный

    Посмотрите ConnectionOptions.stopBits. Это поле может быть опущено, если при запросе к базовому устройству произошла ошибка.

ConnectionOptions

Свойства

  • bitrate

    number (необязательно)

    Запрошенная скорость передачи данных для подключения, которое нужно открыть. Для совместимости с максимально широким спектром оборудования это число должно соответствовать одной из общедоступных скоростей передачи данных, например 110, 300, 1200, 2400, 4800, 9600, 14400, 19200, 38400, 57600, 115200. Конечно, нет гарантии, что устройство, подключенное к последовательному порту, будет поддерживать запрошенную скорость передачи данных, даже если сам порт ее поддерживает. По умолчанию будет передаваться значение 9600.

  • bufferSize

    number (необязательно)

    Размер буфера, используемого для получения данных. Значение по умолчанию – 4096.

  • ctsFlowControl

    Логическое значение (необязательно)

    Флаг, указывающий, нужно ли включить аппаратное управление потоком RTS/CTS. Значение по умолчанию – false.

  • dataBits

    DataBits необязательный

    По умолчанию будет передаваться значение "eight".

  • name

    Строка (необязательно)

    Строка, определенная приложением, которая будет связана с подключением.

  • parityBit

    ParityBit необязательный

    По умолчанию будет передаваться значение "no".

  • постоянный

    Логическое значение (необязательно)

    Флаг, указывающий, должно ли подключение оставаться открытым, когда приложение приостановлено (см. раздел Управление жизненным циклом приложения). Значение по умолчанию – false. При загрузке приложения любые ранее открытые последовательные подключения с параметром persistent=true можно получить с помощью getConnections.

  • receiveTimeout

    number (необязательно)

    Максимальное время (в миллисекундах) ожидания новых данных, по истечении которого генерируется событие onReceiveError с ошибкой "timeout". Если задано значение 0, ошибки тайм-аута приема для подключения не будут возникать. Значение по умолчанию – 0.

  • sendTimeout

    number (необязательно)

    Максимальное время (в миллисекундах), в течение которого нужно ожидать завершения операции send, прежде чем вызывать обратный вызов с ошибкой "Тайм-аут". Если указать 0, ошибки тайм-аута отправки не будут возникать. Значение по умолчанию – 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 (Data Set Ready).

  • ri

    Логическое значение

    RI (индикатор звонка).

DeviceInfo

Свойства

  • displayName

    Строка (необязательно)

    Человекочитаемое отображаемое название базового устройства, если его можно запросить у драйвера хоста.

  • путь

    string

    Системный путь устройства. Чтобы подключиться к устройству, передайте его в качестве аргумента path в chrome.serial.connect.

  • идентификаторТовара

    number (необязательно)

    Идентификатор USB-устройства, если его можно определить для базового устройства.

  • vendorId

    number (необязательно)

    Идентификатор поставщика PCI или USB, если его можно определить для базового устройства.

HostControlSignals

Свойства

  • dtr

    Логическое значение (необязательно)

    DTR (Data Terminal Ready).

  • rts

    Логическое значение (необязательно)

    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

    число

    Идентификатор подключения.

  • ошибка

    Код ошибки, указывающий на то, что пошло не так.

ReceiveInfo

Свойства

  • connectionId

    число

    Идентификатор подключения.

  • делал.

    ArrayBuffer

    Полученные данные.

SendError

Перечисление

"disconnected"
Подключение было разорвано.

"pending"
Отправка уже ожидается.

"timeout"
Время ожидания отправки истекло.

system_error
Произошла системная ошибка, и подключение может быть невозможно восстановить.

SendInfo

Свойства

  • bytesSent

    число

    Количество отправленных байтов.

  • ошибка

    SendError необязательный

    Код ошибки, если она произошла.

StopBits

Перечисление

"one"

"two"

Методы

clearBreak()

Promise Chrome 45+
chrome.serial.clearBreak(
  connectionId: number,
  callback?: function,
)
: Promise<boolean>

Восстановить передачу символов по заданному подключению и перевести линию передачи в состояние без прерывания.

Параметры

  • connectionId

    число

    Идентификатор подключения.

  • обратный вызов

    function необязательно

    Параметр callback выглядит следующим образом:

    (result: boolean) => void

    • Результат

      Логическое значение

Возвраты

  • Promise<boolean>

    Chrome 117 и более поздних версий

    Объекты Promise поддерживаются только в Manifest V3 и более поздних версиях. На других платформах нужно использовать обратные вызовы.

connect()

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

Подключается к указанному последовательному порту.

Параметры

  • путь

    string

    Системный путь к открываемому последовательному порту.

  • Параметры

    ConnectionOptions необязательный

    Варианты конфигурации портов.

  • обратный вызов

    function необязательно

    Параметр callback выглядит следующим образом:

    (connectionInfo: ConnectionInfo) => void

Возвраты

  • Chrome 117 и более поздних версий

    Объекты Promise поддерживаются только в Manifest V3 и более поздних версиях. На других платформах нужно использовать обратные вызовы.

disconnect()

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

Отключает от последовательного порта.

Параметры

  • connectionId

    число

    Идентификатор открытого подключения.

  • обратный вызов

    function необязательно

    Параметр callback выглядит следующим образом:

    (result: boolean) => void

    • Результат

      Логическое значение

Возвраты

  • Promise<boolean>

    Chrome 117 и более поздних версий

    Объекты Promise поддерживаются только в Manifest V3 и более поздних версиях. На других платформах нужно использовать обратные вызовы.

flush()

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

Очищает все байты во входном и выходном буферах заданного подключения.

Параметры

  • connectionId

    число

  • обратный вызов

    function необязательно

    Параметр callback выглядит следующим образом:

    (result: boolean) => void

    • Результат

      Логическое значение

Возвраты

  • Promise<boolean>

    Chrome 117 и более поздних версий

    Объекты Promise поддерживаются только в Manifest V3 и более поздних версиях. На других платформах нужно использовать обратные вызовы.

getConnections()

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

Получает список открытых в данный момент подключений к последовательным портам, принадлежащих приложению.

Параметры

  • обратный вызов

    function необязательно

    Параметр callback выглядит следующим образом:

    (connectionInfos: ConnectionInfo[]) => void

Возвраты

  • Promise<ConnectionInfo[]>

    Chrome 117 и более поздних версий

    Объекты Promise поддерживаются только в Manifest V3 и более поздних версиях. На других платформах нужно использовать обратные вызовы.

getControlSignals()

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

Получает состояние сигналов управления для заданного подключения.

Параметры

  • connectionId

    число

    Идентификатор подключения.

  • обратный вызов

    function необязательно

    Параметр callback выглядит следующим образом:

    (signals: DeviceControlSignals) => void

Возвраты

  • Chrome 117 и более поздних версий

    Объекты Promise поддерживаются только в Manifest V3 и более поздних версиях. На других платформах нужно использовать обратные вызовы.

getDevices()

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

Возвращает информацию о доступных в системе устройствах с последовательным интерфейсом. Список создается заново при каждом вызове этого метода.

Параметры

  • обратный вызов

    function необязательно

    Параметр callback выглядит следующим образом:

    (ports: DeviceInfo[]) => void

Возвраты

  • Promise<DeviceInfo[]>

    Chrome 117 и более поздних версий

    Объекты Promise поддерживаются только в Manifest V3 и более поздних версиях. На других платформах нужно использовать обратные вызовы.

getInfo()

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

Получает статус заданного подключения.

Параметры

  • connectionId

    число

    Идентификатор открытого подключения.

  • обратный вызов

    function необязательно

    Параметр callback выглядит следующим образом:

    (connectionInfo: ConnectionInfo) => void

Возвраты

  • Chrome 117 и более поздних версий

    Объекты Promise поддерживаются только в Manifest V3 и более поздних версиях. На других платформах нужно использовать обратные вызовы.

send()

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

Записывает данные в указанное подключение.

Параметры

  • connectionId

    число

    Идентификатор подключения.

  • делал.

    ArrayBuffer

    Данные для отправки.

  • обратный вызов

    function необязательно

    Параметр callback выглядит следующим образом:

    (sendInfo: SendInfo) => void

Возвраты

  • Promise<SendInfo>

    Chrome 117 и более поздних версий

    Объекты Promise поддерживаются только в Manifest V3 и более поздних версиях. На других платформах нужно использовать обратные вызовы.

setBreak()

Promise Chrome 45+
chrome.serial.setBreak(
  connectionId: number,
  callback?: function,
)
: Promise<boolean>

Приостанавливает передачу символов по заданному соединению и переводит линию передачи в состояние прерывания до вызова clearBreak.

Параметры

  • connectionId

    число

    Идентификатор подключения.

  • обратный вызов

    function необязательно

    Параметр callback выглядит следующим образом:

    (result: boolean) => void

    • Результат

      Логическое значение

Возвраты

  • Promise<boolean>

    Chrome 117 и более поздних версий

    Объекты Promise поддерживаются только в Manifest V3 и более поздних версиях. На других платформах нужно использовать обратные вызовы.

setControlSignals()

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

Задает состояние сигналов управления для указанного подключения.

Параметры

  • connectionId

    число

    Идентификатор подключения.

  • сигналы

    Набор изменений сигналов, которые нужно отправить на устройство.

  • обратный вызов

    function необязательно

    Параметр callback выглядит следующим образом:

    (result: boolean) => void

    • Результат

      Логическое значение

Возвраты

  • Promise<boolean>

    Chrome 117 и более поздних версий

    Объекты Promise поддерживаются только в Manifest V3 и более поздних версиях. На других платформах нужно использовать обратные вызовы.

setPaused()

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

Приостанавливает или возобновляет открытое подключение.

Параметры

  • connectionId

    число

    Идентификатор открытого подключения.

  • приостановлено

    Логическое значение

    Пометка, указывающая, нужно ли приостановить или возобновить показ.

  • обратный вызов

    function необязательно

    Параметр callback выглядит следующим образом:

    () => void

Возвраты

  • Promise<void>

    Chrome 117 и более поздних версий

    Объекты Promise поддерживаются только в Manifest V3 и более поздних версиях. На других платформах нужно использовать обратные вызовы.

update()

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

Обновляет настройки открытого подключения к последовательному порту.

Параметры

  • connectionId

    число

    Идентификатор открытого подключения.

  • Параметры

    Варианты конфигурации портов.

  • обратный вызов

    function необязательно

    Параметр callback выглядит следующим образом:

    (result: boolean) => void

    • Результат

      Логическое значение

Возвраты

  • Promise<boolean>

    Chrome 117 и более поздних версий

    Объекты Promise поддерживаются только в Manifest V3 и более поздних версиях. На других платформах нужно использовать обратные вызовы.

События

onReceive

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

Событие, которое возникает, когда данные считываются из подключения.

Параметры

  • обратный вызов

    function

    Параметр callback выглядит следующим образом:

    (info: ReceiveInfo) => void

onReceiveError

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

Событие возникает, когда во время ожидания данных на последовательном порту происходит ошибка. После этого событие может быть установлено в значение paused. Ошибка "timeout" не приостанавливает подключение.

Параметры

  • обратный вызов

    function

    Параметр callback выглядит следующим образом:

    (info: ReceiveErrorInfo) => void