CZT
2023-08-30 d3553d8dd6fc00634ac32228e5b8e4d0624eda11
调整Modbus配置-解决轴流风机与轴流窗不在同一个分机配置的问题
已修改4个文件
48 ■■■■ 文件已修改
igds-protocol-modbus/src/main/java/com/ld/igds/modbus/DeviceModbus.view.xml 26 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
igds-protocol-modbus/src/main/java/com/ld/igds/models/DeviceModbus.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
igds-protocol-modbus/src/main/java/com/ld/igds/protocol/modbus/command/RemoteControlServiceImpl.java 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
igds-protocol-modbus/src/main/java/com/ld/igds/protocol/modbus/command/RemoteGasServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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(&quot;deviceSerPR#getAllSerCache&quot;).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);