0

これが問題です。センサー ボードは、さまざまな UDP パケット サイズで 31 バイトのデータを 1 秒間に 3 回送信します。例えば:

1st packet 6 bytes
2nd packet 8 bytes
3rd packet 1 byte
4th packet 5 bytes
5th packet 5 bytes
6th packet 6 bytes

1st packet 4 bytes
2nd packet 5 bytes
3rd packet 1 byte
4th packet 7 bytes
5th packet 3 bytes
6th packet 6 bytes
7th packet 5 bytes

さまざまな場所からデータを送信する複数のセンサー ボードがあります。

私が抱えている問題は、複数のセンサーボードデータを受信したときにシーケンスを検出する方法です。シーケンシャルなので、1枚のボードをシーケンス検出できます。しかし、各センサー ボードのデータをシーケンス検出し、各センサー ボードの 100 セットごとのデータの平均を保存する方法がわかりません。31バイトのバッファが受信されてパケット全体が形成されるまで、一意の送信者ごとにデータを収集し、送信者ごとに100セットが受信されるまで別の構造体に格納する構造体がないと、これを行う方法がわかりません。

前述したように、1 つのデバイスで、31 バイトのセット全体を受信するためのシーケンス検出を行うことができます。データは mysql データベースに保存されます。

プログラムはCです。

どんなアイデアでも大歓迎です。

ありがとう、

ジェイソン

4

1 に答える 1

0

それはUDPです、送信元ポート番号はパケットの一部であるべきではありませんか?パケットの発信元に基づいて、個別に31バイトのデータセットを順番に作成できます。

ただし、UDPであるため、パケットが正常に送信されることを保証することはできません。ルーティングの問題は、パケットドロップ、遅延、およびあらゆる種類の問題を引き起こす可能性があります。これらの問題は、実際にインターネットを経由しない場合は最小限に抑えられ、代わりに1つのホップしかありません。

これらのセンサーからの出力を変更する方法がない場合は、31バイトのパケットを順番に作成し、それをからのデータを結合するものに渡すことができるように、複数の受信機が必要になると思います。すべてのセンサー。

于 2012-05-10T18:50:20.310 に答える