igds-protocol-modbus/src/main/java/com/ld/igds/modbus/DeviceModbus.view.xml
@@ -104,6 +104,15 @@ <Property name="valueProperty">name</Property> </Property> </PropertyDef> <PropertyDef name="serId"> <Property/> <Property name="label">所属分机</Property> <Property name="mapping"> <Property name="mapValues">${dorado.getDataProvider("deviceSerPR#getAllSerCache").getResult()}</Property> <Property name="keyProperty">id</Property> <Property name="valueProperty">name</Property> </Property> </PropertyDef> </DataType> </Model> <View layout="padding:5;regionPadding:5"> @@ -170,12 +179,15 @@ <DataColumn name="deviceCode"> <Property name="property">deviceCode</Property> </DataColumn> <DataColumn name="serId"> <Property name="property">serId</Property> </DataColumn> <ColumnGroup> <Property name="caption">开操作</Property> <DataColumn name="open"> <Property name="property">open</Property> <Property name="caption">地址</Property> <Property name="width">100</Property> <Property name="width">80</Property> </DataColumn> <DataColumn name="openFun"> <Property name="property">openFun</Property> @@ -189,7 +201,7 @@ <DataColumn name="close"> <Property name="property">close</Property> <Property name="caption">地址</Property> <Property name="width">100</Property> <Property name="width">80</Property> </DataColumn> <DataColumn name="closeFun"> <Property name="property">closeFun</Property> @@ -203,7 +215,7 @@ <DataColumn name="stop"> <Property name="property">stop</Property> <Property name="caption">地址</Property> <Property name="width">100</Property> <Property name="width">80</Property> </DataColumn> <DataColumn name="stopFun"> <Property name="property">stopFun</Property> @@ -217,7 +229,7 @@ <DataColumn name="openEnd"> <Property name="property">openEnd</Property> <Property name="caption">地址</Property> <Property name="width">100</Property> <Property name="width">80</Property> </DataColumn> <DataColumn name="openEndFun"> <Property name="property">openEndFun</Property> @@ -231,7 +243,7 @@ <DataColumn name="closeEnd"> <Property name="property">closeEnd</Property> <Property name="caption">地址</Property> <Property name="width">100</Property> <Property name="width">80</Property> </DataColumn> <DataColumn name="closeEndFun"> <Property name="property">closeEndFun</Property> @@ -245,7 +257,7 @@ <DataColumn name="openError"> <Property name="property">openError</Property> <Property name="caption">地址</Property> <Property name="width">100</Property> <Property name="width">80</Property> </DataColumn> <DataColumn name="openErrorFun"> <Property name="property">openErrorFun</Property> @@ -259,7 +271,7 @@ <DataColumn name="closeError"> <Property name="property">closeError</Property> <Property name="caption">地址</Property> <Property name="width">100</Property> <Property name="width">80</Property> </DataColumn> <DataColumn name="closeErrorFun"> <Property name="property">closeErrorFun</Property> igds-protocol-modbus/src/main/java/com/ld/igds/models/DeviceModbus.java
@@ -89,6 +89,11 @@ @PropertyDef(label = "功能号") private String closeErrorFun = "99"; //轴流风机和轴流窗可能不在一个分机上,IP不同 @Column(name = "SER_ID_", length = 10) @PropertyDef(label = "所属分机") private String serId; @Transient private List<GasModbus> listGas; igds-protocol-modbus/src/main/java/com/ld/igds/protocol/modbus/command/RemoteControlServiceImpl.java
@@ -1,6 +1,7 @@ package com.ld.igds.protocol.modbus.command; import com.ld.igds.common.CoreDeviceService; import com.ld.igds.common.CoreSerService; import com.ld.igds.constant.Constant; import com.ld.igds.constant.DeviceStatus; import com.ld.igds.io.RemoteControlService; @@ -14,6 +15,7 @@ import com.ld.igds.modbus.service.HModbusService; import com.ld.igds.models.Device; import com.ld.igds.models.DeviceModbus; import com.ld.igds.models.DeviceSer; import com.ld.igds.protocol.modbus.ModbusUtil2; import com.ld.igds.protocol.modbus.ServerUtil; import com.ld.igds.protocol.modbus.data.ModbusTcp; @@ -43,6 +45,8 @@ private HModbusService deviceModbusService; @Resource private AnalysisService analysisService; @Resource private CoreSerService coreSerService; @Override @@ -114,7 +118,12 @@ modbusTcpLink.setBizCode(exeDevice.getLink()); modbusTcpLink.setSerId(request.getSerId()); modbusTcpLink.setCompanyId(request.getCompanyId()); if(StringUtils.isNotEmpty(deviceModbus.getSerId())){ //若Modbus设备配置分机,则使用所配置分机的IP、端口 DeviceSer deviceSer = coreSerService.getCacheSer(request.getCompanyId(), deviceModbus.getSerId()); modbusTcpLink.setIp(deviceSer.getIp()); modbusTcpLink.setPort(deviceSer.getPort()); } //如果是开风机 if (DeviceStatus.F_OPEN.getCode().equals(exeDevice.getTargetStatus())) { @@ -163,7 +172,7 @@ Thread.sleep(300); //在关窗户 temp = modbusTcp.getDeviceModbus().getOpen(); temp = modbusTcp.getDeviceModbus().getClose(); modbusTcp.setAddrExe(ServerUtil.getAddrExe(temp)); doWriteExe(modbusTcp, DeviceStatus.CLOSE.getCode()); igds-protocol-modbus/src/main/java/com/ld/igds/protocol/modbus/command/RemoteGasServiceImpl.java
@@ -75,7 +75,7 @@ boolean exeResult = ModbusUtil2.writeCoilStatus(modbusTcp.getIp(), modbusTcp.getPort(), modbusTcp.getAddrExe(), true); if (exeResult) { ModbusUtil2.writeCoilStatus(modbusTcp.getIp(), modbusTcp.getPort(), modbusTcp.getAddrExe(), false); addRun(request); //调用异步获取结果 progressGasResult(request, modbusTcp); @@ -130,7 +130,7 @@ } //根据通道数量线程等待,每个通道等待60秒 Thread.sleep(list.size() * 60 * 1000); Thread.sleep(list.size() * 50 * 1000); log.debug("--------------等待时间完成,开始获取检测结果-------------{}", modbusTcp.getBizCode()); boolean isRun = isRun(request);