TestRtuMaster.java 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. import lombok.extern.slf4j.Slf4j;
  2. import wei.yigulu.modbus.domain.FunctionCode;
  3. import wei.yigulu.modbus.domain.Obj4RequestRegister;
  4. import wei.yigulu.modbus.domain.datatype.IModbusDataType;
  5. import wei.yigulu.modbus.domain.datatype.ModbusDataTypeEnum;
  6. import wei.yigulu.modbus.domain.datatype.NumericModbusData;
  7. import wei.yigulu.modbus.exceptiom.ModbusException;
  8. import wei.yigulu.modbus.netty.ModbusRtuMasterBuilder;
  9. import wei.yigulu.modbus.utils.ModbusRequestDataUtils;
  10. import java.util.HashMap;
  11. import java.util.List;
  12. import java.util.Map;
  13. /**
  14. * @author: xiuwei
  15. * @version:
  16. */
  17. @Slf4j
  18. public class TestRtuMaster {
  19. public static void main(String[] args) throws InterruptedException, ModbusException {
  20. ModbusRtuMasterBuilder master = new ModbusRtuMasterBuilder("COM2");
  21. master.setBaudRate(9600);
  22. master.createByUnBlock();
  23. /*
  24. ModbusRtuMasterBuilder master1 = new ModbusRtuMasterBuilder("COM3");
  25. master1.createByUnBlock();
  26. ModbusRtuMasterBuilder master2 = new ModbusRtuMasterBuilder("COM5");
  27. master2.createByUnBlock();
  28. ModbusRtuMasterBuilder master3 = new ModbusRtuMasterBuilder("COM7");
  29. master3.createByUnBlock();*/
  30. Thread.sleep(5000L);
  31. Map<Integer, ModbusDataTypeEnum> map = new HashMap<>();
  32. for (int i = 18; i < 100; i+=10) {
  33. map.put(i , ModbusDataTypeEnum.CDAB);
  34. }
  35. List<Obj4RequestRegister> ll = ModbusRequestDataUtils.splitModbusRequest(map, 1, FunctionCode.READ_HOLDING_REGISTERS);
  36. for (; ; ) {
  37. try {
  38. Map<Integer, IModbusDataType> map1 = ModbusRequestDataUtils.getRegisterData(master, ll);
  39. for (Integer i : map1.keySet()) {
  40. System.out.println(i + " ============ " + ((NumericModbusData) map1.get(i)).getValue());
  41. }
  42. } catch (ModbusException e) {
  43. System.out.println(e.getMsg());
  44. }
  45. Thread.sleep(10L);
  46. }
  47. }
  48. }