You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@plc4x.apache.org by cd...@apache.org on 2023/01/26 09:26:32 UTC

[plc4x] branch develop updated: refactor(protocol/open-protocol): Added some more message-types

This is an automated email from the ASF dual-hosted git repository.

cdutz pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/plc4x.git


The following commit(s) were added to refs/heads/develop by this push:
     new 41a110d77b refactor(protocol/open-protocol): Added some more message-types
41a110d77b is described below

commit 41a110d77bcec6fbedcc9165803e4bd6fdb61237
Author: Christofer Dutz <ch...@c-ware.de>
AuthorDate: Thu Jan 26 10:26:23 2023 +0100

    refactor(protocol/open-protocol): Added some more message-types
---
 .../readwrite/OpenProtocolMessage.java             |   8 ++
 ...nProtocolMessageApplicationCommandAccepted.java |  37 +++----
 ...otocolMessageApplicationGenericDataRequest.java |  36 +++----
 ...ocolMessageApplicationGenericSubscription.java} | 109 +++++++++++----------
 ...tocolMessageApplicationGenericUnsubscribe.java} | 109 +++++++++++----------
 .../protocols/openprotocol/open-protocol.mspec     |  18 +++-
 .../openprotocol/ParserSerializerTestsuite.xml     | 109 +++++++++++++++++++++
 7 files changed, 279 insertions(+), 147 deletions(-)

diff --git a/plc4j/drivers/open-protocol/src/main/generated/org/apache/plc4x/java/openprotocol/readwrite/OpenProtocolMessage.java b/plc4j/drivers/open-protocol/src/main/generated/org/apache/plc4x/java/openprotocol/readwrite/OpenProtocolMessage.java
index ace0cf2455..b3324d879a 100644
--- a/plc4j/drivers/open-protocol/src/main/generated/org/apache/plc4x/java/openprotocol/readwrite/OpenProtocolMessage.java
+++ b/plc4j/drivers/open-protocol/src/main/generated/org/apache/plc4x/java/openprotocol/readwrite/OpenProtocolMessage.java
@@ -357,6 +357,14 @@ public abstract class OpenProtocolMessage implements Message {
       builder =
           OpenProtocolMessageApplicationGenericDataRequest.staticParseBuilder(
               readBuffer, connectionRevision);
+    } else if (EvaluationHelper.equals(mid, Mid.ApplicationGenericSubscription)) {
+      builder =
+          OpenProtocolMessageApplicationGenericSubscription.staticParseBuilder(
+              readBuffer, connectionRevision);
+    } else if (EvaluationHelper.equals(mid, Mid.ApplicationGenericUnsubscribe)) {
+      builder =
+          OpenProtocolMessageApplicationGenericUnsubscribe.staticParseBuilder(
+              readBuffer, connectionRevision);
     }
     if (builder == null) {
       throw new ParseException(
diff --git a/plc4j/drivers/open-protocol/src/main/generated/org/apache/plc4x/java/openprotocol/readwrite/OpenProtocolMessageApplicationCommandAccepted.java b/plc4j/drivers/open-protocol/src/main/generated/org/apache/plc4x/java/openprotocol/readwrite/OpenProtocolMessageApplicationCommandAccepted.java
index 58bcb47cae..151b2c4107 100644
--- a/plc4j/drivers/open-protocol/src/main/generated/org/apache/plc4x/java/openprotocol/readwrite/OpenProtocolMessageApplicationCommandAccepted.java
+++ b/plc4j/drivers/open-protocol/src/main/generated/org/apache/plc4x/java/openprotocol/readwrite/OpenProtocolMessageApplicationCommandAccepted.java
@@ -44,7 +44,7 @@ public class OpenProtocolMessageApplicationCommandAccepted extends OpenProtocolM
   }
 
   // Properties.
-  protected final Mid requestMid;
+  protected final Mid midNumberAccepted;
 
   // Arguments.
   protected final OpenProtocolRevision connectionRevision;
@@ -57,7 +57,7 @@ public class OpenProtocolMessageApplicationCommandAccepted extends OpenProtocolM
       Integer sequenceNumber,
       Short numberOfMessageParts,
       Short messagePartNumber,
-      Mid requestMid,
+      Mid midNumberAccepted,
       OpenProtocolRevision connectionRevision) {
     super(
         selectedRevision,
@@ -68,12 +68,12 @@ public class OpenProtocolMessageApplicationCommandAccepted extends OpenProtocolM
         numberOfMessageParts,
         messagePartNumber,
         connectionRevision);
-    this.requestMid = requestMid;
+    this.midNumberAccepted = midNumberAccepted;
     this.connectionRevision = connectionRevision;
   }
 
-  public Mid getRequestMid() {
-    return requestMid;
+  public Mid getMidNumberAccepted() {
+    return midNumberAccepted;
   }
 
   @Override
@@ -83,11 +83,11 @@ public class OpenProtocolMessageApplicationCommandAccepted extends OpenProtocolM
     int startPos = positionAware.getPos();
     writeBuffer.pushContext("OpenProtocolMessageApplicationCommandAccepted");
 
-    // Simple Field (requestMid)
+    // Simple Field (midNumberAccepted)
     writeSimpleEnumField(
-        "requestMid",
+        "midNumberAccepted",
         "Mid",
-        requestMid,
+        midNumberAccepted,
         new DataWriterEnumDefault<>(Mid::getValue, Mid::name, writeUnsignedLong(writeBuffer, 32)),
         WithOption.WithEncoding("ASCII"));
 
@@ -104,7 +104,7 @@ public class OpenProtocolMessageApplicationCommandAccepted extends OpenProtocolM
     int lengthInBits = super.getLengthInBits();
     OpenProtocolMessageApplicationCommandAccepted _value = this;
 
-    // Simple field (requestMid)
+    // Simple field (midNumberAccepted)
     lengthInBits += 32;
 
     return lengthInBits;
@@ -117,27 +117,28 @@ public class OpenProtocolMessageApplicationCommandAccepted extends OpenProtocolM
     int startPos = positionAware.getPos();
     int curPos;
 
-    Mid requestMid =
+    Mid midNumberAccepted =
         readEnumField(
-            "requestMid",
+            "midNumberAccepted",
             "Mid",
             new DataReaderEnumDefault<>(Mid::enumForValue, readUnsignedLong(readBuffer, 32)),
             WithOption.WithEncoding("ASCII"));
 
     readBuffer.closeContext("OpenProtocolMessageApplicationCommandAccepted");
     // Create the instance
-    return new OpenProtocolMessageApplicationCommandAcceptedBuilder(requestMid, connectionRevision);
+    return new OpenProtocolMessageApplicationCommandAcceptedBuilder(
+        midNumberAccepted, connectionRevision);
   }
 
   public static class OpenProtocolMessageApplicationCommandAcceptedBuilder
       implements OpenProtocolMessage.OpenProtocolMessageBuilder {
-    private final Mid requestMid;
+    private final Mid midNumberAccepted;
     private final OpenProtocolRevision connectionRevision;
 
     public OpenProtocolMessageApplicationCommandAcceptedBuilder(
-        Mid requestMid, OpenProtocolRevision connectionRevision) {
+        Mid midNumberAccepted, OpenProtocolRevision connectionRevision) {
 
-      this.requestMid = requestMid;
+      this.midNumberAccepted = midNumberAccepted;
       this.connectionRevision = connectionRevision;
     }
 
@@ -159,7 +160,7 @@ public class OpenProtocolMessageApplicationCommandAccepted extends OpenProtocolM
               sequenceNumber,
               numberOfMessageParts,
               messagePartNumber,
-              requestMid,
+              midNumberAccepted,
               connectionRevision);
       return openProtocolMessageApplicationCommandAccepted;
     }
@@ -175,12 +176,12 @@ public class OpenProtocolMessageApplicationCommandAccepted extends OpenProtocolM
     }
     OpenProtocolMessageApplicationCommandAccepted that =
         (OpenProtocolMessageApplicationCommandAccepted) o;
-    return (getRequestMid() == that.getRequestMid()) && super.equals(that) && true;
+    return (getMidNumberAccepted() == that.getMidNumberAccepted()) && super.equals(that) && true;
   }
 
   @Override
   public int hashCode() {
-    return Objects.hash(super.hashCode(), getRequestMid());
+    return Objects.hash(super.hashCode(), getMidNumberAccepted());
   }
 
   @Override
diff --git a/plc4j/drivers/open-protocol/src/main/generated/org/apache/plc4x/java/openprotocol/readwrite/OpenProtocolMessageApplicationGenericDataRequest.java b/plc4j/drivers/open-protocol/src/main/generated/org/apache/plc4x/java/openprotocol/readwrite/OpenProtocolMessageApplicationGenericDataRequest.java
index 2d748efa0c..ab3fc0b7d0 100644
--- a/plc4j/drivers/open-protocol/src/main/generated/org/apache/plc4x/java/openprotocol/readwrite/OpenProtocolMessageApplicationGenericDataRequest.java
+++ b/plc4j/drivers/open-protocol/src/main/generated/org/apache/plc4x/java/openprotocol/readwrite/OpenProtocolMessageApplicationGenericDataRequest.java
@@ -45,7 +45,7 @@ public class OpenProtocolMessageApplicationGenericDataRequest extends OpenProtoc
 
   // Properties.
   protected final Mid requestMid;
-  protected final OpenProtocolRevision revision;
+  protected final OpenProtocolRevision wantedRevision;
   protected final byte[] extraData;
 
   // Arguments.
@@ -60,7 +60,7 @@ public class OpenProtocolMessageApplicationGenericDataRequest extends OpenProtoc
       Short numberOfMessageParts,
       Short messagePartNumber,
       Mid requestMid,
-      OpenProtocolRevision revision,
+      OpenProtocolRevision wantedRevision,
       byte[] extraData,
       OpenProtocolRevision connectionRevision) {
     super(
@@ -73,7 +73,7 @@ public class OpenProtocolMessageApplicationGenericDataRequest extends OpenProtoc
         messagePartNumber,
         connectionRevision);
     this.requestMid = requestMid;
-    this.revision = revision;
+    this.wantedRevision = wantedRevision;
     this.extraData = extraData;
     this.connectionRevision = connectionRevision;
   }
@@ -82,8 +82,8 @@ public class OpenProtocolMessageApplicationGenericDataRequest extends OpenProtoc
     return requestMid;
   }
 
-  public OpenProtocolRevision getRevision() {
-    return revision;
+  public OpenProtocolRevision getWantedRevision() {
+    return wantedRevision;
   }
 
   public byte[] getExtraData() {
@@ -105,11 +105,11 @@ public class OpenProtocolMessageApplicationGenericDataRequest extends OpenProtoc
         new DataWriterEnumDefault<>(Mid::getValue, Mid::name, writeUnsignedLong(writeBuffer, 32)),
         WithOption.WithEncoding("ASCII"));
 
-    // Simple Field (revision)
+    // Simple Field (wantedRevision)
     writeSimpleEnumField(
-        "revision",
+        "wantedRevision",
         "OpenProtocolRevision",
-        revision,
+        wantedRevision,
         new DataWriterEnumDefault<>(
             OpenProtocolRevision::getValue,
             OpenProtocolRevision::name,
@@ -144,7 +144,7 @@ public class OpenProtocolMessageApplicationGenericDataRequest extends OpenProtoc
     // Simple field (requestMid)
     lengthInBits += 32;
 
-    // Simple field (revision)
+    // Simple field (wantedRevision)
     lengthInBits += 24;
 
     // Implicit Field (extraDataLength)
@@ -172,9 +172,9 @@ public class OpenProtocolMessageApplicationGenericDataRequest extends OpenProtoc
             new DataReaderEnumDefault<>(Mid::enumForValue, readUnsignedLong(readBuffer, 32)),
             WithOption.WithEncoding("ASCII"));
 
-    OpenProtocolRevision revision =
+    OpenProtocolRevision wantedRevision =
         readEnumField(
-            "revision",
+            "wantedRevision",
             "OpenProtocolRevision",
             new DataReaderEnumDefault<>(
                 OpenProtocolRevision::enumForValue, readUnsignedLong(readBuffer, 24)),
@@ -189,24 +189,24 @@ public class OpenProtocolMessageApplicationGenericDataRequest extends OpenProtoc
     readBuffer.closeContext("OpenProtocolMessageApplicationGenericDataRequest");
     // Create the instance
     return new OpenProtocolMessageApplicationGenericDataRequestBuilder(
-        requestMid, revision, extraData, connectionRevision);
+        requestMid, wantedRevision, extraData, connectionRevision);
   }
 
   public static class OpenProtocolMessageApplicationGenericDataRequestBuilder
       implements OpenProtocolMessage.OpenProtocolMessageBuilder {
     private final Mid requestMid;
-    private final OpenProtocolRevision revision;
+    private final OpenProtocolRevision wantedRevision;
     private final byte[] extraData;
     private final OpenProtocolRevision connectionRevision;
 
     public OpenProtocolMessageApplicationGenericDataRequestBuilder(
         Mid requestMid,
-        OpenProtocolRevision revision,
+        OpenProtocolRevision wantedRevision,
         byte[] extraData,
         OpenProtocolRevision connectionRevision) {
 
       this.requestMid = requestMid;
-      this.revision = revision;
+      this.wantedRevision = wantedRevision;
       this.extraData = extraData;
       this.connectionRevision = connectionRevision;
     }
@@ -231,7 +231,7 @@ public class OpenProtocolMessageApplicationGenericDataRequest extends OpenProtoc
                   numberOfMessageParts,
                   messagePartNumber,
                   requestMid,
-                  revision,
+                  wantedRevision,
                   extraData,
                   connectionRevision);
       return openProtocolMessageApplicationGenericDataRequest;
@@ -249,7 +249,7 @@ public class OpenProtocolMessageApplicationGenericDataRequest extends OpenProtoc
     OpenProtocolMessageApplicationGenericDataRequest that =
         (OpenProtocolMessageApplicationGenericDataRequest) o;
     return (getRequestMid() == that.getRequestMid())
-        && (getRevision() == that.getRevision())
+        && (getWantedRevision() == that.getWantedRevision())
         && (getExtraData() == that.getExtraData())
         && super.equals(that)
         && true;
@@ -257,7 +257,7 @@ public class OpenProtocolMessageApplicationGenericDataRequest extends OpenProtoc
 
   @Override
   public int hashCode() {
-    return Objects.hash(super.hashCode(), getRequestMid(), getRevision(), getExtraData());
+    return Objects.hash(super.hashCode(), getRequestMid(), getWantedRevision(), getExtraData());
   }
 
   @Override
diff --git a/plc4j/drivers/open-protocol/src/main/generated/org/apache/plc4x/java/openprotocol/readwrite/OpenProtocolMessageApplicationGenericDataRequest.java b/plc4j/drivers/open-protocol/src/main/generated/org/apache/plc4x/java/openprotocol/readwrite/OpenProtocolMessageApplicationGenericSubscription.java
similarity index 72%
copy from plc4j/drivers/open-protocol/src/main/generated/org/apache/plc4x/java/openprotocol/readwrite/OpenProtocolMessageApplicationGenericDataRequest.java
copy to plc4j/drivers/open-protocol/src/main/generated/org/apache/plc4x/java/openprotocol/readwrite/OpenProtocolMessageApplicationGenericSubscription.java
index 2d748efa0c..6e0212298e 100644
--- a/plc4j/drivers/open-protocol/src/main/generated/org/apache/plc4x/java/openprotocol/readwrite/OpenProtocolMessageApplicationGenericDataRequest.java
+++ b/plc4j/drivers/open-protocol/src/main/generated/org/apache/plc4x/java/openprotocol/readwrite/OpenProtocolMessageApplicationGenericSubscription.java
@@ -35,23 +35,23 @@ import org.apache.plc4x.java.spi.generation.*;
 
 // Code generated by code-generation. DO NOT EDIT.
 
-public class OpenProtocolMessageApplicationGenericDataRequest extends OpenProtocolMessage
+public class OpenProtocolMessageApplicationGenericSubscription extends OpenProtocolMessage
     implements Message {
 
   // Accessors for discriminator values.
   public Mid getMid() {
-    return Mid.ApplicationGenericDataRequest;
+    return Mid.ApplicationGenericSubscription;
   }
 
   // Properties.
-  protected final Mid requestMid;
-  protected final OpenProtocolRevision revision;
+  protected final Mid subscriptionMid;
+  protected final OpenProtocolRevision wantedRevision;
   protected final byte[] extraData;
 
   // Arguments.
   protected final OpenProtocolRevision connectionRevision;
 
-  public OpenProtocolMessageApplicationGenericDataRequest(
+  public OpenProtocolMessageApplicationGenericSubscription(
       OpenProtocolRevision selectedRevision,
       Short noAckFlag,
       Integer stationId,
@@ -59,8 +59,8 @@ public class OpenProtocolMessageApplicationGenericDataRequest extends OpenProtoc
       Integer sequenceNumber,
       Short numberOfMessageParts,
       Short messagePartNumber,
-      Mid requestMid,
-      OpenProtocolRevision revision,
+      Mid subscriptionMid,
+      OpenProtocolRevision wantedRevision,
       byte[] extraData,
       OpenProtocolRevision connectionRevision) {
     super(
@@ -72,18 +72,18 @@ public class OpenProtocolMessageApplicationGenericDataRequest extends OpenProtoc
         numberOfMessageParts,
         messagePartNumber,
         connectionRevision);
-    this.requestMid = requestMid;
-    this.revision = revision;
+    this.subscriptionMid = subscriptionMid;
+    this.wantedRevision = wantedRevision;
     this.extraData = extraData;
     this.connectionRevision = connectionRevision;
   }
 
-  public Mid getRequestMid() {
-    return requestMid;
+  public Mid getSubscriptionMid() {
+    return subscriptionMid;
   }
 
-  public OpenProtocolRevision getRevision() {
-    return revision;
+  public OpenProtocolRevision getWantedRevision() {
+    return wantedRevision;
   }
 
   public byte[] getExtraData() {
@@ -95,21 +95,21 @@ public class OpenProtocolMessageApplicationGenericDataRequest extends OpenProtoc
       throws SerializationException {
     PositionAware positionAware = writeBuffer;
     int startPos = positionAware.getPos();
-    writeBuffer.pushContext("OpenProtocolMessageApplicationGenericDataRequest");
+    writeBuffer.pushContext("OpenProtocolMessageApplicationGenericSubscription");
 
-    // Simple Field (requestMid)
+    // Simple Field (subscriptionMid)
     writeSimpleEnumField(
-        "requestMid",
+        "subscriptionMid",
         "Mid",
-        requestMid,
+        subscriptionMid,
         new DataWriterEnumDefault<>(Mid::getValue, Mid::name, writeUnsignedLong(writeBuffer, 32)),
         WithOption.WithEncoding("ASCII"));
 
-    // Simple Field (revision)
+    // Simple Field (wantedRevision)
     writeSimpleEnumField(
-        "revision",
+        "wantedRevision",
         "OpenProtocolRevision",
-        revision,
+        wantedRevision,
         new DataWriterEnumDefault<>(
             OpenProtocolRevision::getValue,
             OpenProtocolRevision::name,
@@ -128,7 +128,7 @@ public class OpenProtocolMessageApplicationGenericDataRequest extends OpenProtoc
     // Array Field (extraData)
     writeByteArrayField("extraData", extraData, writeByteArray(writeBuffer, 8));
 
-    writeBuffer.popContext("OpenProtocolMessageApplicationGenericDataRequest");
+    writeBuffer.popContext("OpenProtocolMessageApplicationGenericSubscription");
   }
 
   @Override
@@ -139,12 +139,12 @@ public class OpenProtocolMessageApplicationGenericDataRequest extends OpenProtoc
   @Override
   public int getLengthInBits() {
     int lengthInBits = super.getLengthInBits();
-    OpenProtocolMessageApplicationGenericDataRequest _value = this;
+    OpenProtocolMessageApplicationGenericSubscription _value = this;
 
-    // Simple field (requestMid)
+    // Simple field (subscriptionMid)
     lengthInBits += 32;
 
-    // Simple field (revision)
+    // Simple field (wantedRevision)
     lengthInBits += 24;
 
     // Implicit Field (extraDataLength)
@@ -158,23 +158,23 @@ public class OpenProtocolMessageApplicationGenericDataRequest extends OpenProtoc
     return lengthInBits;
   }
 
-  public static OpenProtocolMessageApplicationGenericDataRequestBuilder staticParseBuilder(
+  public static OpenProtocolMessageApplicationGenericSubscriptionBuilder staticParseBuilder(
       ReadBuffer readBuffer, OpenProtocolRevision connectionRevision) throws ParseException {
-    readBuffer.pullContext("OpenProtocolMessageApplicationGenericDataRequest");
+    readBuffer.pullContext("OpenProtocolMessageApplicationGenericSubscription");
     PositionAware positionAware = readBuffer;
     int startPos = positionAware.getPos();
     int curPos;
 
-    Mid requestMid =
+    Mid subscriptionMid =
         readEnumField(
-            "requestMid",
+            "subscriptionMid",
             "Mid",
             new DataReaderEnumDefault<>(Mid::enumForValue, readUnsignedLong(readBuffer, 32)),
             WithOption.WithEncoding("ASCII"));
 
-    OpenProtocolRevision revision =
+    OpenProtocolRevision wantedRevision =
         readEnumField(
-            "revision",
+            "wantedRevision",
             "OpenProtocolRevision",
             new DataReaderEnumDefault<>(
                 OpenProtocolRevision::enumForValue, readUnsignedLong(readBuffer, 24)),
@@ -186,32 +186,32 @@ public class OpenProtocolMessageApplicationGenericDataRequest extends OpenProtoc
 
     byte[] extraData = readBuffer.readByteArray("extraData", Math.toIntExact(extraDataLength));
 
-    readBuffer.closeContext("OpenProtocolMessageApplicationGenericDataRequest");
+    readBuffer.closeContext("OpenProtocolMessageApplicationGenericSubscription");
     // Create the instance
-    return new OpenProtocolMessageApplicationGenericDataRequestBuilder(
-        requestMid, revision, extraData, connectionRevision);
+    return new OpenProtocolMessageApplicationGenericSubscriptionBuilder(
+        subscriptionMid, wantedRevision, extraData, connectionRevision);
   }
 
-  public static class OpenProtocolMessageApplicationGenericDataRequestBuilder
+  public static class OpenProtocolMessageApplicationGenericSubscriptionBuilder
       implements OpenProtocolMessage.OpenProtocolMessageBuilder {
-    private final Mid requestMid;
-    private final OpenProtocolRevision revision;
+    private final Mid subscriptionMid;
+    private final OpenProtocolRevision wantedRevision;
     private final byte[] extraData;
     private final OpenProtocolRevision connectionRevision;
 
-    public OpenProtocolMessageApplicationGenericDataRequestBuilder(
-        Mid requestMid,
-        OpenProtocolRevision revision,
+    public OpenProtocolMessageApplicationGenericSubscriptionBuilder(
+        Mid subscriptionMid,
+        OpenProtocolRevision wantedRevision,
         byte[] extraData,
         OpenProtocolRevision connectionRevision) {
 
-      this.requestMid = requestMid;
-      this.revision = revision;
+      this.subscriptionMid = subscriptionMid;
+      this.wantedRevision = wantedRevision;
       this.extraData = extraData;
       this.connectionRevision = connectionRevision;
     }
 
-    public OpenProtocolMessageApplicationGenericDataRequest build(
+    public OpenProtocolMessageApplicationGenericSubscription build(
         OpenProtocolRevision selectedRevision,
         Short noAckFlag,
         Integer stationId,
@@ -220,9 +220,9 @@ public class OpenProtocolMessageApplicationGenericDataRequest extends OpenProtoc
         Short numberOfMessageParts,
         Short messagePartNumber,
         OpenProtocolRevision connectionRevision) {
-      OpenProtocolMessageApplicationGenericDataRequest
-          openProtocolMessageApplicationGenericDataRequest =
-              new OpenProtocolMessageApplicationGenericDataRequest(
+      OpenProtocolMessageApplicationGenericSubscription
+          openProtocolMessageApplicationGenericSubscription =
+              new OpenProtocolMessageApplicationGenericSubscription(
                   selectedRevision,
                   noAckFlag,
                   stationId,
@@ -230,11 +230,11 @@ public class OpenProtocolMessageApplicationGenericDataRequest extends OpenProtoc
                   sequenceNumber,
                   numberOfMessageParts,
                   messagePartNumber,
-                  requestMid,
-                  revision,
+                  subscriptionMid,
+                  wantedRevision,
                   extraData,
                   connectionRevision);
-      return openProtocolMessageApplicationGenericDataRequest;
+      return openProtocolMessageApplicationGenericSubscription;
     }
   }
 
@@ -243,13 +243,13 @@ public class OpenProtocolMessageApplicationGenericDataRequest extends OpenProtoc
     if (this == o) {
       return true;
     }
-    if (!(o instanceof OpenProtocolMessageApplicationGenericDataRequest)) {
+    if (!(o instanceof OpenProtocolMessageApplicationGenericSubscription)) {
       return false;
     }
-    OpenProtocolMessageApplicationGenericDataRequest that =
-        (OpenProtocolMessageApplicationGenericDataRequest) o;
-    return (getRequestMid() == that.getRequestMid())
-        && (getRevision() == that.getRevision())
+    OpenProtocolMessageApplicationGenericSubscription that =
+        (OpenProtocolMessageApplicationGenericSubscription) o;
+    return (getSubscriptionMid() == that.getSubscriptionMid())
+        && (getWantedRevision() == that.getWantedRevision())
         && (getExtraData() == that.getExtraData())
         && super.equals(that)
         && true;
@@ -257,7 +257,8 @@ public class OpenProtocolMessageApplicationGenericDataRequest extends OpenProtoc
 
   @Override
   public int hashCode() {
-    return Objects.hash(super.hashCode(), getRequestMid(), getRevision(), getExtraData());
+    return Objects.hash(
+        super.hashCode(), getSubscriptionMid(), getWantedRevision(), getExtraData());
   }
 
   @Override
diff --git a/plc4j/drivers/open-protocol/src/main/generated/org/apache/plc4x/java/openprotocol/readwrite/OpenProtocolMessageApplicationGenericDataRequest.java b/plc4j/drivers/open-protocol/src/main/generated/org/apache/plc4x/java/openprotocol/readwrite/OpenProtocolMessageApplicationGenericUnsubscribe.java
similarity index 72%
copy from plc4j/drivers/open-protocol/src/main/generated/org/apache/plc4x/java/openprotocol/readwrite/OpenProtocolMessageApplicationGenericDataRequest.java
copy to plc4j/drivers/open-protocol/src/main/generated/org/apache/plc4x/java/openprotocol/readwrite/OpenProtocolMessageApplicationGenericUnsubscribe.java
index 2d748efa0c..1c6149bf1d 100644
--- a/plc4j/drivers/open-protocol/src/main/generated/org/apache/plc4x/java/openprotocol/readwrite/OpenProtocolMessageApplicationGenericDataRequest.java
+++ b/plc4j/drivers/open-protocol/src/main/generated/org/apache/plc4x/java/openprotocol/readwrite/OpenProtocolMessageApplicationGenericUnsubscribe.java
@@ -35,23 +35,23 @@ import org.apache.plc4x.java.spi.generation.*;
 
 // Code generated by code-generation. DO NOT EDIT.
 
-public class OpenProtocolMessageApplicationGenericDataRequest extends OpenProtocolMessage
+public class OpenProtocolMessageApplicationGenericUnsubscribe extends OpenProtocolMessage
     implements Message {
 
   // Accessors for discriminator values.
   public Mid getMid() {
-    return Mid.ApplicationGenericDataRequest;
+    return Mid.ApplicationGenericUnsubscribe;
   }
 
   // Properties.
-  protected final Mid requestMid;
-  protected final OpenProtocolRevision revision;
+  protected final Mid subscriptionMid;
+  protected final OpenProtocolRevision extraDataRevision;
   protected final byte[] extraData;
 
   // Arguments.
   protected final OpenProtocolRevision connectionRevision;
 
-  public OpenProtocolMessageApplicationGenericDataRequest(
+  public OpenProtocolMessageApplicationGenericUnsubscribe(
       OpenProtocolRevision selectedRevision,
       Short noAckFlag,
       Integer stationId,
@@ -59,8 +59,8 @@ public class OpenProtocolMessageApplicationGenericDataRequest extends OpenProtoc
       Integer sequenceNumber,
       Short numberOfMessageParts,
       Short messagePartNumber,
-      Mid requestMid,
-      OpenProtocolRevision revision,
+      Mid subscriptionMid,
+      OpenProtocolRevision extraDataRevision,
       byte[] extraData,
       OpenProtocolRevision connectionRevision) {
     super(
@@ -72,18 +72,18 @@ public class OpenProtocolMessageApplicationGenericDataRequest extends OpenProtoc
         numberOfMessageParts,
         messagePartNumber,
         connectionRevision);
-    this.requestMid = requestMid;
-    this.revision = revision;
+    this.subscriptionMid = subscriptionMid;
+    this.extraDataRevision = extraDataRevision;
     this.extraData = extraData;
     this.connectionRevision = connectionRevision;
   }
 
-  public Mid getRequestMid() {
-    return requestMid;
+  public Mid getSubscriptionMid() {
+    return subscriptionMid;
   }
 
-  public OpenProtocolRevision getRevision() {
-    return revision;
+  public OpenProtocolRevision getExtraDataRevision() {
+    return extraDataRevision;
   }
 
   public byte[] getExtraData() {
@@ -95,21 +95,21 @@ public class OpenProtocolMessageApplicationGenericDataRequest extends OpenProtoc
       throws SerializationException {
     PositionAware positionAware = writeBuffer;
     int startPos = positionAware.getPos();
-    writeBuffer.pushContext("OpenProtocolMessageApplicationGenericDataRequest");
+    writeBuffer.pushContext("OpenProtocolMessageApplicationGenericUnsubscribe");
 
-    // Simple Field (requestMid)
+    // Simple Field (subscriptionMid)
     writeSimpleEnumField(
-        "requestMid",
+        "subscriptionMid",
         "Mid",
-        requestMid,
+        subscriptionMid,
         new DataWriterEnumDefault<>(Mid::getValue, Mid::name, writeUnsignedLong(writeBuffer, 32)),
         WithOption.WithEncoding("ASCII"));
 
-    // Simple Field (revision)
+    // Simple Field (extraDataRevision)
     writeSimpleEnumField(
-        "revision",
+        "extraDataRevision",
         "OpenProtocolRevision",
-        revision,
+        extraDataRevision,
         new DataWriterEnumDefault<>(
             OpenProtocolRevision::getValue,
             OpenProtocolRevision::name,
@@ -128,7 +128,7 @@ public class OpenProtocolMessageApplicationGenericDataRequest extends OpenProtoc
     // Array Field (extraData)
     writeByteArrayField("extraData", extraData, writeByteArray(writeBuffer, 8));
 
-    writeBuffer.popContext("OpenProtocolMessageApplicationGenericDataRequest");
+    writeBuffer.popContext("OpenProtocolMessageApplicationGenericUnsubscribe");
   }
 
   @Override
@@ -139,12 +139,12 @@ public class OpenProtocolMessageApplicationGenericDataRequest extends OpenProtoc
   @Override
   public int getLengthInBits() {
     int lengthInBits = super.getLengthInBits();
-    OpenProtocolMessageApplicationGenericDataRequest _value = this;
+    OpenProtocolMessageApplicationGenericUnsubscribe _value = this;
 
-    // Simple field (requestMid)
+    // Simple field (subscriptionMid)
     lengthInBits += 32;
 
-    // Simple field (revision)
+    // Simple field (extraDataRevision)
     lengthInBits += 24;
 
     // Implicit Field (extraDataLength)
@@ -158,23 +158,23 @@ public class OpenProtocolMessageApplicationGenericDataRequest extends OpenProtoc
     return lengthInBits;
   }
 
-  public static OpenProtocolMessageApplicationGenericDataRequestBuilder staticParseBuilder(
+  public static OpenProtocolMessageApplicationGenericUnsubscribeBuilder staticParseBuilder(
       ReadBuffer readBuffer, OpenProtocolRevision connectionRevision) throws ParseException {
-    readBuffer.pullContext("OpenProtocolMessageApplicationGenericDataRequest");
+    readBuffer.pullContext("OpenProtocolMessageApplicationGenericUnsubscribe");
     PositionAware positionAware = readBuffer;
     int startPos = positionAware.getPos();
     int curPos;
 
-    Mid requestMid =
+    Mid subscriptionMid =
         readEnumField(
-            "requestMid",
+            "subscriptionMid",
             "Mid",
             new DataReaderEnumDefault<>(Mid::enumForValue, readUnsignedLong(readBuffer, 32)),
             WithOption.WithEncoding("ASCII"));
 
-    OpenProtocolRevision revision =
+    OpenProtocolRevision extraDataRevision =
         readEnumField(
-            "revision",
+            "extraDataRevision",
             "OpenProtocolRevision",
             new DataReaderEnumDefault<>(
                 OpenProtocolRevision::enumForValue, readUnsignedLong(readBuffer, 24)),
@@ -186,32 +186,32 @@ public class OpenProtocolMessageApplicationGenericDataRequest extends OpenProtoc
 
     byte[] extraData = readBuffer.readByteArray("extraData", Math.toIntExact(extraDataLength));
 
-    readBuffer.closeContext("OpenProtocolMessageApplicationGenericDataRequest");
+    readBuffer.closeContext("OpenProtocolMessageApplicationGenericUnsubscribe");
     // Create the instance
-    return new OpenProtocolMessageApplicationGenericDataRequestBuilder(
-        requestMid, revision, extraData, connectionRevision);
+    return new OpenProtocolMessageApplicationGenericUnsubscribeBuilder(
+        subscriptionMid, extraDataRevision, extraData, connectionRevision);
   }
 
-  public static class OpenProtocolMessageApplicationGenericDataRequestBuilder
+  public static class OpenProtocolMessageApplicationGenericUnsubscribeBuilder
       implements OpenProtocolMessage.OpenProtocolMessageBuilder {
-    private final Mid requestMid;
-    private final OpenProtocolRevision revision;
+    private final Mid subscriptionMid;
+    private final OpenProtocolRevision extraDataRevision;
     private final byte[] extraData;
     private final OpenProtocolRevision connectionRevision;
 
-    public OpenProtocolMessageApplicationGenericDataRequestBuilder(
-        Mid requestMid,
-        OpenProtocolRevision revision,
+    public OpenProtocolMessageApplicationGenericUnsubscribeBuilder(
+        Mid subscriptionMid,
+        OpenProtocolRevision extraDataRevision,
         byte[] extraData,
         OpenProtocolRevision connectionRevision) {
 
-      this.requestMid = requestMid;
-      this.revision = revision;
+      this.subscriptionMid = subscriptionMid;
+      this.extraDataRevision = extraDataRevision;
       this.extraData = extraData;
       this.connectionRevision = connectionRevision;
     }
 
-    public OpenProtocolMessageApplicationGenericDataRequest build(
+    public OpenProtocolMessageApplicationGenericUnsubscribe build(
         OpenProtocolRevision selectedRevision,
         Short noAckFlag,
         Integer stationId,
@@ -220,9 +220,9 @@ public class OpenProtocolMessageApplicationGenericDataRequest extends OpenProtoc
         Short numberOfMessageParts,
         Short messagePartNumber,
         OpenProtocolRevision connectionRevision) {
-      OpenProtocolMessageApplicationGenericDataRequest
-          openProtocolMessageApplicationGenericDataRequest =
-              new OpenProtocolMessageApplicationGenericDataRequest(
+      OpenProtocolMessageApplicationGenericUnsubscribe
+          openProtocolMessageApplicationGenericUnsubscribe =
+              new OpenProtocolMessageApplicationGenericUnsubscribe(
                   selectedRevision,
                   noAckFlag,
                   stationId,
@@ -230,11 +230,11 @@ public class OpenProtocolMessageApplicationGenericDataRequest extends OpenProtoc
                   sequenceNumber,
                   numberOfMessageParts,
                   messagePartNumber,
-                  requestMid,
-                  revision,
+                  subscriptionMid,
+                  extraDataRevision,
                   extraData,
                   connectionRevision);
-      return openProtocolMessageApplicationGenericDataRequest;
+      return openProtocolMessageApplicationGenericUnsubscribe;
     }
   }
 
@@ -243,13 +243,13 @@ public class OpenProtocolMessageApplicationGenericDataRequest extends OpenProtoc
     if (this == o) {
       return true;
     }
-    if (!(o instanceof OpenProtocolMessageApplicationGenericDataRequest)) {
+    if (!(o instanceof OpenProtocolMessageApplicationGenericUnsubscribe)) {
       return false;
     }
-    OpenProtocolMessageApplicationGenericDataRequest that =
-        (OpenProtocolMessageApplicationGenericDataRequest) o;
-    return (getRequestMid() == that.getRequestMid())
-        && (getRevision() == that.getRevision())
+    OpenProtocolMessageApplicationGenericUnsubscribe that =
+        (OpenProtocolMessageApplicationGenericUnsubscribe) o;
+    return (getSubscriptionMid() == that.getSubscriptionMid())
+        && (getExtraDataRevision() == that.getExtraDataRevision())
         && (getExtraData() == that.getExtraData())
         && super.equals(that)
         && true;
@@ -257,7 +257,8 @@ public class OpenProtocolMessageApplicationGenericDataRequest extends OpenProtoc
 
   @Override
   public int hashCode() {
-    return Objects.hash(super.hashCode(), getRequestMid(), getRevision(), getExtraData());
+    return Objects.hash(
+        super.hashCode(), getSubscriptionMid(), getExtraDataRevision(), getExtraData());
   }
 
   @Override
diff --git a/protocols/open-protocol/src/main/resources/protocols/openprotocol/open-protocol.mspec b/protocols/open-protocol/src/main/resources/protocols/openprotocol/open-protocol.mspec
index af6fc4c652..573f9b3df0 100644
--- a/protocols/open-protocol/src/main/resources/protocols/openprotocol/open-protocol.mspec
+++ b/protocols/open-protocol/src/main/resources/protocols/openprotocol/open-protocol.mspec
@@ -47,13 +47,25 @@
             [simple Error                  error                                                encoding='"ASCII"']
         ]
         ['ApplicationCommandAccepted' *ApplicationCommandAccepted
-            [simple Mid                    requestMid                                           encoding='"ASCII"']
+            [simple Mid                    midNumberAccepted                                    encoding='"ASCII"']
         ]
         ['ApplicationGenericDataRequest' *ApplicationGenericDataRequest
             [simple   Mid                  requestMid                                           encoding='"ASCII"']
-            [simple   OpenProtocolRevision revision                                             encoding='"ASCII"']
+            [simple   OpenProtocolRevision wantedRevision                                       encoding='"ASCII"']
+            [implicit uint 16              extraDataLength 'COUNT(extraData)'                   encoding='"ASCII"']
+            [array    byte                 extraData       count 'extraDataLength'                                ]
+        ]
+        ['ApplicationGenericSubscription' *ApplicationGenericSubscription
+            [simple   Mid                  subscriptionMid                                      encoding='"ASCII"']
+            [simple   OpenProtocolRevision wantedRevision                                       encoding='"ASCII"']
+            [implicit uint 16              extraDataLength 'COUNT(extraData)'                   encoding='"ASCII"']
+            [array    byte                 extraData       count 'extraDataLength'                                ]
+        ]
+        ['ApplicationGenericUnsubscribe' *ApplicationGenericUnsubscribe
+            [simple   Mid                  subscriptionMid                                      encoding='"ASCII"']
+            [simple   OpenProtocolRevision extraDataRevision                                    encoding='"ASCII"']
             [implicit uint 16              extraDataLength 'COUNT(extraData)'                   encoding='"ASCII"']
-            [array    byte                 extraData       count 'extraDataLength'                                    ]
+            [array    byte                 extraData       count 'extraDataLength'                                ]
         ]
     ]
     [const         uint 8  end                  0x00                                                              ]
diff --git a/protocols/open-protocol/src/test/resources/protocols/openprotocol/ParserSerializerTestsuite.xml b/protocols/open-protocol/src/test/resources/protocols/openprotocol/ParserSerializerTestsuite.xml
index 09782a67de..287724a8b0 100644
--- a/protocols/open-protocol/src/test/resources/protocols/openprotocol/ParserSerializerTestsuite.xml
+++ b/protocols/open-protocol/src/test/resources/protocols/openprotocol/ParserSerializerTestsuite.xml
@@ -92,4 +92,113 @@
     </xml>
   </testcase>
 
+  <testcase>
+    <name>MID 0003 Application Communication stop</name>
+    <!--  0 0 2 0 0 0 0 3 _ _ _ _ _ _ _ _ _ _ _ _ NULL -->
+    <raw>303032303030303320202020202020202020202000</raw>
+    <root-type>OpenProtocolMessage</root-type>
+    <parser-arguments>
+      <connectionRevision>Revision1</connectionRevision>
+    </parser-arguments>
+    <xml>
+      <OpenProtocolMessage>
+        <length dataType="uint" bitLength="32">20</length>
+        <mid>
+          <Mid dataType="uint" bitLength="32" stringRepresentation="ApplicationCommunicationStop">3</Mid>
+        </mid>
+        <selectedRevision>
+        </selectedRevision>
+        <OpenProtocolMessageApplicationCommunicationStop>
+        </OpenProtocolMessageApplicationCommunicationStop>
+        <end dataType="uint" bitLength="8">0</end>
+      </OpenProtocolMessage>
+    </xml>
+  </testcase>
+
+  <testcase>
+    <name>MID 0004 Application Communication negative acknowledge</name>
+    <!--  0 0 2 6 0 0 0 4                         0 0 1 8 0 2 NUL -->
+    <raw>303032363030303420202020202020202020202030303138303200</raw>
+    <root-type>OpenProtocolMessage</root-type>
+    <parser-arguments>
+      <connectionRevision>Revision1</connectionRevision>
+    </parser-arguments>
+    <xml>
+      <OpenProtocolMessage>
+        <length dataType="uint" bitLength="32">26</length>
+        <mid>
+          <Mid dataType="uint" bitLength="32" stringRepresentation="ApplicationCommandError">4</Mid>
+        </mid>
+        <selectedRevision>
+        </selectedRevision>
+        <OpenProtocolMessageApplicationCommandError>
+          <requestMid>
+            <Mid dataType="uint" bitLength="32" stringRepresentation="SelectParameterSet">18</Mid>
+          </requestMid>
+          <error>
+            <Error dataType="uint" bitLength="16" stringRepresentation="ParameterSetIdNotPresent">2</Error>
+          </error>
+        </OpenProtocolMessageApplicationCommandError>
+        <end dataType="uint" bitLength="8">0</end>
+      </OpenProtocolMessage>
+    </xml>
+  </testcase>
+
+  <testcase>
+    <name>MID 0005 Application Communication positive acknowledge</name>
+    <!--  0 0 2 4 0 0 0 5 _ _ _ _ _ _ _ _ _ _ _ _ 0 0 1 8 NULL -->
+    <raw>30303234303030352020202020202020202020203030313800</raw>
+    <root-type>OpenProtocolMessage</root-type>
+    <parser-arguments>
+      <connectionRevision>Revision1</connectionRevision>
+    </parser-arguments>
+    <xml>
+      <OpenProtocolMessage>
+        <length dataType="uint" bitLength="32">24</length>
+        <mid>
+          <Mid dataType="uint" bitLength="32" stringRepresentation="ApplicationCommandAccepted">5</Mid>
+        </mid>
+        <selectedRevision>
+        </selectedRevision>
+        <OpenProtocolMessageApplicationCommandAccepted>
+          <midNumberAccepted>
+            <Mid dataType="uint" bitLength="32" stringRepresentation="SelectParameterSet">18</Mid>
+          </midNumberAccepted>
+        </OpenProtocolMessageApplicationCommandAccepted>
+        <end dataType="uint" bitLength="8">0</end>
+      </OpenProtocolMessage>
+    </xml>
+  </testcase>
+
+  <testcase>
+    <name>MID 0006 Application data message request</name>
+    <!--  0 0 3 3 0 0 0 6 _ _ _ _ _ _ _ _ _ _ _ _ 0 0 1 8 0 0 6 0 4 H u r z NULL -->
+    <raw>30303333303030362020202020202020202020203030313830303630344875727A00</raw>
+    <root-type>OpenProtocolMessage</root-type>
+    <parser-arguments>
+      <connectionRevision>Revision1</connectionRevision>
+    </parser-arguments>
+    <xml>
+      <OpenProtocolMessage>
+        <length dataType="uint" bitLength="32">33</length>
+        <mid>
+          <Mid dataType="uint" bitLength="32" stringRepresentation="ApplicationGenericDataRequest">6</Mid>
+        </mid>
+        <selectedRevision>
+        </selectedRevision>
+        <OpenProtocolMessageApplicationGenericDataRequest>
+          <requestMid>
+            <Mid dataType="uint" bitLength="32" stringRepresentation="SelectParameterSet">18</Mid>
+          </requestMid>
+          <wantedRevision>
+            <OpenProtocolRevision dataType="uint" bitLength="24" stringRepresentation="Revision6">6</OpenProtocolRevision>
+          </wantedRevision>
+          <extraDataLength dataType="uint" bitLength="16">4</extraDataLength>
+          <extraData dataType="byte" bitLength="32">0x4875727a</extraData>
+        </OpenProtocolMessageApplicationGenericDataRequest>
+        <end dataType="uint" bitLength="8">0</end>
+      </OpenProtocolMessage>
+    </xml>
+  </testcase>
+
 </test:testsuite>