web-dev-qa-db-ja.com

GNU / Linuxで2つのシリアルポートをリンクするにはどうすればよいですか?

1つのシリアルポートにデータを受信させ、別のシリアルポートに同じデータを送信させる必要があります。 GNU/Linuxでそのようなセットアップを行うにはどうすればよいですか。 1つはBluetoothによって作成されたポートで、もう1つはUSB-シリアルアダプターです。

私はおそらく64ビットミントの最新バージョンを使用するでしょう(私が正しく覚えていれば12)。

6
AndrejaKo

socat シリアルポートを処理できます。

通常、ネットワークインターフェイスで使用され、データを中継できますが、シリアルTTYデバイスも処理します。上記のリンクの例には、シリアル-シリアルリレーは含まれていませんが、これらの例から、それを実現するためのコマンドパラメーターを計算できる可能性があります。


更新:

シリアルポートttyS0を別のシリアルポートにリンクするには:

 socat /dev/ttyS0,raw,echo=0,crnl /dev/ttyS1,raw,echo=0,crnl

from http://technostuff.blogspot.co.uk/2008/10/some-useful-socat-commands.html

socatにはオプションもあり、必要に応じて、中継されているデータをログに記録できます。

8
RedGrittyBrick

迅速で汚い手順については、ターミナルエミュレータプログラム( minicom 、シリアルポートごと。これにより、ポート間でテキストを転送するためのインタラクティブな全二重インターフェイスが提供されます。ファイルおよびバイナリデータ転送用に、いくつかのモデム転送プロトコルが組み込まれています。

より複雑なデータ転送の場合、例:ある種のカスタムデータフォーマット/プロトコルを処理するには、データを処理するためにシリアルポートにアクセスするプログラムを作成する必要があります。

[〜#〜]更新[〜#〜]

あなたがやろうとしていることについて、より詳細に説明してください。両方のシリアルポートを同じPCに接続しますか、それとも各ポートを1台のPCに接続しますか?この「リンクの質問」の目的である場合、2つのシリアルポートを相互に接続できなかった理由はありますか?

「シリアルポート」の1つはUSB-RS232アダプターであるため、PCを介して各シリアルポートを接続する理由はありません。 2つのシリアルポートを相互に接続し(コネクタアダプタを配線する必要がある場合があります)、USBをPCに接続します。ターミナルエミュレータプログラムを使用して、PCに接続されている1つのシリアルポートを処理します。

Bluetooth <---->  USB adapter  <--->  PC
2
sawdust