王先生 2 years ago
parent
commit
f5d5a7b648

+ 5 - 4
eladmin-system/src/main/java/me/zhengjie/modules/quartz/task/ModbusTask.java

@@ -48,6 +48,7 @@ import me.zhengjie.modules.dm.modbus.group.domain.DmModbusGroup;
 import me.zhengjie.utils.StringUtils;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Component;
+import org.springframework.util.ObjectUtils;
 
 import javax.annotation.PostConstruct;
 import javax.annotation.PreDestroy;
@@ -189,7 +190,7 @@ public class ModbusTask {
                                                               //默认使用 3X(Input  Register)
                                                               log.info("调用读取InputRegisters模拟量数据");
                                                                   // 读取数据 数据类型为 float Integer.valueOf(data.getSoftwareRegisterAddress())
-                                                                 if (Integer.valueOf(data.getSoftwareRegisterAddress())<60){
+                                                                 if (Integer.valueOf(data.getCallTheRoll().substring(0,data.getCallTheRoll().indexOf("_")-1))<8){
                                                                      Number number = readInputRegisters(Integer.valueOf(data.getSoftwareRegisterAddress())-1, 1, modbusSalveId);
 //                                                                    Number number = 321;
                                                                      //获取点名 例如 1F_CO2
@@ -216,9 +217,9 @@ public class ModbusTask {
 //                                                  }
                                               });
 
-                                              if (!ObjectUtil.isEmpty(dmEnvHistoryModbusData)){
+                                              if (!ObjectUtil.isNull(dmEnvHistoryModbusData) && null != dmEnvHistoryModbusData.getCho()){
                                                   // 判断数据是否为0
-                                                  if (dmEnvHistoryModbusData.getCho().equals("0") && dmEnvHistoryModbusData.getCo2().equals("0") && dmEnvHistoryModbusData.getH().equals("0") && dmEnvHistoryModbusData.getT().equals("0") && dmEnvHistoryModbusData.getPm10().equals("0") && dmEnvHistoryModbusData.getPm25().equals("0") && dmEnvHistoryModbusData.getVoc().equals("0")){
+                                                  if ("0".equals(dmEnvHistoryModbusData.getCho()) && "0".equals(dmEnvHistoryModbusData.getCo2()) && "0".equals(dmEnvHistoryModbusData.getH()) && "0".equals(dmEnvHistoryModbusData.getT()) && "0".equals(dmEnvHistoryModbusData.getPm10()) && "0".equals(dmEnvHistoryModbusData.getPm25()) && "0".equals(dmEnvHistoryModbusData.getVoc())){
                                                       DmModbusDeviceStatus dmModbusDeviceStatus = new DmModbusDeviceStatus();
                                                       dmModbusDeviceStatus.setDeviceId(device.getDeviceId());
                                                       dmModbusDeviceStatus.setCreateTime(new Timestamp(System.currentTimeMillis()));
@@ -309,7 +310,7 @@ public class ModbusTask {
                                                             //默认使用 3X(Input  Register)
 //                                                            log.info("调用读取InputRegisters模拟量数据");
                                                             // 读取数据 数据类型为 float Integer.valueOf(data.getSoftwareRegisterAddress())
-                                                            if (Integer.valueOf(data.getSoftwareRegisterAddress())<60){
+                                                            if (Integer.valueOf(data.getCallTheRoll().substring(0,data.getCallTheRoll().indexOf("_")-1))<8){
                                                                 Number number = readInputRegisters(Integer.valueOf(data.getSoftwareRegisterAddress())-1, 1, modbusSalveId);
                                                                 //获取点名 例如 1F_CO2
                                                                 String callTheRoll = data.getCallTheRoll();