19

RS232 を使用して周辺機器と通信しているいくつかのレガシー システムを扱っています。私は COM インターフェースの経験があまりありません。COM ポートを開いて使用できるコードがいくつかありますが、他のアプリケーションで使用されているポートを開くことはできません。更新された通信に同じプロトコルを使用できるように、パケットをブラックボックス化する必要があります。

開いている COM ポートへの着信パケットを「仲介者」にして、どのパケットが送信されているかを検出する方法はありますか? 私は .NET を使用していますが、あらゆる種類のソリューションを受け入れることができます。

(私はこれを見つけましが、これは私にはうまくいかないと思います。)

4

4 に答える 4

13

私は com0com を使用しました - 仮想 com ポートをセットアップするのに最適です - これはまったく役に立ちません。

COM ポート インターフェイスは、基本的に「ファイル読み取り」です。既に別のインスタンスが読み取りを行っている COM ポートに接続しようとすると、アプリケーションが例外をスローします。読み書きではなく「読み取り専用」として開くことができるかどうかはわかりませんが、試してみる価値はあります。

データをログ ファイルに分岐できる仮想 COM ポートを書き込むことができるはずです。Com0com はオープンソースなので、それを出発点として使用できます。

別の解決策として、rs232 スプリッター ケーブルを使用して、シリアル信号を別のシリアル ポートにフォークする方法があります。

または、さらに別の可能性は、Serial Sniffer プログラム (またはオープン ソースの sniffer ) です。

または、同じ com0com Web サイトからhub4com アプリをお試しください!

于 2009-05-27T14:14:45.833 に答える
0

また、TCPcomを使用してデータをイーサネット パケットに変換し、Wireshark で監視して、別の場所にブロードキャストすることもできます。次に、TCPcom の別のインスタンスを使用して、任意の COM ポート (仮想 COM ポートを含む) に転送します。これで、基本的にイーサネット経由でデータをハイジャックしました。 https://sourceforge.net/projects/combytcp/?source=ディレクトリ

于 2016-03-30T13:39:56.540 に答える