ホストOS: Windows 10 pro
ゲストOS: Window 7 pro
状況
- RS-232Cシリアル出力するエミュレータがある
- RS-232Cシリアル入力を受け付けるソフトがある
1のソフトをホストOSにて動作させて2のソフトをゲストOSで動作させた状態で1-2間の通信を行いたい。Windows 10上でのソフトの動作確認として使う。
調査
Named Pipe TCP Proxyなるソフトを使えば、ゲストOS側でTCPとして入力は受け付けできる。しかしこれをRS-232Cに変換する方法が不明。
Serial portをつかってtera termで接続する
別の方法として、ゲストOS側でシリアル出力をファイル出力して、そのファイルをホストOS側で読取るということは可能。この場合、上記2のソフトでシリアル入力の代わりにファイル読取りにするようなアダプタ機能が必要。
以下では可能であるが、変換ケーブルが必要という点はいまいち。
- 2本のUSBシリアル変換ケーブルを用意する
- 1本の変換ケーブルをゲストOSで認識させる
- もう1本の変換ケーブルをホストOSで認識させる
- 2本の変換ケーブルをクロス接続する
Named pipe serial proxyはないのだろうか。そういうのを自作できるだろうか。
Named Pipeのコード例
(追記 2016/07/08)
delphi実装のNamed Pipe Server/Client実装例
http://stackoverflow.com/questions/13465393/how-to-pass-string-between-2-delphi-applications
上記を実装しようとしたが、TReadPipeが見つからないとなった。
Named Pipe TCP Proxy + TCP転送ソフト
- Named Pipe TCP Proxy @ ゲストOS
- Named Pipe TCP Proxy @ ホストOS
- 自作TCP転送ソフト @ いずれかのOS
上記の構成により、ゲストOSのCOMポートからホストOSのCOMポートに通信できるようになるかもしれない。