管理人のページ

特設ページ
このブログについて
管理人へのご連絡はこちら
メモファイル管理&暗号化ソフト(ヤンマ) バグ、要望 まとめ
最新コメント
シンイち。(2019/08/28 04:04:37)
表示系はちょっと無理やりなので(改行マークやタブマーク)処理が重いと出たりするかもしれません…トリガわかったらご報告していただけるとありがたいです!
moondoldo(2019/08/07 15:24:59)
ぐ…今はその症状が出ません…何のトリガーでそうなるんだろう???
moondoldo(2019/08/07 14:14:10)
1.20にて…設定で「改行マークを表示する」にすると改行マークが表示されるが、何故か上6行ぐらい改行が表示されないバグがあります
moondoldo(2019/06/06 21:42:49)
ばっちりです、ありがとうございます
シンイち。(2019/06/05 10:33:09)
moondoldoさま、1.20でおそらくご希望の動作になっていると思いますがいかがでしょうか?
シリアル機器のソフトウェアエミュレータを作るのに便利なツール
更新日時:2017年07月25日
プログラム / PC / Windows / ハードウェア / ソフトウェア
ちょっと仕事で関連する業務をしているのでメモ

ちょっとお仕事でシリアル機器用のWindowsアプリを触っているのですが、ハードウェア(特にシリアル機器のような簡単な作りのもの)に付属するアプリ作るときってまずエミュレータ作るのが一般的じゃないっすかね?(あくまで個人的イメージです)

でも、今のお仕事では作られてませんでした。

今後アプリを更新していくのに、ハードがないとろくにテストも出来ないなんてあり得ないと思って、プロトコルもいわゆるシリアル通信では一般的な感じで簡単なものだったのでサクっとエミュレータでも作ろうと思ったんですが、シリアル←→USBの変換ケーブルもう一個用意したり、ドライバとかから自分で作ったりしてもアホなので仮想シリアルポートドライバみたいなのでループバックのテスト出来るような汎用的なものないかな~?と探していましたら

で、ネットで調べてましたらNull-modem emulator(com0com)と言うまさにソレなツールが見つかりました。

このツールは二つの仮想COMポートの入出力の橋渡しをしてくれるツールで、例えばCOM10とCOM11と言う二つの仮想COMポートを橋渡しする設定にすると、COM10から入ってきたデータをCOM11へ渡してくれます。

他のサイトでも導入方法など解説されてますが、もっと簡単に。
まず、最新版だとドライバの署名がなくて導入にいろいろ手がかかるのでちょっと前の署名済み版使うのがいいかと思います。

com0com-2.2.2.0-x64-fre-signed.zip

ってのがそのままインストール出来て楽です。
インストール後、設定用のプロンプトが開けるので開きます(UIの設定ツールもありますが、プロンプトのが早いです)

スタートメニュ→ com0com → Setup Command Prompt

からも開けます。

最初に名前なしの二つのCOMポートドライバ CNCA0 と CNCB0 が出来ているのでこれに名前を付けて

command> change CNCA0 PortName=COM10
command> change CNCB0 PortName=COM11

とかすればループバックテストに使えるCOM10とCOM11の出来上がりです。

これで片方のアプリはCOM10を、もう片方のアプリはCOM11をオープンすると、あたかもシリアルケーブルでで繋がったかのような動作をしてくれます。

厳密にシリアル機器と同じ動作をするかと言うと微妙に違ったりもしますが。

自分の場合は片方のアプリだけを起動し、C#のシリアルポートクラスSerialPortでオープンしてまだ相手方のアプリがオープンしてない状態でWrite()メソッドを使ったらそこでフリーズしたまま帰ってこなくなりました。
(本物のハードに接続してる場合は何も無かったかのようにWriteを抜けてきました)

これはSerialPortオブジェクトにタイムアウト(SerialPort.Writetimeout)を設定すれば回避出来ましたが、気づくのにだいぶかかりました(笑)

この辺はSerialPortのシェイクハンドの設定なんかと絡んでくるんだと思いますが少なくとも同じ動作にはならなかった事例と言うことで。

でもとにかく便利です。

おかげさまであくまで適当ですが簡単なエミュレータ作れてテストデータ作りなどだいぶ楽になりました。
お勧めです。

コメント

新規コメント
書き込む前にチェックしてください
@PRCOkusawaさんの