0

同じコンピューター上に2つのアプリケーションを持ち、USB経由で直接相互に通信することは可能ですか(ケーブルなし、関連デバイスなし)?簡単/難しいですか?どのAPIをお勧めしますか?

はい、私は同様のスレッドを投稿しましたが、それは私が見つけたJAVA / USB実装を具体的に要求していましたが、Windowsのサポートが必要です。だから今私はUSBAPIを探しています-それはJavaで動作する必要はありません。いつでもJNI/JNativeを使用してネイティブコード/ライブラリを使用できます。

私はインターネット上で同じことをしている人をあまり見つけていません。

4

5 に答える 5

10

USB「バス」はワイヤです。USB は、プロセス間またはピアツーピア通信用ではありません。これは、ホストがすべてのトラフィックを開始するケーブルを介したホストとペリフェラル間の通信専用です。(通常) 2 つのホストを一緒に接続することも、2 つのデバイスを一緒に接続することも、ホスト/デバイス間で対称的な通信を行うこともできません。

同じマシン上の 2 つのプロセス間のプロセス間通信のみが必要な場合は、USB は適していません。まったくナンセンスです。2 つの異なるマシン上の 2 つのプロセス間でプロセス間通信が必要な場合は、TCP/IP を使用する必要があります。

USB デバイスを開発しようとしていて、プロトタイプ ハードウェアの準備が整う前にホストとデバイス ソフトウェアを開発したい場合、そして本当に求めているのは、同じマシン上でそれを実行できる開発環境またはシミュレーション環境です。それらを接続します。それをテストします。それはまったく別のことです。

于 2009-01-15T00:00:17.633 に答える
3

2 つのプロセスが通信できるようにするだけの場合は、Unix またはドメイン ソケットを使用できます。ローカルで USB を介したプロセス間通信が有利になる状況は考えられません。Java は、これを行うための優れたサポートを提供しています。

于 2009-01-14T22:57:49.790 に答える
2

ケーブルおよび/またはデバイスがありません

したがって、あなたが求めていることは不可能です(または意味をなさないことさえあります)、何も接続されていない状態で2つのアプリがシリアルポートを介してどのように通信できるかを尋ねるようなものです..

おそらく、プロセス間通信だけでその猫をスキンするさまざまな方法がある場合、実際の最終目的が何であるかを試してみることができます...(com、wcf、メモリマップファイルなど)

于 2009-01-14T23:26:26.703 に答える
0

多くのカーネル作業で、このようなものが機能する可能性があると思います。USB の他のネットワークを転送できる既存の製品があります。だから私はそれがUSBホストコントローラまたは同様のものをシミュレートすると思います。ホストコントローラーをシミュレートできる場合は、このコントローラーに接続されている実際のデバイスをシミュレートできます。そして、ユーザーモードアプリケーションでこのデバイスを制御します。
しかし、USB プロトコルを深く理解している経験豊富なカーネル プログラマーにとっては、少なくとも 6 MM のプロジェクトであると見積もっています。
そして主な質問はなぜですか?このユース ケースの論理的な理由が見つかりません (存在しないという意味ではありません)。

于 2009-01-15T17:45:35.847 に答える
0

USB を介した通信には、電気接続とプルアップ抵抗、および特定の時間に特定のラインに現れる特定の電圧が必然的に含まれます。これらはすべて、実際のケーブルなしでシミュレートするのが非常に困難です。

Jan Axelson の USB Centralは、USB 通信について学び始めるのに最適な場所です。

于 2009-01-14T23:59:26.403 に答える