This is an automated email from the ASF dual-hosted git repository. sruehl pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/incubator-plc4x.git
The following commit(s) were added to refs/heads/master by this push: new d333791 added missing types from AdsReadStateResponse d333791 is described below commit d333791700ba2f6031832874927a13d4f727dd7f Author: Sebastian Rühl <sru...@apache.org> AuthorDate: Thu Apr 19 12:19:00 2018 +0200 added missing types from AdsReadStateResponse --- .../ads/api/commands/AdsReadStateResponse.java | 55 ++++++++++++++++------ .../java/ads/api/commands/types/MajorVersion.java | 4 ++ .../java/ads/api/commands/types/MinorVersion.java | 5 ++ .../java/ads/protocol/Ads2PayloadProtocol.java | 4 +- .../java/ads/protocol/AbstractProtocolTest.java | 4 +- 5 files changed, 56 insertions(+), 16 deletions(-) diff --git a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/AdsReadStateResponse.java b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/AdsReadStateResponse.java index 5b28873..15ff0d2 100644 --- a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/AdsReadStateResponse.java +++ b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/AdsReadStateResponse.java @@ -18,6 +18,8 @@ */ package org.apache.plc4x.java.ads.api.commands; +import org.apache.plc4x.java.ads.api.commands.types.AdsState; +import org.apache.plc4x.java.ads.api.commands.types.DeviceState; import org.apache.plc4x.java.ads.api.commands.types.Result; import org.apache.plc4x.java.ads.api.generic.AdsData; import org.apache.plc4x.java.ads.api.generic.AmsHeader; @@ -39,51 +41,74 @@ public class AdsReadStateResponse extends AdsAbstractResponse { */ private final Result result; - private AdsReadStateResponse(AmsHeader amsHeader, Result result) { + /** + * 2 bytes New ADS status (see data type ADSSTATE of the ADS-DLL). + */ + private final AdsState adsState; + + /** + * 2 bytes New device status. + */ + private final DeviceState deviceState; + + private AdsReadStateResponse(AmsHeader amsHeader, Result result, AdsState adsState, DeviceState deviceState) { super(amsHeader); this.result = requireNonNull(result); + this.adsState = requireNonNull(adsState); + this.deviceState = requireNonNull(deviceState); } - private AdsReadStateResponse(AmsNetId targetAmsNetId, AmsPort targetAmsPort, AmsNetId sourceAmsNetId, AmsPort sourceAmsPort, Invoke invokeId, Result result) { + private AdsReadStateResponse(AmsNetId targetAmsNetId, AmsPort targetAmsPort, AmsNetId sourceAmsNetId, AmsPort sourceAmsPort, Invoke invokeId, Result result, AdsState adsState, DeviceState deviceState) { super(targetAmsNetId, targetAmsPort, sourceAmsNetId, sourceAmsPort, invokeId); this.result = requireNonNull(result); + this.adsState = requireNonNull(adsState); + this.deviceState = requireNonNull(deviceState); } - public static AdsReadStateResponse of(AmsHeader amsHeader, Result result) { - return new AdsReadStateResponse(amsHeader, result); + public static AdsReadStateResponse of(AmsHeader amsHeader, Result result, AdsState adsState, DeviceState deviceState) { + return new AdsReadStateResponse(amsHeader, result, adsState, deviceState); } - public static AdsReadStateResponse of(AmsNetId targetAmsNetId, AmsPort targetAmsPort, AmsNetId sourceAmsNetId, AmsPort sourceAmsPort, Invoke invokeId, Result result) { - return new AdsReadStateResponse(targetAmsNetId, targetAmsPort, sourceAmsNetId, sourceAmsPort, invokeId, result); + public static AdsReadStateResponse of(AmsNetId targetAmsNetId, AmsPort targetAmsPort, AmsNetId sourceAmsNetId, AmsPort sourceAmsPort, Invoke invokeId, Result result, AdsState adsState, DeviceState deviceState) { + return new AdsReadStateResponse(targetAmsNetId, targetAmsPort, sourceAmsNetId, sourceAmsPort, invokeId, result, adsState, deviceState); } public Result getResult() { return result; } + public AdsState getAdsState() { + return adsState; + } + + public DeviceState getDeviceState() { + return deviceState; + } + @Override public AdsData getAdsData() { - return buildADSData(result); + return buildADSData(result, adsState, deviceState); } @Override public boolean equals(Object o) { - if (this == o) - return true; - if (!(o instanceof AdsReadStateResponse)) - return false; - if (!super.equals(o)) - return false; + if (this == o) return true; + if (!(o instanceof AdsReadStateResponse)) return false; + if (!super.equals(o)) return false; AdsReadStateResponse that = (AdsReadStateResponse) o; - return result.equals(that.result); + if (!result.equals(that.result)) return false; + if (!adsState.equals(that.adsState)) return false; + return deviceState.equals(that.deviceState); } @Override public int hashCode() { int result1 = super.hashCode(); result1 = 31 * result1 + result.hashCode(); + result1 = 31 * result1 + adsState.hashCode(); + result1 = 31 * result1 + deviceState.hashCode(); return result1; } @@ -91,6 +116,8 @@ public class AdsReadStateResponse extends AdsAbstractResponse { public String toString() { return "AdsReadStateResponse{" + "result=" + result + + ", adsState=" + adsState + + ", deviceState=" + deviceState + "} " + super.toString(); } } diff --git a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/types/MajorVersion.java b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/types/MajorVersion.java index 884ba2b..532ebf3 100644 --- a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/types/MajorVersion.java +++ b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/types/MajorVersion.java @@ -55,6 +55,10 @@ public class MajorVersion extends ByteValue { return NUM_BYTES; } + public byte getAsByte() { + return getBytes()[0]; + } + @Override public String toString() { return "MajorVersion{" + diff --git a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/types/MinorVersion.java b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/types/MinorVersion.java index 6084051..20cb211 100644 --- a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/types/MinorVersion.java +++ b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/types/MinorVersion.java @@ -55,10 +55,15 @@ public class MinorVersion extends ByteValue { return NUM_BYTES; } + public byte getAsByte() { + return getBytes()[0]; + } + @Override public String toString() { return "MinorVersion{" + "value=" + Arrays.toString(value) + "} " + super.toString(); } + } diff --git a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/protocol/Ads2PayloadProtocol.java b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/protocol/Ads2PayloadProtocol.java index c2a3e94..4b53edf 100644 --- a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/protocol/Ads2PayloadProtocol.java +++ b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/protocol/Ads2PayloadProtocol.java @@ -197,7 +197,9 @@ public class Ads2PayloadProtocol extends MessageToMessageCodec<ByteBuf, AmsPacke amsPacket = AdsReadStateRequest.of(amsHeader); } else { Result result = Result.of(commandBuffer); - amsPacket = AdsReadStateResponse.of(amsHeader, result); + AdsState adsState = AdsState.of(commandBuffer); + DeviceState deviceState = DeviceState.of(commandBuffer); + amsPacket = AdsReadStateResponse.of(amsHeader, result, adsState, deviceState); } return amsPacket; } diff --git a/plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/protocol/AbstractProtocolTest.java b/plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/protocol/AbstractProtocolTest.java index e9ba236..fc9aadf 100644 --- a/plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/protocol/AbstractProtocolTest.java +++ b/plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/protocol/AbstractProtocolTest.java @@ -97,7 +97,9 @@ public class AbstractProtocolTest { ), AdsReadStateResponse.of( targetAmsNetId, targetAmsPort, sourceAmsNetId, sourceAmsPort, invokeId, - Result.of(0) + Result.of(0), + AdsState.of(0), + DeviceState.of(0) ), AdsReadWriteRequest.of( targetAmsNetId, targetAmsPort, sourceAmsNetId, sourceAmsPort, invokeId, -- To stop receiving notification emails like this one, please contact sru...@apache.org.