web-dev-qa-db-ja.com

IP経由でシリアルデバイスを共有するWindows / Linux socat

socatを使用してRaspberry Pi(Debian)にプラグインされた非常に高価なUSB患者シミュレータを共有する方法を私のグループに示したシナリオがあります。グループは、イーサネットを介してシリアルデバイスにオンデマンドで双方向接続できるようにしたいと考えています。現在、Telnet経由でブロードキャストするデバイスを使用しています。

socat tcp-l:23,reuseaddr,fork,crlf file:/dev/ttyUSB0,echo=0,b115200,raw,crnl,icanon=1

WindowsユーザーがTelnetポートに接続するコンシューマー側をセットアップする必要がありますが、I/Oをマシンの使用可能なCOMポートにリダイレクトします。私はWindows側でCygwinとsocatを考えていましたが、私は非常に熟練したWindowsの人ではありません。

何か案は?

6
wxfield

Linux PCでsocatを使用してポートを共有するのと同じ方法で、Windows PCでシリアルポートを共有できるようにするために、あなたの質問を理解しました。

たとえば、sourceforge.netには、Windowsのtcpソケットをシリアルポートに接続できるオープンソースアプリケーションがあります。また、google "serial to ip"または "ip to serial"をググってください。簡単な例の1つは「SerialToIP」です http://sourceforge.net/projects/serialtoip/?source=directory C#で開発されています。コマンドラインとGUIのバージョンが利用可能ですが、シリアルポートの制御は最小限ですが、socat-exampleに基づいてニーズに十分対応できる可能性があります。

詳細なシリアルポート制御の必要性と、Windowsユーザーがログインしているかどうかにかかわらずアプリケーションを実行する必要があるかどうかに応じて、ニーズに合ったアプリケーションを選択する必要があります。 WindowsのGUIアプリケーションでは、デフォルトでユーザーがログインして作業する必要があります。

ところで、あなたのsocatコマンドはTelnetプロトコルとは何の関係もありません。シリアルポートに接続する純粋で単純なTCP/IP「パイプ」を作成しているだけです。その「パイプ」内で実行される可能性のあるトップ層プロトコルは、質問と回答には関係ありません。

1
polar32700

これを行うには、Tactical Softwareのソフトウェアリダイレクター Serial/IP を使用できます。

シリアル/ IPは、エンドポイントのTCP/IPアドレスにリンクできる仮想COMポートを作成します。

シリアル/ IPをインストールしたら、仮想COMポート番号を選択し、Raspberry PiのIPアドレス、TCPポート(この場合は23))を入力し、プロトコルとしてTelnetを選択します。

これで、Windows PC上のアプリケーションが仮想COMポートを開くと、USBシミュレーターに接続されます。

0
Todd