Libudevを使って自分のUSBに接続されているポートを見つける方法

Libudevを使って自分のUSBに接続されているポートを見つける方法

一種のモジュールを作りました。モジュールにはさまざまなセンサーが配置されています。 RS232コンバータを介してモジュールをRaspberry Piに接続しました。私はベンダーIDと製品IDを使用してRS232コンバーターを持つPiポートを自動的に見つけるためにLibudevを使用しています。そのポートからデータを正常に読み取り、フロントエンドに表示します。今私の問題は、現在2つのモジュールがあり、両方のモジュールが同じPiに接続されており、同じRS232ベンダーIDと製品IDを持っていることです。フロントエンドでは、モジュール1または2を選択しました。ベンダーIDと製品IDに加えて、これら2つのコンバーターを区別する方法。 Libudevを介してソリューションを提供できれば幸いです。 PS:現在Libudevは私が最近RS232コンバータを接続したポートを検出します。

ベストアンサー1

正しい方法は、RS232コンバータのデバイスノード名を指定する/dev/ttyUSB0ことです。範囲あなたのアプリケーションに。コマンドラインオプション、設定ファイルまたはその他の手段を介して。

これは、アプリケーションが他のコンピュータで実行されている可能性があり、同じベンダと製品IDを持つ他のRS232コンバータが多数ありますが、モジュールがそれらのいずれにも接続されていないためです。それからなるでしょう必要ユーザーがアプリケーションで使用するRS232コンバータを選択できるようにします。ユーザーがこのオプションを設定できない場合、アプリケーションはユーザーのコンピューターで実行されません。

同じ製造元、同じ製品のUSBデバイスを自動的に区別するには、シリアル番号を表示します(他の場合、一部のデバイスにはシリアル番号がないか、すべて同じ場合)。デバイスが接続されているUSBポートのパスも表示できます。ルールを使用して、udevこれらのデバイスの既知の名前でシンボリックリンクを作成し、これらの名前を上記のパラメータのデフォルトとして使用できます。

おすすめ記事