|
|
|
@ -1,8 +1,11 @@
|
|
|
|
|
package com.xydl.cac.iec;
|
|
|
|
|
|
|
|
|
|
import com.beanit.iec61850bean.*;
|
|
|
|
|
import com.xydl.cac.entity.IcdTransform;
|
|
|
|
|
import com.xydl.cac.service.IcdTransformService;
|
|
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
|
|
import org.apache.commons.io.IOUtils;
|
|
|
|
|
import org.springframework.util.CollectionUtils;
|
|
|
|
|
|
|
|
|
|
import java.io.InputStream;
|
|
|
|
|
import java.nio.charset.StandardCharsets;
|
|
|
|
@ -16,6 +19,11 @@ public class IecServer implements ServerEventListener {
|
|
|
|
|
public boolean started = false;
|
|
|
|
|
public String filename = null;
|
|
|
|
|
public Integer fileId = null;
|
|
|
|
|
IcdTransformService _transformService;
|
|
|
|
|
|
|
|
|
|
public IecServer(IcdTransformService transformService) {
|
|
|
|
|
_transformService = transformService;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void start(String xml, int port) throws Exception {
|
|
|
|
|
if (!started) {
|
|
|
|
@ -39,7 +47,17 @@ public class IecServer implements ServerEventListener {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void updateBda(BasicDataAttribute bda) {
|
|
|
|
|
BasicDataAttribute node = (BasicDataAttribute) serversServerModel.findModelNode(bda.getReference(), bda.getFc());
|
|
|
|
|
String ref = bda.getReference().toString();
|
|
|
|
|
List<IcdTransform> list = _transformService.listTransform();
|
|
|
|
|
if (!CollectionUtils.isEmpty(list)) {
|
|
|
|
|
for (IcdTransform item : list) {
|
|
|
|
|
if (ref.startsWith(item.getRptFrom())) {
|
|
|
|
|
ref = ref.replace(item.getRptFrom(), item.getRptTo());
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
BasicDataAttribute node = (BasicDataAttribute) serversServerModel.findModelNode(ref, bda.getFc());
|
|
|
|
|
if (node != null) {
|
|
|
|
|
node.setValueFrom(bda);
|
|
|
|
|
List<BasicDataAttribute> bdas = new ArrayList<>();
|
|
|
|
|