シリアルポートで通信しようとしているのですが、USBの変換アダプタでRC232Cを接続した場合、COMポートが複数見つかってしまいます。特定のデバイスと接続されているポートと接続したいのですが、シリアルポートに接続されているデバイスを知る方法がわかりません。
ご存知の方よろしくご教授ください。
また手順としては、過去ログから推測するとCreateFile後にしか確認できないような気しますが、どうでしょうか?
よろしくお願いいたします。
>CreateFile後にしか確認できないような気しますが、どうでしょうか?
そうです。
そもそも、シリアルポートでは、実際に通信してみないと相手が分かりません。それどころか、ポートの先に繋がっているかどうかすら分かりません。
それどころか、通信したい相手以外も接続されている場合には、
通信しても分かる保障はありません。(汎用的な識別手順が無いため)
一番簡単で現実的なのは、ユーザーにポートを選んでもらうことですね。
一応、できないことはないですよ。
特にUSBで接続されているならドライバの情報がありますので。
特定のデバイスがわかっているなら、
レジストリからそのデバイスの情報を引っ張ってこれば。
フレンドリネームからその特定のデバイスを
検索してポート番号を取得するとか。
レジストリからMBに元からついている
シリアルポートのポート番号を取得して、
それ以外のポートの場合はUSBポートだと識別させるとか。
(直付けの拡張ボードが載ってる場合は無理ですが・・・)
方法はいろいろです。
実際に通信しなくても、ある程度相手のことはわかります。
(純シリアルデバイスを除く・・・)
ぶっちゃけた話、市販されているUSB-232C変換器を
使用して接続されたRS-232C機器が何か?を判定するのは
無理だと思う。
特定のUSB-232C変換器のポートはどれか?という事なら
けーたさんの仰る様にわかると思います。
実はこれ私も困ってまして、無理だと諦めましたw
ツイート | ![]() |