Jamod (modbus, Java)精通编程,为什么要重复事务



我正在进行一个涉及使用串行连接(因此是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,要真正理解这个问题,我认为你们可能需要阅读整个例子]

我的问题是为什么它重复事务?这对我来说没有任何意义,因为repeat变量是从放置在main中的参数中获取的,并且正如教程所说,它是可选的。总结一下,为什么这里要重复?

任何帮助将非常感激!

因为repeat是可选的,所以它可能默认为0。如果你给它,循环将执行精确的"重复"次数。使用默认值,代码可能只执行一次(因为repeat将为0)

do-while结构确保您不需要在for循环的保护下做任何神奇的事情来执行至少一次。

我也在想同样的事情,但是用支持BTW的Wireshark来玩和观察流量。Modbus的开箱即用看到更多的流量是很有用的只是为了学习和理解,发生了什么。但是在正常的工作流中,没有必要重复事务。

相关内容

  • 没有找到相关文章

最新更新