自分自身のためのものづくりメモ突っ込みなどがありましたら掲示板にお願いします。Vista環境にて、PL-2303を使用したUSB接続COMポートで、TEXCELLのRubyシリアル通信ライブラリを用いてデータを受信できない。Vista環境にて、PL-2303を使用したUSB接続COMポートで、TEXCELLのRubyシリアル通信ライブラリを用いてデータを受信できない。teratermでは受信できる。繋いだならば受信できる。原因Vista環境にて、USB接続シリアルポートでは、ReadFileを実行した際、「読み取ったバイト数」として常にゼロが帰ってくるため。「受信バッファにあるデータのバイト数」を使う。ReadFileでそのバイト数読むと指示しているのだから、問題ない...と思う。問題あったとしても、常に0バイトよりはマシだ。試したUSB接続シリアルポートアダプタは、以下2点。2007-7-10)を使用。URS232GFは、Vista標準ドライバで利用できるとの事だが、できなかった。「URS232GFは一部ロットにて使用できません。)をダウンロードし、インストール。上記2点、チップ自体は同じか。ドライバもほぼ同一なのだろう。隠蔽してくれていた事を実感した。今回必要に迫られてベールの下を覗いたけど、Win32APIは直接触らずに済むならそうしたい代物だ。XP)では、USB接続のRS-232C(正確にはEIA-574)アダプタのCOMポート番号は、差すUSBポートを変えるとコロコロ変わる。COM19になったりCOM6になったり...。USB接続のその手の機器は、デバイスマネージャ上で個体識別できる。自作プログラムでも個体識別し、COMポート番号を自動設定できる。WMIを介して情報を得る。COMポートを抜き出すのが確実。