1

私はシリアル接続(したがってJamod)の使用とコーディングを含むプロジェクトに参加しています

//7. Execute the transaction repeat times
//repeat =10 defined in point 1. (go to the source to read the code)
int k = 0;
do {
  trans.execute();
  res = (ReadInputRegistersResponse) trans.getResponse();
  for (int n = 0; n < res.getWordCount(); n++) {
    System.out.println("Word " + n + "=" + res.getRegisterValue(n));
  }
  k++;
} while (k < repeat);

[ソース: http://jamod.sourceforge.net/kb/serial_master_howto.html、質問を本当に理解するには、例全体を読む必要があると思います]

私の質問は、なぜトランザクションを繰り返すのですか? 繰り返し変数はメインに配置された引数から取得され、チュートリアルにあるようにオプションである ため、私には意味がありません。要約すると、なぜその繰り返しがあるのですか?

どんな助けでも大歓迎です!

4

2 に答える 2

0

私も同じことを疑問に思っていましたが、ところで、Wiresharkで遊んでトラフィックを監視していました。modbus は箱から出してすぐに使用でき、何が起こるかを学び、理解するためだけに、より多くのトラフィックを確認するのに役立ちました。ただし、通常のワークフローでは、トランザクションを繰り返す必要はありません。

于 2012-11-15T13:02:14.497 に答える
0

繰り返しはオプションなので、デフォルトではおそらく 0 です。これを指定すると、ループは正確に「繰り返し」回数実行されます。デフォルト値では、コードはおそらく 1 回だけ実行されます (repeat は 0 になるため)。

do-while コンストラクトは、少なくとも 1 回実行するために for ループのガードで魔法のようなことをする必要がないことを確認します。

于 2011-11-24T15:18:23.837 に答える