You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@plc4x.apache.org by cd...@apache.org on 2020/10/10 15:55:55 UTC
[plc4x] branch feature/plc4go updated: - Added some first BACnet/IP
and KNXNet/IP driver code ...
This is an automated email from the ASF dual-hosted git repository.
cdutz pushed a commit to branch feature/plc4go
in repository https://gitbox.apache.org/repos/asf/plc4x.git
The following commit(s) were added to refs/heads/feature/plc4go by this push:
new 7d953dd - Added some first BACnet/IP and KNXNet/IP driver code ...
7d953dd is described below
commit 7d953ddd76837da95749dd0e3cb3df3bd75252d6
Author: Christofer Dutz <ch...@c-ware.de>
AuthorDate: Sat Oct 10 17:55:47 2020 +0200
- Added some first BACnet/IP and KNXNet/IP driver code ...
---
.../language/go/GoLanguageTemplateHelper.java | 39 ++-
.../test/resources/testsuite/KNXNetIPTestsuite.xml | 6 +-
.../resources/protocols/knxnetip/knxnetip.mspec | 4 +-
.../cmd/main/{main.go => drivers/bacnetip.go} | 27 +-
.../cmd/main/{main.go => drivers/knxnetip.go} | 23 +-
sandbox/plc4go/cmd/main/main.go | 2 +
.../plc4go/bacnetip/readwrite/model/APDU.go | 107 ++++++
.../plc4go/bacnetip/readwrite/model/APDUAbort.go | 122 +++++++
.../bacnetip/readwrite/model/APDUComplexAck.go | 183 ++++++++++
.../readwrite/model/APDUConfirmedRequest.go | 216 ++++++++++++
.../plc4go/bacnetip/readwrite/model/APDUError.go | 121 +++++++
.../plc4go/bacnetip/readwrite/model/APDUReject.go | 111 +++++++
.../bacnetip/readwrite/model/APDUSegmentAck.go | 144 ++++++++
.../bacnetip/readwrite/model/APDUSimpleAck.go | 111 +++++++
.../readwrite/model/APDUUnconfirmedRequest.go | 110 ++++++
.../bacnetip/readwrite/model/ApplicationTag.go | 48 +++
.../bacnetip/readwrite/model/BACnetAddress.go | 96 ++++++
.../readwrite/model/BACnetConfirmedServiceACK.go | 119 +++++++
.../BACnetConfirmedServiceACKAtomicReadFile.go | 71 ++++
.../BACnetConfirmedServiceACKAtomicWriteFile.go | 71 ++++
...tConfirmedServiceACKConfirmedPrivateTransfer.go | 71 ++++
.../model/BACnetConfirmedServiceACKCreateObject.go | 71 ++++
.../BACnetConfirmedServiceACKGetAlarmSummary.go | 71 ++++
...ACnetConfirmedServiceACKGetEnrollmentSummary.go | 71 ++++
...BACnetConfirmedServiceACKGetEventInformation.go | 71 ++++
.../model/BACnetConfirmedServiceACKReadProperty.go | 71 ++++
...ACnetConfirmedServiceACKReadPropertyMultiple.go | 71 ++++
.../model/BACnetConfirmedServiceACKReadRange.go | 71 ++++
...BACnetConfirmedServiceACKRemovedAuthenticate.go | 71 ++++
...rmedServiceACKRemovedReadPropertyConditional.go | 71 ++++
.../model/BACnetConfirmedServiceACKVTData.go | 71 ++++
.../model/BACnetConfirmedServiceACKVTOpen.go | 71 ++++
.../model/BACnetConfirmedServiceRequest.go | 165 +++++++++
...ACnetConfirmedServiceRequestAcknowledgeAlarm.go | 71 ++++
.../BACnetConfirmedServiceRequestAddListElement.go | 71 ++++
.../BACnetConfirmedServiceRequestAtomicReadFile.go | 71 ++++
...BACnetConfirmedServiceRequestAtomicWriteFile.go | 71 ++++
...firmedServiceRequestConfirmedCOVNotification.go | 277 ++++++++++++++++
...rviceRequestConfirmedCOVNotificationMultiple.go | 71 ++++
...rmedServiceRequestConfirmedEventNotification.go | 71 ++++
...firmedServiceRequestConfirmedPrivateTransfer.go | 71 ++++
...tConfirmedServiceRequestConfirmedTextMessage.go | 71 ++++
.../BACnetConfirmedServiceRequestCreateObject.go | 71 ++++
.../BACnetConfirmedServiceRequestDeleteObject.go | 71 ++++
...rmedServiceRequestDeviceCommunicationControl.go | 71 ++++
...tConfirmedServiceRequestGetEnrollmentSummary.go | 71 ++++
...etConfirmedServiceRequestGetEventInformation.go | 71 ++++
...etConfirmedServiceRequestLifeSafetyOperation.go | 71 ++++
.../BACnetConfirmedServiceRequestReadProperty.go | 158 +++++++++
...tConfirmedServiceRequestReadPropertyMultiple.go | 71 ++++
.../BACnetConfirmedServiceRequestReadRange.go | 71 ++++
...netConfirmedServiceRequestReinitializeDevice.go | 71 ++++
...CnetConfirmedServiceRequestRemoveListElement.go | 71 ++++
...etConfirmedServiceRequestRemovedAuthenticate.go | 71 ++++
...ServiceRequestRemovedReadPropertyConditional.go | 71 ++++
...CnetConfirmedServiceRequestRemovedRequestKey.go | 71 ++++
.../BACnetConfirmedServiceRequestSubscribeCOV.go | 219 ++++++++++++
...tConfirmedServiceRequestSubscribeCOVProperty.go | 71 ++++
...edServiceRequestSubscribeCOVPropertyMultiple.go | 71 ++++
.../model/BACnetConfirmedServiceRequestVTClose.go | 71 ++++
.../model/BACnetConfirmedServiceRequestVTData.go | 71 ++++
.../model/BACnetConfirmedServiceRequestVTOpen.go | 71 ++++
.../BACnetConfirmedServiceRequestWriteProperty.go | 235 +++++++++++++
...ConfirmedServiceRequestWritePropertyMultiple.go | 71 ++++
.../plc4go/bacnetip/readwrite/model/BACnetError.go | 119 +++++++
.../readwrite/model/BACnetErrorAtomicReadFile.go | 71 ++++
.../readwrite/model/BACnetErrorAtomicWriteFile.go | 71 ++++
.../model/BACnetErrorConfirmedPrivateTransfer.go | 71 ++++
.../readwrite/model/BACnetErrorCreateObject.go | 71 ++++
.../readwrite/model/BACnetErrorGetAlarmSummary.go | 71 ++++
.../model/BACnetErrorGetEnrollmentSummary.go | 71 ++++
.../model/BACnetErrorGetEventInformation.go | 71 ++++
.../readwrite/model/BACnetErrorReadProperty.go | 171 ++++++++++
.../model/BACnetErrorReadPropertyMultiple.go | 71 ++++
.../readwrite/model/BACnetErrorReadRange.go | 71 ++++
.../model/BACnetErrorRemovedAuthenticate.go | 71 ++++
.../BACnetErrorRemovedReadPropertyConditional.go | 71 ++++
.../bacnetip/readwrite/model/BACnetErrorVTData.go | 71 ++++
.../bacnetip/readwrite/model/BACnetErrorVTOpen.go | 71 ++++
.../bacnetip/readwrite/model/BACnetNetworkType.go | 46 +++
.../bacnetip/readwrite/model/BACnetNodeType.go | 57 ++++
.../bacnetip/readwrite/model/BACnetNotifyType.go} | 25 +-
.../bacnetip/readwrite/model/BACnetObjectType.go | 94 ++++++
.../bacnetip/readwrite/model/BACnetServiceAck.go | 119 +++++++
.../model/BACnetServiceAckAtomicReadFile.go | 71 ++++
.../model/BACnetServiceAckAtomicWriteFile.go | 71 ++++
.../BACnetServiceAckConfirmedPrivateTransfer.go | 71 ++++
.../model/BACnetServiceAckCreateObject.go | 71 ++++
.../model/BACnetServiceAckGetAlarmSummary.go | 71 ++++
.../model/BACnetServiceAckGetEnrollmentSummary.go | 71 ++++
.../model/BACnetServiceAckGetEventInformation.go | 71 ++++
.../model/BACnetServiceAckReadProperty.go | 204 ++++++++++++
.../model/BACnetServiceAckReadPropertyMultiple.go | 71 ++++
.../readwrite/model/BACnetServiceAckReadRange.go | 71 ++++
.../model/BACnetServiceAckRemovedAuthenticate.go | 71 ++++
...CnetServiceAckRemovedReadPropertyConditional.go | 71 ++++
.../readwrite/model/BACnetServiceAckVTData.go | 71 ++++
.../readwrite/model/BACnetServiceAckVTOpen.go | 71 ++++
.../plc4go/bacnetip/readwrite/model/BACnetTag.go | 181 ++++++++++
.../model/BACnetTagApplicationBitString.go | 108 ++++++
.../readwrite/model/BACnetTagApplicationBoolean.go | 75 +++++
.../model/BACnetTagApplicationCharacterString.go | 75 +++++
.../readwrite/model/BACnetTagApplicationDate.go | 75 +++++
.../readwrite/model/BACnetTagApplicationDouble.go | 86 +++++
.../model/BACnetTagApplicationEnumerated.go | 97 ++++++
.../readwrite/model/BACnetTagApplicationNull.go | 75 +++++
.../model/BACnetTagApplicationObjectIdentifier.go | 75 +++++
.../model/BACnetTagApplicationOctetString.go | 75 +++++
.../readwrite/model/BACnetTagApplicationReal.go | 86 +++++
.../model/BACnetTagApplicationSignedInteger.go | 97 ++++++
.../readwrite/model/BACnetTagApplicationTime.go | 75 +++++
.../model/BACnetTagApplicationUnsignedInteger.go | 97 ++++++
.../bacnetip/readwrite/model/BACnetTagContext.go | 97 ++++++
.../readwrite/model/BACnetTagWithContent.go | 206 ++++++++++++
.../model/BACnetUnconfirmedServiceRequest.go | 115 +++++++
.../model/BACnetUnconfirmedServiceRequestIAm.go | 206 ++++++++++++
.../model/BACnetUnconfirmedServiceRequestIHave.go | 71 ++++
...UnconfirmedServiceRequestTimeSynchronization.go | 71 ++++
...onfirmedServiceRequestUTCTimeSynchronization.go | 71 ++++
...rmedServiceRequestUnconfirmedCOVNotification.go | 71 ++++
...iceRequestUnconfirmedCOVNotificationMultiple.go | 71 ++++
...edServiceRequestUnconfirmedEventNotification.go | 71 ++++
...rmedServiceRequestUnconfirmedPrivateTransfer.go | 171 ++++++++++
...onfirmedServiceRequestUnconfirmedTextMessage.go | 71 ++++
.../model/BACnetUnconfirmedServiceRequestWhoHas.go | 179 ++++++++++
.../model/BACnetUnconfirmedServiceRequestWhoIs.go | 171 ++++++++++
.../BACnetUnconfirmedServiceRequestWriteGroup.go | 71 ++++
.../plc4go/bacnetip/readwrite/model/BVLC.go | 143 ++++++++
.../model/BVLCDeleteForeignDeviceTableEntry.go | 71 ++++
.../model/BVLCDistributeBroadcastToNetwork.go | 71 ++++
.../bacnetip/readwrite/model/BVLCForwardedNPDU.go | 127 +++++++
.../readwrite/model/BVLCOriginalBroadcastNPDU.go | 92 ++++++
.../readwrite/model/BVLCOriginalUnicastNPDU.go | 92 ++++++
.../model/BVLCReadBroadcastDistributionTable.go | 71 ++++
.../model/BVLCReadBroadcastDistributionTableAck.go | 71 ++++
.../readwrite/model/BVLCReadForeignDeviceTable.go | 71 ++++
.../model/BVLCReadForeignDeviceTableAck.go | 71 ++++
.../readwrite/model/BVLCRegisterForeignDevice.go | 71 ++++
.../plc4go/bacnetip/readwrite/model/BVLCResult.go | 71 ++++
.../bacnetip/readwrite/model/BVLCSecureBVLL.go | 71 ++++
.../model/BVLCWideBroadcastDistributionTable.go | 71 ++++
.../plc4go/bacnetip/readwrite/model/NLM.go | 115 +++++++
.../readwrite/model/NLMIAmRouterToNetwork.go | 94 ++++++
.../readwrite/model/NLMWhoIsRouterToNetwork.go | 94 ++++++
.../plc4go/bacnetip/readwrite/model/NPDU.go | 368 +++++++++++++++++++++
.../plc4go/knxnetip/readwrite/model/APCI.go | 51 +++
.../plc4go/knxnetip/readwrite/model/CEMI.go | 113 +++++++
.../readwrite/model/CEMIAdditionalInformation.go | 95 ++++++
.../CEMIAdditionalInformationBusmonitorInfo.go | 154 +++++++++
.../CEMIAdditionalInformationRelativeTimestamp.go | 108 ++++++
.../knxnetip/readwrite/model/CEMIBusmonInd.go | 136 ++++++++
.../plc4go/knxnetip/readwrite/model/CEMIDataCon.go | 136 ++++++++
.../knxnetip/readwrite/model/CEMIDataFrame.go | 304 +++++++++++++++++
.../plc4go/knxnetip/readwrite/model/CEMIDataInd.go | 136 ++++++++
.../plc4go/knxnetip/readwrite/model/CEMIDataReq.go | 136 ++++++++
.../plc4go/knxnetip/readwrite/model/CEMIFrame.go | 178 ++++++++++
.../knxnetip/readwrite/model/CEMIFrameAck.go | 83 +++++
.../knxnetip/readwrite/model/CEMIFrameData.go | 246 ++++++++++++++
.../knxnetip/readwrite/model/CEMIFrameDataExt.go | 257 ++++++++++++++
.../readwrite/model/CEMIFramePollingData.go | 83 +++++
.../readwrite/model/CEMIFramePollingDataExt.go | 83 +++++
.../knxnetip/readwrite/model/CEMIMPropReadCon.go | 137 ++++++++
.../knxnetip/readwrite/model/CEMIMPropReadReq.go | 126 +++++++
.../knxnetip/readwrite/model/CEMIPollDataCon.go | 71 ++++
.../knxnetip/readwrite/model/CEMIPollDataReq.go | 71 ++++
.../knxnetip/readwrite/model/CEMIPriority.go} | 26 +-
.../plc4go/knxnetip/readwrite/model/CEMIRawCon.go | 71 ++++
.../plc4go/knxnetip/readwrite/model/CEMIRawInd.go | 71 ++++
.../plc4go/knxnetip/readwrite/model/CEMIRawReq.go | 71 ++++
.../knxnetip/readwrite/model/ConnectionRequest.go | 130 ++++++++
.../model/ConnectionRequestInformation.go | 105 ++++++
...ConnectionRequestInformationDeviceManagement.go | 71 ++++
...ConnectionRequestInformationTunnelConnection.go | 104 ++++++
.../knxnetip/readwrite/model/ConnectionResponse.go | 154 +++++++++
.../readwrite/model/ConnectionResponseDataBlock.go | 105 ++++++
.../ConnectionResponseDataBlockDeviceManagement.go | 71 ++++
.../ConnectionResponseDataBlockTunnelConnection.go | 92 ++++++
.../readwrite/model/ConnectionStateRequest.go | 121 +++++++
.../readwrite/model/ConnectionStateResponse.go | 97 ++++++
.../knxnetip/readwrite/model/DIBDeviceInfo.go | 238 +++++++++++++
.../knxnetip/readwrite/model/DIBSuppSvcFamilies.go | 119 +++++++
.../knxnetip/readwrite/model/DescriptionRequest.go | 92 ++++++
.../readwrite/model/DescriptionResponse.go | 111 +++++++
.../readwrite/model/DeviceConfigurationAck.go | 92 ++++++
.../model/DeviceConfigurationAckDataBlock.go | 108 ++++++
.../readwrite/model/DeviceConfigurationRequest.go | 111 +++++++
.../model/DeviceConfigurationRequestDataBlock.go | 111 +++++++
.../knxnetip/readwrite/model/DeviceStatus.go | 90 +++++
.../knxnetip/readwrite/model/DisconnectRequest.go | 121 +++++++
.../knxnetip/readwrite/model/DisconnectResponse.go | 97 ++++++
.../readwrite/model/HPAIControlEndpoint.go | 117 +++++++
.../knxnetip/readwrite/model/HPAIDataEndpoint.go | 117 +++++++
.../readwrite/model/HPAIDiscoveryEndpoint.go | 117 +++++++
.../knxnetip/readwrite/model/HostProtocolCode.go} | 24 +-
.../plc4go/knxnetip/readwrite/model/IPAddress.go | 85 +++++
.../plc4go/knxnetip/readwrite/model/KNXAddress.go | 94 ++++++
.../knxnetip/readwrite/model/KNXGroupAddress.go | 87 +++++
.../readwrite/model/KNXGroupAddress2Level.go | 93 ++++++
.../readwrite/model/KNXGroupAddress3Level.go | 104 ++++++
.../readwrite/model/KNXGroupAddressFreeLevel.go | 82 +++++
.../knxnetip/readwrite/model/KNXNetIPMessage.go | 159 +++++++++
.../plc4go/knxnetip/readwrite/model/KnxLayer.go} | 25 +-
.../knxnetip/readwrite/model/KnxNetIpCore.go | 82 +++++
.../readwrite/model/KnxNetIpDeviceManagement.go | 82 +++++
.../knxnetip/readwrite/model/KnxNetIpTunneling.go | 82 +++++
.../knxnetip/readwrite/model/KnxNetObjectServer.go | 82 +++++
.../model/KnxNetRemoteConfigurationAndDiagnosis.go | 82 +++++
.../readwrite/model/KnxNetRemoteLogging.go | 82 +++++
.../plc4go/knxnetip/readwrite/model/MACAddress.go | 85 +++++
.../model/ProjectInstallationIdentifier.go | 83 +++++
.../knxnetip/readwrite/model/RelativeTimestamp.go | 72 ++++
.../knxnetip/readwrite/model/RoutingIndication.go | 71 ++++
.../knxnetip/readwrite/model/SearchRequest.go | 92 ++++++
.../knxnetip/readwrite/model/SearchResponse.go | 130 ++++++++
.../plc4go/knxnetip/readwrite/model/ServiceId.go | 103 ++++++
.../plc4go/knxnetip/readwrite/model/Status.go | 47 +++
.../plc4go/knxnetip/readwrite/model/TPCI.go} | 26 +-
.../knxnetip/readwrite/model/TunnelingRequest.go | 111 +++++++
.../readwrite/model/TunnelingRequestDataBlock.go | 111 +++++++
.../knxnetip/readwrite/model/TunnelingResponse.go | 92 ++++++
.../readwrite/model/TunnelingResponseDataBlock.go | 108 ++++++
.../knxnetip/readwrite/model/UnknownMessage.go | 95 ++++++
.../s7/readwrite/model/S7VarPayloadDataItem.go | 2 +-
sandbox/plc4go/pom.xml | 42 ++-
224 files changed, 21140 insertions(+), 69 deletions(-)
diff --git a/build-utils/language-go/src/main/java/org/apache/plc4x/language/go/GoLanguageTemplateHelper.java b/build-utils/language-go/src/main/java/org/apache/plc4x/language/go/GoLanguageTemplateHelper.java
index 2374e61..9df5569 100644
--- a/build-utils/language-go/src/main/java/org/apache/plc4x/language/go/GoLanguageTemplateHelper.java
+++ b/build-utils/language-go/src/main/java/org/apache/plc4x/language/go/GoLanguageTemplateHelper.java
@@ -221,16 +221,12 @@ public class GoLanguageTemplateHelper extends BaseFreemarkerLanguageTemplateHelp
}
case FLOAT: {
FloatTypeReference floatTypeReference = (FloatTypeReference) simpleTypeReference;
- String type = (floatTypeReference.getSizeInBits() <= 32)? "ReadFloat32" : "ReadFloat64";
- String typeCast = (floatTypeReference.getSizeInBits() <= 32) ? "float32" : "float64";
- String defaultNull = (floatTypeReference.getSizeInBits() <= 32) ? "0.0f" : "0.0";
- StringBuilder sb = new StringBuilder("((Supplier<").append(type).append(">) (() -> {");
- sb.append("\n return (").append(typeCast).append(") toFloat(io, ").append(
- (floatTypeReference.getBaseType() == SimpleTypeReference.SimpleBaseType.FLOAT) ? "true" : "false")
- .append(", ").append(floatTypeReference.getExponent()).append(", ")
- .append(floatTypeReference.getMantissa()).append(");");
- sb.append("\n })).get()");
- return sb.toString();
+ if (floatTypeReference.getSizeInBits() <= 32) {
+ return "io.ReadFloat32(" + floatTypeReference.getSizeInBits() + ")";
+ }
+ if (floatTypeReference.getSizeInBits() <= 64) {
+ return "io.ReadFloat64(" + floatTypeReference.getSizeInBits() + ")";
+ }
}
case STRING: {
StringTypeReference stringTypeReference = (StringTypeReference) simpleTypeReference;
@@ -280,16 +276,12 @@ public class GoLanguageTemplateHelper extends BaseFreemarkerLanguageTemplateHelp
case FLOAT:
case UFLOAT: {
FloatTypeReference floatTypeReference = (FloatTypeReference) simpleTypeReference;
- StringBuilder sb = new StringBuilder();
- if(simpleTypeReference.getBaseType() == SimpleTypeReference.SimpleBaseType.FLOAT) {
- sb.append("\n boolean negative = value < 0;");
- sb.append("\n io.writeBit(negative);");
+ if (floatTypeReference.getSizeInBits() <= 32) {
+ return "io.WriteFloat32(" + floatTypeReference.getSizeInBits() + ", " + fieldName + ")";
+ }
+ if (floatTypeReference.getSizeInBits() <= 64) {
+ return "io.WriteFloat64(" + floatTypeReference.getSizeInBits() + ", " + fieldName + ")";
}
- sb.append("\n final int exponent = Math.getExponent(value);");
- sb.append("\n final double mantissa = value / Math.pow(2, exponent);");
- sb.append("\n io.writeInt(").append(floatTypeReference.getExponent()).append(", exponent);");
- sb.append("\n io.writeDouble(").append(floatTypeReference.getMantissa()).append(", mantissa)");
- return sb.toString().substring(9);
}
case STRING: {
StringTypeReference stringTypeReference = (StringTypeReference) simpleTypeReference;
@@ -330,7 +322,7 @@ public class GoLanguageTemplateHelper extends BaseFreemarkerLanguageTemplateHelp
VariableLiteral variableLiteral = (VariableLiteral) term;
// If this literal references an Enum type, then we have to output it differently.
if(getTypeDefinitions().get(variableLiteral.getName()) instanceof EnumTypeDefinition) {
- return variableLiteral.getName() + "." + variableLiteral.getChild().getName() +
+ return variableLiteral.getName() + "_" + variableLiteral.getChild().getName() +
((variableLiteral.getChild().getChild() != null) ?
"." + toVariableExpressionRest(variableLiteral.getChild().getChild()) : "");
} else {
@@ -789,6 +781,13 @@ public class GoLanguageTemplateHelper extends BaseFreemarkerLanguageTemplateHelp
return name;
}
}
+ for (DiscriminatedComplexTypeDefinition curCase : switchField.getCases()) {
+ for (Argument parserArgument : curCase.getParserArguments()) {
+ if(parserArgument.getName().equals(name)) {
+ return name;
+ }
+ }
+ }
} else if(curField instanceof VirtualField) {
VirtualField virtualField = (VirtualField) curField;
if(virtualField.getValueExpression().contains(name)) {
diff --git a/plc4j/drivers/knxnetip/src/test/resources/testsuite/KNXNetIPTestsuite.xml b/plc4j/drivers/knxnetip/src/test/resources/testsuite/KNXNetIPTestsuite.xml
index 13ed46f..939c1b9 100644
--- a/plc4j/drivers/knxnetip/src/test/resources/testsuite/KNXNetIPTestsuite.xml
+++ b/plc4j/drivers/knxnetip/src/test/resources/testsuite/KNXNetIPTestsuite.xml
@@ -67,7 +67,7 @@
<cemiFrame className="org.apache.plc4x.java.knxnetip.readwrite.CEMIFramePollingData">
<doNotRepeat>false</doNotRepeat>
<priority>LOW</priority>
- <error>true</error>
+ <errorFlag>true</errorFlag>
</cemiFrame>
</cemi>
</TunnelingRequest>
@@ -107,7 +107,7 @@
<cemiFrame className="org.apache.plc4x.java.knxnetip.readwrite.CEMIFramePollingData">
<doNotRepeat>true</doNotRepeat>
<priority>URGENT</priority>
- <error>false</error>
+ <errorFlag>false</errorFlag>
</cemiFrame>
</cemi>
</TunnelingRequest>
@@ -435,7 +435,7 @@
<repeated>true</repeated>
<priority>LOW</priority>
<acknowledgeRequested>false</acknowledgeRequested>
- <error>false</error>
+ <errorFlag>false</errorFlag>
<sourceAddress className="org.apache.plc4x.java.knxnetip.readwrite.KNXAddress">
<mainGroup>3</mainGroup>
<middleGroup>6</middleGroup>
diff --git a/protocols/knxnetip/src/main/resources/protocols/knxnetip/knxnetip.mspec b/protocols/knxnetip/src/main/resources/protocols/knxnetip/knxnetip.mspec
index 220a8db..f55fffc 100644
--- a/protocols/knxnetip/src/main/resources/protocols/knxnetip/knxnetip.mspec
+++ b/protocols/knxnetip/src/main/resources/protocols/knxnetip/knxnetip.mspec
@@ -312,7 +312,7 @@
[simple bit 'notAckFrame']
[enum CEMIPriority 'priority']
[simple bit 'acknowledgeRequested']
- [simple bit 'error']
+ [simple bit 'errorFlag']
[simple bit 'groupDestinationAddress']
[simple uint 3 'hopCount']
[simple uint 4 'extendedFrameFormat']
@@ -335,7 +335,7 @@
[discriminator bit 'notAckFrame']
[enum CEMIPriority 'priority']
[simple bit 'acknowledgeRequested']
- [simple bit 'error']
+ [simple bit 'errorFlag']
[typeSwitch 'notAckFrame','standardFrame','polling'
['false' CEMIFrameAck
]
diff --git a/sandbox/plc4go/cmd/main/main.go b/sandbox/plc4go/cmd/main/drivers/bacnetip.go
similarity index 58%
copy from sandbox/plc4go/cmd/main/main.go
copy to sandbox/plc4go/cmd/main/drivers/bacnetip.go
index 40d865a..3622bda 100644
--- a/sandbox/plc4go/cmd/main/main.go
+++ b/sandbox/plc4go/cmd/main/drivers/bacnetip.go
@@ -13,13 +13,26 @@
// specific language governing permissions and limitations
// under the License.
//
-package main
+package drivers
-import (
- "plc4x.apache.org/plc4go-modbus-driver/0.8.0/cmd/main/drivers"
+/*import (
+ "encoding/hex"
+ "plc4x.apache.org/plc4go-modbus-driver/0.8.0/internal/plc4go/bacnetip/readwrite/model"
+ "plc4x.apache.org/plc4go-modbus-driver/0.8.0/internal/plc4go/spi"
)
-func main() {
- drivers.Modbus()
- //drivers.S7()
-}
+func BacnetIp() {
+ request, err := hex.DecodeString("000a00000006010300000004")
+ if err != nil {
+ // Output an error ...
+ }
+ rb := spi.ReadBufferNew(request)
+ adu, err := model.BVLCParse(*rb)
+ if err != nil {
+ // Output an error ...
+ }
+ if adu != nil {
+ // Output success ...
+ }
+
+}*/
diff --git a/sandbox/plc4go/cmd/main/main.go b/sandbox/plc4go/cmd/main/drivers/knxnetip.go
similarity index 59%
copy from sandbox/plc4go/cmd/main/main.go
copy to sandbox/plc4go/cmd/main/drivers/knxnetip.go
index 40d865a..8d045dc 100644
--- a/sandbox/plc4go/cmd/main/main.go
+++ b/sandbox/plc4go/cmd/main/drivers/knxnetip.go
@@ -13,13 +13,26 @@
// specific language governing permissions and limitations
// under the License.
//
-package main
+package drivers
import (
- "plc4x.apache.org/plc4go-modbus-driver/0.8.0/cmd/main/drivers"
+ "encoding/hex"
+ "plc4x.apache.org/plc4go-modbus-driver/0.8.0/internal/plc4go/knxnetip/readwrite/model"
+ "plc4x.apache.org/plc4go-modbus-driver/0.8.0/internal/plc4go/spi"
)
-func main() {
- drivers.Modbus()
- //drivers.S7()
+func KnxNetIp() {
+ request, err := hex.DecodeString("000a00000006010300000004")
+ if err != nil {
+ // Output an error ...
+ }
+ rb := spi.ReadBufferNew(request)
+ adu, err := model.KNXNetIPMessageParse(*rb)
+ if err != nil {
+ // Output an error ...
+ }
+ if adu != nil {
+ // Output success ...
+ }
+
}
diff --git a/sandbox/plc4go/cmd/main/main.go b/sandbox/plc4go/cmd/main/main.go
index 40d865a..2ac93e8 100644
--- a/sandbox/plc4go/cmd/main/main.go
+++ b/sandbox/plc4go/cmd/main/main.go
@@ -20,6 +20,8 @@ import (
)
func main() {
+ //drivers.BacnetIp()
+ drivers.KnxNetIp()
drivers.Modbus()
//drivers.S7()
}
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/APDU.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/APDU.go
new file mode 100644
index 0000000..9773078
--- /dev/null
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/APDU.go
@@ -0,0 +1,107 @@
+//
+// 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.
+//
+package model
+
+import (
+ "errors"
+ "plc4x.apache.org/plc4go-modbus-driver/0.8.0/internal/plc4go/spi"
+)
+
+// The data-structure of this message
+type APDU struct {
+}
+
+// The corresponding interface
+type IAPDU interface {
+ spi.Message
+ ApduType() uint8
+ Serialize(io spi.WriteBuffer)
+}
+
+type APDUInitializer interface {
+ initialize() spi.Message
+}
+
+func APDUApduType(m IAPDU) uint8 {
+ return m.ApduType()
+}
+
+func (m APDU) LengthInBits() uint16 {
+ var lengthInBits uint16 = 0
+
+ // Discriminator Field (apduType)
+ lengthInBits += 4
+
+ // Length of sub-type elements will be added by sub-type...
+
+ return lengthInBits
+}
+
+func (m APDU) LengthInBytes() uint16 {
+ return m.LengthInBits() / 8
+}
+
+func APDUParse(io spi.ReadBuffer, apduLength uint16) (spi.Message, error) {
+
+ // Discriminator Field (apduType) (Used as input to a switch field)
+ var apduType uint8 = io.ReadUint8(4)
+
+ // Switch Field (Depending on the discriminator values, passes the instantiation to a sub-type)
+ var initializer APDUInitializer
+ var typeSwitchError error
+ switch {
+ case apduType == 0x0:
+ initializer, typeSwitchError = APDUConfirmedRequestParse(io, apduLength)
+ case apduType == 0x1:
+ initializer, typeSwitchError = APDUUnconfirmedRequestParse(io, apduLength)
+ case apduType == 0x2:
+ initializer, typeSwitchError = APDUSimpleAckParse(io)
+ case apduType == 0x3:
+ initializer, typeSwitchError = APDUComplexAckParse(io)
+ case apduType == 0x4:
+ initializer, typeSwitchError = APDUSegmentAckParse(io)
+ case apduType == 0x5:
+ initializer, typeSwitchError = APDUErrorParse(io)
+ case apduType == 0x6:
+ initializer, typeSwitchError = APDURejectParse(io)
+ case apduType == 0x7:
+ initializer, typeSwitchError = APDUAbortParse(io)
+ }
+ if typeSwitchError != nil {
+ return nil, errors.New("Error parsing sub-type for type-switch. " + typeSwitchError.Error())
+ }
+
+ // Create the instance
+ return initializer.initialize(), nil
+}
+
+func (m APDU) Serialize(io spi.WriteBuffer) {
+ serializeFunc := func(typ interface{}) {
+ if iAPDU, ok := typ.(IAPDU); ok {
+
+ // Discriminator Field (apduType) (Used as input to a switch field)
+ apduType := APDUApduType(iAPDU)
+ io.WriteUint8(4, (apduType))
+
+ // Switch field (Depending on the discriminator values, passes the serialization to a sub-type)
+ iAPDU.Serialize(io)
+ }
+ }
+ serializeFunc(m)
+}
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUAbort.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUAbort.go
new file mode 100644
index 0000000..b2a0695
--- /dev/null
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUAbort.go
@@ -0,0 +1,122 @@
+//
+// 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.
+//
+package model
+
+import (
+ log "github.com/sirupsen/logrus"
+ "plc4x.apache.org/plc4go-modbus-driver/0.8.0/internal/plc4go/spi"
+)
+
+// The data-structure of this message
+type APDUAbort struct {
+ server bool
+ originalInvokeId uint8
+ abortReason uint8
+ APDU
+}
+
+// The corresponding interface
+type IAPDUAbort interface {
+ IAPDU
+ Serialize(io spi.WriteBuffer)
+}
+
+// Accessors for discriminator values.
+func (m APDUAbort) ApduType() uint8 {
+ return 0x7
+}
+
+func (m APDUAbort) initialize() spi.Message {
+ return m
+}
+
+func NewAPDUAbort(server bool, originalInvokeId uint8, abortReason uint8) APDUInitializer {
+ return &APDUAbort{server: server, originalInvokeId: originalInvokeId, abortReason: abortReason}
+}
+
+func (m APDUAbort) LengthInBits() uint16 {
+ var lengthInBits uint16 = m.APDU.LengthInBits()
+
+ // Reserved Field (reserved)
+ lengthInBits += 3
+
+ // Simple field (server)
+ lengthInBits += 1
+
+ // Simple field (originalInvokeId)
+ lengthInBits += 8
+
+ // Simple field (abortReason)
+ lengthInBits += 8
+
+ return lengthInBits
+}
+
+func (m APDUAbort) LengthInBytes() uint16 {
+ return m.LengthInBits() / 8
+}
+
+func APDUAbortParse(io spi.ReadBuffer) (APDUInitializer, error) {
+
+ // Reserved Field (Compartmentalized so the "reserved" variable can't leak)
+ {
+ var reserved uint8 = io.ReadUint8(3)
+ if reserved != uint8(0x00) {
+ log.WithFields(log.Fields{
+ "expected value": uint8(0x00),
+ "got value": reserved,
+ }).Info("Got unexpected response.")
+ }
+ }
+
+ // Simple Field (server)
+ var server bool = io.ReadBit()
+
+ // Simple Field (originalInvokeId)
+ var originalInvokeId uint8 = io.ReadUint8(8)
+
+ // Simple Field (abortReason)
+ var abortReason uint8 = io.ReadUint8(8)
+
+ // Create the instance
+ return NewAPDUAbort(server, originalInvokeId, abortReason), nil
+}
+
+func (m APDUAbort) Serialize(io spi.WriteBuffer) {
+ serializeFunc := func(typ interface{}) {
+ if _, ok := typ.(IAPDUAbort); ok {
+
+ // Reserved Field (reserved)
+ io.WriteUint8(3, uint8(0x00))
+
+ // Simple Field (server)
+ var server bool = m.server
+ io.WriteBit((bool)(server))
+
+ // Simple Field (originalInvokeId)
+ var originalInvokeId uint8 = m.originalInvokeId
+ io.WriteUint8(8, (originalInvokeId))
+
+ // Simple Field (abortReason)
+ var abortReason uint8 = m.abortReason
+ io.WriteUint8(8, (abortReason))
+ }
+ }
+ serializeFunc(m)
+}
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUComplexAck.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUComplexAck.go
new file mode 100644
index 0000000..39294fc
--- /dev/null
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUComplexAck.go
@@ -0,0 +1,183 @@
+//
+// 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.
+//
+package model
+
+import (
+ "errors"
+ log "github.com/sirupsen/logrus"
+ "plc4x.apache.org/plc4go-modbus-driver/0.8.0/internal/plc4go/spi"
+ "reflect"
+)
+
+// The data-structure of this message
+type APDUComplexAck struct {
+ segmentedMessage bool
+ moreFollows bool
+ originalInvokeId uint8
+ sequenceNumber *uint8
+ proposedWindowSize *uint8
+ serviceAck BACnetServiceAck
+ APDU
+}
+
+// The corresponding interface
+type IAPDUComplexAck interface {
+ IAPDU
+ Serialize(io spi.WriteBuffer)
+}
+
+// Accessors for discriminator values.
+func (m APDUComplexAck) ApduType() uint8 {
+ return 0x3
+}
+
+func (m APDUComplexAck) initialize() spi.Message {
+ return m
+}
+
+func NewAPDUComplexAck(segmentedMessage bool, moreFollows bool, originalInvokeId uint8, sequenceNumber *uint8, proposedWindowSize *uint8, serviceAck BACnetServiceAck) APDUInitializer {
+ return &APDUComplexAck{segmentedMessage: segmentedMessage, moreFollows: moreFollows, originalInvokeId: originalInvokeId, sequenceNumber: sequenceNumber, proposedWindowSize: proposedWindowSize, serviceAck: serviceAck}
+}
+
+func (m APDUComplexAck) LengthInBits() uint16 {
+ var lengthInBits uint16 = m.APDU.LengthInBits()
+
+ // Simple field (segmentedMessage)
+ lengthInBits += 1
+
+ // Simple field (moreFollows)
+ lengthInBits += 1
+
+ // Reserved Field (reserved)
+ lengthInBits += 2
+
+ // Simple field (originalInvokeId)
+ lengthInBits += 8
+
+ // Optional Field (sequenceNumber)
+ if m.sequenceNumber != nil {
+ lengthInBits += 8
+ }
+
+ // Optional Field (proposedWindowSize)
+ if m.proposedWindowSize != nil {
+ lengthInBits += 8
+ }
+
+ // Simple field (serviceAck)
+ lengthInBits += m.serviceAck.LengthInBits()
+
+ return lengthInBits
+}
+
+func (m APDUComplexAck) LengthInBytes() uint16 {
+ return m.LengthInBits() / 8
+}
+
+func APDUComplexAckParse(io spi.ReadBuffer) (APDUInitializer, error) {
+
+ // Simple Field (segmentedMessage)
+ var segmentedMessage bool = io.ReadBit()
+
+ // Simple Field (moreFollows)
+ var moreFollows bool = io.ReadBit()
+
+ // Reserved Field (Compartmentalized so the "reserved" variable can't leak)
+ {
+ var reserved uint8 = io.ReadUint8(2)
+ if reserved != uint8(0) {
+ log.WithFields(log.Fields{
+ "expected value": uint8(0),
+ "got value": reserved,
+ }).Info("Got unexpected response.")
+ }
+ }
+
+ // Simple Field (originalInvokeId)
+ var originalInvokeId uint8 = io.ReadUint8(8)
+
+ // Optional Field (sequenceNumber) (Can be skipped, if a given expression evaluates to false)
+ var sequenceNumber *uint8 = nil
+ if segmentedMessage {
+ _val := io.ReadUint8(8)
+ sequenceNumber = &_val
+ }
+
+ // Optional Field (proposedWindowSize) (Can be skipped, if a given expression evaluates to false)
+ var proposedWindowSize *uint8 = nil
+ if segmentedMessage {
+ _val := io.ReadUint8(8)
+ proposedWindowSize = &_val
+ }
+
+ // Simple Field (serviceAck)
+ _serviceAckMessage, _err := BACnetServiceAckParse(io)
+ if _err != nil {
+ return nil, errors.New("Error parsing simple field 'serviceAck'. " + _err.Error())
+ }
+ var serviceAck BACnetServiceAck
+ serviceAck, _serviceAckOk := _serviceAckMessage.(BACnetServiceAck)
+ if !_serviceAckOk {
+ return nil, errors.New("Couldn't cast message of type " + reflect.TypeOf(_serviceAckMessage).Name() + " to BACnetServiceAck")
+ }
+
+ // Create the instance
+ return NewAPDUComplexAck(segmentedMessage, moreFollows, originalInvokeId, sequenceNumber, proposedWindowSize, serviceAck), nil
+}
+
+func (m APDUComplexAck) Serialize(io spi.WriteBuffer) {
+ serializeFunc := func(typ interface{}) {
+ if _, ok := typ.(IAPDUComplexAck); ok {
+
+ // Simple Field (segmentedMessage)
+ var segmentedMessage bool = m.segmentedMessage
+ io.WriteBit((bool)(segmentedMessage))
+
+ // Simple Field (moreFollows)
+ var moreFollows bool = m.moreFollows
+ io.WriteBit((bool)(moreFollows))
+
+ // Reserved Field (reserved)
+ io.WriteUint8(2, uint8(0))
+
+ // Simple Field (originalInvokeId)
+ var originalInvokeId uint8 = m.originalInvokeId
+ io.WriteUint8(8, (originalInvokeId))
+
+ // Optional Field (sequenceNumber) (Can be skipped, if the value is null)
+ var sequenceNumber *uint8 = nil
+ if m.sequenceNumber != nil {
+ sequenceNumber = m.sequenceNumber
+ io.WriteUint8(8, *(sequenceNumber))
+ }
+
+ // Optional Field (proposedWindowSize) (Can be skipped, if the value is null)
+ var proposedWindowSize *uint8 = nil
+ if m.proposedWindowSize != nil {
+ proposedWindowSize = m.proposedWindowSize
+ io.WriteUint8(8, *(proposedWindowSize))
+ }
+
+ // Simple Field (serviceAck)
+ var serviceAck BACnetServiceAck = m.serviceAck
+ serviceAck.Serialize(io)
+ }
+ }
+ serializeFunc(m)
+}
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUConfirmedRequest.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUConfirmedRequest.go
new file mode 100644
index 0000000..4dca969
--- /dev/null
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUConfirmedRequest.go
@@ -0,0 +1,216 @@
+//
+// 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.
+//
+package model
+
+import (
+ "errors"
+ log "github.com/sirupsen/logrus"
+ "plc4x.apache.org/plc4go-modbus-driver/0.8.0/internal/plc4go/spi"
+ "reflect"
+)
+
+// The data-structure of this message
+type APDUConfirmedRequest struct {
+ segmentedMessage bool
+ moreFollows bool
+ segmentedResponseAccepted bool
+ maxSegmentsAccepted uint8
+ maxApduLengthAccepted uint8
+ invokeId uint8
+ sequenceNumber *uint8
+ proposedWindowSize *uint8
+ serviceRequest BACnetConfirmedServiceRequest
+ APDU
+}
+
+// The corresponding interface
+type IAPDUConfirmedRequest interface {
+ IAPDU
+ Serialize(io spi.WriteBuffer)
+}
+
+// Accessors for discriminator values.
+func (m APDUConfirmedRequest) ApduType() uint8 {
+ return 0x0
+}
+
+func (m APDUConfirmedRequest) initialize() spi.Message {
+ return m
+}
+
+func NewAPDUConfirmedRequest(segmentedMessage bool, moreFollows bool, segmentedResponseAccepted bool, maxSegmentsAccepted uint8, maxApduLengthAccepted uint8, invokeId uint8, sequenceNumber *uint8, proposedWindowSize *uint8, serviceRequest BACnetConfirmedServiceRequest) APDUInitializer {
+ return &APDUConfirmedRequest{segmentedMessage: segmentedMessage, moreFollows: moreFollows, segmentedResponseAccepted: segmentedResponseAccepted, maxSegmentsAccepted: maxSegmentsAccepted, maxApduLengthAccepted: maxApduLengthAccepted, invokeId: invokeId, sequenceNumber: sequenceNumber, proposedWindowSize: proposedWindowSize, serviceRequest: serviceRequest}
+}
+
+func (m APDUConfirmedRequest) LengthInBits() uint16 {
+ var lengthInBits uint16 = m.APDU.LengthInBits()
+
+ // Simple field (segmentedMessage)
+ lengthInBits += 1
+
+ // Simple field (moreFollows)
+ lengthInBits += 1
+
+ // Simple field (segmentedResponseAccepted)
+ lengthInBits += 1
+
+ // Reserved Field (reserved)
+ lengthInBits += 2
+
+ // Simple field (maxSegmentsAccepted)
+ lengthInBits += 3
+
+ // Simple field (maxApduLengthAccepted)
+ lengthInBits += 4
+
+ // Simple field (invokeId)
+ lengthInBits += 8
+
+ // Optional Field (sequenceNumber)
+ if m.sequenceNumber != nil {
+ lengthInBits += 8
+ }
+
+ // Optional Field (proposedWindowSize)
+ if m.proposedWindowSize != nil {
+ lengthInBits += 8
+ }
+
+ // Simple field (serviceRequest)
+ lengthInBits += m.serviceRequest.LengthInBits()
+
+ return lengthInBits
+}
+
+func (m APDUConfirmedRequest) LengthInBytes() uint16 {
+ return m.LengthInBits() / 8
+}
+
+func APDUConfirmedRequestParse(io spi.ReadBuffer, apduLength uint16) (APDUInitializer, error) {
+
+ // Simple Field (segmentedMessage)
+ var segmentedMessage bool = io.ReadBit()
+
+ // Simple Field (moreFollows)
+ var moreFollows bool = io.ReadBit()
+
+ // Simple Field (segmentedResponseAccepted)
+ var segmentedResponseAccepted bool = io.ReadBit()
+
+ // Reserved Field (Compartmentalized so the "reserved" variable can't leak)
+ {
+ var reserved uint8 = io.ReadUint8(2)
+ if reserved != uint8(0) {
+ log.WithFields(log.Fields{
+ "expected value": uint8(0),
+ "got value": reserved,
+ }).Info("Got unexpected response.")
+ }
+ }
+
+ // Simple Field (maxSegmentsAccepted)
+ var maxSegmentsAccepted uint8 = io.ReadUint8(3)
+
+ // Simple Field (maxApduLengthAccepted)
+ var maxApduLengthAccepted uint8 = io.ReadUint8(4)
+
+ // Simple Field (invokeId)
+ var invokeId uint8 = io.ReadUint8(8)
+
+ // Optional Field (sequenceNumber) (Can be skipped, if a given expression evaluates to false)
+ var sequenceNumber *uint8 = nil
+ if segmentedMessage {
+ _val := io.ReadUint8(8)
+ sequenceNumber = &_val
+ }
+
+ // Optional Field (proposedWindowSize) (Can be skipped, if a given expression evaluates to false)
+ var proposedWindowSize *uint8 = nil
+ if segmentedMessage {
+ _val := io.ReadUint8(8)
+ proposedWindowSize = &_val
+ }
+
+ // Simple Field (serviceRequest)
+ _serviceRequestMessage, _err := BACnetConfirmedServiceRequestParse(io, uint16((apduLength)-((3)+(spi.InlineIf((segmentedMessage), uint16(2), uint16(0))))))
+ if _err != nil {
+ return nil, errors.New("Error parsing simple field 'serviceRequest'. " + _err.Error())
+ }
+ var serviceRequest BACnetConfirmedServiceRequest
+ serviceRequest, _serviceRequestOk := _serviceRequestMessage.(BACnetConfirmedServiceRequest)
+ if !_serviceRequestOk {
+ return nil, errors.New("Couldn't cast message of type " + reflect.TypeOf(_serviceRequestMessage).Name() + " to BACnetConfirmedServiceRequest")
+ }
+
+ // Create the instance
+ return NewAPDUConfirmedRequest(segmentedMessage, moreFollows, segmentedResponseAccepted, maxSegmentsAccepted, maxApduLengthAccepted, invokeId, sequenceNumber, proposedWindowSize, serviceRequest), nil
+}
+
+func (m APDUConfirmedRequest) Serialize(io spi.WriteBuffer) {
+ serializeFunc := func(typ interface{}) {
+ if _, ok := typ.(IAPDUConfirmedRequest); ok {
+
+ // Simple Field (segmentedMessage)
+ var segmentedMessage bool = m.segmentedMessage
+ io.WriteBit((bool)(segmentedMessage))
+
+ // Simple Field (moreFollows)
+ var moreFollows bool = m.moreFollows
+ io.WriteBit((bool)(moreFollows))
+
+ // Simple Field (segmentedResponseAccepted)
+ var segmentedResponseAccepted bool = m.segmentedResponseAccepted
+ io.WriteBit((bool)(segmentedResponseAccepted))
+
+ // Reserved Field (reserved)
+ io.WriteUint8(2, uint8(0))
+
+ // Simple Field (maxSegmentsAccepted)
+ var maxSegmentsAccepted uint8 = m.maxSegmentsAccepted
+ io.WriteUint8(3, (maxSegmentsAccepted))
+
+ // Simple Field (maxApduLengthAccepted)
+ var maxApduLengthAccepted uint8 = m.maxApduLengthAccepted
+ io.WriteUint8(4, (maxApduLengthAccepted))
+
+ // Simple Field (invokeId)
+ var invokeId uint8 = m.invokeId
+ io.WriteUint8(8, (invokeId))
+
+ // Optional Field (sequenceNumber) (Can be skipped, if the value is null)
+ var sequenceNumber *uint8 = nil
+ if m.sequenceNumber != nil {
+ sequenceNumber = m.sequenceNumber
+ io.WriteUint8(8, *(sequenceNumber))
+ }
+
+ // Optional Field (proposedWindowSize) (Can be skipped, if the value is null)
+ var proposedWindowSize *uint8 = nil
+ if m.proposedWindowSize != nil {
+ proposedWindowSize = m.proposedWindowSize
+ io.WriteUint8(8, *(proposedWindowSize))
+ }
+
+ // Simple Field (serviceRequest)
+ var serviceRequest BACnetConfirmedServiceRequest = m.serviceRequest
+ serviceRequest.Serialize(io)
+ }
+ }
+ serializeFunc(m)
+}
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUError.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUError.go
new file mode 100644
index 0000000..f9b8b0d
--- /dev/null
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUError.go
@@ -0,0 +1,121 @@
+//
+// 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.
+//
+package model
+
+import (
+ "errors"
+ log "github.com/sirupsen/logrus"
+ "plc4x.apache.org/plc4go-modbus-driver/0.8.0/internal/plc4go/spi"
+ "reflect"
+)
+
+// The data-structure of this message
+type APDUError struct {
+ originalInvokeId uint8
+ error BACnetError
+ APDU
+}
+
+// The corresponding interface
+type IAPDUError interface {
+ IAPDU
+ Serialize(io spi.WriteBuffer)
+}
+
+// Accessors for discriminator values.
+func (m APDUError) ApduType() uint8 {
+ return 0x5
+}
+
+func (m APDUError) initialize() spi.Message {
+ return m
+}
+
+func NewAPDUError(originalInvokeId uint8, error BACnetError) APDUInitializer {
+ return &APDUError{originalInvokeId: originalInvokeId, error: error}
+}
+
+func (m APDUError) LengthInBits() uint16 {
+ var lengthInBits uint16 = m.APDU.LengthInBits()
+
+ // Reserved Field (reserved)
+ lengthInBits += 4
+
+ // Simple field (originalInvokeId)
+ lengthInBits += 8
+
+ // Simple field (error)
+ lengthInBits += m.error.LengthInBits()
+
+ return lengthInBits
+}
+
+func (m APDUError) LengthInBytes() uint16 {
+ return m.LengthInBits() / 8
+}
+
+func APDUErrorParse(io spi.ReadBuffer) (APDUInitializer, error) {
+
+ // Reserved Field (Compartmentalized so the "reserved" variable can't leak)
+ {
+ var reserved uint8 = io.ReadUint8(4)
+ if reserved != uint8(0x00) {
+ log.WithFields(log.Fields{
+ "expected value": uint8(0x00),
+ "got value": reserved,
+ }).Info("Got unexpected response.")
+ }
+ }
+
+ // Simple Field (originalInvokeId)
+ var originalInvokeId uint8 = io.ReadUint8(8)
+
+ // Simple Field (error)
+ _errorMessage, _err := BACnetErrorParse(io)
+ if _err != nil {
+ return nil, errors.New("Error parsing simple field 'error'. " + _err.Error())
+ }
+ var error BACnetError
+ error, _errorOk := _errorMessage.(BACnetError)
+ if !_errorOk {
+ return nil, errors.New("Couldn't cast message of type " + reflect.TypeOf(_errorMessage).Name() + " to BACnetError")
+ }
+
+ // Create the instance
+ return NewAPDUError(originalInvokeId, error), nil
+}
+
+func (m APDUError) Serialize(io spi.WriteBuffer) {
+ serializeFunc := func(typ interface{}) {
+ if _, ok := typ.(IAPDUError); ok {
+
+ // Reserved Field (reserved)
+ io.WriteUint8(4, uint8(0x00))
+
+ // Simple Field (originalInvokeId)
+ var originalInvokeId uint8 = m.originalInvokeId
+ io.WriteUint8(8, (originalInvokeId))
+
+ // Simple Field (error)
+ var error BACnetError = m.error
+ error.Serialize(io)
+ }
+ }
+ serializeFunc(m)
+}
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUReject.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUReject.go
new file mode 100644
index 0000000..b74c654
--- /dev/null
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUReject.go
@@ -0,0 +1,111 @@
+//
+// 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.
+//
+package model
+
+import (
+ log "github.com/sirupsen/logrus"
+ "plc4x.apache.org/plc4go-modbus-driver/0.8.0/internal/plc4go/spi"
+)
+
+// The data-structure of this message
+type APDUReject struct {
+ originalInvokeId uint8
+ rejectReason uint8
+ APDU
+}
+
+// The corresponding interface
+type IAPDUReject interface {
+ IAPDU
+ Serialize(io spi.WriteBuffer)
+}
+
+// Accessors for discriminator values.
+func (m APDUReject) ApduType() uint8 {
+ return 0x6
+}
+
+func (m APDUReject) initialize() spi.Message {
+ return m
+}
+
+func NewAPDUReject(originalInvokeId uint8, rejectReason uint8) APDUInitializer {
+ return &APDUReject{originalInvokeId: originalInvokeId, rejectReason: rejectReason}
+}
+
+func (m APDUReject) LengthInBits() uint16 {
+ var lengthInBits uint16 = m.APDU.LengthInBits()
+
+ // Reserved Field (reserved)
+ lengthInBits += 4
+
+ // Simple field (originalInvokeId)
+ lengthInBits += 8
+
+ // Simple field (rejectReason)
+ lengthInBits += 8
+
+ return lengthInBits
+}
+
+func (m APDUReject) LengthInBytes() uint16 {
+ return m.LengthInBits() / 8
+}
+
+func APDURejectParse(io spi.ReadBuffer) (APDUInitializer, error) {
+
+ // Reserved Field (Compartmentalized so the "reserved" variable can't leak)
+ {
+ var reserved uint8 = io.ReadUint8(4)
+ if reserved != uint8(0x00) {
+ log.WithFields(log.Fields{
+ "expected value": uint8(0x00),
+ "got value": reserved,
+ }).Info("Got unexpected response.")
+ }
+ }
+
+ // Simple Field (originalInvokeId)
+ var originalInvokeId uint8 = io.ReadUint8(8)
+
+ // Simple Field (rejectReason)
+ var rejectReason uint8 = io.ReadUint8(8)
+
+ // Create the instance
+ return NewAPDUReject(originalInvokeId, rejectReason), nil
+}
+
+func (m APDUReject) Serialize(io spi.WriteBuffer) {
+ serializeFunc := func(typ interface{}) {
+ if _, ok := typ.(IAPDUReject); ok {
+
+ // Reserved Field (reserved)
+ io.WriteUint8(4, uint8(0x00))
+
+ // Simple Field (originalInvokeId)
+ var originalInvokeId uint8 = m.originalInvokeId
+ io.WriteUint8(8, (originalInvokeId))
+
+ // Simple Field (rejectReason)
+ var rejectReason uint8 = m.rejectReason
+ io.WriteUint8(8, (rejectReason))
+ }
+ }
+ serializeFunc(m)
+}
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUSegmentAck.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUSegmentAck.go
new file mode 100644
index 0000000..9fc723e
--- /dev/null
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUSegmentAck.go
@@ -0,0 +1,144 @@
+//
+// 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.
+//
+package model
+
+import (
+ log "github.com/sirupsen/logrus"
+ "plc4x.apache.org/plc4go-modbus-driver/0.8.0/internal/plc4go/spi"
+)
+
+// The data-structure of this message
+type APDUSegmentAck struct {
+ negativeAck bool
+ server bool
+ originalInvokeId uint8
+ sequenceNumber uint8
+ proposedWindowSize uint8
+ APDU
+}
+
+// The corresponding interface
+type IAPDUSegmentAck interface {
+ IAPDU
+ Serialize(io spi.WriteBuffer)
+}
+
+// Accessors for discriminator values.
+func (m APDUSegmentAck) ApduType() uint8 {
+ return 0x4
+}
+
+func (m APDUSegmentAck) initialize() spi.Message {
+ return m
+}
+
+func NewAPDUSegmentAck(negativeAck bool, server bool, originalInvokeId uint8, sequenceNumber uint8, proposedWindowSize uint8) APDUInitializer {
+ return &APDUSegmentAck{negativeAck: negativeAck, server: server, originalInvokeId: originalInvokeId, sequenceNumber: sequenceNumber, proposedWindowSize: proposedWindowSize}
+}
+
+func (m APDUSegmentAck) LengthInBits() uint16 {
+ var lengthInBits uint16 = m.APDU.LengthInBits()
+
+ // Reserved Field (reserved)
+ lengthInBits += 2
+
+ // Simple field (negativeAck)
+ lengthInBits += 1
+
+ // Simple field (server)
+ lengthInBits += 1
+
+ // Simple field (originalInvokeId)
+ lengthInBits += 8
+
+ // Simple field (sequenceNumber)
+ lengthInBits += 8
+
+ // Simple field (proposedWindowSize)
+ lengthInBits += 8
+
+ return lengthInBits
+}
+
+func (m APDUSegmentAck) LengthInBytes() uint16 {
+ return m.LengthInBits() / 8
+}
+
+func APDUSegmentAckParse(io spi.ReadBuffer) (APDUInitializer, error) {
+
+ // Reserved Field (Compartmentalized so the "reserved" variable can't leak)
+ {
+ var reserved uint8 = io.ReadUint8(2)
+ if reserved != uint8(0x00) {
+ log.WithFields(log.Fields{
+ "expected value": uint8(0x00),
+ "got value": reserved,
+ }).Info("Got unexpected response.")
+ }
+ }
+
+ // Simple Field (negativeAck)
+ var negativeAck bool = io.ReadBit()
+
+ // Simple Field (server)
+ var server bool = io.ReadBit()
+
+ // Simple Field (originalInvokeId)
+ var originalInvokeId uint8 = io.ReadUint8(8)
+
+ // Simple Field (sequenceNumber)
+ var sequenceNumber uint8 = io.ReadUint8(8)
+
+ // Simple Field (proposedWindowSize)
+ var proposedWindowSize uint8 = io.ReadUint8(8)
+
+ // Create the instance
+ return NewAPDUSegmentAck(negativeAck, server, originalInvokeId, sequenceNumber, proposedWindowSize), nil
+}
+
+func (m APDUSegmentAck) Serialize(io spi.WriteBuffer) {
+ serializeFunc := func(typ interface{}) {
+ if _, ok := typ.(IAPDUSegmentAck); ok {
+
+ // Reserved Field (reserved)
+ io.WriteUint8(2, uint8(0x00))
+
+ // Simple Field (negativeAck)
+ var negativeAck bool = m.negativeAck
+ io.WriteBit((bool)(negativeAck))
+
+ // Simple Field (server)
+ var server bool = m.server
+ io.WriteBit((bool)(server))
+
+ // Simple Field (originalInvokeId)
+ var originalInvokeId uint8 = m.originalInvokeId
+ io.WriteUint8(8, (originalInvokeId))
+
+ // Simple Field (sequenceNumber)
+ var sequenceNumber uint8 = m.sequenceNumber
+ io.WriteUint8(8, (sequenceNumber))
+
+ // Simple Field (proposedWindowSize)
+ var proposedWindowSize uint8 = m.proposedWindowSize
+ io.WriteUint8(8, (proposedWindowSize))
+ }
+ }
+ serializeFunc(m)
+}
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUSimpleAck.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUSimpleAck.go
new file mode 100644
index 0000000..6d00d8f
--- /dev/null
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUSimpleAck.go
@@ -0,0 +1,111 @@
+//
+// 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.
+//
+package model
+
+import (
+ log "github.com/sirupsen/logrus"
+ "plc4x.apache.org/plc4go-modbus-driver/0.8.0/internal/plc4go/spi"
+)
+
+// The data-structure of this message
+type APDUSimpleAck struct {
+ originalInvokeId uint8
+ serviceChoice uint8
+ APDU
+}
+
+// The corresponding interface
+type IAPDUSimpleAck interface {
+ IAPDU
+ Serialize(io spi.WriteBuffer)
+}
+
+// Accessors for discriminator values.
+func (m APDUSimpleAck) ApduType() uint8 {
+ return 0x2
+}
+
+func (m APDUSimpleAck) initialize() spi.Message {
+ return m
+}
+
+func NewAPDUSimpleAck(originalInvokeId uint8, serviceChoice uint8) APDUInitializer {
+ return &APDUSimpleAck{originalInvokeId: originalInvokeId, serviceChoice: serviceChoice}
+}
+
+func (m APDUSimpleAck) LengthInBits() uint16 {
+ var lengthInBits uint16 = m.APDU.LengthInBits()
+
+ // Reserved Field (reserved)
+ lengthInBits += 4
+
+ // Simple field (originalInvokeId)
+ lengthInBits += 8
+
+ // Simple field (serviceChoice)
+ lengthInBits += 8
+
+ return lengthInBits
+}
+
+func (m APDUSimpleAck) LengthInBytes() uint16 {
+ return m.LengthInBits() / 8
+}
+
+func APDUSimpleAckParse(io spi.ReadBuffer) (APDUInitializer, error) {
+
+ // Reserved Field (Compartmentalized so the "reserved" variable can't leak)
+ {
+ var reserved uint8 = io.ReadUint8(4)
+ if reserved != uint8(0) {
+ log.WithFields(log.Fields{
+ "expected value": uint8(0),
+ "got value": reserved,
+ }).Info("Got unexpected response.")
+ }
+ }
+
+ // Simple Field (originalInvokeId)
+ var originalInvokeId uint8 = io.ReadUint8(8)
+
+ // Simple Field (serviceChoice)
+ var serviceChoice uint8 = io.ReadUint8(8)
+
+ // Create the instance
+ return NewAPDUSimpleAck(originalInvokeId, serviceChoice), nil
+}
+
+func (m APDUSimpleAck) Serialize(io spi.WriteBuffer) {
+ serializeFunc := func(typ interface{}) {
+ if _, ok := typ.(IAPDUSimpleAck); ok {
+
+ // Reserved Field (reserved)
+ io.WriteUint8(4, uint8(0))
+
+ // Simple Field (originalInvokeId)
+ var originalInvokeId uint8 = m.originalInvokeId
+ io.WriteUint8(8, (originalInvokeId))
+
+ // Simple Field (serviceChoice)
+ var serviceChoice uint8 = m.serviceChoice
+ io.WriteUint8(8, (serviceChoice))
+ }
+ }
+ serializeFunc(m)
+}
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUUnconfirmedRequest.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUUnconfirmedRequest.go
new file mode 100644
index 0000000..598351e
--- /dev/null
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUUnconfirmedRequest.go
@@ -0,0 +1,110 @@
+//
+// 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.
+//
+package model
+
+import (
+ "errors"
+ log "github.com/sirupsen/logrus"
+ "plc4x.apache.org/plc4go-modbus-driver/0.8.0/internal/plc4go/spi"
+ "reflect"
+)
+
+// The data-structure of this message
+type APDUUnconfirmedRequest struct {
+ serviceRequest BACnetUnconfirmedServiceRequest
+ APDU
+}
+
+// The corresponding interface
+type IAPDUUnconfirmedRequest interface {
+ IAPDU
+ Serialize(io spi.WriteBuffer)
+}
+
+// Accessors for discriminator values.
+func (m APDUUnconfirmedRequest) ApduType() uint8 {
+ return 0x1
+}
+
+func (m APDUUnconfirmedRequest) initialize() spi.Message {
+ return m
+}
+
+func NewAPDUUnconfirmedRequest(serviceRequest BACnetUnconfirmedServiceRequest) APDUInitializer {
+ return &APDUUnconfirmedRequest{serviceRequest: serviceRequest}
+}
+
+func (m APDUUnconfirmedRequest) LengthInBits() uint16 {
+ var lengthInBits uint16 = m.APDU.LengthInBits()
+
+ // Reserved Field (reserved)
+ lengthInBits += 4
+
+ // Simple field (serviceRequest)
+ lengthInBits += m.serviceRequest.LengthInBits()
+
+ return lengthInBits
+}
+
+func (m APDUUnconfirmedRequest) LengthInBytes() uint16 {
+ return m.LengthInBits() / 8
+}
+
+func APDUUnconfirmedRequestParse(io spi.ReadBuffer, apduLength uint16) (APDUInitializer, error) {
+
+ // Reserved Field (Compartmentalized so the "reserved" variable can't leak)
+ {
+ var reserved uint8 = io.ReadUint8(4)
+ if reserved != uint8(0) {
+ log.WithFields(log.Fields{
+ "expected value": uint8(0),
+ "got value": reserved,
+ }).Info("Got unexpected response.")
+ }
+ }
+
+ // Simple Field (serviceRequest)
+ _serviceRequestMessage, _err := BACnetUnconfirmedServiceRequestParse(io, uint16((apduLength)-(1)))
+ if _err != nil {
+ return nil, errors.New("Error parsing simple field 'serviceRequest'. " + _err.Error())
+ }
+ var serviceRequest BACnetUnconfirmedServiceRequest
+ serviceRequest, _serviceRequestOk := _serviceRequestMessage.(BACnetUnconfirmedServiceRequest)
+ if !_serviceRequestOk {
+ return nil, errors.New("Couldn't cast message of type " + reflect.TypeOf(_serviceRequestMessage).Name() + " to BACnetUnconfirmedServiceRequest")
+ }
+
+ // Create the instance
+ return NewAPDUUnconfirmedRequest(serviceRequest), nil
+}
+
+func (m APDUUnconfirmedRequest) Serialize(io spi.WriteBuffer) {
+ serializeFunc := func(typ interface{}) {
+ if _, ok := typ.(IAPDUUnconfirmedRequest); ok {
+
+ // Reserved Field (reserved)
+ io.WriteUint8(4, uint8(0))
+
+ // Simple Field (serviceRequest)
+ var serviceRequest BACnetUnconfirmedServiceRequest = m.serviceRequest
+ serviceRequest.Serialize(io)
+ }
+ }
+ serializeFunc(m)
+}
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/ApplicationTag.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/ApplicationTag.go
new file mode 100644
index 0000000..8d11ead
--- /dev/null
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/ApplicationTag.go
@@ -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.
+//
+package model
+
+import "plc4x.apache.org/plc4go-modbus-driver/0.8.0/internal/plc4go/spi"
+
+type ApplicationTag int8
+
+const (
+ ApplicationTag_NULL ApplicationTag = 0x0
+ ApplicationTag_BOOLEAN ApplicationTag = 0x1
+ ApplicationTag_UNSIGNED_INTEGER ApplicationTag = 0x2
+ ApplicationTag_SIGNED_INTEGER ApplicationTag = 0x3
+ ApplicationTag_REAL ApplicationTag = 0x4
+ ApplicationTag_DOUBLE ApplicationTag = 0x5
+ ApplicationTag_OCTET_STRING ApplicationTag = 0x6
+ ApplicationTag_CHARACTER_STRING ApplicationTag = 0x7
+ ApplicationTag_BIT_STRING ApplicationTag = 0x8
+ ApplicationTag_ENUMERATED ApplicationTag = 0x9
+ ApplicationTag_DATE ApplicationTag = 0xA
+ ApplicationTag_TIME ApplicationTag = 0xB
+ ApplicationTag_BACNET_OBJECT_IDENTIFIER ApplicationTag = 0xC
+)
+
+func ApplicationTagParse(io spi.ReadBuffer) (ApplicationTag, error) {
+ // TODO: Implement ...
+ return 0, nil
+}
+
+func (e ApplicationTag) Serialize(io spi.WriteBuffer) {
+ // TODO: Implement ...
+}
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetAddress.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetAddress.go
new file mode 100644
index 0000000..7249127
--- /dev/null
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetAddress.go
@@ -0,0 +1,96 @@
+//
+// 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.
+//
+package model
+
+import (
+ "plc4x.apache.org/plc4go-modbus-driver/0.8.0/internal/plc4go/spi"
+)
+
+// The data-structure of this message
+type BACnetAddress struct {
+ address []uint8
+ port uint16
+}
+
+// The corresponding interface
+type IBACnetAddress interface {
+ spi.Message
+ Serialize(io spi.WriteBuffer)
+}
+
+func NewBACnetAddress(address []uint8, port uint16) spi.Message {
+ return &BACnetAddress{address: address, port: port}
+}
+
+func (m BACnetAddress) LengthInBits() uint16 {
+ var lengthInBits uint16 = 0
+
+ // Array field
+ if len(m.address) > 0 {
+ lengthInBits += 8 * uint16(len(m.address))
+ }
+
+ // Simple field (port)
+ lengthInBits += 16
+
+ return lengthInBits
+}
+
+func (m BACnetAddress) LengthInBytes() uint16 {
+ return m.LengthInBits() / 8
+}
+
+func BACnetAddressParse(io spi.ReadBuffer) (spi.Message, error) {
+
+ // Array field (address)
+ var address []uint8
+ // Count array
+ {
+ address := make([]uint8, 4)
+ for curItem := uint16(0); curItem < uint16(4); curItem++ {
+
+ address = append(address, io.ReadUint8(8))
+ }
+ }
+
+ // Simple Field (port)
+ var port uint16 = io.ReadUint16(16)
+
+ // Create the instance
+ return NewBACnetAddress(address, port), nil
+}
+
+func (m BACnetAddress) Serialize(io spi.WriteBuffer) {
+ serializeFunc := func(typ interface{}) {
+ if _, ok := typ.(IBACnetAddress); ok {
+
+ // Array Field (address)
+ if m.address != nil {
+ for _, _element := range m.address {
+ io.WriteUint8(8, _element)
+ }
+ }
+
+ // Simple Field (port)
+ var port uint16 = m.port
+ io.WriteUint16(16, (port))
+ }
+ }
+ serializeFunc(m)
+}
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACK.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACK.go
new file mode 100644
index 0000000..4d28627
--- /dev/null
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACK.go
@@ -0,0 +1,119 @@
+//
+// 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.
+//
+package model
+
+import (
+ "errors"
+ "plc4x.apache.org/plc4go-modbus-driver/0.8.0/internal/plc4go/spi"
+)
+
+// The data-structure of this message
+type BACnetConfirmedServiceACK struct {
+}
+
+// The corresponding interface
+type IBACnetConfirmedServiceACK interface {
+ spi.Message
+ ServiceChoice() uint8
+ Serialize(io spi.WriteBuffer)
+}
+
+type BACnetConfirmedServiceACKInitializer interface {
+ initialize() spi.Message
+}
+
+func BACnetConfirmedServiceACKServiceChoice(m IBACnetConfirmedServiceACK) uint8 {
+ return m.ServiceChoice()
+}
+
+func (m BACnetConfirmedServiceACK) LengthInBits() uint16 {
+ var lengthInBits uint16 = 0
+
+ // Discriminator Field (serviceChoice)
+ lengthInBits += 8
+
+ // Length of sub-type elements will be added by sub-type...
+
+ return lengthInBits
+}
+
+func (m BACnetConfirmedServiceACK) LengthInBytes() uint16 {
+ return m.LengthInBits() / 8
+}
+
+func BACnetConfirmedServiceACKParse(io spi.ReadBuffer) (spi.Message, error) {
+
+ // Discriminator Field (serviceChoice) (Used as input to a switch field)
+ var serviceChoice uint8 = io.ReadUint8(8)
+
+ // Switch Field (Depending on the discriminator values, passes the instantiation to a sub-type)
+ var initializer BACnetConfirmedServiceACKInitializer
+ var typeSwitchError error
+ switch {
+ case serviceChoice == 0x03:
+ initializer, typeSwitchError = BACnetConfirmedServiceACKGetAlarmSummaryParse(io)
+ case serviceChoice == 0x04:
+ initializer, typeSwitchError = BACnetConfirmedServiceACKGetEnrollmentSummaryParse(io)
+ case serviceChoice == 0x1D:
+ initializer, typeSwitchError = BACnetConfirmedServiceACKGetEventInformationParse(io)
+ case serviceChoice == 0x06:
+ initializer, typeSwitchError = BACnetConfirmedServiceACKAtomicReadFileParse(io)
+ case serviceChoice == 0x07:
+ initializer, typeSwitchError = BACnetConfirmedServiceACKAtomicWriteFileParse(io)
+ case serviceChoice == 0x0A:
+ initializer, typeSwitchError = BACnetConfirmedServiceACKCreateObjectParse(io)
+ case serviceChoice == 0x0C:
+ initializer, typeSwitchError = BACnetConfirmedServiceACKReadPropertyParse(io)
+ case serviceChoice == 0x0E:
+ initializer, typeSwitchError = BACnetConfirmedServiceACKReadPropertyMultipleParse(io)
+ case serviceChoice == 0x1A:
+ initializer, typeSwitchError = BACnetConfirmedServiceACKReadRangeParse(io)
+ case serviceChoice == 0x12:
+ initializer, typeSwitchError = BACnetConfirmedServiceACKConfirmedPrivateTransferParse(io)
+ case serviceChoice == 0x15:
+ initializer, typeSwitchError = BACnetConfirmedServiceACKVTOpenParse(io)
+ case serviceChoice == 0x17:
+ initializer, typeSwitchError = BACnetConfirmedServiceACKVTDataParse(io)
+ case serviceChoice == 0x18:
+ initializer, typeSwitchError = BACnetConfirmedServiceACKRemovedAuthenticateParse(io)
+ case serviceChoice == 0x0D:
+ initializer, typeSwitchError = BACnetConfirmedServiceACKRemovedReadPropertyConditionalParse(io)
+ }
+ if typeSwitchError != nil {
+ return nil, errors.New("Error parsing sub-type for type-switch. " + typeSwitchError.Error())
+ }
+
+ // Create the instance
+ return initializer.initialize(), nil
+}
+
+func (m BACnetConfirmedServiceACK) Serialize(io spi.WriteBuffer) {
+ serializeFunc := func(typ interface{}) {
+ if iBACnetConfirmedServiceACK, ok := typ.(IBACnetConfirmedServiceACK); ok {
+
+ // Discriminator Field (serviceChoice) (Used as input to a switch field)
+ serviceChoice := BACnetConfirmedServiceACKServiceChoice(iBACnetConfirmedServiceACK)
+ io.WriteUint8(8, (serviceChoice))
+
+ // Switch field (Depending on the discriminator values, passes the serialization to a sub-type)
+ iBACnetConfirmedServiceACK.Serialize(io)
+ }
+ }
+ serializeFunc(m)
+}
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKAtomicReadFile.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKAtomicReadFile.go
new file mode 100644
index 0000000..b604f4a
--- /dev/null
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKAtomicReadFile.go
@@ -0,0 +1,71 @@
+//
+// 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.
+//
+package model
+
+import (
+ "plc4x.apache.org/plc4go-modbus-driver/0.8.0/internal/plc4go/spi"
+)
+
+// The data-structure of this message
+type BACnetConfirmedServiceACKAtomicReadFile struct {
+ BACnetConfirmedServiceACK
+}
+
+// The corresponding interface
+type IBACnetConfirmedServiceACKAtomicReadFile interface {
+ IBACnetConfirmedServiceACK
+ Serialize(io spi.WriteBuffer)
+}
+
+// Accessors for discriminator values.
+func (m BACnetConfirmedServiceACKAtomicReadFile) ServiceChoice() uint8 {
+ return 0x06
+}
+
+func (m BACnetConfirmedServiceACKAtomicReadFile) initialize() spi.Message {
+ return m
+}
+
+func NewBACnetConfirmedServiceACKAtomicReadFile() BACnetConfirmedServiceACKInitializer {
+ return &BACnetConfirmedServiceACKAtomicReadFile{}
+}
+
+func (m BACnetConfirmedServiceACKAtomicReadFile) LengthInBits() uint16 {
+ var lengthInBits uint16 = m.BACnetConfirmedServiceACK.LengthInBits()
+
+ return lengthInBits
+}
+
+func (m BACnetConfirmedServiceACKAtomicReadFile) LengthInBytes() uint16 {
+ return m.LengthInBits() / 8
+}
+
+func BACnetConfirmedServiceACKAtomicReadFileParse(io spi.ReadBuffer) (BACnetConfirmedServiceACKInitializer, error) {
+
+ // Create the instance
+ return NewBACnetConfirmedServiceACKAtomicReadFile(), nil
+}
+
+func (m BACnetConfirmedServiceACKAtomicReadFile) Serialize(io spi.WriteBuffer) {
+ serializeFunc := func(typ interface{}) {
+ if _, ok := typ.(IBACnetConfirmedServiceACKAtomicReadFile); ok {
+ }
+ }
+ serializeFunc(m)
+}
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKAtomicWriteFile.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKAtomicWriteFile.go
new file mode 100644
index 0000000..ccc2e6c
--- /dev/null
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKAtomicWriteFile.go
@@ -0,0 +1,71 @@
+//
+// 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.
+//
+package model
+
+import (
+ "plc4x.apache.org/plc4go-modbus-driver/0.8.0/internal/plc4go/spi"
+)
+
+// The data-structure of this message
+type BACnetConfirmedServiceACKAtomicWriteFile struct {
+ BACnetConfirmedServiceACK
+}
+
+// The corresponding interface
+type IBACnetConfirmedServiceACKAtomicWriteFile interface {
+ IBACnetConfirmedServiceACK
+ Serialize(io spi.WriteBuffer)
+}
+
+// Accessors for discriminator values.
+func (m BACnetConfirmedServiceACKAtomicWriteFile) ServiceChoice() uint8 {
+ return 0x07
+}
+
+func (m BACnetConfirmedServiceACKAtomicWriteFile) initialize() spi.Message {
+ return m
+}
+
+func NewBACnetConfirmedServiceACKAtomicWriteFile() BACnetConfirmedServiceACKInitializer {
+ return &BACnetConfirmedServiceACKAtomicWriteFile{}
+}
+
+func (m BACnetConfirmedServiceACKAtomicWriteFile) LengthInBits() uint16 {
+ var lengthInBits uint16 = m.BACnetConfirmedServiceACK.LengthInBits()
+
+ return lengthInBits
+}
+
+func (m BACnetConfirmedServiceACKAtomicWriteFile) LengthInBytes() uint16 {
+ return m.LengthInBits() / 8
+}
+
+func BACnetConfirmedServiceACKAtomicWriteFileParse(io spi.ReadBuffer) (BACnetConfirmedServiceACKInitializer, error) {
+
+ // Create the instance
+ return NewBACnetConfirmedServiceACKAtomicWriteFile(), nil
+}
+
+func (m BACnetConfirmedServiceACKAtomicWriteFile) Serialize(io spi.WriteBuffer) {
+ serializeFunc := func(typ interface{}) {
+ if _, ok := typ.(IBACnetConfirmedServiceACKAtomicWriteFile); ok {
+ }
+ }
+ serializeFunc(m)
+}
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKConfirmedPrivateTransfer.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKConfirmedPrivateTransfer.go
new file mode 100644
index 0000000..d3c30a4
--- /dev/null
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKConfirmedPrivateTransfer.go
@@ -0,0 +1,71 @@
+//
+// 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.
+//
+package model
+
+import (
+ "plc4x.apache.org/plc4go-modbus-driver/0.8.0/internal/plc4go/spi"
+)
+
+// The data-structure of this message
+type BACnetConfirmedServiceACKConfirmedPrivateTransfer struct {
+ BACnetConfirmedServiceACK
+}
+
+// The corresponding interface
+type IBACnetConfirmedServiceACKConfirmedPrivateTransfer interface {
+ IBACnetConfirmedServiceACK
+ Serialize(io spi.WriteBuffer)
+}
+
+// Accessors for discriminator values.
+func (m BACnetConfirmedServiceACKConfirmedPrivateTransfer) ServiceChoice() uint8 {
+ return 0x12
+}
+
+func (m BACnetConfirmedServiceACKConfirmedPrivateTransfer) initialize() spi.Message {
+ return m
+}
+
+func NewBACnetConfirmedServiceACKConfirmedPrivateTransfer() BACnetConfirmedServiceACKInitializer {
+ return &BACnetConfirmedServiceACKConfirmedPrivateTransfer{}
+}
+
+func (m BACnetConfirmedServiceACKConfirmedPrivateTransfer) LengthInBits() uint16 {
+ var lengthInBits uint16 = m.BACnetConfirmedServiceACK.LengthInBits()
+
+ return lengthInBits
+}
+
+func (m BACnetConfirmedServiceACKConfirmedPrivateTransfer) LengthInBytes() uint16 {
+ return m.LengthInBits() / 8
+}
+
+func BACnetConfirmedServiceACKConfirmedPrivateTransferParse(io spi.ReadBuffer) (BACnetConfirmedServiceACKInitializer, error) {
+
+ // Create the instance
+ return NewBACnetConfirmedServiceACKConfirmedPrivateTransfer(), nil
+}
+
+func (m BACnetConfirmedServiceACKConfirmedPrivateTransfer) Serialize(io spi.WriteBuffer) {
+ serializeFunc := func(typ interface{}) {
+ if _, ok := typ.(IBACnetConfirmedServiceACKConfirmedPrivateTransfer); ok {
+ }
+ }
+ serializeFunc(m)
+}
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKCreateObject.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKCreateObject.go
new file mode 100644
index 0000000..e9d53a9
--- /dev/null
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKCreateObject.go
@@ -0,0 +1,71 @@
+//
+// 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.
+//
+package model
+
+import (
+ "plc4x.apache.org/plc4go-modbus-driver/0.8.0/internal/plc4go/spi"
+)
+
+// The data-structure of this message
+type BACnetConfirmedServiceACKCreateObject struct {
+ BACnetConfirmedServiceACK
+}
+
+// The corresponding interface
+type IBACnetConfirmedServiceACKCreateObject interface {
+ IBACnetConfirmedServiceACK
+ Serialize(io spi.WriteBuffer)
+}
+
+// Accessors for discriminator values.
+func (m BACnetConfirmedServiceACKCreateObject) ServiceChoice() uint8 {
+ return 0x0A
+}
+
+func (m BACnetConfirmedServiceACKCreateObject) initialize() spi.Message {
+ return m
+}
+
+func NewBACnetConfirmedServiceACKCreateObject() BACnetConfirmedServiceACKInitializer {
+ return &BACnetConfirmedServiceACKCreateObject{}
+}
+
+func (m BACnetConfirmedServiceACKCreateObject) LengthInBits() uint16 {
+ var lengthInBits uint16 = m.BACnetConfirmedServiceACK.LengthInBits()
+
+ return lengthInBits
+}
+
+func (m BACnetConfirmedServiceACKCreateObject) LengthInBytes() uint16 {
+ return m.LengthInBits() / 8
+}
+
+func BACnetConfirmedServiceACKCreateObjectParse(io spi.ReadBuffer) (BACnetConfirmedServiceACKInitializer, error) {
+
+ // Create the instance
+ return NewBACnetConfirmedServiceACKCreateObject(), nil
+}
+
+func (m BACnetConfirmedServiceACKCreateObject) Serialize(io spi.WriteBuffer) {
+ serializeFunc := func(typ interface{}) {
+ if _, ok := typ.(IBACnetConfirmedServiceACKCreateObject); ok {
+ }
+ }
+ serializeFunc(m)
+}
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKGetAlarmSummary.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKGetAlarmSummary.go
new file mode 100644
index 0000000..44b39f2
--- /dev/null
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKGetAlarmSummary.go
@@ -0,0 +1,71 @@
+//
+// 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.
+//
+package model
+
+import (
+ "plc4x.apache.org/plc4go-modbus-driver/0.8.0/internal/plc4go/spi"
+)
+
+// The data-structure of this message
+type BACnetConfirmedServiceACKGetAlarmSummary struct {
+ BACnetConfirmedServiceACK
+}
+
+// The corresponding interface
+type IBACnetConfirmedServiceACKGetAlarmSummary interface {
+ IBACnetConfirmedServiceACK
+ Serialize(io spi.WriteBuffer)
+}
+
+// Accessors for discriminator values.
+func (m BACnetConfirmedServiceACKGetAlarmSummary) ServiceChoice() uint8 {
+ return 0x03
+}
+
+func (m BACnetConfirmedServiceACKGetAlarmSummary) initialize() spi.Message {
+ return m
+}
+
+func NewBACnetConfirmedServiceACKGetAlarmSummary() BACnetConfirmedServiceACKInitializer {
+ return &BACnetConfirmedServiceACKGetAlarmSummary{}
+}
+
+func (m BACnetConfirmedServiceACKGetAlarmSummary) LengthInBits() uint16 {
+ var lengthInBits uint16 = m.BACnetConfirmedServiceACK.LengthInBits()
+
+ return lengthInBits
+}
+
+func (m BACnetConfirmedServiceACKGetAlarmSummary) LengthInBytes() uint16 {
+ return m.LengthInBits() / 8
+}
+
+func BACnetConfirmedServiceACKGetAlarmSummaryParse(io spi.ReadBuffer) (BACnetConfirmedServiceACKInitializer, error) {
+
+ // Create the instance
+ return NewBACnetConfirmedServiceACKGetAlarmSummary(), nil
+}
+
+func (m BACnetConfirmedServiceACKGetAlarmSummary) Serialize(io spi.WriteBuffer) {
+ serializeFunc := func(typ interface{}) {
+ if _, ok := typ.(IBACnetConfirmedServiceACKGetAlarmSummary); ok {
+ }
+ }
+ serializeFunc(m)
+}
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKGetEnrollmentSummary.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKGetEnrollmentSummary.go
new file mode 100644
index 0000000..47f3ef5
--- /dev/null
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKGetEnrollmentSummary.go
@@ -0,0 +1,71 @@
+//
+// 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.
+//
+package model
+
+import (
+ "plc4x.apache.org/plc4go-modbus-driver/0.8.0/internal/plc4go/spi"
+)
+
+// The data-structure of this message
+type BACnetConfirmedServiceACKGetEnrollmentSummary struct {
+ BACnetConfirmedServiceACK
+}
+
+// The corresponding interface
+type IBACnetConfirmedServiceACKGetEnrollmentSummary interface {
+ IBACnetConfirmedServiceACK
+ Serialize(io spi.WriteBuffer)
+}
+
+// Accessors for discriminator values.
+func (m BACnetConfirmedServiceACKGetEnrollmentSummary) ServiceChoice() uint8 {
+ return 0x04
+}
+
+func (m BACnetConfirmedServiceACKGetEnrollmentSummary) initialize() spi.Message {
+ return m
+}
+
+func NewBACnetConfirmedServiceACKGetEnrollmentSummary() BACnetConfirmedServiceACKInitializer {
+ return &BACnetConfirmedServiceACKGetEnrollmentSummary{}
+}
+
+func (m BACnetConfirmedServiceACKGetEnrollmentSummary) LengthInBits() uint16 {
+ var lengthInBits uint16 = m.BACnetConfirmedServiceACK.LengthInBits()
+
+ return lengthInBits
+}
+
+func (m BACnetConfirmedServiceACKGetEnrollmentSummary) LengthInBytes() uint16 {
+ return m.LengthInBits() / 8
+}
+
+func BACnetConfirmedServiceACKGetEnrollmentSummaryParse(io spi.ReadBuffer) (BACnetConfirmedServiceACKInitializer, error) {
+
+ // Create the instance
+ return NewBACnetConfirmedServiceACKGetEnrollmentSummary(), nil
+}
+
+func (m BACnetConfirmedServiceACKGetEnrollmentSummary) Serialize(io spi.WriteBuffer) {
+ serializeFunc := func(typ interface{}) {
+ if _, ok := typ.(IBACnetConfirmedServiceACKGetEnrollmentSummary); ok {
+ }
+ }
+ serializeFunc(m)
+}
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKGetEventInformation.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKGetEventInformation.go
new file mode 100644
index 0000000..2cbbf66
--- /dev/null
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKGetEventInformation.go
@@ -0,0 +1,71 @@
+//
+// 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.
+//
+package model
+
+import (
+ "plc4x.apache.org/plc4go-modbus-driver/0.8.0/internal/plc4go/spi"
+)
+
+// The data-structure of this message
+type BACnetConfirmedServiceACKGetEventInformation struct {
+ BACnetConfirmedServiceACK
+}
+
+// The corresponding interface
+type IBACnetConfirmedServiceACKGetEventInformation interface {
+ IBACnetConfirmedServiceACK
+ Serialize(io spi.WriteBuffer)
+}
+
+// Accessors for discriminator values.
+func (m BACnetConfirmedServiceACKGetEventInformation) ServiceChoice() uint8 {
+ return 0x1D
+}
+
+func (m BACnetConfirmedServiceACKGetEventInformation) initialize() spi.Message {
+ return m
+}
+
+func NewBACnetConfirmedServiceACKGetEventInformation() BACnetConfirmedServiceACKInitializer {
+ return &BACnetConfirmedServiceACKGetEventInformation{}
+}
+
+func (m BACnetConfirmedServiceACKGetEventInformation) LengthInBits() uint16 {
+ var lengthInBits uint16 = m.BACnetConfirmedServiceACK.LengthInBits()
+
+ return lengthInBits
+}
+
+func (m BACnetConfirmedServiceACKGetEventInformation) LengthInBytes() uint16 {
+ return m.LengthInBits() / 8
+}
+
+func BACnetConfirmedServiceACKGetEventInformationParse(io spi.ReadBuffer) (BACnetConfirmedServiceACKInitializer, error) {
+
+ // Create the instance
+ return NewBACnetConfirmedServiceACKGetEventInformation(), nil
+}
+
+func (m BACnetConfirmedServiceACKGetEventInformation) Serialize(io spi.WriteBuffer) {
+ serializeFunc := func(typ interface{}) {
+ if _, ok := typ.(IBACnetConfirmedServiceACKGetEventInformation); ok {
+ }
+ }
+ serializeFunc(m)
+}
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKReadProperty.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKReadProperty.go
new file mode 100644
index 0000000..6640b6d
--- /dev/null
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKReadProperty.go
@@ -0,0 +1,71 @@
+//
+// 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.
+//
+package model
+
+import (
+ "plc4x.apache.org/plc4go-modbus-driver/0.8.0/internal/plc4go/spi"
+)
+
+// The data-structure of this message
+type BACnetConfirmedServiceACKReadProperty struct {
+ BACnetConfirmedServiceACK
+}
+
+// The corresponding interface
+type IBACnetConfirmedServiceACKReadProperty interface {
+ IBACnetConfirmedServiceACK
+ Serialize(io spi.WriteBuffer)
+}
+
+// Accessors for discriminator values.
+func (m BACnetConfirmedServiceACKReadProperty) ServiceChoice() uint8 {
+ return 0x0C
+}
+
+func (m BACnetConfirmedServiceACKReadProperty) initialize() spi.Message {
+ return m
+}
+
+func NewBACnetConfirmedServiceACKReadProperty() BACnetConfirmedServiceACKInitializer {
+ return &BACnetConfirmedServiceACKReadProperty{}
+}
+
+func (m BACnetConfirmedServiceACKReadProperty) LengthInBits() uint16 {
+ var lengthInBits uint16 = m.BACnetConfirmedServiceACK.LengthInBits()
+
+ return lengthInBits
+}
+
+func (m BACnetConfirmedServiceACKReadProperty) LengthInBytes() uint16 {
+ return m.LengthInBits() / 8
+}
+
+func BACnetConfirmedServiceACKReadPropertyParse(io spi.ReadBuffer) (BACnetConfirmedServiceACKInitializer, error) {
+
+ // Create the instance
+ return NewBACnetConfirmedServiceACKReadProperty(), nil
+}
+
+func (m BACnetConfirmedServiceACKReadProperty) Serialize(io spi.WriteBuffer) {
+ serializeFunc := func(typ interface{}) {
+ if _, ok := typ.(IBACnetConfirmedServiceACKReadProperty); ok {
+ }
+ }
+ serializeFunc(m)
+}
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKReadPropertyMultiple.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKReadPropertyMultiple.go
new file mode 100644
index 0000000..c3a41ab
--- /dev/null
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKReadPropertyMultiple.go
@@ -0,0 +1,71 @@
+//
+// 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.
+//
+package model
+
+import (
+ "plc4x.apache.org/plc4go-modbus-driver/0.8.0/internal/plc4go/spi"
+)
+
+// The data-structure of this message
+type BACnetConfirmedServiceACKReadPropertyMultiple struct {
+ BACnetConfirmedServiceACK
+}
+
+// The corresponding interface
+type IBACnetConfirmedServiceACKReadPropertyMultiple interface {
+ IBACnetConfirmedServiceACK
+ Serialize(io spi.WriteBuffer)
+}
+
+// Accessors for discriminator values.
+func (m BACnetConfirmedServiceACKReadPropertyMultiple) ServiceChoice() uint8 {
+ return 0x0E
+}
+
+func (m BACnetConfirmedServiceACKReadPropertyMultiple) initialize() spi.Message {
+ return m
+}
+
+func NewBACnetConfirmedServiceACKReadPropertyMultiple() BACnetConfirmedServiceACKInitializer {
+ return &BACnetConfirmedServiceACKReadPropertyMultiple{}
+}
+
+func (m BACnetConfirmedServiceACKReadPropertyMultiple) LengthInBits() uint16 {
+ var lengthInBits uint16 = m.BACnetConfirmedServiceACK.LengthInBits()
+
+ return lengthInBits
+}
+
+func (m BACnetConfirmedServiceACKReadPropertyMultiple) LengthInBytes() uint16 {
+ return m.LengthInBits() / 8
+}
+
+func BACnetConfirmedServiceACKReadPropertyMultipleParse(io spi.ReadBuffer) (BACnetConfirmedServiceACKInitializer, error) {
+
+ // Create the instance
+ return NewBACnetConfirmedServiceACKReadPropertyMultiple(), nil
+}
+
+func (m BACnetConfirmedServiceACKReadPropertyMultiple) Serialize(io spi.WriteBuffer) {
+ serializeFunc := func(typ interface{}) {
+ if _, ok := typ.(IBACnetConfirmedServiceACKReadPropertyMultiple); ok {
+ }
+ }
+ serializeFunc(m)
+}
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKReadRange.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKReadRange.go
new file mode 100644
index 0000000..445191b
--- /dev/null
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKReadRange.go
@@ -0,0 +1,71 @@
+//
+// 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.
+//
+package model
+
+import (
+ "plc4x.apache.org/plc4go-modbus-driver/0.8.0/internal/plc4go/spi"
+)
+
+// The data-structure of this message
+type BACnetConfirmedServiceACKReadRange struct {
+ BACnetConfirmedServiceACK
+}
+
+// The corresponding interface
+type IBACnetConfirmedServiceACKReadRange interface {
+ IBACnetConfirmedServiceACK
+ Serialize(io spi.WriteBuffer)
+}
+
+// Accessors for discriminator values.
+func (m BACnetConfirmedServiceACKReadRange) ServiceChoice() uint8 {
+ return 0x1A
+}
+
+func (m BACnetConfirmedServiceACKReadRange) initialize() spi.Message {
+ return m
+}
+
+func NewBACnetConfirmedServiceACKReadRange() BACnetConfirmedServiceACKInitializer {
+ return &BACnetConfirmedServiceACKReadRange{}
+}
+
+func (m BACnetConfirmedServiceACKReadRange) LengthInBits() uint16 {
+ var lengthInBits uint16 = m.BACnetConfirmedServiceACK.LengthInBits()
+
+ return lengthInBits
+}
+
+func (m BACnetConfirmedServiceACKReadRange) LengthInBytes() uint16 {
+ return m.LengthInBits() / 8
+}
+
+func BACnetConfirmedServiceACKReadRangeParse(io spi.ReadBuffer) (BACnetConfirmedServiceACKInitializer, error) {
+
+ // Create the instance
+ return NewBACnetConfirmedServiceACKReadRange(), nil
+}
+
+func (m BACnetConfirmedServiceACKReadRange) Serialize(io spi.WriteBuffer) {
+ serializeFunc := func(typ interface{}) {
+ if _, ok := typ.(IBACnetConfirmedServiceACKReadRange); ok {
+ }
+ }
+ serializeFunc(m)
+}
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKRemovedAuthenticate.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKRemovedAuthenticate.go
new file mode 100644
index 0000000..c78ecdc
--- /dev/null
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKRemovedAuthenticate.go
@@ -0,0 +1,71 @@
+//
+// 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.
+//
+package model
+
+import (
+ "plc4x.apache.org/plc4go-modbus-driver/0.8.0/internal/plc4go/spi"
+)
+
+// The data-structure of this message
+type BACnetConfirmedServiceACKRemovedAuthenticate struct {
+ BACnetConfirmedServiceACK
+}
+
+// The corresponding interface
+type IBACnetConfirmedServiceACKRemovedAuthenticate interface {
+ IBACnetConfirmedServiceACK
+ Serialize(io spi.WriteBuffer)
+}
+
+// Accessors for discriminator values.
+func (m BACnetConfirmedServiceACKRemovedAuthenticate) ServiceChoice() uint8 {
+ return 0x18
+}
+
+func (m BACnetConfirmedServiceACKRemovedAuthenticate) initialize() spi.Message {
+ return m
+}
+
+func NewBACnetConfirmedServiceACKRemovedAuthenticate() BACnetConfirmedServiceACKInitializer {
+ return &BACnetConfirmedServiceACKRemovedAuthenticate{}
+}
+
+func (m BACnetConfirmedServiceACKRemovedAuthenticate) LengthInBits() uint16 {
+ var lengthInBits uint16 = m.BACnetConfirmedServiceACK.LengthInBits()
+
+ return lengthInBits
+}
+
+func (m BACnetConfirmedServiceACKRemovedAuthenticate) LengthInBytes() uint16 {
+ return m.LengthInBits() / 8
+}
+
+func BACnetConfirmedServiceACKRemovedAuthenticateParse(io spi.ReadBuffer) (BACnetConfirmedServiceACKInitializer, error) {
+
+ // Create the instance
+ return NewBACnetConfirmedServiceACKRemovedAuthenticate(), nil
+}
+
+func (m BACnetConfirmedServiceACKRemovedAuthenticate) Serialize(io spi.WriteBuffer) {
+ serializeFunc := func(typ interface{}) {
+ if _, ok := typ.(IBACnetConfirmedServiceACKRemovedAuthenticate); ok {
+ }
+ }
+ serializeFunc(m)
+}
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKRemovedReadPropertyConditional.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKRemovedReadPropertyConditional.go
new file mode 100644
index 0000000..b5e021b
--- /dev/null
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKRemovedReadPropertyConditional.go
@@ -0,0 +1,71 @@
+//
+// 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.
+//
+package model
+
+import (
+ "plc4x.apache.org/plc4go-modbus-driver/0.8.0/internal/plc4go/spi"
+)
+
+// The data-structure of this message
+type BACnetConfirmedServiceACKRemovedReadPropertyConditional struct {
+ BACnetConfirmedServiceACK
+}
+
+// The corresponding interface
+type IBACnetConfirmedServiceACKRemovedReadPropertyConditional interface {
+ IBACnetConfirmedServiceACK
+ Serialize(io spi.WriteBuffer)
+}
+
+// Accessors for discriminator values.
+func (m BACnetConfirmedServiceACKRemovedReadPropertyConditional) ServiceChoice() uint8 {
+ return 0x0D
+}
+
+func (m BACnetConfirmedServiceACKRemovedReadPropertyConditional) initialize() spi.Message {
+ return m
+}
+
+func NewBACnetConfirmedServiceACKRemovedReadPropertyConditional() BACnetConfirmedServiceACKInitializer {
+ return &BACnetConfirmedServiceACKRemovedReadPropertyConditional{}
+}
+
+func (m BACnetConfirmedServiceACKRemovedReadPropertyConditional) LengthInBits() uint16 {
+ var lengthInBits uint16 = m.BACnetConfirmedServiceACK.LengthInBits()
+
+ return lengthInBits
+}
+
+func (m BACnetConfirmedServiceACKRemovedReadPropertyConditional) LengthInBytes() uint16 {
+ return m.LengthInBits() / 8
+}
+
+func BACnetConfirmedServiceACKRemovedReadPropertyConditionalParse(io spi.ReadBuffer) (BACnetConfirmedServiceACKInitializer, error) {
+
+ // Create the instance
+ return NewBACnetConfirmedServiceACKRemovedReadPropertyConditional(), nil
+}
+
+func (m BACnetConfirmedServiceACKRemovedReadPropertyConditional) Serialize(io spi.WriteBuffer) {
+ serializeFunc := func(typ interface{}) {
+ if _, ok := typ.(IBACnetConfirmedServiceACKRemovedReadPropertyConditional); ok {
+ }
+ }
+ serializeFunc(m)
+}
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKVTData.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKVTData.go
new file mode 100644
index 0000000..0dca7fd
--- /dev/null
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKVTData.go
@@ -0,0 +1,71 @@
+//
+// 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.
+//
+package model
+
+import (
+ "plc4x.apache.org/plc4go-modbus-driver/0.8.0/internal/plc4go/spi"
+)
+
+// The data-structure of this message
+type BACnetConfirmedServiceACKVTData struct {
+ BACnetConfirmedServiceACK
+}
+
+// The corresponding interface
+type IBACnetConfirmedServiceACKVTData interface {
+ IBACnetConfirmedServiceACK
+ Serialize(io spi.WriteBuffer)
+}
+
+// Accessors for discriminator values.
+func (m BACnetConfirmedServiceACKVTData) ServiceChoice() uint8 {
+ return 0x17
+}
+
+func (m BACnetConfirmedServiceACKVTData) initialize() spi.Message {
+ return m
+}
+
+func NewBACnetConfirmedServiceACKVTData() BACnetConfirmedServiceACKInitializer {
+ return &BACnetConfirmedServiceACKVTData{}
+}
+
+func (m BACnetConfirmedServiceACKVTData) LengthInBits() uint16 {
+ var lengthInBits uint16 = m.BACnetConfirmedServiceACK.LengthInBits()
+
+ return lengthInBits
+}
+
+func (m BACnetConfirmedServiceACKVTData) LengthInBytes() uint16 {
+ return m.LengthInBits() / 8
+}
+
+func BACnetConfirmedServiceACKVTDataParse(io spi.ReadBuffer) (BACnetConfirmedServiceACKInitializer, error) {
+
+ // Create the instance
+ return NewBACnetConfirmedServiceACKVTData(), nil
+}
+
+func (m BACnetConfirmedServiceACKVTData) Serialize(io spi.WriteBuffer) {
+ serializeFunc := func(typ interface{}) {
+ if _, ok := typ.(IBACnetConfirmedServiceACKVTData); ok {
+ }
+ }
+ serializeFunc(m)
+}
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKVTOpen.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKVTOpen.go
new file mode 100644
index 0000000..64b4683
--- /dev/null
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKVTOpen.go
@@ -0,0 +1,71 @@
+//
+// 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.
+//
+package model
+
+import (
+ "plc4x.apache.org/plc4go-modbus-driver/0.8.0/internal/plc4go/spi"
+)
+
+// The data-structure of this message
+type BACnetConfirmedServiceACKVTOpen struct {
+ BACnetConfirmedServiceACK
+}
+
+// The corresponding interface
+type IBACnetConfirmedServiceACKVTOpen interface {
+ IBACnetConfirmedServiceACK
+ Serialize(io spi.WriteBuffer)
+}
+
+// Accessors for discriminator values.
+func (m BACnetConfirmedServiceACKVTOpen) ServiceChoice() uint8 {
+ return 0x15
+}
+
+func (m BACnetConfirmedServiceACKVTOpen) initialize() spi.Message {
+ return m
+}
+
+func NewBACnetConfirmedServiceACKVTOpen() BACnetConfirmedServiceACKInitializer {
+ return &BACnetConfirmedServiceACKVTOpen{}
+}
+
+func (m BACnetConfirmedServiceACKVTOpen) LengthInBits() uint16 {
+ var lengthInBits uint16 = m.BACnetConfirmedServiceACK.LengthInBits()
+
+ return lengthInBits
+}
+
+func (m BACnetConfirmedServiceACKVTOpen) LengthInBytes() uint16 {
+ return m.LengthInBits() / 8
+}
+
+func BACnetConfirmedServiceACKVTOpenParse(io spi.ReadBuffer) (BACnetConfirmedServiceACKInitializer, error) {
+
+ // Create the instance
+ return NewBACnetConfirmedServiceACKVTOpen(), nil
+}
+
+func (m BACnetConfirmedServiceACKVTOpen) Serialize(io spi.WriteBuffer) {
+ serializeFunc := func(typ interface{}) {
+ if _, ok := typ.(IBACnetConfirmedServiceACKVTOpen); ok {
+ }
+ }
+ serializeFunc(m)
+}
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequest.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequest.go
new file mode 100644
index 0000000..ea7e49e
--- /dev/null
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequest.go
@@ -0,0 +1,165 @@
+//
+// 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.
+//
+package model
+
+import (
+ "errors"
+ "plc4x.apache.org/plc4go-modbus-driver/0.8.0/internal/plc4go/spi"
+)
+
+// The data-structure of this message
+type BACnetConfirmedServiceRequest struct {
+}
+
+// The corresponding interface
+type IBACnetConfirmedServiceRequest interface {
+ spi.Message
+ ServiceChoice() uint8
+ Serialize(io spi.WriteBuffer)
+}
+
+type BACnetConfirmedServiceRequestInitializer interface {
+ initialize() spi.Message
+}
+
+func BACnetConfirmedServiceRequestServiceChoice(m IBACnetConfirmedServiceRequest) uint8 {
+ return m.ServiceChoice()
+}
+
+func (m BACnetConfirmedServiceRequest) LengthInBits() uint16 {
+ var lengthInBits uint16 = 0
+
+ // Discriminator Field (serviceChoice)
+ lengthInBits += 8
+
+ // Length of sub-type elements will be added by sub-type...
+
+ return lengthInBits
+}
+
+func (m BACnetConfirmedServiceRequest) LengthInBytes() uint16 {
+ return m.LengthInBits() / 8
+}
+
+func BACnetConfirmedServiceRequestParse(io spi.ReadBuffer, len uint16) (spi.Message, error) {
+
+ // Discriminator Field (serviceChoice) (Used as input to a switch field)
+ var serviceChoice uint8 = io.ReadUint8(8)
+
+ // Switch Field (Depending on the discriminator values, passes the instantiation to a sub-type)
+ var initializer BACnetConfirmedServiceRequestInitializer
+ var typeSwitchError error
+ switch {
+ case serviceChoice == 0x00:
+ initializer, typeSwitchError = BACnetConfirmedServiceRequestAcknowledgeAlarmParse(io)
+ case serviceChoice == 0x01:
+ initializer, typeSwitchError = BACnetConfirmedServiceRequestConfirmedCOVNotificationParse(io, len)
+ case serviceChoice == 0x1F:
+ initializer, typeSwitchError = BACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleParse(io)
+ case serviceChoice == 0x02:
+ initializer, typeSwitchError = BACnetConfirmedServiceRequestConfirmedEventNotificationParse(io)
+ case serviceChoice == 0x04:
+ initializer, typeSwitchError = BACnetConfirmedServiceRequestGetEnrollmentSummaryParse(io)
+ case serviceChoice == 0x1D:
+ initializer, typeSwitchError = BACnetConfirmedServiceRequestGetEventInformationParse(io)
+ case serviceChoice == 0x1B:
+ initializer, typeSwitchError = BACnetConfirmedServiceRequestLifeSafetyOperationParse(io)
+ case serviceChoice == 0x05:
+ initializer, typeSwitchError = BACnetConfirmedServiceRequestSubscribeCOVParse(io)
+ case serviceChoice == 0x1C:
+ initializer, typeSwitchError = BACnetConfirmedServiceRequestSubscribeCOVPropertyParse(io)
+ case serviceChoice == 0x1E:
+ initializer, typeSwitchError = BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleParse(io)
+ case serviceChoice == 0x06:
+ initializer, typeSwitchError = BACnetConfirmedServiceRequestAtomicReadFileParse(io)
+ case serviceChoice == 0x07:
+ initializer, typeSwitchError = BACnetConfirmedServiceRequestAtomicWriteFileParse(io)
+ case serviceChoice == 0x08:
+ initializer, typeSwitchError = BACnetConfirmedServiceRequestAddListElementParse(io)
+ case serviceChoice == 0x09:
+ initializer, typeSwitchError = BACnetConfirmedServiceRequestRemoveListElementParse(io)
+ case serviceChoice == 0x0A:
+ initializer, typeSwitchError = BACnetConfirmedServiceRequestCreateObjectParse(io)
+ case serviceChoice == 0x0B:
+ initializer, typeSwitchError = BACnetConfirmedServiceRequestDeleteObjectParse(io)
+ case serviceChoice == 0x0C:
+ initializer, typeSwitchError = BACnetConfirmedServiceRequestReadPropertyParse(io)
+ case serviceChoice == 0x0E:
+ initializer, typeSwitchError = BACnetConfirmedServiceRequestReadPropertyMultipleParse(io)
+ case serviceChoice == 0x1A:
+ initializer, typeSwitchError = BACnetConfirmedServiceRequestReadRangeParse(io)
+ case serviceChoice == 0x0F:
+ initializer, typeSwitchError = BACnetConfirmedServiceRequestWritePropertyParse(io, len)
+ case serviceChoice == 0x10:
+ initializer, typeSwitchError = BACnetConfirmedServiceRequestWritePropertyMultipleParse(io)
+ case serviceChoice == 0x11:
+ initializer, typeSwitchError = BACnetConfirmedServiceRequestDeviceCommunicationControlParse(io)
+ case serviceChoice == 0x12:
+ initializer, typeSwitchError = BACnetConfirmedServiceRequestConfirmedPrivateTransferParse(io)
+ case serviceChoice == 0x13:
+ initializer, typeSwitchError = BACnetConfirmedServiceRequestConfirmedTextMessageParse(io)
+ case serviceChoice == 0x14:
+ initializer, typeSwitchError = BACnetConfirmedServiceRequestReinitializeDeviceParse(io)
+ case serviceChoice == 0x15:
+ initializer, typeSwitchError = BACnetConfirmedServiceRequestVTOpenParse(io)
+ case serviceChoice == 0x16:
+ initializer, typeSwitchError = BACnetConfirmedServiceRequestVTCloseParse(io)
+ case serviceChoice == 0x17:
+ initializer, typeSwitchError = BACnetConfirmedServiceRequestVTDataParse(io)
+ case serviceChoice == 0x18:
+ initializer, typeSwitchError = BACnetConfirmedServiceRequestRemovedAuthenticateParse(io)
+ case serviceChoice == 0x19:
+ initializer, typeSwitchError = BACnetConfirmedServiceRequestRemovedRequestKeyParse(io)
+ case serviceChoice == 0x0D:
+ initializer, typeSwitchError = BACnetConfirmedServiceRequestRemovedReadPropertyConditionalParse(io)
+ case serviceChoice == 0x1A:
+ initializer, typeSwitchError = BACnetConfirmedServiceRequestReadRangeParse(io)
+ case serviceChoice == 0x1B:
+ initializer, typeSwitchError = BACnetConfirmedServiceRequestLifeSafetyOperationParse(io)
+ case serviceChoice == 0x1C:
+ initializer, typeSwitchError = BACnetConfirmedServiceRequestSubscribeCOVPropertyParse(io)
+ case serviceChoice == 0x1D:
+ initializer, typeSwitchError = BACnetConfirmedServiceRequestGetEventInformationParse(io)
+ case serviceChoice == 0x1E:
+ initializer, typeSwitchError = BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleParse(io)
+ case serviceChoice == 0x1F:
+ initializer, typeSwitchError = BACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleParse(io)
+ }
+ if typeSwitchError != nil {
+ return nil, errors.New("Error parsing sub-type for type-switch. " + typeSwitchError.Error())
+ }
+
+ // Create the instance
+ return initializer.initialize(), nil
+}
+
+func (m BACnetConfirmedServiceRequest) Serialize(io spi.WriteBuffer) {
+ serializeFunc := func(typ interface{}) {
+ if iBACnetConfirmedServiceRequest, ok := typ.(IBACnetConfirmedServiceRequest); ok {
+
+ // Discriminator Field (serviceChoice) (Used as input to a switch field)
+ serviceChoice := BACnetConfirmedServiceRequestServiceChoice(iBACnetConfirmedServiceRequest)
+ io.WriteUint8(8, (serviceChoice))
+
+ // Switch field (Depending on the discriminator values, passes the serialization to a sub-type)
+ iBACnetConfirmedServiceRequest.Serialize(io)
+ }
+ }
+ serializeFunc(m)
+}
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAcknowledgeAlarm.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAcknowledgeAlarm.go
new file mode 100644
index 0000000..2faaed5
--- /dev/null
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAcknowledgeAlarm.go
@@ -0,0 +1,71 @@
+//
+// 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.
+//
+package model
+
+import (
+ "plc4x.apache.org/plc4go-modbus-driver/0.8.0/internal/plc4go/spi"
+)
+
+// The data-structure of this message
+type BACnetConfirmedServiceRequestAcknowledgeAlarm struct {
+ BACnetConfirmedServiceRequest
+}
+
+// The corresponding interface
+type IBACnetConfirmedServiceRequestAcknowledgeAlarm interface {
+ IBACnetConfirmedServiceRequest
+ Serialize(io spi.WriteBuffer)
+}
+
+// Accessors for discriminator values.
+func (m BACnetConfirmedServiceRequestAcknowledgeAlarm) ServiceChoice() uint8 {
+ return 0x00
+}
+
+func (m BACnetConfirmedServiceRequestAcknowledgeAlarm) initialize() spi.Message {
+ return m
+}
+
+func NewBACnetConfirmedServiceRequestAcknowledgeAlarm() BACnetConfirmedServiceRequestInitializer {
+ return &BACnetConfirmedServiceRequestAcknowledgeAlarm{}
+}
+
+func (m BACnetConfirmedServiceRequestAcknowledgeAlarm) LengthInBits() uint16 {
+ var lengthInBits uint16 = m.BACnetConfirmedServiceRequest.LengthInBits()
+
+ return lengthInBits
+}
+
+func (m BACnetConfirmedServiceRequestAcknowledgeAlarm) LengthInBytes() uint16 {
+ return m.LengthInBits() / 8
+}
+
+func BACnetConfirmedServiceRequestAcknowledgeAlarmParse(io spi.ReadBuffer) (BACnetConfirmedServiceRequestInitializer, error) {
+
+ // Create the instance
+ return NewBACnetConfirmedServiceRequestAcknowledgeAlarm(), nil
+}
+
+func (m BACnetConfirmedServiceRequestAcknowledgeAlarm) Serialize(io spi.WriteBuffer) {
+ serializeFunc := func(typ interface{}) {
+ if _, ok := typ.(IBACnetConfirmedServiceRequestAcknowledgeAlarm); ok {
+ }
+ }
+ serializeFunc(m)
+}
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAddListElement.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAddListElement.go
new file mode 100644
index 0000000..2243e39
--- /dev/null
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAddListElement.go
@@ -0,0 +1,71 @@
+//
+// 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.
+//
+package model
+
+import (
+ "plc4x.apache.org/plc4go-modbus-driver/0.8.0/internal/plc4go/spi"
+)
+
+// The data-structure of this message
+type BACnetConfirmedServiceRequestAddListElement struct {
+ BACnetConfirmedServiceRequest
+}
+
+// The corresponding interface
+type IBACnetConfirmedServiceRequestAddListElement interface {
+ IBACnetConfirmedServiceRequest
+ Serialize(io spi.WriteBuffer)
+}
+
+// Accessors for discriminator values.
+func (m BACnetConfirmedServiceRequestAddListElement) ServiceChoice() uint8 {
+ return 0x08
+}
+
+func (m BACnetConfirmedServiceRequestAddListElement) initialize() spi.Message {
+ return m
+}
+
+func NewBACnetConfirmedServiceRequestAddListElement() BACnetConfirmedServiceRequestInitializer {
+ return &BACnetConfirmedServiceRequestAddListElement{}
+}
+
+func (m BACnetConfirmedServiceRequestAddListElement) LengthInBits() uint16 {
+ var lengthInBits uint16 = m.BACnetConfirmedServiceRequest.LengthInBits()
+
+ return lengthInBits
+}
+
+func (m BACnetConfirmedServiceRequestAddListElement) LengthInBytes() uint16 {
+ return m.LengthInBits() / 8
+}
+
+func BACnetConfirmedServiceRequestAddListElementParse(io spi.ReadBuffer) (BACnetConfirmedServiceRequestInitializer, error) {
+
+ // Create the instance
+ return NewBACnetConfirmedServiceRequestAddListElement(), nil
+}
+
+func (m BACnetConfirmedServiceRequestAddListElement) Serialize(io spi.WriteBuffer) {
+ serializeFunc := func(typ interface{}) {
+ if _, ok := typ.(IBACnetConfirmedServiceRequestAddListElement); ok {
+ }
+ }
+ serializeFunc(m)
+}
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAtomicReadFile.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAtomicReadFile.go
new file mode 100644
index 0000000..1159819
--- /dev/null
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAtomicReadFile.go
@@ -0,0 +1,71 @@
+//
+// 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.
+//
+package model
+
+import (
+ "plc4x.apache.org/plc4go-modbus-driver/0.8.0/internal/plc4go/spi"
+)
+
+// The data-structure of this message
+type BACnetConfirmedServiceRequestAtomicReadFile struct {
+ BACnetConfirmedServiceRequest
+}
+
+// The corresponding interface
+type IBACnetConfirmedServiceRequestAtomicReadFile interface {
+ IBACnetConfirmedServiceRequest
+ Serialize(io spi.WriteBuffer)
+}
+
+// Accessors for discriminator values.
+func (m BACnetConfirmedServiceRequestAtomicReadFile) ServiceChoice() uint8 {
+ return 0x06
+}
+
+func (m BACnetConfirmedServiceRequestAtomicReadFile) initialize() spi.Message {
+ return m
+}
+
+func NewBACnetConfirmedServiceRequestAtomicReadFile() BACnetConfirmedServiceRequestInitializer {
+ return &BACnetConfirmedServiceRequestAtomicReadFile{}
+}
+
+func (m BACnetConfirmedServiceRequestAtomicReadFile) LengthInBits() uint16 {
+ var lengthInBits uint16 = m.BACnetConfirmedServiceRequest.LengthInBits()
+
+ return lengthInBits
+}
+
+func (m BACnetConfirmedServiceRequestAtomicReadFile) LengthInBytes() uint16 {
+ return m.LengthInBits() / 8
+}
+
+func BACnetConfirmedServiceRequestAtomicReadFileParse(io spi.ReadBuffer) (BACnetConfirmedServiceRequestInitializer, error) {
+
+ // Create the instance
+ return NewBACnetConfirmedServiceRequestAtomicReadFile(), nil
+}
+
+func (m BACnetConfirmedServiceRequestAtomicReadFile) Serialize(io spi.WriteBuffer) {
+ serializeFunc := func(typ interface{}) {
+ if _, ok := typ.(IBACnetConfirmedServiceRequestAtomicReadFile); ok {
+ }
+ }
+ serializeFunc(m)
+}
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAtomicWriteFile.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAtomicWriteFile.go
new file mode 100644
index 0000000..2812f4d
--- /dev/null
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAtomicWriteFile.go
@@ -0,0 +1,71 @@
+//
+// 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.
+//
+package model
+
+import (
+ "plc4x.apache.org/plc4go-modbus-driver/0.8.0/internal/plc4go/spi"
+)
+
+// The data-structure of this message
+type BACnetConfirmedServiceRequestAtomicWriteFile struct {
+ BACnetConfirmedServiceRequest
+}
+
+// The corresponding interface
+type IBACnetConfirmedServiceRequestAtomicWriteFile interface {
+ IBACnetConfirmedServiceRequest
+ Serialize(io spi.WriteBuffer)
+}
+
+// Accessors for discriminator values.
+func (m BACnetConfirmedServiceRequestAtomicWriteFile) ServiceChoice() uint8 {
+ return 0x07
+}
+
+func (m BACnetConfirmedServiceRequestAtomicWriteFile) initialize() spi.Message {
+ return m
+}
+
+func NewBACnetConfirmedServiceRequestAtomicWriteFile() BACnetConfirmedServiceRequestInitializer {
+ return &BACnetConfirmedServiceRequestAtomicWriteFile{}
+}
+
+func (m BACnetConfirmedServiceRequestAtomicWriteFile) LengthInBits() uint16 {
+ var lengthInBits uint16 = m.BACnetConfirmedServiceRequest.LengthInBits()
+
+ return lengthInBits
+}
+
+func (m BACnetConfirmedServiceRequestAtomicWriteFile) LengthInBytes() uint16 {
+ return m.LengthInBits() / 8
+}
+
+func BACnetConfirmedServiceRequestAtomicWriteFileParse(io spi.ReadBuffer) (BACnetConfirmedServiceRequestInitializer, error) {
+
+ // Create the instance
+ return NewBACnetConfirmedServiceRequestAtomicWriteFile(), nil
+}
+
+func (m BACnetConfirmedServiceRequestAtomicWriteFile) Serialize(io spi.WriteBuffer) {
+ serializeFunc := func(typ interface{}) {
+ if _, ok := typ.(IBACnetConfirmedServiceRequestAtomicWriteFile); ok {
+ }
+ }
+ serializeFunc(m)
+}
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedCOVNotification.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedCOVNotification.go
new file mode 100644
index 0000000..54d4d1f
--- /dev/null
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedCOVNotification.go
@@ -0,0 +1,277 @@
+//
+// 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.
+//
+package model
+
+import (
+ "errors"
+ "plc4x.apache.org/plc4go-modbus-driver/0.8.0/internal/plc4go/spi"
+ "reflect"
+ "strconv"
+)
+
+// Constant values.
+const BACnetConfirmedServiceRequestConfirmedCOVNotification_SUBSCRIBERPROCESSIDENTIFIERHEADER uint8 = 0x09
+const BACnetConfirmedServiceRequestConfirmedCOVNotification_MONITOREDOBJECTIDENTIFIERHEADER uint8 = 0x1C
+const BACnetConfirmedServiceRequestConfirmedCOVNotification_ISSUECONFIRMEDNOTIFICATIONSHEADER uint8 = 0x2C
+const BACnetConfirmedServiceRequestConfirmedCOVNotification_LIFETIMEHEADER uint8 = 0x07
+const BACnetConfirmedServiceRequestConfirmedCOVNotification_LISTOFVALUESOPENINGTAG uint8 = 0x4E
+const BACnetConfirmedServiceRequestConfirmedCOVNotification_LISTOFVALUESCLOSINGTAG uint8 = 0x4F
+
+// The data-structure of this message
+type BACnetConfirmedServiceRequestConfirmedCOVNotification struct {
+ subscriberProcessIdentifier uint8
+ monitoredObjectType uint16
+ monitoredObjectInstanceNumber uint32
+ issueConfirmedNotificationsType uint16
+ issueConfirmedNotificationsInstanceNumber uint32
+ lifetimeLength uint8
+ lifetimeSeconds []int8
+ notifications []BACnetTagWithContent
+ BACnetConfirmedServiceRequest
+}
+
+// The corresponding interface
+type IBACnetConfirmedServiceRequestConfirmedCOVNotification interface {
+ IBACnetConfirmedServiceRequest
+ Serialize(io spi.WriteBuffer)
+}
+
+// Accessors for discriminator values.
+func (m BACnetConfirmedServiceRequestConfirmedCOVNotification) ServiceChoice() uint8 {
+ return 0x01
+}
+
+func (m BACnetConfirmedServiceRequestConfirmedCOVNotification) initialize() spi.Message {
+ return m
+}
+
+func NewBACnetConfirmedServiceRequestConfirmedCOVNotification(subscriberProcessIdentifier uint8, monitoredObjectType uint16, monitoredObjectInstanceNumber uint32, issueConfirmedNotificationsType uint16, issueConfirmedNotificationsInstanceNumber uint32, lifetimeLength uint8, lifetimeSeconds []int8, notifications []BACnetTagWithContent) BACnetConfirmedServiceRequestInitializer {
+ return &BACnetConfirmedServiceRequestConfirmedCOVNotification{subscriberProcessIdentifier: subscriberProcessIdentifier, monitoredObjectType: monitoredObjectType, monitoredObjectInstanceNumber: monitoredObjectInstanceNumber, issueConfirmedNotificationsType: issueConfirmedNotificationsType, issueConfirmedNotificationsInstanceNumber: issueConfirmedNotificationsInstanceNumber, lifetimeLength: lifetimeLength, lifetimeSeconds: lifetimeSeconds, notifications: notifications}
+}
+
+func (m BACnetConfirmedServiceRequestConfirmedCOVNotification) LengthInBits() uint16 {
+ var lengthInBits uint16 = m.BACnetConfirmedServiceRequest.LengthInBits()
+
+ // Const Field (subscriberProcessIdentifierHeader)
+ lengthInBits += 8
+
+ // Simple field (subscriberProcessIdentifier)
+ lengthInBits += 8
+
+ // Const Field (monitoredObjectIdentifierHeader)
+ lengthInBits += 8
+
+ // Simple field (monitoredObjectType)
+ lengthInBits += 10
+
+ // Simple field (monitoredObjectInstanceNumber)
+ lengthInBits += 22
+
+ // Const Field (issueConfirmedNotificationsHeader)
+ lengthInBits += 8
+
+ // Simple field (issueConfirmedNotificationsType)
+ lengthInBits += 10
+
+ // Simple field (issueConfirmedNotificationsInstanceNumber)
+ lengthInBits += 22
+
+ // Const Field (lifetimeHeader)
+ lengthInBits += 5
+
+ // Simple field (lifetimeLength)
+ lengthInBits += 3
+
+ // Array field
+ if len(m.lifetimeSeconds) > 0 {
+ lengthInBits += 8 * uint16(len(m.lifetimeSeconds))
+ }
+
+ // Const Field (listOfValuesOpeningTag)
+ lengthInBits += 8
+
+ // Array field
+ if len(m.notifications) > 0 {
+ for _, element := range m.notifications {
+ lengthInBits += element.LengthInBits()
+ }
+ }
+
+ // Const Field (listOfValuesClosingTag)
+ lengthInBits += 8
+
+ return lengthInBits
+}
+
+func (m BACnetConfirmedServiceRequestConfirmedCOVNotification) LengthInBytes() uint16 {
+ return m.LengthInBits() / 8
+}
+
+func BACnetConfirmedServiceRequestConfirmedCOVNotificationParse(io spi.ReadBuffer, len uint16) (BACnetConfirmedServiceRequestInitializer, error) {
+
+ // Const Field (subscriberProcessIdentifierHeader)
+ var subscriberProcessIdentifierHeader uint8 = io.ReadUint8(8)
+ if subscriberProcessIdentifierHeader != BACnetConfirmedServiceRequestConfirmedCOVNotification_SUBSCRIBERPROCESSIDENTIFIERHEADER {
+ return nil, errors.New("Expected constant value " + strconv.Itoa(int(BACnetConfirmedServiceRequestConfirmedCOVNotification_SUBSCRIBERPROCESSIDENTIFIERHEADER)) + " but got " + strconv.Itoa(int(subscriberProcessIdentifierHeader)))
+ }
+
+ // Simple Field (subscriberProcessIdentifier)
+ var subscriberProcessIdentifier uint8 = io.ReadUint8(8)
+
+ // Const Field (monitoredObjectIdentifierHeader)
+ var monitoredObjectIdentifierHeader uint8 = io.ReadUint8(8)
+ if monitoredObjectIdentifierHeader != BACnetConfirmedServiceRequestConfirmedCOVNotification_MONITOREDOBJECTIDENTIFIERHEADER {
+ return nil, errors.New("Expected constant value " + strconv.Itoa(int(BACnetConfirmedServiceRequestConfirmedCOVNotification_MONITOREDOBJECTIDENTIFIERHEADER)) + " but got " + strconv.Itoa(int(monitoredObjectIdentifierHeader)))
+ }
+
+ // Simple Field (monitoredObjectType)
+ var monitoredObjectType uint16 = io.ReadUint16(10)
+
+ // Simple Field (monitoredObjectInstanceNumber)
+ var monitoredObjectInstanceNumber uint32 = io.ReadUint32(22)
+
+ // Const Field (issueConfirmedNotificationsHeader)
+ var issueConfirmedNotificationsHeader uint8 = io.ReadUint8(8)
+ if issueConfirmedNotificationsHeader != BACnetConfirmedServiceRequestConfirmedCOVNotification_ISSUECONFIRMEDNOTIFICATIONSHEADER {
+ return nil, errors.New("Expected constant value " + strconv.Itoa(int(BACnetConfirmedServiceRequestConfirmedCOVNotification_ISSUECONFIRMEDNOTIFICATIONSHEADER)) + " but got " + strconv.Itoa(int(issueConfirmedNotificationsHeader)))
+ }
+
+ // Simple Field (issueConfirmedNotificationsType)
+ var issueConfirmedNotificationsType uint16 = io.ReadUint16(10)
+
+ // Simple Field (issueConfirmedNotificationsInstanceNumber)
+ var issueConfirmedNotificationsInstanceNumber uint32 = io.ReadUint32(22)
+
+ // Const Field (lifetimeHeader)
+ var lifetimeHeader uint8 = io.ReadUint8(5)
+ if lifetimeHeader != BACnetConfirmedServiceRequestConfirmedCOVNotification_LIFETIMEHEADER {
+ return nil, errors.New("Expected constant value " + strconv.Itoa(int(BACnetConfirmedServiceRequestConfirmedCOVNotification_LIFETIMEHEADER)) + " but got " + strconv.Itoa(int(lifetimeHeader)))
+ }
+
+ // Simple Field (lifetimeLength)
+ var lifetimeLength uint8 = io.ReadUint8(3)
+
+ // Array field (lifetimeSeconds)
+ var lifetimeSeconds []int8
+ // Count array
+ {
+ lifetimeSeconds := make([]int8, lifetimeLength)
+ for curItem := uint16(0); curItem < uint16(lifetimeLength); curItem++ {
+
+ lifetimeSeconds = append(lifetimeSeconds, io.ReadInt8(8))
+ }
+ }
+
+ // Const Field (listOfValuesOpeningTag)
+ var listOfValuesOpeningTag uint8 = io.ReadUint8(8)
+ if listOfValuesOpeningTag != BACnetConfirmedServiceRequestConfirmedCOVNotification_LISTOFVALUESOPENINGTAG {
+ return nil, errors.New("Expected constant value " + strconv.Itoa(int(BACnetConfirmedServiceRequestConfirmedCOVNotification_LISTOFVALUESOPENINGTAG)) + " but got " + strconv.Itoa(int(listOfValuesOpeningTag)))
+ }
+
+ // Array field (notifications)
+ var notifications []BACnetTagWithContent
+ // Length array
+ _notificationsLength := uint16((len) - (18))
+ _notificationsEndPos := io.GetPos() + _notificationsLength
+ for io.GetPos() < _notificationsEndPos {
+ _message, _err := BACnetTagWithContentParse(io)
+ if _err != nil {
+ return nil, errors.New("Error parsing 'notifications' field " + _err.Error())
+ }
+ var _item BACnetTagWithContent
+ _item, _ok := _message.(BACnetTagWithContent)
+ if !_ok {
+ return nil, errors.New("Couldn't cast message of type " + reflect.TypeOf(_item).Name() + " to BACnetTagWithContent")
+ }
+ notifications = append(notifications, _item)
+ }
+
+ // Const Field (listOfValuesClosingTag)
+ var listOfValuesClosingTag uint8 = io.ReadUint8(8)
+ if listOfValuesClosingTag != BACnetConfirmedServiceRequestConfirmedCOVNotification_LISTOFVALUESCLOSINGTAG {
+ return nil, errors.New("Expected constant value " + strconv.Itoa(int(BACnetConfirmedServiceRequestConfirmedCOVNotification_LISTOFVALUESCLOSINGTAG)) + " but got " + strconv.Itoa(int(listOfValuesClosingTag)))
+ }
+
+ // Create the instance
+ return NewBACnetConfirmedServiceRequestConfirmedCOVNotification(subscriberProcessIdentifier, monitoredObjectType, monitoredObjectInstanceNumber, issueConfirmedNotificationsType, issueConfirmedNotificationsInstanceNumber, lifetimeLength, lifetimeSeconds, notifications), nil
+}
+
+func (m BACnetConfirmedServiceRequestConfirmedCOVNotification) Serialize(io spi.WriteBuffer) {
+ serializeFunc := func(typ interface{}) {
+ if _, ok := typ.(IBACnetConfirmedServiceRequestConfirmedCOVNotification); ok {
+
+ // Const Field (subscriberProcessIdentifierHeader)
+ io.WriteUint8(8, 0x09)
+
+ // Simple Field (subscriberProcessIdentifier)
+ var subscriberProcessIdentifier uint8 = m.subscriberProcessIdentifier
+ io.WriteUint8(8, (subscriberProcessIdentifier))
+
+ // Const Field (monitoredObjectIdentifierHeader)
+ io.WriteUint8(8, 0x1C)
+
+ // Simple Field (monitoredObjectType)
+ var monitoredObjectType uint16 = m.monitoredObjectType
+ io.WriteUint16(10, (monitoredObjectType))
+
+ // Simple Field (monitoredObjectInstanceNumber)
+ var monitoredObjectInstanceNumber uint32 = m.monitoredObjectInstanceNumber
+ io.WriteUint32(22, (monitoredObjectInstanceNumber))
+
+ // Const Field (issueConfirmedNotificationsHeader)
+ io.WriteUint8(8, 0x2C)
+
+ // Simple Field (issueConfirmedNotificationsType)
+ var issueConfirmedNotificationsType uint16 = m.issueConfirmedNotificationsType
+ io.WriteUint16(10, (issueConfirmedNotificationsType))
+
+ // Simple Field (issueConfirmedNotificationsInstanceNumber)
+ var issueConfirmedNotificationsInstanceNumber uint32 = m.issueConfirmedNotificationsInstanceNumber
+ io.WriteUint32(22, (issueConfirmedNotificationsInstanceNumber))
+
+ // Const Field (lifetimeHeader)
+ io.WriteUint8(5, 0x07)
+
+ // Simple Field (lifetimeLength)
+ var lifetimeLength uint8 = m.lifetimeLength
+ io.WriteUint8(3, (lifetimeLength))
+
+ // Array Field (lifetimeSeconds)
+ if m.lifetimeSeconds != nil {
+ for _, _element := range m.lifetimeSeconds {
+ io.WriteInt8(8, _element)
+ }
+ }
+
+ // Const Field (listOfValuesOpeningTag)
+ io.WriteUint8(8, 0x4E)
+
+ // Array Field (notifications)
+ if m.notifications != nil {
+ for _, _element := range m.notifications {
+ _element.Serialize(io)
+ }
+ }
+
+ // Const Field (listOfValuesClosingTag)
+ io.WriteUint8(8, 0x4F)
+ }
+ }
+ serializeFunc(m)
+}
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedCOVNotificationMultiple.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedCOVNotificationMultiple.go
new file mode 100644
index 0000000..8e6622a
--- /dev/null
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedCOVNotificationMultiple.go
@@ -0,0 +1,71 @@
+//
+// 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.
+//
+package model
+
+import (
+ "plc4x.apache.org/plc4go-modbus-driver/0.8.0/internal/plc4go/spi"
+)
+
+// The data-structure of this message
+type BACnetConfirmedServiceRequestConfirmedCOVNotificationMultiple struct {
+ BACnetConfirmedServiceRequest
+}
+
+// The corresponding interface
+type IBACnetConfirmedServiceRequestConfirmedCOVNotificationMultiple interface {
+ IBACnetConfirmedServiceRequest
+ Serialize(io spi.WriteBuffer)
+}
+
+// Accessors for discriminator values.
+func (m BACnetConfirmedServiceRequestConfirmedCOVNotificationMultiple) ServiceChoice() uint8 {
+ return 0x1F
+}
+
+func (m BACnetConfirmedServiceRequestConfirmedCOVNotificationMultiple) initialize() spi.Message {
+ return m
+}
+
+func NewBACnetConfirmedServiceRequestConfirmedCOVNotificationMultiple() BACnetConfirmedServiceRequestInitializer {
+ return &BACnetConfirmedServiceRequestConfirmedCOVNotificationMultiple{}
+}
+
+func (m BACnetConfirmedServiceRequestConfirmedCOVNotificationMultiple) LengthInBits() uint16 {
+ var lengthInBits uint16 = m.BACnetConfirmedServiceRequest.LengthInBits()
+
+ return lengthInBits
+}
+
+func (m BACnetConfirmedServiceRequestConfirmedCOVNotificationMultiple) LengthInBytes() uint16 {
+ return m.LengthInBits() / 8
+}
+
+func BACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleParse(io spi.ReadBuffer) (BACnetConfirmedServiceRequestInitializer, error) {
+
+ // Create the instance
+ return NewBACnetConfirmedServiceRequestConfirmedCOVNotificationMultiple(), nil
+}
+
+func (m BACnetConfirmedServiceRequestConfirmedCOVNotificationMultiple) Serialize(io spi.WriteBuffer) {
+ serializeFunc := func(typ interface{}) {
+ if _, ok := typ.(IBACnetConfirmedServiceRequestConfirmedCOVNotificationMultiple); ok {
+ }
+ }
+ serializeFunc(m)
+}
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedEventNotification.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedEventNotification.go
new file mode 100644
index 0000000..ff12f85
--- /dev/null
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedEventNotification.go
@@ -0,0 +1,71 @@
+//
+// 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.
+//
+package model
+
+import (
+ "plc4x.apache.org/plc4go-modbus-driver/0.8.0/internal/plc4go/spi"
+)
+
+// The data-structure of this message
+type BACnetConfirmedServiceRequestConfirmedEventNotification struct {
+ BACnetConfirmedServiceRequest
+}
+
+// The corresponding interface
+type IBACnetConfirmedServiceRequestConfirmedEventNotification interface {
+ IBACnetConfirmedServiceRequest
+ Serialize(io spi.WriteBuffer)
+}
+
+// Accessors for discriminator values.
+func (m BACnetConfirmedServiceRequestConfirmedEventNotification) ServiceChoice() uint8 {
+ return 0x02
+}
+
+func (m BACnetConfirmedServiceRequestConfirmedEventNotification) initialize() spi.Message {
+ return m
+}
+
+func NewBACnetConfirmedServiceRequestConfirmedEventNotification() BACnetConfirmedServiceRequestInitializer {
+ return &BACnetConfirmedServiceRequestConfirmedEventNotification{}
+}
+
+func (m BACnetConfirmedServiceRequestConfirmedEventNotification) LengthInBits() uint16 {
+ var lengthInBits uint16 = m.BACnetConfirmedServiceRequest.LengthInBits()
+
+ return lengthInBits
+}
+
+func (m BACnetConfirmedServiceRequestConfirmedEventNotification) LengthInBytes() uint16 {
+ return m.LengthInBits() / 8
+}
+
+func BACnetConfirmedServiceRequestConfirmedEventNotificationParse(io spi.ReadBuffer) (BACnetConfirmedServiceRequestInitializer, error) {
+
+ // Create the instance
+ return NewBACnetConfirmedServiceRequestConfirmedEventNotification(), nil
+}
+
+func (m BACnetConfirmedServiceRequestConfirmedEventNotification) Serialize(io spi.WriteBuffer) {
+ serializeFunc := func(typ interface{}) {
+ if _, ok := typ.(IBACnetConfirmedServiceRequestConfirmedEventNotification); ok {
+ }
+ }
+ serializeFunc(m)
+}
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedPrivateTransfer.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedPrivateTransfer.go
new file mode 100644
index 0000000..e9be82b
--- /dev/null
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedPrivateTransfer.go
@@ -0,0 +1,71 @@
+//
+// 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.
+//
+package model
+
+import (
+ "plc4x.apache.org/plc4go-modbus-driver/0.8.0/internal/plc4go/spi"
+)
+
+// The data-structure of this message
+type BACnetConfirmedServiceRequestConfirmedPrivateTransfer struct {
+ BACnetConfirmedServiceRequest
+}
+
+// The corresponding interface
+type IBACnetConfirmedServiceRequestConfirmedPrivateTransfer interface {
+ IBACnetConfirmedServiceRequest
+ Serialize(io spi.WriteBuffer)
+}
+
+// Accessors for discriminator values.
+func (m BACnetConfirmedServiceRequestConfirmedPrivateTransfer) ServiceChoice() uint8 {
+ return 0x12
+}
+
+func (m BACnetConfirmedServiceRequestConfirmedPrivateTransfer) initialize() spi.Message {
+ return m
+}
+
+func NewBACnetConfirmedServiceRequestConfirmedPrivateTransfer() BACnetConfirmedServiceRequestInitializer {
+ return &BACnetConfirmedServiceRequestConfirmedPrivateTransfer{}
+}
+
+func (m BACnetConfirmedServiceRequestConfirmedPrivateTransfer) LengthInBits() uint16 {
+ var lengthInBits uint16 = m.BACnetConfirmedServiceRequest.LengthInBits()
+
+ return lengthInBits
+}
+
+func (m BACnetConfirmedServiceRequestConfirmedPrivateTransfer) LengthInBytes() uint16 {
+ return m.LengthInBits() / 8
+}
+
+func BACnetConfirmedServiceRequestConfirmedPrivateTransferParse(io spi.ReadBuffer) (BACnetConfirmedServiceRequestInitializer, error) {
+
+ // Create the instance
+ return NewBACnetConfirmedServiceRequestConfirmedPrivateTransfer(), nil
+}
+
+func (m BACnetConfirmedServiceRequestConfirmedPrivateTransfer) Serialize(io spi.WriteBuffer) {
+ serializeFunc := func(typ interface{}) {
+ if _, ok := typ.(IBACnetConfirmedServiceRequestConfirmedPrivateTransfer); ok {
+ }
+ }
+ serializeFunc(m)
+}
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedTextMessage.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedTextMessage.go
new file mode 100644
index 0000000..f9e8a6e
--- /dev/null
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedTextMessage.go
@@ -0,0 +1,71 @@
+//
+// 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.
+//
+package model
+
+import (
+ "plc4x.apache.org/plc4go-modbus-driver/0.8.0/internal/plc4go/spi"
+)
+
+// The data-structure of this message
+type BACnetConfirmedServiceRequestConfirmedTextMessage struct {
+ BACnetConfirmedServiceRequest
+}
+
+// The corresponding interface
+type IBACnetConfirmedServiceRequestConfirmedTextMessage interface {
+ IBACnetConfirmedServiceRequest
+ Serialize(io spi.WriteBuffer)
+}
+
+// Accessors for discriminator values.
+func (m BACnetConfirmedServiceRequestConfirmedTextMessage) ServiceChoice() uint8 {
+ return 0x13
+}
+
+func (m BACnetConfirmedServiceRequestConfirmedTextMessage) initialize() spi.Message {
+ return m
+}
+
+func NewBACnetConfirmedServiceRequestConfirmedTextMessage() BACnetConfirmedServiceRequestInitializer {
+ return &BACnetConfirmedServiceRequestConfirmedTextMessage{}
+}
+
+func (m BACnetConfirmedServiceRequestConfirmedTextMessage) LengthInBits() uint16 {
+ var lengthInBits uint16 = m.BACnetConfirmedServiceRequest.LengthInBits()
+
+ return lengthInBits
+}
+
+func (m BACnetConfirmedServiceRequestConfirmedTextMessage) LengthInBytes() uint16 {
+ return m.LengthInBits() / 8
+}
+
+func BACnetConfirmedServiceRequestConfirmedTextMessageParse(io spi.ReadBuffer) (BACnetConfirmedServiceRequestInitializer, error) {
+
+ // Create the instance
+ return NewBACnetConfirmedServiceRequestConfirmedTextMessage(), nil
+}
+
+func (m BACnetConfirmedServiceRequestConfirmedTextMessage) Serialize(io spi.WriteBuffer) {
+ serializeFunc := func(typ interface{}) {
+ if _, ok := typ.(IBACnetConfirmedServiceRequestConfirmedTextMessage); ok {
+ }
+ }
+ serializeFunc(m)
+}
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestCreateObject.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestCreateObject.go
new file mode 100644
index 0000000..6c8dffe
--- /dev/null
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestCreateObject.go
@@ -0,0 +1,71 @@
+//
+// 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.
+//
+package model
+
+import (
+ "plc4x.apache.org/plc4go-modbus-driver/0.8.0/internal/plc4go/spi"
+)
+
+// The data-structure of this message
+type BACnetConfirmedServiceRequestCreateObject struct {
+ BACnetConfirmedServiceRequest
+}
+
+// The corresponding interface
+type IBACnetConfirmedServiceRequestCreateObject interface {
+ IBACnetConfirmedServiceRequest
+ Serialize(io spi.WriteBuffer)
+}
+
+// Accessors for discriminator values.
+func (m BACnetConfirmedServiceRequestCreateObject) ServiceChoice() uint8 {
+ return 0x0A
+}
+
+func (m BACnetConfirmedServiceRequestCreateObject) initialize() spi.Message {
+ return m
+}
+
+func NewBACnetConfirmedServiceRequestCreateObject() BACnetConfirmedServiceRequestInitializer {
+ return &BACnetConfirmedServiceRequestCreateObject{}
+}
+
+func (m BACnetConfirmedServiceRequestCreateObject) LengthInBits() uint16 {
+ var lengthInBits uint16 = m.BACnetConfirmedServiceRequest.LengthInBits()
+
+ return lengthInBits
+}
+
+func (m BACnetConfirmedServiceRequestCreateObject) LengthInBytes() uint16 {
+ return m.LengthInBits() / 8
+}
+
+func BACnetConfirmedServiceRequestCreateObjectParse(io spi.ReadBuffer) (BACnetConfirmedServiceRequestInitializer, error) {
+
+ // Create the instance
+ return NewBACnetConfirmedServiceRequestCreateObject(), nil
+}
+
+func (m BACnetConfirmedServiceRequestCreateObject) Serialize(io spi.WriteBuffer) {
+ serializeFunc := func(typ interface{}) {
+ if _, ok := typ.(IBACnetConfirmedServiceRequestCreateObject); ok {
+ }
+ }
+ serializeFunc(m)
+}
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestDeleteObject.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestDeleteObject.go
new file mode 100644
index 0000000..7a7f91b
--- /dev/null
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestDeleteObject.go
@@ -0,0 +1,71 @@
+//
+// 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.
+//
+package model
+
+import (
+ "plc4x.apache.org/plc4go-modbus-driver/0.8.0/internal/plc4go/spi"
+)
+
+// The data-structure of this message
+type BACnetConfirmedServiceRequestDeleteObject struct {
+ BACnetConfirmedServiceRequest
+}
+
+// The corresponding interface
+type IBACnetConfirmedServiceRequestDeleteObject interface {
+ IBACnetConfirmedServiceRequest
+ Serialize(io spi.WriteBuffer)
+}
+
+// Accessors for discriminator values.
+func (m BACnetConfirmedServiceRequestDeleteObject) ServiceChoice() uint8 {
+ return 0x0B
+}
+
+func (m BACnetConfirmedServiceRequestDeleteObject) initialize() spi.Message {
+ return m
+}
+
+func NewBACnetConfirmedServiceRequestDeleteObject() BACnetConfirmedServiceRequestInitializer {
+ return &BACnetConfirmedServiceRequestDeleteObject{}
+}
+
+func (m BACnetConfirmedServiceRequestDeleteObject) LengthInBits() uint16 {
+ var lengthInBits uint16 = m.BACnetConfirmedServiceRequest.LengthInBits()
+
+ return lengthInBits
+}
+
+func (m BACnetConfirmedServiceRequestDeleteObject) LengthInBytes() uint16 {
+ return m.LengthInBits() / 8
+}
+
+func BACnetConfirmedServiceRequestDeleteObjectParse(io spi.ReadBuffer) (BACnetConfirmedServiceRequestInitializer, error) {
+
+ // Create the instance
+ return NewBACnetConfirmedServiceRequestDeleteObject(), nil
+}
+
+func (m BACnetConfirmedServiceRequestDeleteObject) Serialize(io spi.WriteBuffer) {
+ serializeFunc := func(typ interface{}) {
+ if _, ok := typ.(IBACnetConfirmedServiceRequestDeleteObject); ok {
+ }
+ }
+ serializeFunc(m)
+}
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestDeviceCommunicationControl.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestDeviceCommunicationControl.go
new file mode 100644
index 0000000..514be4b
--- /dev/null
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestDeviceCommunicationControl.go
@@ -0,0 +1,71 @@
+//
+// 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.
+//
+package model
+
+import (
+ "plc4x.apache.org/plc4go-modbus-driver/0.8.0/internal/plc4go/spi"
+)
+
+// The data-structure of this message
+type BACnetConfirmedServiceRequestDeviceCommunicationControl struct {
+ BACnetConfirmedServiceRequest
+}
+
+// The corresponding interface
+type IBACnetConfirmedServiceRequestDeviceCommunicationControl interface {
+ IBACnetConfirmedServiceRequest
+ Serialize(io spi.WriteBuffer)
+}
+
+// Accessors for discriminator values.
+func (m BACnetConfirmedServiceRequestDeviceCommunicationControl) ServiceChoice() uint8 {
+ return 0x11
+}
+
+func (m BACnetConfirmedServiceRequestDeviceCommunicationControl) initialize() spi.Message {
+ return m
+}
+
+func NewBACnetConfirmedServiceRequestDeviceCommunicationControl() BACnetConfirmedServiceRequestInitializer {
+ return &BACnetConfirmedServiceRequestDeviceCommunicationControl{}
+}
+
+func (m BACnetConfirmedServiceRequestDeviceCommunicationControl) LengthInBits() uint16 {
+ var lengthInBits uint16 = m.BACnetConfirmedServiceRequest.LengthInBits()
+
+ return lengthInBits
+}
+
+func (m BACnetConfirmedServiceRequestDeviceCommunicationControl) LengthInBytes() uint16 {
+ return m.LengthInBits() / 8
+}
+
+func BACnetConfirmedServiceRequestDeviceCommunicationControlParse(io spi.ReadBuffer) (BACnetConfirmedServiceRequestInitializer, error) {
+
+ // Create the instance
+ return NewBACnetConfirmedServiceRequestDeviceCommunicationControl(), nil
+}
+
+func (m BACnetConfirmedServiceRequestDeviceCommunicationControl) Serialize(io spi.WriteBuffer) {
+ serializeFunc := func(typ interface{}) {
+ if _, ok := typ.(IBACnetConfirmedServiceRequestDeviceCommunicationControl); ok {
+ }
+ }
+ serializeFunc(m)
+}
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestGetEnrollmentSummary.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestGetEnrollmentSummary.go
new file mode 100644
index 0000000..4edd699
--- /dev/null
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestGetEnrollmentSummary.go
@@ -0,0 +1,71 @@
+//
+// 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.
+//
+package model
+
+import (
+ "plc4x.apache.org/plc4go-modbus-driver/0.8.0/internal/plc4go/spi"
+)
+
+// The data-structure of this message
+type BACnetConfirmedServiceRequestGetEnrollmentSummary struct {
+ BACnetConfirmedServiceRequest
+}
+
+// The corresponding interface
+type IBACnetConfirmedServiceRequestGetEnrollmentSummary interface {
+ IBACnetConfirmedServiceRequest
+ Serialize(io spi.WriteBuffer)
+}
+
+// Accessors for discriminator values.
+func (m BACnetConfirmedServiceRequestGetEnrollmentSummary) ServiceChoice() uint8 {
+ return 0x04
+}
+
+func (m BACnetConfirmedServiceRequestGetEnrollmentSummary) initialize() spi.Message {
+ return m
+}
+
+func NewBACnetConfirmedServiceRequestGetEnrollmentSummary() BACnetConfirmedServiceRequestInitializer {
+ return &BACnetConfirmedServiceRequestGetEnrollmentSummary{}
+}
+
+func (m BACnetConfirmedServiceRequestGetEnrollmentSummary) LengthInBits() uint16 {
+ var lengthInBits uint16 = m.BACnetConfirmedServiceRequest.LengthInBits()
+
+ return lengthInBits
+}
+
+func (m BACnetConfirmedServiceRequestGetEnrollmentSummary) LengthInBytes() uint16 {
+ return m.LengthInBits() / 8
+}
+
+func BACnetConfirmedServiceRequestGetEnrollmentSummaryParse(io spi.ReadBuffer) (BACnetConfirmedServiceRequestInitializer, error) {
+
+ // Create the instance
+ return NewBACnetConfirmedServiceRequestGetEnrollmentSummary(), nil
+}
+
+func (m BACnetConfirmedServiceRequestGetEnrollmentSummary) Serialize(io spi.WriteBuffer) {
+ serializeFunc := func(typ interface{}) {
+ if _, ok := typ.(IBACnetConfirmedServiceRequestGetEnrollmentSummary); ok {
+ }
+ }
+ serializeFunc(m)
+}
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestGetEventInformation.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestGetEventInformation.go
new file mode 100644
index 0000000..0c94b3c
--- /dev/null
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestGetEventInformation.go
@@ -0,0 +1,71 @@
+//
+// 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.
+//
+package model
+
+import (
+ "plc4x.apache.org/plc4go-modbus-driver/0.8.0/internal/plc4go/spi"
+)
+
+// The data-structure of this message
+type BACnetConfirmedServiceRequestGetEventInformation struct {
+ BACnetConfirmedServiceRequest
+}
+
+// The corresponding interface
+type IBACnetConfirmedServiceRequestGetEventInformation interface {
+ IBACnetConfirmedServiceRequest
+ Serialize(io spi.WriteBuffer)
+}
+
+// Accessors for discriminator values.
+func (m BACnetConfirmedServiceRequestGetEventInformation) ServiceChoice() uint8 {
+ return 0x1D
+}
+
+func (m BACnetConfirmedServiceRequestGetEventInformation) initialize() spi.Message {
+ return m
+}
+
+func NewBACnetConfirmedServiceRequestGetEventInformation() BACnetConfirmedServiceRequestInitializer {
+ return &BACnetConfirmedServiceRequestGetEventInformation{}
+}
+
+func (m BACnetConfirmedServiceRequestGetEventInformation) LengthInBits() uint16 {
+ var lengthInBits uint16 = m.BACnetConfirmedServiceRequest.LengthInBits()
+
+ return lengthInBits
+}
+
+func (m BACnetConfirmedServiceRequestGetEventInformation) LengthInBytes() uint16 {
+ return m.LengthInBits() / 8
+}
+
+func BACnetConfirmedServiceRequestGetEventInformationParse(io spi.ReadBuffer) (BACnetConfirmedServiceRequestInitializer, error) {
+
+ // Create the instance
+ return NewBACnetConfirmedServiceRequestGetEventInformation(), nil
+}
+
+func (m BACnetConfirmedServiceRequestGetEventInformation) Serialize(io spi.WriteBuffer) {
+ serializeFunc := func(typ interface{}) {
+ if _, ok := typ.(IBACnetConfirmedServiceRequestGetEventInformation); ok {
+ }
+ }
+ serializeFunc(m)
+}
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestLifeSafetyOperation.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestLifeSafetyOperation.go
new file mode 100644
index 0000000..7d4694d
--- /dev/null
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestLifeSafetyOperation.go
@@ -0,0 +1,71 @@
+//
+// 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.
+//
+package model
+
+import (
+ "plc4x.apache.org/plc4go-modbus-driver/0.8.0/internal/plc4go/spi"
+)
+
+// The data-structure of this message
+type BACnetConfirmedServiceRequestLifeSafetyOperation struct {
+ BACnetConfirmedServiceRequest
+}
+
+// The corresponding interface
+type IBACnetConfirmedServiceRequestLifeSafetyOperation interface {
+ IBACnetConfirmedServiceRequest
+ Serialize(io spi.WriteBuffer)
+}
+
+// Accessors for discriminator values.
+func (m BACnetConfirmedServiceRequestLifeSafetyOperation) ServiceChoice() uint8 {
+ return 0x1B
+}
+
+func (m BACnetConfirmedServiceRequestLifeSafetyOperation) initialize() spi.Message {
+ return m
+}
+
+func NewBACnetConfirmedServiceRequestLifeSafetyOperation() BACnetConfirmedServiceRequestInitializer {
+ return &BACnetConfirmedServiceRequestLifeSafetyOperation{}
+}
+
+func (m BACnetConfirmedServiceRequestLifeSafetyOperation) LengthInBits() uint16 {
+ var lengthInBits uint16 = m.BACnetConfirmedServiceRequest.LengthInBits()
+
+ return lengthInBits
+}
+
+func (m BACnetConfirmedServiceRequestLifeSafetyOperation) LengthInBytes() uint16 {
+ return m.LengthInBits() / 8
+}
+
+func BACnetConfirmedServiceRequestLifeSafetyOperationParse(io spi.ReadBuffer) (BACnetConfirmedServiceRequestInitializer, error) {
+
+ // Create the instance
+ return NewBACnetConfirmedServiceRequestLifeSafetyOperation(), nil
+}
+
+func (m BACnetConfirmedServiceRequestLifeSafetyOperation) Serialize(io spi.WriteBuffer) {
+ serializeFunc := func(typ interface{}) {
+ if _, ok := typ.(IBACnetConfirmedServiceRequestLifeSafetyOperation); ok {
+ }
+ }
+ serializeFunc(m)
+}
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReadProperty.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReadProperty.go
new file mode 100644
index 0000000..7051978
--- /dev/null
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReadProperty.go
@@ -0,0 +1,158 @@
+//
+// 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.
+//
+package model
+
+import (
+ "errors"
+ "plc4x.apache.org/plc4go-modbus-driver/0.8.0/internal/plc4go/spi"
+ "strconv"
+)
+
+// Constant values.
+const BACnetConfirmedServiceRequestReadProperty_OBJECTIDENTIFIERHEADER uint8 = 0x0C
+const BACnetConfirmedServiceRequestReadProperty_PROPERTYIDENTIFIERHEADER uint8 = 0x03
+
+// The data-structure of this message
+type BACnetConfirmedServiceRequestReadProperty struct {
+ objectType uint16
+ objectInstanceNumber uint32
+ propertyIdentifierLength uint8
+ propertyIdentifier []int8
+ BACnetConfirmedServiceRequest
+}
+
+// The corresponding interface
+type IBACnetConfirmedServiceRequestReadProperty interface {
+ IBACnetConfirmedServiceRequest
+ Serialize(io spi.WriteBuffer)
+}
+
+// Accessors for discriminator values.
+func (m BACnetConfirmedServiceRequestReadProperty) ServiceChoice() uint8 {
+ return 0x0C
+}
+
+func (m BACnetConfirmedServiceRequestReadProperty) initialize() spi.Message {
+ return m
+}
+
+func NewBACnetConfirmedServiceRequestReadProperty(objectType uint16, objectInstanceNumber uint32, propertyIdentifierLength uint8, propertyIdentifier []int8) BACnetConfirmedServiceRequestInitializer {
+ return &BACnetConfirmedServiceRequestReadProperty{objectType: objectType, objectInstanceNumber: objectInstanceNumber, propertyIdentifierLength: propertyIdentifierLength, propertyIdentifier: propertyIdentifier}
+}
+
+func (m BACnetConfirmedServiceRequestReadProperty) LengthInBits() uint16 {
+ var lengthInBits uint16 = m.BACnetConfirmedServiceRequest.LengthInBits()
+
+ // Const Field (objectIdentifierHeader)
+ lengthInBits += 8
+
+ // Simple field (objectType)
+ lengthInBits += 10
+
+ // Simple field (objectInstanceNumber)
+ lengthInBits += 22
+
+ // Const Field (propertyIdentifierHeader)
+ lengthInBits += 5
+
+ // Simple field (propertyIdentifierLength)
+ lengthInBits += 3
+
+ // Array field
+ if len(m.propertyIdentifier) > 0 {
+ lengthInBits += 8 * uint16(len(m.propertyIdentifier))
+ }
+
+ return lengthInBits
+}
+
+func (m BACnetConfirmedServiceRequestReadProperty) LengthInBytes() uint16 {
+ return m.LengthInBits() / 8
+}
+
+func BACnetConfirmedServiceRequestReadPropertyParse(io spi.ReadBuffer) (BACnetConfirmedServiceRequestInitializer, error) {
+
+ // Const Field (objectIdentifierHeader)
+ var objectIdentifierHeader uint8 = io.ReadUint8(8)
+ if objectIdentifierHeader != BACnetConfirmedServiceRequestReadProperty_OBJECTIDENTIFIERHEADER {
+ return nil, errors.New("Expected constant value " + strconv.Itoa(int(BACnetConfirmedServiceRequestReadProperty_OBJECTIDENTIFIERHEADER)) + " but got " + strconv.Itoa(int(objectIdentifierHeader)))
+ }
+
+ // Simple Field (objectType)
+ var objectType uint16 = io.ReadUint16(10)
+
+ // Simple Field (objectInstanceNumber)
+ var objectInstanceNumber uint32 = io.ReadUint32(22)
+
+ // Const Field (propertyIdentifierHeader)
+ var propertyIdentifierHeader uint8 = io.ReadUint8(5)
+ if propertyIdentifierHeader != BACnetConfirmedServiceRequestReadProperty_PROPERTYIDENTIFIERHEADER {
+ return nil, errors.New("Expected constant value " + strconv.Itoa(int(BACnetConfirmedServiceRequestReadProperty_PROPERTYIDENTIFIERHEADER)) + " but got " + strconv.Itoa(int(propertyIdentifierHeader)))
+ }
+
+ // Simple Field (propertyIdentifierLength)
+ var propertyIdentifierLength uint8 = io.ReadUint8(3)
+
+ // Array field (propertyIdentifier)
+ var propertyIdentifier []int8
+ // Count array
+ {
+ propertyIdentifier := make([]int8, propertyIdentifierLength)
+ for curItem := uint16(0); curItem < uint16(propertyIdentifierLength); curItem++ {
+
+ propertyIdentifier = append(propertyIdentifier, io.ReadInt8(8))
+ }
+ }
+
+ // Create the instance
+ return NewBACnetConfirmedServiceRequestReadProperty(objectType, objectInstanceNumber, propertyIdentifierLength, propertyIdentifier), nil
+}
+
+func (m BACnetConfirmedServiceRequestReadProperty) Serialize(io spi.WriteBuffer) {
+ serializeFunc := func(typ interface{}) {
+ if _, ok := typ.(IBACnetConfirmedServiceRequestReadProperty); ok {
+
+ // Const Field (objectIdentifierHeader)
+ io.WriteUint8(8, 0x0C)
+
+ // Simple Field (objectType)
+ var objectType uint16 = m.objectType
+ io.WriteUint16(10, (objectType))
+
+ // Simple Field (objectInstanceNumber)
+ var objectInstanceNumber uint32 = m.objectInstanceNumber
+ io.WriteUint32(22, (objectInstanceNumber))
+
+ // Const Field (propertyIdentifierHeader)
+ io.WriteUint8(5, 0x03)
+
+ // Simple Field (propertyIdentifierLength)
+ var propertyIdentifierLength uint8 = m.propertyIdentifierLength
+ io.WriteUint8(3, (propertyIdentifierLength))
+
+ // Array Field (propertyIdentifier)
+ if m.propertyIdentifier != nil {
+ for _, _element := range m.propertyIdentifier {
+ io.WriteInt8(8, _element)
+ }
+ }
+ }
+ }
+ serializeFunc(m)
+}
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReadPropertyMultiple.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReadPropertyMultiple.go
new file mode 100644
index 0000000..3f1aaaf
--- /dev/null
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReadPropertyMultiple.go
@@ -0,0 +1,71 @@
+//
+// 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.
+//
+package model
+
+import (
+ "plc4x.apache.org/plc4go-modbus-driver/0.8.0/internal/plc4go/spi"
+)
+
+// The data-structure of this message
+type BACnetConfirmedServiceRequestReadPropertyMultiple struct {
+ BACnetConfirmedServiceRequest
+}
+
+// The corresponding interface
+type IBACnetConfirmedServiceRequestReadPropertyMultiple interface {
+ IBACnetConfirmedServiceRequest
+ Serialize(io spi.WriteBuffer)
+}
+
+// Accessors for discriminator values.
+func (m BACnetConfirmedServiceRequestReadPropertyMultiple) ServiceChoice() uint8 {
+ return 0x0E
+}
+
+func (m BACnetConfirmedServiceRequestReadPropertyMultiple) initialize() spi.Message {
+ return m
+}
+
+func NewBACnetConfirmedServiceRequestReadPropertyMultiple() BACnetConfirmedServiceRequestInitializer {
+ return &BACnetConfirmedServiceRequestReadPropertyMultiple{}
+}
+
+func (m BACnetConfirmedServiceRequestReadPropertyMultiple) LengthInBits() uint16 {
+ var lengthInBits uint16 = m.BACnetConfirmedServiceRequest.LengthInBits()
+
+ return lengthInBits
+}
+
+func (m BACnetConfirmedServiceRequestReadPropertyMultiple) LengthInBytes() uint16 {
+ return m.LengthInBits() / 8
+}
+
+func BACnetConfirmedServiceRequestReadPropertyMultipleParse(io spi.ReadBuffer) (BACnetConfirmedServiceRequestInitializer, error) {
+
+ // Create the instance
+ return NewBACnetConfirmedServiceRequestReadPropertyMultiple(), nil
+}
+
+func (m BACnetConfirmedServiceRequestReadPropertyMultiple) Serialize(io spi.WriteBuffer) {
+ serializeFunc := func(typ interface{}) {
+ if _, ok := typ.(IBACnetConfirmedServiceRequestReadPropertyMultiple); ok {
+ }
+ }
+ serializeFunc(m)
+}
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReadRange.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReadRange.go
new file mode 100644
index 0000000..a1deb56
--- /dev/null
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReadRange.go
@@ -0,0 +1,71 @@
+//
+// 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.
+//
+package model
+
+import (
+ "plc4x.apache.org/plc4go-modbus-driver/0.8.0/internal/plc4go/spi"
+)
+
+// The data-structure of this message
+type BACnetConfirmedServiceRequestReadRange struct {
+ BACnetConfirmedServiceRequest
+}
+
+// The corresponding interface
+type IBACnetConfirmedServiceRequestReadRange interface {
+ IBACnetConfirmedServiceRequest
+ Serialize(io spi.WriteBuffer)
+}
+
+// Accessors for discriminator values.
+func (m BACnetConfirmedServiceRequestReadRange) ServiceChoice() uint8 {
+ return 0x1A
+}
+
+func (m BACnetConfirmedServiceRequestReadRange) initialize() spi.Message {
+ return m
+}
+
+func NewBACnetConfirmedServiceRequestReadRange() BACnetConfirmedServiceRequestInitializer {
+ return &BACnetConfirmedServiceRequestReadRange{}
+}
+
+func (m BACnetConfirmedServiceRequestReadRange) LengthInBits() uint16 {
+ var lengthInBits uint16 = m.BACnetConfirmedServiceRequest.LengthInBits()
+
+ return lengthInBits
+}
+
+func (m BACnetConfirmedServiceRequestReadRange) LengthInBytes() uint16 {
+ return m.LengthInBits() / 8
+}
+
+func BACnetConfirmedServiceRequestReadRangeParse(io spi.ReadBuffer) (BACnetConfirmedServiceRequestInitializer, error) {
+
+ // Create the instance
+ return NewBACnetConfirmedServiceRequestReadRange(), nil
+}
+
+func (m BACnetConfirmedServiceRequestReadRange) Serialize(io spi.WriteBuffer) {
+ serializeFunc := func(typ interface{}) {
+ if _, ok := typ.(IBACnetConfirmedServiceRequestReadRange); ok {
+ }
+ }
+ serializeFunc(m)
+}
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReinitializeDevice.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReinitializeDevice.go
new file mode 100644
index 0000000..e4ceb8d
--- /dev/null
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReinitializeDevice.go
@@ -0,0 +1,71 @@
+//
+// 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.
+//
+package model
+
+import (
+ "plc4x.apache.org/plc4go-modbus-driver/0.8.0/internal/plc4go/spi"
+)
+
+// The data-structure of this message
+type BACnetConfirmedServiceRequestReinitializeDevice struct {
+ BACnetConfirmedServiceRequest
+}
+
+// The corresponding interface
+type IBACnetConfirmedServiceRequestReinitializeDevice interface {
+ IBACnetConfirmedServiceRequest
+ Serialize(io spi.WriteBuffer)
+}
+
+// Accessors for discriminator values.
+func (m BACnetConfirmedServiceRequestReinitializeDevice) ServiceChoice() uint8 {
+ return 0x14
+}
+
+func (m BACnetConfirmedServiceRequestReinitializeDevice) initialize() spi.Message {
+ return m
+}
+
+func NewBACnetConfirmedServiceRequestReinitializeDevice() BACnetConfirmedServiceRequestInitializer {
+ return &BACnetConfirmedServiceRequestReinitializeDevice{}
+}
+
+func (m BACnetConfirmedServiceRequestReinitializeDevice) LengthInBits() uint16 {
+ var lengthInBits uint16 = m.BACnetConfirmedServiceRequest.LengthInBits()
+
+ return lengthInBits
+}
+
+func (m BACnetConfirmedServiceRequestReinitializeDevice) LengthInBytes() uint16 {
+ return m.LengthInBits() / 8
+}
+
+func BACnetConfirmedServiceRequestReinitializeDeviceParse(io spi.ReadBuffer) (BACnetConfirmedServiceRequestInitializer, error) {
+
+ // Create the instance
+ return NewBACnetConfirmedServiceRequestReinitializeDevice(), nil
+}
+
+func (m BACnetConfirmedServiceRequestReinitializeDevice) Serialize(io spi.WriteBuffer) {
+ serializeFunc := func(typ interface{}) {
+ if _, ok := typ.(IBACnetConfirmedServiceRequestReinitializeDevice); ok {
+ }
+ }
+ serializeFunc(m)
+}
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestRemoveListElement.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestRemoveListElement.go
new file mode 100644
index 0000000..d4adccb
--- /dev/null
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestRemoveListElement.go
@@ -0,0 +1,71 @@
+//
+// 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.
+//
+package model
+
+import (
+ "plc4x.apache.org/plc4go-modbus-driver/0.8.0/internal/plc4go/spi"
+)
+
+// The data-structure of this message
+type BACnetConfirmedServiceRequestRemoveListElement struct {
+ BACnetConfirmedServiceRequest
+}
+
+// The corresponding interface
+type IBACnetConfirmedServiceRequestRemoveListElement interface {
+ IBACnetConfirmedServiceRequest
+ Serialize(io spi.WriteBuffer)
+}
+
+// Accessors for discriminator values.
+func (m BACnetConfirmedServiceRequestRemoveListElement) ServiceChoice() uint8 {
+ return 0x09
+}
+
+func (m BACnetConfirmedServiceRequestRemoveListElement) initialize() spi.Message {
+ return m
+}
+
+func NewBACnetConfirmedServiceRequestRemoveListElement() BACnetConfirmedServiceRequestInitializer {
+ return &BACnetConfirmedServiceRequestRemoveListElement{}
+}
+
+func (m BACnetConfirmedServiceRequestRemoveListElement) LengthInBits() uint16 {
+ var lengthInBits uint16 = m.BACnetConfirmedServiceRequest.LengthInBits()
+
+ return lengthInBits
+}
+
+func (m BACnetConfirmedServiceRequestRemoveListElement) LengthInBytes() uint16 {
+ return m.LengthInBits() / 8
+}
+
+func BACnetConfirmedServiceRequestRemoveListElementParse(io spi.ReadBuffer) (BACnetConfirmedServiceRequestInitializer, error) {
+
+ // Create the instance
+ return NewBACnetConfirmedServiceRequestRemoveListElement(), nil
+}
+
+func (m BACnetConfirmedServiceRequestRemoveListElement) Serialize(io spi.WriteBuffer) {
+ serializeFunc := func(typ interface{}) {
+ if _, ok := typ.(IBACnetConfirmedServiceRequestRemoveListElement); ok {
+ }
+ }
+ serializeFunc(m)
+}
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestRemovedAuthenticate.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestRemovedAuthenticate.go
new file mode 100644
index 0000000..bd6657a
--- /dev/null
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestRemovedAuthenticate.go
@@ -0,0 +1,71 @@
+//
+// 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.
+//
+package model
+
+import (
+ "plc4x.apache.org/plc4go-modbus-driver/0.8.0/internal/plc4go/spi"
+)
+
+// The data-structure of this message
+type BACnetConfirmedServiceRequestRemovedAuthenticate struct {
+ BACnetConfirmedServiceRequest
+}
+
+// The corresponding interface
+type IBACnetConfirmedServiceRequestRemovedAuthenticate interface {
+ IBACnetConfirmedServiceRequest
+ Serialize(io spi.WriteBuffer)
+}
+
+// Accessors for discriminator values.
+func (m BACnetConfirmedServiceRequestRemovedAuthenticate) ServiceChoice() uint8 {
+ return 0x18
+}
+
+func (m BACnetConfirmedServiceRequestRemovedAuthenticate) initialize() spi.Message {
+ return m
+}
+
+func NewBACnetConfirmedServiceRequestRemovedAuthenticate() BACnetConfirmedServiceRequestInitializer {
+ return &BACnetConfirmedServiceRequestRemovedAuthenticate{}
+}
+
+func (m BACnetConfirmedServiceRequestRemovedAuthenticate) LengthInBits() uint16 {
+ var lengthInBits uint16 = m.BACnetConfirmedServiceRequest.LengthInBits()
+
+ return lengthInBits
+}
+
+func (m BACnetConfirmedServiceRequestRemovedAuthenticate) LengthInBytes() uint16 {
+ return m.LengthInBits() / 8
+}
+
+func BACnetConfirmedServiceRequestRemovedAuthenticateParse(io spi.ReadBuffer) (BACnetConfirmedServiceRequestInitializer, error) {
+
+ // Create the instance
+ return NewBACnetConfirmedServiceRequestRemovedAuthenticate(), nil
+}
+
+func (m BACnetConfirmedServiceRequestRemovedAuthenticate) Serialize(io spi.WriteBuffer) {
+ serializeFunc := func(typ interface{}) {
+ if _, ok := typ.(IBACnetConfirmedServiceRequestRemovedAuthenticate); ok {
+ }
+ }
+ serializeFunc(m)
+}
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestRemovedReadPropertyConditional.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestRemovedReadPropertyConditional.go
new file mode 100644
index 0000000..4ab3c76
--- /dev/null
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestRemovedReadPropertyConditional.go
@@ -0,0 +1,71 @@
+//
+// 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.
+//
+package model
+
+import (
+ "plc4x.apache.org/plc4go-modbus-driver/0.8.0/internal/plc4go/spi"
+)
+
+// The data-structure of this message
+type BACnetConfirmedServiceRequestRemovedReadPropertyConditional struct {
+ BACnetConfirmedServiceRequest
+}
+
+// The corresponding interface
+type IBACnetConfirmedServiceRequestRemovedReadPropertyConditional interface {
+ IBACnetConfirmedServiceRequest
+ Serialize(io spi.WriteBuffer)
+}
+
+// Accessors for discriminator values.
+func (m BACnetConfirmedServiceRequestRemovedReadPropertyConditional) ServiceChoice() uint8 {
+ return 0x0D
+}
+
+func (m BACnetConfirmedServiceRequestRemovedReadPropertyConditional) initialize() spi.Message {
+ return m
+}
+
+func NewBACnetConfirmedServiceRequestRemovedReadPropertyConditional() BACnetConfirmedServiceRequestInitializer {
+ return &BACnetConfirmedServiceRequestRemovedReadPropertyConditional{}
+}
+
+func (m BACnetConfirmedServiceRequestRemovedReadPropertyConditional) LengthInBits() uint16 {
+ var lengthInBits uint16 = m.BACnetConfirmedServiceRequest.LengthInBits()
+
+ return lengthInBits
+}
+
+func (m BACnetConfirmedServiceRequestRemovedReadPropertyConditional) LengthInBytes() uint16 {
+ return m.LengthInBits() / 8
+}
+
+func BACnetConfirmedServiceRequestRemovedReadPropertyConditionalParse(io spi.ReadBuffer) (BACnetConfirmedServiceRequestInitializer, error) {
+
+ // Create the instance
+ return NewBACnetConfirmedServiceRequestRemovedReadPropertyConditional(), nil
+}
+
+func (m BACnetConfirmedServiceRequestRemovedReadPropertyConditional) Serialize(io spi.WriteBuffer) {
+ serializeFunc := func(typ interface{}) {
+ if _, ok := typ.(IBACnetConfirmedServiceRequestRemovedReadPropertyConditional); ok {
+ }
+ }
+ serializeFunc(m)
+}
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestRemovedRequestKey.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestRemovedRequestKey.go
new file mode 100644
index 0000000..074433e
--- /dev/null
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestRemovedRequestKey.go
@@ -0,0 +1,71 @@
+//
+// 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.
+//
+package model
+
+import (
+ "plc4x.apache.org/plc4go-modbus-driver/0.8.0/internal/plc4go/spi"
+)
+
+// The data-structure of this message
+type BACnetConfirmedServiceRequestRemovedRequestKey struct {
+ BACnetConfirmedServiceRequest
+}
+
+// The corresponding interface
+type IBACnetConfirmedServiceRequestRemovedRequestKey interface {
+ IBACnetConfirmedServiceRequest
+ Serialize(io spi.WriteBuffer)
+}
+
+// Accessors for discriminator values.
+func (m BACnetConfirmedServiceRequestRemovedRequestKey) ServiceChoice() uint8 {
+ return 0x19
+}
+
+func (m BACnetConfirmedServiceRequestRemovedRequestKey) initialize() spi.Message {
+ return m
+}
+
+func NewBACnetConfirmedServiceRequestRemovedRequestKey() BACnetConfirmedServiceRequestInitializer {
+ return &BACnetConfirmedServiceRequestRemovedRequestKey{}
+}
+
+func (m BACnetConfirmedServiceRequestRemovedRequestKey) LengthInBits() uint16 {
+ var lengthInBits uint16 = m.BACnetConfirmedServiceRequest.LengthInBits()
+
+ return lengthInBits
+}
+
+func (m BACnetConfirmedServiceRequestRemovedRequestKey) LengthInBytes() uint16 {
+ return m.LengthInBits() / 8
+}
+
+func BACnetConfirmedServiceRequestRemovedRequestKeyParse(io spi.ReadBuffer) (BACnetConfirmedServiceRequestInitializer, error) {
+
+ // Create the instance
+ return NewBACnetConfirmedServiceRequestRemovedRequestKey(), nil
+}
+
+func (m BACnetConfirmedServiceRequestRemovedRequestKey) Serialize(io spi.WriteBuffer) {
+ serializeFunc := func(typ interface{}) {
+ if _, ok := typ.(IBACnetConfirmedServiceRequestRemovedRequestKey); ok {
+ }
+ }
+ serializeFunc(m)
+}
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestSubscribeCOV.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestSubscribeCOV.go
new file mode 100644
index 0000000..a9858cf
--- /dev/null
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestSubscribeCOV.go
@@ -0,0 +1,219 @@
+//
+// 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.
+//
+package model
+
+import (
+ "errors"
+ "plc4x.apache.org/plc4go-modbus-driver/0.8.0/internal/plc4go/spi"
+ "strconv"
+)
+
+// Constant values.
+const BACnetConfirmedServiceRequestSubscribeCOV_SUBSCRIBERPROCESSIDENTIFIERHEADER uint8 = 0x09
+const BACnetConfirmedServiceRequestSubscribeCOV_MONITOREDOBJECTIDENTIFIERHEADER uint8 = 0x1C
+const BACnetConfirmedServiceRequestSubscribeCOV_ISSUECONFIRMEDNOTIFICATIONSHEADER uint8 = 0x29
+const BACnetConfirmedServiceRequestSubscribeCOV_ISSUECONFIRMEDNOTIFICATIONSSKIPBITS uint8 = 0x00
+const BACnetConfirmedServiceRequestSubscribeCOV_LIFETIMEHEADER uint8 = 0x07
+
+// The data-structure of this message
+type BACnetConfirmedServiceRequestSubscribeCOV struct {
+ subscriberProcessIdentifier uint8
+ monitoredObjectType uint16
+ monitoredObjectInstanceNumber uint32
+ issueConfirmedNotifications bool
+ lifetimeLength uint8
+ lifetimeSeconds []int8
+ BACnetConfirmedServiceRequest
+}
+
+// The corresponding interface
+type IBACnetConfirmedServiceRequestSubscribeCOV interface {
+ IBACnetConfirmedServiceRequest
+ Serialize(io spi.WriteBuffer)
+}
+
+// Accessors for discriminator values.
+func (m BACnetConfirmedServiceRequestSubscribeCOV) ServiceChoice() uint8 {
+ return 0x05
+}
+
+func (m BACnetConfirmedServiceRequestSubscribeCOV) initialize() spi.Message {
+ return m
+}
+
+func NewBACnetConfirmedServiceRequestSubscribeCOV(subscriberProcessIdentifier uint8, monitoredObjectType uint16, monitoredObjectInstanceNumber uint32, issueConfirmedNotifications bool, lifetimeLength uint8, lifetimeSeconds []int8) BACnetConfirmedServiceRequestInitializer {
+ return &BACnetConfirmedServiceRequestSubscribeCOV{subscriberProcessIdentifier: subscriberProcessIdentifier, monitoredObjectType: monitoredObjectType, monitoredObjectInstanceNumber: monitoredObjectInstanceNumber, issueConfirmedNotifications: issueConfirmedNotifications, lifetimeLength: lifetimeLength, lifetimeSeconds: lifetimeSeconds}
+}
+
+func (m BACnetConfirmedServiceRequestSubscribeCOV) LengthInBits() uint16 {
+ var lengthInBits uint16 = m.BACnetConfirmedServiceRequest.LengthInBits()
+
+ // Const Field (subscriberProcessIdentifierHeader)
+ lengthInBits += 8
+
+ // Simple field (subscriberProcessIdentifier)
+ lengthInBits += 8
+
+ // Const Field (monitoredObjectIdentifierHeader)
+ lengthInBits += 8
+
+ // Simple field (monitoredObjectType)
+ lengthInBits += 10
+
+ // Simple field (monitoredObjectInstanceNumber)
+ lengthInBits += 22
+
+ // Const Field (issueConfirmedNotificationsHeader)
+ lengthInBits += 8
+
+ // Const Field (issueConfirmedNotificationsSkipBits)
+ lengthInBits += 7
+
+ // Simple field (issueConfirmedNotifications)
+ lengthInBits += 1
+
+ // Const Field (lifetimeHeader)
+ lengthInBits += 5
+
+ // Simple field (lifetimeLength)
+ lengthInBits += 3
+
+ // Array field
+ if len(m.lifetimeSeconds) > 0 {
+ lengthInBits += 8 * uint16(len(m.lifetimeSeconds))
+ }
+
+ return lengthInBits
+}
+
+func (m BACnetConfirmedServiceRequestSubscribeCOV) LengthInBytes() uint16 {
+ return m.LengthInBits() / 8
+}
+
+func BACnetConfirmedServiceRequestSubscribeCOVParse(io spi.ReadBuffer) (BACnetConfirmedServiceRequestInitializer, error) {
+
+ // Const Field (subscriberProcessIdentifierHeader)
+ var subscriberProcessIdentifierHeader uint8 = io.ReadUint8(8)
+ if subscriberProcessIdentifierHeader != BACnetConfirmedServiceRequestSubscribeCOV_SUBSCRIBERPROCESSIDENTIFIERHEADER {
+ return nil, errors.New("Expected constant value " + strconv.Itoa(int(BACnetConfirmedServiceRequestSubscribeCOV_SUBSCRIBERPROCESSIDENTIFIERHEADER)) + " but got " + strconv.Itoa(int(subscriberProcessIdentifierHeader)))
+ }
+
+ // Simple Field (subscriberProcessIdentifier)
+ var subscriberProcessIdentifier uint8 = io.ReadUint8(8)
+
+ // Const Field (monitoredObjectIdentifierHeader)
+ var monitoredObjectIdentifierHeader uint8 = io.ReadUint8(8)
+ if monitoredObjectIdentifierHeader != BACnetConfirmedServiceRequestSubscribeCOV_MONITOREDOBJECTIDENTIFIERHEADER {
+ return nil, errors.New("Expected constant value " + strconv.Itoa(int(BACnetConfirmedServiceRequestSubscribeCOV_MONITOREDOBJECTIDENTIFIERHEADER)) + " but got " + strconv.Itoa(int(monitoredObjectIdentifierHeader)))
+ }
+
+ // Simple Field (monitoredObjectType)
+ var monitoredObjectType uint16 = io.ReadUint16(10)
+
+ // Simple Field (monitoredObjectInstanceNumber)
+ var monitoredObjectInstanceNumber uint32 = io.ReadUint32(22)
+
+ // Const Field (issueConfirmedNotificationsHeader)
+ var issueConfirmedNotificationsHeader uint8 = io.ReadUint8(8)
+ if issueConfirmedNotificationsHeader != BACnetConfirmedServiceRequestSubscribeCOV_ISSUECONFIRMEDNOTIFICATIONSHEADER {
+ return nil, errors.New("Expected constant value " + strconv.Itoa(int(BACnetConfirmedServiceRequestSubscribeCOV_ISSUECONFIRMEDNOTIFICATIONSHEADER)) + " but got " + strconv.Itoa(int(issueConfirmedNotificationsHeader)))
+ }
+
+ // Const Field (issueConfirmedNotificationsSkipBits)
+ var issueConfirmedNotificationsSkipBits uint8 = io.ReadUint8(7)
+ if issueConfirmedNotificationsSkipBits != BACnetConfirmedServiceRequestSubscribeCOV_ISSUECONFIRMEDNOTIFICATIONSSKIPBITS {
+ return nil, errors.New("Expected constant value " + strconv.Itoa(int(BACnetConfirmedServiceRequestSubscribeCOV_ISSUECONFIRMEDNOTIFICATIONSSKIPBITS)) + " but got " + strconv.Itoa(int(issueConfirmedNotificationsSkipBits)))
+ }
+
+ // Simple Field (issueConfirmedNotifications)
+ var issueConfirmedNotifications bool = io.ReadBit()
+
+ // Const Field (lifetimeHeader)
+ var lifetimeHeader uint8 = io.ReadUint8(5)
+ if lifetimeHeader != BACnetConfirmedServiceRequestSubscribeCOV_LIFETIMEHEADER {
+ return nil, errors.New("Expected constant value " + strconv.Itoa(int(BACnetConfirmedServiceRequestSubscribeCOV_LIFETIMEHEADER)) + " but got " + strconv.Itoa(int(lifetimeHeader)))
+ }
+
+ // Simple Field (lifetimeLength)
+ var lifetimeLength uint8 = io.ReadUint8(3)
+
+ // Array field (lifetimeSeconds)
+ var lifetimeSeconds []int8
+ // Count array
+ {
+ lifetimeSeconds := make([]int8, lifetimeLength)
+ for curItem := uint16(0); curItem < uint16(lifetimeLength); curItem++ {
+
+ lifetimeSeconds = append(lifetimeSeconds, io.ReadInt8(8))
+ }
+ }
+
+ // Create the instance
+ return NewBACnetConfirmedServiceRequestSubscribeCOV(subscriberProcessIdentifier, monitoredObjectType, monitoredObjectInstanceNumber, issueConfirmedNotifications, lifetimeLength, lifetimeSeconds), nil
+}
+
+func (m BACnetConfirmedServiceRequestSubscribeCOV) Serialize(io spi.WriteBuffer) {
+ serializeFunc := func(typ interface{}) {
+ if _, ok := typ.(IBACnetConfirmedServiceRequestSubscribeCOV); ok {
+
+ // Const Field (subscriberProcessIdentifierHeader)
+ io.WriteUint8(8, 0x09)
+
+ // Simple Field (subscriberProcessIdentifier)
+ var subscriberProcessIdentifier uint8 = m.subscriberProcessIdentifier
+ io.WriteUint8(8, (subscriberProcessIdentifier))
+
+ // Const Field (monitoredObjectIdentifierHeader)
+ io.WriteUint8(8, 0x1C)
+
+ // Simple Field (monitoredObjectType)
+ var monitoredObjectType uint16 = m.monitoredObjectType
+ io.WriteUint16(10, (monitoredObjectType))
+
+ // Simple Field (monitoredObjectInstanceNumber)
+ var monitoredObjectInstanceNumber uint32 = m.monitoredObjectInstanceNumber
+ io.WriteUint32(22, (monitoredObjectInstanceNumber))
+
+ // Const Field (issueConfirmedNotificationsHeader)
+ io.WriteUint8(8, 0x29)
+
+ // Const Field (issueConfirmedNotificationsSkipBits)
+ io.WriteUint8(7, 0x00)
+
+ // Simple Field (issueConfirmedNotifications)
+ var issueConfirmedNotifications bool = m.issueConfirmedNotifications
+ io.WriteBit((bool)(issueConfirmedNotifications))
+
+ // Const Field (lifetimeHeader)
+ io.WriteUint8(5, 0x07)
+
+ // Simple Field (lifetimeLength)
+ var lifetimeLength uint8 = m.lifetimeLength
+ io.WriteUint8(3, (lifetimeLength))
+
+ // Array Field (lifetimeSeconds)
+ if m.lifetimeSeconds != nil {
+ for _, _element := range m.lifetimeSeconds {
+ io.WriteInt8(8, _element)
+ }
+ }
+ }
+ }
+ serializeFunc(m)
+}
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestSubscribeCOVProperty.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestSubscribeCOVProperty.go
new file mode 100644
index 0000000..f2a75e2
--- /dev/null
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestSubscribeCOVProperty.go
@@ -0,0 +1,71 @@
+//
+// 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.
+//
+package model
+
+import (
+ "plc4x.apache.org/plc4go-modbus-driver/0.8.0/internal/plc4go/spi"
+)
+
+// The data-structure of this message
+type BACnetConfirmedServiceRequestSubscribeCOVProperty struct {
+ BACnetConfirmedServiceRequest
+}
+
+// The corresponding interface
+type IBACnetConfirmedServiceRequestSubscribeCOVProperty interface {
+ IBACnetConfirmedServiceRequest
+ Serialize(io spi.WriteBuffer)
+}
+
+// Accessors for discriminator values.
+func (m BACnetConfirmedServiceRequestSubscribeCOVProperty) ServiceChoice() uint8 {
+ return 0x1C
+}
+
+func (m BACnetConfirmedServiceRequestSubscribeCOVProperty) initialize() spi.Message {
+ return m
+}
+
+func NewBACnetConfirmedServiceRequestSubscribeCOVProperty() BACnetConfirmedServiceRequestInitializer {
+ return &BACnetConfirmedServiceRequestSubscribeCOVProperty{}
+}
+
+func (m BACnetConfirmedServiceRequestSubscribeCOVProperty) LengthInBits() uint16 {
+ var lengthInBits uint16 = m.BACnetConfirmedServiceRequest.LengthInBits()
+
+ return lengthInBits
+}
+
+func (m BACnetConfirmedServiceRequestSubscribeCOVProperty) LengthInBytes() uint16 {
+ return m.LengthInBits() / 8
+}
+
+func BACnetConfirmedServiceRequestSubscribeCOVPropertyParse(io spi.ReadBuffer) (BACnetConfirmedServiceRequestInitializer, error) {
+
+ // Create the instance
+ return NewBACnetConfirmedServiceRequestSubscribeCOVProperty(), nil
+}
+
+func (m BACnetConfirmedServiceRequestSubscribeCOVProperty) Serialize(io spi.WriteBuffer) {
+ serializeFunc := func(typ interface{}) {
+ if _, ok := typ.(IBACnetConfirmedServiceRequestSubscribeCOVProperty); ok {
+ }
+ }
+ serializeFunc(m)
+}
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestSubscribeCOVPropertyMultiple.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestSubscribeCOVPropertyMultiple.go
new file mode 100644
index 0000000..1e22e85
--- /dev/null
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestSubscribeCOVPropertyMultiple.go
@@ -0,0 +1,71 @@
+//
+// 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.
+//
+package model
+
+import (
+ "plc4x.apache.org/plc4go-modbus-driver/0.8.0/internal/plc4go/spi"
+)
+
+// The data-structure of this message
+type BACnetConfirmedServiceRequestSubscribeCOVPropertyMultiple struct {
+ BACnetConfirmedServiceRequest
+}
+
+// The corresponding interface
+type IBACnetConfirmedServiceRequestSubscribeCOVPropertyMultiple interface {
+ IBACnetConfirmedServiceRequest
+ Serialize(io spi.WriteBuffer)
+}
+
+// Accessors for discriminator values.
+func (m BACnetConfirmedServiceRequestSubscribeCOVPropertyMultiple) ServiceChoice() uint8 {
+ return 0x1E
+}
+
+func (m BACnetConfirmedServiceRequestSubscribeCOVPropertyMultiple) initialize() spi.Message {
+ return m
+}
+
+func NewBACnetConfirmedServiceRequestSubscribeCOVPropertyMultiple() BACnetConfirmedServiceRequestInitializer {
+ return &BACnetConfirmedServiceRequestSubscribeCOVPropertyMultiple{}
+}
+
+func (m BACnetConfirmedServiceRequestSubscribeCOVPropertyMultiple) LengthInBits() uint16 {
+ var lengthInBits uint16 = m.BACnetConfirmedServiceRequest.LengthInBits()
+
+ return lengthInBits
+}
+
+func (m BACnetConfirmedServiceRequestSubscribeCOVPropertyMultiple) LengthInBytes() uint16 {
+ return m.LengthInBits() / 8
+}
+
+func BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleParse(io spi.ReadBuffer) (BACnetConfirmedServiceRequestInitializer, error) {
+
+ // Create the instance
+ return NewBACnetConfirmedServiceRequestSubscribeCOVPropertyMultiple(), nil
+}
+
+func (m BACnetConfirmedServiceRequestSubscribeCOVPropertyMultiple) Serialize(io spi.WriteBuffer) {
+ serializeFunc := func(typ interface{}) {
+ if _, ok := typ.(IBACnetConfirmedServiceRequestSubscribeCOVPropertyMultiple); ok {
+ }
+ }
+ serializeFunc(m)
+}
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestVTClose.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestVTClose.go
new file mode 100644
index 0000000..8b6c3dc
--- /dev/null
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestVTClose.go
@@ -0,0 +1,71 @@
+//
+// 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.
+//
+package model
+
+import (
+ "plc4x.apache.org/plc4go-modbus-driver/0.8.0/internal/plc4go/spi"
+)
+
+// The data-structure of this message
+type BACnetConfirmedServiceRequestVTClose struct {
+ BACnetConfirmedServiceRequest
+}
+
+// The corresponding interface
+type IBACnetConfirmedServiceRequestVTClose interface {
+ IBACnetConfirmedServiceRequest
+ Serialize(io spi.WriteBuffer)
+}
+
+// Accessors for discriminator values.
+func (m BACnetConfirmedServiceRequestVTClose) ServiceChoice() uint8 {
+ return 0x16
+}
+
+func (m BACnetConfirmedServiceRequestVTClose) initialize() spi.Message {
+ return m
+}
+
+func NewBACnetConfirmedServiceRequestVTClose() BACnetConfirmedServiceRequestInitializer {
+ return &BACnetConfirmedServiceRequestVTClose{}
+}
+
+func (m BACnetConfirmedServiceRequestVTClose) LengthInBits() uint16 {
+ var lengthInBits uint16 = m.BACnetConfirmedServiceRequest.LengthInBits()
+
+ return lengthInBits
+}
+
+func (m BACnetConfirmedServiceRequestVTClose) LengthInBytes() uint16 {
+ return m.LengthInBits() / 8
+}
+
+func BACnetConfirmedServiceRequestVTCloseParse(io spi.ReadBuffer) (BACnetConfirmedServiceRequestInitializer, error) {
+
+ // Create the instance
+ return NewBACnetConfirmedServiceRequestVTClose(), nil
+}
+
+func (m BACnetConfirmedServiceRequestVTClose) Serialize(io spi.WriteBuffer) {
+ serializeFunc := func(typ interface{}) {
+ if _, ok := typ.(IBACnetConfirmedServiceRequestVTClose); ok {
+ }
+ }
+ serializeFunc(m)
+}
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestVTData.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestVTData.go
new file mode 100644
index 0000000..c9591c7
--- /dev/null
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestVTData.go
@@ -0,0 +1,71 @@
+//
+// 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.
+//
+package model
+
+import (
+ "plc4x.apache.org/plc4go-modbus-driver/0.8.0/internal/plc4go/spi"
+)
+
+// The data-structure of this message
+type BACnetConfirmedServiceRequestVTData struct {
+ BACnetConfirmedServiceRequest
+}
+
+// The corresponding interface
+type IBACnetConfirmedServiceRequestVTData interface {
+ IBACnetConfirmedServiceRequest
+ Serialize(io spi.WriteBuffer)
+}
+
+// Accessors for discriminator values.
+func (m BACnetConfirmedServiceRequestVTData) ServiceChoice() uint8 {
+ return 0x17
+}
+
+func (m BACnetConfirmedServiceRequestVTData) initialize() spi.Message {
+ return m
+}
+
+func NewBACnetConfirmedServiceRequestVTData() BACnetConfirmedServiceRequestInitializer {
+ return &BACnetConfirmedServiceRequestVTData{}
+}
+
+func (m BACnetConfirmedServiceRequestVTData) LengthInBits() uint16 {
+ var lengthInBits uint16 = m.BACnetConfirmedServiceRequest.LengthInBits()
+
+ return lengthInBits
+}
+
+func (m BACnetConfirmedServiceRequestVTData) LengthInBytes() uint16 {
+ return m.LengthInBits() / 8
+}
+
+func BACnetConfirmedServiceRequestVTDataParse(io spi.ReadBuffer) (BACnetConfirmedServiceRequestInitializer, error) {
+
+ // Create the instance
+ return NewBACnetConfirmedServiceRequestVTData(), nil
+}
+
+func (m BACnetConfirmedServiceRequestVTData) Serialize(io spi.WriteBuffer) {
+ serializeFunc := func(typ interface{}) {
+ if _, ok := typ.(IBACnetConfirmedServiceRequestVTData); ok {
+ }
+ }
+ serializeFunc(m)
+}
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestVTOpen.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestVTOpen.go
new file mode 100644
index 0000000..c50df56
--- /dev/null
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestVTOpen.go
@@ -0,0 +1,71 @@
+//
+// 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.
+//
+package model
+
+import (
+ "plc4x.apache.org/plc4go-modbus-driver/0.8.0/internal/plc4go/spi"
+)
+
+// The data-structure of this message
+type BACnetConfirmedServiceRequestVTOpen struct {
+ BACnetConfirmedServiceRequest
+}
+
+// The corresponding interface
+type IBACnetConfirmedServiceRequestVTOpen interface {
+ IBACnetConfirmedServiceRequest
+ Serialize(io spi.WriteBuffer)
+}
+
+// Accessors for discriminator values.
+func (m BACnetConfirmedServiceRequestVTOpen) ServiceChoice() uint8 {
+ return 0x15
+}
+
+func (m BACnetConfirmedServiceRequestVTOpen) initialize() spi.Message {
+ return m
+}
+
+func NewBACnetConfirmedServiceRequestVTOpen() BACnetConfirmedServiceRequestInitializer {
+ return &BACnetConfirmedServiceRequestVTOpen{}
+}
+
+func (m BACnetConfirmedServiceRequestVTOpen) LengthInBits() uint16 {
+ var lengthInBits uint16 = m.BACnetConfirmedServiceRequest.LengthInBits()
+
+ return lengthInBits
+}
+
+func (m BACnetConfirmedServiceRequestVTOpen) LengthInBytes() uint16 {
+ return m.LengthInBits() / 8
+}
+
+func BACnetConfirmedServiceRequestVTOpenParse(io spi.ReadBuffer) (BACnetConfirmedServiceRequestInitializer, error) {
+
+ // Create the instance
+ return NewBACnetConfirmedServiceRequestVTOpen(), nil
+}
+
+func (m BACnetConfirmedServiceRequestVTOpen) Serialize(io spi.WriteBuffer) {
+ serializeFunc := func(typ interface{}) {
+ if _, ok := typ.(IBACnetConfirmedServiceRequestVTOpen); ok {
+ }
+ }
+ serializeFunc(m)
+}
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestWriteProperty.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestWriteProperty.go
new file mode 100644
index 0000000..5e7fa90
--- /dev/null
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestWriteProperty.go
@@ -0,0 +1,235 @@
+//
+// 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.
+//
+package model
+
+import (
+ "errors"
+ "plc4x.apache.org/plc4go-modbus-driver/0.8.0/internal/plc4go/spi"
+ "reflect"
+ "strconv"
+)
+
+// Constant values.
+const BACnetConfirmedServiceRequestWriteProperty_OBJECTIDENTIFIERHEADER uint8 = 0x0C
+const BACnetConfirmedServiceRequestWriteProperty_PROPERTYIDENTIFIERHEADER uint8 = 0x03
+const BACnetConfirmedServiceRequestWriteProperty_OPENINGTAG uint8 = 0x3E
+const BACnetConfirmedServiceRequestWriteProperty_CLOSINGTAG uint8 = 0x3F
+
+// The data-structure of this message
+type BACnetConfirmedServiceRequestWriteProperty struct {
+ objectType uint16
+ objectInstanceNumber uint32
+ propertyIdentifierLength uint8
+ propertyIdentifier []int8
+ value BACnetTag
+ priority *BACnetTag
+ BACnetConfirmedServiceRequest
+}
+
+// The corresponding interface
+type IBACnetConfirmedServiceRequestWriteProperty interface {
+ IBACnetConfirmedServiceRequest
+ Serialize(io spi.WriteBuffer)
+}
+
+// Accessors for discriminator values.
+func (m BACnetConfirmedServiceRequestWriteProperty) ServiceChoice() uint8 {
+ return 0x0F
+}
+
+func (m BACnetConfirmedServiceRequestWriteProperty) initialize() spi.Message {
+ return m
+}
+
+func NewBACnetConfirmedServiceRequestWriteProperty(objectType uint16, objectInstanceNumber uint32, propertyIdentifierLength uint8, propertyIdentifier []int8, value BACnetTag, priority *BACnetTag) BACnetConfirmedServiceRequestInitializer {
+ return &BACnetConfirmedServiceRequestWriteProperty{objectType: objectType, objectInstanceNumber: objectInstanceNumber, propertyIdentifierLength: propertyIdentifierLength, propertyIdentifier: propertyIdentifier, value: value, priority: priority}
+}
+
+func (m BACnetConfirmedServiceRequestWriteProperty) LengthInBits() uint16 {
+ var lengthInBits uint16 = m.BACnetConfirmedServiceRequest.LengthInBits()
+
+ // Const Field (objectIdentifierHeader)
+ lengthInBits += 8
+
+ // Simple field (objectType)
+ lengthInBits += 10
+
+ // Simple field (objectInstanceNumber)
+ lengthInBits += 22
+
+ // Const Field (propertyIdentifierHeader)
+ lengthInBits += 5
+
+ // Simple field (propertyIdentifierLength)
+ lengthInBits += 3
+
+ // Array field
+ if len(m.propertyIdentifier) > 0 {
+ lengthInBits += 8 * uint16(len(m.propertyIdentifier))
+ }
+
+ // Const Field (openingTag)
+ lengthInBits += 8
+
+ // Simple field (value)
+ lengthInBits += m.value.LengthInBits()
+
+ // Const Field (closingTag)
+ lengthInBits += 8
+
+ // Optional Field (priority)
+ if m.priority != nil {
+ lengthInBits += m.priority.LengthInBits()
+ }
+
+ return lengthInBits
+}
+
+func (m BACnetConfirmedServiceRequestWriteProperty) LengthInBytes() uint16 {
+ return m.LengthInBits() / 8
+}
+
+func BACnetConfirmedServiceRequestWritePropertyParse(io spi.ReadBuffer, len uint16) (BACnetConfirmedServiceRequestInitializer, error) {
+ var startPos = io.GetPos()
+ var curPos uint16
+
+ // Const Field (objectIdentifierHeader)
+ var objectIdentifierHeader uint8 = io.ReadUint8(8)
+ if objectIdentifierHeader != BACnetConfirmedServiceRequestWriteProperty_OBJECTIDENTIFIERHEADER {
+ return nil, errors.New("Expected constant value " + strconv.Itoa(int(BACnetConfirmedServiceRequestWriteProperty_OBJECTIDENTIFIERHEADER)) + " but got " + strconv.Itoa(int(objectIdentifierHeader)))
+ }
+
+ // Simple Field (objectType)
+ var objectType uint16 = io.ReadUint16(10)
+
+ // Simple Field (objectInstanceNumber)
+ var objectInstanceNumber uint32 = io.ReadUint32(22)
+
+ // Const Field (propertyIdentifierHeader)
+ var propertyIdentifierHeader uint8 = io.ReadUint8(5)
+ if propertyIdentifierHeader != BACnetConfirmedServiceRequestWriteProperty_PROPERTYIDENTIFIERHEADER {
+ return nil, errors.New("Expected constant value " + strconv.Itoa(int(BACnetConfirmedServiceRequestWriteProperty_PROPERTYIDENTIFIERHEADER)) + " but got " + strconv.Itoa(int(propertyIdentifierHeader)))
+ }
+
+ // Simple Field (propertyIdentifierLength)
+ var propertyIdentifierLength uint8 = io.ReadUint8(3)
+
+ // Array field (propertyIdentifier)
+ var propertyIdentifier []int8
+ // Count array
+ {
+ propertyIdentifier := make([]int8, propertyIdentifierLength)
+ for curItem := uint16(0); curItem < uint16(propertyIdentifierLength); curItem++ {
+
+ propertyIdentifier = append(propertyIdentifier, io.ReadInt8(8))
+ }
+ }
+
+ // Const Field (openingTag)
+ var openingTag uint8 = io.ReadUint8(8)
+ if openingTag != BACnetConfirmedServiceRequestWriteProperty_OPENINGTAG {
+ return nil, errors.New("Expected constant value " + strconv.Itoa(int(BACnetConfirmedServiceRequestWriteProperty_OPENINGTAG)) + " but got " + strconv.Itoa(int(openingTag)))
+ }
+
+ // Simple Field (value)
+ _valueMessage, _err := BACnetTagParse(io)
+ if _err != nil {
+ return nil, errors.New("Error parsing simple field 'value'. " + _err.Error())
+ }
+ var value BACnetTag
+ value, _valueOk := _valueMessage.(BACnetTag)
+ if !_valueOk {
+ return nil, errors.New("Couldn't cast message of type " + reflect.TypeOf(_valueMessage).Name() + " to BACnetTag")
+ }
+
+ // Const Field (closingTag)
+ var closingTag uint8 = io.ReadUint8(8)
+ if closingTag != BACnetConfirmedServiceRequestWriteProperty_CLOSINGTAG {
+ return nil, errors.New("Expected constant value " + strconv.Itoa(int(BACnetConfirmedServiceRequestWriteProperty_CLOSINGTAG)) + " but got " + strconv.Itoa(int(closingTag)))
+ }
+
+ // Optional Field (priority) (Can be skipped, if a given expression evaluates to false)
+ curPos = io.GetPos() - startPos
+ var priority *BACnetTag = nil
+ if (curPos) < ((len) - (1)) {
+ _message, _err := BACnetTagParse(io)
+ if _err != nil {
+ return nil, errors.New("Error parsing 'priority' field " + _err.Error())
+ }
+ var _item BACnetTag
+ _item, _ok := _message.(BACnetTag)
+ if !_ok {
+ return nil, errors.New("Couldn't cast message of type " + reflect.TypeOf(_item).Name() + " to BACnetTag")
+ }
+ priority = &_item
+ }
+
+ // Create the instance
+ return NewBACnetConfirmedServiceRequestWriteProperty(objectType, objectInstanceNumber, propertyIdentifierLength, propertyIdentifier, value, priority), nil
+}
+
+func (m BACnetConfirmedServiceRequestWriteProperty) Serialize(io spi.WriteBuffer) {
+ serializeFunc := func(typ interface{}) {
+ if _, ok := typ.(IBACnetConfirmedServiceRequestWriteProperty); ok {
+
+ // Const Field (objectIdentifierHeader)
+ io.WriteUint8(8, 0x0C)
+
+ // Simple Field (objectType)
+ var objectType uint16 = m.objectType
+ io.WriteUint16(10, (objectType))
+
+ // Simple Field (objectInstanceNumber)
+ var objectInstanceNumber uint32 = m.objectInstanceNumber
+ io.WriteUint32(22, (objectInstanceNumber))
+
+ // Const Field (propertyIdentifierHeader)
+ io.WriteUint8(5, 0x03)
+
+ // Simple Field (propertyIdentifierLength)
+ var propertyIdentifierLength uint8 = m.propertyIdentifierLength
+ io.WriteUint8(3, (propertyIdentifierLength))
+
+ // Array Field (propertyIdentifier)
+ if m.propertyIdentifier != nil {
+ for _, _element := range m.propertyIdentifier {
+ io.WriteInt8(8, _element)
+ }
+ }
+
+ // Const Field (openingTag)
+ io.WriteUint8(8, 0x3E)
+
+ // Simple Field (value)
+ var value BACnetTag = m.value
+ value.Serialize(io)
+
+ // Const Field (closingTag)
+ io.WriteUint8(8, 0x3F)
+
+ // Optional Field (priority) (Can be skipped, if the value is null)
+ var priority *BACnetTag = nil
+ if m.priority != nil {
+ priority = m.priority
+ priority.Serialize(io)
+ }
+ }
+ }
+ serializeFunc(m)
+}
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestWritePropertyMultiple.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestWritePropertyMultiple.go
new file mode 100644
index 0000000..df03cdb
--- /dev/null
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestWritePropertyMultiple.go
@@ -0,0 +1,71 @@
+//
+// 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.
+//
+package model
+
+import (
+ "plc4x.apache.org/plc4go-modbus-driver/0.8.0/internal/plc4go/spi"
+)
+
+// The data-structure of this message
+type BACnetConfirmedServiceRequestWritePropertyMultiple struct {
+ BACnetConfirmedServiceRequest
+}
+
+// The corresponding interface
+type IBACnetConfirmedServiceRequestWritePropertyMultiple interface {
+ IBACnetConfirmedServiceRequest
+ Serialize(io spi.WriteBuffer)
+}
+
+// Accessors for discriminator values.
+func (m BACnetConfirmedServiceRequestWritePropertyMultiple) ServiceChoice() uint8 {
+ return 0x10
+}
+
+func (m BACnetConfirmedServiceRequestWritePropertyMultiple) initialize() spi.Message {
+ return m
+}
+
+func NewBACnetConfirmedServiceRequestWritePropertyMultiple() BACnetConfirmedServiceRequestInitializer {
+ return &BACnetConfirmedServiceRequestWritePropertyMultiple{}
+}
+
+func (m BACnetConfirmedServiceRequestWritePropertyMultiple) LengthInBits() uint16 {
+ var lengthInBits uint16 = m.BACnetConfirmedServiceRequest.LengthInBits()
+
+ return lengthInBits
+}
+
+func (m BACnetConfirmedServiceRequestWritePropertyMultiple) LengthInBytes() uint16 {
+ return m.LengthInBits() / 8
+}
+
+func BACnetConfirmedServiceRequestWritePropertyMultipleParse(io spi.ReadBuffer) (BACnetConfirmedServiceRequestInitializer, error) {
+
+ // Create the instance
+ return NewBACnetConfirmedServiceRequestWritePropertyMultiple(), nil
+}
+
+func (m BACnetConfirmedServiceRequestWritePropertyMultiple) Serialize(io spi.WriteBuffer) {
+ serializeFunc := func(typ interface{}) {
+ if _, ok := typ.(IBACnetConfirmedServiceRequestWritePropertyMultiple); ok {
+ }
+ }
+ serializeFunc(m)
+}
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetError.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetError.go
new file mode 100644
index 0000000..bb8031e
--- /dev/null
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetError.go
@@ -0,0 +1,119 @@
+//
+// 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.
+//
+package model
+
+import (
+ "errors"
+ "plc4x.apache.org/plc4go-modbus-driver/0.8.0/internal/plc4go/spi"
+)
+
+// The data-structure of this message
+type BACnetError struct {
+}
+
+// The corresponding interface
+type IBACnetError interface {
+ spi.Message
+ ServiceChoice() uint8
+ Serialize(io spi.WriteBuffer)
+}
+
+type BACnetErrorInitializer interface {
+ initialize() spi.Message
+}
+
+func BACnetErrorServiceChoice(m IBACnetError) uint8 {
+ return m.ServiceChoice()
+}
+
+func (m BACnetError) LengthInBits() uint16 {
+ var lengthInBits uint16 = 0
+
+ // Discriminator Field (serviceChoice)
+ lengthInBits += 8
+
+ // Length of sub-type elements will be added by sub-type...
+
+ return lengthInBits
+}
+
+func (m BACnetError) LengthInBytes() uint16 {
+ return m.LengthInBits() / 8
+}
+
+func BACnetErrorParse(io spi.ReadBuffer) (spi.Message, error) {
+
+ // Discriminator Field (serviceChoice) (Used as input to a switch field)
+ var serviceChoice uint8 = io.ReadUint8(8)
+
+ // Switch Field (Depending on the discriminator values, passes the instantiation to a sub-type)
+ var initializer BACnetErrorInitializer
+ var typeSwitchError error
+ switch {
+ case serviceChoice == 0x03:
+ initializer, typeSwitchError = BACnetErrorGetAlarmSummaryParse(io)
+ case serviceChoice == 0x04:
+ initializer, typeSwitchError = BACnetErrorGetEnrollmentSummaryParse(io)
+ case serviceChoice == 0x1D:
+ initializer, typeSwitchError = BACnetErrorGetEventInformationParse(io)
+ case serviceChoice == 0x06:
+ initializer, typeSwitchError = BACnetErrorAtomicReadFileParse(io)
+ case serviceChoice == 0x07:
+ initializer, typeSwitchError = BACnetErrorAtomicWriteFileParse(io)
+ case serviceChoice == 0x0A:
+ initializer, typeSwitchError = BACnetErrorCreateObjectParse(io)
+ case serviceChoice == 0x0C:
+ initializer, typeSwitchError = BACnetErrorReadPropertyParse(io)
+ case serviceChoice == 0x0E:
+ initializer, typeSwitchError = BACnetErrorReadPropertyMultipleParse(io)
+ case serviceChoice == 0x1A:
+ initializer, typeSwitchError = BACnetErrorReadRangeParse(io)
+ case serviceChoice == 0x12:
+ initializer, typeSwitchError = BACnetErrorConfirmedPrivateTransferParse(io)
+ case serviceChoice == 0x15:
+ initializer, typeSwitchError = BACnetErrorVTOpenParse(io)
+ case serviceChoice == 0x17:
+ initializer, typeSwitchError = BACnetErrorVTDataParse(io)
+ case serviceChoice == 0x18:
+ initializer, typeSwitchError = BACnetErrorRemovedAuthenticateParse(io)
+ case serviceChoice == 0x0D:
+ initializer, typeSwitchError = BACnetErrorRemovedReadPropertyConditionalParse(io)
+ }
+ if typeSwitchError != nil {
+ return nil, errors.New("Error parsing sub-type for type-switch. " + typeSwitchError.Error())
+ }
+
+ // Create the instance
+ return initializer.initialize(), nil
+}
+
+func (m BACnetError) Serialize(io spi.WriteBuffer) {
+ serializeFunc := func(typ interface{}) {
+ if iBACnetError, ok := typ.(IBACnetError); ok {
+
+ // Discriminator Field (serviceChoice) (Used as input to a switch field)
+ serviceChoice := BACnetErrorServiceChoice(iBACnetError)
+ io.WriteUint8(8, (serviceChoice))
+
+ // Switch field (Depending on the discriminator values, passes the serialization to a sub-type)
+ iBACnetError.Serialize(io)
+ }
+ }
+ serializeFunc(m)
+}
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorAtomicReadFile.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorAtomicReadFile.go
new file mode 100644
index 0000000..5fb2dba
--- /dev/null
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorAtomicReadFile.go
@@ -0,0 +1,71 @@
+//
+// 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.
+//
+package model
+
+import (
+ "plc4x.apache.org/plc4go-modbus-driver/0.8.0/internal/plc4go/spi"
+)
+
+// The data-structure of this message
+type BACnetErrorAtomicReadFile struct {
+ BACnetError
+}
+
+// The corresponding interface
+type IBACnetErrorAtomicReadFile interface {
+ IBACnetError
+ Serialize(io spi.WriteBuffer)
+}
+
+// Accessors for discriminator values.
+func (m BACnetErrorAtomicReadFile) ServiceChoice() uint8 {
+ return 0x06
+}
+
+func (m BACnetErrorAtomicReadFile) initialize() spi.Message {
+ return m
+}
+
+func NewBACnetErrorAtomicReadFile() BACnetErrorInitializer {
+ return &BACnetErrorAtomicReadFile{}
+}
+
+func (m BACnetErrorAtomicReadFile) LengthInBits() uint16 {
+ var lengthInBits uint16 = m.BACnetError.LengthInBits()
+
+ return lengthInBits
+}
+
+func (m BACnetErrorAtomicReadFile) LengthInBytes() uint16 {
+ return m.LengthInBits() / 8
+}
+
+func BACnetErrorAtomicReadFileParse(io spi.ReadBuffer) (BACnetErrorInitializer, error) {
+
+ // Create the instance
+ return NewBACnetErrorAtomicReadFile(), nil
+}
+
+func (m BACnetErrorAtomicReadFile) Serialize(io spi.WriteBuffer) {
+ serializeFunc := func(typ interface{}) {
+ if _, ok := typ.(IBACnetErrorAtomicReadFile); ok {
+ }
+ }
+ serializeFunc(m)
+}
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorAtomicWriteFile.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorAtomicWriteFile.go
new file mode 100644
index 0000000..3283416
--- /dev/null
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorAtomicWriteFile.go
@@ -0,0 +1,71 @@
+//
+// 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.
+//
+package model
+
+import (
+ "plc4x.apache.org/plc4go-modbus-driver/0.8.0/internal/plc4go/spi"
+)
+
+// The data-structure of this message
+type BACnetErrorAtomicWriteFile struct {
+ BACnetError
+}
+
+// The corresponding interface
+type IBACnetErrorAtomicWriteFile interface {
+ IBACnetError
+ Serialize(io spi.WriteBuffer)
+}
+
+// Accessors for discriminator values.
+func (m BACnetErrorAtomicWriteFile) ServiceChoice() uint8 {
+ return 0x07
+}
+
+func (m BACnetErrorAtomicWriteFile) initialize() spi.Message {
+ return m
+}
+
+func NewBACnetErrorAtomicWriteFile() BACnetErrorInitializer {
+ return &BACnetErrorAtomicWriteFile{}
+}
+
+func (m BACnetErrorAtomicWriteFile) LengthInBits() uint16 {
+ var lengthInBits uint16 = m.BACnetError.LengthInBits()
+
+ return lengthInBits
+}
+
+func (m BACnetErrorAtomicWriteFile) LengthInBytes() uint16 {
+ return m.LengthInBits() / 8
+}
+
+func BACnetErrorAtomicWriteFileParse(io spi.ReadBuffer) (BACnetErrorInitializer, error) {
+
+ // Create the instance
+ return NewBACnetErrorAtomicWriteFile(), nil
+}
+
+func (m BACnetErrorAtomicWriteFile) Serialize(io spi.WriteBuffer) {
+ serializeFunc := func(typ interface{}) {
+ if _, ok := typ.(IBACnetErrorAtomicWriteFile); ok {
+ }
+ }
+ serializeFunc(m)
+}
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorConfirmedPrivateTransfer.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorConfirmedPrivateTransfer.go
new file mode 100644
index 0000000..9b7420e
--- /dev/null
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorConfirmedPrivateTransfer.go
@@ -0,0 +1,71 @@
+//
+// 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.
+//
+package model
+
+import (
+ "plc4x.apache.org/plc4go-modbus-driver/0.8.0/internal/plc4go/spi"
+)
+
+// The data-structure of this message
+type BACnetErrorConfirmedPrivateTransfer struct {
+ BACnetError
+}
+
+// The corresponding interface
+type IBACnetErrorConfirmedPrivateTransfer interface {
+ IBACnetError
+ Serialize(io spi.WriteBuffer)
+}
+
+// Accessors for discriminator values.
+func (m BACnetErrorConfirmedPrivateTransfer) ServiceChoice() uint8 {
+ return 0x12
+}
+
+func (m BACnetErrorConfirmedPrivateTransfer) initialize() spi.Message {
+ return m
+}
+
+func NewBACnetErrorConfirmedPrivateTransfer() BACnetErrorInitializer {
+ return &BACnetErrorConfirmedPrivateTransfer{}
+}
+
+func (m BACnetErrorConfirmedPrivateTransfer) LengthInBits() uint16 {
+ var lengthInBits uint16 = m.BACnetError.LengthInBits()
+
+ return lengthInBits
+}
+
+func (m BACnetErrorConfirmedPrivateTransfer) LengthInBytes() uint16 {
+ return m.LengthInBits() / 8
+}
+
+func BACnetErrorConfirmedPrivateTransferParse(io spi.ReadBuffer) (BACnetErrorInitializer, error) {
+
+ // Create the instance
+ return NewBACnetErrorConfirmedPrivateTransfer(), nil
+}
+
+func (m BACnetErrorConfirmedPrivateTransfer) Serialize(io spi.WriteBuffer) {
+ serializeFunc := func(typ interface{}) {
+ if _, ok := typ.(IBACnetErrorConfirmedPrivateTransfer); ok {
+ }
+ }
+ serializeFunc(m)
+}
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorCreateObject.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorCreateObject.go
new file mode 100644
index 0000000..0a84055
--- /dev/null
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorCreateObject.go
@@ -0,0 +1,71 @@
+//
+// 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.
+//
+package model
+
+import (
+ "plc4x.apache.org/plc4go-modbus-driver/0.8.0/internal/plc4go/spi"
+)
+
+// The data-structure of this message
+type BACnetErrorCreateObject struct {
+ BACnetError
+}
+
+// The corresponding interface
+type IBACnetErrorCreateObject interface {
+ IBACnetError
+ Serialize(io spi.WriteBuffer)
+}
+
+// Accessors for discriminator values.
+func (m BACnetErrorCreateObject) ServiceChoice() uint8 {
+ return 0x0A
+}
+
+func (m BACnetErrorCreateObject) initialize() spi.Message {
+ return m
+}
+
+func NewBACnetErrorCreateObject() BACnetErrorInitializer {
+ return &BACnetErrorCreateObject{}
+}
+
+func (m BACnetErrorCreateObject) LengthInBits() uint16 {
+ var lengthInBits uint16 = m.BACnetError.LengthInBits()
+
+ return lengthInBits
+}
+
+func (m BACnetErrorCreateObject) LengthInBytes() uint16 {
+ return m.LengthInBits() / 8
+}
+
+func BACnetErrorCreateObjectParse(io spi.ReadBuffer) (BACnetErrorInitializer, error) {
+
+ // Create the instance
+ return NewBACnetErrorCreateObject(), nil
+}
+
+func (m BACnetErrorCreateObject) Serialize(io spi.WriteBuffer) {
+ serializeFunc := func(typ interface{}) {
+ if _, ok := typ.(IBACnetErrorCreateObject); ok {
+ }
+ }
+ serializeFunc(m)
+}
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorGetAlarmSummary.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorGetAlarmSummary.go
new file mode 100644
index 0000000..efe70e2
--- /dev/null
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorGetAlarmSummary.go
@@ -0,0 +1,71 @@
+//
+// 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.
+//
+package model
+
+import (
+ "plc4x.apache.org/plc4go-modbus-driver/0.8.0/internal/plc4go/spi"
+)
+
+// The data-structure of this message
+type BACnetErrorGetAlarmSummary struct {
+ BACnetError
+}
+
+// The corresponding interface
+type IBACnetErrorGetAlarmSummary interface {
+ IBACnetError
+ Serialize(io spi.WriteBuffer)
+}
+
+// Accessors for discriminator values.
+func (m BACnetErrorGetAlarmSummary) ServiceChoice() uint8 {
+ return 0x03
+}
+
+func (m BACnetErrorGetAlarmSummary) initialize() spi.Message {
+ return m
+}
+
+func NewBACnetErrorGetAlarmSummary() BACnetErrorInitializer {
+ return &BACnetErrorGetAlarmSummary{}
+}
+
+func (m BACnetErrorGetAlarmSummary) LengthInBits() uint16 {
+ var lengthInBits uint16 = m.BACnetError.LengthInBits()
+
+ return lengthInBits
+}
+
+func (m BACnetErrorGetAlarmSummary) LengthInBytes() uint16 {
+ return m.LengthInBits() / 8
+}
+
+func BACnetErrorGetAlarmSummaryParse(io spi.ReadBuffer) (BACnetErrorInitializer, error) {
+
+ // Create the instance
+ return NewBACnetErrorGetAlarmSummary(), nil
+}
+
+func (m BACnetErrorGetAlarmSummary) Serialize(io spi.WriteBuffer) {
+ serializeFunc := func(typ interface{}) {
+ if _, ok := typ.(IBACnetErrorGetAlarmSummary); ok {
+ }
+ }
+ serializeFunc(m)
+}
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorGetEnrollmentSummary.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorGetEnrollmentSummary.go
new file mode 100644
index 0000000..5073a34
--- /dev/null
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorGetEnrollmentSummary.go
@@ -0,0 +1,71 @@
+//
+// 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.
+//
+package model
+
+import (
+ "plc4x.apache.org/plc4go-modbus-driver/0.8.0/internal/plc4go/spi"
+)
+
+// The data-structure of this message
+type BACnetErrorGetEnrollmentSummary struct {
+ BACnetError
+}
+
+// The corresponding interface
+type IBACnetErrorGetEnrollmentSummary interface {
+ IBACnetError
+ Serialize(io spi.WriteBuffer)
+}
+
+// Accessors for discriminator values.
+func (m BACnetErrorGetEnrollmentSummary) ServiceChoice() uint8 {
+ return 0x04
+}
+
+func (m BACnetErrorGetEnrollmentSummary) initialize() spi.Message {
+ return m
+}
+
+func NewBACnetErrorGetEnrollmentSummary() BACnetErrorInitializer {
+ return &BACnetErrorGetEnrollmentSummary{}
+}
+
+func (m BACnetErrorGetEnrollmentSummary) LengthInBits() uint16 {
+ var lengthInBits uint16 = m.BACnetError.LengthInBits()
+
+ return lengthInBits
+}
+
+func (m BACnetErrorGetEnrollmentSummary) LengthInBytes() uint16 {
+ return m.LengthInBits() / 8
+}
+
+func BACnetErrorGetEnrollmentSummaryParse(io spi.ReadBuffer) (BACnetErrorInitializer, error) {
+
+ // Create the instance
+ return NewBACnetErrorGetEnrollmentSummary(), nil
+}
+
+func (m BACnetErrorGetEnrollmentSummary) Serialize(io spi.WriteBuffer) {
+ serializeFunc := func(typ interface{}) {
+ if _, ok := typ.(IBACnetErrorGetEnrollmentSummary); ok {
+ }
+ }
+ serializeFunc(m)
+}
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorGetEventInformation.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorGetEventInformation.go
new file mode 100644
index 0000000..a70c863
--- /dev/null
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorGetEventInformation.go
@@ -0,0 +1,71 @@
+//
+// 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.
+//
+package model
+
+import (
+ "plc4x.apache.org/plc4go-modbus-driver/0.8.0/internal/plc4go/spi"
+)
+
+// The data-structure of this message
+type BACnetErrorGetEventInformation struct {
+ BACnetError
+}
+
+// The corresponding interface
+type IBACnetErrorGetEventInformation interface {
+ IBACnetError
+ Serialize(io spi.WriteBuffer)
+}
+
+// Accessors for discriminator values.
+func (m BACnetErrorGetEventInformation) ServiceChoice() uint8 {
+ return 0x1D
+}
+
+func (m BACnetErrorGetEventInformation) initialize() spi.Message {
+ return m
+}
+
+func NewBACnetErrorGetEventInformation() BACnetErrorInitializer {
+ return &BACnetErrorGetEventInformation{}
+}
+
+func (m BACnetErrorGetEventInformation) LengthInBits() uint16 {
+ var lengthInBits uint16 = m.BACnetError.LengthInBits()
+
+ return lengthInBits
+}
+
+func (m BACnetErrorGetEventInformation) LengthInBytes() uint16 {
+ return m.LengthInBits() / 8
+}
+
+func BACnetErrorGetEventInformationParse(io spi.ReadBuffer) (BACnetErrorInitializer, error) {
+
+ // Create the instance
+ return NewBACnetErrorGetEventInformation(), nil
+}
+
+func (m BACnetErrorGetEventInformation) Serialize(io spi.WriteBuffer) {
+ serializeFunc := func(typ interface{}) {
+ if _, ok := typ.(IBACnetErrorGetEventInformation); ok {
+ }
+ }
+ serializeFunc(m)
+}
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorReadProperty.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorReadProperty.go
new file mode 100644
index 0000000..96d9fc0
--- /dev/null
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorReadProperty.go
@@ -0,0 +1,171 @@
+//
+// 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.
+//
+package model
+
+import (
+ "errors"
+ "plc4x.apache.org/plc4go-modbus-driver/0.8.0/internal/plc4go/spi"
+ "strconv"
+)
+
+// Constant values.
+const BACnetErrorReadProperty_ERRORCLASSHEADER uint8 = 0x12
+const BACnetErrorReadProperty_ERRORCODEHEADER uint8 = 0x12
+
+// The data-structure of this message
+type BACnetErrorReadProperty struct {
+ errorClassLength uint8
+ errorClass []int8
+ errorCodeLength uint8
+ errorCode []int8
+ BACnetError
+}
+
+// The corresponding interface
+type IBACnetErrorReadProperty interface {
+ IBACnetError
+ Serialize(io spi.WriteBuffer)
+}
+
+// Accessors for discriminator values.
+func (m BACnetErrorReadProperty) ServiceChoice() uint8 {
+ return 0x0C
+}
+
+func (m BACnetErrorReadProperty) initialize() spi.Message {
+ return m
+}
+
+func NewBACnetErrorReadProperty(errorClassLength uint8, errorClass []int8, errorCodeLength uint8, errorCode []int8) BACnetErrorInitializer {
+ return &BACnetErrorReadProperty{errorClassLength: errorClassLength, errorClass: errorClass, errorCodeLength: errorCodeLength, errorCode: errorCode}
+}
+
+func (m BACnetErrorReadProperty) LengthInBits() uint16 {
+ var lengthInBits uint16 = m.BACnetError.LengthInBits()
+
+ // Const Field (errorClassHeader)
+ lengthInBits += 5
+
+ // Simple field (errorClassLength)
+ lengthInBits += 3
+
+ // Array field
+ if len(m.errorClass) > 0 {
+ lengthInBits += 8 * uint16(len(m.errorClass))
+ }
+
+ // Const Field (errorCodeHeader)
+ lengthInBits += 5
+
+ // Simple field (errorCodeLength)
+ lengthInBits += 3
+
+ // Array field
+ if len(m.errorCode) > 0 {
+ lengthInBits += 8 * uint16(len(m.errorCode))
+ }
+
+ return lengthInBits
+}
+
+func (m BACnetErrorReadProperty) LengthInBytes() uint16 {
+ return m.LengthInBits() / 8
+}
+
+func BACnetErrorReadPropertyParse(io spi.ReadBuffer) (BACnetErrorInitializer, error) {
+
+ // Const Field (errorClassHeader)
+ var errorClassHeader uint8 = io.ReadUint8(5)
+ if errorClassHeader != BACnetErrorReadProperty_ERRORCLASSHEADER {
+ return nil, errors.New("Expected constant value " + strconv.Itoa(int(BACnetErrorReadProperty_ERRORCLASSHEADER)) + " but got " + strconv.Itoa(int(errorClassHeader)))
+ }
+
+ // Simple Field (errorClassLength)
+ var errorClassLength uint8 = io.ReadUint8(3)
+
+ // Array field (errorClass)
+ var errorClass []int8
+ // Count array
+ {
+ errorClass := make([]int8, errorClassLength)
+ for curItem := uint16(0); curItem < uint16(errorClassLength); curItem++ {
+
+ errorClass = append(errorClass, io.ReadInt8(8))
+ }
+ }
+
+ // Const Field (errorCodeHeader)
+ var errorCodeHeader uint8 = io.ReadUint8(5)
+ if errorCodeHeader != BACnetErrorReadProperty_ERRORCODEHEADER {
+ return nil, errors.New("Expected constant value " + strconv.Itoa(int(BACnetErrorReadProperty_ERRORCODEHEADER)) + " but got " + strconv.Itoa(int(errorCodeHeader)))
+ }
+
+ // Simple Field (errorCodeLength)
+ var errorCodeLength uint8 = io.ReadUint8(3)
+
+ // Array field (errorCode)
+ var errorCode []int8
+ // Count array
+ {
+ errorCode := make([]int8, errorCodeLength)
+ for curItem := uint16(0); curItem < uint16(errorCodeLength); curItem++ {
+
+ errorCode = append(errorCode, io.ReadInt8(8))
+ }
+ }
+
+ // Create the instance
+ return NewBACnetErrorReadProperty(errorClassLength, errorClass, errorCodeLength, errorCode), nil
+}
+
+func (m BACnetErrorReadProperty) Serialize(io spi.WriteBuffer) {
+ serializeFunc := func(typ interface{}) {
+ if _, ok := typ.(IBACnetErrorReadProperty); ok {
+
+ // Const Field (errorClassHeader)
+ io.WriteUint8(5, 0x12)
+
+ // Simple Field (errorClassLength)
+ var errorClassLength uint8 = m.errorClassLength
+ io.WriteUint8(3, (errorClassLength))
+
+ // Array Field (errorClass)
+ if m.errorClass != nil {
+ for _, _element := range m.errorClass {
+ io.WriteInt8(8, _element)
+ }
+ }
+
+ // Const Field (errorCodeHeader)
+ io.WriteUint8(5, 0x12)
+
+ // Simple Field (errorCodeLength)
+ var errorCodeLength uint8 = m.errorCodeLength
+ io.WriteUint8(3, (errorCodeLength))
+
+ // Array Field (errorCode)
+ if m.errorCode != nil {
+ for _, _element := range m.errorCode {
+ io.WriteInt8(8, _element)
+ }
+ }
+ }
+ }
+ serializeFunc(m)
+}
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorReadPropertyMultiple.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorReadPropertyMultiple.go
new file mode 100644
index 0000000..96f1ef3
--- /dev/null
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorReadPropertyMultiple.go
@@ -0,0 +1,71 @@
+//
+// 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.
+//
+package model
+
+import (
+ "plc4x.apache.org/plc4go-modbus-driver/0.8.0/internal/plc4go/spi"
+)
+
+// The data-structure of this message
+type BACnetErrorReadPropertyMultiple struct {
+ BACnetError
+}
+
+// The corresponding interface
+type IBACnetErrorReadPropertyMultiple interface {
+ IBACnetError
+ Serialize(io spi.WriteBuffer)
+}
+
+// Accessors for discriminator values.
+func (m BACnetErrorReadPropertyMultiple) ServiceChoice() uint8 {
+ return 0x0E
+}
+
+func (m BACnetErrorReadPropertyMultiple) initialize() spi.Message {
+ return m
+}
+
+func NewBACnetErrorReadPropertyMultiple() BACnetErrorInitializer {
+ return &BACnetErrorReadPropertyMultiple{}
+}
+
+func (m BACnetErrorReadPropertyMultiple) LengthInBits() uint16 {
+ var lengthInBits uint16 = m.BACnetError.LengthInBits()
+
+ return lengthInBits
+}
+
+func (m BACnetErrorReadPropertyMultiple) LengthInBytes() uint16 {
+ return m.LengthInBits() / 8
+}
+
+func BACnetErrorReadPropertyMultipleParse(io spi.ReadBuffer) (BACnetErrorInitializer, error) {
+
+ // Create the instance
+ return NewBACnetErrorReadPropertyMultiple(), nil
+}
+
+func (m BACnetErrorReadPropertyMultiple) Serialize(io spi.WriteBuffer) {
+ serializeFunc := func(typ interface{}) {
+ if _, ok := typ.(IBACnetErrorReadPropertyMultiple); ok {
+ }
+ }
+ serializeFunc(m)
+}
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorReadRange.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorReadRange.go
new file mode 100644
index 0000000..fc7efde
--- /dev/null
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorReadRange.go
@@ -0,0 +1,71 @@
+//
+// 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.
+//
+package model
+
+import (
+ "plc4x.apache.org/plc4go-modbus-driver/0.8.0/internal/plc4go/spi"
+)
+
+// The data-structure of this message
+type BACnetErrorReadRange struct {
+ BACnetError
+}
+
+// The corresponding interface
+type IBACnetErrorReadRange interface {
+ IBACnetError
+ Serialize(io spi.WriteBuffer)
+}
+
+// Accessors for discriminator values.
+func (m BACnetErrorReadRange) ServiceChoice() uint8 {
+ return 0x1A
+}
+
+func (m BACnetErrorReadRange) initialize() spi.Message {
+ return m
+}
+
+func NewBACnetErrorReadRange() BACnetErrorInitializer {
+ return &BACnetErrorReadRange{}
+}
+
+func (m BACnetErrorReadRange) LengthInBits() uint16 {
+ var lengthInBits uint16 = m.BACnetError.LengthInBits()
+
+ return lengthInBits
+}
+
+func (m BACnetErrorReadRange) LengthInBytes() uint16 {
+ return m.LengthInBits() / 8
+}
+
+func BACnetErrorReadRangeParse(io spi.ReadBuffer) (BACnetErrorInitializer, error) {
+
+ // Create the instance
+ return NewBACnetErrorReadRange(), nil
+}
+
+func (m BACnetErrorReadRange) Serialize(io spi.WriteBuffer) {
+ serializeFunc := func(typ interface{}) {
+ if _, ok := typ.(IBACnetErrorReadRange); ok {
+ }
+ }
+ serializeFunc(m)
+}
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorRemovedAuthenticate.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorRemovedAuthenticate.go
new file mode 100644
index 0000000..ee98e85
--- /dev/null
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorRemovedAuthenticate.go
@@ -0,0 +1,71 @@
+//
+// 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.
+//
+package model
+
+import (
+ "plc4x.apache.org/plc4go-modbus-driver/0.8.0/internal/plc4go/spi"
+)
+
+// The data-structure of this message
+type BACnetErrorRemovedAuthenticate struct {
+ BACnetError
+}
+
+// The corresponding interface
+type IBACnetErrorRemovedAuthenticate interface {
+ IBACnetError
+ Serialize(io spi.WriteBuffer)
+}
+
+// Accessors for discriminator values.
+func (m BACnetErrorRemovedAuthenticate) ServiceChoice() uint8 {
+ return 0x18
+}
+
+func (m BACnetErrorRemovedAuthenticate) initialize() spi.Message {
+ return m
+}
+
+func NewBACnetErrorRemovedAuthenticate() BACnetErrorInitializer {
+ return &BACnetErrorRemovedAuthenticate{}
+}
+
+func (m BACnetErrorRemovedAuthenticate) LengthInBits() uint16 {
+ var lengthInBits uint16 = m.BACnetError.LengthInBits()
+
+ return lengthInBits
+}
+
+func (m BACnetErrorRemovedAuthenticate) LengthInBytes() uint16 {
+ return m.LengthInBits() / 8
+}
+
+func BACnetErrorRemovedAuthenticateParse(io spi.ReadBuffer) (BACnetErrorInitializer, error) {
+
+ // Create the instance
+ return NewBACnetErrorRemovedAuthenticate(), nil
+}
+
+func (m BACnetErrorRemovedAuthenticate) Serialize(io spi.WriteBuffer) {
+ serializeFunc := func(typ interface{}) {
+ if _, ok := typ.(IBACnetErrorRemovedAuthenticate); ok {
+ }
+ }
+ serializeFunc(m)
+}
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorRemovedReadPropertyConditional.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorRemovedReadPropertyConditional.go
new file mode 100644
index 0000000..fbc57a5
--- /dev/null
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorRemovedReadPropertyConditional.go
@@ -0,0 +1,71 @@
+//
+// 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.
+//
+package model
+
+import (
+ "plc4x.apache.org/plc4go-modbus-driver/0.8.0/internal/plc4go/spi"
+)
+
+// The data-structure of this message
+type BACnetErrorRemovedReadPropertyConditional struct {
+ BACnetError
+}
+
+// The corresponding interface
+type IBACnetErrorRemovedReadPropertyConditional interface {
+ IBACnetError
+ Serialize(io spi.WriteBuffer)
+}
+
+// Accessors for discriminator values.
+func (m BACnetErrorRemovedReadPropertyConditional) ServiceChoice() uint8 {
+ return 0x0D
+}
+
+func (m BACnetErrorRemovedReadPropertyConditional) initialize() spi.Message {
+ return m
+}
+
+func NewBACnetErrorRemovedReadPropertyConditional() BACnetErrorInitializer {
+ return &BACnetErrorRemovedReadPropertyConditional{}
+}
+
+func (m BACnetErrorRemovedReadPropertyConditional) LengthInBits() uint16 {
+ var lengthInBits uint16 = m.BACnetError.LengthInBits()
+
+ return lengthInBits
+}
+
+func (m BACnetErrorRemovedReadPropertyConditional) LengthInBytes() uint16 {
+ return m.LengthInBits() / 8
+}
+
+func BACnetErrorRemovedReadPropertyConditionalParse(io spi.ReadBuffer) (BACnetErrorInitializer, error) {
+
+ // Create the instance
+ return NewBACnetErrorRemovedReadPropertyConditional(), nil
+}
+
+func (m BACnetErrorRemovedReadPropertyConditional) Serialize(io spi.WriteBuffer) {
+ serializeFunc := func(typ interface{}) {
+ if _, ok := typ.(IBACnetErrorRemovedReadPropertyConditional); ok {
+ }
+ }
+ serializeFunc(m)
+}
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorVTData.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorVTData.go
new file mode 100644
index 0000000..eba4084
--- /dev/null
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorVTData.go
@@ -0,0 +1,71 @@
+//
+// 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.
+//
+package model
+
+import (
+ "plc4x.apache.org/plc4go-modbus-driver/0.8.0/internal/plc4go/spi"
+)
+
+// The data-structure of this message
+type BACnetErrorVTData struct {
+ BACnetError
+}
+
+// The corresponding interface
+type IBACnetErrorVTData interface {
+ IBACnetError
+ Serialize(io spi.WriteBuffer)
+}
+
+// Accessors for discriminator values.
+func (m BACnetErrorVTData) ServiceChoice() uint8 {
+ return 0x17
+}
+
+func (m BACnetErrorVTData) initialize() spi.Message {
+ return m
+}
+
+func NewBACnetErrorVTData() BACnetErrorInitializer {
+ return &BACnetErrorVTData{}
+}
+
+func (m BACnetErrorVTData) LengthInBits() uint16 {
+ var lengthInBits uint16 = m.BACnetError.LengthInBits()
+
+ return lengthInBits
+}
+
+func (m BACnetErrorVTData) LengthInBytes() uint16 {
+ return m.LengthInBits() / 8
+}
+
+func BACnetErrorVTDataParse(io spi.ReadBuffer) (BACnetErrorInitializer, error) {
+
+ // Create the instance
+ return NewBACnetErrorVTData(), nil
+}
+
+func (m BACnetErrorVTData) Serialize(io spi.WriteBuffer) {
+ serializeFunc := func(typ interface{}) {
+ if _, ok := typ.(IBACnetErrorVTData); ok {
+ }
+ }
+ serializeFunc(m)
+}
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorVTOpen.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorVTOpen.go
new file mode 100644
index 0000000..4e3e14d
--- /dev/null
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorVTOpen.go
@@ -0,0 +1,71 @@
+//
+// 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.
+//
+package model
+
+import (
+ "plc4x.apache.org/plc4go-modbus-driver/0.8.0/internal/plc4go/spi"
+)
+
+// The data-structure of this message
+type BACnetErrorVTOpen struct {
+ BACnetError
+}
+
+// The corresponding interface
+type IBACnetErrorVTOpen interface {
+ IBACnetError
+ Serialize(io spi.WriteBuffer)
+}
+
+// Accessors for discriminator values.
+func (m BACnetErrorVTOpen) ServiceChoice() uint8 {
+ return 0x15
+}
+
+func (m BACnetErrorVTOpen) initialize() spi.Message {
+ return m
+}
+
+func NewBACnetErrorVTOpen() BACnetErrorInitializer {
+ return &BACnetErrorVTOpen{}
+}
+
+func (m BACnetErrorVTOpen) LengthInBits() uint16 {
+ var lengthInBits uint16 = m.BACnetError.LengthInBits()
+
+ return lengthInBits
+}
+
+func (m BACnetErrorVTOpen) LengthInBytes() uint16 {
+ return m.LengthInBits() / 8
+}
+
+func BACnetErrorVTOpenParse(io spi.ReadBuffer) (BACnetErrorInitializer, error) {
+
+ // Create the instance
+ return NewBACnetErrorVTOpen(), nil
+}
+
+func (m BACnetErrorVTOpen) Serialize(io spi.WriteBuffer) {
+ serializeFunc := func(typ interface{}) {
+ if _, ok := typ.(IBACnetErrorVTOpen); ok {
+ }
+ }
+ serializeFunc(m)
+}
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNetworkType.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNetworkType.go
new file mode 100644
index 0000000..659fcc0
--- /dev/null
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNetworkType.go
@@ -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.
+//
+package model
+
+import "plc4x.apache.org/plc4go-modbus-driver/0.8.0/internal/plc4go/spi"
+
+type BACnetNetworkType uint8
+
+const (
+ BACnetNetworkType_ETHERNET BACnetNetworkType = 0x0
+ BACnetNetworkType_ARCNET BACnetNetworkType = 0x1
+ BACnetNetworkType_MSTP BACnetNetworkType = 0x2
+ BACnetNetworkType_PTP BACnetNetworkType = 0x3
+ BACnetNetworkType_LONTALK BACnetNetworkType = 0x4
+ BACnetNetworkType_IPV4 BACnetNetworkType = 0x5
+ BACnetNetworkType_ZIGBEE BACnetNetworkType = 0x6
+ BACnetNetworkType_VIRTUAL BACnetNetworkType = 0x7
+ BACnetNetworkType_REMOVED_NON_BACNET BACnetNetworkType = 0x8
+ BACnetNetworkType_IPV6 BACnetNetworkType = 0x9
+ BACnetNetworkType_SERIAL BACnetNetworkType = 0xA
+)
+
+func BACnetNetworkTypeParse(io spi.ReadBuffer) (BACnetNetworkType, error) {
+ // TODO: Implement ...
+ return 0, nil
+}
+
+func (e BACnetNetworkType) Serialize(io spi.WriteBuffer) {
+ // TODO: Implement ...
+}
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNodeType.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNodeType.go
new file mode 100644
index 0000000..dd528cb
--- /dev/null
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNodeType.go
@@ -0,0 +1,57 @@
+//
+// 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.
+//
+package model
+
+import "plc4x.apache.org/plc4go-modbus-driver/0.8.0/internal/plc4go/spi"
+
+type BACnetNodeType uint8
+
+const (
+ BACnetNodeType_UNKNOWN BACnetNodeType = 0x00
+ BACnetNodeType_SYSTEM BACnetNodeType = 0x01
+ BACnetNodeType_NETWORK BACnetNodeType = 0x02
+ BACnetNodeType_DEVICE BACnetNodeType = 0x03
+ BACnetNodeType_ORGANIZATIONAL BACnetNodeType = 0x04
+ BACnetNodeType_AREA BACnetNodeType = 0x05
+ BACnetNodeType_EQUIPMENT BACnetNodeType = 0x06
+ BACnetNodeType_POINT BACnetNodeType = 0x07
+ BACnetNodeType_COLLECTION BACnetNodeType = 0x08
+ BACnetNodeType_PROPERTY BACnetNodeType = 0x09
+ BACnetNodeType_FUNCTIONAL BACnetNodeType = 0x0A
+ BACnetNodeType_OTHER BACnetNodeType = 0x0B
+ BACnetNodeType_SUBSYSTEM BACnetNodeType = 0x0C
+ BACnetNodeType_BUILDING BACnetNodeType = 0x0D
+ BACnetNodeType_FLOOR BACnetNodeType = 0x0E
+ BACnetNodeType_SECTION BACnetNodeType = 0x0F
+ BACnetNodeType_MODULE BACnetNodeType = 0x10
+ BACnetNodeType_TREE BACnetNodeType = 0x11
+ BACnetNodeType_MEMBER BACnetNodeType = 0x12
+ BACnetNodeType_PROTOCOL BACnetNodeType = 0x13
+ BACnetNodeType_ROOM BACnetNodeType = 0x14
+ BACnetNodeType_ZONE BACnetNodeType = 0x15
+)
+
+func BACnetNodeTypeParse(io spi.ReadBuffer) (BACnetNodeType, error) {
+ // TODO: Implement ...
+ return 0, nil
+}
+
+func (e BACnetNodeType) Serialize(io spi.WriteBuffer) {
+ // TODO: Implement ...
+}
diff --git a/sandbox/plc4go/cmd/main/main.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotifyType.go
similarity index 52%
copy from sandbox/plc4go/cmd/main/main.go
copy to sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotifyType.go
index 40d865a..5e868e5 100644
--- a/sandbox/plc4go/cmd/main/main.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotifyType.go
@@ -1,3 +1,6 @@
+//
+// 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
@@ -13,13 +16,23 @@
// specific language governing permissions and limitations
// under the License.
//
-package main
+package model
+
+import "plc4x.apache.org/plc4go-modbus-driver/0.8.0/internal/plc4go/spi"
+
+type BACnetNotifyType uint8
-import (
- "plc4x.apache.org/plc4go-modbus-driver/0.8.0/cmd/main/drivers"
+const (
+ BACnetNotifyType_ALARM BACnetNotifyType = 0x0
+ BACnetNotifyType_EVENT BACnetNotifyType = 0x1
+ BACnetNotifyType_ACK_NOTIFICATION BACnetNotifyType = 0x2
)
-func main() {
- drivers.Modbus()
- //drivers.S7()
+func BACnetNotifyTypeParse(io spi.ReadBuffer) (BACnetNotifyType, error) {
+ // TODO: Implement ...
+ return 0, nil
+}
+
+func (e BACnetNotifyType) Serialize(io spi.WriteBuffer) {
+ // TODO: Implement ...
}
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetObjectType.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetObjectType.go
new file mode 100644
index 0000000..794e628
--- /dev/null
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetObjectType.go
@@ -0,0 +1,94 @@
+//
+// 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.
+//
+package model
+
+import "plc4x.apache.org/plc4go-modbus-driver/0.8.0/internal/plc4go/spi"
+
+type BACnetObjectType uint16
+
+const (
+ BACnetObjectType_ANALOG_INPUT BACnetObjectType = 0x000
+ BACnetObjectType_ANALOG_OUTPUT BACnetObjectType = 0x001
+ BACnetObjectType_ANALOG_VALUE BACnetObjectType = 0x002
+ BACnetObjectType_BINARY_INPUT BACnetObjectType = 0x003
+ BACnetObjectType_BINARY_OUTPUT BACnetObjectType = 0x004
+ BACnetObjectType_BINARY_VALUE BACnetObjectType = 0x005
+ BACnetObjectType_MULTISTATE_INPUT BACnetObjectType = 0x00D
+ BACnetObjectType_MULTISTATE_OUTPUT BACnetObjectType = 0x00E
+ BACnetObjectType_MULTISTATE_VALUE BACnetObjectType = 0x013
+ BACnetObjectType_SCHEDULE BACnetObjectType = 0x011
+ BACnetObjectType_DEVICE BACnetObjectType = 0x008
+ BACnetObjectType_CALENDAR BACnetObjectType = 0x006
+ BACnetObjectType_COMMAND BACnetObjectType = 0x007
+ BACnetObjectType_EVENT_ENROLLMENT BACnetObjectType = 0x009
+ BACnetObjectType_FILE BACnetObjectType = 0x00A
+ BACnetObjectType_GROUP BACnetObjectType = 0x00B
+ BACnetObjectType_LOOP BACnetObjectType = 0x00C
+ BACnetObjectType_NOTIFICATION_CLASS BACnetObjectType = 0x00F
+ BACnetObjectType_PROGRAM BACnetObjectType = 0x010
+ BACnetObjectType_AVERAGING BACnetObjectType = 0x012
+ BACnetObjectType_TREND_LOG BACnetObjectType = 0x014
+ BACnetObjectType_LIFE_SAFETY_POINT BACnetObjectType = 0x015
+ BACnetObjectType_LIFE_SAFETY_ZONE BACnetObjectType = 0x016
+ BACnetObjectType_ACCUMULATOR BACnetObjectType = 0x017
+ BACnetObjectType_PULSE_CONVERTER BACnetObjectType = 0x018
+ BACnetObjectType_EVENT_LOG BACnetObjectType = 0x019
+ BACnetObjectType_GLOBAL_GROUP BACnetObjectType = 0x01A
+ BACnetObjectType_TREND_LOG_MULTIPLE BACnetObjectType = 0x01B
+ BACnetObjectType_LOAD_CONTROL BACnetObjectType = 0x01C
+ BACnetObjectType_STRUCTURED_VIEW BACnetObjectType = 0x01D
+ BACnetObjectType_ACCESS_DOOR BACnetObjectType = 0x01E
+ BACnetObjectType_TIMER BACnetObjectType = 0x01F
+ BACnetObjectType_ACCESS_CREDENTIAL BACnetObjectType = 0x020
+ BACnetObjectType_ACCESS_POINT BACnetObjectType = 0x021
+ BACnetObjectType_ACCESS_RIGHTS BACnetObjectType = 0x022
+ BACnetObjectType_ACCESS_USER BACnetObjectType = 0x023
+ BACnetObjectType_ACCESS_ZONE BACnetObjectType = 0x024
+ BACnetObjectType_CREDENTIAL_DATA_INPUT BACnetObjectType = 0x025
+ BACnetObjectType_NETWORK_SECURITY BACnetObjectType = 0x026
+ BACnetObjectType_BITSTRING_VALUE BACnetObjectType = 0x027
+ BACnetObjectType_CHARACTERSTRING_VALUE BACnetObjectType = 0x028
+ BACnetObjectType_DATEPATTERN_VALUE BACnetObjectType = 0x029
+ BACnetObjectType_DATE_VALUE BACnetObjectType = 0x02A
+ BACnetObjectType_DATETIMEPATTERN_VALUE BACnetObjectType = 0x02B
+ BACnetObjectType_DATETIME_VALUE BACnetObjectType = 0x02C
+ BACnetObjectType_INTEGER_VALUE BACnetObjectType = 0x02D
+ BACnetObjectType_LARGE_ANALOG_VALUE BACnetObjectType = 0x02E
+ BACnetObjectType_OCTETSTRING_VALUE BACnetObjectType = 0x02F
+ BACnetObjectType_POSITIVE_INTEGER_VALUE BACnetObjectType = 0x030
+ BACnetObjectType_TIMEPATTERN_VALUE BACnetObjectType = 0x031
+ BACnetObjectType_TIME_VALUE BACnetObjectType = 0x032
+ BACnetObjectType_NOTIFICATION_FORWARDER BACnetObjectType = 0x033
+ BACnetObjectType_ALERT_ENROLLMENT BACnetObjectType = 0x034
+ BACnetObjectType_CHANNEL BACnetObjectType = 0x035
+ BACnetObjectType_LIGHTING_OUTPUT BACnetObjectType = 0x036
+ BACnetObjectType_BINARY_LIGHTING_OUTPUT BACnetObjectType = 0x037
+ BACnetObjectType_NETWORK_PORT BACnetObjectType = 0x038
+ BACnetObjectType_ELEVATOR_GROUP BACnetObjectType = 0x039
+ BACnetObjectType_ESCALATOR BACnetObjectType = 0x03A
+)
+
+func BACnetObjectTypeParse(io spi.ReadBuffer) (BACnetObjectType, error) {
+ // TODO: Implement ...
+ return 0, nil
+}
+
+func (e BACnetObjectType) Serialize(io spi.WriteBuffer) {
+ // TODO: Implement ...
+}
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAck.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAck.go
new file mode 100644
index 0000000..d025cb2
--- /dev/null
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAck.go
@@ -0,0 +1,119 @@
+//
+// 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.
+//
+package model
+
+import (
+ "errors"
+ "plc4x.apache.org/plc4go-modbus-driver/0.8.0/internal/plc4go/spi"
+)
+
+// The data-structure of this message
+type BACnetServiceAck struct {
+}
+
+// The corresponding interface
+type IBACnetServiceAck interface {
+ spi.Message
+ ServiceChoice() uint8
+ Serialize(io spi.WriteBuffer)
+}
+
+type BACnetServiceAckInitializer interface {
+ initialize() spi.Message
+}
+
+func BACnetServiceAckServiceChoice(m IBACnetServiceAck) uint8 {
+ return m.ServiceChoice()
+}
+
+func (m BACnetServiceAck) LengthInBits() uint16 {
+ var lengthInBits uint16 = 0
+
+ // Discriminator Field (serviceChoice)
+ lengthInBits += 8
+
+ // Length of sub-type elements will be added by sub-type...
+
+ return lengthInBits
+}
+
+func (m BACnetServiceAck) LengthInBytes() uint16 {
+ return m.LengthInBits() / 8
+}
+
+func BACnetServiceAckParse(io spi.ReadBuffer) (spi.Message, error) {
+
+ // Discriminator Field (serviceChoice) (Used as input to a switch field)
+ var serviceChoice uint8 = io.ReadUint8(8)
+
+ // Switch Field (Depending on the discriminator values, passes the instantiation to a sub-type)
+ var initializer BACnetServiceAckInitializer
+ var typeSwitchError error
+ switch {
+ case serviceChoice == 0x03:
+ initializer, typeSwitchError = BACnetServiceAckGetAlarmSummaryParse(io)
+ case serviceChoice == 0x04:
+ initializer, typeSwitchError = BACnetServiceAckGetEnrollmentSummaryParse(io)
+ case serviceChoice == 0x1D:
+ initializer, typeSwitchError = BACnetServiceAckGetEventInformationParse(io)
+ case serviceChoice == 0x06:
+ initializer, typeSwitchError = BACnetServiceAckAtomicReadFileParse(io)
+ case serviceChoice == 0x07:
+ initializer, typeSwitchError = BACnetServiceAckAtomicWriteFileParse(io)
+ case serviceChoice == 0x0A:
+ initializer, typeSwitchError = BACnetServiceAckCreateObjectParse(io)
+ case serviceChoice == 0x0C:
+ initializer, typeSwitchError = BACnetServiceAckReadPropertyParse(io)
+ case serviceChoice == 0x0E:
+ initializer, typeSwitchError = BACnetServiceAckReadPropertyMultipleParse(io)
+ case serviceChoice == 0x1A:
+ initializer, typeSwitchError = BACnetServiceAckReadRangeParse(io)
+ case serviceChoice == 0x12:
+ initializer, typeSwitchError = BACnetServiceAckConfirmedPrivateTransferParse(io)
+ case serviceChoice == 0x15:
+ initializer, typeSwitchError = BACnetServiceAckVTOpenParse(io)
+ case serviceChoice == 0x17:
+ initializer, typeSwitchError = BACnetServiceAckVTDataParse(io)
+ case serviceChoice == 0x18:
+ initializer, typeSwitchError = BACnetServiceAckRemovedAuthenticateParse(io)
+ case serviceChoice == 0x0D:
+ initializer, typeSwitchError = BACnetServiceAckRemovedReadPropertyConditionalParse(io)
+ }
+ if typeSwitchError != nil {
+ return nil, errors.New("Error parsing sub-type for type-switch. " + typeSwitchError.Error())
+ }
+
+ // Create the instance
+ return initializer.initialize(), nil
+}
+
+func (m BACnetServiceAck) Serialize(io spi.WriteBuffer) {
+ serializeFunc := func(typ interface{}) {
+ if iBACnetServiceAck, ok := typ.(IBACnetServiceAck); ok {
+
+ // Discriminator Field (serviceChoice) (Used as input to a switch field)
+ serviceChoice := BACnetServiceAckServiceChoice(iBACnetServiceAck)
+ io.WriteUint8(8, (serviceChoice))
+
+ // Switch field (Depending on the discriminator values, passes the serialization to a sub-type)
+ iBACnetServiceAck.Serialize(io)
+ }
+ }
+ serializeFunc(m)
+}
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckAtomicReadFile.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckAtomicReadFile.go
new file mode 100644
index 0000000..2237e58
--- /dev/null
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckAtomicReadFile.go
@@ -0,0 +1,71 @@
+//
+// 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.
+//
+package model
+
+import (
+ "plc4x.apache.org/plc4go-modbus-driver/0.8.0/internal/plc4go/spi"
+)
+
+// The data-structure of this message
+type BACnetServiceAckAtomicReadFile struct {
+ BACnetServiceAck
+}
+
+// The corresponding interface
+type IBACnetServiceAckAtomicReadFile interface {
+ IBACnetServiceAck
+ Serialize(io spi.WriteBuffer)
+}
+
+// Accessors for discriminator values.
+func (m BACnetServiceAckAtomicReadFile) ServiceChoice() uint8 {
+ return 0x06
+}
+
+func (m BACnetServiceAckAtomicReadFile) initialize() spi.Message {
+ return m
+}
+
+func NewBACnetServiceAckAtomicReadFile() BACnetServiceAckInitializer {
+ return &BACnetServiceAckAtomicReadFile{}
+}
+
+func (m BACnetServiceAckAtomicReadFile) LengthInBits() uint16 {
+ var lengthInBits uint16 = m.BACnetServiceAck.LengthInBits()
+
+ return lengthInBits
+}
+
+func (m BACnetServiceAckAtomicReadFile) LengthInBytes() uint16 {
+ return m.LengthInBits() / 8
+}
+
+func BACnetServiceAckAtomicReadFileParse(io spi.ReadBuffer) (BACnetServiceAckInitializer, error) {
+
+ // Create the instance
+ return NewBACnetServiceAckAtomicReadFile(), nil
+}
+
+func (m BACnetServiceAckAtomicReadFile) Serialize(io spi.WriteBuffer) {
+ serializeFunc := func(typ interface{}) {
+ if _, ok := typ.(IBACnetServiceAckAtomicReadFile); ok {
+ }
+ }
+ serializeFunc(m)
+}
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckAtomicWriteFile.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckAtomicWriteFile.go
new file mode 100644
index 0000000..6d228b4
--- /dev/null
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckAtomicWriteFile.go
@@ -0,0 +1,71 @@
+//
+// 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.
+//
+package model
+
+import (
+ "plc4x.apache.org/plc4go-modbus-driver/0.8.0/internal/plc4go/spi"
+)
+
+// The data-structure of this message
+type BACnetServiceAckAtomicWriteFile struct {
+ BACnetServiceAck
+}
+
+// The corresponding interface
+type IBACnetServiceAckAtomicWriteFile interface {
+ IBACnetServiceAck
+ Serialize(io spi.WriteBuffer)
+}
+
+// Accessors for discriminator values.
+func (m BACnetServiceAckAtomicWriteFile) ServiceChoice() uint8 {
+ return 0x07
+}
+
+func (m BACnetServiceAckAtomicWriteFile) initialize() spi.Message {
+ return m
+}
+
+func NewBACnetServiceAckAtomicWriteFile() BACnetServiceAckInitializer {
+ return &BACnetServiceAckAtomicWriteFile{}
+}
+
+func (m BACnetServiceAckAtomicWriteFile) LengthInBits() uint16 {
+ var lengthInBits uint16 = m.BACnetServiceAck.LengthInBits()
+
+ return lengthInBits
+}
+
+func (m BACnetServiceAckAtomicWriteFile) LengthInBytes() uint16 {
+ return m.LengthInBits() / 8
+}
+
+func BACnetServiceAckAtomicWriteFileParse(io spi.ReadBuffer) (BACnetServiceAckInitializer, error) {
+
+ // Create the instance
+ return NewBACnetServiceAckAtomicWriteFile(), nil
+}
+
+func (m BACnetServiceAckAtomicWriteFile) Serialize(io spi.WriteBuffer) {
+ serializeFunc := func(typ interface{}) {
+ if _, ok := typ.(IBACnetServiceAckAtomicWriteFile); ok {
+ }
+ }
+ serializeFunc(m)
+}
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckConfirmedPrivateTransfer.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckConfirmedPrivateTransfer.go
new file mode 100644
index 0000000..78a5b04
--- /dev/null
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckConfirmedPrivateTransfer.go
@@ -0,0 +1,71 @@
+//
+// 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.
+//
+package model
+
+import (
+ "plc4x.apache.org/plc4go-modbus-driver/0.8.0/internal/plc4go/spi"
+)
+
+// The data-structure of this message
+type BACnetServiceAckConfirmedPrivateTransfer struct {
+ BACnetServiceAck
+}
+
+// The corresponding interface
+type IBACnetServiceAckConfirmedPrivateTransfer interface {
+ IBACnetServiceAck
+ Serialize(io spi.WriteBuffer)
+}
+
+// Accessors for discriminator values.
+func (m BACnetServiceAckConfirmedPrivateTransfer) ServiceChoice() uint8 {
+ return 0x12
+}
+
+func (m BACnetServiceAckConfirmedPrivateTransfer) initialize() spi.Message {
+ return m
+}
+
+func NewBACnetServiceAckConfirmedPrivateTransfer() BACnetServiceAckInitializer {
+ return &BACnetServiceAckConfirmedPrivateTransfer{}
+}
+
+func (m BACnetServiceAckConfirmedPrivateTransfer) LengthInBits() uint16 {
+ var lengthInBits uint16 = m.BACnetServiceAck.LengthInBits()
+
+ return lengthInBits
+}
+
+func (m BACnetServiceAckConfirmedPrivateTransfer) LengthInBytes() uint16 {
+ return m.LengthInBits() / 8
+}
+
+func BACnetServiceAckConfirmedPrivateTransferParse(io spi.ReadBuffer) (BACnetServiceAckInitializer, error) {
+
+ // Create the instance
+ return NewBACnetServiceAckConfirmedPrivateTransfer(), nil
+}
+
+func (m BACnetServiceAckConfirmedPrivateTransfer) Serialize(io spi.WriteBuffer) {
+ serializeFunc := func(typ interface{}) {
+ if _, ok := typ.(IBACnetServiceAckConfirmedPrivateTransfer); ok {
+ }
+ }
+ serializeFunc(m)
+}
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckCreateObject.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckCreateObject.go
new file mode 100644
index 0000000..eb5b0d8
--- /dev/null
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckCreateObject.go
@@ -0,0 +1,71 @@
+//
+// 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.
+//
+package model
+
+import (
+ "plc4x.apache.org/plc4go-modbus-driver/0.8.0/internal/plc4go/spi"
+)
+
+// The data-structure of this message
+type BACnetServiceAckCreateObject struct {
+ BACnetServiceAck
+}
+
+// The corresponding interface
+type IBACnetServiceAckCreateObject interface {
+ IBACnetServiceAck
+ Serialize(io spi.WriteBuffer)
+}
+
+// Accessors for discriminator values.
+func (m BACnetServiceAckCreateObject) ServiceChoice() uint8 {
+ return 0x0A
+}
+
+func (m BACnetServiceAckCreateObject) initialize() spi.Message {
+ return m
+}
+
+func NewBACnetServiceAckCreateObject() BACnetServiceAckInitializer {
+ return &BACnetServiceAckCreateObject{}
+}
+
+func (m BACnetServiceAckCreateObject) LengthInBits() uint16 {
+ var lengthInBits uint16 = m.BACnetServiceAck.LengthInBits()
+
+ return lengthInBits
+}
+
+func (m BACnetServiceAckCreateObject) LengthInBytes() uint16 {
+ return m.LengthInBits() / 8
+}
+
+func BACnetServiceAckCreateObjectParse(io spi.ReadBuffer) (BACnetServiceAckInitializer, error) {
+
+ // Create the instance
+ return NewBACnetServiceAckCreateObject(), nil
+}
+
+func (m BACnetServiceAckCreateObject) Serialize(io spi.WriteBuffer) {
+ serializeFunc := func(typ interface{}) {
+ if _, ok := typ.(IBACnetServiceAckCreateObject); ok {
+ }
+ }
+ serializeFunc(m)
+}
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckGetAlarmSummary.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckGetAlarmSummary.go
new file mode 100644
index 0000000..1b15774
--- /dev/null
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckGetAlarmSummary.go
@@ -0,0 +1,71 @@
+//
+// 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.
+//
+package model
+
+import (
+ "plc4x.apache.org/plc4go-modbus-driver/0.8.0/internal/plc4go/spi"
+)
+
+// The data-structure of this message
+type BACnetServiceAckGetAlarmSummary struct {
+ BACnetServiceAck
+}
+
+// The corresponding interface
+type IBACnetServiceAckGetAlarmSummary interface {
+ IBACnetServiceAck
+ Serialize(io spi.WriteBuffer)
+}
+
+// Accessors for discriminator values.
+func (m BACnetServiceAckGetAlarmSummary) ServiceChoice() uint8 {
+ return 0x03
+}
+
+func (m BACnetServiceAckGetAlarmSummary) initialize() spi.Message {
+ return m
+}
+
+func NewBACnetServiceAckGetAlarmSummary() BACnetServiceAckInitializer {
+ return &BACnetServiceAckGetAlarmSummary{}
+}
+
+func (m BACnetServiceAckGetAlarmSummary) LengthInBits() uint16 {
+ var lengthInBits uint16 = m.BACnetServiceAck.LengthInBits()
+
+ return lengthInBits
+}
+
+func (m BACnetServiceAckGetAlarmSummary) LengthInBytes() uint16 {
+ return m.LengthInBits() / 8
+}
+
+func BACnetServiceAckGetAlarmSummaryParse(io spi.ReadBuffer) (BACnetServiceAckInitializer, error) {
+
+ // Create the instance
+ return NewBACnetServiceAckGetAlarmSummary(), nil
+}
+
+func (m BACnetServiceAckGetAlarmSummary) Serialize(io spi.WriteBuffer) {
+ serializeFunc := func(typ interface{}) {
+ if _, ok := typ.(IBACnetServiceAckGetAlarmSummary); ok {
+ }
+ }
+ serializeFunc(m)
+}
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckGetEnrollmentSummary.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckGetEnrollmentSummary.go
new file mode 100644
index 0000000..a5e2f96
--- /dev/null
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckGetEnrollmentSummary.go
@@ -0,0 +1,71 @@
+//
+// 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.
+//
+package model
+
+import (
+ "plc4x.apache.org/plc4go-modbus-driver/0.8.0/internal/plc4go/spi"
+)
+
+// The data-structure of this message
+type BACnetServiceAckGetEnrollmentSummary struct {
+ BACnetServiceAck
+}
+
+// The corresponding interface
+type IBACnetServiceAckGetEnrollmentSummary interface {
+ IBACnetServiceAck
+ Serialize(io spi.WriteBuffer)
+}
+
+// Accessors for discriminator values.
+func (m BACnetServiceAckGetEnrollmentSummary) ServiceChoice() uint8 {
+ return 0x04
+}
+
+func (m BACnetServiceAckGetEnrollmentSummary) initialize() spi.Message {
+ return m
+}
+
+func NewBACnetServiceAckGetEnrollmentSummary() BACnetServiceAckInitializer {
+ return &BACnetServiceAckGetEnrollmentSummary{}
+}
+
+func (m BACnetServiceAckGetEnrollmentSummary) LengthInBits() uint16 {
+ var lengthInBits uint16 = m.BACnetServiceAck.LengthInBits()
+
+ return lengthInBits
+}
+
+func (m BACnetServiceAckGetEnrollmentSummary) LengthInBytes() uint16 {
+ return m.LengthInBits() / 8
+}
+
+func BACnetServiceAckGetEnrollmentSummaryParse(io spi.ReadBuffer) (BACnetServiceAckInitializer, error) {
+
+ // Create the instance
+ return NewBACnetServiceAckGetEnrollmentSummary(), nil
+}
+
+func (m BACnetServiceAckGetEnrollmentSummary) Serialize(io spi.WriteBuffer) {
+ serializeFunc := func(typ interface{}) {
+ if _, ok := typ.(IBACnetServiceAckGetEnrollmentSummary); ok {
+ }
+ }
+ serializeFunc(m)
+}
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckGetEventInformation.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckGetEventInformation.go
new file mode 100644
index 0000000..4045e60
--- /dev/null
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckGetEventInformation.go
@@ -0,0 +1,71 @@
+//
+// 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.
+//
+package model
+
+import (
+ "plc4x.apache.org/plc4go-modbus-driver/0.8.0/internal/plc4go/spi"
+)
+
+// The data-structure of this message
+type BACnetServiceAckGetEventInformation struct {
+ BACnetServiceAck
+}
+
+// The corresponding interface
+type IBACnetServiceAckGetEventInformation interface {
+ IBACnetServiceAck
+ Serialize(io spi.WriteBuffer)
+}
+
+// Accessors for discriminator values.
+func (m BACnetServiceAckGetEventInformation) ServiceChoice() uint8 {
+ return 0x1D
+}
+
+func (m BACnetServiceAckGetEventInformation) initialize() spi.Message {
+ return m
+}
+
+func NewBACnetServiceAckGetEventInformation() BACnetServiceAckInitializer {
+ return &BACnetServiceAckGetEventInformation{}
+}
+
+func (m BACnetServiceAckGetEventInformation) LengthInBits() uint16 {
+ var lengthInBits uint16 = m.BACnetServiceAck.LengthInBits()
+
+ return lengthInBits
+}
+
+func (m BACnetServiceAckGetEventInformation) LengthInBytes() uint16 {
+ return m.LengthInBits() / 8
+}
+
+func BACnetServiceAckGetEventInformationParse(io spi.ReadBuffer) (BACnetServiceAckInitializer, error) {
+
+ // Create the instance
+ return NewBACnetServiceAckGetEventInformation(), nil
+}
+
+func (m BACnetServiceAckGetEventInformation) Serialize(io spi.WriteBuffer) {
+ serializeFunc := func(typ interface{}) {
+ if _, ok := typ.(IBACnetServiceAckGetEventInformation); ok {
+ }
+ }
+ serializeFunc(m)
+}
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckReadProperty.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckReadProperty.go
new file mode 100644
index 0000000..665c740
--- /dev/null
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckReadProperty.go
@@ -0,0 +1,204 @@
+//
+// 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.
+//
+package model
+
+import (
+ "errors"
+ "plc4x.apache.org/plc4go-modbus-driver/0.8.0/internal/plc4go/spi"
+ "reflect"
+ "strconv"
+)
+
+// Constant values.
+const BACnetServiceAckReadProperty_OBJECTIDENTIFIERHEADER uint8 = 0x0C
+const BACnetServiceAckReadProperty_PROPERTYIDENTIFIERHEADER uint8 = 0x03
+const BACnetServiceAckReadProperty_OPENINGTAG uint8 = 0x3E
+const BACnetServiceAckReadProperty_CLOSINGTAG uint8 = 0x3F
+
+// The data-structure of this message
+type BACnetServiceAckReadProperty struct {
+ objectType uint16
+ objectInstanceNumber uint32
+ propertyIdentifierLength uint8
+ propertyIdentifier []int8
+ value BACnetTag
+ BACnetServiceAck
+}
+
+// The corresponding interface
+type IBACnetServiceAckReadProperty interface {
+ IBACnetServiceAck
+ Serialize(io spi.WriteBuffer)
+}
+
+// Accessors for discriminator values.
+func (m BACnetServiceAckReadProperty) ServiceChoice() uint8 {
+ return 0x0C
+}
+
+func (m BACnetServiceAckReadProperty) initialize() spi.Message {
+ return m
+}
+
+func NewBACnetServiceAckReadProperty(objectType uint16, objectInstanceNumber uint32, propertyIdentifierLength uint8, propertyIdentifier []int8, value BACnetTag) BACnetServiceAckInitializer {
+ return &BACnetServiceAckReadProperty{objectType: objectType, objectInstanceNumber: objectInstanceNumber, propertyIdentifierLength: propertyIdentifierLength, propertyIdentifier: propertyIdentifier, value: value}
+}
+
+func (m BACnetServiceAckReadProperty) LengthInBits() uint16 {
+ var lengthInBits uint16 = m.BACnetServiceAck.LengthInBits()
+
+ // Const Field (objectIdentifierHeader)
+ lengthInBits += 8
+
+ // Simple field (objectType)
+ lengthInBits += 10
+
+ // Simple field (objectInstanceNumber)
+ lengthInBits += 22
+
+ // Const Field (propertyIdentifierHeader)
+ lengthInBits += 5
+
+ // Simple field (propertyIdentifierLength)
+ lengthInBits += 3
+
+ // Array field
+ if len(m.propertyIdentifier) > 0 {
+ lengthInBits += 8 * uint16(len(m.propertyIdentifier))
+ }
+
+ // Const Field (openingTag)
+ lengthInBits += 8
+
+ // Simple field (value)
+ lengthInBits += m.value.LengthInBits()
+
+ // Const Field (closingTag)
+ lengthInBits += 8
+
+ return lengthInBits
+}
+
+func (m BACnetServiceAckReadProperty) LengthInBytes() uint16 {
+ return m.LengthInBits() / 8
+}
+
+func BACnetServiceAckReadPropertyParse(io spi.ReadBuffer) (BACnetServiceAckInitializer, error) {
+
+ // Const Field (objectIdentifierHeader)
+ var objectIdentifierHeader uint8 = io.ReadUint8(8)
+ if objectIdentifierHeader != BACnetServiceAckReadProperty_OBJECTIDENTIFIERHEADER {
+ return nil, errors.New("Expected constant value " + strconv.Itoa(int(BACnetServiceAckReadProperty_OBJECTIDENTIFIERHEADER)) + " but got " + strconv.Itoa(int(objectIdentifierHeader)))
+ }
+
+ // Simple Field (objectType)
+ var objectType uint16 = io.ReadUint16(10)
+
+ // Simple Field (objectInstanceNumber)
+ var objectInstanceNumber uint32 = io.ReadUint32(22)
+
+ // Const Field (propertyIdentifierHeader)
+ var propertyIdentifierHeader uint8 = io.ReadUint8(5)
+ if propertyIdentifierHeader != BACnetServiceAckReadProperty_PROPERTYIDENTIFIERHEADER {
+ return nil, errors.New("Expected constant value " + strconv.Itoa(int(BACnetServiceAckReadProperty_PROPERTYIDENTIFIERHEADER)) + " but got " + strconv.Itoa(int(propertyIdentifierHeader)))
+ }
+
+ // Simple Field (propertyIdentifierLength)
+ var propertyIdentifierLength uint8 = io.ReadUint8(3)
+
+ // Array field (propertyIdentifier)
+ var propertyIdentifier []int8
+ // Count array
+ {
+ propertyIdentifier := make([]int8, propertyIdentifierLength)
+ for curItem := uint16(0); curItem < uint16(propertyIdentifierLength); curItem++ {
+
+ propertyIdentifier = append(propertyIdentifier, io.ReadInt8(8))
+ }
+ }
+
+ // Const Field (openingTag)
+ var openingTag uint8 = io.ReadUint8(8)
+ if openingTag != BACnetServiceAckReadProperty_OPENINGTAG {
+ return nil, errors.New("Expected constant value " + strconv.Itoa(int(BACnetServiceAckReadProperty_OPENINGTAG)) + " but got " + strconv.Itoa(int(openingTag)))
+ }
+
+ // Simple Field (value)
+ _valueMessage, _err := BACnetTagParse(io)
+ if _err != nil {
+ return nil, errors.New("Error parsing simple field 'value'. " + _err.Error())
+ }
+ var value BACnetTag
+ value, _valueOk := _valueMessage.(BACnetTag)
+ if !_valueOk {
+ return nil, errors.New("Couldn't cast message of type " + reflect.TypeOf(_valueMessage).Name() + " to BACnetTag")
+ }
+
+ // Const Field (closingTag)
+ var closingTag uint8 = io.ReadUint8(8)
+ if closingTag != BACnetServiceAckReadProperty_CLOSINGTAG {
+ return nil, errors.New("Expected constant value " + strconv.Itoa(int(BACnetServiceAckReadProperty_CLOSINGTAG)) + " but got " + strconv.Itoa(int(closingTag)))
+ }
+
+ // Create the instance
+ return NewBACnetServiceAckReadProperty(objectType, objectInstanceNumber, propertyIdentifierLength, propertyIdentifier, value), nil
+}
+
+func (m BACnetServiceAckReadProperty) Serialize(io spi.WriteBuffer) {
+ serializeFunc := func(typ interface{}) {
+ if _, ok := typ.(IBACnetServiceAckReadProperty); ok {
+
+ // Const Field (objectIdentifierHeader)
+ io.WriteUint8(8, 0x0C)
+
+ // Simple Field (objectType)
+ var objectType uint16 = m.objectType
+ io.WriteUint16(10, (objectType))
+
+ // Simple Field (objectInstanceNumber)
+ var objectInstanceNumber uint32 = m.objectInstanceNumber
+ io.WriteUint32(22, (objectInstanceNumber))
+
+ // Const Field (propertyIdentifierHeader)
+ io.WriteUint8(5, 0x03)
+
+ // Simple Field (propertyIdentifierLength)
+ var propertyIdentifierLength uint8 = m.propertyIdentifierLength
+ io.WriteUint8(3, (propertyIdentifierLength))
+
+ // Array Field (propertyIdentifier)
+ if m.propertyIdentifier != nil {
+ for _, _element := range m.propertyIdentifier {
+ io.WriteInt8(8, _element)
+ }
+ }
+
+ // Const Field (openingTag)
+ io.WriteUint8(8, 0x3E)
+
+ // Simple Field (value)
+ var value BACnetTag = m.value
+ value.Serialize(io)
+
+ // Const Field (closingTag)
+ io.WriteUint8(8, 0x3F)
+ }
+ }
+ serializeFunc(m)
+}
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckReadPropertyMultiple.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckReadPropertyMultiple.go
new file mode 100644
index 0000000..500841e
--- /dev/null
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckReadPropertyMultiple.go
@@ -0,0 +1,71 @@
+//
+// 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.
+//
+package model
+
+import (
+ "plc4x.apache.org/plc4go-modbus-driver/0.8.0/internal/plc4go/spi"
+)
+
+// The data-structure of this message
+type BACnetServiceAckReadPropertyMultiple struct {
+ BACnetServiceAck
+}
+
+// The corresponding interface
+type IBACnetServiceAckReadPropertyMultiple interface {
+ IBACnetServiceAck
+ Serialize(io spi.WriteBuffer)
+}
+
+// Accessors for discriminator values.
+func (m BACnetServiceAckReadPropertyMultiple) ServiceChoice() uint8 {
+ return 0x0E
+}
+
+func (m BACnetServiceAckReadPropertyMultiple) initialize() spi.Message {
+ return m
+}
+
+func NewBACnetServiceAckReadPropertyMultiple() BACnetServiceAckInitializer {
+ return &BACnetServiceAckReadPropertyMultiple{}
+}
+
+func (m BACnetServiceAckReadPropertyMultiple) LengthInBits() uint16 {
+ var lengthInBits uint16 = m.BACnetServiceAck.LengthInBits()
+
+ return lengthInBits
+}
+
+func (m BACnetServiceAckReadPropertyMultiple) LengthInBytes() uint16 {
+ return m.LengthInBits() / 8
+}
+
+func BACnetServiceAckReadPropertyMultipleParse(io spi.ReadBuffer) (BACnetServiceAckInitializer, error) {
+
+ // Create the instance
+ return NewBACnetServiceAckReadPropertyMultiple(), nil
+}
+
+func (m BACnetServiceAckReadPropertyMultiple) Serialize(io spi.WriteBuffer) {
+ serializeFunc := func(typ interface{}) {
+ if _, ok := typ.(IBACnetServiceAckReadPropertyMultiple); ok {
+ }
+ }
+ serializeFunc(m)
+}
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckReadRange.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckReadRange.go
new file mode 100644
index 0000000..fb90fb9
--- /dev/null
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckReadRange.go
@@ -0,0 +1,71 @@
+//
+// 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.
+//
+package model
+
+import (
+ "plc4x.apache.org/plc4go-modbus-driver/0.8.0/internal/plc4go/spi"
+)
+
+// The data-structure of this message
+type BACnetServiceAckReadRange struct {
+ BACnetServiceAck
+}
+
+// The corresponding interface
+type IBACnetServiceAckReadRange interface {
+ IBACnetServiceAck
+ Serialize(io spi.WriteBuffer)
+}
+
+// Accessors for discriminator values.
+func (m BACnetServiceAckReadRange) ServiceChoice() uint8 {
+ return 0x1A
+}
+
+func (m BACnetServiceAckReadRange) initialize() spi.Message {
+ return m
+}
+
+func NewBACnetServiceAckReadRange() BACnetServiceAckInitializer {
+ return &BACnetServiceAckReadRange{}
+}
+
+func (m BACnetServiceAckReadRange) LengthInBits() uint16 {
+ var lengthInBits uint16 = m.BACnetServiceAck.LengthInBits()
+
+ return lengthInBits
+}
+
+func (m BACnetServiceAckReadRange) LengthInBytes() uint16 {
+ return m.LengthInBits() / 8
+}
+
+func BACnetServiceAckReadRangeParse(io spi.ReadBuffer) (BACnetServiceAckInitializer, error) {
+
+ // Create the instance
+ return NewBACnetServiceAckReadRange(), nil
+}
+
+func (m BACnetServiceAckReadRange) Serialize(io spi.WriteBuffer) {
+ serializeFunc := func(typ interface{}) {
+ if _, ok := typ.(IBACnetServiceAckReadRange); ok {
+ }
+ }
+ serializeFunc(m)
+}
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckRemovedAuthenticate.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckRemovedAuthenticate.go
new file mode 100644
index 0000000..6f216ae
--- /dev/null
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckRemovedAuthenticate.go
@@ -0,0 +1,71 @@
+//
+// 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.
+//
+package model
+
+import (
+ "plc4x.apache.org/plc4go-modbus-driver/0.8.0/internal/plc4go/spi"
+)
+
+// The data-structure of this message
+type BACnetServiceAckRemovedAuthenticate struct {
+ BACnetServiceAck
+}
+
+// The corresponding interface
+type IBACnetServiceAckRemovedAuthenticate interface {
+ IBACnetServiceAck
+ Serialize(io spi.WriteBuffer)
+}
+
+// Accessors for discriminator values.
+func (m BACnetServiceAckRemovedAuthenticate) ServiceChoice() uint8 {
+ return 0x18
+}
+
+func (m BACnetServiceAckRemovedAuthenticate) initialize() spi.Message {
+ return m
+}
+
+func NewBACnetServiceAckRemovedAuthenticate() BACnetServiceAckInitializer {
+ return &BACnetServiceAckRemovedAuthenticate{}
+}
+
+func (m BACnetServiceAckRemovedAuthenticate) LengthInBits() uint16 {
+ var lengthInBits uint16 = m.BACnetServiceAck.LengthInBits()
+
+ return lengthInBits
+}
+
+func (m BACnetServiceAckRemovedAuthenticate) LengthInBytes() uint16 {
+ return m.LengthInBits() / 8
+}
+
+func BACnetServiceAckRemovedAuthenticateParse(io spi.ReadBuffer) (BACnetServiceAckInitializer, error) {
+
+ // Create the instance
+ return NewBACnetServiceAckRemovedAuthenticate(), nil
+}
+
+func (m BACnetServiceAckRemovedAuthenticate) Serialize(io spi.WriteBuffer) {
+ serializeFunc := func(typ interface{}) {
+ if _, ok := typ.(IBACnetServiceAckRemovedAuthenticate); ok {
+ }
+ }
+ serializeFunc(m)
+}
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckRemovedReadPropertyConditional.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckRemovedReadPropertyConditional.go
new file mode 100644
index 0000000..c90fbcd
--- /dev/null
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckRemovedReadPropertyConditional.go
@@ -0,0 +1,71 @@
+//
+// 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.
+//
+package model
+
+import (
+ "plc4x.apache.org/plc4go-modbus-driver/0.8.0/internal/plc4go/spi"
+)
+
+// The data-structure of this message
+type BACnetServiceAckRemovedReadPropertyConditional struct {
+ BACnetServiceAck
+}
+
+// The corresponding interface
+type IBACnetServiceAckRemovedReadPropertyConditional interface {
+ IBACnetServiceAck
+ Serialize(io spi.WriteBuffer)
+}
+
+// Accessors for discriminator values.
+func (m BACnetServiceAckRemovedReadPropertyConditional) ServiceChoice() uint8 {
+ return 0x0D
+}
+
+func (m BACnetServiceAckRemovedReadPropertyConditional) initialize() spi.Message {
+ return m
+}
+
+func NewBACnetServiceAckRemovedReadPropertyConditional() BACnetServiceAckInitializer {
+ return &BACnetServiceAckRemovedReadPropertyConditional{}
+}
+
+func (m BACnetServiceAckRemovedReadPropertyConditional) LengthInBits() uint16 {
+ var lengthInBits uint16 = m.BACnetServiceAck.LengthInBits()
+
+ return lengthInBits
+}
+
+func (m BACnetServiceAckRemovedReadPropertyConditional) LengthInBytes() uint16 {
+ return m.LengthInBits() / 8
+}
+
+func BACnetServiceAckRemovedReadPropertyConditionalParse(io spi.ReadBuffer) (BACnetServiceAckInitializer, error) {
+
+ // Create the instance
+ return NewBACnetServiceAckRemovedReadPropertyConditional(), nil
+}
+
+func (m BACnetServiceAckRemovedReadPropertyConditional) Serialize(io spi.WriteBuffer) {
+ serializeFunc := func(typ interface{}) {
+ if _, ok := typ.(IBACnetServiceAckRemovedReadPropertyConditional); ok {
+ }
+ }
+ serializeFunc(m)
+}
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckVTData.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckVTData.go
new file mode 100644
index 0000000..0c3317b
--- /dev/null
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckVTData.go
@@ -0,0 +1,71 @@
+//
+// 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.
+//
+package model
+
+import (
+ "plc4x.apache.org/plc4go-modbus-driver/0.8.0/internal/plc4go/spi"
+)
+
+// The data-structure of this message
+type BACnetServiceAckVTData struct {
+ BACnetServiceAck
+}
+
+// The corresponding interface
+type IBACnetServiceAckVTData interface {
+ IBACnetServiceAck
+ Serialize(io spi.WriteBuffer)
+}
+
+// Accessors for discriminator values.
+func (m BACnetServiceAckVTData) ServiceChoice() uint8 {
+ return 0x17
+}
+
+func (m BACnetServiceAckVTData) initialize() spi.Message {
+ return m
+}
+
+func NewBACnetServiceAckVTData() BACnetServiceAckInitializer {
+ return &BACnetServiceAckVTData{}
+}
+
+func (m BACnetServiceAckVTData) LengthInBits() uint16 {
+ var lengthInBits uint16 = m.BACnetServiceAck.LengthInBits()
+
+ return lengthInBits
+}
+
+func (m BACnetServiceAckVTData) LengthInBytes() uint16 {
+ return m.LengthInBits() / 8
+}
+
+func BACnetServiceAckVTDataParse(io spi.ReadBuffer) (BACnetServiceAckInitializer, error) {
+
+ // Create the instance
+ return NewBACnetServiceAckVTData(), nil
+}
+
+func (m BACnetServiceAckVTData) Serialize(io spi.WriteBuffer) {
+ serializeFunc := func(typ interface{}) {
+ if _, ok := typ.(IBACnetServiceAckVTData); ok {
+ }
+ }
+ serializeFunc(m)
+}
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckVTOpen.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckVTOpen.go
new file mode 100644
index 0000000..d15f0d6
--- /dev/null
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckVTOpen.go
@@ -0,0 +1,71 @@
+//
+// 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.
+//
+package model
+
+import (
+ "plc4x.apache.org/plc4go-modbus-driver/0.8.0/internal/plc4go/spi"
+)
+
+// The data-structure of this message
+type BACnetServiceAckVTOpen struct {
+ BACnetServiceAck
+}
+
+// The corresponding interface
+type IBACnetServiceAckVTOpen interface {
+ IBACnetServiceAck
+ Serialize(io spi.WriteBuffer)
+}
+
+// Accessors for discriminator values.
+func (m BACnetServiceAckVTOpen) ServiceChoice() uint8 {
+ return 0x15
+}
+
+func (m BACnetServiceAckVTOpen) initialize() spi.Message {
+ return m
+}
+
+func NewBACnetServiceAckVTOpen() BACnetServiceAckInitializer {
+ return &BACnetServiceAckVTOpen{}
+}
+
+func (m BACnetServiceAckVTOpen) LengthInBits() uint16 {
+ var lengthInBits uint16 = m.BACnetServiceAck.LengthInBits()
+
+ return lengthInBits
+}
+
+func (m BACnetServiceAckVTOpen) LengthInBytes() uint16 {
+ return m.LengthInBits() / 8
+}
+
+func BACnetServiceAckVTOpenParse(io spi.ReadBuffer) (BACnetServiceAckInitializer, error) {
+
+ // Create the instance
+ return NewBACnetServiceAckVTOpen(), nil
+}
+
+func (m BACnetServiceAckVTOpen) Serialize(io spi.WriteBuffer) {
+ serializeFunc := func(typ interface{}) {
+ if _, ok := typ.(IBACnetServiceAckVTOpen); ok {
+ }
+ }
+ serializeFunc(m)
+}
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTag.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTag.go
new file mode 100644
index 0000000..ca4851b
--- /dev/null
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTag.go
@@ -0,0 +1,181 @@
+//
+// 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.
+//
+package model
+
+import (
+ "errors"
+ "plc4x.apache.org/plc4go-modbus-driver/0.8.0/internal/plc4go/spi"
+)
+
+// The data-structure of this message
+type BACnetTag struct {
+ typeOrTagNumber uint8
+ lengthValueType uint8
+ extTagNumber *uint8
+ extLength *uint8
+}
+
+// The corresponding interface
+type IBACnetTag interface {
+ spi.Message
+ ContextSpecificTag() uint8
+ Serialize(io spi.WriteBuffer)
+}
+
+type BACnetTagInitializer interface {
+ initialize(typeOrTagNumber uint8, lengthValueType uint8, extTagNumber *uint8, extLength *uint8) spi.Message
+}
+
+func BACnetTagContextSpecificTag(m IBACnetTag) uint8 {
+ return m.ContextSpecificTag()
+}
+
+func (m BACnetTag) LengthInBits() uint16 {
+ var lengthInBits uint16 = 0
+
+ // Simple field (typeOrTagNumber)
+ lengthInBits += 4
+
+ // Discriminator Field (contextSpecificTag)
+ lengthInBits += 1
+
+ // Simple field (lengthValueType)
+ lengthInBits += 3
+
+ // Optional Field (extTagNumber)
+ if m.extTagNumber != nil {
+ lengthInBits += 8
+ }
+
+ // Optional Field (extLength)
+ if m.extLength != nil {
+ lengthInBits += 8
+ }
+
+ // Length of sub-type elements will be added by sub-type...
+
+ return lengthInBits
+}
+
+func (m BACnetTag) LengthInBytes() uint16 {
+ return m.LengthInBits() / 8
+}
+
+func BACnetTagParse(io spi.ReadBuffer) (spi.Message, error) {
+
+ // Simple Field (typeOrTagNumber)
+ var typeOrTagNumber uint8 = io.ReadUint8(4)
+
+ // Discriminator Field (contextSpecificTag) (Used as input to a switch field)
+ var contextSpecificTag uint8 = io.ReadUint8(1)
+
+ // Simple Field (lengthValueType)
+ var lengthValueType uint8 = io.ReadUint8(3)
+
+ // Optional Field (extTagNumber) (Can be skipped, if a given expression evaluates to false)
+ var extTagNumber *uint8 = nil
+ if (typeOrTagNumber) == (15) {
+ _val := io.ReadUint8(8)
+ extTagNumber = &_val
+ }
+
+ // Optional Field (extLength) (Can be skipped, if a given expression evaluates to false)
+ var extLength *uint8 = nil
+ if (lengthValueType) == (5) {
+ _val := io.ReadUint8(8)
+ extLength = &_val
+ }
+
+ // Switch Field (Depending on the discriminator values, passes the instantiation to a sub-type)
+ var initializer BACnetTagInitializer
+ var typeSwitchError error
+ switch {
+ case contextSpecificTag == 0 && typeOrTagNumber == 0x0:
+ initializer, typeSwitchError = BACnetTagApplicationNullParse(io)
+ case contextSpecificTag == 0 && typeOrTagNumber == 0x1:
+ initializer, typeSwitchError = BACnetTagApplicationBooleanParse(io)
+ case contextSpecificTag == 0 && typeOrTagNumber == 0x2:
+ initializer, typeSwitchError = BACnetTagApplicationUnsignedIntegerParse(io, lengthValueType, extLength)
+ case contextSpecificTag == 0 && typeOrTagNumber == 0x3:
+ initializer, typeSwitchError = BACnetTagApplicationSignedIntegerParse(io, lengthValueType, extLength)
+ case contextSpecificTag == 0 && typeOrTagNumber == 0x4:
+ initializer, typeSwitchError = BACnetTagApplicationRealParse(io, lengthValueType, extLength)
+ case contextSpecificTag == 0 && typeOrTagNumber == 0x5:
+ initializer, typeSwitchError = BACnetTagApplicationDoubleParse(io, lengthValueType, extLength)
+ case contextSpecificTag == 0 && typeOrTagNumber == 0x6:
+ initializer, typeSwitchError = BACnetTagApplicationOctetStringParse(io)
+ case contextSpecificTag == 0 && typeOrTagNumber == 0x7:
+ initializer, typeSwitchError = BACnetTagApplicationCharacterStringParse(io)
+ case contextSpecificTag == 0 && typeOrTagNumber == 0x8:
+ initializer, typeSwitchError = BACnetTagApplicationBitStringParse(io, lengthValueType, extLength)
+ case contextSpecificTag == 0 && typeOrTagNumber == 0x9:
+ initializer, typeSwitchError = BACnetTagApplicationEnumeratedParse(io, lengthValueType, extLength)
+ case contextSpecificTag == 0 && typeOrTagNumber == 0xA:
+ initializer, typeSwitchError = BACnetTagApplicationDateParse(io)
+ case contextSpecificTag == 0 && typeOrTagNumber == 0xB:
+ initializer, typeSwitchError = BACnetTagApplicationTimeParse(io)
+ case contextSpecificTag == 0 && typeOrTagNumber == 0xC:
+ initializer, typeSwitchError = BACnetTagApplicationObjectIdentifierParse(io)
+ case contextSpecificTag == 1:
+ initializer, typeSwitchError = BACnetTagContextParse(io, typeOrTagNumber, extTagNumber, lengthValueType, extLength)
+ }
+ if typeSwitchError != nil {
+ return nil, errors.New("Error parsing sub-type for type-switch. " + typeSwitchError.Error())
+ }
+
+ // Create the instance
+ return initializer.initialize(typeOrTagNumber, lengthValueType, extTagNumber, extLength), nil
+}
+
+func (m BACnetTag) Serialize(io spi.WriteBuffer) {
+ serializeFunc := func(typ interface{}) {
+ if iBACnetTag, ok := typ.(IBACnetTag); ok {
+
+ // Simple Field (typeOrTagNumber)
+ var typeOrTagNumber uint8 = m.typeOrTagNumber
+ io.WriteUint8(4, (typeOrTagNumber))
+
+ // Discriminator Field (contextSpecificTag) (Used as input to a switch field)
+ contextSpecificTag := BACnetTagContextSpecificTag(iBACnetTag)
+ io.WriteUint8(1, (contextSpecificTag))
+
+ // Simple Field (lengthValueType)
+ var lengthValueType uint8 = m.lengthValueType
+ io.WriteUint8(3, (lengthValueType))
+
+ // Optional Field (extTagNumber) (Can be skipped, if the value is null)
+ var extTagNumber *uint8 = nil
+ if m.extTagNumber != nil {
+ extTagNumber = m.extTagNumber
+ io.WriteUint8(8, *(extTagNumber))
+ }
+
+ // Optional Field (extLength) (Can be skipped, if the value is null)
+ var extLength *uint8 = nil
+ if m.extLength != nil {
+ extLength = m.extLength
+ io.WriteUint8(8, *(extLength))
+ }
+
+ // Switch field (Depending on the discriminator values, passes the serialization to a sub-type)
+ iBACnetTag.Serialize(io)
+ }
+ }
+ serializeFunc(m)
+}
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationBitString.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationBitString.go
new file mode 100644
index 0000000..93da747
--- /dev/null
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationBitString.go
@@ -0,0 +1,108 @@
+//
+// 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.
+//
+package model
+
+import (
+ "plc4x.apache.org/plc4go-modbus-driver/0.8.0/internal/plc4go/spi"
+)
+
+// The data-structure of this message
+type BACnetTagApplicationBitString struct {
+ unusedBits uint8
+ data []int8
+ BACnetTag
+}
+
+// The corresponding interface
+type IBACnetTagApplicationBitString interface {
+ IBACnetTag
+ Serialize(io spi.WriteBuffer)
+}
+
+// Accessors for discriminator values.
+func (m BACnetTagApplicationBitString) ContextSpecificTag() uint8 {
+ return 0
+}
+
+func (m BACnetTagApplicationBitString) initialize(typeOrTagNumber uint8, lengthValueType uint8, extTagNumber *uint8, extLength *uint8) spi.Message {
+ m.typeOrTagNumber = typeOrTagNumber
+ m.lengthValueType = lengthValueType
+ m.extTagNumber = extTagNumber
+ m.extLength = extLength
+ return m
+}
+
+func NewBACnetTagApplicationBitString(unusedBits uint8, data []int8) BACnetTagInitializer {
+ return &BACnetTagApplicationBitString{unusedBits: unusedBits, data: data}
+}
+
+func (m BACnetTagApplicationBitString) LengthInBits() uint16 {
+ var lengthInBits uint16 = m.BACnetTag.LengthInBits()
+
+ // Simple field (unusedBits)
+ lengthInBits += 8
+
+ // Array field
+ if len(m.data) > 0 {
+ lengthInBits += 8 * uint16(len(m.data))
+ }
+
+ return lengthInBits
+}
+
+func (m BACnetTagApplicationBitString) LengthInBytes() uint16 {
+ return m.LengthInBits() / 8
+}
+
+func BACnetTagApplicationBitStringParse(io spi.ReadBuffer, lengthValueType uint8, extLength uint8) (BACnetTagInitializer, error) {
+
+ // Simple Field (unusedBits)
+ var unusedBits uint8 = io.ReadUint8(8)
+
+ // Array field (data)
+ var data []int8
+ // Length array
+ _dataLength := uint16(spi.InlineIf(((lengthValueType) == (5)), uint16(((extLength) - (1))), uint16(((lengthValueType) - (1)))))
+ _dataEndPos := io.GetPos() + _dataLength
+ for io.GetPos() < _dataEndPos {
+ data = append(data, io.ReadInt8(8))
+ }
+
+ // Create the instance
+ return NewBACnetTagApplicationBitString(unusedBits, data), nil
+}
+
+func (m BACnetTagApplicationBitString) Serialize(io spi.WriteBuffer) {
+ serializeFunc := func(typ interface{}) {
+ if _, ok := typ.(IBACnetTagApplicationBitString); ok {
+
+ // Simple Field (unusedBits)
+ var unusedBits uint8 = m.unusedBits
+ io.WriteUint8(8, (unusedBits))
+
+ // Array Field (data)
+ if m.data != nil {
+ for _, _element := range m.data {
+ io.WriteInt8(8, _element)
+ }
+ }
+ }
+ }
+ serializeFunc(m)
+}
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationBoolean.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationBoolean.go
new file mode 100644
index 0000000..421deaf
--- /dev/null
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationBoolean.go
@@ -0,0 +1,75 @@
+//
+// 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.
+//
+package model
+
+import (
+ "plc4x.apache.org/plc4go-modbus-driver/0.8.0/internal/plc4go/spi"
+)
+
+// The data-structure of this message
+type BACnetTagApplicationBoolean struct {
+ BACnetTag
+}
+
+// The corresponding interface
+type IBACnetTagApplicationBoolean interface {
+ IBACnetTag
+ Serialize(io spi.WriteBuffer)
+}
+
+// Accessors for discriminator values.
+func (m BACnetTagApplicationBoolean) ContextSpecificTag() uint8 {
+ return 0
+}
+
+func (m BACnetTagApplicationBoolean) initialize(typeOrTagNumber uint8, lengthValueType uint8, extTagNumber *uint8, extLength *uint8) spi.Message {
+ m.typeOrTagNumber = typeOrTagNumber
+ m.lengthValueType = lengthValueType
+ m.extTagNumber = extTagNumber
+ m.extLength = extLength
+ return m
+}
+
+func NewBACnetTagApplicationBoolean() BACnetTagInitializer {
+ return &BACnetTagApplicationBoolean{}
+}
+
+func (m BACnetTagApplicationBoolean) LengthInBits() uint16 {
+ var lengthInBits uint16 = m.BACnetTag.LengthInBits()
+
+ return lengthInBits
+}
+
+func (m BACnetTagApplicationBoolean) LengthInBytes() uint16 {
+ return m.LengthInBits() / 8
+}
+
+func BACnetTagApplicationBooleanParse(io spi.ReadBuffer) (BACnetTagInitializer, error) {
+
+ // Create the instance
+ return NewBACnetTagApplicationBoolean(), nil
+}
+
+func (m BACnetTagApplicationBoolean) Serialize(io spi.WriteBuffer) {
+ serializeFunc := func(typ interface{}) {
+ if _, ok := typ.(IBACnetTagApplicationBoolean); ok {
+ }
+ }
+ serializeFunc(m)
+}
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationCharacterString.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationCharacterString.go
new file mode 100644
index 0000000..facb6c8
--- /dev/null
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationCharacterString.go
@@ -0,0 +1,75 @@
+//
+// 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.
+//
+package model
+
+import (
+ "plc4x.apache.org/plc4go-modbus-driver/0.8.0/internal/plc4go/spi"
+)
+
+// The data-structure of this message
+type BACnetTagApplicationCharacterString struct {
+ BACnetTag
+}
+
+// The corresponding interface
+type IBACnetTagApplicationCharacterString interface {
+ IBACnetTag
+ Serialize(io spi.WriteBuffer)
+}
+
+// Accessors for discriminator values.
+func (m BACnetTagApplicationCharacterString) ContextSpecificTag() uint8 {
+ return 0
+}
+
+func (m BACnetTagApplicationCharacterString) initialize(typeOrTagNumber uint8, lengthValueType uint8, extTagNumber *uint8, extLength *uint8) spi.Message {
+ m.typeOrTagNumber = typeOrTagNumber
+ m.lengthValueType = lengthValueType
+ m.extTagNumber = extTagNumber
+ m.extLength = extLength
+ return m
+}
+
+func NewBACnetTagApplicationCharacterString() BACnetTagInitializer {
+ return &BACnetTagApplicationCharacterString{}
+}
+
+func (m BACnetTagApplicationCharacterString) LengthInBits() uint16 {
+ var lengthInBits uint16 = m.BACnetTag.LengthInBits()
+
+ return lengthInBits
+}
+
+func (m BACnetTagApplicationCharacterString) LengthInBytes() uint16 {
+ return m.LengthInBits() / 8
+}
+
+func BACnetTagApplicationCharacterStringParse(io spi.ReadBuffer) (BACnetTagInitializer, error) {
+
+ // Create the instance
+ return NewBACnetTagApplicationCharacterString(), nil
+}
+
+func (m BACnetTagApplicationCharacterString) Serialize(io spi.WriteBuffer) {
+ serializeFunc := func(typ interface{}) {
+ if _, ok := typ.(IBACnetTagApplicationCharacterString); ok {
+ }
+ }
+ serializeFunc(m)
+}
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationDate.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationDate.go
new file mode 100644
index 0000000..c968020
--- /dev/null
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationDate.go
@@ -0,0 +1,75 @@
+//
+// 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.
+//
+package model
+
+import (
+ "plc4x.apache.org/plc4go-modbus-driver/0.8.0/internal/plc4go/spi"
+)
+
+// The data-structure of this message
+type BACnetTagApplicationDate struct {
+ BACnetTag
+}
+
+// The corresponding interface
+type IBACnetTagApplicationDate interface {
+ IBACnetTag
+ Serialize(io spi.WriteBuffer)
+}
+
+// Accessors for discriminator values.
+func (m BACnetTagApplicationDate) ContextSpecificTag() uint8 {
+ return 0
+}
+
+func (m BACnetTagApplicationDate) initialize(typeOrTagNumber uint8, lengthValueType uint8, extTagNumber *uint8, extLength *uint8) spi.Message {
+ m.typeOrTagNumber = typeOrTagNumber
+ m.lengthValueType = lengthValueType
+ m.extTagNumber = extTagNumber
+ m.extLength = extLength
+ return m
+}
+
+func NewBACnetTagApplicationDate() BACnetTagInitializer {
+ return &BACnetTagApplicationDate{}
+}
+
+func (m BACnetTagApplicationDate) LengthInBits() uint16 {
+ var lengthInBits uint16 = m.BACnetTag.LengthInBits()
+
+ return lengthInBits
+}
+
+func (m BACnetTagApplicationDate) LengthInBytes() uint16 {
+ return m.LengthInBits() / 8
+}
+
+func BACnetTagApplicationDateParse(io spi.ReadBuffer) (BACnetTagInitializer, error) {
+
+ // Create the instance
+ return NewBACnetTagApplicationDate(), nil
+}
+
+func (m BACnetTagApplicationDate) Serialize(io spi.WriteBuffer) {
+ serializeFunc := func(typ interface{}) {
+ if _, ok := typ.(IBACnetTagApplicationDate); ok {
+ }
+ }
+ serializeFunc(m)
+}
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationDouble.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationDouble.go
new file mode 100644
index 0000000..699e0af
--- /dev/null
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationDouble.go
@@ -0,0 +1,86 @@
+//
+// 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.
+//
+package model
+
+import (
+ "plc4x.apache.org/plc4go-modbus-driver/0.8.0/internal/plc4go/spi"
+)
+
+// The data-structure of this message
+type BACnetTagApplicationDouble struct {
+ value float64
+ BACnetTag
+}
+
+// The corresponding interface
+type IBACnetTagApplicationDouble interface {
+ IBACnetTag
+ Serialize(io spi.WriteBuffer)
+}
+
+// Accessors for discriminator values.
+func (m BACnetTagApplicationDouble) ContextSpecificTag() uint8 {
+ return 0
+}
+
+func (m BACnetTagApplicationDouble) initialize(typeOrTagNumber uint8, lengthValueType uint8, extTagNumber *uint8, extLength *uint8) spi.Message {
+ m.typeOrTagNumber = typeOrTagNumber
+ m.lengthValueType = lengthValueType
+ m.extTagNumber = extTagNumber
+ m.extLength = extLength
+ return m
+}
+
+func NewBACnetTagApplicationDouble(value float64) BACnetTagInitializer {
+ return &BACnetTagApplicationDouble{value: value}
+}
+
+func (m BACnetTagApplicationDouble) LengthInBits() uint16 {
+ var lengthInBits uint16 = m.BACnetTag.LengthInBits()
+
+ // Simple field (value)
+ lengthInBits += 64
+
+ return lengthInBits
+}
+
+func (m BACnetTagApplicationDouble) LengthInBytes() uint16 {
+ return m.LengthInBits() / 8
+}
+
+func BACnetTagApplicationDoubleParse(io spi.ReadBuffer, lengthValueType uint8, extLength uint8) (BACnetTagInitializer, error) {
+
+ // Simple Field (value)
+ var value float64 = io.ReadFloat64(64)
+
+ // Create the instance
+ return NewBACnetTagApplicationDouble(value), nil
+}
+
+func (m BACnetTagApplicationDouble) Serialize(io spi.WriteBuffer) {
+ serializeFunc := func(typ interface{}) {
+ if _, ok := typ.(IBACnetTagApplicationDouble); ok {
+
+ // Simple Field (value)
+ var value float64 = m.value
+ io.WriteFloat64(64, (value))
+ }
+ }
+ serializeFunc(m)
+}
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationEnumerated.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationEnumerated.go
new file mode 100644
index 0000000..b550ab0
--- /dev/null
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationEnumerated.go
@@ -0,0 +1,97 @@
+//
+// 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.
+//
+package model
+
+import (
+ "plc4x.apache.org/plc4go-modbus-driver/0.8.0/internal/plc4go/spi"
+)
+
+// The data-structure of this message
+type BACnetTagApplicationEnumerated struct {
+ data []int8
+ BACnetTag
+}
+
+// The corresponding interface
+type IBACnetTagApplicationEnumerated interface {
+ IBACnetTag
+ Serialize(io spi.WriteBuffer)
+}
+
+// Accessors for discriminator values.
+func (m BACnetTagApplicationEnumerated) ContextSpecificTag() uint8 {
+ return 0
+}
+
+func (m BACnetTagApplicationEnumerated) initialize(typeOrTagNumber uint8, lengthValueType uint8, extTagNumber *uint8, extLength *uint8) spi.Message {
+ m.typeOrTagNumber = typeOrTagNumber
+ m.lengthValueType = lengthValueType
+ m.extTagNumber = extTagNumber
+ m.extLength = extLength
+ return m
+}
+
+func NewBACnetTagApplicationEnumerated(data []int8) BACnetTagInitializer {
+ return &BACnetTagApplicationEnumerated{data: data}
+}
+
+func (m BACnetTagApplicationEnumerated) LengthInBits() uint16 {
+ var lengthInBits uint16 = m.BACnetTag.LengthInBits()
+
+ // Array field
+ if len(m.data) > 0 {
+ lengthInBits += 8 * uint16(len(m.data))
+ }
+
+ return lengthInBits
+}
+
+func (m BACnetTagApplicationEnumerated) LengthInBytes() uint16 {
+ return m.LengthInBits() / 8
+}
+
+func BACnetTagApplicationEnumeratedParse(io spi.ReadBuffer, lengthValueType uint8, extLength uint8) (BACnetTagInitializer, error) {
+
+ // Array field (data)
+ var data []int8
+ // Length array
+ _dataLength := uint16(spi.InlineIf(((lengthValueType) == (5)), uint16(extLength), uint16(lengthValueType)))
+ _dataEndPos := io.GetPos() + _dataLength
+ for io.GetPos() < _dataEndPos {
+ data = append(data, io.ReadInt8(8))
+ }
+
+ // Create the instance
+ return NewBACnetTagApplicationEnumerated(data), nil
+}
+
+func (m BACnetTagApplicationEnumerated) Serialize(io spi.WriteBuffer) {
+ serializeFunc := func(typ interface{}) {
+ if _, ok := typ.(IBACnetTagApplicationEnumerated); ok {
+
+ // Array Field (data)
+ if m.data != nil {
+ for _, _element := range m.data {
+ io.WriteInt8(8, _element)
+ }
+ }
+ }
+ }
+ serializeFunc(m)
+}
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationNull.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationNull.go
new file mode 100644
index 0000000..12d3c8e
--- /dev/null
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationNull.go
@@ -0,0 +1,75 @@
+//
+// 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.
+//
+package model
+
+import (
+ "plc4x.apache.org/plc4go-modbus-driver/0.8.0/internal/plc4go/spi"
+)
+
+// The data-structure of this message
+type BACnetTagApplicationNull struct {
+ BACnetTag
+}
+
+// The corresponding interface
+type IBACnetTagApplicationNull interface {
+ IBACnetTag
+ Serialize(io spi.WriteBuffer)
+}
+
+// Accessors for discriminator values.
+func (m BACnetTagApplicationNull) ContextSpecificTag() uint8 {
+ return 0
+}
+
+func (m BACnetTagApplicationNull) initialize(typeOrTagNumber uint8, lengthValueType uint8, extTagNumber *uint8, extLength *uint8) spi.Message {
+ m.typeOrTagNumber = typeOrTagNumber
+ m.lengthValueType = lengthValueType
+ m.extTagNumber = extTagNumber
+ m.extLength = extLength
+ return m
+}
+
+func NewBACnetTagApplicationNull() BACnetTagInitializer {
+ return &BACnetTagApplicationNull{}
+}
+
+func (m BACnetTagApplicationNull) LengthInBits() uint16 {
+ var lengthInBits uint16 = m.BACnetTag.LengthInBits()
+
+ return lengthInBits
+}
+
+func (m BACnetTagApplicationNull) LengthInBytes() uint16 {
+ return m.LengthInBits() / 8
+}
+
+func BACnetTagApplicationNullParse(io spi.ReadBuffer) (BACnetTagInitializer, error) {
+
+ // Create the instance
+ return NewBACnetTagApplicationNull(), nil
+}
+
+func (m BACnetTagApplicationNull) Serialize(io spi.WriteBuffer) {
+ serializeFunc := func(typ interface{}) {
+ if _, ok := typ.(IBACnetTagApplicationNull); ok {
+ }
+ }
+ serializeFunc(m)
+}
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationObjectIdentifier.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationObjectIdentifier.go
new file mode 100644
index 0000000..63374c7
--- /dev/null
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationObjectIdentifier.go
@@ -0,0 +1,75 @@
+//
+// 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.
+//
+package model
+
+import (
... 12959 lines suppressed ...