3

私はたくさんの USB シリアル デバイスを持っています (これらは正確にはhttp://plugable.com/products/PL2303-DB9 ) であり、可能であれば、unplug/ 全体でそれらを「追跡」したいと考えています。再接続イベント (再接続イベントが別の USB ポートに対するものであっても)。

ドライバーは、USB の場所から BSD ダイヤルイン/コールアウト/tty デバイス名を作成するように見えますが、これは、それらを接続する USB ポートによって異なります。

2 つの別々の USB ポートに接続された 2 つの同一のデバイス間の IOKit プロパティ ディクショナリを見ると、sessionIDUSB AddresslocationIDportNumまたは から派生したと思われる値のみが異なりますlocationIDsessionIDまあ、セッションごとに変化するように見えます(つまり、プラグを抜く/再プラグするたびに異なります)。

これらのデバイス0はすべてiSerialNumber. USBデバイスに「トークン」を書き込んで読み返すことができる一般的な機能はありますか?USB規格の素早いスキミング/グーグルでは何も見えませんが、そのような機能は確かにうまくいくでしょう...

何か案は?

4

2 に答える 2

6

残念ながら、これを行う良い方法はありません (そして、私が何年も方法を考え出そうとしてきたので、見つけた場合はここに投稿してください)。

ご想像のとおり、問題はデバイス自体に一意の ID がないことです。デバイスに一意のシリアル番号 (IOKit プロパティ ディクショナリで公開されている) がある場合は、それを処理できます。また、デバイスにアクセス可能なユーザー アドレス指定可能なフラッシュが少しあれば、それに書き込むことができますが、私が占うことができた限り、何もありません。

これまでのところ、私ができることは、場所を追跡し、デバイスを認識させたい場合は、デバイスを同じポートに接続するように人々に指示することだけです. ただし、私の場合、シリアル番号を処理する予測可能なデバイスのセットがあるため、シリアル ラインの反対側のデバイスに直接クエリを実行することで、これを少し行うことができます。

于 2013-05-05T10:57:41.367 に答える