Класс UsbEndpoint Печать
Добавил(а) microsin   

Класс UsbEndpoint представляет конечную точку интерфейса UsbInterface в устройстве USB, подключенном к системе Android, работающей в режиме хоста. Интерфейс может иметь одну или несколько конечных точек UsbEndpoint, которые олицетворяют каналы взаимодействия (обмена данными) между хостом USB (в данном случае это система Android) и устройством USB - для отправки и приема данных.

[Обзор класса UsbEndpoint]

Android поддерживает 3 типа конечных точек - bulk, interrupt и control. Обычно bulk endpoint используются для пересылки нетривиально больших объемов данных. Interrupt endpoints используются для отправки малых порций данных отдельно от главных потоков данных, и обычно соответствуют неким событиям. Control endpoint (она же default endpoint, она же endpoint 0) - специальная конечная точка, которая используется для управляющих сообщений, отправляемых от хоста к устройству (при этом передача данных может быть осуществлена в любую сторону, в зависимости от типа запроса хоста). Есть также 4-й тип конечных точек, неподдерживаемых в настоящее время Android - изохронные конечные точки (isochronous endpoint).

При доступе к устройствам USB обычно используется следующая цепочка использования классов (UsbEndpoint является промежуточным звеном взаимодействия с устройствами USB):

UsbManager -> UsbDevice -> UsbInterface -> UsbEndpoint -> UsbDeviceConnection

Класс UsbEndpoint находится в пакете android.hardware.usb.UsbEndpoint, расширяет (extends) объект Object, и реализует (implements) объект Parcelable. Класс UsbEndpoint (как и поддержка режима хоста USB) была добавлена в Android начиная с API Level 12. Общую информацию по поддержке режимов Host и Accessory см. в [2].

Унаследованные константы (Inherited Constants)
Из интерфейса android.os.Parcelable
int CONTENTS_FILE_DESCRIPTOR Битовые маски для использования с describeContents(): каждый бит представляет вид объекта, который, как предполагается, при упорядочении имеет потенциальное особое значение.
int PARCELABLE_WRITE_RETURN_VALUE Флаг для использования с writeToParcel(Parcel, int): описанный объект является возвращаемым значением, которое является результатом функции наподобие "Parcelable someFunction()", "void someFunction(out Parcelable)", или "void someFunction(inout Parcelable)".
Поля (Fields)
public static final Creator<UsbEndpoint> CREATOR
Общедоступные методы (Public Methods)
int describeContents()
Описывает некие специальные объекты, содержащиеся в этом упорядоченном представлении Parcelable.
int getAddress()
Возвращает поле адреса конечной точки.
int getAttributes()
Возвращает поле атрибутов конечной точки.
int getDirection()
Возвращает направление передачи конечной точки.
int getEndpointNumber()
Выделяет из адреса конечной точки её номер.
int getInterval()
Возвращает поле интервала конечной точки.
int getMaxPacketSize()
Returns the endpoint's maximum packet size.
int getType()
Возвращает тип конечной точки.
String toString()
Возвращает строку с кратким, удобным для чтения человеком описанием этого объекта.
void writeToParcel(Parcelparcel, int flags)
Сводит этот объект к Parcel.

[Поля (Fields)]

public static final Creator<UsbEndpoint> CREATOR

[Общедоступные методы (Public Methods)]

public int describeContents ()

Описывает некие специальные объекты, содержащиеся в этом упорядоченном представлении Parcelable.

Возвращает
  • битовую маску, показывающую набор специальных объектов, упорядоченных через Parcelable.

public int getAddress ()

Возвращает поле адреса конечной точки, полученное из дескрипторов. Поле адреса является битовым, и оно содержит адрес конечной точки (младшие 7 бит поля адреса) и бит направления передачи данных конечной точки (старший бит поля адреса). По отдельности к адресу конечной точки и её направлению можно получить доступ методами getEndpointNumber() и getDirection().

Возвращает
  • адрес конечной точки

public int getAttributes ()

Возвращает поле атрибутов конечной точки, полученное из дескрипторов.

Возвращает
  • атрибуты конечной точки

public int getDirection ()

Возвращает направление передачи данных конечной точки. Вернет USB_DIR_OUT, если направление от хоста к устройству USB, и USB_DIR_IN, если направление от устройства USB к хосту. Хостом в данном случае выступает система Android.

Возвращает
  • направление конечной точки

public int getEndpointNumber ()

Получает номер конечной точки, взятый из адреса.

Возвращает
  • номер конечной точки

public int getInterval ()

Возвращает поле интервала конечной точки, полученное из дескрипторов. Интервал - это целое число, определяющее период времени между пакетами в миллисекундах.

Возвращает
  • интервал конечной точки

public int getMaxPacketSize ()

Возвращает максимальный размер пакета данных конечной точки.

Возвращает
  • максимальный размер пакета конечной точки

public int getType ()

Возвращает тип конечной точки. Возможные результаты:

Возвращает
  • тип конечной точки

public String toString ()

Возвращает строку с кратким, удобным для чтения человеком описанием этого объекта. Рекомендуется для подклассов перезадавать (override) этот метод и предоставлять реализацию, которая учитывает тип и данные объекта. Реализация по умолчанию эквивалентна следующему выражению:

   getClass().getName()+'@'+Integer.toHexString(hashCode())

См. документацию Writing a useful toString method, если хотите создать свою собственную реализацию метода toString.

Возвращает
  • печатаемое текстовое представление этого объекта.

public void writeToParcel (Parcel parcel, int flags)

Сводит этот объект в Parcel.

Параметры
parcel Parcel, в который объект должен быть записан.
flags Дополнительные флаги, сигнализирующие о том, как этот объект должен быть записан. Может быть равен либо 0, либо PARCELABLE_WRITE_RETURN_VALUE.

[Ссылки]

1. UsbEndpoint site:developer.android.com.
2. Android как USB хост и как USB устройство.