USB Data Endpoint Control

USB Data Endpoint Control

USB Data Endpoint Control


Требуется:
org.jancy.io.fileorg.jancy.io.usb

Плагин USB Control Endpoint позволяет выполнять низкоуровневые взаимодействия с контрольной конечной точкой # 0 на USB-устройстве.


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


Однако, в отличие от всех других сессионных плагинов, здесь есть одна особенность. Мы не можем просто считывать данные с контрольной конечной точки и отображать полученные байты в журнале как RX. Каждая передача "для чтения" должна быть снабжена параметрами — получатель, тип, код, значение, индекс. Эти параметры специфичны для каждой конкретной команды чтения, поэтому "просто чтение" — автоматически, в фоновом режиме, как это делают все другие плагины, — невозможно.


Подход, используемый подключаемым модулем USB Control Endpoint, заключается в следующем. Во-первых, вы указываете все параметры IN transfer с помощью полей со списком на панели инструментов. Затем вы подготавливаете буфер для передачи, заполняя область передачи ЛЮБЫМИ байтами. Обратите внимание, что вы должны выбрать подходящий размер для конкретного типа передачи — чем больше, тем не обязательно лучше здесь!


Наконец, нажмите Отправить, чтобы начать передачу. Я знаю, поначалу может показаться немного нелогичным нажимать "Отправить", когда вы на самом деле собираетесь получать. Однако такой подход позволяет действительно единообразно обрабатывать как исходящие, так и входящие передачи управления, поэтому мы решили оставить все как есть.


На скриншоте ниже вы можете видеть, что плагин USB Control Endpoint используется для чтения строковых дескрипторов с множества подключенных USB-устройств.