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 2021/12/15 21:24:42 UTC
[plc4x] 08/09: - Added the basic generation of model classes for the protocol types in C#
This is an automated email from the ASF dual-hosted git repository.
cdutz pushed a commit to branch feature/plc4net2
in repository https://gitbox.apache.org/repos/asf/plc4x.git
commit 430cfbd069325c459adb943a7d9dbae85755a882
Author: Christofer Dutz <ch...@c-ware.de>
AuthorDate: Thu Dec 3 22:36:54 2020 +0100
- Added the basic generation of model classes for the protocol types in C#
---
.../apache/plc4x/language/cs/CsLanguageOutput.java | 3 +-
.../resources/templates/cs/model-template.ftlh | 134 +++++++++++++++++++++
.../knxnetip/src/knxnetip/readwrite/model/CEMI.cs | 34 ++++++
.../readwrite/model/CEMIAdditionalInformation.cs | 34 ++++++
.../CEMIAdditionalInformationBusmonitorInfo.cs | 53 ++++++++
.../CEMIAdditionalInformationRelativeTimestamp.cs | 43 +++++++
.../src/knxnetip/readwrite/model/CEMIBusmonInd.cs | 44 +++++++
.../src/knxnetip/readwrite/model/CEMIDataCon.cs | 44 +++++++
.../src/knxnetip/readwrite/model/CEMIDataFrame.cs | 70 +++++++++++
.../src/knxnetip/readwrite/model/CEMIDataInd.cs | 44 +++++++
.../src/knxnetip/readwrite/model/CEMIDataReq.cs | 44 +++++++
.../src/knxnetip/readwrite/model/CEMIFrame.cs | 46 +++++++
.../src/knxnetip/readwrite/model/CEMIFrameAck.cs | 43 +++++++
.../src/knxnetip/readwrite/model/CEMIFrameData.cs | 67 +++++++++++
.../knxnetip/readwrite/model/CEMIFrameDataExt.cs | 69 +++++++++++
.../readwrite/model/CEMIFramePollingData.cs | 43 +++++++
.../readwrite/model/CEMIFramePollingDataExt.cs | 43 +++++++
.../knxnetip/readwrite/model/CEMIMPropReadCon.cs | 50 ++++++++
.../knxnetip/readwrite/model/CEMIMPropReadReq.cs | 48 ++++++++
.../knxnetip/readwrite/model/CEMIPollDataCon.cs | 36 ++++++
.../knxnetip/readwrite/model/CEMIPollDataReq.cs | 36 ++++++
.../src/knxnetip/readwrite/model/CEMIRawCon.cs | 36 ++++++
.../src/knxnetip/readwrite/model/CEMIRawInd.cs | 36 ++++++
.../src/knxnetip/readwrite/model/CEMIRawReq.cs | 36 ++++++
.../knxnetip/readwrite/model/ConnectionRequest.cs | 44 +++++++
.../model/ConnectionRequestInformation.cs | 34 ++++++
...ConnectionRequestInformationDeviceManagement.cs | 36 ++++++
...ConnectionRequestInformationTunnelConnection.cs | 40 ++++++
.../knxnetip/readwrite/model/ConnectionResponse.cs | 46 +++++++
.../readwrite/model/ConnectionResponseDataBlock.cs | 34 ++++++
.../ConnectionResponseDataBlockDeviceManagement.cs | 36 ++++++
.../ConnectionResponseDataBlockTunnelConnection.cs | 40 ++++++
.../readwrite/model/ConnectionStateRequest.cs | 42 +++++++
.../readwrite/model/ConnectionStateResponse.cs | 42 +++++++
.../src/knxnetip/readwrite/model/DIBDeviceInfo.cs | 52 ++++++++
.../knxnetip/readwrite/model/DIBSuppSvcFamilies.cs | 38 ++++++
.../knxnetip/readwrite/model/DescriptionRequest.cs | 40 ++++++
.../readwrite/model/DescriptionResponse.cs | 42 +++++++
.../readwrite/model/DeviceConfigurationAck.cs | 40 ++++++
.../model/DeviceConfigurationAckDataBlock.cs | 40 ++++++
.../readwrite/model/DeviceConfigurationRequest.cs | 42 +++++++
.../model/DeviceConfigurationRequestDataBlock.cs | 38 ++++++
.../src/knxnetip/readwrite/model/DeviceStatus.cs | 36 ++++++
.../knxnetip/readwrite/model/DisconnectRequest.cs | 42 +++++++
.../knxnetip/readwrite/model/DisconnectResponse.cs | 42 +++++++
.../readwrite/model/HPAIControlEndpoint.cs | 40 ++++++
.../knxnetip/readwrite/model/HPAIDataEndpoint.cs | 40 ++++++
.../readwrite/model/HPAIDiscoveryEndpoint.cs | 40 ++++++
.../src/knxnetip/readwrite/model/IPAddress.cs | 36 ++++++
.../src/knxnetip/readwrite/model/KnxAddress.cs | 40 ++++++
.../knxnetip/readwrite/model/KnxGroupAddress.cs | 34 ++++++
.../readwrite/model/KnxGroupAddress2Level.cs | 42 +++++++
.../readwrite/model/KnxGroupAddress3Level.cs | 44 +++++++
.../readwrite/model/KnxGroupAddressFreeLevel.cs | 40 ++++++
.../src/knxnetip/readwrite/model/KnxNetIpCore.cs | 40 ++++++
.../readwrite/model/KnxNetIpDeviceManagement.cs | 40 ++++++
.../knxnetip/readwrite/model/KnxNetIpMessage.cs | 37 ++++++
.../knxnetip/readwrite/model/KnxNetIpTunneling.cs | 40 ++++++
.../knxnetip/readwrite/model/KnxNetObjectServer.cs | 40 ++++++
.../model/KnxNetRemoteConfigurationAndDiagnosis.cs | 40 ++++++
.../readwrite/model/KnxNetRemoteLogging.cs | 40 ++++++
.../src/knxnetip/readwrite/model/MACAddress.cs | 36 ++++++
.../model/ProjectInstallationIdentifier.cs | 38 ++++++
.../knxnetip/readwrite/model/RelativeTimestamp.cs | 36 ++++++
.../knxnetip/readwrite/model/RoutingIndication.cs | 36 ++++++
.../src/knxnetip/readwrite/model/SearchRequest.cs | 40 ++++++
.../src/knxnetip/readwrite/model/SearchResponse.cs | 44 +++++++
.../src/knxnetip/readwrite/model/ServiceId.cs | 34 ++++++
.../knxnetip/readwrite/model/TunnelingRequest.cs | 42 +++++++
.../readwrite/model/TunnelingRequestDataBlock.cs | 38 ++++++
.../knxnetip/readwrite/model/TunnelingResponse.cs | 40 ++++++
.../readwrite/model/TunnelingResponseDataBlock.cs | 40 ++++++
.../src/knxnetip/readwrite/model/UnknownMessage.cs | 40 ++++++
73 files changed, 3078 insertions(+), 1 deletion(-)
diff --git a/build-utils/language-cs/src/main/java/org/apache/plc4x/language/cs/CsLanguageOutput.java b/build-utils/language-cs/src/main/java/org/apache/plc4x/language/cs/CsLanguageOutput.java
index a71b4dd..9009615 100644
--- a/build-utils/language-cs/src/main/java/org/apache/plc4x/language/cs/CsLanguageOutput.java
+++ b/build-utils/language-cs/src/main/java/org/apache/plc4x/language/cs/CsLanguageOutput.java
@@ -50,7 +50,8 @@ public class CsLanguageOutput extends FreemarkerLanguageOutput {
@Override
protected List<Template> getComplexTypeTemplates(Configuration freemarkerConfiguration) throws IOException {
- return Collections.emptyList();
+ return Collections.singletonList(
+ freemarkerConfiguration.getTemplate("templates/cs/model-template.ftlh"));
}
@Override
diff --git a/build-utils/language-cs/src/main/resources/templates/cs/model-template.ftlh b/build-utils/language-cs/src/main/resources/templates/cs/model-template.ftlh
new file mode 100644
index 0000000..795a979
--- /dev/null
+++ b/build-utils/language-cs/src/main/resources/templates/cs/model-template.ftlh
@@ -0,0 +1,134 @@
+<#--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+-->
+<#-- Prevent freemarker from escaping stuff -->
+<#outputformat "undefined">
+<#-- Declare the name and type of variables passed in to the template -->
+<#-- @ftlvariable name="languageName" type="java.lang.String" -->
+<#-- @ftlvariable name="protocolName" type="java.lang.String" -->
+<#-- @ftlvariable name="outputFlavor" type="java.lang.String" -->
+<#-- @ftlvariable name="helper" type="org.apache.plc4x.language.cs.CsLanguageTemplateHelper" -->
+<#-- @ftlvariable name="type" type="org.apache.plc4x.plugins.codegenerator.types.definitions.ComplexTypeDefinition" -->
+<#-- Declare the name and type of variables declared locally inside the template -->
+<#-- @ftlvariable name="arrayField" type="org.apache.plc4x.plugins.codegenerator.types.fields.ArrayField" -->
+<#-- @ftlvariable name="checksumField" type="org.apache.plc4x.plugins.codegenerator.types.fields.ChecksumField" -->
+<#-- @ftlvariable name="constField" type="org.apache.plc4x.plugins.codegenerator.types.fields.ConstField" -->
+<#-- @ftlvariable name="discriminatorField" type="org.apache.plc4x.plugins.codegenerator.types.fields.DiscriminatorField" -->
+<#-- @ftlvariable name="enumField" type="org.apache.plc4x.plugins.codegenerator.types.fields.EnumField" -->
+<#-- @ftlvariable name="implicitField" type="org.apache.plc4x.plugins.codegenerator.types.fields.ImplicitField" -->
+<#-- @ftlvariable name="manualArrayField" type="org.apache.plc4x.plugins.codegenerator.types.fields.ManualArrayField" -->
+<#-- @ftlvariable name="manualField" type="org.apache.plc4x.plugins.codegenerator.types.fields.ManualField" -->
+<#-- @ftlvariable name="optionalField" type="org.apache.plc4x.plugins.codegenerator.types.fields.OptionalField" -->
+<#-- @ftlvariable name="paddingField" type="org.apache.plc4x.plugins.codegenerator.types.fields.PaddingField" -->
+<#-- @ftlvariable name="reservedField" type="org.apache.plc4x.plugins.codegenerator.types.fields.ReservedField" -->
+<#-- @ftlvariable name="simpleField" type="org.apache.plc4x.plugins.codegenerator.types.fields.SimpleField" -->
+<#-- @ftlvariable name="switchField" type="org.apache.plc4x.plugins.codegenerator.types.fields.SwitchField" -->
+<#-- @ftlvariable name="virtualField" type="org.apache.plc4x.plugins.codegenerator.types.fields.VirtualField" -->
+<#-- @ftlvariable name="simpleTypeReference" type="org.apache.plc4x.plugins.codegenerator.types.references.SimpleTypeReference" -->
+<#-- @ftlvariable name="complexTypeReference" type="org.apache.plc4x.plugins.codegenerator.types.references.ComplexTypeReference" -->
+${helper.fileName(protocolName, languageName, outputFlavor)?replace(".", "/")}/model/${type.name}.cs
+//
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+//
+
+namespace org.apache.plc4net.drivers.${protocolName?replace("-", "")}.${outputFlavor?replace("-", "")}.model
+{
+
+ public<#if helper.isDiscriminatedParentTypeDefinition()> abstract</#if> class ${type.name}<#if type.parentType??> : ${type.parentType.name}</#if>
+ {
+ <#--
+ If this is a discriminated child type, we need to generate methods for accessing it's discriminator
+ values, as if they were normal java properties.
+ -->
+ <#if helper.isDiscriminatedChildTypeDefinition()>
+ <#assign discriminatedChildType = type>
+
+ <#-- @ftlvariable name="discriminatedChildType" type="org.apache.plc4x.plugins.codegenerator.types.definitions.DiscriminatedComplexTypeDefinition" -->
+ // Accessors for discriminator values.
+ <#list helper.getDiscriminatorValues(discriminatedChildType) as discriminatorName, discriminatorValue>
+ <#-- If the discriminator name matches that of another field, suppress the methods generation -->
+ <#if !helper.isNonDiscriminatorField(discriminatorName)>
+ public override ${helper.getLanguageTypeNameForTypeReference(helper.getDiscriminatorTypes()[discriminatorName])} Get${discriminatorName?cap_first}() {
+ return <#if discriminatorValue??>${discriminatorValue}<#else>${helper.getNullValueForTypeReference(helper.getDiscriminatorTypes()[discriminatorName])}</#if>;
+ }
+ </#if>
+ </#list>
+ </#if>
+ <#--
+ If this is a discriminated parent type, we need to generate the abstract methods for accessing it's
+ discriminator values instead.
+ -->
+ <#if helper.isDiscriminatedParentTypeDefinition()>
+ <#assign discriminatedParentType = type>
+
+ <#-- @ftlvariable name="discriminatedParentType" type="org.apache.plc4x.plugins.codegenerator.types.definitions.ComplexTypeDefinition" -->
+ // Abstract accessors for discriminator values.
+ <#list helper.getDiscriminatorTypes() as discriminatorName, discriminatorType>
+ <#-- If the discriminator name matches that of another field, suppress the methods generation -->
+ <#if !helper.isNonDiscriminatorField(discriminatorName)>
+ public abstract ${helper.getLanguageTypeNameForTypeReference(discriminatorType)} Get${discriminatorName?cap_first}();
+ </#if>
+ </#list>
+ </#if>
+ <#-- If the current type contains "const" fields, generate some java constants for holing their values -->
+ <#if type.constFields?has_content>
+
+ // Constant values.
+ <#list type.constFields as field>
+ public const ${helper.getLanguageTypeNameForField(field)} ${field.name?upper_case} = ${field.referenceValue};
+ </#list>
+ </#if>
+ <#-- Prpoerty fields are fields that require a property in the pojo -->
+ <#if type.propertyFields?has_content>
+
+ // Properties.
+ <#list type.propertyFields as field>
+ public ${helper.getLanguageTypeNameForField(field)}<#if field.loopType??>[]</#if> ${field.name?cap_first} { get; }
+ </#list>
+ </#if>
+
+ <#-- getAllPropertyFields() returns not only the property fields of this type but also of it's parents -->
+ public ${type.name}(<#list type.getAllPropertyFields() as field>${helper.getLanguageTypeNameForField(field)}<#if field.loopType??>[]</#if> ${field.name}<#sep>, </#sep></#list>)
+ <#if type.getParentPropertyFields()?has_content>
+ : base(<#list type.getParentPropertyFields() as field>${field.name}<#sep>, </#sep></#list>)
+ </#if>
+ {
+ <#list type.propertyFields as field>
+ ${field.name?cap_first} = ${field.name};
+ </#list>
+ }
+
+ }
+
+}
+</#outputformat>
\ No newline at end of file
diff --git a/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/CEMI.cs b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/CEMI.cs
new file mode 100644
index 0000000..794eb23
--- /dev/null
+++ b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/CEMI.cs
@@ -0,0 +1,34 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+//
+
+namespace org.apache.plc4net.drivers.knxnetip.readwrite.model
+{
+
+ public abstract class CEMI
+ {
+ // Abstract accessors for discriminator values.
+ public abstract byte GetMessageCode();
+
+ public CEMI()
+ {
+ }
+
+ }
+
+}
diff --git a/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/CEMIAdditionalInformation.cs b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/CEMIAdditionalInformation.cs
new file mode 100644
index 0000000..e95ec38
--- /dev/null
+++ b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/CEMIAdditionalInformation.cs
@@ -0,0 +1,34 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+//
+
+namespace org.apache.plc4net.drivers.knxnetip.readwrite.model
+{
+
+ public abstract class CEMIAdditionalInformation
+ {
+ // Abstract accessors for discriminator values.
+ public abstract byte GetAdditionalInformationType();
+
+ public CEMIAdditionalInformation()
+ {
+ }
+
+ }
+
+}
diff --git a/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/CEMIAdditionalInformationBusmonitorInfo.cs b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/CEMIAdditionalInformationBusmonitorInfo.cs
new file mode 100644
index 0000000..e028087
--- /dev/null
+++ b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/CEMIAdditionalInformationBusmonitorInfo.cs
@@ -0,0 +1,53 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+//
+
+namespace org.apache.plc4net.drivers.knxnetip.readwrite.model
+{
+
+ public class CEMIAdditionalInformationBusmonitorInfo : CEMIAdditionalInformation
+ {
+ // Accessors for discriminator values.
+ public override byte GetAdditionalInformationType() {
+ return 0x03;
+ }
+
+ // Constant values.
+ public const byte LEN = 1;
+
+ // Properties.
+ public bool FrameErrorFlag { get; }
+ public bool BitErrorFlag { get; }
+ public bool ParityErrorFlag { get; }
+ public bool UnknownFlag { get; }
+ public bool LostFlag { get; }
+ public byte SequenceNumber { get; }
+
+ public CEMIAdditionalInformationBusmonitorInfo(bool frameErrorFlag, bool bitErrorFlag, bool parityErrorFlag, bool unknownFlag, bool lostFlag, byte sequenceNumber)
+ {
+ FrameErrorFlag = frameErrorFlag;
+ BitErrorFlag = bitErrorFlag;
+ ParityErrorFlag = parityErrorFlag;
+ UnknownFlag = unknownFlag;
+ LostFlag = lostFlag;
+ SequenceNumber = sequenceNumber;
+ }
+
+ }
+
+}
diff --git a/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/CEMIAdditionalInformationRelativeTimestamp.cs b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/CEMIAdditionalInformationRelativeTimestamp.cs
new file mode 100644
index 0000000..cbbb160
--- /dev/null
+++ b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/CEMIAdditionalInformationRelativeTimestamp.cs
@@ -0,0 +1,43 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+//
+
+namespace org.apache.plc4net.drivers.knxnetip.readwrite.model
+{
+
+ public class CEMIAdditionalInformationRelativeTimestamp : CEMIAdditionalInformation
+ {
+ // Accessors for discriminator values.
+ public override byte GetAdditionalInformationType() {
+ return 0x04;
+ }
+
+ // Constant values.
+ public const byte LEN = 2;
+
+ // Properties.
+ public RelativeTimestamp RelativeTimestamp { get; }
+
+ public CEMIAdditionalInformationRelativeTimestamp(RelativeTimestamp relativeTimestamp)
+ {
+ RelativeTimestamp = relativeTimestamp;
+ }
+
+ }
+
+}
diff --git a/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/CEMIBusmonInd.cs b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/CEMIBusmonInd.cs
new file mode 100644
index 0000000..fb5252d
--- /dev/null
+++ b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/CEMIBusmonInd.cs
@@ -0,0 +1,44 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+//
+
+namespace org.apache.plc4net.drivers.knxnetip.readwrite.model
+{
+
+ public class CEMIBusmonInd : CEMI
+ {
+ // Accessors for discriminator values.
+ public override byte GetMessageCode() {
+ return 0x2B;
+ }
+
+ // Properties.
+ public byte AdditionalInformationLength { get; }
+ public CEMIAdditionalInformation[] AdditionalInformation { get; }
+ public CEMIFrame CemiFrame { get; }
+
+ public CEMIBusmonInd(byte additionalInformationLength, CEMIAdditionalInformation[] additionalInformation, CEMIFrame cemiFrame)
+ {
+ AdditionalInformationLength = additionalInformationLength;
+ AdditionalInformation = additionalInformation;
+ CemiFrame = cemiFrame;
+ }
+
+ }
+
+}
diff --git a/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/CEMIDataCon.cs b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/CEMIDataCon.cs
new file mode 100644
index 0000000..061c2f7
--- /dev/null
+++ b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/CEMIDataCon.cs
@@ -0,0 +1,44 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+//
+
+namespace org.apache.plc4net.drivers.knxnetip.readwrite.model
+{
+
+ public class CEMIDataCon : CEMI
+ {
+ // Accessors for discriminator values.
+ public override byte GetMessageCode() {
+ return 0x2E;
+ }
+
+ // Properties.
+ public byte AdditionalInformationLength { get; }
+ public CEMIAdditionalInformation[] AdditionalInformation { get; }
+ public CEMIDataFrame CemiDataFrame { get; }
+
+ public CEMIDataCon(byte additionalInformationLength, CEMIAdditionalInformation[] additionalInformation, CEMIDataFrame cemiDataFrame)
+ {
+ AdditionalInformationLength = additionalInformationLength;
+ AdditionalInformation = additionalInformation;
+ CemiDataFrame = cemiDataFrame;
+ }
+
+ }
+
+}
diff --git a/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/CEMIDataFrame.cs b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/CEMIDataFrame.cs
new file mode 100644
index 0000000..a252fd8
--- /dev/null
+++ b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/CEMIDataFrame.cs
@@ -0,0 +1,70 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+//
+
+namespace org.apache.plc4net.drivers.knxnetip.readwrite.model
+{
+
+ public class CEMIDataFrame
+ {
+
+ // Properties.
+ public bool StandardFrame { get; }
+ public bool Polling { get; }
+ public bool NotRepeated { get; }
+ public bool NotAckFrame { get; }
+ public CEMIPriority Priority { get; }
+ public bool AcknowledgeRequested { get; }
+ public bool ErrorFlag { get; }
+ public bool GroupDestinationAddress { get; }
+ public byte HopCount { get; }
+ public byte ExtendedFrameFormat { get; }
+ public KnxAddress SourceAddress { get; }
+ public sbyte[] DestinationAddress { get; }
+ public byte DataLength { get; }
+ public TPCI Tcpi { get; }
+ public byte Counter { get; }
+ public APCI Apci { get; }
+ public sbyte DataFirstByte { get; }
+ public sbyte[] Data { get; }
+
+ public CEMIDataFrame(bool standardFrame, bool polling, bool notRepeated, bool notAckFrame, CEMIPriority priority, bool acknowledgeRequested, bool errorFlag, bool groupDestinationAddress, byte hopCount, byte extendedFrameFormat, KnxAddress sourceAddress, sbyte[] destinationAddress, byte dataLength, TPCI tcpi, byte counter, APCI apci, sbyte dataFirstByte, sbyte[] data)
+ {
+ StandardFrame = standardFrame;
+ Polling = polling;
+ NotRepeated = notRepeated;
+ NotAckFrame = notAckFrame;
+ Priority = priority;
+ AcknowledgeRequested = acknowledgeRequested;
+ ErrorFlag = errorFlag;
+ GroupDestinationAddress = groupDestinationAddress;
+ HopCount = hopCount;
+ ExtendedFrameFormat = extendedFrameFormat;
+ SourceAddress = sourceAddress;
+ DestinationAddress = destinationAddress;
+ DataLength = dataLength;
+ Tcpi = tcpi;
+ Counter = counter;
+ Apci = apci;
+ DataFirstByte = dataFirstByte;
+ Data = data;
+ }
+
+ }
+
+}
diff --git a/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/CEMIDataInd.cs b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/CEMIDataInd.cs
new file mode 100644
index 0000000..694131f
--- /dev/null
+++ b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/CEMIDataInd.cs
@@ -0,0 +1,44 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+//
+
+namespace org.apache.plc4net.drivers.knxnetip.readwrite.model
+{
+
+ public class CEMIDataInd : CEMI
+ {
+ // Accessors for discriminator values.
+ public override byte GetMessageCode() {
+ return 0x29;
+ }
+
+ // Properties.
+ public byte AdditionalInformationLength { get; }
+ public CEMIAdditionalInformation[] AdditionalInformation { get; }
+ public CEMIDataFrame CemiDataFrame { get; }
+
+ public CEMIDataInd(byte additionalInformationLength, CEMIAdditionalInformation[] additionalInformation, CEMIDataFrame cemiDataFrame)
+ {
+ AdditionalInformationLength = additionalInformationLength;
+ AdditionalInformation = additionalInformation;
+ CemiDataFrame = cemiDataFrame;
+ }
+
+ }
+
+}
diff --git a/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/CEMIDataReq.cs b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/CEMIDataReq.cs
new file mode 100644
index 0000000..39b3215
--- /dev/null
+++ b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/CEMIDataReq.cs
@@ -0,0 +1,44 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+//
+
+namespace org.apache.plc4net.drivers.knxnetip.readwrite.model
+{
+
+ public class CEMIDataReq : CEMI
+ {
+ // Accessors for discriminator values.
+ public override byte GetMessageCode() {
+ return 0x11;
+ }
+
+ // Properties.
+ public byte AdditionalInformationLength { get; }
+ public CEMIAdditionalInformation[] AdditionalInformation { get; }
+ public CEMIDataFrame CemiDataFrame { get; }
+
+ public CEMIDataReq(byte additionalInformationLength, CEMIAdditionalInformation[] additionalInformation, CEMIDataFrame cemiDataFrame)
+ {
+ AdditionalInformationLength = additionalInformationLength;
+ AdditionalInformation = additionalInformation;
+ CemiDataFrame = cemiDataFrame;
+ }
+
+ }
+
+}
diff --git a/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/CEMIFrame.cs b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/CEMIFrame.cs
new file mode 100644
index 0000000..ec0cbfd
--- /dev/null
+++ b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/CEMIFrame.cs
@@ -0,0 +1,46 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+//
+
+namespace org.apache.plc4net.drivers.knxnetip.readwrite.model
+{
+
+ public abstract class CEMIFrame
+ {
+ // Abstract accessors for discriminator values.
+ public abstract bool GetNotAckFrame();
+ public abstract bool GetPolling();
+ public abstract bool GetStandardFrame();
+
+ // Properties.
+ public bool Repeated { get; }
+ public CEMIPriority Priority { get; }
+ public bool AcknowledgeRequested { get; }
+ public bool ErrorFlag { get; }
+
+ public CEMIFrame(bool repeated, CEMIPriority priority, bool acknowledgeRequested, bool errorFlag)
+ {
+ Repeated = repeated;
+ Priority = priority;
+ AcknowledgeRequested = acknowledgeRequested;
+ ErrorFlag = errorFlag;
+ }
+
+ }
+
+}
diff --git a/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/CEMIFrameAck.cs b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/CEMIFrameAck.cs
new file mode 100644
index 0000000..f519c6d
--- /dev/null
+++ b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/CEMIFrameAck.cs
@@ -0,0 +1,43 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+//
+
+namespace org.apache.plc4net.drivers.knxnetip.readwrite.model
+{
+
+ public class CEMIFrameAck : CEMIFrame
+ {
+ // Accessors for discriminator values.
+ public override bool GetNotAckFrame() {
+ return false;
+ }
+ public override bool GetStandardFrame() {
+ return false;
+ }
+ public override bool GetPolling() {
+ return false;
+ }
+
+ public CEMIFrameAck(bool repeated, CEMIPriority priority, bool acknowledgeRequested, bool errorFlag)
+ : base(repeated, priority, acknowledgeRequested, errorFlag)
+ {
+ }
+
+ }
+
+}
diff --git a/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/CEMIFrameData.cs b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/CEMIFrameData.cs
new file mode 100644
index 0000000..1510b3e
--- /dev/null
+++ b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/CEMIFrameData.cs
@@ -0,0 +1,67 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+//
+
+namespace org.apache.plc4net.drivers.knxnetip.readwrite.model
+{
+
+ public class CEMIFrameData : CEMIFrame
+ {
+ // Accessors for discriminator values.
+ public override bool GetNotAckFrame() {
+ return true;
+ }
+ public override bool GetStandardFrame() {
+ return true;
+ }
+ public override bool GetPolling() {
+ return false;
+ }
+
+ // Properties.
+ public KnxAddress SourceAddress { get; }
+ public sbyte[] DestinationAddress { get; }
+ public bool GroupAddress { get; }
+ public byte HopCount { get; }
+ public byte DataLength { get; }
+ public TPCI Tcpi { get; }
+ public byte Counter { get; }
+ public APCI Apci { get; }
+ public sbyte DataFirstByte { get; }
+ public sbyte[] Data { get; }
+ public byte Crc { get; }
+
+ public CEMIFrameData(bool repeated, CEMIPriority priority, bool acknowledgeRequested, bool errorFlag, KnxAddress sourceAddress, sbyte[] destinationAddress, bool groupAddress, byte hopCount, byte dataLength, TPCI tcpi, byte counter, APCI apci, sbyte dataFirstByte, sbyte[] data, byte crc)
+ : base(repeated, priority, acknowledgeRequested, errorFlag)
+ {
+ SourceAddress = sourceAddress;
+ DestinationAddress = destinationAddress;
+ GroupAddress = groupAddress;
+ HopCount = hopCount;
+ DataLength = dataLength;
+ Tcpi = tcpi;
+ Counter = counter;
+ Apci = apci;
+ DataFirstByte = dataFirstByte;
+ Data = data;
+ Crc = crc;
+ }
+
+ }
+
+}
diff --git a/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/CEMIFrameDataExt.cs b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/CEMIFrameDataExt.cs
new file mode 100644
index 0000000..539f224
--- /dev/null
+++ b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/CEMIFrameDataExt.cs
@@ -0,0 +1,69 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+//
+
+namespace org.apache.plc4net.drivers.knxnetip.readwrite.model
+{
+
+ public class CEMIFrameDataExt : CEMIFrame
+ {
+ // Accessors for discriminator values.
+ public override bool GetNotAckFrame() {
+ return true;
+ }
+ public override bool GetStandardFrame() {
+ return false;
+ }
+ public override bool GetPolling() {
+ return false;
+ }
+
+ // Properties.
+ public bool GroupAddress { get; }
+ public byte HopCount { get; }
+ public byte ExtendedFrameFormat { get; }
+ public KnxAddress SourceAddress { get; }
+ public sbyte[] DestinationAddress { get; }
+ public byte DataLength { get; }
+ public TPCI Tcpi { get; }
+ public byte Counter { get; }
+ public APCI Apci { get; }
+ public sbyte DataFirstByte { get; }
+ public sbyte[] Data { get; }
+ public byte Crc { get; }
+
+ public CEMIFrameDataExt(bool repeated, CEMIPriority priority, bool acknowledgeRequested, bool errorFlag, bool groupAddress, byte hopCount, byte extendedFrameFormat, KnxAddress sourceAddress, sbyte[] destinationAddress, byte dataLength, TPCI tcpi, byte counter, APCI apci, sbyte dataFirstByte, sbyte[] data, byte crc)
+ : base(repeated, priority, acknowledgeRequested, errorFlag)
+ {
+ GroupAddress = groupAddress;
+ HopCount = hopCount;
+ ExtendedFrameFormat = extendedFrameFormat;
+ SourceAddress = sourceAddress;
+ DestinationAddress = destinationAddress;
+ DataLength = dataLength;
+ Tcpi = tcpi;
+ Counter = counter;
+ Apci = apci;
+ DataFirstByte = dataFirstByte;
+ Data = data;
+ Crc = crc;
+ }
+
+ }
+
+}
diff --git a/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/CEMIFramePollingData.cs b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/CEMIFramePollingData.cs
new file mode 100644
index 0000000..3506ff7
--- /dev/null
+++ b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/CEMIFramePollingData.cs
@@ -0,0 +1,43 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+//
+
+namespace org.apache.plc4net.drivers.knxnetip.readwrite.model
+{
+
+ public class CEMIFramePollingData : CEMIFrame
+ {
+ // Accessors for discriminator values.
+ public override bool GetNotAckFrame() {
+ return true;
+ }
+ public override bool GetStandardFrame() {
+ return true;
+ }
+ public override bool GetPolling() {
+ return true;
+ }
+
+ public CEMIFramePollingData(bool repeated, CEMIPriority priority, bool acknowledgeRequested, bool errorFlag)
+ : base(repeated, priority, acknowledgeRequested, errorFlag)
+ {
+ }
+
+ }
+
+}
diff --git a/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/CEMIFramePollingDataExt.cs b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/CEMIFramePollingDataExt.cs
new file mode 100644
index 0000000..c80a567
--- /dev/null
+++ b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/CEMIFramePollingDataExt.cs
@@ -0,0 +1,43 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+//
+
+namespace org.apache.plc4net.drivers.knxnetip.readwrite.model
+{
+
+ public class CEMIFramePollingDataExt : CEMIFrame
+ {
+ // Accessors for discriminator values.
+ public override bool GetNotAckFrame() {
+ return true;
+ }
+ public override bool GetStandardFrame() {
+ return false;
+ }
+ public override bool GetPolling() {
+ return true;
+ }
+
+ public CEMIFramePollingDataExt(bool repeated, CEMIPriority priority, bool acknowledgeRequested, bool errorFlag)
+ : base(repeated, priority, acknowledgeRequested, errorFlag)
+ {
+ }
+
+ }
+
+}
diff --git a/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/CEMIMPropReadCon.cs b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/CEMIMPropReadCon.cs
new file mode 100644
index 0000000..213b265
--- /dev/null
+++ b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/CEMIMPropReadCon.cs
@@ -0,0 +1,50 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+//
+
+namespace org.apache.plc4net.drivers.knxnetip.readwrite.model
+{
+
+ public class CEMIMPropReadCon : CEMI
+ {
+ // Accessors for discriminator values.
+ public override byte GetMessageCode() {
+ return 0xFB;
+ }
+
+ // Properties.
+ public ushort InterfaceObjectType { get; }
+ public byte ObjectInstance { get; }
+ public byte PropertyId { get; }
+ public byte NumberOfElements { get; }
+ public ushort StartIndex { get; }
+ public ushort Unknown { get; }
+
+ public CEMIMPropReadCon(ushort interfaceObjectType, byte objectInstance, byte propertyId, byte numberOfElements, ushort startIndex, ushort unknown)
+ {
+ InterfaceObjectType = interfaceObjectType;
+ ObjectInstance = objectInstance;
+ PropertyId = propertyId;
+ NumberOfElements = numberOfElements;
+ StartIndex = startIndex;
+ Unknown = unknown;
+ }
+
+ }
+
+}
diff --git a/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/CEMIMPropReadReq.cs b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/CEMIMPropReadReq.cs
new file mode 100644
index 0000000..eed16e5
--- /dev/null
+++ b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/CEMIMPropReadReq.cs
@@ -0,0 +1,48 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+//
+
+namespace org.apache.plc4net.drivers.knxnetip.readwrite.model
+{
+
+ public class CEMIMPropReadReq : CEMI
+ {
+ // Accessors for discriminator values.
+ public override byte GetMessageCode() {
+ return 0xFC;
+ }
+
+ // Properties.
+ public ushort InterfaceObjectType { get; }
+ public byte ObjectInstance { get; }
+ public byte PropertyId { get; }
+ public byte NumberOfElements { get; }
+ public ushort StartIndex { get; }
+
+ public CEMIMPropReadReq(ushort interfaceObjectType, byte objectInstance, byte propertyId, byte numberOfElements, ushort startIndex)
+ {
+ InterfaceObjectType = interfaceObjectType;
+ ObjectInstance = objectInstance;
+ PropertyId = propertyId;
+ NumberOfElements = numberOfElements;
+ StartIndex = startIndex;
+ }
+
+ }
+
+}
diff --git a/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/CEMIPollDataCon.cs b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/CEMIPollDataCon.cs
new file mode 100644
index 0000000..37d1f22
--- /dev/null
+++ b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/CEMIPollDataCon.cs
@@ -0,0 +1,36 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+//
+
+namespace org.apache.plc4net.drivers.knxnetip.readwrite.model
+{
+
+ public class CEMIPollDataCon : CEMI
+ {
+ // Accessors for discriminator values.
+ public override byte GetMessageCode() {
+ return 0x25;
+ }
+
+ public CEMIPollDataCon()
+ {
+ }
+
+ }
+
+}
diff --git a/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/CEMIPollDataReq.cs b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/CEMIPollDataReq.cs
new file mode 100644
index 0000000..dec3e84
--- /dev/null
+++ b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/CEMIPollDataReq.cs
@@ -0,0 +1,36 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+//
+
+namespace org.apache.plc4net.drivers.knxnetip.readwrite.model
+{
+
+ public class CEMIPollDataReq : CEMI
+ {
+ // Accessors for discriminator values.
+ public override byte GetMessageCode() {
+ return 0x13;
+ }
+
+ public CEMIPollDataReq()
+ {
+ }
+
+ }
+
+}
diff --git a/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/CEMIRawCon.cs b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/CEMIRawCon.cs
new file mode 100644
index 0000000..f3e69f1
--- /dev/null
+++ b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/CEMIRawCon.cs
@@ -0,0 +1,36 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+//
+
+namespace org.apache.plc4net.drivers.knxnetip.readwrite.model
+{
+
+ public class CEMIRawCon : CEMI
+ {
+ // Accessors for discriminator values.
+ public override byte GetMessageCode() {
+ return 0x2F;
+ }
+
+ public CEMIRawCon()
+ {
+ }
+
+ }
+
+}
diff --git a/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/CEMIRawInd.cs b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/CEMIRawInd.cs
new file mode 100644
index 0000000..9e5cf00
--- /dev/null
+++ b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/CEMIRawInd.cs
@@ -0,0 +1,36 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+//
+
+namespace org.apache.plc4net.drivers.knxnetip.readwrite.model
+{
+
+ public class CEMIRawInd : CEMI
+ {
+ // Accessors for discriminator values.
+ public override byte GetMessageCode() {
+ return 0x2D;
+ }
+
+ public CEMIRawInd()
+ {
+ }
+
+ }
+
+}
diff --git a/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/CEMIRawReq.cs b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/CEMIRawReq.cs
new file mode 100644
index 0000000..0d6a8b1
--- /dev/null
+++ b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/CEMIRawReq.cs
@@ -0,0 +1,36 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+//
+
+namespace org.apache.plc4net.drivers.knxnetip.readwrite.model
+{
+
+ public class CEMIRawReq : CEMI
+ {
+ // Accessors for discriminator values.
+ public override byte GetMessageCode() {
+ return 0x10;
+ }
+
+ public CEMIRawReq()
+ {
+ }
+
+ }
+
+}
diff --git a/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/ConnectionRequest.cs b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/ConnectionRequest.cs
new file mode 100644
index 0000000..e4d73b4
--- /dev/null
+++ b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/ConnectionRequest.cs
@@ -0,0 +1,44 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+//
+
+namespace org.apache.plc4net.drivers.knxnetip.readwrite.model
+{
+
+ public class ConnectionRequest : KnxNetIpMessage
+ {
+ // Accessors for discriminator values.
+ public override ushort GetMsgType() {
+ return 0x0205;
+ }
+
+ // Properties.
+ public HPAIDiscoveryEndpoint HpaiDiscoveryEndpoint { get; }
+ public HPAIDataEndpoint HpaiDataEndpoint { get; }
+ public ConnectionRequestInformation ConnectionRequestInformation { get; }
+
+ public ConnectionRequest(HPAIDiscoveryEndpoint hpaiDiscoveryEndpoint, HPAIDataEndpoint hpaiDataEndpoint, ConnectionRequestInformation connectionRequestInformation)
+ {
+ HpaiDiscoveryEndpoint = hpaiDiscoveryEndpoint;
+ HpaiDataEndpoint = hpaiDataEndpoint;
+ ConnectionRequestInformation = connectionRequestInformation;
+ }
+
+ }
+
+}
diff --git a/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/ConnectionRequestInformation.cs b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/ConnectionRequestInformation.cs
new file mode 100644
index 0000000..f01a300
--- /dev/null
+++ b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/ConnectionRequestInformation.cs
@@ -0,0 +1,34 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+//
+
+namespace org.apache.plc4net.drivers.knxnetip.readwrite.model
+{
+
+ public abstract class ConnectionRequestInformation
+ {
+ // Abstract accessors for discriminator values.
+ public abstract byte GetConnectionType();
+
+ public ConnectionRequestInformation()
+ {
+ }
+
+ }
+
+}
diff --git a/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/ConnectionRequestInformationDeviceManagement.cs b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/ConnectionRequestInformationDeviceManagement.cs
new file mode 100644
index 0000000..3786528
--- /dev/null
+++ b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/ConnectionRequestInformationDeviceManagement.cs
@@ -0,0 +1,36 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+//
+
+namespace org.apache.plc4net.drivers.knxnetip.readwrite.model
+{
+
+ public class ConnectionRequestInformationDeviceManagement : ConnectionRequestInformation
+ {
+ // Accessors for discriminator values.
+ public override byte GetConnectionType() {
+ return 0x03;
+ }
+
+ public ConnectionRequestInformationDeviceManagement()
+ {
+ }
+
+ }
+
+}
diff --git a/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/ConnectionRequestInformationTunnelConnection.cs b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/ConnectionRequestInformationTunnelConnection.cs
new file mode 100644
index 0000000..a2c3c7a
--- /dev/null
+++ b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/ConnectionRequestInformationTunnelConnection.cs
@@ -0,0 +1,40 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+//
+
+namespace org.apache.plc4net.drivers.knxnetip.readwrite.model
+{
+
+ public class ConnectionRequestInformationTunnelConnection : ConnectionRequestInformation
+ {
+ // Accessors for discriminator values.
+ public override byte GetConnectionType() {
+ return 0x04;
+ }
+
+ // Properties.
+ public KnxLayer KnxLayer { get; }
+
+ public ConnectionRequestInformationTunnelConnection(KnxLayer knxLayer)
+ {
+ KnxLayer = knxLayer;
+ }
+
+ }
+
+}
diff --git a/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/ConnectionResponse.cs b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/ConnectionResponse.cs
new file mode 100644
index 0000000..250381a
--- /dev/null
+++ b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/ConnectionResponse.cs
@@ -0,0 +1,46 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+//
+
+namespace org.apache.plc4net.drivers.knxnetip.readwrite.model
+{
+
+ public class ConnectionResponse : KnxNetIpMessage
+ {
+ // Accessors for discriminator values.
+ public override ushort GetMsgType() {
+ return 0x0206;
+ }
+
+ // Properties.
+ public byte CommunicationChannelId { get; }
+ public Status Status { get; }
+ public HPAIDataEndpoint HpaiDataEndpoint { get; }
+ public ConnectionResponseDataBlock ConnectionResponseDataBlock { get; }
+
+ public ConnectionResponse(byte communicationChannelId, Status status, HPAIDataEndpoint hpaiDataEndpoint, ConnectionResponseDataBlock connectionResponseDataBlock)
+ {
+ CommunicationChannelId = communicationChannelId;
+ Status = status;
+ HpaiDataEndpoint = hpaiDataEndpoint;
+ ConnectionResponseDataBlock = connectionResponseDataBlock;
+ }
+
+ }
+
+}
diff --git a/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/ConnectionResponseDataBlock.cs b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/ConnectionResponseDataBlock.cs
new file mode 100644
index 0000000..d01c6f7
--- /dev/null
+++ b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/ConnectionResponseDataBlock.cs
@@ -0,0 +1,34 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+//
+
+namespace org.apache.plc4net.drivers.knxnetip.readwrite.model
+{
+
+ public abstract class ConnectionResponseDataBlock
+ {
+ // Abstract accessors for discriminator values.
+ public abstract byte GetConnectionType();
+
+ public ConnectionResponseDataBlock()
+ {
+ }
+
+ }
+
+}
diff --git a/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/ConnectionResponseDataBlockDeviceManagement.cs b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/ConnectionResponseDataBlockDeviceManagement.cs
new file mode 100644
index 0000000..dca298f
--- /dev/null
+++ b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/ConnectionResponseDataBlockDeviceManagement.cs
@@ -0,0 +1,36 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+//
+
+namespace org.apache.plc4net.drivers.knxnetip.readwrite.model
+{
+
+ public class ConnectionResponseDataBlockDeviceManagement : ConnectionResponseDataBlock
+ {
+ // Accessors for discriminator values.
+ public override byte GetConnectionType() {
+ return 0x03;
+ }
+
+ public ConnectionResponseDataBlockDeviceManagement()
+ {
+ }
+
+ }
+
+}
diff --git a/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/ConnectionResponseDataBlockTunnelConnection.cs b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/ConnectionResponseDataBlockTunnelConnection.cs
new file mode 100644
index 0000000..a45fda7
--- /dev/null
+++ b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/ConnectionResponseDataBlockTunnelConnection.cs
@@ -0,0 +1,40 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+//
+
+namespace org.apache.plc4net.drivers.knxnetip.readwrite.model
+{
+
+ public class ConnectionResponseDataBlockTunnelConnection : ConnectionResponseDataBlock
+ {
+ // Accessors for discriminator values.
+ public override byte GetConnectionType() {
+ return 0x04;
+ }
+
+ // Properties.
+ public KnxAddress KnxAddress { get; }
+
+ public ConnectionResponseDataBlockTunnelConnection(KnxAddress knxAddress)
+ {
+ KnxAddress = knxAddress;
+ }
+
+ }
+
+}
diff --git a/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/ConnectionStateRequest.cs b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/ConnectionStateRequest.cs
new file mode 100644
index 0000000..b6636d7
--- /dev/null
+++ b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/ConnectionStateRequest.cs
@@ -0,0 +1,42 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+//
+
+namespace org.apache.plc4net.drivers.knxnetip.readwrite.model
+{
+
+ public class ConnectionStateRequest : KnxNetIpMessage
+ {
+ // Accessors for discriminator values.
+ public override ushort GetMsgType() {
+ return 0x0207;
+ }
+
+ // Properties.
+ public byte CommunicationChannelId { get; }
+ public HPAIControlEndpoint HpaiControlEndpoint { get; }
+
+ public ConnectionStateRequest(byte communicationChannelId, HPAIControlEndpoint hpaiControlEndpoint)
+ {
+ CommunicationChannelId = communicationChannelId;
+ HpaiControlEndpoint = hpaiControlEndpoint;
+ }
+
+ }
+
+}
diff --git a/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/ConnectionStateResponse.cs b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/ConnectionStateResponse.cs
new file mode 100644
index 0000000..0d98468
--- /dev/null
+++ b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/ConnectionStateResponse.cs
@@ -0,0 +1,42 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+//
+
+namespace org.apache.plc4net.drivers.knxnetip.readwrite.model
+{
+
+ public class ConnectionStateResponse : KnxNetIpMessage
+ {
+ // Accessors for discriminator values.
+ public override ushort GetMsgType() {
+ return 0x0208;
+ }
+
+ // Properties.
+ public byte CommunicationChannelId { get; }
+ public Status Status { get; }
+
+ public ConnectionStateResponse(byte communicationChannelId, Status status)
+ {
+ CommunicationChannelId = communicationChannelId;
+ Status = status;
+ }
+
+ }
+
+}
diff --git a/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/DIBDeviceInfo.cs b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/DIBDeviceInfo.cs
new file mode 100644
index 0000000..1ffeac0
--- /dev/null
+++ b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/DIBDeviceInfo.cs
@@ -0,0 +1,52 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+//
+
+namespace org.apache.plc4net.drivers.knxnetip.readwrite.model
+{
+
+ public class DIBDeviceInfo
+ {
+
+ // Properties.
+ public byte DescriptionType { get; }
+ public KnxMedium KnxMedium { get; }
+ public DeviceStatus DeviceStatus { get; }
+ public KnxAddress KnxAddress { get; }
+ public ProjectInstallationIdentifier ProjectInstallationIdentifier { get; }
+ public sbyte[] KnxNetIpDeviceSerialNumber { get; }
+ public IPAddress KnxNetIpDeviceMulticastAddress { get; }
+ public MACAddress KnxNetIpDeviceMacAddress { get; }
+ public sbyte[] DeviceFriendlyName { get; }
+
+ public DIBDeviceInfo(byte descriptionType, KnxMedium knxMedium, DeviceStatus deviceStatus, KnxAddress knxAddress, ProjectInstallationIdentifier projectInstallationIdentifier, sbyte[] knxNetIpDeviceSerialNumber, IPAddress knxNetIpDeviceMulticastAddress, MACAddress knxNetIpDeviceMacAddress, sbyte[] deviceFriendlyName)
+ {
+ DescriptionType = descriptionType;
+ KnxMedium = knxMedium;
+ DeviceStatus = deviceStatus;
+ KnxAddress = knxAddress;
+ ProjectInstallationIdentifier = projectInstallationIdentifier;
+ KnxNetIpDeviceSerialNumber = knxNetIpDeviceSerialNumber;
+ KnxNetIpDeviceMulticastAddress = knxNetIpDeviceMulticastAddress;
+ KnxNetIpDeviceMacAddress = knxNetIpDeviceMacAddress;
+ DeviceFriendlyName = deviceFriendlyName;
+ }
+
+ }
+
+}
diff --git a/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/DIBSuppSvcFamilies.cs b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/DIBSuppSvcFamilies.cs
new file mode 100644
index 0000000..f1a8549
--- /dev/null
+++ b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/DIBSuppSvcFamilies.cs
@@ -0,0 +1,38 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+//
+
+namespace org.apache.plc4net.drivers.knxnetip.readwrite.model
+{
+
+ public class DIBSuppSvcFamilies
+ {
+
+ // Properties.
+ public byte DescriptionType { get; }
+ public ServiceId[] ServiceIds { get; }
+
+ public DIBSuppSvcFamilies(byte descriptionType, ServiceId[] serviceIds)
+ {
+ DescriptionType = descriptionType;
+ ServiceIds = serviceIds;
+ }
+
+ }
+
+}
diff --git a/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/DescriptionRequest.cs b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/DescriptionRequest.cs
new file mode 100644
index 0000000..7d4b62d
--- /dev/null
+++ b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/DescriptionRequest.cs
@@ -0,0 +1,40 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+//
+
+namespace org.apache.plc4net.drivers.knxnetip.readwrite.model
+{
+
+ public class DescriptionRequest : KnxNetIpMessage
+ {
+ // Accessors for discriminator values.
+ public override ushort GetMsgType() {
+ return 0x0203;
+ }
+
+ // Properties.
+ public HPAIControlEndpoint HpaiControlEndpoint { get; }
+
+ public DescriptionRequest(HPAIControlEndpoint hpaiControlEndpoint)
+ {
+ HpaiControlEndpoint = hpaiControlEndpoint;
+ }
+
+ }
+
+}
diff --git a/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/DescriptionResponse.cs b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/DescriptionResponse.cs
new file mode 100644
index 0000000..f34c1b3
--- /dev/null
+++ b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/DescriptionResponse.cs
@@ -0,0 +1,42 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+//
+
+namespace org.apache.plc4net.drivers.knxnetip.readwrite.model
+{
+
+ public class DescriptionResponse : KnxNetIpMessage
+ {
+ // Accessors for discriminator values.
+ public override ushort GetMsgType() {
+ return 0x0204;
+ }
+
+ // Properties.
+ public DIBDeviceInfo DibDeviceInfo { get; }
+ public DIBSuppSvcFamilies DibSuppSvcFamilies { get; }
+
+ public DescriptionResponse(DIBDeviceInfo dibDeviceInfo, DIBSuppSvcFamilies dibSuppSvcFamilies)
+ {
+ DibDeviceInfo = dibDeviceInfo;
+ DibSuppSvcFamilies = dibSuppSvcFamilies;
+ }
+
+ }
+
+}
diff --git a/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/DeviceConfigurationAck.cs b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/DeviceConfigurationAck.cs
new file mode 100644
index 0000000..f68c071
--- /dev/null
+++ b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/DeviceConfigurationAck.cs
@@ -0,0 +1,40 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+//
+
+namespace org.apache.plc4net.drivers.knxnetip.readwrite.model
+{
+
+ public class DeviceConfigurationAck : KnxNetIpMessage
+ {
+ // Accessors for discriminator values.
+ public override ushort GetMsgType() {
+ return 0x0311;
+ }
+
+ // Properties.
+ public DeviceConfigurationAckDataBlock DeviceConfigurationAckDataBlock { get; }
+
+ public DeviceConfigurationAck(DeviceConfigurationAckDataBlock deviceConfigurationAckDataBlock)
+ {
+ DeviceConfigurationAckDataBlock = deviceConfigurationAckDataBlock;
+ }
+
+ }
+
+}
diff --git a/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/DeviceConfigurationAckDataBlock.cs b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/DeviceConfigurationAckDataBlock.cs
new file mode 100644
index 0000000..749b756
--- /dev/null
+++ b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/DeviceConfigurationAckDataBlock.cs
@@ -0,0 +1,40 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+//
+
+namespace org.apache.plc4net.drivers.knxnetip.readwrite.model
+{
+
+ public class DeviceConfigurationAckDataBlock
+ {
+
+ // Properties.
+ public byte CommunicationChannelId { get; }
+ public byte SequenceCounter { get; }
+ public Status Status { get; }
+
+ public DeviceConfigurationAckDataBlock(byte communicationChannelId, byte sequenceCounter, Status status)
+ {
+ CommunicationChannelId = communicationChannelId;
+ SequenceCounter = sequenceCounter;
+ Status = status;
+ }
+
+ }
+
+}
diff --git a/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/DeviceConfigurationRequest.cs b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/DeviceConfigurationRequest.cs
new file mode 100644
index 0000000..af8bff2
--- /dev/null
+++ b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/DeviceConfigurationRequest.cs
@@ -0,0 +1,42 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+//
+
+namespace org.apache.plc4net.drivers.knxnetip.readwrite.model
+{
+
+ public class DeviceConfigurationRequest : KnxNetIpMessage
+ {
+ // Accessors for discriminator values.
+ public override ushort GetMsgType() {
+ return 0x0310;
+ }
+
+ // Properties.
+ public DeviceConfigurationRequestDataBlock DeviceConfigurationRequestDataBlock { get; }
+ public CEMI Cemi { get; }
+
+ public DeviceConfigurationRequest(DeviceConfigurationRequestDataBlock deviceConfigurationRequestDataBlock, CEMI cemi)
+ {
+ DeviceConfigurationRequestDataBlock = deviceConfigurationRequestDataBlock;
+ Cemi = cemi;
+ }
+
+ }
+
+}
diff --git a/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/DeviceConfigurationRequestDataBlock.cs b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/DeviceConfigurationRequestDataBlock.cs
new file mode 100644
index 0000000..b514c89
--- /dev/null
+++ b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/DeviceConfigurationRequestDataBlock.cs
@@ -0,0 +1,38 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+//
+
+namespace org.apache.plc4net.drivers.knxnetip.readwrite.model
+{
+
+ public class DeviceConfigurationRequestDataBlock
+ {
+
+ // Properties.
+ public byte CommunicationChannelId { get; }
+ public byte SequenceCounter { get; }
+
+ public DeviceConfigurationRequestDataBlock(byte communicationChannelId, byte sequenceCounter)
+ {
+ CommunicationChannelId = communicationChannelId;
+ SequenceCounter = sequenceCounter;
+ }
+
+ }
+
+}
diff --git a/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/DeviceStatus.cs b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/DeviceStatus.cs
new file mode 100644
index 0000000..3fce7c2
--- /dev/null
+++ b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/DeviceStatus.cs
@@ -0,0 +1,36 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+//
+
+namespace org.apache.plc4net.drivers.knxnetip.readwrite.model
+{
+
+ public class DeviceStatus
+ {
+
+ // Properties.
+ public bool ProgramMode { get; }
+
+ public DeviceStatus(bool programMode)
+ {
+ ProgramMode = programMode;
+ }
+
+ }
+
+}
diff --git a/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/DisconnectRequest.cs b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/DisconnectRequest.cs
new file mode 100644
index 0000000..a45d552
--- /dev/null
+++ b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/DisconnectRequest.cs
@@ -0,0 +1,42 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+//
+
+namespace org.apache.plc4net.drivers.knxnetip.readwrite.model
+{
+
+ public class DisconnectRequest : KnxNetIpMessage
+ {
+ // Accessors for discriminator values.
+ public override ushort GetMsgType() {
+ return 0x0209;
+ }
+
+ // Properties.
+ public byte CommunicationChannelId { get; }
+ public HPAIControlEndpoint HpaiControlEndpoint { get; }
+
+ public DisconnectRequest(byte communicationChannelId, HPAIControlEndpoint hpaiControlEndpoint)
+ {
+ CommunicationChannelId = communicationChannelId;
+ HpaiControlEndpoint = hpaiControlEndpoint;
+ }
+
+ }
+
+}
diff --git a/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/DisconnectResponse.cs b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/DisconnectResponse.cs
new file mode 100644
index 0000000..c648bdd
--- /dev/null
+++ b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/DisconnectResponse.cs
@@ -0,0 +1,42 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+//
+
+namespace org.apache.plc4net.drivers.knxnetip.readwrite.model
+{
+
+ public class DisconnectResponse : KnxNetIpMessage
+ {
+ // Accessors for discriminator values.
+ public override ushort GetMsgType() {
+ return 0x020A;
+ }
+
+ // Properties.
+ public byte CommunicationChannelId { get; }
+ public Status Status { get; }
+
+ public DisconnectResponse(byte communicationChannelId, Status status)
+ {
+ CommunicationChannelId = communicationChannelId;
+ Status = status;
+ }
+
+ }
+
+}
diff --git a/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/HPAIControlEndpoint.cs b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/HPAIControlEndpoint.cs
new file mode 100644
index 0000000..e2fd1b8
--- /dev/null
+++ b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/HPAIControlEndpoint.cs
@@ -0,0 +1,40 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+//
+
+namespace org.apache.plc4net.drivers.knxnetip.readwrite.model
+{
+
+ public class HPAIControlEndpoint
+ {
+
+ // Properties.
+ public HostProtocolCode HostProtocolCode { get; }
+ public IPAddress IpAddress { get; }
+ public ushort IpPort { get; }
+
+ public HPAIControlEndpoint(HostProtocolCode hostProtocolCode, IPAddress ipAddress, ushort ipPort)
+ {
+ HostProtocolCode = hostProtocolCode;
+ IpAddress = ipAddress;
+ IpPort = ipPort;
+ }
+
+ }
+
+}
diff --git a/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/HPAIDataEndpoint.cs b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/HPAIDataEndpoint.cs
new file mode 100644
index 0000000..a2bff76
--- /dev/null
+++ b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/HPAIDataEndpoint.cs
@@ -0,0 +1,40 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+//
+
+namespace org.apache.plc4net.drivers.knxnetip.readwrite.model
+{
+
+ public class HPAIDataEndpoint
+ {
+
+ // Properties.
+ public HostProtocolCode HostProtocolCode { get; }
+ public IPAddress IpAddress { get; }
+ public ushort IpPort { get; }
+
+ public HPAIDataEndpoint(HostProtocolCode hostProtocolCode, IPAddress ipAddress, ushort ipPort)
+ {
+ HostProtocolCode = hostProtocolCode;
+ IpAddress = ipAddress;
+ IpPort = ipPort;
+ }
+
+ }
+
+}
diff --git a/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/HPAIDiscoveryEndpoint.cs b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/HPAIDiscoveryEndpoint.cs
new file mode 100644
index 0000000..ff1c60d
--- /dev/null
+++ b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/HPAIDiscoveryEndpoint.cs
@@ -0,0 +1,40 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+//
+
+namespace org.apache.plc4net.drivers.knxnetip.readwrite.model
+{
+
+ public class HPAIDiscoveryEndpoint
+ {
+
+ // Properties.
+ public HostProtocolCode HostProtocolCode { get; }
+ public IPAddress IpAddress { get; }
+ public ushort IpPort { get; }
+
+ public HPAIDiscoveryEndpoint(HostProtocolCode hostProtocolCode, IPAddress ipAddress, ushort ipPort)
+ {
+ HostProtocolCode = hostProtocolCode;
+ IpAddress = ipAddress;
+ IpPort = ipPort;
+ }
+
+ }
+
+}
diff --git a/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/IPAddress.cs b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/IPAddress.cs
new file mode 100644
index 0000000..2b35bb7
--- /dev/null
+++ b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/IPAddress.cs
@@ -0,0 +1,36 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+//
+
+namespace org.apache.plc4net.drivers.knxnetip.readwrite.model
+{
+
+ public class IPAddress
+ {
+
+ // Properties.
+ public sbyte[] Addr { get; }
+
+ public IPAddress(sbyte[] addr)
+ {
+ Addr = addr;
+ }
+
+ }
+
+}
diff --git a/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/KnxAddress.cs b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/KnxAddress.cs
new file mode 100644
index 0000000..cd94f5a
--- /dev/null
+++ b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/KnxAddress.cs
@@ -0,0 +1,40 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+//
+
+namespace org.apache.plc4net.drivers.knxnetip.readwrite.model
+{
+
+ public class KnxAddress
+ {
+
+ // Properties.
+ public byte MainGroup { get; }
+ public byte MiddleGroup { get; }
+ public byte SubGroup { get; }
+
+ public KnxAddress(byte mainGroup, byte middleGroup, byte subGroup)
+ {
+ MainGroup = mainGroup;
+ MiddleGroup = middleGroup;
+ SubGroup = subGroup;
+ }
+
+ }
+
+}
diff --git a/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/KnxGroupAddress.cs b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/KnxGroupAddress.cs
new file mode 100644
index 0000000..71dc57a
--- /dev/null
+++ b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/KnxGroupAddress.cs
@@ -0,0 +1,34 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+//
+
+namespace org.apache.plc4net.drivers.knxnetip.readwrite.model
+{
+
+ public abstract class KnxGroupAddress
+ {
+ // Abstract accessors for discriminator values.
+ public abstract byte GetNumLevels();
+
+ public KnxGroupAddress()
+ {
+ }
+
+ }
+
+}
diff --git a/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/KnxGroupAddress2Level.cs b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/KnxGroupAddress2Level.cs
new file mode 100644
index 0000000..d991db8
--- /dev/null
+++ b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/KnxGroupAddress2Level.cs
@@ -0,0 +1,42 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+//
+
+namespace org.apache.plc4net.drivers.knxnetip.readwrite.model
+{
+
+ public class KnxGroupAddress2Level : KnxGroupAddress
+ {
+ // Accessors for discriminator values.
+ public override byte GetNumLevels() {
+ return 2;
+ }
+
+ // Properties.
+ public byte MainGroup { get; }
+ public ushort SubGroup { get; }
+
+ public KnxGroupAddress2Level(byte mainGroup, ushort subGroup)
+ {
+ MainGroup = mainGroup;
+ SubGroup = subGroup;
+ }
+
+ }
+
+}
diff --git a/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/KnxGroupAddress3Level.cs b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/KnxGroupAddress3Level.cs
new file mode 100644
index 0000000..b045e08
--- /dev/null
+++ b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/KnxGroupAddress3Level.cs
@@ -0,0 +1,44 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+//
+
+namespace org.apache.plc4net.drivers.knxnetip.readwrite.model
+{
+
+ public class KnxGroupAddress3Level : KnxGroupAddress
+ {
+ // Accessors for discriminator values.
+ public override byte GetNumLevels() {
+ return 3;
+ }
+
+ // Properties.
+ public byte MainGroup { get; }
+ public byte MiddleGroup { get; }
+ public byte SubGroup { get; }
+
+ public KnxGroupAddress3Level(byte mainGroup, byte middleGroup, byte subGroup)
+ {
+ MainGroup = mainGroup;
+ MiddleGroup = middleGroup;
+ SubGroup = subGroup;
+ }
+
+ }
+
+}
diff --git a/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/KnxGroupAddressFreeLevel.cs b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/KnxGroupAddressFreeLevel.cs
new file mode 100644
index 0000000..d7bc817
--- /dev/null
+++ b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/KnxGroupAddressFreeLevel.cs
@@ -0,0 +1,40 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+//
+
+namespace org.apache.plc4net.drivers.knxnetip.readwrite.model
+{
+
+ public class KnxGroupAddressFreeLevel : KnxGroupAddress
+ {
+ // Accessors for discriminator values.
+ public override byte GetNumLevels() {
+ return 1;
+ }
+
+ // Properties.
+ public ushort SubGroup { get; }
+
+ public KnxGroupAddressFreeLevel(ushort subGroup)
+ {
+ SubGroup = subGroup;
+ }
+
+ }
+
+}
diff --git a/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/KnxNetIpCore.cs b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/KnxNetIpCore.cs
new file mode 100644
index 0000000..199f867
--- /dev/null
+++ b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/KnxNetIpCore.cs
@@ -0,0 +1,40 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+//
+
+namespace org.apache.plc4net.drivers.knxnetip.readwrite.model
+{
+
+ public class KnxNetIpCore : ServiceId
+ {
+ // Accessors for discriminator values.
+ public override byte GetServiceType() {
+ return 0x02;
+ }
+
+ // Properties.
+ public byte Version { get; }
+
+ public KnxNetIpCore(byte version)
+ {
+ Version = version;
+ }
+
+ }
+
+}
diff --git a/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/KnxNetIpDeviceManagement.cs b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/KnxNetIpDeviceManagement.cs
new file mode 100644
index 0000000..45f2398
--- /dev/null
+++ b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/KnxNetIpDeviceManagement.cs
@@ -0,0 +1,40 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+//
+
+namespace org.apache.plc4net.drivers.knxnetip.readwrite.model
+{
+
+ public class KnxNetIpDeviceManagement : ServiceId
+ {
+ // Accessors for discriminator values.
+ public override byte GetServiceType() {
+ return 0x03;
+ }
+
+ // Properties.
+ public byte Version { get; }
+
+ public KnxNetIpDeviceManagement(byte version)
+ {
+ Version = version;
+ }
+
+ }
+
+}
diff --git a/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/KnxNetIpMessage.cs b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/KnxNetIpMessage.cs
new file mode 100644
index 0000000..4c65a75
--- /dev/null
+++ b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/KnxNetIpMessage.cs
@@ -0,0 +1,37 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+//
+
+namespace org.apache.plc4net.drivers.knxnetip.readwrite.model
+{
+
+ public abstract class KnxNetIpMessage
+ {
+ // Abstract accessors for discriminator values.
+ public abstract ushort GetMsgType();
+
+ // Constant values.
+ public const byte PROTOCOLVERSION = 0x10;
+
+ public KnxNetIpMessage()
+ {
+ }
+
+ }
+
+}
diff --git a/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/KnxNetIpTunneling.cs b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/KnxNetIpTunneling.cs
new file mode 100644
index 0000000..ab2ee0f
--- /dev/null
+++ b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/KnxNetIpTunneling.cs
@@ -0,0 +1,40 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+//
+
+namespace org.apache.plc4net.drivers.knxnetip.readwrite.model
+{
+
+ public class KnxNetIpTunneling : ServiceId
+ {
+ // Accessors for discriminator values.
+ public override byte GetServiceType() {
+ return 0x04;
+ }
+
+ // Properties.
+ public byte Version { get; }
+
+ public KnxNetIpTunneling(byte version)
+ {
+ Version = version;
+ }
+
+ }
+
+}
diff --git a/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/KnxNetObjectServer.cs b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/KnxNetObjectServer.cs
new file mode 100644
index 0000000..8f4a93a
--- /dev/null
+++ b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/KnxNetObjectServer.cs
@@ -0,0 +1,40 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+//
+
+namespace org.apache.plc4net.drivers.knxnetip.readwrite.model
+{
+
+ public class KnxNetObjectServer : ServiceId
+ {
+ // Accessors for discriminator values.
+ public override byte GetServiceType() {
+ return 0x08;
+ }
+
+ // Properties.
+ public byte Version { get; }
+
+ public KnxNetObjectServer(byte version)
+ {
+ Version = version;
+ }
+
+ }
+
+}
diff --git a/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/KnxNetRemoteConfigurationAndDiagnosis.cs b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/KnxNetRemoteConfigurationAndDiagnosis.cs
new file mode 100644
index 0000000..ed06102
--- /dev/null
+++ b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/KnxNetRemoteConfigurationAndDiagnosis.cs
@@ -0,0 +1,40 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+//
+
+namespace org.apache.plc4net.drivers.knxnetip.readwrite.model
+{
+
+ public class KnxNetRemoteConfigurationAndDiagnosis : ServiceId
+ {
+ // Accessors for discriminator values.
+ public override byte GetServiceType() {
+ return 0x07;
+ }
+
+ // Properties.
+ public byte Version { get; }
+
+ public KnxNetRemoteConfigurationAndDiagnosis(byte version)
+ {
+ Version = version;
+ }
+
+ }
+
+}
diff --git a/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/KnxNetRemoteLogging.cs b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/KnxNetRemoteLogging.cs
new file mode 100644
index 0000000..8b97a98
--- /dev/null
+++ b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/KnxNetRemoteLogging.cs
@@ -0,0 +1,40 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+//
+
+namespace org.apache.plc4net.drivers.knxnetip.readwrite.model
+{
+
+ public class KnxNetRemoteLogging : ServiceId
+ {
+ // Accessors for discriminator values.
+ public override byte GetServiceType() {
+ return 0x06;
+ }
+
+ // Properties.
+ public byte Version { get; }
+
+ public KnxNetRemoteLogging(byte version)
+ {
+ Version = version;
+ }
+
+ }
+
+}
diff --git a/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/MACAddress.cs b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/MACAddress.cs
new file mode 100644
index 0000000..6314819
--- /dev/null
+++ b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/MACAddress.cs
@@ -0,0 +1,36 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+//
+
+namespace org.apache.plc4net.drivers.knxnetip.readwrite.model
+{
+
+ public class MACAddress
+ {
+
+ // Properties.
+ public sbyte[] Addr { get; }
+
+ public MACAddress(sbyte[] addr)
+ {
+ Addr = addr;
+ }
+
+ }
+
+}
diff --git a/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/ProjectInstallationIdentifier.cs b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/ProjectInstallationIdentifier.cs
new file mode 100644
index 0000000..30a5b53
--- /dev/null
+++ b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/ProjectInstallationIdentifier.cs
@@ -0,0 +1,38 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+//
+
+namespace org.apache.plc4net.drivers.knxnetip.readwrite.model
+{
+
+ public class ProjectInstallationIdentifier
+ {
+
+ // Properties.
+ public byte ProjectNumber { get; }
+ public byte InstallationNumber { get; }
+
+ public ProjectInstallationIdentifier(byte projectNumber, byte installationNumber)
+ {
+ ProjectNumber = projectNumber;
+ InstallationNumber = installationNumber;
+ }
+
+ }
+
+}
diff --git a/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/RelativeTimestamp.cs b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/RelativeTimestamp.cs
new file mode 100644
index 0000000..45f1d58
--- /dev/null
+++ b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/RelativeTimestamp.cs
@@ -0,0 +1,36 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+//
+
+namespace org.apache.plc4net.drivers.knxnetip.readwrite.model
+{
+
+ public class RelativeTimestamp
+ {
+
+ // Properties.
+ public ushort Timestamp { get; }
+
+ public RelativeTimestamp(ushort timestamp)
+ {
+ Timestamp = timestamp;
+ }
+
+ }
+
+}
diff --git a/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/RoutingIndication.cs b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/RoutingIndication.cs
new file mode 100644
index 0000000..30afa77
--- /dev/null
+++ b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/RoutingIndication.cs
@@ -0,0 +1,36 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+//
+
+namespace org.apache.plc4net.drivers.knxnetip.readwrite.model
+{
+
+ public class RoutingIndication : KnxNetIpMessage
+ {
+ // Accessors for discriminator values.
+ public override ushort GetMsgType() {
+ return 0x0530;
+ }
+
+ public RoutingIndication()
+ {
+ }
+
+ }
+
+}
diff --git a/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/SearchRequest.cs b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/SearchRequest.cs
new file mode 100644
index 0000000..d16d8de
--- /dev/null
+++ b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/SearchRequest.cs
@@ -0,0 +1,40 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+//
+
+namespace org.apache.plc4net.drivers.knxnetip.readwrite.model
+{
+
+ public class SearchRequest : KnxNetIpMessage
+ {
+ // Accessors for discriminator values.
+ public override ushort GetMsgType() {
+ return 0x0201;
+ }
+
+ // Properties.
+ public HPAIDiscoveryEndpoint HpaiIDiscoveryEndpoint { get; }
+
+ public SearchRequest(HPAIDiscoveryEndpoint hpaiIDiscoveryEndpoint)
+ {
+ HpaiIDiscoveryEndpoint = hpaiIDiscoveryEndpoint;
+ }
+
+ }
+
+}
diff --git a/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/SearchResponse.cs b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/SearchResponse.cs
new file mode 100644
index 0000000..a02e703
--- /dev/null
+++ b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/SearchResponse.cs
@@ -0,0 +1,44 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+//
+
+namespace org.apache.plc4net.drivers.knxnetip.readwrite.model
+{
+
+ public class SearchResponse : KnxNetIpMessage
+ {
+ // Accessors for discriminator values.
+ public override ushort GetMsgType() {
+ return 0x0202;
+ }
+
+ // Properties.
+ public HPAIControlEndpoint HpaiControlEndpoint { get; }
+ public DIBDeviceInfo DibDeviceInfo { get; }
+ public DIBSuppSvcFamilies DibSuppSvcFamilies { get; }
+
+ public SearchResponse(HPAIControlEndpoint hpaiControlEndpoint, DIBDeviceInfo dibDeviceInfo, DIBSuppSvcFamilies dibSuppSvcFamilies)
+ {
+ HpaiControlEndpoint = hpaiControlEndpoint;
+ DibDeviceInfo = dibDeviceInfo;
+ DibSuppSvcFamilies = dibSuppSvcFamilies;
+ }
+
+ }
+
+}
diff --git a/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/ServiceId.cs b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/ServiceId.cs
new file mode 100644
index 0000000..7db9d85
--- /dev/null
+++ b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/ServiceId.cs
@@ -0,0 +1,34 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+//
+
+namespace org.apache.plc4net.drivers.knxnetip.readwrite.model
+{
+
+ public abstract class ServiceId
+ {
+ // Abstract accessors for discriminator values.
+ public abstract byte GetServiceType();
+
+ public ServiceId()
+ {
+ }
+
+ }
+
+}
diff --git a/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/TunnelingRequest.cs b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/TunnelingRequest.cs
new file mode 100644
index 0000000..28f6c27
--- /dev/null
+++ b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/TunnelingRequest.cs
@@ -0,0 +1,42 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+//
+
+namespace org.apache.plc4net.drivers.knxnetip.readwrite.model
+{
+
+ public class TunnelingRequest : KnxNetIpMessage
+ {
+ // Accessors for discriminator values.
+ public override ushort GetMsgType() {
+ return 0x0420;
+ }
+
+ // Properties.
+ public TunnelingRequestDataBlock TunnelingRequestDataBlock { get; }
+ public CEMI Cemi { get; }
+
+ public TunnelingRequest(TunnelingRequestDataBlock tunnelingRequestDataBlock, CEMI cemi)
+ {
+ TunnelingRequestDataBlock = tunnelingRequestDataBlock;
+ Cemi = cemi;
+ }
+
+ }
+
+}
diff --git a/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/TunnelingRequestDataBlock.cs b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/TunnelingRequestDataBlock.cs
new file mode 100644
index 0000000..ce8aa02
--- /dev/null
+++ b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/TunnelingRequestDataBlock.cs
@@ -0,0 +1,38 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+//
+
+namespace org.apache.plc4net.drivers.knxnetip.readwrite.model
+{
+
+ public class TunnelingRequestDataBlock
+ {
+
+ // Properties.
+ public byte CommunicationChannelId { get; }
+ public byte SequenceCounter { get; }
+
+ public TunnelingRequestDataBlock(byte communicationChannelId, byte sequenceCounter)
+ {
+ CommunicationChannelId = communicationChannelId;
+ SequenceCounter = sequenceCounter;
+ }
+
+ }
+
+}
diff --git a/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/TunnelingResponse.cs b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/TunnelingResponse.cs
new file mode 100644
index 0000000..3c5f21e
--- /dev/null
+++ b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/TunnelingResponse.cs
@@ -0,0 +1,40 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+//
+
+namespace org.apache.plc4net.drivers.knxnetip.readwrite.model
+{
+
+ public class TunnelingResponse : KnxNetIpMessage
+ {
+ // Accessors for discriminator values.
+ public override ushort GetMsgType() {
+ return 0x0421;
+ }
+
+ // Properties.
+ public TunnelingResponseDataBlock TunnelingResponseDataBlock { get; }
+
+ public TunnelingResponse(TunnelingResponseDataBlock tunnelingResponseDataBlock)
+ {
+ TunnelingResponseDataBlock = tunnelingResponseDataBlock;
+ }
+
+ }
+
+}
diff --git a/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/TunnelingResponseDataBlock.cs b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/TunnelingResponseDataBlock.cs
new file mode 100644
index 0000000..ccd50b5
--- /dev/null
+++ b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/TunnelingResponseDataBlock.cs
@@ -0,0 +1,40 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+//
+
+namespace org.apache.plc4net.drivers.knxnetip.readwrite.model
+{
+
+ public class TunnelingResponseDataBlock
+ {
+
+ // Properties.
+ public byte CommunicationChannelId { get; }
+ public byte SequenceCounter { get; }
+ public Status Status { get; }
+
+ public TunnelingResponseDataBlock(byte communicationChannelId, byte sequenceCounter, Status status)
+ {
+ CommunicationChannelId = communicationChannelId;
+ SequenceCounter = sequenceCounter;
+ Status = status;
+ }
+
+ }
+
+}
diff --git a/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/UnknownMessage.cs b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/UnknownMessage.cs
new file mode 100644
index 0000000..e20e6bc
--- /dev/null
+++ b/sandbox/plc4net/drivers/knxnetip/src/knxnetip/readwrite/model/UnknownMessage.cs
@@ -0,0 +1,40 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+//
+
+namespace org.apache.plc4net.drivers.knxnetip.readwrite.model
+{
+
+ public class UnknownMessage : KnxNetIpMessage
+ {
+ // Accessors for discriminator values.
+ public override ushort GetMsgType() {
+ return 0x020B;
+ }
+
+ // Properties.
+ public sbyte[] UnknownData { get; }
+
+ public UnknownMessage(sbyte[] unknownData)
+ {
+ UnknownData = unknownData;
+ }
+
+ }
+
+}