瀏覽代碼

测试完成opcda实现频率读取,通过变化率读取数据接口

gt 2 年之前
父節點
當前提交
c1ea71ebc2

+ 1 - 1
chuanyi_server/src/main/java/com/judong/chuanyiserver/dao/RawDataDao.java

@@ -10,7 +10,7 @@ import java.util.Map;
 @Repository
 public interface RawDataDao {
 
-    Integer addRawData(Integer id, Integer remainder, RawData rawData);
+    Integer addRawData(Integer itemGroupId, Integer remainder, RawData rawData);
 
     Integer addRawDataList(Integer itemGroupId, Integer remainder, List<RawData> rawDataList);
 

+ 4 - 1
chuanyi_server/src/main/java/com/judong/chuanyiserver/opc/OpcDaTask.java

@@ -8,7 +8,6 @@ import com.judong.chuanyiserver.entity.RawData;
 import com.judong.chuanyiserver.enums.ResultEnum;
 import com.judong.chuanyiserver.exception.CustomException;
 import com.judong.chuanyiserver.util.*;
-import lombok.val;
 import org.openscada.opc.lib.da.*;
 
 import java.util.*;
@@ -79,6 +78,7 @@ public class OpcDaTask extends TimerTask {
                         redisUtil.del(ConstantStr.ITEM_GROUP + itemGroup.getId());
                         itemGroupDao.runItemGroupById(itemGroup.getId(), ConstantStr.STOP_IT);
                         timer.cancel();
+                        break;
                     }
                 }
             } else if (itemGroup.getReadMode() == ConstantStr.ON_CHANGE) {
@@ -128,6 +128,7 @@ public class OpcDaTask extends TimerTask {
                         redisUtil.del(ConstantStr.ITEM_GROUP + itemGroup.getId());
                         itemGroupDao.runItemGroupById(itemGroup.getId(), ConstantStr.STOP_IT);
                         timer.cancel();
+                        break;
                     }
                 }
             } else if (itemGroup.getReadMode() == ConstantStr.EXCEED_SET_VALUE) {
@@ -173,6 +174,7 @@ public class OpcDaTask extends TimerTask {
                         redisUtil.del(ConstantStr.ITEM_GROUP + itemGroup.getId());
                         itemGroupDao.runItemGroupById(itemGroup.getId(), ConstantStr.STOP_IT);
                         timer.cancel();
+                        break;
                     }
                 }
             } else if (itemGroup.getReadMode() == ConstantStr.LOWER_SET_VALUE) {
@@ -218,6 +220,7 @@ public class OpcDaTask extends TimerTask {
                         redisUtil.del(ConstantStr.ITEM_GROUP + itemGroup.getId());
                         itemGroupDao.runItemGroupById(itemGroup.getId(), ConstantStr.STOP_IT);
                         timer.cancel();
+                        break;
                     }
                 }
             } else {

+ 4 - 1
chuanyi_server/src/main/java/com/judong/chuanyiserver/service/impl/ItemGroupServiceImpl.java

@@ -249,7 +249,10 @@ public class ItemGroupServiceImpl implements ItemGroupService {
                 //获取读取使用的itemName
                 List<String> itemList = itemGroupDao.getItemByIdChange(id);
                 //如果驱动是kepserver,则不进行变化
-                if (dataSource.getClsId().toUpperCase().equals(OpcDaDriverEnum.OPCIFIX.getValue())) {
+                if (dataSource.getClsId().toUpperCase().equals(OpcDaDriverEnum.KEPSERVER.getValue())) {
+                    timer.schedule(new OpcDaTask(redisUtil, opcAsyncTask, itemGroupDao, timer, itemGroup, dataSource, map, itemList),
+                            DateUtil.strChangeDate(DateUtil.getCurrentYmd() + " " + itemGroup.getStartReadTime()), ConstantStr.PERIOD_DAY);
+                } else if (dataSource.getClsId().toUpperCase().equals(OpcDaDriverEnum.OPCIFIX.getValue())) {
                     if (Blank.isNotEmpty(itemList)) {
                         for (int i = 0; i < itemList.size(); i++) {
                             String itemName = itemList.get(i);

+ 1 - 1
chuanyi_server/src/main/java/com/judong/chuanyiserver/util/OpcDaUtil.java

@@ -287,7 +287,7 @@ public class OpcDaUtil {
                 break;
             case JIVariant.VT_BSTR://读到String类型值
                 javaType = "String";
-                value = var.getObjectAsString();
+                value = var.getObjectAsString().getString();
                 break;
             case JIVariant.VT_BOOL://读到boolean类型
                 javaType = "boolean";