Взять данные с ПК и ничего не делать, кроме как передать его другому хосту.
Это нечувствительное с точки зрения USB. USB - это протокол на основе хоста: устройство никогда не будет отправлять данные, если хост сначала не запросит его. Имейте в виду, что «хозяин» и «устройство» имеют определенные значения здесь в самом протоколе; вы можете думать о «хозяине» как о хозяине и «устройстве» как о рабе. Эти роли выпекаются в USB-контроллер. Невозможно убедить стандартный USB-контроллер на любом ПК или периферийных устройствах менять роли. Существуют дополнительные платы для ПК, которые являются контроллерами USB-устройств (что делает ваш компьютер как устройство), но «дешевый» - это не слово, которое я бы использовал для их описания.
Что вы действительно пытаетесь сделать, это создать что-то, что является устройством USB для моста устройства. Итак, хорошо, вам нужно иметь два контроллера USB (2.0) (может быть, не так дорого, некоторые микрофоны уже имеют встроенные контроллеры). Тогда вы должны заставить их передать что-то значимое друг другу. Это очень сложно, потому что, как я уже упоминал выше, хосты должны сообщать устройству о передаче данных и отправлять данные на устройство всякий раз, когда захочет. Предполагая, что игровой контроллер отображается как HID-устройство (при условии, что консоль не прослушивает какой-то странный, настраиваемый дескриптор и использует какой-то странный, настраиваемый протокол), прерывающие каналы будут использоваться для передачи данных. Эта труба гарантированно будет опробована с минимальной скоростью. Таким образом, у вас есть консоль, запрашивающая данные с некоторой скоростью, которая не является фиксированной, и хост-как-геймпад, отправляющий данные с определенной скоростью. Это невозможно для синхронизации, поэтому вам понадобится какой-то приличный размер буфера в гаджете, который вы пытаетесь создать, что добавляет больше $$ и более сложной.
USB также довольно быстро. В высокоскоростном (USB2.0) кадры имеют длину 125 микросекунд. Это означает, что вы должны выполнять запросы на частоте около 8 кГц, что кажется медленным по сравнению с тактовой частотой микроконтроллера, но имейте в виду, что вы должны делать все остальное сразу. Я не уверен, есть ли микроконтроллер на уровне хобби, у которого будет все, что вам нужно, особенно тот, для которого вам не нужно катить свой собственный USB-накопитель.
Возможный дубликат [Spoofing game controller] (http: // stackoverflow.com/questions/4940825/spoofing-a-game-controller) –