シリアルポートスニフ - jpnevulatorは一部のバイトのみをスニッフィングします。

シリアルポートスニフ - jpnevulatorは一部のバイトのみをスニッフィングします。

jpnevulatorを使用してシリアルポートを読み取るアプリケーションをスニッフィングします。

jpnevulator --tty /dev/ttyS0 --read

次のバイトがシリアルポートに送信されるとします。ABCD E. 時々、jpnevulatorはACEバイトのみを印刷しますが、アプリケーションはBDバイトを取得します。

jpnevulatorはバイト:ABCDEを印刷し、アプリケーションはすべてのバイト:ABCD Eをインポートする必要があります。何が間違っていますか? jpnevulatorを実行する必要がある特定のオプションはありますか?

答え1

慣れていませんが、jpnevulator通常はttyからデータを読み取る2つのアプリケーションがある場合は、1つのアプリケーションだけがデータを取得します。

データをコピーするには、2番目(または3番目)のttyを作成し、アプリケーションにここからデータを読み取らせる必要があります。

1つの方法は、次のようなものを使用することです。ターミナルバス。その後、jpnevulator新しいttyに接続し、アプリケーションを別のttyに接続できます。

socatもう一つの方法は、or likeで-x使用することです。-v

socat -x PTY,link=/tmp/ptya /dev/ttyS0

次に、16進トラフィックをダンプしながら/tmp/ptyaアプリケーションをポイントします。socatstderr

関連情報