- Add the Runtime module and the IEC61850-Bean library to Protocol_Converter project.

pull/37/head
Abdelaziz Said 4 years ago
parent f1360c7881
commit 39c7ef8285

@ -76,7 +76,7 @@ public abstract class FcModelNode extends ModelNode {
} }
class SelectResetTask extends TimerTask { class SelectResetTask extends TimerTask {
ServerAssociation association; final ServerAssociation association;
SelectResetTask(ServerAssociation association) { SelectResetTask(ServerAssociation association) {
this.association = association; this.association = association;

@ -14,6 +14,7 @@
package com.beanit.iec61850bean; package com.beanit.iec61850bean;
import com.beanit.iec61850bean.internal.HexString; import com.beanit.iec61850bean.internal.HexString;
import java.util.List; import java.util.List;
public class Report { public class Report {
@ -172,7 +173,7 @@ public class Report {
sb.append("\nEntry ID: ").append(HexString.fromBytes(entryId.getValue())); sb.append("\nEntry ID: ").append(HexString.fromBytes(entryId.getValue()));
} }
if (confRev != null) { if (confRev != null) {
sb.append("\nConfiguration revision: ").append(confRev.toString()); sb.append("\nConfiguration revision: ").append(confRev);
} }
sb.append("\nReported data set members:"); sb.append("\nReported data set members:");
int index = 0; int index = 0;

@ -13,84 +13,45 @@
*/ */
package com.beanit.iec61850bean; package com.beanit.iec61850bean;
import static java.nio.charset.StandardCharsets.UTF_8;
import com.beanit.asn1bean.ber.ReverseByteArrayOutputStream; import com.beanit.asn1bean.ber.ReverseByteArrayOutputStream;
import com.beanit.asn1bean.ber.types.BerInteger; import com.beanit.asn1bean.ber.types.BerInteger;
import com.beanit.asn1bean.ber.types.BerNull; import com.beanit.asn1bean.ber.types.BerNull;
import com.beanit.asn1bean.ber.types.string.BerVisibleString; import com.beanit.asn1bean.ber.types.string.BerVisibleString;
import com.beanit.iec61850bean.internal.BerBoolean; import com.beanit.iec61850bean.internal.BerBoolean;
import com.beanit.iec61850bean.internal.NamedThreadFactory; import com.beanit.iec61850bean.internal.NamedThreadFactory;
import com.beanit.iec61850bean.internal.mms.asn1.AccessResult; import com.beanit.iec61850bean.internal.mms.asn1.*;
import com.beanit.iec61850bean.internal.mms.asn1.ConfirmedErrorPDU;
import com.beanit.iec61850bean.internal.mms.asn1.ConfirmedRequestPDU;
import com.beanit.iec61850bean.internal.mms.asn1.ConfirmedResponsePDU;
import com.beanit.iec61850bean.internal.mms.asn1.ConfirmedServiceRequest;
import com.beanit.iec61850bean.internal.mms.asn1.ConfirmedServiceResponse;
import com.beanit.iec61850bean.internal.mms.asn1.Data;
import com.beanit.iec61850bean.internal.mms.asn1.DataAccessError;
import com.beanit.iec61850bean.internal.mms.asn1.DefineNamedVariableListRequest;
import com.beanit.iec61850bean.internal.mms.asn1.DefineNamedVariableListResponse;
import com.beanit.iec61850bean.internal.mms.asn1.DeleteNamedVariableListRequest;
import com.beanit.iec61850bean.internal.mms.asn1.DeleteNamedVariableListResponse;
import com.beanit.iec61850bean.internal.mms.asn1.GetNameListRequest;
import com.beanit.iec61850bean.internal.mms.asn1.GetNameListResponse;
import com.beanit.iec61850bean.internal.mms.asn1.GetNameListResponse.ListOfIdentifier; import com.beanit.iec61850bean.internal.mms.asn1.GetNameListResponse.ListOfIdentifier;
import com.beanit.iec61850bean.internal.mms.asn1.GetNamedVariableListAttributesResponse;
import com.beanit.iec61850bean.internal.mms.asn1.GetVariableAccessAttributesRequest;
import com.beanit.iec61850bean.internal.mms.asn1.GetVariableAccessAttributesResponse;
import com.beanit.iec61850bean.internal.mms.asn1.Identifier;
import com.beanit.iec61850bean.internal.mms.asn1.InitiateRequestPDU;
import com.beanit.iec61850bean.internal.mms.asn1.InitiateResponsePDU;
import com.beanit.iec61850bean.internal.mms.asn1.Integer16;
import com.beanit.iec61850bean.internal.mms.asn1.Integer32;
import com.beanit.iec61850bean.internal.mms.asn1.Integer8;
import com.beanit.iec61850bean.internal.mms.asn1.MMSpdu;
import com.beanit.iec61850bean.internal.mms.asn1.ObjectName;
import com.beanit.iec61850bean.internal.mms.asn1.ObjectName.DomainSpecific; import com.beanit.iec61850bean.internal.mms.asn1.ObjectName.DomainSpecific;
import com.beanit.iec61850bean.internal.mms.asn1.ParameterSupportOptions;
import com.beanit.iec61850bean.internal.mms.asn1.ReadRequest;
import com.beanit.iec61850bean.internal.mms.asn1.ReadResponse;
import com.beanit.iec61850bean.internal.mms.asn1.ReadResponse.ListOfAccessResult; import com.beanit.iec61850bean.internal.mms.asn1.ReadResponse.ListOfAccessResult;
import com.beanit.iec61850bean.internal.mms.asn1.ServiceError.ErrorClass; import com.beanit.iec61850bean.internal.mms.asn1.ServiceError.ErrorClass;
import com.beanit.iec61850bean.internal.mms.asn1.ServiceSupportOptions;
import com.beanit.iec61850bean.internal.mms.asn1.TypeDescription;
import com.beanit.iec61850bean.internal.mms.asn1.TypeDescription.Structure; import com.beanit.iec61850bean.internal.mms.asn1.TypeDescription.Structure;
import com.beanit.iec61850bean.internal.mms.asn1.TypeDescription.Structure.Components; import com.beanit.iec61850bean.internal.mms.asn1.TypeDescription.Structure.Components;
import com.beanit.iec61850bean.internal.mms.asn1.TypeSpecification;
import com.beanit.iec61850bean.internal.mms.asn1.Unsigned32;
import com.beanit.iec61850bean.internal.mms.asn1.VariableAccessSpecification;
import com.beanit.iec61850bean.internal.mms.asn1.VariableDefs;
import com.beanit.iec61850bean.internal.mms.asn1.WriteRequest;
import com.beanit.iec61850bean.internal.mms.asn1.WriteResponse;
import com.beanit.josistack.AcseAssociation; import com.beanit.josistack.AcseAssociation;
import com.beanit.josistack.ByteBufferInputStream; import com.beanit.josistack.ByteBufferInputStream;
import com.beanit.josistack.DecodingException; import com.beanit.josistack.DecodingException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.ByteArrayInputStream; import java.io.ByteArrayInputStream;
import java.io.EOFException; import java.io.EOFException;
import java.io.IOException; import java.io.IOException;
import java.net.SocketTimeoutException; import java.net.SocketTimeoutException;
import java.nio.ByteBuffer; import java.nio.ByteBuffer;
import java.util.ArrayList; import java.util.*;
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;
import java.util.concurrent.Executors; import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeoutException; import java.util.concurrent.TimeoutException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import static java.nio.charset.StandardCharsets.UTF_8;
final class ServerAssociation { final class ServerAssociation {
private static final Logger logger = LoggerFactory.getLogger(ServerAssociation.class); private static final Logger logger = LoggerFactory.getLogger(ServerAssociation.class);
private static final WriteResponse.CHOICE writeSuccess = new WriteResponse.CHOICE(); private static final WriteResponse.CHOICE writeSuccess = new WriteResponse.CHOICE();
private static String[] mmsFcs = { private static final String[] mmsFcs = {
"MX", "ST", "CO", "CF", "DC", "SP", "SG", "RP", "LG", "BR", "GO", "GS", "SV", "SE", "EX", "SR", "MX", "ST", "CO", "CF", "DC", "SP", "SG", "RP", "LG", "BR", "GO", "GS", "SV", "SE", "EX", "SR",
"OR", "BL" "OR", "BL"
}; };
static { static {

@ -15,13 +15,14 @@ package com.beanit.iec61850bean;
import com.beanit.josistack.AcseAssociation; import com.beanit.josistack.AcseAssociation;
import com.beanit.josistack.ServerAcseSap; import com.beanit.josistack.ServerAcseSap;
import javax.net.ServerSocketFactory;
import java.io.IOException; import java.io.IOException;
import java.net.InetAddress; import java.net.InetAddress;
import java.nio.ByteBuffer; import java.nio.ByteBuffer;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Timer; import java.util.Timer;
import javax.net.ServerSocketFactory;
/** /**
* The <code>ServerSap</code> class represents the IEC 61850 service access point for server * The <code>ServerSap</code> class represents the IEC 61850 service access point for server
@ -340,11 +341,7 @@ public final class ServerSap {
bdaMirror.setValueFrom(bda); bdaMirror.setValueFrom(bda);
synchronized (bdaMirror.chgRcbs) { synchronized (bdaMirror.chgRcbs) {
for (Urcb urcb : bdaMirror.chgRcbs) { for (Urcb urcb : bdaMirror.chgRcbs) {
if (bdaMirror.dupd && urcb.getTrgOps().isDataUpdate()) { urcb.report(bdaMirror, true, false, bdaMirror.dupd && urcb.getTrgOps().isDataUpdate());
urcb.report(bdaMirror, true, false, true);
} else {
urcb.report(bdaMirror, true, false, false);
}
} }
} }
} else if (bdaMirror.dupd && bdaMirror.dupdRcbs.size() != 0) { } else if (bdaMirror.dupd && bdaMirror.dupdRcbs.size() != 0) {

@ -18,11 +18,13 @@ import com.beanit.iec61850bean.ClientSap;
import com.beanit.iec61850bean.ServerModel; import com.beanit.iec61850bean.ServerModel;
import com.beanit.iec61850bean.ServiceError; import com.beanit.iec61850bean.ServiceError;
import com.beanit.iec61850bean.clientgui.util.Counter; import com.beanit.iec61850bean.clientgui.util.Counter;
import java.awt.Component;
import java.awt.Dimension; import javax.swing.*;
import java.awt.GridBagConstraints; import javax.swing.event.TreeSelectionEvent;
import java.awt.GridBagLayout; import javax.swing.event.TreeSelectionListener;
import java.awt.Insets; import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.DefaultTreeModel;
import java.awt.*;
import java.awt.event.ActionEvent; import java.awt.event.ActionEvent;
import java.awt.event.ActionListener; import java.awt.event.ActionListener;
import java.io.FileInputStream; import java.io.FileInputStream;
@ -32,23 +34,6 @@ import java.io.InputStream;
import java.net.InetAddress; import java.net.InetAddress;
import java.net.UnknownHostException; import java.net.UnknownHostException;
import java.util.Properties; import java.util.Properties;
import javax.swing.Box;
import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JSeparator;
import javax.swing.JTextField;
import javax.swing.JTree;
import javax.swing.ToolTipManager;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;
import javax.swing.event.TreeSelectionEvent;
import javax.swing.event.TreeSelectionListener;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.DefaultTreeModel;
public class ClientGui extends JFrame implements ActionListener, TreeSelectionListener { public class ClientGui extends JFrame implements ActionListener, TreeSelectionListener {
@ -416,7 +401,7 @@ public class ClientGui extends JFrame implements ActionListener, TreeSelectionLi
for (int i = 0; i < node.getChildCount(); i++) { for (int i = 0; i < node.getChildCount(); i++) {
y.increment(); y.increment();
DataObjectTreeNode childNode = (DataObjectTreeNode) node.getChildAt(i); DataObjectTreeNode childNode = (DataObjectTreeNode) node.getChildAt(i);
showDataDetails(childNode, pre + "." + childNode.toString(), y); showDataDetails(childNode, pre + "." + childNode, y);
detailsPanel.add(new JSeparator()); detailsPanel.add(new JSeparator());
addDetailsComponent(new JSeparator(), 0, y.getValue(), 3, 1, 1, 0); addDetailsComponent(new JSeparator(), 0, y.getValue(), 3, 1, 1, 0);
} }

@ -27,7 +27,7 @@ public final class DoType extends AbstractType {
public List<Da> das = new ArrayList<>(); public List<Da> das = new ArrayList<>();
public List<Sdo> sdos = new ArrayList<>(); public List<Sdo> sdos = new ArrayList<>();
private String cdc; private final String cdc;
public DoType(Node xmlNode) throws SclParseException { public DoType(Node xmlNode) throws SclParseException {

@ -20,7 +20,7 @@ import org.w3c.dom.Node;
public final class EnumVal { public final class EnumVal {
private final String id; private final String id;
private int ord; private final int ord;
public EnumVal(String id, int ord) { public EnumVal(String id, int ord) {
this.id = id; this.id = id;

@ -14,12 +14,8 @@
package com.beanit.jositransport; package com.beanit.jositransport;
import com.beanit.iec61850bean.internal.util.SequenceNumber; import com.beanit.iec61850bean.internal.util.SequenceNumber;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream; import java.io.*;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.EOFException;
import java.io.IOException;
import java.net.Socket; import java.net.Socket;
import java.net.SocketTimeoutException; import java.net.SocketTimeoutException;
import java.nio.ByteBuffer; import java.nio.ByteBuffer;
@ -37,7 +33,7 @@ public final class TConnection {
private final ServerThread serverThread; private final ServerThread serverThread;
public byte[] tSelRemote = null; public byte[] tSelRemote = null;
public byte[] tSelLocal = null; public byte[] tSelLocal = null;
private int srcRef; private final int srcRef;
private int dstRef; private int dstRef;
private int maxTPduSizeParam; private int maxTPduSizeParam;
private int maxTPduSize; private int maxTPduSize;

Loading…
Cancel
Save