Jamod (Modbus, Java) Мастер программирования, почему он повторяет транзакцию? - PullRequest
1 голос
/ 24 ноября 2011

Я нахожусь в проекте, который использует последовательное соединение (отсюда и 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,, чтобы действительно понять вопрос, который ядумаю, вам, ребята, может понадобиться прочитать весь пример]

Мой вопрос: почему повторяется транзакция? для меня это не имеет никакого смысла, поскольку переменная повторения взята изАргументы, которые помещаются в main и, как говорится в руководстве, являются необязательными.Итак, чтобы подвести итог, почему это повторение там?

Любая помощь будет очень ценится!

Ответы [ 2 ]

0 голосов
/ 15 ноября 2012

Мне было интересно то же самое, но я играл и наблюдал за трафиком с Wireshark , который поддерживает BTW. Modbus из коробки, и было полезно увидеть больше трафика, просто чтобы узнать и понять, что происходит. Но в обычном рабочем процессе нет необходимости повторять транзакцию.

0 голосов
/ 24 ноября 2011

Поскольку повтор не является обязательным, он, вероятно, будет 0 по умолчанию.Если вы дадите его, цикл будет повторяться ровно несколько раз.Со значением по умолчанию код, вероятно, будет выполняться только один раз (так как repeat будет 0)

Конструкция do-while гарантирует, что вам не нужно делать никаких магических вещей в защитном цикле for для выполненияХотя бы один раз.

...