ポートに書き込まれたパケットを監視するポート監視ツールはありますか?Javaで書かれたプログラムが機能するかどうかを特に確認したいので、小さなアプリケーションがポートにメッセージを書き込んでいるかどうかを確認するための何らかのツールが必要です。どうすればいいですか?
ポートに書き込まれたパケットを監視するポート監視ツールはありますか?Javaで書かれたプログラムが機能するかどうかを特に確認したいので、小さなアプリケーションがポートにメッセージを書き込んでいるかどうかを確認するための何らかのツールが必要です。どうすればいいですか?
回答:
Linux Serial Sniffer、jpnevulator、およびMoniというプロジェクトを見つけました。最初の2つは、希望どおりに動作するように見えます。最後の1つはそれ自体をモニターと呼びますが、実際には標準のシリアル通信プログラムのように見えます。
socatは(ほぼ)すべてを(ほぼ)すべてに接続するツールであり、teeはストリームを複製できます。
ユースケースでは、シリアルポート/dev/ttyS0をPTY /tmp/ttyV0に接続してから、アプリケーションをPTYにtee向けて、監視するためにどこかに入出力を設定することができます。
「socat serial port pty tee debug」をグーグルで検索すると、次のようないくつかの例が示されます。
socat /dev/ttyS0,raw,echo=0 \
SYSTEM:'tee in.txt |socat - "PTY,link=/tmp/ttyV0,raw,echo=0,waitslave" |tee out.txt'
ファイルin.txtとout.txtその後、取得したデータが含まれています。
これは、コメンター(@ogurets)によって機能することが確認されています。
socatioctl呼び出しをプロキシすることさえできません。
                    interceptty その仕事をします:
interceptty /dev/ttyACM0 /dev/ttyDUMMY
または、素敵な出力形式とバックエンドデバイスの設定、およびラインバッファリングを使用します。
interceptty -s 'ispeed 19200 ospeed 19200' -l /dev/ttyACM0 /dev/ttyDUMMY | interceptty-nicedump
そして、プログラムに接続します/dev/ttyDUMMY。
wgetクリック.tar.gzするgccとどういうわけか壊れているように見えたので)、インストールしmake、そして実行./configureし、そしてしなければなりませんでしたmake install。OPと私が望むものを正確に行います。
                    strace -s 9999 -e read -ffp $(sed '/ttyUSB0/s/^.*proc.\([0-9]\+\).fd.*/\1/p;d' <(ls -l /proc/[1-9]*/fd/* 2>/dev/null)) 2>&1 | perl -e '$|=1;my %qa=('a'=>7,'b'=>10,'e'=>33,'f'=>14,'n'=>12,'r'=>15,'t'=>11);sub cnv { my $ch=$_[0];$ch=$qa[$1] if $ch=~/([abefnrt])/;return chr(oct($ch));  };while (<>) { /^read.\d+,\s+"(.*)",\s\d+.*$/ && do { $_=$1;s/\\(\d+|[abefnrt])/cnv($1)/eg;print; };};'
申し訳ありませんが、説明します...
strace -s 9999 -e read -ffp $(
    sed "/tty${1:-USB0}/s/^.*proc.\([0-9]\+\).fd.*/\1/p;d" <(
        ls -l /proc/[1-9]*/fd/* 2>/dev/null
    )
) 2>&1 |
    perl -e '
        $|=1;
        my %qa=('a'=>7,'b'=>10,'e'=>33,'f'=>14,'n'=>12,'r'=>15,'t'=>11);
        sub cnv {
            my $ch=$_[0];
            $ch=$qa[$1] if $ch=~/([abefnrt])/;
            return chr(oct($ch));
        };
        while (<>) {
            /^read.\d+,\s+"(.*)",\s\d+.*$/ && do {
                $_=$1;
                s/\\(\d+|[abefnrt])/cnv($1)/eg;
                print;
            };
        };
    '
ls -l /proc/[0-9]*/fd/* | grep ttyUSB0代わりに使用しますlsof ttyUSB0。ttyUSB0tty${1:-USB0}スクリプトとして使用され、シリアルデバイス名を引数として実行することを許可します:ttySniff USB0などttySniff S0。unbackslash、によってログに記録される文字列straceです。注:script -t全体を再生してタイミングの実行を追跡できるように、使用して実行します。
見ていttyUSBSpyを。アルファ段階ですが、動作します。
import pcopyします。
                    minicomシリアルポートを監視するためのツールのリストから欠落しています。たとえば、arduinoデバイスを聞くために使用します。
minicom --device /dev/ttyACM0 --baud 9600