Spec-Zone.ru › Web APIs

USBEndpoint

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

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

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

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

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

Примечание: Эта функция доступна в Web Workers.

Интерфейс USBEndpoint API WebUSB предоставляет информацию об конечной точке, предоставляемой устройством USB. Конечная точка представляет собой однонаправленный поток данных в устройство или из устройства.

Конструктор

USBEndpoint() Экспериментально

Создаёт новый объект USBEndpoint, который будет заполнен информацией об конечной точке на предоставленном USBAlternateInterface с заданным номером конечной точки и направлением передачи.

Свойства экземпляра

USBEndpoint.endpointNumber Экспериментально

Возвращает "номер конечной точки" этой конечной точки, значение от 1 до 15, извлечённое из поля bEndpointAddress описателя конечной точки, определяющего эту конечную точку. Это значение используется для идентификации конечной точки при вызове методов на USBDevice.

USBEndpoint.direction Экспериментально

Возвращает направление, в котором эта конечная точка передаёт данные, одно из:

  • "in" - Данные передаются от устройства к хосту.
  • "out" - Данные передаются от хоста к устройству.
USBEndpoint.type Экспериментально

Возвращает тип этой конечной точки, один из:

  • "bulk" - Предоставляет надёжную передачу данных для больших объёмов. Данные, отправленные через конечную точку типа bulk, гарантированно будут доставлены или сгенерируют ошибку, но могут быть прерваны другими данными.
  • "interrupt" - Предоставляет надёжную передачу данных для небольших объёмов. Данные, отправленные через прерывание конечной точки, гарантированно будут доставлены или сгенерируют ошибку, а также получат выделенное время шины для передачи.
  • "isochronous" - Предоставляет ненадежную передачу данных для данных, которые должны быть переданы периодически. Им выделяется выделенное время шины, но если срок выполнения пропущен, данные отбрасываются.
USBEndpoint.packetSize Экспериментально

Возвращает размер пакетов, на которые данные, отправленные через эту конечную точку, будут разделены.

Примеры

Хотя иногда разработчик заранее знает точный макет конечных точек устройства, есть случаи, когда это необходимо обнаружить во время выполнения. Например, USB-устройство последовательной связи должно предоставлять конечные точки ввода/вывода типа bulk, но их номера конечных точек будут зависеть от других интерфейсов, которые предоставляет устройство.

Этот код идентифицирует правильные конечные точки, выполняя поиск интерфейса, реализующего класс USB CDC интерфейса, а затем идентифицирует кандидатуры конечных точек на основе их типа и направления.

let inEndpoint = undefined;
let outEndpoint = undefined;

for (const { alternates } of device.configuration.interfaces) {
  // Only support devices with out multiple alternate interfaces.
  const alternate = alternates[0];

  // Identify the interface implementing the USB CDC class.
  const USB_CDC_CLASS = 10;
  if (alternate.interfaceClass !== USB_CDC_CLASS) {
    continue;
  }

  for (const endpoint of alternate.endpoints) {
    // Identify the bulk transfer endpoints.
    if (endpoint.type !== "bulk") {
      continue;
    }

    if (endpoint.direction === "in") {
      inEndpoint = endpoint.endpointNumber;
    } else if (endpoint.direction === "out") {
      outEndpoint = endpoint.endpointNumber;
    }
  }
}

Спецификации

Спецификация
API WebUSB
# usbendpoint-interface

Совместимость с браузерами

Рабочие столы Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android
USBEndpoint 61 79 Нет 48 Нет 61 Нет 45 Нет 8.0 Нет
USBEndpoint 61 79 Нет 48 Нет 61 Нет 45 Нет 8.0
НетWebView предоставляет этот интерфейс, но не поддерживает WebUSB. См. ошибку 41441927.
direction 61 79 Нет 48 Нет 61 Нет 45 Нет 8.0 Нет
endpointNumber 61 79 Нет 48 Нет 61 Нет 45 Нет 8.0 Нет
packetSize 61 79 Нет 48 Нет 61 Нет 45 Нет 8.0 Нет
type 61 79 Нет 48 Нет 61 Нет 45 Нет 8.0 Нет
worker_support
118Доступен в выделенных worker и WebExtension service worker, недоступен в shared worker и обычных service worker.
70–118Доступен в выделенных worker, недоступен в shared worker и service worker.
118Доступен в выделенных worker и WebExtension service worker, недоступен в shared worker и обычных service worker.
79–118Доступен в выделенных worker, недоступен в shared worker и service worker.
Нет
104Доступен в выделенных worker и WebExtension service worker, недоступен в shared worker и обычных service worker.
57–104Доступен в выделенных worker, недоступен в shared worker и service worker.
Нет
118Доступен в выделенных worker и WebExtension service worker, недоступен в shared worker и обычных service worker.
70–118Доступен в выделенных worker, недоступен в shared worker и service worker.
Нет
79Доступен в выделенных worker и WebExtension service worker, недоступен в shared worker и обычных service worker.
49–79Доступен в выделенных worker, недоступен в shared worker и service worker.
Нет
25.0Доступен в выделенных worker и WebExtension service worker, недоступен в shared worker и обычных service worker.
10.0–25.0Доступен в выделенных worker, недоступен в shared worker и service worker.
НетWebView предоставляет этот интерфейс, но не поддерживает WebUSB.

© 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/USBEndpoint

Spec-Zone.ru

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