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 2020/01/21 09:38:29 UTC

[plc4x] branch develop updated: - Moved the KNXnet/IP driver out of the sandbox

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 bf560c4  - Moved the KNXnet/IP driver out of the sandbox
bf560c4 is described below

commit bf560c485046a96bc1e3856d38a74befcf752656
Author: Christofer Dutz <ch...@c-ware.de>
AuthorDate: Tue Jan 21 10:38:22 2020 +0100

    - Moved the KNXnet/IP driver out of the sandbox
---
 .../drivers/knxnetip}/README.adoc                  |   0
 .../drivers/knxnetip}/pom.xml                      |  56 ++--
 .../apache/plc4x/java/knxnetip/KnxNetIpDriver.java |   0
 .../configuration/KnxNetIpConfiguration.java       |   0
 .../plc4x/java/knxnetip/ets5/Ets5Parser.java       |   0
 .../java/knxnetip/ets5/model/AddressType.java      |   0
 .../plc4x/java/knxnetip/ets5/model/Ets5Model.java  |   0
 .../plc4x/java/knxnetip/ets5/model/Function.java   |   0
 .../java/knxnetip/ets5/model/GroupAddress.java     |   0
 .../plc4x/java/knxnetip/field/KnxNetIpField.java   |   0
 .../java/knxnetip/field/KnxNetIpFieldHandler.java  |   0
 .../knxnetip/protocol/KnxNetIpProtocolLogic.java   |   0
 .../services/org.apache.plc4x.java.api.PlcDriver   |   0
 .../org/apache/plc4x/java/knxnetip/IOTest.java     |   0
 .../apache/plc4x/java/knxnetip/KNXNetIpTest.java   |   0
 .../apache/plc4x/java/knxnetip/ManualKnxNetIp.java |   2 -
 .../java/knxnetip/ManualKnxNetIpWithEts5.java      |   0
 .../knxnetip}/src/test/resources/logback.xml       |   0
 .../test/resources/testsuite/KNXNetIPTestsuite.xml | 332 ++++++---------------
 plc4j/drivers/pom.xml                              |   1 +
 .../resources/protocols/knxnetip/knxnetip.mspec    |   4 +-
 sandbox/pom.xml                                    |   1 -
 22 files changed, 134 insertions(+), 262 deletions(-)

diff --git a/sandbox/test-java-knxnetip-driver/README.adoc b/plc4j/drivers/knxnetip/README.adoc
similarity index 100%
rename from sandbox/test-java-knxnetip-driver/README.adoc
rename to plc4j/drivers/knxnetip/README.adoc
diff --git a/sandbox/test-java-knxnetip-driver/pom.xml b/plc4j/drivers/knxnetip/pom.xml
similarity index 75%
rename from sandbox/test-java-knxnetip-driver/pom.xml
rename to plc4j/drivers/knxnetip/pom.xml
index cf5e4eb..30086dc 100644
--- a/sandbox/test-java-knxnetip-driver/pom.xml
+++ b/plc4j/drivers/knxnetip/pom.xml
@@ -21,14 +21,13 @@
   <modelVersion>4.0.0</modelVersion>
 
   <parent>
-    <groupId>org.apache.plc4x.sandbox</groupId>
-    <artifactId>plc4x-sandbox</artifactId>
+    <groupId>org.apache.plc4x</groupId>
+    <artifactId>plc4j-drivers</artifactId>
     <version>0.7.0-SNAPSHOT</version>
   </parent>
 
-  <artifactId>test-java-knxnetip-driver</artifactId>
-
-  <name>Sandbox: Test Generated KNXNet/IP Driver</name>
+  <artifactId>plc4j-driver-knxnetip</artifactId>
+  <name>PLC4J: Driver: KNXNet/IP</name>
 
   <build>
     <plugins>
@@ -50,6 +49,16 @@
           </execution>
         </executions>
       </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-dependency-plugin</artifactId>
+        <configuration>
+          <usedDependencies combine.children="append">
+            <usedDependency>org.apache.plc4x:plc4x-build-utils-language-java</usedDependency>
+            <usedDependency>org.apache.plc4x:plc4x-protocols-knxnetip</usedDependency>
+          </usedDependencies>
+        </configuration>
+      </plugin>
     </plugins>
   </build>
 
@@ -70,21 +79,22 @@
       <artifactId>plc4j-transport-udp</artifactId>
       <version>0.7.0-SNAPSHOT</version>
     </dependency>
+
     <dependency>
-      <groupId>org.apache.plc4x</groupId>
-      <artifactId>plc4j-transport-raw-socket</artifactId>
-      <version>0.7.0-SNAPSHOT</version>
+      <groupId>com.fasterxml.jackson.core</groupId>
+      <artifactId>jackson-annotations</artifactId>
     </dependency>
-
     <dependency>
-      <groupId>org.apache.plc4x</groupId>
-      <artifactId>plc4j-transport-tcp</artifactId>
-      <version>0.7.0-SNAPSHOT</version>
+      <groupId>io.netty</groupId>
+      <artifactId>netty-transport</artifactId>
     </dependency>
-
     <dependency>
-      <groupId>com.fasterxml.jackson.core</groupId>
-      <artifactId>jackson-annotations</artifactId>
+      <groupId>io.netty</groupId>
+      <artifactId>netty-buffer</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.commons</groupId>
+      <artifactId>commons-lang3</artifactId>
     </dependency>
     <dependency>
       <groupId>commons-codec</groupId>
@@ -101,18 +111,22 @@
       <version>0.7.0-SNAPSHOT</version>
       <scope>test</scope>
     </dependency>
-    <dependency>
-      <groupId>org.apache.plc4x</groupId>
-      <artifactId>plc4j-transport-pcap-socket</artifactId>
-      <version>0.7.0-SNAPSHOT</version>
-      <!--scope>test</scope-->
-    </dependency>
 
     <dependency>
       <groupId>ch.qos.logback</groupId>
       <artifactId>logback-classic</artifactId>
       <scope>test</scope>
     </dependency>
+    <dependency>
+      <groupId>com.fasterxml.jackson.dataformat</groupId>
+      <artifactId>jackson-dataformat-xml</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>com.fasterxml.jackson.core</groupId>
+      <artifactId>jackson-databind</artifactId>
+      <scope>test</scope>
+    </dependency>
 
     <dependency>
       <groupId>org.apache.plc4x</groupId>
diff --git a/sandbox/test-java-knxnetip-driver/src/main/java/org/apache/plc4x/java/knxnetip/KnxNetIpDriver.java b/plc4j/drivers/knxnetip/src/main/java/org/apache/plc4x/java/knxnetip/KnxNetIpDriver.java
similarity index 100%
rename from sandbox/test-java-knxnetip-driver/src/main/java/org/apache/plc4x/java/knxnetip/KnxNetIpDriver.java
rename to plc4j/drivers/knxnetip/src/main/java/org/apache/plc4x/java/knxnetip/KnxNetIpDriver.java
diff --git a/sandbox/test-java-knxnetip-driver/src/main/java/org/apache/plc4x/java/knxnetip/configuration/KnxNetIpConfiguration.java b/plc4j/drivers/knxnetip/src/main/java/org/apache/plc4x/java/knxnetip/configuration/KnxNetIpConfiguration.java
similarity index 100%
rename from sandbox/test-java-knxnetip-driver/src/main/java/org/apache/plc4x/java/knxnetip/configuration/KnxNetIpConfiguration.java
rename to plc4j/drivers/knxnetip/src/main/java/org/apache/plc4x/java/knxnetip/configuration/KnxNetIpConfiguration.java
diff --git a/sandbox/test-java-knxnetip-driver/src/main/java/org/apache/plc4x/java/knxnetip/ets5/Ets5Parser.java b/plc4j/drivers/knxnetip/src/main/java/org/apache/plc4x/java/knxnetip/ets5/Ets5Parser.java
similarity index 100%
rename from sandbox/test-java-knxnetip-driver/src/main/java/org/apache/plc4x/java/knxnetip/ets5/Ets5Parser.java
rename to plc4j/drivers/knxnetip/src/main/java/org/apache/plc4x/java/knxnetip/ets5/Ets5Parser.java
diff --git a/sandbox/test-java-knxnetip-driver/src/main/java/org/apache/plc4x/java/knxnetip/ets5/model/AddressType.java b/plc4j/drivers/knxnetip/src/main/java/org/apache/plc4x/java/knxnetip/ets5/model/AddressType.java
similarity index 100%
rename from sandbox/test-java-knxnetip-driver/src/main/java/org/apache/plc4x/java/knxnetip/ets5/model/AddressType.java
rename to plc4j/drivers/knxnetip/src/main/java/org/apache/plc4x/java/knxnetip/ets5/model/AddressType.java
diff --git a/sandbox/test-java-knxnetip-driver/src/main/java/org/apache/plc4x/java/knxnetip/ets5/model/Ets5Model.java b/plc4j/drivers/knxnetip/src/main/java/org/apache/plc4x/java/knxnetip/ets5/model/Ets5Model.java
similarity index 100%
rename from sandbox/test-java-knxnetip-driver/src/main/java/org/apache/plc4x/java/knxnetip/ets5/model/Ets5Model.java
rename to plc4j/drivers/knxnetip/src/main/java/org/apache/plc4x/java/knxnetip/ets5/model/Ets5Model.java
diff --git a/sandbox/test-java-knxnetip-driver/src/main/java/org/apache/plc4x/java/knxnetip/ets5/model/Function.java b/plc4j/drivers/knxnetip/src/main/java/org/apache/plc4x/java/knxnetip/ets5/model/Function.java
similarity index 100%
rename from sandbox/test-java-knxnetip-driver/src/main/java/org/apache/plc4x/java/knxnetip/ets5/model/Function.java
rename to plc4j/drivers/knxnetip/src/main/java/org/apache/plc4x/java/knxnetip/ets5/model/Function.java
diff --git a/sandbox/test-java-knxnetip-driver/src/main/java/org/apache/plc4x/java/knxnetip/ets5/model/GroupAddress.java b/plc4j/drivers/knxnetip/src/main/java/org/apache/plc4x/java/knxnetip/ets5/model/GroupAddress.java
similarity index 100%
rename from sandbox/test-java-knxnetip-driver/src/main/java/org/apache/plc4x/java/knxnetip/ets5/model/GroupAddress.java
rename to plc4j/drivers/knxnetip/src/main/java/org/apache/plc4x/java/knxnetip/ets5/model/GroupAddress.java
diff --git a/sandbox/test-java-knxnetip-driver/src/main/java/org/apache/plc4x/java/knxnetip/field/KnxNetIpField.java b/plc4j/drivers/knxnetip/src/main/java/org/apache/plc4x/java/knxnetip/field/KnxNetIpField.java
similarity index 100%
rename from sandbox/test-java-knxnetip-driver/src/main/java/org/apache/plc4x/java/knxnetip/field/KnxNetIpField.java
rename to plc4j/drivers/knxnetip/src/main/java/org/apache/plc4x/java/knxnetip/field/KnxNetIpField.java
diff --git a/sandbox/test-java-knxnetip-driver/src/main/java/org/apache/plc4x/java/knxnetip/field/KnxNetIpFieldHandler.java b/plc4j/drivers/knxnetip/src/main/java/org/apache/plc4x/java/knxnetip/field/KnxNetIpFieldHandler.java
similarity index 100%
rename from sandbox/test-java-knxnetip-driver/src/main/java/org/apache/plc4x/java/knxnetip/field/KnxNetIpFieldHandler.java
rename to plc4j/drivers/knxnetip/src/main/java/org/apache/plc4x/java/knxnetip/field/KnxNetIpFieldHandler.java
diff --git a/sandbox/test-java-knxnetip-driver/src/main/java/org/apache/plc4x/java/knxnetip/protocol/KnxNetIpProtocolLogic.java b/plc4j/drivers/knxnetip/src/main/java/org/apache/plc4x/java/knxnetip/protocol/KnxNetIpProtocolLogic.java
similarity index 100%
rename from sandbox/test-java-knxnetip-driver/src/main/java/org/apache/plc4x/java/knxnetip/protocol/KnxNetIpProtocolLogic.java
rename to plc4j/drivers/knxnetip/src/main/java/org/apache/plc4x/java/knxnetip/protocol/KnxNetIpProtocolLogic.java
diff --git a/sandbox/test-java-knxnetip-driver/src/main/resources/META-INF/services/org.apache.plc4x.java.api.PlcDriver b/plc4j/drivers/knxnetip/src/main/resources/META-INF/services/org.apache.plc4x.java.api.PlcDriver
similarity index 100%
rename from sandbox/test-java-knxnetip-driver/src/main/resources/META-INF/services/org.apache.plc4x.java.api.PlcDriver
rename to plc4j/drivers/knxnetip/src/main/resources/META-INF/services/org.apache.plc4x.java.api.PlcDriver
diff --git a/sandbox/test-java-knxnetip-driver/src/test/java/org/apache/plc4x/java/knxnetip/IOTest.java b/plc4j/drivers/knxnetip/src/test/java/org/apache/plc4x/java/knxnetip/IOTest.java
similarity index 100%
rename from sandbox/test-java-knxnetip-driver/src/test/java/org/apache/plc4x/java/knxnetip/IOTest.java
rename to plc4j/drivers/knxnetip/src/test/java/org/apache/plc4x/java/knxnetip/IOTest.java
diff --git a/sandbox/test-java-knxnetip-driver/src/test/java/org/apache/plc4x/java/knxnetip/KNXNetIpTest.java b/plc4j/drivers/knxnetip/src/test/java/org/apache/plc4x/java/knxnetip/KNXNetIpTest.java
similarity index 100%
rename from sandbox/test-java-knxnetip-driver/src/test/java/org/apache/plc4x/java/knxnetip/KNXNetIpTest.java
rename to plc4j/drivers/knxnetip/src/test/java/org/apache/plc4x/java/knxnetip/KNXNetIpTest.java
diff --git a/sandbox/test-java-knxnetip-driver/src/test/java/org/apache/plc4x/java/knxnetip/ManualKnxNetIp.java b/plc4j/drivers/knxnetip/src/test/java/org/apache/plc4x/java/knxnetip/ManualKnxNetIp.java
similarity index 97%
rename from sandbox/test-java-knxnetip-driver/src/test/java/org/apache/plc4x/java/knxnetip/ManualKnxNetIp.java
rename to plc4j/drivers/knxnetip/src/test/java/org/apache/plc4x/java/knxnetip/ManualKnxNetIp.java
index 165cc02..956a6ed 100644
--- a/sandbox/test-java-knxnetip-driver/src/test/java/org/apache/plc4x/java/knxnetip/ManualKnxNetIp.java
+++ b/plc4j/drivers/knxnetip/src/test/java/org/apache/plc4x/java/knxnetip/ManualKnxNetIp.java
@@ -24,10 +24,8 @@ import org.apache.plc4x.java.api.exceptions.PlcRuntimeException;
 import org.apache.plc4x.java.api.messages.PlcSubscriptionRequest;
 import org.apache.plc4x.java.api.messages.PlcSubscriptionResponse;
 import org.apache.plc4x.java.api.model.PlcSubscriptionHandle;
-import org.apache.plc4x.java.knxnetip.field.KnxNetIpField;
 import org.apache.plc4x.java.spi.messages.DefaultPlcSubscriptionEvent;
 
-import java.io.IOException;
 import java.util.concurrent.TimeUnit;
 
 public class ManualKnxNetIp {
diff --git a/sandbox/test-java-knxnetip-driver/src/test/java/org/apache/plc4x/java/knxnetip/ManualKnxNetIpWithEts5.java b/plc4j/drivers/knxnetip/src/test/java/org/apache/plc4x/java/knxnetip/ManualKnxNetIpWithEts5.java
similarity index 100%
rename from sandbox/test-java-knxnetip-driver/src/test/java/org/apache/plc4x/java/knxnetip/ManualKnxNetIpWithEts5.java
rename to plc4j/drivers/knxnetip/src/test/java/org/apache/plc4x/java/knxnetip/ManualKnxNetIpWithEts5.java
diff --git a/sandbox/test-java-knxnetip-driver/src/test/resources/logback.xml b/plc4j/drivers/knxnetip/src/test/resources/logback.xml
similarity index 100%
rename from sandbox/test-java-knxnetip-driver/src/test/resources/logback.xml
rename to plc4j/drivers/knxnetip/src/test/resources/logback.xml
diff --git a/sandbox/test-java-knxnetip-driver/src/test/resources/testsuite/KNXNetIPTestsuite.xml b/plc4j/drivers/knxnetip/src/test/resources/testsuite/KNXNetIPTestsuite.xml
similarity index 56%
rename from sandbox/test-java-knxnetip-driver/src/test/resources/testsuite/KNXNetIPTestsuite.xml
rename to plc4j/drivers/knxnetip/src/test/resources/testsuite/KNXNetIPTestsuite.xml
index 1966a8f..6724428 100644
--- a/sandbox/test-java-knxnetip-driver/src/test/resources/testsuite/KNXNetIPTestsuite.xml
+++ b/plc4j/drivers/knxnetip/src/test/resources/testsuite/KNXNetIPTestsuite.xml
@@ -27,15 +27,10 @@
     <root-type>KNXNetIPMessage</root-type>
     <xml>
       <SearchRequest className="org.apache.plc4x.java.knxnetip.readwrite.SearchRequest">
-        <hpaiIDiscoveryEndpoint>
-          <hostProtocolCode>1</hostProtocolCode>
-          <ipAddress>
-            <addr>
-              <addr>192</addr>
-              <addr>168</addr>
-              <addr>42</addr>
-              <addr>70</addr>
-            </addr>
+        <hpaiIDiscoveryEndpoint className="org.apache.plc4x.java.knxnetip.readwrite.HPAIDiscoveryEndpoint">
+          <hostProtocolCode>IPV4_UDP</hostProtocolCode>
+          <ipAddress className="org.apache.plc4x.java.knxnetip.readwrite.IPAddress">
+            <addr>wKgqRg==</addr>
           </ipAddress>
           <ipPort>61326</ipPort>
         </hpaiIDiscoveryEndpoint>
@@ -49,93 +44,38 @@
     <root-type>KNXNetIPMessage</root-type>
     <xml>
       <SearchResponse className="org.apache.plc4x.java.knxnetip.readwrite.SearchResponse">
-        <hpaiControlEndpoint>
-          <hostProtocolCode>1</hostProtocolCode>
-          <ipAddress>
-            <addr>
-              <addr>192</addr>
-              <addr>168</addr>
-              <addr>42</addr>
-              <addr>11</addr>
-            </addr>
+        <hpaiControlEndpoint className="org.apache.plc4x.java.knxnetip.readwrite.HPAIControlEndpoint">
+          <hostProtocolCode>IPV4_UDP</hostProtocolCode>
+          <ipAddress className="org.apache.plc4x.java.knxnetip.readwrite.IPAddress">
+            <addr>wKgqCw==</addr>
           </ipAddress>
           <ipPort>3671</ipPort>
         </hpaiControlEndpoint>
-        <dibDeviceInfo>
+        <dibDeviceInfo className="org.apache.plc4x.java.knxnetip.readwrite.DIBDeviceInfo">
           <descriptionType>1</descriptionType>
           <knxMedium>2</knxMedium>
-          <deviceStatus>
+          <deviceStatus className="org.apache.plc4x.java.knxnetip.readwrite.DeviceStatus">
             <programMode>false</programMode>
           </deviceStatus>
-          <knxAddress>
+          <knxAddress className="org.apache.plc4x.java.knxnetip.readwrite.KNXAddress">
             <mainGroup>15</mainGroup>
             <middleGroup>15</middleGroup>
             <subGroup>255</subGroup>
           </knxAddress>
-          <projectInstallationIdentifier>
+          <projectInstallationIdentifier className="org.apache.plc4x.java.knxnetip.readwrite.ProjectInstallationIdentifier">
             <projectNumber>0</projectNumber>
             <installationNumber>0</installationNumber>
           </projectInstallationIdentifier>
-          <knxNetIpDeviceSerialNumber>
-            <knxNetIpDeviceSerialNumber>0</knxNetIpDeviceSerialNumber>
-            <knxNetIpDeviceSerialNumber>8</knxNetIpDeviceSerialNumber>
-            <knxNetIpDeviceSerialNumber>45</knxNetIpDeviceSerialNumber>
-            <knxNetIpDeviceSerialNumber>64</knxNetIpDeviceSerialNumber>
-            <knxNetIpDeviceSerialNumber>152</knxNetIpDeviceSerialNumber>
-            <knxNetIpDeviceSerialNumber>82</knxNetIpDeviceSerialNumber>
-          </knxNetIpDeviceSerialNumber>
-          <knxNetIpDeviceMulticastAddress>
-            <addr>
-              <addr>224</addr>
-              <addr>0</addr>
-              <addr>23</addr>
-              <addr>12</addr>
-            </addr>
+          <knxNetIpDeviceSerialNumber>AAgtQJhS</knxNetIpDeviceSerialNumber>
+          <knxNetIpDeviceMulticastAddress className="org.apache.plc4x.java.knxnetip.readwrite.IPAddress">
+            <addr>4AAXDA==</addr>
           </knxNetIpDeviceMulticastAddress>
-          <knxNetIpDeviceMacAddress>
-            <addr>
-              <addr>0</addr>
-              <addr>10</addr>
-              <addr>179</addr>
-              <addr>39</addr>
-              <addr>85</addr>
-              <addr>54</addr>
-            </addr>
+          <knxNetIpDeviceMacAddress className="org.apache.plc4x.java.knxnetip.readwrite.MACAddress">
+            <addr>AAqzJ1U2</addr>
           </knxNetIpDeviceMacAddress>
-          <deviceFriendlyName>
-            <deviceFriendlyName>71</deviceFriendlyName>
-            <deviceFriendlyName>105</deviceFriendlyName>
-            <deviceFriendlyName>114</deviceFriendlyName>
-            <deviceFriendlyName>97</deviceFriendlyName>
-            <deviceFriendlyName>32</deviceFriendlyName>
-            <deviceFriendlyName>75</deviceFriendlyName>
-            <deviceFriendlyName>78</deviceFriendlyName>
-            <deviceFriendlyName>88</deviceFriendlyName>
-            <deviceFriendlyName>47</deviceFriendlyName>
-            <deviceFriendlyName>73</deviceFriendlyName>
-            <deviceFriendlyName>80</deviceFriendlyName>
-            <deviceFriendlyName>45</deviceFriendlyName>
-            <deviceFriendlyName>83</deviceFriendlyName>
-            <deviceFriendlyName>99</deviceFriendlyName>
-            <deviceFriendlyName>104</deviceFriendlyName>
-            <deviceFriendlyName>110</deviceFriendlyName>
-            <deviceFriendlyName>105</deviceFriendlyName>
-            <deviceFriendlyName>116</deviceFriendlyName>
-            <deviceFriendlyName>116</deviceFriendlyName>
-            <deviceFriendlyName>115</deviceFriendlyName>
-            <deviceFriendlyName>116</deviceFriendlyName>
-            <deviceFriendlyName>101</deviceFriendlyName>
-            <deviceFriendlyName>108</deviceFriendlyName>
-            <deviceFriendlyName>108</deviceFriendlyName>
-            <deviceFriendlyName>101</deviceFriendlyName>
-            <deviceFriendlyName>0</deviceFriendlyName>
-            <deviceFriendlyName>0</deviceFriendlyName>
-            <deviceFriendlyName>0</deviceFriendlyName>
-            <deviceFriendlyName>0</deviceFriendlyName>
-            <deviceFriendlyName>0</deviceFriendlyName>
-          </deviceFriendlyName>
+          <deviceFriendlyName>R2lyYSBLTlgvSVAtU2Nobml0dHN0ZWxsZQAAAAAA</deviceFriendlyName>
         </dibDeviceInfo>
-        <dibSuppSvcFamilies>
+        <dibSuppSvcFamilies className="org.apache.plc4x.java.knxnetip.readwrite.DIBSuppSvcFamilies">
           <descriptionType>2</descriptionType>
           <serviceIds>
             <serviceIds className="org.apache.plc4x.java.knxnetip.readwrite.KnxNetIpCore">
@@ -159,15 +99,10 @@
     <root-type>KNXNetIPMessage</root-type>
     <xml>
       <DescriptionRequest className="org.apache.plc4x.java.knxnetip.readwrite.DescriptionRequest">
-        <hpaiControlEndpoint>
-          <hostProtocolCode>1</hostProtocolCode>
-          <ipAddress>
-            <addr>
-              <addr>0</addr>
-              <addr>0</addr>
-              <addr>0</addr>
-              <addr>0</addr>
-            </addr>
+        <hpaiControlEndpoint className="org.apache.plc4x.java.knxnetip.readwrite.HPAIControlEndpoint">
+          <hostProtocolCode>IPV4_UDP</hostProtocolCode>
+          <ipAddress className="org.apache.plc4x.java.knxnetip.readwrite.IPAddress">
+            <addr>AAAAAA==</addr>
           </ipAddress>
           <ipPort>0</ipPort>
         </hpaiControlEndpoint>
@@ -181,81 +116,31 @@
     <root-type>KNXNetIPMessage</root-type>
     <xml>
       <DescriptionResponse className="org.apache.plc4x.java.knxnetip.readwrite.DescriptionResponse">
-        <dibDeviceInfo>
+        <dibDeviceInfo className="org.apache.plc4x.java.knxnetip.readwrite.DIBDeviceInfo">
           <descriptionType>1</descriptionType>
           <knxMedium>2</knxMedium>
-          <deviceStatus>
+          <deviceStatus className="org.apache.plc4x.java.knxnetip.readwrite.DeviceStatus">
             <programMode>false</programMode>
           </deviceStatus>
-          <knxAddress>
+          <knxAddress className="org.apache.plc4x.java.knxnetip.readwrite.KNXAddress">
             <mainGroup>15</mainGroup>
             <middleGroup>15</middleGroup>
             <subGroup>255</subGroup>
           </knxAddress>
-          <projectInstallationIdentifier>
+          <projectInstallationIdentifier className="org.apache.plc4x.java.knxnetip.readwrite.ProjectInstallationIdentifier">
             <projectNumber>0</projectNumber>
             <installationNumber>0</installationNumber>
           </projectInstallationIdentifier>
-          <knxNetIpDeviceSerialNumber>
-            <knxNetIpDeviceSerialNumber>0</knxNetIpDeviceSerialNumber>
-            <knxNetIpDeviceSerialNumber>8</knxNetIpDeviceSerialNumber>
-            <knxNetIpDeviceSerialNumber>45</knxNetIpDeviceSerialNumber>
-            <knxNetIpDeviceSerialNumber>64</knxNetIpDeviceSerialNumber>
-            <knxNetIpDeviceSerialNumber>152</knxNetIpDeviceSerialNumber>
-            <knxNetIpDeviceSerialNumber>82</knxNetIpDeviceSerialNumber>
-          </knxNetIpDeviceSerialNumber>
-          <knxNetIpDeviceMulticastAddress>
-            <addr>
-              <addr>224</addr>
-              <addr>0</addr>
-              <addr>23</addr>
-              <addr>12</addr>
-            </addr>
+          <knxNetIpDeviceSerialNumber>AAgtQJhS</knxNetIpDeviceSerialNumber>
+          <knxNetIpDeviceMulticastAddress className="org.apache.plc4x.java.knxnetip.readwrite.IPAddress">
+            <addr>4AAXDA==</addr>
           </knxNetIpDeviceMulticastAddress>
-          <knxNetIpDeviceMacAddress>
-            <addr>
-              <addr>0</addr>
-              <addr>10</addr>
-              <addr>179</addr>
-              <addr>39</addr>
-              <addr>85</addr>
-              <addr>54</addr>
-            </addr>
+          <knxNetIpDeviceMacAddress className="org.apache.plc4x.java.knxnetip.readwrite.MACAddress">
+            <addr>AAqzJ1U2</addr>
           </knxNetIpDeviceMacAddress>
-          <deviceFriendlyName>
-            <deviceFriendlyName>71</deviceFriendlyName>
-            <deviceFriendlyName>105</deviceFriendlyName>
-            <deviceFriendlyName>114</deviceFriendlyName>
-            <deviceFriendlyName>97</deviceFriendlyName>
-            <deviceFriendlyName>32</deviceFriendlyName>
-            <deviceFriendlyName>75</deviceFriendlyName>
-            <deviceFriendlyName>78</deviceFriendlyName>
-            <deviceFriendlyName>88</deviceFriendlyName>
-            <deviceFriendlyName>47</deviceFriendlyName>
-            <deviceFriendlyName>73</deviceFriendlyName>
-            <deviceFriendlyName>80</deviceFriendlyName>
-            <deviceFriendlyName>45</deviceFriendlyName>
-            <deviceFriendlyName>83</deviceFriendlyName>
-            <deviceFriendlyName>99</deviceFriendlyName>
-            <deviceFriendlyName>104</deviceFriendlyName>
-            <deviceFriendlyName>110</deviceFriendlyName>
-            <deviceFriendlyName>105</deviceFriendlyName>
-            <deviceFriendlyName>116</deviceFriendlyName>
-            <deviceFriendlyName>116</deviceFriendlyName>
-            <deviceFriendlyName>115</deviceFriendlyName>
-            <deviceFriendlyName>116</deviceFriendlyName>
-            <deviceFriendlyName>101</deviceFriendlyName>
-            <deviceFriendlyName>108</deviceFriendlyName>
-            <deviceFriendlyName>108</deviceFriendlyName>
-            <deviceFriendlyName>101</deviceFriendlyName>
-            <deviceFriendlyName>0</deviceFriendlyName>
-            <deviceFriendlyName>0</deviceFriendlyName>
-            <deviceFriendlyName>0</deviceFriendlyName>
-            <deviceFriendlyName>0</deviceFriendlyName>
-            <deviceFriendlyName>0</deviceFriendlyName>
-          </deviceFriendlyName>
+          <deviceFriendlyName>R2lyYSBLTlgvSVAtU2Nobml0dHN0ZWxsZQAAAAAA</deviceFriendlyName>
         </dibDeviceInfo>
-        <dibSuppSvcFamilies>
+        <dibSuppSvcFamilies className="org.apache.plc4x.java.knxnetip.readwrite.DIBSuppSvcFamilies">
           <descriptionType>2</descriptionType>
           <serviceIds>
             <serviceIds className="org.apache.plc4x.java.knxnetip.readwrite.KnxNetIpCore">
@@ -279,32 +164,22 @@
     <root-type>KNXNetIPMessage</root-type>
     <xml>
       <ConnectionRequest className="org.apache.plc4x.java.knxnetip.readwrite.ConnectionRequest">
-        <hpaiDiscoveryEndpoint>
-          <hostProtocolCode>1</hostProtocolCode>
-          <ipAddress>
-            <addr>
-              <addr>192</addr>
-              <addr>168</addr>
-              <addr>42</addr>
-              <addr>70</addr>
-            </addr>
+        <hpaiDiscoveryEndpoint className="org.apache.plc4x.java.knxnetip.readwrite.HPAIDiscoveryEndpoint">
+          <hostProtocolCode>IPV4_UDP</hostProtocolCode>
+          <ipAddress className="org.apache.plc4x.java.knxnetip.readwrite.IPAddress">
+            <addr>wKgqRg==</addr>
           </ipAddress>
           <ipPort>62513</ipPort>
         </hpaiDiscoveryEndpoint>
-        <hpaiDataEndpoint>
-          <hostProtocolCode>1</hostProtocolCode>
-          <ipAddress>
-            <addr>
-              <addr>192</addr>
-              <addr>168</addr>
-              <addr>42</addr>
-              <addr>70</addr>
-            </addr>
+        <hpaiDataEndpoint className="org.apache.plc4x.java.knxnetip.readwrite.HPAIDataEndpoint">
+          <hostProtocolCode>IPV4_UDP</hostProtocolCode>
+          <ipAddress className="org.apache.plc4x.java.knxnetip.readwrite.IPAddress">
+            <addr>wKgqRg==</addr>
           </ipAddress>
           <ipPort>62514</ipPort>
         </hpaiDataEndpoint>
         <connectionRequestInformation className="org.apache.plc4x.java.knxnetip.readwrite.ConnectionRequestInformationTunnelConnection">
-          <knxLayer>2</knxLayer>
+          <knxLayer>TUNNEL_LINK_LAYER</knxLayer>
         </connectionRequestInformation>
       </ConnectionRequest>
     </xml>
@@ -317,21 +192,16 @@
     <xml>
       <ConnectionResponse className="org.apache.plc4x.java.knxnetip.readwrite.ConnectionResponse">
         <communicationChannelId>102</communicationChannelId>
-        <status>0</status>
-        <hpaiDataEndpoint>
-          <hostProtocolCode>1</hostProtocolCode>
-          <ipAddress>
-            <addr>
-              <addr>192</addr>
-              <addr>168</addr>
-              <addr>42</addr>
-              <addr>11</addr>
-            </addr>
+        <status>NO_ERROR</status>
+        <hpaiDataEndpoint className="org.apache.plc4x.java.knxnetip.readwrite.HPAIDataEndpoint">
+          <hostProtocolCode>IPV4_UDP</hostProtocolCode>
+          <ipAddress className="org.apache.plc4x.java.knxnetip.readwrite.IPAddress">
+            <addr>wKgqCw==</addr>
           </ipAddress>
           <ipPort>3671</ipPort>
         </hpaiDataEndpoint>
         <connectionResponseDataBlock className="org.apache.plc4x.java.knxnetip.readwrite.ConnectionResponseDataBlockTunnelConnection">
-          <knxAddress>
+          <knxAddress className="org.apache.plc4x.java.knxnetip.readwrite.KNXAddress">
             <mainGroup>1</mainGroup>
             <middleGroup>1</middleGroup>
             <subGroup>1</subGroup>
@@ -348,15 +218,10 @@
     <xml>
       <ConnectionStateRequest className="org.apache.plc4x.java.knxnetip.readwrite.ConnectionStateRequest">
         <communicationChannelId>102</communicationChannelId>
-        <hpaiControlEndpoint>
-          <hostProtocolCode>1</hostProtocolCode>
-          <ipAddress>
-            <addr>
-              <addr>192</addr>
-              <addr>168</addr>
-              <addr>42</addr>
-              <addr>70</addr>
-            </addr>
+        <hpaiControlEndpoint className="org.apache.plc4x.java.knxnetip.readwrite.HPAIControlEndpoint">
+          <hostProtocolCode>IPV4_UDP</hostProtocolCode>
+          <ipAddress className="org.apache.plc4x.java.knxnetip.readwrite.IPAddress">
+            <addr>wKgqRg==</addr>
           </ipAddress>
           <ipPort>62513</ipPort>
         </hpaiControlEndpoint>
@@ -371,7 +236,7 @@
     <xml>
       <ConnectionStateResponse className="org.apache.plc4x.java.knxnetip.readwrite.ConnectionStateResponse">
         <communicationChannelId>102</communicationChannelId>
-        <status>0</status>
+        <status>NO_ERROR</status>
       </ConnectionStateResponse>
     </xml>
   </testcase>
@@ -382,7 +247,7 @@
     <root-type>KNXNetIPMessage</root-type>
     <xml>
       <DeviceConfigurationRequest className="org.apache.plc4x.java.knxnetip.readwrite.DeviceConfigurationRequest">
-        <deviceConfigurationRequestDataBlock>
+        <deviceConfigurationRequestDataBlock className="org.apache.plc4x.java.knxnetip.readwrite.DeviceConfigurationRequestDataBlock">
           <communicationChannelId>103</communicationChannelId>
           <sequenceCounter>0</sequenceCounter>
         </deviceConfigurationRequestDataBlock>
@@ -403,10 +268,10 @@
     <root-type>KNXNetIPMessage</root-type>
     <xml>
       <DeviceConfigurationAck className="org.apache.plc4x.java.knxnetip.readwrite.DeviceConfigurationAck">
-        <deviceConfigurationAckDataBlock>
+        <deviceConfigurationAckDataBlock className="org.apache.plc4x.java.knxnetip.readwrite.DeviceConfigurationAckDataBlock">
           <communicationChannelId>103</communicationChannelId>
           <sequenceCounter>0</sequenceCounter>
-          <status>0</status>
+          <status>NO_ERROR</status>
         </deviceConfigurationAckDataBlock>
       </DeviceConfigurationAck>
     </xml>
@@ -419,15 +284,10 @@
     <xml>
       <DisconnectRequest className="org.apache.plc4x.java.knxnetip.readwrite.DisconnectRequest">
         <communicationChannelId>103</communicationChannelId>
-        <hpaiControlEndpoint>
-          <hostProtocolCode>1</hostProtocolCode>
-          <ipAddress>
-            <addr>
-              <addr>192</addr>
-              <addr>168</addr>
-              <addr>42</addr>
-              <addr>70</addr>
-            </addr>
+        <hpaiControlEndpoint className="org.apache.plc4x.java.knxnetip.readwrite.HPAIControlEndpoint">
+          <hostProtocolCode>IPV4_UDP</hostProtocolCode>
+          <ipAddress className="org.apache.plc4x.java.knxnetip.readwrite.IPAddress">
+            <addr>wKgqRg==</addr>
           </ipAddress>
           <ipPort>62513</ipPort>
         </hpaiControlEndpoint>
@@ -442,7 +302,7 @@
     <xml>
       <DisconnectResponse className="org.apache.plc4x.java.knxnetip.readwrite.DisconnectResponse">
         <communicationChannelId>102</communicationChannelId>
-        <status>0</status>
+        <status>NO_ERROR</status>
       </DisconnectResponse>
     </xml>
   </testcase>
@@ -453,11 +313,11 @@
     <root-type>KNXNetIPMessage</root-type>
     <xml>
       <TunnelingRequest className="org.apache.plc4x.java.knxnetip.readwrite.TunnelingRequest">
-        <tunnelingRequestDataBlock>
+        <tunnelingRequestDataBlock className="org.apache.plc4x.java.knxnetip.readwrite.TunnelingRequestDataBlock">
           <communicationChannelId>107</communicationChannelId>
           <sequenceCounter>0</sequenceCounter>
         </tunnelingRequestDataBlock>
-        <cemi className="org.apache.plc4x.java.knxnetip.readwrite.CEMILBusmonInd">
+        <cemi className="org.apache.plc4x.java.knxnetip.readwrite.CEMIBusmonInd">
           <additionalInformationLength>7</additionalInformationLength>
           <additionalInformation>
             <additionalInformation className="org.apache.plc4x.java.knxnetip.readwrite.CEMIAdditionalInformationBusmonitorInfo">
@@ -469,25 +329,33 @@
               <sequenceNumber>5</sequenceNumber>
             </additionalInformation>
             <additionalInformation className="org.apache.plc4x.java.knxnetip.readwrite.CEMIAdditionalInformationRelativeTimestamp">
-              <relativeTimestamp>
+              <relativeTimestamp className="org.apache.plc4x.java.knxnetip.readwrite.RelativeTimestamp">
                 <timestamp>17666</timestamp>
               </relativeTimestamp>
             </additionalInformation>
           </additionalInformation>
-          <rawFrame>
-            <rawFrame>188</rawFrame>
-            <rawFrame>54</rawFrame>
-            <rawFrame>10</rawFrame>
-            <rawFrame>30</rawFrame>
-            <rawFrame>12</rawFrame>
-            <rawFrame>225</rawFrame>
-            <rawFrame>0</rawFrame>
-            <rawFrame>129</rawFrame>
-            <rawFrame>13</rawFrame>
-          </rawFrame>
+          <cemiFrame className="org.apache.plc4x.java.knxnetip.readwrite.CEMIFrameData">
+            <standardFrame>true</standardFrame>
+            <polling>false</polling>
+            <doNotRepeat>true</doNotRepeat>
+            <priority>LOW</priority>
+            <sourceAddress className="org.apache.plc4x.java.knxnetip.readwrite.KNXAddress">
+              <mainGroup>3</mainGroup>
+              <middleGroup>6</middleGroup>
+              <subGroup>10</subGroup>
+            </sourceAddress>
+            <destinationAddress>Hgw=</destinationAddress>
+            <groupAddress>true</groupAddress>
+            <hopCount>6</hopCount>
+            <dataLength>1</dataLength>
+            <tpci>0</tpci>
+            <apci>GROUP_VALUE_WRITE_PDU</apci>
+            <dataFirstByte>1</dataFirstByte>
+            <data></data>
+            <crc>13</crc>
+          </cemiFrame>
         </cemi>
       </TunnelingRequest>
-
     </xml>
   </testcase>
 
@@ -497,10 +365,10 @@
     <root-type>KNXNetIPMessage</root-type>
     <xml>
       <TunnelingResponse className="org.apache.plc4x.java.knxnetip.readwrite.TunnelingResponse">
-        <tunnelingResponseDataBlock>
+        <tunnelingResponseDataBlock className="org.apache.plc4x.java.knxnetip.readwrite.TunnelingResponseDataBlock">
           <communicationChannelId>107</communicationChannelId>
           <sequenceCounter>0</sequenceCounter>
-          <status>0</status>
+          <status>NO_ERROR</status>
         </tunnelingResponseDataBlock>
       </TunnelingResponse>
     </xml>
@@ -512,27 +380,17 @@
     <root-type>KNXNetIPMessage</root-type>
     <xml>
       <ConnectionRequest className="org.apache.plc4x.java.knxnetip.readwrite.ConnectionRequest">
-        <hpaiDiscoveryEndpoint>
-          <hostProtocolCode>1</hostProtocolCode>
-          <ipAddress>
-            <addr>
-              <addr>192</addr>
-              <addr>168</addr>
-              <addr>42</addr>
-              <addr>70</addr>
-            </addr>
+        <hpaiDiscoveryEndpoint className="org.apache.plc4x.java.knxnetip.readwrite.HPAIDiscoveryEndpoint">
+          <hostProtocolCode>IPV4_UDP</hostProtocolCode>
+          <ipAddress className="org.apache.plc4x.java.knxnetip.readwrite.IPAddress">
+            <addr>wKgqRg==</addr>
           </ipAddress>
           <ipPort>50185</ipPort>
         </hpaiDiscoveryEndpoint>
-        <hpaiDataEndpoint>
-          <hostProtocolCode>1</hostProtocolCode>
-          <ipAddress>
-            <addr>
-              <addr>192</addr>
-              <addr>168</addr>
-              <addr>42</addr>
-              <addr>70</addr>
-            </addr>
+        <hpaiDataEndpoint className="org.apache.plc4x.java.knxnetip.readwrite.HPAIDataEndpoint">
+          <hostProtocolCode>IPV4_UDP</hostProtocolCode>
+          <ipAddress className="org.apache.plc4x.java.knxnetip.readwrite.IPAddress">
+            <addr>wKgqRg==</addr>
           </ipAddress>
           <ipPort>50186</ipPort>
         </hpaiDataEndpoint>
diff --git a/plc4j/drivers/pom.xml b/plc4j/drivers/pom.xml
index d54c604..5fc0404 100644
--- a/plc4j/drivers/pom.xml
+++ b/plc4j/drivers/pom.xml
@@ -37,6 +37,7 @@
     <module>ab-eth</module>
     <!--module>ads</module>
     <module>ethernet-ip</module-->
+    <module>knxnetip</module>
     <module>mock</module>
     <!--module>modbus</module>
     <module>s7</module>
diff --git a/protocols/knxnetip/src/main/resources/protocols/knxnetip/knxnetip.mspec b/protocols/knxnetip/src/main/resources/protocols/knxnetip/knxnetip.mspec
index f3db144..9a717c9 100644
--- a/protocols/knxnetip/src/main/resources/protocols/knxnetip/knxnetip.mspec
+++ b/protocols/knxnetip/src/main/resources/protocols/knxnetip/knxnetip.mspec
@@ -520,7 +520,9 @@
 ]
 
 [enum uint 8 'KnxLayer'
-   ['0x80' TUNNEL_BUSMONITOR]
+    ['0x02' TUNNEL_LINK_LAYER]
+    ['0x04' TUNNEL_RAW]
+    ['0x80' TUNNEL_BUSMONITOR]
 ]
 
 [enum uint 4 'APCI'
diff --git a/sandbox/pom.xml b/sandbox/pom.xml
index 2fe754a..4a5fbbf 100644
--- a/sandbox/pom.xml
+++ b/sandbox/pom.xml
@@ -41,7 +41,6 @@
     <module>test-java-amsads-driver</module>
     <module>test-java-bacnetip-driver</module>
     <module>test-java-df1-driver</module>
-    <module>test-java-knxnetip-driver</module>
     <module>test-java-modbus-driver</module>
     <module>test-java-s7-driver</module>