PCから入力を受け取り、他のホストに渡すだけで何もしません。
これはUSBの観点からは非センシティブです。 USBはホストベースのプロトコルです。ホストが最初にデータを要求しない限り、デバイスはデータを送信しません。ここでは、「ホスト」と「デバイス」はプロトコル自体の中で具体的な意味を持ちます。 「ホスト」をマスター、「デバイス」をスレーブと考えることができます。これらの役割は、USBコントローラに焼き付けられます。任意のPCまたは周辺機器の標準USBコントローラをスワップロールに納得させる方法はありません。 USBデバイスコントローラであるPC用のアドインカードがあります(あなたのPCをデバイスとして動作させる)が、「安い」は私がそれらを記述するために使用する言葉ではありません。
あなたが実際にやろうとしていることは、デバイスブリッジへのUSBデバイスであるものを作成することです。だから、2つのUSB(2.0)デバイスコントローラを用意する必要があります(高価ではないかもしれませんし、マイクロコントローラの一部にはすでにコントローラを用意しておく必要があります)。それから、お互いに意味のあるものを渡すようにしなければなりません。上記のように、ホストはデバイスにデータを送信するように指示し、必要なときにいつでもデバイスにデータを送信できるため、これは本当に難しいです。ゲームコントローラがHIDデバイスとして表示されていると仮定すると(コンソールが奇妙なカスタムディスクリプタをリッスンせず、奇妙なカスタムプロトコルを使用していると仮定して)、割り込みパイプを使用してデータを転送します。このパイプは、最低レートでポーリングされることが保証されています。したがって、コンソールは一定の速度でデータを要求しますが、これは固定されておらず、ある時点でデータを送信するホストとしてのゲームパッドもあります。それは2つが同期することは不可能になるので、作成しようとしているガジェットにはある程度の大きさの適切なバッファが必要です。これは$$以上の複雑さを追加します。
USBもかなり高速です。高速(USB2.0)では、フレームの長さは125マイクロ秒です。つまり、マイクロコントローラのクロック速度と比較して遅い約8KHzで要求を完了する必要がありますが、他のすべてを一度に行う必要があることに注意してください。あなたが必要とするすべてのもの、特に独自のUSBスタックを動かす必要がないものを持っている趣味のレベルのマイクロコントローラがあるかどうかはわかりません。
[ゲームコントローラのなりすまし](http:// stackoverflow。com/questions/4940825/spoofing-a-game-controller) –