diff --git a/src/main/java/org/openmuc/jositransport/ClientTSap.java b/src/main/java/org/openmuc/jositransport/ClientTSap.java index 1fe3d4a..4307cc4 100644 --- a/src/main/java/org/openmuc/jositransport/ClientTSap.java +++ b/src/main/java/org/openmuc/jositransport/ClientTSap.java @@ -18,8 +18,8 @@ package org.openmuc.jositransport; import java.io.IOException; import java.net.InetAddress; +import java.net.InetSocketAddress; import java.net.Socket; - import javax.net.SocketFactory; /** @@ -152,8 +152,11 @@ public final class ClientTSap { public TConnection connectTo(InetAddress address, int port, InetAddress localAddr, int localPort) throws IOException { Socket socket; - if (localAddr == null) { - socket = socketFactory.createSocket(address, port); + + if (localAddr == null) { + socket = socketFactory.createSocket(); + + socket.connect(new InetSocketAddress(address, port), messageTimeout); } else { socket = socketFactory.createSocket(address, port, localAddr, localPort); diff --git a/src/main/java/org/openmuc/jositransport/TConnection.java b/src/main/java/org/openmuc/jositransport/TConnection.java index 512b931..6271775 100644 --- a/src/main/java/org/openmuc/jositransport/TConnection.java +++ b/src/main/java/org/openmuc/jositransport/TConnection.java @@ -294,7 +294,7 @@ public final class TConnection { } os.flush(); - + socket.setSoTimeout(messageTimeout); byte myByte; diff --git a/src/main/java/org/openmuc/openiec61850/BasicDataAttribute.java b/src/main/java/org/openmuc/openiec61850/BasicDataAttribute.java index bfb923c..cb909bd 100644 --- a/src/main/java/org/openmuc/openiec61850/BasicDataAttribute.java +++ b/src/main/java/org/openmuc/openiec61850/BasicDataAttribute.java @@ -110,4 +110,8 @@ abstract public class BasicDataAttribute extends FcModelNode { mirror = bda; } + public String getValueString() { + return null; + } + } diff --git a/src/main/java/org/openmuc/openiec61850/BdaBitString.java b/src/main/java/org/openmuc/openiec61850/BdaBitString.java index ccd53b9..6bf8c36 100644 --- a/src/main/java/org/openmuc/openiec61850/BdaBitString.java +++ b/src/main/java/org/openmuc/openiec61850/BdaBitString.java @@ -95,5 +95,11 @@ abstract public class BdaBitString extends BasicDataAttribute { public String toString() { return getReference().toString() + ": " + HexConverter.toHexString(value); } + + @Override + public String getValueString() + { + return HexConverter.toHexString(value); + } } diff --git a/src/main/java/org/openmuc/openiec61850/BdaBoolean.java b/src/main/java/org/openmuc/openiec61850/BdaBoolean.java index 002b3d5..90e6f2c 100644 --- a/src/main/java/org/openmuc/openiec61850/BdaBoolean.java +++ b/src/main/java/org/openmuc/openiec61850/BdaBoolean.java @@ -90,4 +90,9 @@ public final class BdaBoolean extends BasicDataAttribute { return getReference().toString() + ": " + value; } + @Override + public String getValueString() + { + return "" + value; + } } diff --git a/src/main/java/org/openmuc/openiec61850/BdaDoubleBitPos.java b/src/main/java/org/openmuc/openiec61850/BdaDoubleBitPos.java index 5978bf4..e81d09d 100644 --- a/src/main/java/org/openmuc/openiec61850/BdaDoubleBitPos.java +++ b/src/main/java/org/openmuc/openiec61850/BdaDoubleBitPos.java @@ -95,4 +95,9 @@ public final class BdaDoubleBitPos extends BdaBitString { } } + @Override + public String getValueString() + { + return getDoubleBitPos().toString(); + } } diff --git a/src/main/java/org/openmuc/openiec61850/BdaEntryTime.java b/src/main/java/org/openmuc/openiec61850/BdaEntryTime.java index 3508da8..00b7f44 100644 --- a/src/main/java/org/openmuc/openiec61850/BdaEntryTime.java +++ b/src/main/java/org/openmuc/openiec61850/BdaEntryTime.java @@ -132,4 +132,9 @@ public final class BdaEntryTime extends BasicDataAttribute { return getReference().toString() + ": " + getTimestampValue(); } + @Override + public String getValueString() + { + return "" + getTimestampValue(); + } } diff --git a/src/main/java/org/openmuc/openiec61850/BdaFloat32.java b/src/main/java/org/openmuc/openiec61850/BdaFloat32.java index ffee7ca..cd7b294 100644 --- a/src/main/java/org/openmuc/openiec61850/BdaFloat32.java +++ b/src/main/java/org/openmuc/openiec61850/BdaFloat32.java @@ -115,4 +115,9 @@ public final class BdaFloat32 extends BasicDataAttribute { return getReference().toString() + ": " + getFloat(); } + @Override + public String getValueString() + { + return getFloat().toString(); + } } diff --git a/src/main/java/org/openmuc/openiec61850/BdaFloat64.java b/src/main/java/org/openmuc/openiec61850/BdaFloat64.java index 3aaa46e..14fc742 100644 --- a/src/main/java/org/openmuc/openiec61850/BdaFloat64.java +++ b/src/main/java/org/openmuc/openiec61850/BdaFloat64.java @@ -121,5 +121,11 @@ public final class BdaFloat64 extends BasicDataAttribute { public String toString() { return getReference().toString() + ": " + getDouble(); } + + @Override + public String getValueString() + { + return "" + value; + } } diff --git a/src/main/java/org/openmuc/openiec61850/BdaInt128.java b/src/main/java/org/openmuc/openiec61850/BdaInt128.java index 294ab63..5783df0 100644 --- a/src/main/java/org/openmuc/openiec61850/BdaInt128.java +++ b/src/main/java/org/openmuc/openiec61850/BdaInt128.java @@ -90,4 +90,9 @@ public final class BdaInt128 extends BasicDataAttribute { return getReference().toString() + ": " + value; } + @Override + public String getValueString() + { + return "" + value; + } } diff --git a/src/main/java/org/openmuc/openiec61850/BdaInt32.java b/src/main/java/org/openmuc/openiec61850/BdaInt32.java index 96973bc..f6b5b2e 100644 --- a/src/main/java/org/openmuc/openiec61850/BdaInt32.java +++ b/src/main/java/org/openmuc/openiec61850/BdaInt32.java @@ -90,4 +90,8 @@ public final class BdaInt32 extends BasicDataAttribute { return getReference().toString() + ": " + value; } + @Override + public String getValueString() { + return "" + value; + } } diff --git a/src/main/java/org/openmuc/openiec61850/BdaInt32U.java b/src/main/java/org/openmuc/openiec61850/BdaInt32U.java index 692bca9..e138df0 100644 --- a/src/main/java/org/openmuc/openiec61850/BdaInt32U.java +++ b/src/main/java/org/openmuc/openiec61850/BdaInt32U.java @@ -89,5 +89,11 @@ public final class BdaInt32U extends BasicDataAttribute { public String toString() { return getReference().toString() + ": " + value; } + + @Override + public String getValueString() + { + return "" + value; + } } diff --git a/src/main/java/org/openmuc/openiec61850/BdaInt8.java b/src/main/java/org/openmuc/openiec61850/BdaInt8.java index cac9a77..c7e1606 100644 --- a/src/main/java/org/openmuc/openiec61850/BdaInt8.java +++ b/src/main/java/org/openmuc/openiec61850/BdaInt8.java @@ -89,5 +89,11 @@ public final class BdaInt8 extends BasicDataAttribute { public String toString() { return getReference().toString() + ": " + value; } + + @Override + public String getValueString() + { + return "" + value; + } } diff --git a/src/main/java/org/openmuc/openiec61850/BdaQuality.java b/src/main/java/org/openmuc/openiec61850/BdaQuality.java index 09a3554..2904838 100644 --- a/src/main/java/org/openmuc/openiec61850/BdaQuality.java +++ b/src/main/java/org/openmuc/openiec61850/BdaQuality.java @@ -241,5 +241,11 @@ public final class BdaQuality extends BdaBitString { value[1] = (byte) (value[0] & 0xf7); } } + + @Override + public String getValueString() + { + return getValidity().toString(); + } } diff --git a/src/main/java/org/openmuc/openiec61850/BdaTimestamp.java b/src/main/java/org/openmuc/openiec61850/BdaTimestamp.java index 14bc794..7ed4d7d 100644 --- a/src/main/java/org/openmuc/openiec61850/BdaTimestamp.java +++ b/src/main/java/org/openmuc/openiec61850/BdaTimestamp.java @@ -242,4 +242,8 @@ public final class BdaTimestamp extends BasicDataAttribute { return getReference().toString() + ": " + getDate(); } + @Override + public String getValueString() { + return getDate().toString(); + } } diff --git a/src/main/java/org/openmuc/openiec61850/BdaVisibleString.java b/src/main/java/org/openmuc/openiec61850/BdaVisibleString.java index 027e312..e8797e6 100644 --- a/src/main/java/org/openmuc/openiec61850/BdaVisibleString.java +++ b/src/main/java/org/openmuc/openiec61850/BdaVisibleString.java @@ -120,5 +120,10 @@ public final class BdaVisibleString extends BasicDataAttribute { } return getReference().toString() + ": " + new String(value); } - + + @Override + public String getValueString() + { + return new String(value); + } } diff --git a/src/main/java/org/openmuc/openiec61850/ClientSap.java b/src/main/java/org/openmuc/openiec61850/ClientSap.java index 5bac7a1..a4f7cf1 100644 --- a/src/main/java/org/openmuc/openiec61850/ClientSap.java +++ b/src/main/java/org/openmuc/openiec61850/ClientSap.java @@ -280,7 +280,7 @@ public final class ClientSap { */ public ClientAssociation associate(InetAddress address, int port, String authenticationParameter, ClientEventListener reportListener) throws IOException { - + System.out.println("Associate"); return associate(address, port, authenticationParameter, null, -1, reportListener); } diff --git a/src/main/java/org/openmuc/openiec61850/SclParser.java b/src/main/java/org/openmuc/openiec61850/SclParser.java index cf9d034..dc28f30 100644 --- a/src/main/java/org/openmuc/openiec61850/SclParser.java +++ b/src/main/java/org/openmuc/openiec61850/SclParser.java @@ -1012,6 +1012,22 @@ final class SclParser { else if (bType.equals("Tcmd")) { return new BdaTapCommand(new ObjectReference(ref), fc, sAddr, dchg, dupd); } + else if (bType.equals("OptFlds")) { + return new BdaOptFlds(new ObjectReference(ref), fc); + } + else if (bType.equals("TrgOps")) { + return new BdaTriggerConditions(new ObjectReference(ref), fc); + } + else if (bType.equals("EntryID")) { + return new BdaOctetString(new ObjectReference(ref), fc, sAddr, 8, dchg, dupd); + } + else if (bType.equals("EntryTime")) { + return new BdaEntryTime(new ObjectReference(ref), fc, sAddr, dchg, dupd); + } + else if (bType.equals("PhyComAddr")) { + //TODO not correct! + return new BdaOctetString(new ObjectReference(ref), fc, sAddr, 6, dchg, dupd); + } else if (bType.equals("Timestamp")) { BdaTimestamp bda = new BdaTimestamp(new ObjectReference(ref), fc, sAddr, dchg, dupd); if (val != null) {