Windows COM ポートは、プロセス間通信のために同じ PC で実行されている 2 つのプログラムで使用できますか? 私たちの最終的な目標は、COM ポートを介して通信してハードウェアを制御するプログラムを作成することです。ハードウェアが利用できないため、仮想 COM ポートから読み取って応答するプログラムでハードウェアをエミュレートしたいと考えています。
単純なエミュレーターは、COM ポートからバイトが読み取られるのを待機し、COM ポートに書き込むことによって応答するプログラムです。まず、これらのメッセージの値をハードコーディングできます。
だから私は、ファイルを読み書きするためにWindowsによって与えられた関数を使用してReadFile
、C / C ++で書かれた2つのプログラムを持っています。WriteFile
アクセス競合のため、このアプローチは機能しません。したがって、エミュレータ自体に対する私たちのアプローチが間違っているのではないかと考えていました。
他の分野でのプログラミング経験はありますが、Windows ベースのプログラミングは初めてです。どんな助けでも大歓迎です。
アップデート:
解決:
- Eltima Software の Virtual Serial Port Driver 7.1 (試用版) をインストール
- 仮想ポートのペアを追加 (COM1 と COM2 など)
- コントローラ プログラムは、COM1 を介して通信します。
- エミュレータ プログラムは COM2 を介して通信します。
- Eltima ソフトウェアが 2 つのポート間のデータ転送を処理します