0

(私の下手な英語で申し訳ありません)。

今日、ポートから別のポートにすべてのデータをリダイレクトしたいと思います。(socat や netcat と同様ですが、これらのツールはライセンスのために使用できません)。

私のデータは未定義であり (開始ビットまたは停止ビットではありません)、長さが異なります。

  • イーサネットポートからイーサネットポートへは簡単です(イーサネットヘッダーがあります)。
  • イーサネットポートからシリアルポートへも簡単です(フレームの開始と終了を知るためのイーサネットヘッダーがあるため、データをカットしてシリアルポートにデータを送信します)。

しかし、私の問題はシリアルポートからイーサネットポートへです。ヘッダーがない場合、シリアル ポートから完全なフレームをいつ受信したかを知るにはどうすればよいですか? イーサネット ポートでデータをリダイレクトする前に、すべてのデータを受信する必要があり、イーサネット フレームで変換した後にのみ行う必要があるため、同意しますか?

私はこの解決策について考えました:2つのシリアルデータバイト間の時間がフレーム間遅延よりも短く、データが同じフレームにあり、フレームを変換する前に次のデータを待つ場合、フレーム間遅延を定義できますイーサネット フレーム。

4

1 に答える 1

0

ヘッダーを含め、シリアル ポート上でイーサネット エンコーディングを使用すると、パケットの境界を簡単に把握できるはずです。

また、古き良き SLIPなどの既存のツールも参照してください。

于 2013-10-02T09:45:42.297 に答える