RS232シリアルポートを介して展開マシンに接続する多数のハードウェアセンサーを持つプロジェクトを開発しています。
しかし...物理的なRS232シリアルポートのないマシンで開発していますが、ハードウェアセンサーからの入力を偽造することを目的として、データを接続してそこからデータを出力できる偽造シリアルポートを作成したいと思います。
誰もが偽のシリアルポートを作成してWindows XPで制御する方法を知っていますか?
Windows用に開発している場合、 com0com プロジェクトは、あなたが探しているものかもしれません。
これは、ヌルモデム接続を介してリンクされる仮想COMポートのペアを提供します。その後、お気に入りのターミナルアプリケーションなどを使用して、データを1つのCOMポートに送信し、他のCOMポートから受信できます。
Thomasが指摘したように、特定のWindowsバージョン(Windows 7 x64など)で特に問題となる署名されたドライバーがないプロジェクトを指摘しました。
署名されたドライバを含む非公式com0comバージョンがいくつかあります。最近のバージョン(3.0.0.0)を1つダウンロードできます。 from here 。
私はこれが古い投稿であることを知っていますが、他の誰かがこの質問に遭遇した場合、 良い オプションは、 Eterlogic からの仮想シリアルポートエミュレーター(VSPE)です。これは、カーネルモードの仮想comportデバイス(コネクタ、マッパー、スプリッターなど)を作成するためのAPIを提供します。
ただし、宣伝された機能の一部は実際に機能まったくでした。
[〜#〜] edit [〜#〜]
より良い選択、Eltima。この製品は完全に焼き上げられています。優れた開発者技術サポート。製品は、主張するすべてを実行しました。製品オプションには、デスクトップアプリケーションとAPIを備えたソフトウェア開発キットの両方が含まれます。
これらの製品はいずれもオープンソースでも無料でもありません。ただし、他の投稿が指摘しているように、他のオプションもあります。さまざまなシリアルユーティリティのリストを次に示します。
com0com(現在)
com0com-署名付きドライバー(旧バージョン)
そして、署名済みドライバーを使用したcom0comの別の場所(Pete's Blog)
戦術ソフトウェア
シロアリ
COMポートシリアルエミュレータ
Kermit(旧式ですが、ダウンロード可能)
HWVSP3
HHDソフトウェア(無料版)
私は com0com-With Signed Driver をWindows 7 x64で使用して、COM3とCOM4をペアとしてエミュレートします。
次に、 COM Dataport Emulator を使用してCOM4から受信します。
次に、アプリ開発(c#)でCOM3を開き、COM3にデータを送信します。
COM3を介して送信されたデータは、COM4で受信され、「COM Dataport Emulator」で表示されます。「COM Dataport Emulator」は、応答を自動化することもできます。
したがって、この2つの素晴らしいプログラムを使用して、シリアルRS-232通信をエミュレートすることができました。
それが役に立てば幸い。
両方のプログラムは無料です!!!!!
OPがそれを要求しなかったとしても、別の選択肢:
Usb-to-serialアダプタが存在します。アダプタのタイプによっては、ヌルモデムケーブルも必要になる場合があります。
動作するドライバがインストールされていれば、Linuxでも非常に使いやすく、Windowsでも動作します。
そうすれば、センサーを直接操作でき、データをエミュレートする必要がありません。そうすれば、貧血システムを構築する手間を省くことができます。 (エミュレートされたデータ入力がすべてのケースをカバーしていないため、脆弱なシステムになります。)
多くの場合、実際のものを使用する方が適切です。
常にハードウェアルートがあります。 2つのUSBシリアルコンバーターを購入し、NULLモデム経由で接続します。
プロのヒント:1)Windowsは、デバイスがスリープまたはリブートするたびに新しいCOMポートをアダプターに割り当てることがあります。 2)USBからシリアルへのチップの市場リーダーは、ProlificとFTDIです。両社は模造品と戦っており、将来の公式のWindowsドライバーではブロックされる可能性があります。ただし、Linuxドライバーはクローンで正常に機能します。