代码拉取完成,页面将自动刷新
/**
* 获取 Modbus Master
*
* @param deviceId
* @param driverInfo
* @return
* @throws ModbusInitException
*/
public ModbusMaster getMaster(Long deviceId, Map<String, AttributeInfo> driverInfo) throws ModbusInitException {
log.debug("Modbus Tcp Connection Info {}", JSON.toJSONString(driverInfo));
ModbusMaster modbusMaster = masterMap.get(deviceId);
if (null == modbusMaster || !modbusMaster.isConnected()) {
IpParameters params = new IpParameters();
params.setHost(attribute(driverInfo, "host"));
params.setPort(attribute(driverInfo, "port"));
//此处设置keepAlive 为true貌似无效
// 所以每次都会重新连接,在连接实际设备时
modbusMaster = modbusFactory.createTcpMaster(params, true);
modbusMaster.init();
// 此处输出modbusMaster.isConnected() false
System.out.println("状态:"+modbusMaster.isConnected());
//增加 手动置位
modbusMaster.setConnected(true);
masterMap.put(deviceId, modbusMaster);
}
return modbusMaster;
}