2009-05-27 17 views
18

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

はオープ​​ンCOMポートへの「仲介者」の着信パケットに方法はありますし、送信されているどのようなパケットを検出しますか?私は.NETを使用していますが、私はあらゆるタイプのソリューションに対応しています。

(私はそこにthisを見つけましたが、私はこれが私のために動作するとは思わない。)

+1

私はhub4comアプリケーション(com0comから)が実際に必要なものを行うかもしれないと思います。 –

答えて

13

私はcom0comを使用しました - であなたを助けていません - それは、仮想COMポートを設定するための素晴らしいことですすべて。

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

ログファイルにデータをフォークできる仮想COMポートを作成する必要があります。 Com0comはオープンソースなので、これを出発点として使うことができます。

別の可能な解決策は、別のシリアルポートにrs232 splitter cableフォークシリアル信号をピックアップすることができます。

またはさらに別の可能性は、Serial Sniffer program(又はopen source sniffer)です。

同じcom0comのウェブサイトからhub4com appをお試しください!

+1

あなたが提案したスニッファは、基本的に私がすでに書いたものです。私は、仮想化は行くための最高の方法かもしれないと思うが、私はラインを分割する考えが好きだ。デバイスとの間でパケットをキャプチャすることはできますか? – Daniel

+0

hub4comのコードを入手する場所を知っていますか?サイトにはexeがありますが、コードは表示されません。 – baash05

+0

http://com0com.cvs.sourceforge.net/viewvc/com0com/hub4com/ を介してそこに着いた: http://sourceforge.net/scm/?type=cvs&group_id=129551 – Kieveli

4

私はこれと同じ経路をとっています。ハードウェアスプリッターは最も簡単なソリューションです。

hub4comセットアップには、「新しいハードウェアの追加」ウィザードが必要です。多くのマシン、地理的に離れたマシン、または技術的に精通していないユーザーが必要な権限を持たない場合は、インストールが厄介なことがあります。

これはレガシーアプリケーションの場合、ntvdmで動作しますか?その場合は、代わりにDosBoxで実行し、シリアルポートとの送受信に加えてファイルに書き込むようにDosBoxコードを変更することもできます。 DosBoxもクロスプラットフォームです。

+0

私が知っているすべての時間は、それは窓で実行されています。残りは完全にブラックボックスです。残念ながら、システムはポーランドにあり、私はそうではありません。私の連絡先は妥当なコンピュータリテラシーです。ケーブルを分割すると、着信トラフィックと発信トラフィックの両方に耳を傾けることができます。 – Daniel

+0

スプリッターは、次に行く方法でなければなりません。私の場合は、仕入先がスプリッタを使いたいという別のプロジェクトがあったので、私はその解決法を捨てました。私はそれを2回分割することを考えたくありませんでした。 –

10

"仲介者"

にどのような方法がありますはい、多くがあります。 "フィルタドライバ"のコンセプトにより、Windowsで強力にサポートされています。このようなドライバは、I/O要求を受け取ったドライバの前に挿入し、通過するすべてのものを見ることができます。通常はI/O要求を変更することを意図していますが、単純に要求を監視するのにも非常に適しています。真ん中の男。

そのような運転者の標準的な例は、由緒SysInternals' PortMon utilityあります。設定とデータを含む、シリアルポートとの間でアプリケーションが送受信するすべての情報を表示します。そのようなアプリはたくさんありますが、Googleの「シリアルポートフィルタドライバ」(ソースコードサンプルに重い)と「シリアルポートモニタ」だけです。

この脚注には、64ビットバージョンのWindowsで問題が発生する傾向があります。 PortMonを含むこれらのアプリの大部分は、32ビット版でしか動作しません。64ビット版では、認定されたドライバのみがインストールできますが、費用を正当化するためにこれらのアプリを販売することはほとんどありません。あなたが買い物するときはこれに注意してください。

0

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

関連する問題