You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@plc4x.apache.org by sr...@apache.org on 2024/11/05 12:23:44 UTC

(plc4x) branch develop updated: fix(code-gen/go): compile issue fix for +2 tree

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

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


The following commit(s) were added to refs/heads/develop by this push:
     new fc4c27aa76 fix(code-gen/go): compile issue fix for +2 tree
fc4c27aa76 is described below

commit fc4c27aa76248a54259f903bea46604a6646cc59
Author: Sebastian Rühl <sr...@apache.org>
AuthorDate: Tue Nov 5 13:23:35 2024 +0100

    fix(code-gen/go): compile issue fix for +2 tree
---
 .../templates/go/complex-type-template.go.ftlh     |  4 ++
 .../protocols/opcua/ParserSerializerTestsuite.xml  | 32 ++++++------
 .../readwrite/model/CIPEncapsulationPacket.go      |  4 ++
 .../abeth/readwrite/model/DF1RequestCommand.go     |  4 ++
 .../abeth/readwrite/model/DF1RequestMessage.go     |  4 ++
 .../abeth/readwrite/model/DF1ResponseMessage.go    |  4 ++
 .../discovery/readwrite/model/AdsDiscoveryBlock.go |  4 ++
 .../ads/readwrite/model/AdsMultiRequestItem.go     |  4 ++
 plc4go/protocols/ads/readwrite/model/AmsPacket.go  |  4 ++
 plc4go/protocols/bacnetip/readwrite/model/APDU.go  |  4 ++
 .../readwrite/model/BACnetApplicationTag.go        |  4 ++
 .../readwrite/model/BACnetCalendarEntry.go         |  4 ++
 .../bacnetip/readwrite/model/BACnetChannelValue.go |  4 ++
 .../bacnetip/readwrite/model/BACnetClientCOV.go    |  4 ++
 .../model/BACnetConfirmedServiceRequest.go         |  4 ++
 ...edServiceRequestAtomicReadFileStreamOrRecord.go |  4 ++
 ...rviceRequestConfirmedTextMessageMessageClass.go |  4 ++
 .../BACnetConfirmedServiceRequestReadRangeRange.go |  4 ++
 .../readwrite/model/BACnetConstructedData.go       |  4 ++
 .../bacnetip/readwrite/model/BACnetContextTag.go   |  4 ++
 .../bacnetip/readwrite/model/BACnetError.go        |  4 ++
 .../model/BACnetEventLogRecordLogDatum.go          |  4 ++
 .../readwrite/model/BACnetEventParameter.go        |  4 ++
 ...BACnetEventParameterChangeOfValueCivCriteria.go |  4 ++
 .../readwrite/model/BACnetFaultParameter.go        |  4 ++
 ...etFaultParameterFaultExtendedParametersEntry.go |  4 ++
 ...tFaultParameterFaultOutOfRangeMaxNormalValue.go |  4 ++
 ...tFaultParameterFaultOutOfRangeMinNormalValue.go |  4 ++
 .../bacnetip/readwrite/model/BACnetHostAddress.go  |  4 ++
 .../model/BACnetLandingCallStatusCommand.go        |  4 ++
 .../bacnetip/readwrite/model/BACnetLogData.go      |  4 ++
 .../readwrite/model/BACnetLogDataLogDataEntry.go   |  4 ++
 .../readwrite/model/BACnetLogRecordLogDatum.go     |  4 ++
 .../model/BACnetNotificationParameters.go          |  4 ++
 ...ationParametersChangeOfDiscreteValueNewValue.go |  4 ++
 ...tNotificationParametersChangeOfValueNewValue.go |  4 ++
 .../readwrite/model/BACnetOptionalBinaryPV.go      |  4 ++
 .../model/BACnetOptionalCharacterString.go         |  4 ++
 .../bacnetip/readwrite/model/BACnetOptionalREAL.go |  4 ++
 .../readwrite/model/BACnetOptionalUnsigned.go      |  4 ++
 .../readwrite/model/BACnetPriorityValue.go         |  4 ++
 .../readwrite/model/BACnetProcessIdSelection.go    |  4 ++
 .../BACnetPropertyAccessResultAccessResult.go      |  4 ++
 .../readwrite/model/BACnetPropertyStates.go        |  4 ++
 .../bacnetip/readwrite/model/BACnetRecipient.go    |  4 ++
 .../bacnetip/readwrite/model/BACnetScale.go        |  4 ++
 .../bacnetip/readwrite/model/BACnetServiceAck.go   |  4 ++
 ...BACnetServiceAckAtomicReadFileStreamOrRecord.go |  4 ++
 .../bacnetip/readwrite/model/BACnetShedLevel.go    |  4 ++
 .../readwrite/model/BACnetSpecialEventPeriod.go    |  4 ++
 .../bacnetip/readwrite/model/BACnetTimeStamp.go    |  4 ++
 .../readwrite/model/BACnetTimerStateChangeValue.go |  4 ++
 .../model/BACnetUnconfirmedServiceRequest.go       |  4 ++
 .../BACnetUnconfirmedServiceRequestWhoHasObject.go |  4 ++
 .../bacnetip/readwrite/model/BACnetValueSource.go  |  4 ++
 plc4go/protocols/bacnetip/readwrite/model/BVLC.go  |  4 ++
 plc4go/protocols/bacnetip/readwrite/model/NLM.go   |  4 ++
 .../cbus/readwrite/model/AccessControlData.go      |  4 ++
 .../cbus/readwrite/model/AirConditioningData.go    |  4 ++
 plc4go/protocols/cbus/readwrite/model/CALData.go   |  4 ++
 plc4go/protocols/cbus/readwrite/model/CALReply.go  |  4 ++
 .../protocols/cbus/readwrite/model/CBusCommand.go  |  4 ++
 .../protocols/cbus/readwrite/model/CBusMessage.go  |  4 ++
 .../model/CBusPointToMultiPointCommand.go          |  4 ++
 .../readwrite/model/CBusPointToPointCommand.go     |  4 ++
 .../model/CBusPointToPointToMultiPointCommand.go   |  4 ++
 .../readwrite/model/ClockAndTimekeepingData.go     |  4 ++
 .../protocols/cbus/readwrite/model/EncodedReply.go |  4 ++
 .../cbus/readwrite/model/ErrorReportingData.go     |  4 ++
 .../model/ErrorReportingSystemCategoryType.go      |  4 ++
 .../cbus/readwrite/model/IdentifyReplyCommand.go   |  4 ++
 .../cbus/readwrite/model/LevelInformation.go       |  4 ++
 .../protocols/cbus/readwrite/model/LightingData.go |  4 ++
 .../cbus/readwrite/model/MeasurementData.go        |  4 ++
 .../readwrite/model/MediaTransportControlData.go   |  4 ++
 .../protocols/cbus/readwrite/model/MeteringData.go |  4 ++
 .../protocols/cbus/readwrite/model/MonitoredSAL.go |  4 ++
 .../cbus/readwrite/model/ParameterValue.go         |  4 ++
 plc4go/protocols/cbus/readwrite/model/Reply.go     |  4 ++
 .../cbus/readwrite/model/ReplyOrConfirmation.go    |  4 ++
 plc4go/protocols/cbus/readwrite/model/Request.go   |  4 ++
 plc4go/protocols/cbus/readwrite/model/SALData.go   |  4 ++
 .../protocols/cbus/readwrite/model/SecurityData.go |  4 ++
 .../cbus/readwrite/model/StatusRequest.go          |  4 ++
 .../cbus/readwrite/model/TelephonyData.go          |  4 ++
 .../cbus/readwrite/model/TriggerControlData.go     |  4 ++
 plc4go/protocols/df1/readwrite/model/DF1Command.go |  4 ++
 plc4go/protocols/df1/readwrite/model/DF1Symbol.go  |  4 ++
 plc4go/protocols/eip/readwrite/model/CipService.go |  4 ++
 .../eip/readwrite/model/CommandSpecificDataItem.go |  4 ++
 .../eip/readwrite/model/DataSegmentType.go         |  4 ++
 plc4go/protocols/eip/readwrite/model/EipPacket.go  |  4 ++
 .../eip/readwrite/model/LogicalSegmentType.go      |  4 ++
 .../protocols/eip/readwrite/model/PathSegment.go   |  4 ++
 .../eip/readwrite/model/PortSegmentType.go         |  4 ++
 plc4go/protocols/eip/readwrite/model/TypeId.go     |  4 ++
 .../firmata/readwrite/model/FirmataCommand.go      |  4 ++
 .../firmata/readwrite/model/FirmataMessage.go      |  4 ++
 .../firmata/readwrite/model/SysexCommand.go        |  4 ++
 plc4go/protocols/knxnetip/readwrite/model/Apdu.go  |  4 ++
 .../knxnetip/readwrite/model/ApduControl.go        |  4 ++
 .../protocols/knxnetip/readwrite/model/ApduData.go |  4 ++
 .../knxnetip/readwrite/model/ApduDataExt.go        |  4 ++
 plc4go/protocols/knxnetip/readwrite/model/CEMI.go  |  4 ++
 .../readwrite/model/CEMIAdditionalInformation.go   |  4 ++
 .../knxnetip/readwrite/model/ComObjectTable.go     |  4 ++
 .../model/ConnectionRequestInformation.go          |  4 ++
 .../readwrite/model/ConnectionResponseDataBlock.go |  4 ++
 .../knxnetip/readwrite/model/KnxGroupAddress.go    |  4 ++
 .../knxnetip/readwrite/model/KnxManufacturer.go    | 58 +++++++++++++++++-----
 .../knxnetip/readwrite/model/KnxNetIpMessage.go    |  4 ++
 .../knxnetip/readwrite/model/LDataFrame.go         |  4 ++
 .../knxnetip/readwrite/model/ServiceId.go          |  4 ++
 .../protocols/modbus/readwrite/model/ModbusADU.go  |  4 ++
 .../protocols/modbus/readwrite/model/ModbusPDU.go  |  4 ++
 .../readwrite/model/ExtensionObjectDefinition.go   |  4 ++
 .../protocols/opcua/readwrite/model/MessagePDU.go  |  4 ++
 .../opcua/readwrite/model/NodeIdTypeDefinition.go  |  4 ++
 .../opcua/readwrite/model/OpenChannelMessage.go    |  4 ++
 plc4go/protocols/opcua/readwrite/model/Payload.go  |  4 ++
 .../readwrite/model/UserIdentityTokenDefinition.go |  4 ++
 plc4go/protocols/opcua/readwrite/model/Variant.go  |  4 ++
 plc4go/protocols/s7/readwrite/model/COTPPacket.go  |  4 ++
 .../protocols/s7/readwrite/model/COTPParameter.go  |  4 ++
 .../s7/readwrite/model/CycServiceItemType.go       |  4 ++
 plc4go/protocols/s7/readwrite/model/S7Address.go   |  4 ++
 .../s7/readwrite/model/S7DataAlarmMessage.go       |  4 ++
 plc4go/protocols/s7/readwrite/model/S7Message.go   |  4 ++
 plc4go/protocols/s7/readwrite/model/S7Parameter.go |  4 ++
 .../s7/readwrite/model/S7ParameterUserDataItem.go  |  4 ++
 plc4go/protocols/s7/readwrite/model/S7Payload.go   |  4 ++
 .../s7/readwrite/model/S7PayloadUserDataItem.go    |  4 ++
 .../readwrite/model/S7VarRequestParameterItem.go   |  4 ++
 .../protocols/s7/readwrite/model/TransportSize.go  | 22 ++++----
 .../protocols/knxnetip/knx-master-data.mspec       |  8 +--
 135 files changed, 602 insertions(+), 42 deletions(-)

diff --git a/code-generation/language-go/src/main/resources/templates/go/complex-type-template.go.ftlh b/code-generation/language-go/src/main/resources/templates/go/complex-type-template.go.ftlh
index f81bde7406..a963ac2172 100644
--- a/code-generation/language-go/src/main/resources/templates/go/complex-type-template.go.ftlh
+++ b/code-generation/language-go/src/main/resources/templates/go/complex-type-template.go.ftlh
@@ -1046,6 +1046,10 @@ func (m *_${type.name}) getLengthInBits(ctx context.Context) uint16 {
 
 	return lengthInBits
 }
+
+func (m *_${type.name}) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
 </#if>
 
 func (m *_${type.name}) GetLengthInBytes(ctx context.Context) uint16 {
diff --git a/plc4go/assets/testing/protocols/opcua/ParserSerializerTestsuite.xml b/plc4go/assets/testing/protocols/opcua/ParserSerializerTestsuite.xml
index 488655b5b0..049cefe778 100644
--- a/plc4go/assets/testing/protocols/opcua/ParserSerializerTestsuite.xml
+++ b/plc4go/assets/testing/protocols/opcua/ParserSerializerTestsuite.xml
@@ -1,21 +1,21 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
-  ~ 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
-  ~
-  ~   https://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.
+  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
+
+      https://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.
   -->
 <test:testsuite xmlns:test="https://plc4x.apache.org/schemas/parser-serializer-testsuite.xsd"
   byteOrder="LITTLE_ENDIAN">
diff --git a/plc4go/protocols/abeth/readwrite/model/CIPEncapsulationPacket.go b/plc4go/protocols/abeth/readwrite/model/CIPEncapsulationPacket.go
index cd827ed395..855921a833 100644
--- a/plc4go/protocols/abeth/readwrite/model/CIPEncapsulationPacket.go
+++ b/plc4go/protocols/abeth/readwrite/model/CIPEncapsulationPacket.go
@@ -378,6 +378,10 @@ func (m *_CIPEncapsulationPacket) getLengthInBits(ctx context.Context) uint16 {
 	return lengthInBits
 }
 
+func (m *_CIPEncapsulationPacket) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_CIPEncapsulationPacket) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/abeth/readwrite/model/DF1RequestCommand.go b/plc4go/protocols/abeth/readwrite/model/DF1RequestCommand.go
index a5a5964572..a9a7b120f1 100644
--- a/plc4go/protocols/abeth/readwrite/model/DF1RequestCommand.go
+++ b/plc4go/protocols/abeth/readwrite/model/DF1RequestCommand.go
@@ -225,6 +225,10 @@ func (m *_DF1RequestCommand) getLengthInBits(ctx context.Context) uint16 {
 	return lengthInBits
 }
 
+func (m *_DF1RequestCommand) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_DF1RequestCommand) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/abeth/readwrite/model/DF1RequestMessage.go b/plc4go/protocols/abeth/readwrite/model/DF1RequestMessage.go
index 5f3c583289..55090ad65d 100644
--- a/plc4go/protocols/abeth/readwrite/model/DF1RequestMessage.go
+++ b/plc4go/protocols/abeth/readwrite/model/DF1RequestMessage.go
@@ -308,6 +308,10 @@ func (m *_DF1RequestMessage) getLengthInBits(ctx context.Context) uint16 {
 	return lengthInBits
 }
 
+func (m *_DF1RequestMessage) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_DF1RequestMessage) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/abeth/readwrite/model/DF1ResponseMessage.go b/plc4go/protocols/abeth/readwrite/model/DF1ResponseMessage.go
index db41792065..06d0784f48 100644
--- a/plc4go/protocols/abeth/readwrite/model/DF1ResponseMessage.go
+++ b/plc4go/protocols/abeth/readwrite/model/DF1ResponseMessage.go
@@ -317,6 +317,10 @@ func (m *_DF1ResponseMessage) getLengthInBits(ctx context.Context) uint16 {
 	return lengthInBits
 }
 
+func (m *_DF1ResponseMessage) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_DF1ResponseMessage) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/ads/discovery/readwrite/model/AdsDiscoveryBlock.go b/plc4go/protocols/ads/discovery/readwrite/model/AdsDiscoveryBlock.go
index 3ec55530f1..0dcbac48d7 100644
--- a/plc4go/protocols/ads/discovery/readwrite/model/AdsDiscoveryBlock.go
+++ b/plc4go/protocols/ads/discovery/readwrite/model/AdsDiscoveryBlock.go
@@ -393,6 +393,10 @@ func (m *_AdsDiscoveryBlock) getLengthInBits(ctx context.Context) uint16 {
 	return lengthInBits
 }
 
+func (m *_AdsDiscoveryBlock) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_AdsDiscoveryBlock) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/ads/readwrite/model/AdsMultiRequestItem.go b/plc4go/protocols/ads/readwrite/model/AdsMultiRequestItem.go
index 17f75f58f5..9868d65587 100644
--- a/plc4go/protocols/ads/readwrite/model/AdsMultiRequestItem.go
+++ b/plc4go/protocols/ads/readwrite/model/AdsMultiRequestItem.go
@@ -263,6 +263,10 @@ func (m *_AdsMultiRequestItem) getLengthInBits(ctx context.Context) uint16 {
 	return lengthInBits
 }
 
+func (m *_AdsMultiRequestItem) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_AdsMultiRequestItem) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/ads/readwrite/model/AmsPacket.go b/plc4go/protocols/ads/readwrite/model/AmsPacket.go
index 9d70d26d5e..8310bfd064 100644
--- a/plc4go/protocols/ads/readwrite/model/AmsPacket.go
+++ b/plc4go/protocols/ads/readwrite/model/AmsPacket.go
@@ -894,6 +894,10 @@ func (m *_AmsPacket) getLengthInBits(ctx context.Context) uint16 {
 	return lengthInBits
 }
 
+func (m *_AmsPacket) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_AmsPacket) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/bacnetip/readwrite/model/APDU.go b/plc4go/protocols/bacnetip/readwrite/model/APDU.go
index 7ce2c5fb18..5c96940687 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/APDU.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/APDU.go
@@ -398,6 +398,10 @@ func (m *_APDU) getLengthInBits(ctx context.Context) uint16 {
 	return lengthInBits
 }
 
+func (m *_APDU) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_APDU) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetApplicationTag.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetApplicationTag.go
index d28be087fc..24511a4943 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetApplicationTag.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetApplicationTag.go
@@ -557,6 +557,10 @@ func (m *_BACnetApplicationTag) getLengthInBits(ctx context.Context) uint16 {
 	return lengthInBits
 }
 
+func (m *_BACnetApplicationTag) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_BACnetApplicationTag) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetCalendarEntry.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetCalendarEntry.go
index 67787aa7eb..eb85c7c912 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetCalendarEntry.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetCalendarEntry.go
@@ -333,6 +333,10 @@ func (m *_BACnetCalendarEntry) getLengthInBits(ctx context.Context) uint16 {
 	return lengthInBits
 }
 
+func (m *_BACnetCalendarEntry) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_BACnetCalendarEntry) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetChannelValue.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetChannelValue.go
index 1bd82d1bde..87f3cf7f65 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetChannelValue.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetChannelValue.go
@@ -577,6 +577,10 @@ func (m *_BACnetChannelValue) getLengthInBits(ctx context.Context) uint16 {
 	return lengthInBits
 }
 
+func (m *_BACnetChannelValue) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_BACnetChannelValue) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetClientCOV.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetClientCOV.go
index e7faf3594d..866f9a56f5 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetClientCOV.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetClientCOV.go
@@ -312,6 +312,10 @@ func (m *_BACnetClientCOV) getLengthInBits(ctx context.Context) uint16 {
 	return lengthInBits
 }
 
+func (m *_BACnetClientCOV) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_BACnetClientCOV) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequest.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequest.go
index 82748f545a..6b250a3a06 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequest.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequest.go
@@ -902,6 +902,10 @@ func (m *_BACnetConfirmedServiceRequest) getLengthInBits(ctx context.Context) ui
 	return lengthInBits
 }
 
+func (m *_BACnetConfirmedServiceRequest) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_BACnetConfirmedServiceRequest) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAtomicReadFileStreamOrRecord.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAtomicReadFileStreamOrRecord.go
index d9fd639fc4..ee8b3607ec 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAtomicReadFileStreamOrRecord.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAtomicReadFileStreamOrRecord.go
@@ -394,6 +394,10 @@ func (m *_BACnetConfirmedServiceRequestAtomicReadFileStreamOrRecord) getLengthIn
 	return lengthInBits
 }
 
+func (m *_BACnetConfirmedServiceRequestAtomicReadFileStreamOrRecord) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_BACnetConfirmedServiceRequestAtomicReadFileStreamOrRecord) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedTextMessageMessageClass.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedTextMessageMessageClass.go
index ccfe891391..c95158b790 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedTextMessageMessageClass.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedTextMessageMessageClass.go
@@ -399,6 +399,10 @@ func (m *_BACnetConfirmedServiceRequestConfirmedTextMessageMessageClass) getLeng
 	return lengthInBits
 }
 
+func (m *_BACnetConfirmedServiceRequestConfirmedTextMessageMessageClass) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_BACnetConfirmedServiceRequestConfirmedTextMessageMessageClass) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReadRangeRange.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReadRangeRange.go
index e61bb5c4df..9668b2cd35 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReadRangeRange.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReadRangeRange.go
@@ -415,6 +415,10 @@ func (m *_BACnetConfirmedServiceRequestReadRangeRange) getLengthInBits(ctx conte
 	return lengthInBits
 }
 
+func (m *_BACnetConfirmedServiceRequestReadRangeRange) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_BACnetConfirmedServiceRequestReadRangeRange) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedData.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedData.go
index 22100ee0dd..9678b111f6 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedData.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedData.go
@@ -14161,6 +14161,10 @@ func (m *_BACnetConstructedData) getLengthInBits(ctx context.Context) uint16 {
 	return lengthInBits
 }
 
+func (m *_BACnetConstructedData) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_BACnetConstructedData) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetContextTag.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetContextTag.go
index 919fbafef0..dfb20ac316 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetContextTag.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetContextTag.go
@@ -583,6 +583,10 @@ func (m *_BACnetContextTag) getLengthInBits(ctx context.Context) uint16 {
 	return lengthInBits
 }
 
+func (m *_BACnetContextTag) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_BACnetContextTag) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetError.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetError.go
index 646285eb95..4727bd3064 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetError.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetError.go
@@ -368,6 +368,10 @@ func (m *_BACnetError) getLengthInBits(ctx context.Context) uint16 {
 	return lengthInBits
 }
 
+func (m *_BACnetError) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_BACnetError) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetEventLogRecordLogDatum.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetEventLogRecordLogDatum.go
index 73d6203d3e..9d2814f472 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetEventLogRecordLogDatum.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetEventLogRecordLogDatum.go
@@ -420,6 +420,10 @@ func (m *_BACnetEventLogRecordLogDatum) getLengthInBits(ctx context.Context) uin
 	return lengthInBits
 }
 
+func (m *_BACnetEventLogRecordLogDatum) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_BACnetEventLogRecordLogDatum) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetEventParameter.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetEventParameter.go
index 1ebea8b5a0..110a046ba8 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetEventParameter.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetEventParameter.go
@@ -669,6 +669,10 @@ func (m *_BACnetEventParameter) getLengthInBits(ctx context.Context) uint16 {
 	return lengthInBits
 }
 
+func (m *_BACnetEventParameter) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_BACnetEventParameter) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetEventParameterChangeOfValueCivCriteria.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetEventParameterChangeOfValueCivCriteria.go
index fe06295f3a..3374b74786 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetEventParameterChangeOfValueCivCriteria.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetEventParameterChangeOfValueCivCriteria.go
@@ -399,6 +399,10 @@ func (m *_BACnetEventParameterChangeOfValueCivCriteria) getLengthInBits(ctx cont
 	return lengthInBits
 }
 
+func (m *_BACnetEventParameterChangeOfValueCivCriteria) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_BACnetEventParameterChangeOfValueCivCriteria) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetFaultParameter.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetFaultParameter.go
index 2cdd07c75b..5c9d64e43e 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetFaultParameter.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetFaultParameter.go
@@ -438,6 +438,10 @@ func (m *_BACnetFaultParameter) getLengthInBits(ctx context.Context) uint16 {
 	return lengthInBits
 }
 
+func (m *_BACnetFaultParameter) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_BACnetFaultParameter) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetFaultParameterFaultExtendedParametersEntry.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetFaultParameterFaultExtendedParametersEntry.go
index 35467c1711..61bbabc2d5 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetFaultParameterFaultExtendedParametersEntry.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetFaultParameterFaultExtendedParametersEntry.go
@@ -577,6 +577,10 @@ func (m *_BACnetFaultParameterFaultExtendedParametersEntry) getLengthInBits(ctx
 	return lengthInBits
 }
 
+func (m *_BACnetFaultParameterFaultExtendedParametersEntry) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_BACnetFaultParameterFaultExtendedParametersEntry) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetFaultParameterFaultOutOfRangeMaxNormalValue.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetFaultParameterFaultOutOfRangeMaxNormalValue.go
index e4b7ecdc3c..f72c7534fd 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetFaultParameterFaultOutOfRangeMaxNormalValue.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetFaultParameterFaultOutOfRangeMaxNormalValue.go
@@ -441,6 +441,10 @@ func (m *_BACnetFaultParameterFaultOutOfRangeMaxNormalValue) getLengthInBits(ctx
 	return lengthInBits
 }
 
+func (m *_BACnetFaultParameterFaultOutOfRangeMaxNormalValue) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_BACnetFaultParameterFaultOutOfRangeMaxNormalValue) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetFaultParameterFaultOutOfRangeMinNormalValue.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetFaultParameterFaultOutOfRangeMinNormalValue.go
index 8af08eaace..1a4d852290 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetFaultParameterFaultOutOfRangeMinNormalValue.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetFaultParameterFaultOutOfRangeMinNormalValue.go
@@ -441,6 +441,10 @@ func (m *_BACnetFaultParameterFaultOutOfRangeMinNormalValue) getLengthInBits(ctx
 	return lengthInBits
 }
 
+func (m *_BACnetFaultParameterFaultOutOfRangeMinNormalValue) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_BACnetFaultParameterFaultOutOfRangeMinNormalValue) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetHostAddress.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetHostAddress.go
index 241f2ab1f7..1b9a6e8ccf 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetHostAddress.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetHostAddress.go
@@ -333,6 +333,10 @@ func (m *_BACnetHostAddress) getLengthInBits(ctx context.Context) uint16 {
 	return lengthInBits
 }
 
+func (m *_BACnetHostAddress) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_BACnetHostAddress) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetLandingCallStatusCommand.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetLandingCallStatusCommand.go
index e5a7d8e526..a267acc2fa 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetLandingCallStatusCommand.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetLandingCallStatusCommand.go
@@ -312,6 +312,10 @@ func (m *_BACnetLandingCallStatusCommand) getLengthInBits(ctx context.Context) u
 	return lengthInBits
 }
 
+func (m *_BACnetLandingCallStatusCommand) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_BACnetLandingCallStatusCommand) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetLogData.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetLogData.go
index b6d655c5ec..990c7dae8e 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetLogData.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetLogData.go
@@ -420,6 +420,10 @@ func (m *_BACnetLogData) getLengthInBits(ctx context.Context) uint16 {
 	return lengthInBits
 }
 
+func (m *_BACnetLogData) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_BACnetLogData) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetLogDataLogDataEntry.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetLogDataLogDataEntry.go
index f88b80b7c7..94c14af138 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetLogDataLogDataEntry.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetLogDataLogDataEntry.go
@@ -459,6 +459,10 @@ func (m *_BACnetLogDataLogDataEntry) getLengthInBits(ctx context.Context) uint16
 	return lengthInBits
 }
 
+func (m *_BACnetLogDataLogDataEntry) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_BACnetLogDataLogDataEntry) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetLogRecordLogDatum.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetLogRecordLogDatum.go
index 98041c5324..9d62fa0bde 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetLogRecordLogDatum.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetLogRecordLogDatum.go
@@ -588,6 +588,10 @@ func (m *_BACnetLogRecordLogDatum) getLengthInBits(ctx context.Context) uint16 {
 	return lengthInBits
 }
 
+func (m *_BACnetLogRecordLogDatum) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_BACnetLogRecordLogDatum) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetNotificationParameters.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetNotificationParameters.go
index e4203f0272..fc0a58c291 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetNotificationParameters.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetNotificationParameters.go
@@ -780,6 +780,10 @@ func (m *_BACnetNotificationParameters) getLengthInBits(ctx context.Context) uin
 	return lengthInBits
 }
 
+func (m *_BACnetNotificationParameters) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_BACnetNotificationParameters) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetNotificationParametersChangeOfDiscreteValueNewValue.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetNotificationParametersChangeOfDiscreteValueNewValue.go
index 3c944fccc5..29c8b58c4f 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetNotificationParametersChangeOfDiscreteValueNewValue.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetNotificationParametersChangeOfDiscreteValueNewValue.go
@@ -580,6 +580,10 @@ func (m *_BACnetNotificationParametersChangeOfDiscreteValueNewValue) getLengthIn
 	return lengthInBits
 }
 
+func (m *_BACnetNotificationParametersChangeOfDiscreteValueNewValue) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_BACnetNotificationParametersChangeOfDiscreteValueNewValue) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetNotificationParametersChangeOfValueNewValue.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetNotificationParametersChangeOfValueNewValue.go
index f7821bec9a..f7c93291b3 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetNotificationParametersChangeOfValueNewValue.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetNotificationParametersChangeOfValueNewValue.go
@@ -399,6 +399,10 @@ func (m *_BACnetNotificationParametersChangeOfValueNewValue) getLengthInBits(ctx
 	return lengthInBits
 }
 
+func (m *_BACnetNotificationParametersChangeOfValueNewValue) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_BACnetNotificationParametersChangeOfValueNewValue) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetOptionalBinaryPV.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetOptionalBinaryPV.go
index be99aa3d27..33c370a2b6 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetOptionalBinaryPV.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetOptionalBinaryPV.go
@@ -312,6 +312,10 @@ func (m *_BACnetOptionalBinaryPV) getLengthInBits(ctx context.Context) uint16 {
 	return lengthInBits
 }
 
+func (m *_BACnetOptionalBinaryPV) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_BACnetOptionalBinaryPV) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetOptionalCharacterString.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetOptionalCharacterString.go
index 5dfe06ef3d..86fc78befc 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetOptionalCharacterString.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetOptionalCharacterString.go
@@ -312,6 +312,10 @@ func (m *_BACnetOptionalCharacterString) getLengthInBits(ctx context.Context) ui
 	return lengthInBits
 }
 
+func (m *_BACnetOptionalCharacterString) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_BACnetOptionalCharacterString) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetOptionalREAL.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetOptionalREAL.go
index d64b2ac554..783d2736ee 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetOptionalREAL.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetOptionalREAL.go
@@ -312,6 +312,10 @@ func (m *_BACnetOptionalREAL) getLengthInBits(ctx context.Context) uint16 {
 	return lengthInBits
 }
 
+func (m *_BACnetOptionalREAL) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_BACnetOptionalREAL) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetOptionalUnsigned.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetOptionalUnsigned.go
index f7feabb43d..a4987176e8 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetOptionalUnsigned.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetOptionalUnsigned.go
@@ -312,6 +312,10 @@ func (m *_BACnetOptionalUnsigned) getLengthInBits(ctx context.Context) uint16 {
 	return lengthInBits
 }
 
+func (m *_BACnetOptionalUnsigned) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_BACnetOptionalUnsigned) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetPriorityValue.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetPriorityValue.go
index ac7a44cca9..c0d68e7508 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetPriorityValue.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetPriorityValue.go
@@ -603,6 +603,10 @@ func (m *_BACnetPriorityValue) getLengthInBits(ctx context.Context) uint16 {
 	return lengthInBits
 }
 
+func (m *_BACnetPriorityValue) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_BACnetPriorityValue) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetProcessIdSelection.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetProcessIdSelection.go
index 61d2db3558..54321ec00f 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetProcessIdSelection.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetProcessIdSelection.go
@@ -312,6 +312,10 @@ func (m *_BACnetProcessIdSelection) getLengthInBits(ctx context.Context) uint16
 	return lengthInBits
 }
 
+func (m *_BACnetProcessIdSelection) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_BACnetProcessIdSelection) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetPropertyAccessResultAccessResult.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetPropertyAccessResultAccessResult.go
index 1a46b63837..bc2f4d30b6 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetPropertyAccessResultAccessResult.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetPropertyAccessResultAccessResult.go
@@ -323,6 +323,10 @@ func (m *_BACnetPropertyAccessResultAccessResult) getLengthInBits(ctx context.Co
 	return lengthInBits
 }
 
+func (m *_BACnetPropertyAccessResultAccessResult) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_BACnetPropertyAccessResultAccessResult) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetPropertyStates.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetPropertyStates.go
index 45b2a4077f..5257e976e8 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetPropertyStates.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetPropertyStates.go
@@ -1509,6 +1509,10 @@ func (m *_BACnetPropertyStates) getLengthInBits(ctx context.Context) uint16 {
 	return lengthInBits
 }
 
+func (m *_BACnetPropertyStates) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_BACnetPropertyStates) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetRecipient.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetRecipient.go
index bf9efa4e70..d900b2c6d1 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetRecipient.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetRecipient.go
@@ -312,6 +312,10 @@ func (m *_BACnetRecipient) getLengthInBits(ctx context.Context) uint16 {
 	return lengthInBits
 }
 
+func (m *_BACnetRecipient) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_BACnetRecipient) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetScale.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetScale.go
index 10ae0b153a..3e09a1bd89 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetScale.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetScale.go
@@ -312,6 +312,10 @@ func (m *_BACnetScale) getLengthInBits(ctx context.Context) uint16 {
 	return lengthInBits
 }
 
+func (m *_BACnetScale) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_BACnetScale) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetServiceAck.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetServiceAck.go
index 57a3f3ac3f..119536bd81 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetServiceAck.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetServiceAck.go
@@ -545,6 +545,10 @@ func (m *_BACnetServiceAck) getLengthInBits(ctx context.Context) uint16 {
 	return lengthInBits
 }
 
+func (m *_BACnetServiceAck) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_BACnetServiceAck) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetServiceAckAtomicReadFileStreamOrRecord.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetServiceAckAtomicReadFileStreamOrRecord.go
index d632ea2042..17b8f1f6ff 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetServiceAckAtomicReadFileStreamOrRecord.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetServiceAckAtomicReadFileStreamOrRecord.go
@@ -394,6 +394,10 @@ func (m *_BACnetServiceAckAtomicReadFileStreamOrRecord) getLengthInBits(ctx cont
 	return lengthInBits
 }
 
+func (m *_BACnetServiceAckAtomicReadFileStreamOrRecord) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_BACnetServiceAckAtomicReadFileStreamOrRecord) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetShedLevel.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetShedLevel.go
index 44a57c9b3b..6be10797fd 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetShedLevel.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetShedLevel.go
@@ -333,6 +333,10 @@ func (m *_BACnetShedLevel) getLengthInBits(ctx context.Context) uint16 {
 	return lengthInBits
 }
 
+func (m *_BACnetShedLevel) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_BACnetShedLevel) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetSpecialEventPeriod.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetSpecialEventPeriod.go
index fc318d47c1..a707946dd6 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetSpecialEventPeriod.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetSpecialEventPeriod.go
@@ -312,6 +312,10 @@ func (m *_BACnetSpecialEventPeriod) getLengthInBits(ctx context.Context) uint16
 	return lengthInBits
 }
 
+func (m *_BACnetSpecialEventPeriod) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_BACnetSpecialEventPeriod) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetTimeStamp.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetTimeStamp.go
index 9c44205e1b..c82650bd6b 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetTimeStamp.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetTimeStamp.go
@@ -333,6 +333,10 @@ func (m *_BACnetTimeStamp) getLengthInBits(ctx context.Context) uint16 {
 	return lengthInBits
 }
 
+func (m *_BACnetTimeStamp) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_BACnetTimeStamp) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetTimerStateChangeValue.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetTimerStateChangeValue.go
index cbd8df0e8d..6094f6c2fc 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetTimerStateChangeValue.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetTimerStateChangeValue.go
@@ -645,6 +645,10 @@ func (m *_BACnetTimerStateChangeValue) getLengthInBits(ctx context.Context) uint
 	return lengthInBits
 }
 
+func (m *_BACnetTimerStateChangeValue) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_BACnetTimerStateChangeValue) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequest.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequest.go
index 97a326dc02..af65a1236c 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequest.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequest.go
@@ -482,6 +482,10 @@ func (m *_BACnetUnconfirmedServiceRequest) getLengthInBits(ctx context.Context)
 	return lengthInBits
 }
 
+func (m *_BACnetUnconfirmedServiceRequest) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_BACnetUnconfirmedServiceRequest) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestWhoHasObject.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestWhoHasObject.go
index ca5e211be6..0185094c1b 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestWhoHasObject.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestWhoHasObject.go
@@ -312,6 +312,10 @@ func (m *_BACnetUnconfirmedServiceRequestWhoHasObject) getLengthInBits(ctx conte
 	return lengthInBits
 }
 
+func (m *_BACnetUnconfirmedServiceRequestWhoHasObject) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_BACnetUnconfirmedServiceRequestWhoHasObject) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetValueSource.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetValueSource.go
index 3879b975dc..ca2ccec0f1 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetValueSource.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetValueSource.go
@@ -333,6 +333,10 @@ func (m *_BACnetValueSource) getLengthInBits(ctx context.Context) uint16 {
 	return lengthInBits
 }
 
+func (m *_BACnetValueSource) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_BACnetValueSource) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BVLC.go b/plc4go/protocols/bacnetip/readwrite/model/BVLC.go
index 681df9b8fa..bdf4d98f04 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BVLC.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BVLC.go
@@ -522,6 +522,10 @@ func (m *_BVLC) getLengthInBits(ctx context.Context) uint16 {
 	return lengthInBits
 }
 
+func (m *_BVLC) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_BVLC) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/bacnetip/readwrite/model/NLM.go b/plc4go/protocols/bacnetip/readwrite/model/NLM.go
index 2f10f9747b..3b5002dd0a 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/NLM.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/NLM.go
@@ -694,6 +694,10 @@ func (m *_NLM) getLengthInBits(ctx context.Context) uint16 {
 	return lengthInBits
 }
 
+func (m *_NLM) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_NLM) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/cbus/readwrite/model/AccessControlData.go b/plc4go/protocols/cbus/readwrite/model/AccessControlData.go
index e56650cff5..580cc381a8 100644
--- a/plc4go/protocols/cbus/readwrite/model/AccessControlData.go
+++ b/plc4go/protocols/cbus/readwrite/model/AccessControlData.go
@@ -451,6 +451,10 @@ func (m *_AccessControlData) getLengthInBits(ctx context.Context) uint16 {
 	return lengthInBits
 }
 
+func (m *_AccessControlData) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_AccessControlData) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/cbus/readwrite/model/AirConditioningData.go b/plc4go/protocols/cbus/readwrite/model/AirConditioningData.go
index 8a0f8e6b96..c9b90d456f 100644
--- a/plc4go/protocols/cbus/readwrite/model/AirConditioningData.go
+++ b/plc4go/protocols/cbus/readwrite/model/AirConditioningData.go
@@ -648,6 +648,10 @@ func (m *_AirConditioningData) getLengthInBits(ctx context.Context) uint16 {
 	return lengthInBits
 }
 
+func (m *_AirConditioningData) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_AirConditioningData) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/cbus/readwrite/model/CALData.go b/plc4go/protocols/cbus/readwrite/model/CALData.go
index 3ba9ff66c9..4cc9c3f95e 100644
--- a/plc4go/protocols/cbus/readwrite/model/CALData.go
+++ b/plc4go/protocols/cbus/readwrite/model/CALData.go
@@ -515,6 +515,10 @@ func (m *_CALData) getLengthInBits(ctx context.Context) uint16 {
 	return lengthInBits
 }
 
+func (m *_CALData) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_CALData) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/cbus/readwrite/model/CALReply.go b/plc4go/protocols/cbus/readwrite/model/CALReply.go
index 6028b320ad..1e69269168 100644
--- a/plc4go/protocols/cbus/readwrite/model/CALReply.go
+++ b/plc4go/protocols/cbus/readwrite/model/CALReply.go
@@ -317,6 +317,10 @@ func (m *_CALReply) getLengthInBits(ctx context.Context) uint16 {
 	return lengthInBits
 }
 
+func (m *_CALReply) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_CALReply) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/cbus/readwrite/model/CBusCommand.go b/plc4go/protocols/cbus/readwrite/model/CBusCommand.go
index ac9f01a4ca..0b1c7168ac 100644
--- a/plc4go/protocols/cbus/readwrite/model/CBusCommand.go
+++ b/plc4go/protocols/cbus/readwrite/model/CBusCommand.go
@@ -375,6 +375,10 @@ func (m *_CBusCommand) getLengthInBits(ctx context.Context) uint16 {
 	return lengthInBits
 }
 
+func (m *_CBusCommand) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_CBusCommand) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/cbus/readwrite/model/CBusMessage.go b/plc4go/protocols/cbus/readwrite/model/CBusMessage.go
index 1b6da58c98..684a76d1f4 100644
--- a/plc4go/protocols/cbus/readwrite/model/CBusMessage.go
+++ b/plc4go/protocols/cbus/readwrite/model/CBusMessage.go
@@ -250,6 +250,10 @@ func (m *_CBusMessage) getLengthInBits(ctx context.Context) uint16 {
 	return lengthInBits
 }
 
+func (m *_CBusMessage) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_CBusMessage) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/cbus/readwrite/model/CBusPointToMultiPointCommand.go b/plc4go/protocols/cbus/readwrite/model/CBusPointToMultiPointCommand.go
index df29a8ae45..c17b09f576 100644
--- a/plc4go/protocols/cbus/readwrite/model/CBusPointToMultiPointCommand.go
+++ b/plc4go/protocols/cbus/readwrite/model/CBusPointToMultiPointCommand.go
@@ -273,6 +273,10 @@ func (m *_CBusPointToMultiPointCommand) getLengthInBits(ctx context.Context) uin
 	return lengthInBits
 }
 
+func (m *_CBusPointToMultiPointCommand) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_CBusPointToMultiPointCommand) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/cbus/readwrite/model/CBusPointToPointCommand.go b/plc4go/protocols/cbus/readwrite/model/CBusPointToPointCommand.go
index ce6f918931..236a2d9ac2 100644
--- a/plc4go/protocols/cbus/readwrite/model/CBusPointToPointCommand.go
+++ b/plc4go/protocols/cbus/readwrite/model/CBusPointToPointCommand.go
@@ -334,6 +334,10 @@ func (m *_CBusPointToPointCommand) getLengthInBits(ctx context.Context) uint16 {
 	return lengthInBits
 }
 
+func (m *_CBusPointToPointCommand) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_CBusPointToPointCommand) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/cbus/readwrite/model/CBusPointToPointToMultiPointCommand.go b/plc4go/protocols/cbus/readwrite/model/CBusPointToPointToMultiPointCommand.go
index 42eaba46ff..816add73b3 100644
--- a/plc4go/protocols/cbus/readwrite/model/CBusPointToPointToMultiPointCommand.go
+++ b/plc4go/protocols/cbus/readwrite/model/CBusPointToPointToMultiPointCommand.go
@@ -355,6 +355,10 @@ func (m *_CBusPointToPointToMultiPointCommand) getLengthInBits(ctx context.Conte
 	return lengthInBits
 }
 
+func (m *_CBusPointToPointToMultiPointCommand) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_CBusPointToPointToMultiPointCommand) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/cbus/readwrite/model/ClockAndTimekeepingData.go b/plc4go/protocols/cbus/readwrite/model/ClockAndTimekeepingData.go
index 9d917556ea..0302b1160d 100644
--- a/plc4go/protocols/cbus/readwrite/model/ClockAndTimekeepingData.go
+++ b/plc4go/protocols/cbus/readwrite/model/ClockAndTimekeepingData.go
@@ -331,6 +331,10 @@ func (m *_ClockAndTimekeepingData) getLengthInBits(ctx context.Context) uint16 {
 	return lengthInBits
 }
 
+func (m *_ClockAndTimekeepingData) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_ClockAndTimekeepingData) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/cbus/readwrite/model/EncodedReply.go b/plc4go/protocols/cbus/readwrite/model/EncodedReply.go
index 6b127f565e..0ed01d335f 100644
--- a/plc4go/protocols/cbus/readwrite/model/EncodedReply.go
+++ b/plc4go/protocols/cbus/readwrite/model/EncodedReply.go
@@ -296,6 +296,10 @@ func (m *_EncodedReply) getLengthInBits(ctx context.Context) uint16 {
 	return lengthInBits
 }
 
+func (m *_EncodedReply) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_EncodedReply) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/cbus/readwrite/model/ErrorReportingData.go b/plc4go/protocols/cbus/readwrite/model/ErrorReportingData.go
index 5ec87b5f89..9b2675626c 100644
--- a/plc4go/protocols/cbus/readwrite/model/ErrorReportingData.go
+++ b/plc4go/protocols/cbus/readwrite/model/ErrorReportingData.go
@@ -270,6 +270,10 @@ func (m *_ErrorReportingData) getLengthInBits(ctx context.Context) uint16 {
 	return lengthInBits
 }
 
+func (m *_ErrorReportingData) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_ErrorReportingData) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/cbus/readwrite/model/ErrorReportingSystemCategoryType.go b/plc4go/protocols/cbus/readwrite/model/ErrorReportingSystemCategoryType.go
index 8169e5e77e..4cbc6948b8 100644
--- a/plc4go/protocols/cbus/readwrite/model/ErrorReportingSystemCategoryType.go
+++ b/plc4go/protocols/cbus/readwrite/model/ErrorReportingSystemCategoryType.go
@@ -326,6 +326,10 @@ func (m *_ErrorReportingSystemCategoryType) getLengthInBits(ctx context.Context)
 	return lengthInBits
 }
 
+func (m *_ErrorReportingSystemCategoryType) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_ErrorReportingSystemCategoryType) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/cbus/readwrite/model/IdentifyReplyCommand.go b/plc4go/protocols/cbus/readwrite/model/IdentifyReplyCommand.go
index 251d119c9a..a03eee5366 100644
--- a/plc4go/protocols/cbus/readwrite/model/IdentifyReplyCommand.go
+++ b/plc4go/protocols/cbus/readwrite/model/IdentifyReplyCommand.go
@@ -583,6 +583,10 @@ func (m *_IdentifyReplyCommand) getLengthInBits(ctx context.Context) uint16 {
 	return lengthInBits
 }
 
+func (m *_IdentifyReplyCommand) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_IdentifyReplyCommand) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/cbus/readwrite/model/LevelInformation.go b/plc4go/protocols/cbus/readwrite/model/LevelInformation.go
index 2d1c549bc3..f1e88c45cd 100644
--- a/plc4go/protocols/cbus/readwrite/model/LevelInformation.go
+++ b/plc4go/protocols/cbus/readwrite/model/LevelInformation.go
@@ -388,6 +388,10 @@ func (m *_LevelInformation) getLengthInBits(ctx context.Context) uint16 {
 	return lengthInBits
 }
 
+func (m *_LevelInformation) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_LevelInformation) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/cbus/readwrite/model/LightingData.go b/plc4go/protocols/cbus/readwrite/model/LightingData.go
index 81d8d9e0b4..8d59dfa2e0 100644
--- a/plc4go/protocols/cbus/readwrite/model/LightingData.go
+++ b/plc4go/protocols/cbus/readwrite/model/LightingData.go
@@ -354,6 +354,10 @@ func (m *_LightingData) getLengthInBits(ctx context.Context) uint16 {
 	return lengthInBits
 }
 
+func (m *_LightingData) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_LightingData) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/cbus/readwrite/model/MeasurementData.go b/plc4go/protocols/cbus/readwrite/model/MeasurementData.go
index df4f3d5418..b51cf69882 100644
--- a/plc4go/protocols/cbus/readwrite/model/MeasurementData.go
+++ b/plc4go/protocols/cbus/readwrite/model/MeasurementData.go
@@ -270,6 +270,10 @@ func (m *_MeasurementData) getLengthInBits(ctx context.Context) uint16 {
 	return lengthInBits
 }
 
+func (m *_MeasurementData) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_MeasurementData) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/cbus/readwrite/model/MediaTransportControlData.go b/plc4go/protocols/cbus/readwrite/model/MediaTransportControlData.go
index a7e31638da..a26d755bdb 100644
--- a/plc4go/protocols/cbus/readwrite/model/MediaTransportControlData.go
+++ b/plc4go/protocols/cbus/readwrite/model/MediaTransportControlData.go
@@ -707,6 +707,10 @@ func (m *_MediaTransportControlData) getLengthInBits(ctx context.Context) uint16
 	return lengthInBits
 }
 
+func (m *_MediaTransportControlData) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_MediaTransportControlData) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/cbus/readwrite/model/MeteringData.go b/plc4go/protocols/cbus/readwrite/model/MeteringData.go
index 4000ac5e21..68d75bb3a0 100644
--- a/plc4go/protocols/cbus/readwrite/model/MeteringData.go
+++ b/plc4go/protocols/cbus/readwrite/model/MeteringData.go
@@ -478,6 +478,10 @@ func (m *_MeteringData) getLengthInBits(ctx context.Context) uint16 {
 	return lengthInBits
 }
 
+func (m *_MeteringData) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_MeteringData) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/cbus/readwrite/model/MonitoredSAL.go b/plc4go/protocols/cbus/readwrite/model/MonitoredSAL.go
index 69fb7c73cd..6634209211 100644
--- a/plc4go/protocols/cbus/readwrite/model/MonitoredSAL.go
+++ b/plc4go/protocols/cbus/readwrite/model/MonitoredSAL.go
@@ -273,6 +273,10 @@ func (m *_MonitoredSAL) getLengthInBits(ctx context.Context) uint16 {
 	return lengthInBits
 }
 
+func (m *_MonitoredSAL) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_MonitoredSAL) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/cbus/readwrite/model/ParameterValue.go b/plc4go/protocols/cbus/readwrite/model/ParameterValue.go
index dba765ffb7..2a5841ac78 100644
--- a/plc4go/protocols/cbus/readwrite/model/ParameterValue.go
+++ b/plc4go/protocols/cbus/readwrite/model/ParameterValue.go
@@ -436,6 +436,10 @@ func (m *_ParameterValue) getLengthInBits(ctx context.Context) uint16 {
 	return lengthInBits
 }
 
+func (m *_ParameterValue) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_ParameterValue) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/cbus/readwrite/model/Reply.go b/plc4go/protocols/cbus/readwrite/model/Reply.go
index 0418b3d229..e94d9cf5c7 100644
--- a/plc4go/protocols/cbus/readwrite/model/Reply.go
+++ b/plc4go/protocols/cbus/readwrite/model/Reply.go
@@ -297,6 +297,10 @@ func (m *_Reply) getLengthInBits(ctx context.Context) uint16 {
 	return lengthInBits
 }
 
+func (m *_Reply) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_Reply) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/cbus/readwrite/model/ReplyOrConfirmation.go b/plc4go/protocols/cbus/readwrite/model/ReplyOrConfirmation.go
index 53b4b997a0..f91204e05b 100644
--- a/plc4go/protocols/cbus/readwrite/model/ReplyOrConfirmation.go
+++ b/plc4go/protocols/cbus/readwrite/model/ReplyOrConfirmation.go
@@ -319,6 +319,10 @@ func (m *_ReplyOrConfirmation) getLengthInBits(ctx context.Context) uint16 {
 	return lengthInBits
 }
 
+func (m *_ReplyOrConfirmation) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_ReplyOrConfirmation) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/cbus/readwrite/model/Request.go b/plc4go/protocols/cbus/readwrite/model/Request.go
index 52465e73df..d572928b7d 100644
--- a/plc4go/protocols/cbus/readwrite/model/Request.go
+++ b/plc4go/protocols/cbus/readwrite/model/Request.go
@@ -495,6 +495,10 @@ func (m *_Request) getLengthInBits(ctx context.Context) uint16 {
 	return lengthInBits
 }
 
+func (m *_Request) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_Request) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/cbus/readwrite/model/SALData.go b/plc4go/protocols/cbus/readwrite/model/SALData.go
index 8b09aa9a25..0957e04f14 100644
--- a/plc4go/protocols/cbus/readwrite/model/SALData.go
+++ b/plc4go/protocols/cbus/readwrite/model/SALData.go
@@ -729,6 +729,10 @@ func (m *_SALData) getLengthInBits(ctx context.Context) uint16 {
 	return lengthInBits
 }
 
+func (m *_SALData) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_SALData) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/cbus/readwrite/model/SecurityData.go b/plc4go/protocols/cbus/readwrite/model/SecurityData.go
index db3f4f412a..4b4af40dbd 100644
--- a/plc4go/protocols/cbus/readwrite/model/SecurityData.go
+++ b/plc4go/protocols/cbus/readwrite/model/SecurityData.go
@@ -1276,6 +1276,10 @@ func (m *_SecurityData) getLengthInBits(ctx context.Context) uint16 {
 	return lengthInBits
 }
 
+func (m *_SecurityData) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_SecurityData) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/cbus/readwrite/model/StatusRequest.go b/plc4go/protocols/cbus/readwrite/model/StatusRequest.go
index 5f3037f8f5..6b66235a60 100644
--- a/plc4go/protocols/cbus/readwrite/model/StatusRequest.go
+++ b/plc4go/protocols/cbus/readwrite/model/StatusRequest.go
@@ -289,6 +289,10 @@ func (m *_StatusRequest) getLengthInBits(ctx context.Context) uint16 {
 	return lengthInBits
 }
 
+func (m *_StatusRequest) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_StatusRequest) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/cbus/readwrite/model/TelephonyData.go b/plc4go/protocols/cbus/readwrite/model/TelephonyData.go
index e125919c19..6fa2a11694 100644
--- a/plc4go/protocols/cbus/readwrite/model/TelephonyData.go
+++ b/plc4go/protocols/cbus/readwrite/model/TelephonyData.go
@@ -520,6 +520,10 @@ func (m *_TelephonyData) getLengthInBits(ctx context.Context) uint16 {
 	return lengthInBits
 }
 
+func (m *_TelephonyData) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_TelephonyData) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/cbus/readwrite/model/TriggerControlData.go b/plc4go/protocols/cbus/readwrite/model/TriggerControlData.go
index ad53d0880e..cf73c1bffb 100644
--- a/plc4go/protocols/cbus/readwrite/model/TriggerControlData.go
+++ b/plc4go/protocols/cbus/readwrite/model/TriggerControlData.go
@@ -382,6 +382,10 @@ func (m *_TriggerControlData) getLengthInBits(ctx context.Context) uint16 {
 	return lengthInBits
 }
 
+func (m *_TriggerControlData) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_TriggerControlData) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/df1/readwrite/model/DF1Command.go b/plc4go/protocols/df1/readwrite/model/DF1Command.go
index 22c48c3eaa..66e3cea389 100644
--- a/plc4go/protocols/df1/readwrite/model/DF1Command.go
+++ b/plc4go/protocols/df1/readwrite/model/DF1Command.go
@@ -290,6 +290,10 @@ func (m *_DF1Command) getLengthInBits(ctx context.Context) uint16 {
 	return lengthInBits
 }
 
+func (m *_DF1Command) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_DF1Command) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/df1/readwrite/model/DF1Symbol.go b/plc4go/protocols/df1/readwrite/model/DF1Symbol.go
index 733c71ac8b..f2a7209f22 100644
--- a/plc4go/protocols/df1/readwrite/model/DF1Symbol.go
+++ b/plc4go/protocols/df1/readwrite/model/DF1Symbol.go
@@ -289,6 +289,10 @@ func (m *_DF1Symbol) getLengthInBits(ctx context.Context) uint16 {
 	return lengthInBits
 }
 
+func (m *_DF1Symbol) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_DF1Symbol) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/eip/readwrite/model/CipService.go b/plc4go/protocols/eip/readwrite/model/CipService.go
index 9ad37c789c..b2e1fa7530 100644
--- a/plc4go/protocols/eip/readwrite/model/CipService.go
+++ b/plc4go/protocols/eip/readwrite/model/CipService.go
@@ -740,6 +740,10 @@ func (m *_CipService) getLengthInBits(ctx context.Context) uint16 {
 	return lengthInBits
 }
 
+func (m *_CipService) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_CipService) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/eip/readwrite/model/CommandSpecificDataItem.go b/plc4go/protocols/eip/readwrite/model/CommandSpecificDataItem.go
index 696d1e66ca..a0d0c9caa1 100644
--- a/plc4go/protocols/eip/readwrite/model/CommandSpecificDataItem.go
+++ b/plc4go/protocols/eip/readwrite/model/CommandSpecificDataItem.go
@@ -246,6 +246,10 @@ func (m *_CommandSpecificDataItem) getLengthInBits(ctx context.Context) uint16 {
 	return lengthInBits
 }
 
+func (m *_CommandSpecificDataItem) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_CommandSpecificDataItem) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/eip/readwrite/model/DataSegmentType.go b/plc4go/protocols/eip/readwrite/model/DataSegmentType.go
index 83c19ac6ec..c001cfa4a9 100644
--- a/plc4go/protocols/eip/readwrite/model/DataSegmentType.go
+++ b/plc4go/protocols/eip/readwrite/model/DataSegmentType.go
@@ -225,6 +225,10 @@ func (m *_DataSegmentType) getLengthInBits(ctx context.Context) uint16 {
 	return lengthInBits
 }
 
+func (m *_DataSegmentType) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_DataSegmentType) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/eip/readwrite/model/EipPacket.go b/plc4go/protocols/eip/readwrite/model/EipPacket.go
index 73a7a26455..b607cd6b79 100644
--- a/plc4go/protocols/eip/readwrite/model/EipPacket.go
+++ b/plc4go/protocols/eip/readwrite/model/EipPacket.go
@@ -564,6 +564,10 @@ func (m *_EipPacket) getLengthInBits(ctx context.Context) uint16 {
 	return lengthInBits
 }
 
+func (m *_EipPacket) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_EipPacket) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/eip/readwrite/model/LogicalSegmentType.go b/plc4go/protocols/eip/readwrite/model/LogicalSegmentType.go
index 7bd4cf06ce..919f3e1e83 100644
--- a/plc4go/protocols/eip/readwrite/model/LogicalSegmentType.go
+++ b/plc4go/protocols/eip/readwrite/model/LogicalSegmentType.go
@@ -267,6 +267,10 @@ func (m *_LogicalSegmentType) getLengthInBits(ctx context.Context) uint16 {
 	return lengthInBits
 }
 
+func (m *_LogicalSegmentType) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_LogicalSegmentType) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/eip/readwrite/model/PathSegment.go b/plc4go/protocols/eip/readwrite/model/PathSegment.go
index 7417ea2244..7c5ffbd3a3 100644
--- a/plc4go/protocols/eip/readwrite/model/PathSegment.go
+++ b/plc4go/protocols/eip/readwrite/model/PathSegment.go
@@ -267,6 +267,10 @@ func (m *_PathSegment) getLengthInBits(ctx context.Context) uint16 {
 	return lengthInBits
 }
 
+func (m *_PathSegment) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_PathSegment) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/eip/readwrite/model/PortSegmentType.go b/plc4go/protocols/eip/readwrite/model/PortSegmentType.go
index df3b9823ba..4303f6f6c3 100644
--- a/plc4go/protocols/eip/readwrite/model/PortSegmentType.go
+++ b/plc4go/protocols/eip/readwrite/model/PortSegmentType.go
@@ -246,6 +246,10 @@ func (m *_PortSegmentType) getLengthInBits(ctx context.Context) uint16 {
 	return lengthInBits
 }
 
+func (m *_PortSegmentType) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_PortSegmentType) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/eip/readwrite/model/TypeId.go b/plc4go/protocols/eip/readwrite/model/TypeId.go
index 8c5a76883c..56fd397709 100644
--- a/plc4go/protocols/eip/readwrite/model/TypeId.go
+++ b/plc4go/protocols/eip/readwrite/model/TypeId.go
@@ -309,6 +309,10 @@ func (m *_TypeId) getLengthInBits(ctx context.Context) uint16 {
 	return lengthInBits
 }
 
+func (m *_TypeId) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_TypeId) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/firmata/readwrite/model/FirmataCommand.go b/plc4go/protocols/firmata/readwrite/model/FirmataCommand.go
index 2249f80e0f..6e575c013f 100644
--- a/plc4go/protocols/firmata/readwrite/model/FirmataCommand.go
+++ b/plc4go/protocols/firmata/readwrite/model/FirmataCommand.go
@@ -314,6 +314,10 @@ func (m *_FirmataCommand) getLengthInBits(ctx context.Context) uint16 {
 	return lengthInBits
 }
 
+func (m *_FirmataCommand) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_FirmataCommand) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/firmata/readwrite/model/FirmataMessage.go b/plc4go/protocols/firmata/readwrite/model/FirmataMessage.go
index 578817597f..06e9ae42b5 100644
--- a/plc4go/protocols/firmata/readwrite/model/FirmataMessage.go
+++ b/plc4go/protocols/firmata/readwrite/model/FirmataMessage.go
@@ -316,6 +316,10 @@ func (m *_FirmataMessage) getLengthInBits(ctx context.Context) uint16 {
 	return lengthInBits
 }
 
+func (m *_FirmataMessage) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_FirmataMessage) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/firmata/readwrite/model/SysexCommand.go b/plc4go/protocols/firmata/readwrite/model/SysexCommand.go
index 6bcdb063ba..5ffe40d26d 100644
--- a/plc4go/protocols/firmata/readwrite/model/SysexCommand.go
+++ b/plc4go/protocols/firmata/readwrite/model/SysexCommand.go
@@ -521,6 +521,10 @@ func (m *_SysexCommand) getLengthInBits(ctx context.Context) uint16 {
 	return lengthInBits
 }
 
+func (m *_SysexCommand) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_SysexCommand) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/knxnetip/readwrite/model/Apdu.go b/plc4go/protocols/knxnetip/readwrite/model/Apdu.go
index d5e4e86050..2b3a1bd442 100644
--- a/plc4go/protocols/knxnetip/readwrite/model/Apdu.go
+++ b/plc4go/protocols/knxnetip/readwrite/model/Apdu.go
@@ -295,6 +295,10 @@ func (m *_Apdu) getLengthInBits(ctx context.Context) uint16 {
 	return lengthInBits
 }
 
+func (m *_Apdu) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_Apdu) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/knxnetip/readwrite/model/ApduControl.go b/plc4go/protocols/knxnetip/readwrite/model/ApduControl.go
index 41cfdd99e3..ab191508cf 100644
--- a/plc4go/protocols/knxnetip/readwrite/model/ApduControl.go
+++ b/plc4go/protocols/knxnetip/readwrite/model/ApduControl.go
@@ -288,6 +288,10 @@ func (m *_ApduControl) getLengthInBits(ctx context.Context) uint16 {
 	return lengthInBits
 }
 
+func (m *_ApduControl) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_ApduControl) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/knxnetip/readwrite/model/ApduData.go b/plc4go/protocols/knxnetip/readwrite/model/ApduData.go
index 07cbe76560..9ca4daec1d 100644
--- a/plc4go/protocols/knxnetip/readwrite/model/ApduData.go
+++ b/plc4go/protocols/knxnetip/readwrite/model/ApduData.go
@@ -545,6 +545,10 @@ func (m *_ApduData) getLengthInBits(ctx context.Context) uint16 {
 	return lengthInBits
 }
 
+func (m *_ApduData) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_ApduData) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/knxnetip/readwrite/model/ApduDataExt.go b/plc4go/protocols/knxnetip/readwrite/model/ApduDataExt.go
index b2f25dcd01..25bde10643 100644
--- a/plc4go/protocols/knxnetip/readwrite/model/ApduDataExt.go
+++ b/plc4go/protocols/knxnetip/readwrite/model/ApduDataExt.go
@@ -1070,6 +1070,10 @@ func (m *_ApduDataExt) getLengthInBits(ctx context.Context) uint16 {
 	return lengthInBits
 }
 
+func (m *_ApduDataExt) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_ApduDataExt) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/knxnetip/readwrite/model/CEMI.go b/plc4go/protocols/knxnetip/readwrite/model/CEMI.go
index 367960e722..c97b7bec6d 100644
--- a/plc4go/protocols/knxnetip/readwrite/model/CEMI.go
+++ b/plc4go/protocols/knxnetip/readwrite/model/CEMI.go
@@ -692,6 +692,10 @@ func (m *_CEMI) getLengthInBits(ctx context.Context) uint16 {
 	return lengthInBits
 }
 
+func (m *_CEMI) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_CEMI) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/knxnetip/readwrite/model/CEMIAdditionalInformation.go b/plc4go/protocols/knxnetip/readwrite/model/CEMIAdditionalInformation.go
index d2aaa985c4..f6fc4ed8b4 100644
--- a/plc4go/protocols/knxnetip/readwrite/model/CEMIAdditionalInformation.go
+++ b/plc4go/protocols/knxnetip/readwrite/model/CEMIAdditionalInformation.go
@@ -246,6 +246,10 @@ func (m *_CEMIAdditionalInformation) getLengthInBits(ctx context.Context) uint16
 	return lengthInBits
 }
 
+func (m *_CEMIAdditionalInformation) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_CEMIAdditionalInformation) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/knxnetip/readwrite/model/ComObjectTable.go b/plc4go/protocols/knxnetip/readwrite/model/ComObjectTable.go
index d92747f7ba..1e7f4384d1 100644
--- a/plc4go/protocols/knxnetip/readwrite/model/ComObjectTable.go
+++ b/plc4go/protocols/knxnetip/readwrite/model/ComObjectTable.go
@@ -263,6 +263,10 @@ func (m *_ComObjectTable) getLengthInBits(ctx context.Context) uint16 {
 	return lengthInBits
 }
 
+func (m *_ComObjectTable) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_ComObjectTable) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/knxnetip/readwrite/model/ConnectionRequestInformation.go b/plc4go/protocols/knxnetip/readwrite/model/ConnectionRequestInformation.go
index 4e61b564b9..a9ce8312c5 100644
--- a/plc4go/protocols/knxnetip/readwrite/model/ConnectionRequestInformation.go
+++ b/plc4go/protocols/knxnetip/readwrite/model/ConnectionRequestInformation.go
@@ -249,6 +249,10 @@ func (m *_ConnectionRequestInformation) getLengthInBits(ctx context.Context) uin
 	return lengthInBits
 }
 
+func (m *_ConnectionRequestInformation) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_ConnectionRequestInformation) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/knxnetip/readwrite/model/ConnectionResponseDataBlock.go b/plc4go/protocols/knxnetip/readwrite/model/ConnectionResponseDataBlock.go
index f580dbcedc..41b8c022fa 100644
--- a/plc4go/protocols/knxnetip/readwrite/model/ConnectionResponseDataBlock.go
+++ b/plc4go/protocols/knxnetip/readwrite/model/ConnectionResponseDataBlock.go
@@ -249,6 +249,10 @@ func (m *_ConnectionResponseDataBlock) getLengthInBits(ctx context.Context) uint
 	return lengthInBits
 }
 
+func (m *_ConnectionResponseDataBlock) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_ConnectionResponseDataBlock) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/knxnetip/readwrite/model/KnxGroupAddress.go b/plc4go/protocols/knxnetip/readwrite/model/KnxGroupAddress.go
index 93fc916550..21ba3c4e2b 100644
--- a/plc4go/protocols/knxnetip/readwrite/model/KnxGroupAddress.go
+++ b/plc4go/protocols/knxnetip/readwrite/model/KnxGroupAddress.go
@@ -263,6 +263,10 @@ func (m *_KnxGroupAddress) getLengthInBits(ctx context.Context) uint16 {
 	return lengthInBits
 }
 
+func (m *_KnxGroupAddress) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_KnxGroupAddress) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/knxnetip/readwrite/model/KnxManufacturer.go b/plc4go/protocols/knxnetip/readwrite/model/KnxManufacturer.go
index 92fa8e6aad..8f383b4905 100644
--- a/plc4go/protocols/knxnetip/readwrite/model/KnxManufacturer.go
+++ b/plc4go/protocols/knxnetip/readwrite/model/KnxManufacturer.go
@@ -130,7 +130,7 @@ const (
 	KnxManufacturer_M_INNOTEAM                                           KnxManufacturer = 84
 	KnxManufacturer_M_ISE_GMBH                                           KnxManufacturer = 85
 	KnxManufacturer_M_TEAM_FOR_TRONICS                                   KnxManufacturer = 86
-	KnxManufacturer_M_CIAT                                               KnxManufacturer = 87
+	KnxManufacturer_M_CARRIER_SAS                                        KnxManufacturer = 87
 	KnxManufacturer_M_REMEHA_BV                                          KnxManufacturer = 88
 	KnxManufacturer_M_ESYLUX                                             KnxManufacturer = 89
 	KnxManufacturer_M_BASALTE                                            KnxManufacturer = 90
@@ -735,8 +735,10 @@ const (
 	KnxManufacturer_M_XIAMEN_LEELEN_TECHNOLOGY_CO__LTD_                  KnxManufacturer = 689
 	KnxManufacturer_M_LEDNX                                              KnxManufacturer = 690
 	KnxManufacturer_M_EBELONG                                            KnxManufacturer = 691
-	KnxManufacturer_M_ABB___RESERVED                                     KnxManufacturer = 692
-	KnxManufacturer_M_BUSCH_JAEGER_ELEKTRO___RESERVED                    KnxManufacturer = 693
+	KnxManufacturer_M_ASTRA_LED_AG                                       KnxManufacturer = 692
+	KnxManufacturer_M_WONDERFUL_HI_TECH_CO___LTD_                        KnxManufacturer = 693
+	KnxManufacturer_M_ABB___RESERVED                                     KnxManufacturer = 694
+	KnxManufacturer_M_BUSCH_JAEGER_ELEKTRO___RESERVED                    KnxManufacturer = 695
 )
 
 var KnxManufacturerValues []KnxManufacturer
@@ -831,7 +833,7 @@ func init() {
 		KnxManufacturer_M_INNOTEAM,
 		KnxManufacturer_M_ISE_GMBH,
 		KnxManufacturer_M_TEAM_FOR_TRONICS,
-		KnxManufacturer_M_CIAT,
+		KnxManufacturer_M_CARRIER_SAS,
 		KnxManufacturer_M_REMEHA_BV,
 		KnxManufacturer_M_ESYLUX,
 		KnxManufacturer_M_BASALTE,
@@ -1436,6 +1438,8 @@ func init() {
 		KnxManufacturer_M_XIAMEN_LEELEN_TECHNOLOGY_CO__LTD_,
 		KnxManufacturer_M_LEDNX,
 		KnxManufacturer_M_EBELONG,
+		KnxManufacturer_M_ASTRA_LED_AG,
+		KnxManufacturer_M_WONDERFUL_HI_TECH_CO___LTD_,
 		KnxManufacturer_M_ABB___RESERVED,
 		KnxManufacturer_M_BUSCH_JAEGER_ELEKTRO___RESERVED,
 	}
@@ -4081,10 +4085,18 @@ func (e KnxManufacturer) Number() uint16 {
 		}
 	case 692:
 		{ /* '692' */
-			return 43954
+			return 750
 		}
 	case 693:
 		{ /* '693' */
+			return 751
+		}
+	case 694:
+		{ /* '694' */
+			return 43954
+		}
+	case 695:
+		{ /* '695' */
 			return 43959
 		}
 	case 7:
@@ -6875,10 +6887,18 @@ func (e KnxManufacturer) Name() string {
 		}
 	case 692:
 		{ /* '692' */
-			return "ABB - reserved"
+			return "Astra-LED AG"
 		}
 	case 693:
 		{ /* '693' */
+			return "Wonderful Hi-Tech Co., Ltd."
+		}
+	case 694:
+		{ /* '694' */
+			return "ABB - reserved"
+		}
+	case 695:
+		{ /* '695' */
 			return "Busch-Jaeger Elektro - reserved"
 		}
 	case 7:
@@ -6959,7 +6979,7 @@ func (e KnxManufacturer) Name() string {
 		}
 	case 87:
 		{ /* '87' */
-			return "CIAT"
+			return "CARRIER SAS"
 		}
 	case 88:
 		{ /* '88' */
@@ -8349,8 +8369,12 @@ func KnxManufacturerByValue(value uint16) (enum KnxManufacturer, ok bool) {
 	case 691:
 		return KnxManufacturer_M_EBELONG, true
 	case 692:
-		return KnxManufacturer_M_ABB___RESERVED, true
+		return KnxManufacturer_M_ASTRA_LED_AG, true
 	case 693:
+		return KnxManufacturer_M_WONDERFUL_HI_TECH_CO___LTD_, true
+	case 694:
+		return KnxManufacturer_M_ABB___RESERVED, true
+	case 695:
 		return KnxManufacturer_M_BUSCH_JAEGER_ELEKTRO___RESERVED, true
 	case 7:
 		return KnxManufacturer_M_GIRA_GIERSIEPEN, true
@@ -8391,7 +8415,7 @@ func KnxManufacturerByValue(value uint16) (enum KnxManufacturer, ok bool) {
 	case 86:
 		return KnxManufacturer_M_TEAM_FOR_TRONICS, true
 	case 87:
-		return KnxManufacturer_M_CIAT, true
+		return KnxManufacturer_M_CARRIER_SAS, true
 	case 88:
 		return KnxManufacturer_M_REMEHA_BV, true
 	case 89:
@@ -9742,6 +9766,10 @@ func KnxManufacturerByName(value string) (enum KnxManufacturer, ok bool) {
 		return KnxManufacturer_M_LEDNX, true
 	case "M_EBELONG":
 		return KnxManufacturer_M_EBELONG, true
+	case "M_ASTRA_LED_AG":
+		return KnxManufacturer_M_ASTRA_LED_AG, true
+	case "M_WONDERFUL_HI_TECH_CO___LTD_":
+		return KnxManufacturer_M_WONDERFUL_HI_TECH_CO___LTD_, true
 	case "M_ABB___RESERVED":
 		return KnxManufacturer_M_ABB___RESERVED, true
 	case "M_BUSCH_JAEGER_ELEKTRO___RESERVED":
@@ -9784,8 +9812,8 @@ func KnxManufacturerByName(value string) (enum KnxManufacturer, ok bool) {
 		return KnxManufacturer_M_ISE_GMBH, true
 	case "M_TEAM_FOR_TRONICS":
 		return KnxManufacturer_M_TEAM_FOR_TRONICS, true
-	case "M_CIAT":
-		return KnxManufacturer_M_CIAT, true
+	case "M_CARRIER_SAS":
+		return KnxManufacturer_M_CARRIER_SAS, true
 	case "M_REMEHA_BV":
 		return KnxManufacturer_M_REMEHA_BV, true
 	case "M_ESYLUX":
@@ -11208,6 +11236,10 @@ func (e KnxManufacturer) PLC4XEnumName() string {
 		return "M_LEDNX"
 	case KnxManufacturer_M_EBELONG:
 		return "M_EBELONG"
+	case KnxManufacturer_M_ASTRA_LED_AG:
+		return "M_ASTRA_LED_AG"
+	case KnxManufacturer_M_WONDERFUL_HI_TECH_CO___LTD_:
+		return "M_WONDERFUL_HI_TECH_CO___LTD_"
 	case KnxManufacturer_M_ABB___RESERVED:
 		return "M_ABB___RESERVED"
 	case KnxManufacturer_M_BUSCH_JAEGER_ELEKTRO___RESERVED:
@@ -11250,8 +11282,8 @@ func (e KnxManufacturer) PLC4XEnumName() string {
 		return "M_ISE_GMBH"
 	case KnxManufacturer_M_TEAM_FOR_TRONICS:
 		return "M_TEAM_FOR_TRONICS"
-	case KnxManufacturer_M_CIAT:
-		return "M_CIAT"
+	case KnxManufacturer_M_CARRIER_SAS:
+		return "M_CARRIER_SAS"
 	case KnxManufacturer_M_REMEHA_BV:
 		return "M_REMEHA_BV"
 	case KnxManufacturer_M_ESYLUX:
diff --git a/plc4go/protocols/knxnetip/readwrite/model/KnxNetIpMessage.go b/plc4go/protocols/knxnetip/readwrite/model/KnxNetIpMessage.go
index 43bdcf1a0c..97ae2e464e 100644
--- a/plc4go/protocols/knxnetip/readwrite/model/KnxNetIpMessage.go
+++ b/plc4go/protocols/knxnetip/readwrite/model/KnxNetIpMessage.go
@@ -568,6 +568,10 @@ func (m *_KnxNetIpMessage) getLengthInBits(ctx context.Context) uint16 {
 	return lengthInBits
 }
 
+func (m *_KnxNetIpMessage) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_KnxNetIpMessage) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/knxnetip/readwrite/model/LDataFrame.go b/plc4go/protocols/knxnetip/readwrite/model/LDataFrame.go
index d41d7fb339..0740ea2b15 100644
--- a/plc4go/protocols/knxnetip/readwrite/model/LDataFrame.go
+++ b/plc4go/protocols/knxnetip/readwrite/model/LDataFrame.go
@@ -366,6 +366,10 @@ func (m *_LDataFrame) getLengthInBits(ctx context.Context) uint16 {
 	return lengthInBits
 }
 
+func (m *_LDataFrame) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_LDataFrame) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/knxnetip/readwrite/model/ServiceId.go b/plc4go/protocols/knxnetip/readwrite/model/ServiceId.go
index ce1f2ec81c..6cadc10f8a 100644
--- a/plc4go/protocols/knxnetip/readwrite/model/ServiceId.go
+++ b/plc4go/protocols/knxnetip/readwrite/model/ServiceId.go
@@ -351,6 +351,10 @@ func (m *_ServiceId) getLengthInBits(ctx context.Context) uint16 {
 	return lengthInBits
 }
 
+func (m *_ServiceId) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_ServiceId) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/modbus/readwrite/model/ModbusADU.go b/plc4go/protocols/modbus/readwrite/model/ModbusADU.go
index 2d6b25f56a..1bfcadd8d8 100644
--- a/plc4go/protocols/modbus/readwrite/model/ModbusADU.go
+++ b/plc4go/protocols/modbus/readwrite/model/ModbusADU.go
@@ -269,6 +269,10 @@ func (m *_ModbusADU) getLengthInBits(ctx context.Context) uint16 {
 	return lengthInBits
 }
 
+func (m *_ModbusADU) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_ModbusADU) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/modbus/readwrite/model/ModbusPDU.go b/plc4go/protocols/modbus/readwrite/model/ModbusPDU.go
index d8840ce577..b0bac06948 100644
--- a/plc4go/protocols/modbus/readwrite/model/ModbusPDU.go
+++ b/plc4go/protocols/modbus/readwrite/model/ModbusPDU.go
@@ -1029,6 +1029,10 @@ func (m *_ModbusPDU) getLengthInBits(ctx context.Context) uint16 {
 	return lengthInBits
 }
 
+func (m *_ModbusPDU) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_ModbusPDU) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/opcua/readwrite/model/ExtensionObjectDefinition.go b/plc4go/protocols/opcua/readwrite/model/ExtensionObjectDefinition.go
index 42fd29c639..70d7bf4b9c 100644
--- a/plc4go/protocols/opcua/readwrite/model/ExtensionObjectDefinition.go
+++ b/plc4go/protocols/opcua/readwrite/model/ExtensionObjectDefinition.go
@@ -5072,6 +5072,10 @@ func (m *_ExtensionObjectDefinition) getLengthInBits(ctx context.Context) uint16
 	return lengthInBits
 }
 
+func (m *_ExtensionObjectDefinition) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_ExtensionObjectDefinition) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/opcua/readwrite/model/MessagePDU.go b/plc4go/protocols/opcua/readwrite/model/MessagePDU.go
index b3ca4aad8e..4d146550bf 100644
--- a/plc4go/protocols/opcua/readwrite/model/MessagePDU.go
+++ b/plc4go/protocols/opcua/readwrite/model/MessagePDU.go
@@ -404,6 +404,10 @@ func (m *_MessagePDU) getLengthInBits(ctx context.Context) uint16 {
 	return lengthInBits
 }
 
+func (m *_MessagePDU) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_MessagePDU) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/opcua/readwrite/model/NodeIdTypeDefinition.go b/plc4go/protocols/opcua/readwrite/model/NodeIdTypeDefinition.go
index 8958237c50..7984861244 100644
--- a/plc4go/protocols/opcua/readwrite/model/NodeIdTypeDefinition.go
+++ b/plc4go/protocols/opcua/readwrite/model/NodeIdTypeDefinition.go
@@ -348,6 +348,10 @@ func (m *_NodeIdTypeDefinition) getLengthInBits(ctx context.Context) uint16 {
 	return lengthInBits
 }
 
+func (m *_NodeIdTypeDefinition) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_NodeIdTypeDefinition) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/opcua/readwrite/model/OpenChannelMessage.go b/plc4go/protocols/opcua/readwrite/model/OpenChannelMessage.go
index faf89033f9..546f93bcdb 100644
--- a/plc4go/protocols/opcua/readwrite/model/OpenChannelMessage.go
+++ b/plc4go/protocols/opcua/readwrite/model/OpenChannelMessage.go
@@ -242,6 +242,10 @@ func (m *_OpenChannelMessage) getLengthInBits(ctx context.Context) uint16 {
 	return lengthInBits
 }
 
+func (m *_OpenChannelMessage) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_OpenChannelMessage) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/opcua/readwrite/model/Payload.go b/plc4go/protocols/opcua/readwrite/model/Payload.go
index e738012482..9626eeec3c 100644
--- a/plc4go/protocols/opcua/readwrite/model/Payload.go
+++ b/plc4go/protocols/opcua/readwrite/model/Payload.go
@@ -300,6 +300,10 @@ func (m *_Payload) getLengthInBits(ctx context.Context) uint16 {
 	return lengthInBits
 }
 
+func (m *_Payload) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_Payload) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/opcua/readwrite/model/UserIdentityTokenDefinition.go b/plc4go/protocols/opcua/readwrite/model/UserIdentityTokenDefinition.go
index 112c512525..17d14aaa04 100644
--- a/plc4go/protocols/opcua/readwrite/model/UserIdentityTokenDefinition.go
+++ b/plc4go/protocols/opcua/readwrite/model/UserIdentityTokenDefinition.go
@@ -284,6 +284,10 @@ func (m *_UserIdentityTokenDefinition) getLengthInBits(ctx context.Context) uint
 	return lengthInBits
 }
 
+func (m *_UserIdentityTokenDefinition) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_UserIdentityTokenDefinition) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/opcua/readwrite/model/Variant.go b/plc4go/protocols/opcua/readwrite/model/Variant.go
index 0efb24d2c5..33e528f721 100644
--- a/plc4go/protocols/opcua/readwrite/model/Variant.go
+++ b/plc4go/protocols/opcua/readwrite/model/Variant.go
@@ -834,6 +834,10 @@ func (m *_Variant) getLengthInBits(ctx context.Context) uint16 {
 	return lengthInBits
 }
 
+func (m *_Variant) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_Variant) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/s7/readwrite/model/COTPPacket.go b/plc4go/protocols/s7/readwrite/model/COTPPacket.go
index 84c06f27d4..f4c8cc8f02 100644
--- a/plc4go/protocols/s7/readwrite/model/COTPPacket.go
+++ b/plc4go/protocols/s7/readwrite/model/COTPPacket.go
@@ -403,6 +403,10 @@ func (m *_COTPPacket) getLengthInBits(ctx context.Context) uint16 {
 	return lengthInBits
 }
 
+func (m *_COTPPacket) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_COTPPacket) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/s7/readwrite/model/COTPParameter.go b/plc4go/protocols/s7/readwrite/model/COTPParameter.go
index cb2986d34c..46944c7d3c 100644
--- a/plc4go/protocols/s7/readwrite/model/COTPParameter.go
+++ b/plc4go/protocols/s7/readwrite/model/COTPParameter.go
@@ -317,6 +317,10 @@ func (m *_COTPParameter) getLengthInBits(ctx context.Context) uint16 {
 	return lengthInBits
 }
 
+func (m *_COTPParameter) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_COTPParameter) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/s7/readwrite/model/CycServiceItemType.go b/plc4go/protocols/s7/readwrite/model/CycServiceItemType.go
index dc1328301e..4054fd42cb 100644
--- a/plc4go/protocols/s7/readwrite/model/CycServiceItemType.go
+++ b/plc4go/protocols/s7/readwrite/model/CycServiceItemType.go
@@ -307,6 +307,10 @@ func (m *_CycServiceItemType) getLengthInBits(ctx context.Context) uint16 {
 	return lengthInBits
 }
 
+func (m *_CycServiceItemType) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_CycServiceItemType) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/s7/readwrite/model/S7Address.go b/plc4go/protocols/s7/readwrite/model/S7Address.go
index 1b3073ffa9..e05f108bc3 100644
--- a/plc4go/protocols/s7/readwrite/model/S7Address.go
+++ b/plc4go/protocols/s7/readwrite/model/S7Address.go
@@ -225,6 +225,10 @@ func (m *_S7Address) getLengthInBits(ctx context.Context) uint16 {
 	return lengthInBits
 }
 
+func (m *_S7Address) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_S7Address) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/s7/readwrite/model/S7DataAlarmMessage.go b/plc4go/protocols/s7/readwrite/model/S7DataAlarmMessage.go
index eed0881c7c..7bf8834ba2 100644
--- a/plc4go/protocols/s7/readwrite/model/S7DataAlarmMessage.go
+++ b/plc4go/protocols/s7/readwrite/model/S7DataAlarmMessage.go
@@ -272,6 +272,10 @@ func (m *_S7DataAlarmMessage) getLengthInBits(ctx context.Context) uint16 {
 	return lengthInBits
 }
 
+func (m *_S7DataAlarmMessage) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_S7DataAlarmMessage) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/s7/readwrite/model/S7Message.go b/plc4go/protocols/s7/readwrite/model/S7Message.go
index 85ab659384..5f23c3fd02 100644
--- a/plc4go/protocols/s7/readwrite/model/S7Message.go
+++ b/plc4go/protocols/s7/readwrite/model/S7Message.go
@@ -413,6 +413,10 @@ func (m *_S7Message) getLengthInBits(ctx context.Context) uint16 {
 	return lengthInBits
 }
 
+func (m *_S7Message) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_S7Message) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/s7/readwrite/model/S7Parameter.go b/plc4go/protocols/s7/readwrite/model/S7Parameter.go
index fb26868d5c..c42625a9ea 100644
--- a/plc4go/protocols/s7/readwrite/model/S7Parameter.go
+++ b/plc4go/protocols/s7/readwrite/model/S7Parameter.go
@@ -353,6 +353,10 @@ func (m *_S7Parameter) getLengthInBits(ctx context.Context) uint16 {
 	return lengthInBits
 }
 
+func (m *_S7Parameter) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_S7Parameter) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/s7/readwrite/model/S7ParameterUserDataItem.go b/plc4go/protocols/s7/readwrite/model/S7ParameterUserDataItem.go
index c812ca3186..dbc87f1859 100644
--- a/plc4go/protocols/s7/readwrite/model/S7ParameterUserDataItem.go
+++ b/plc4go/protocols/s7/readwrite/model/S7ParameterUserDataItem.go
@@ -225,6 +225,10 @@ func (m *_S7ParameterUserDataItem) getLengthInBits(ctx context.Context) uint16 {
 	return lengthInBits
 }
 
+func (m *_S7ParameterUserDataItem) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_S7ParameterUserDataItem) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/s7/readwrite/model/S7Payload.go b/plc4go/protocols/s7/readwrite/model/S7Payload.go
index bfb79e6eaa..d31f705341 100644
--- a/plc4go/protocols/s7/readwrite/model/S7Payload.go
+++ b/plc4go/protocols/s7/readwrite/model/S7Payload.go
@@ -291,6 +291,10 @@ func (m *_S7Payload) getLengthInBits(ctx context.Context) uint16 {
 	return lengthInBits
 }
 
+func (m *_S7Payload) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_S7Payload) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/s7/readwrite/model/S7PayloadUserDataItem.go b/plc4go/protocols/s7/readwrite/model/S7PayloadUserDataItem.go
index d2b56fabe7..6294b64c87 100644
--- a/plc4go/protocols/s7/readwrite/model/S7PayloadUserDataItem.go
+++ b/plc4go/protocols/s7/readwrite/model/S7PayloadUserDataItem.go
@@ -983,6 +983,10 @@ func (m *_S7PayloadUserDataItem) getLengthInBits(ctx context.Context) uint16 {
 	return lengthInBits
 }
 
+func (m *_S7PayloadUserDataItem) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_S7PayloadUserDataItem) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/s7/readwrite/model/S7VarRequestParameterItem.go b/plc4go/protocols/s7/readwrite/model/S7VarRequestParameterItem.go
index 0cc77c6e01..137f11f48c 100644
--- a/plc4go/protocols/s7/readwrite/model/S7VarRequestParameterItem.go
+++ b/plc4go/protocols/s7/readwrite/model/S7VarRequestParameterItem.go
@@ -225,6 +225,10 @@ func (m *_S7VarRequestParameterItem) getLengthInBits(ctx context.Context) uint16
 	return lengthInBits
 }
 
+func (m *_S7VarRequestParameterItem) GetLengthInBits(ctx context.Context) uint16 {
+	return m._SubType.GetLengthInBits(ctx)
+}
+
 func (m *_S7VarRequestParameterItem) GetLengthInBytes(ctx context.Context) uint16 {
 	return m._SubType.GetLengthInBits(ctx) / 8
 }
diff --git a/plc4go/protocols/s7/readwrite/model/TransportSize.go b/plc4go/protocols/s7/readwrite/model/TransportSize.go
index e0a872797f..e0714c8ea2 100644
--- a/plc4go/protocols/s7/readwrite/model/TransportSize.go
+++ b/plc4go/protocols/s7/readwrite/model/TransportSize.go
@@ -65,6 +65,7 @@ const (
 	TransportSize_UDINT          TransportSize = 0x0B
 	TransportSize_LINT           TransportSize = 0x0C
 	TransportSize_ULINT          TransportSize = 0x0D
+	TransportSize_COUNTER        TransportSize = 0x1C
 	TransportSize_REAL           TransportSize = 0x0E
 	TransportSize_LREAL          TransportSize = 0x0F
 	TransportSize_CHAR           TransportSize = 0x10
@@ -104,6 +105,7 @@ func init() {
 		TransportSize_UDINT,
 		TransportSize_LINT,
 		TransportSize_ULINT,
+		TransportSize_COUNTER,
 		TransportSize_REAL,
 		TransportSize_LREAL,
 		TransportSize_CHAR,
@@ -530,7 +532,7 @@ func (e TransportSize) Code() uint8 {
 		}
 	case 0x1C:
 		{ /* '0x1C' */
-			return 0x00
+			return 0x1C
 		}
 	case 0x1D:
 		{ /* '0x1D' */
@@ -676,7 +678,7 @@ func (e TransportSize) SizeInBytes() uint8 {
 		}
 	case 0x1C:
 		{ /* '0x1C' */
-			return 8
+			return 2
 		}
 	case 0x1D:
 		{ /* '0x1D' */
@@ -968,7 +970,7 @@ func (e TransportSize) Supported_S7_1200() bool {
 		}
 	case 0x1C:
 		{ /* '0x1C' */
-			return false
+			return true
 		}
 	case 0x1D:
 		{ /* '0x1D' */
@@ -1406,7 +1408,7 @@ func (e TransportSize) DataTransportSize() DataTransportSize {
 		}
 	case 0x1C:
 		{ /* '0x1C' */
-			return DataTransportSize_BYTE_WORD_DWORD
+			return DataTransportSize_OCTET_STRING
 		}
 	case 0x1D:
 		{ /* '0x1D' */
@@ -1552,7 +1554,7 @@ func (e TransportSize) DataProtocolId() string {
 		}
 	case 0x1C:
 		{ /* '0x1C' */
-			return "IEC61131_DATE_AND_TIME"
+			return "IEC61131_INT"
 		}
 	case 0x1D:
 		{ /* '0x1D' */
@@ -1788,7 +1790,7 @@ func TransportSizeByValue(value uint8) (enum TransportSize, ok bool) {
 	case 0x1B:
 		return TransportSize_LTOD, true
 	case 0x1C:
-		return TransportSize_DATE_AND_TIME, true
+		return TransportSize_COUNTER, true
 	case 0x1D:
 		return TransportSize_DT, true
 	case 0x1E:
@@ -1857,8 +1859,8 @@ func TransportSizeByName(value string) (enum TransportSize, ok bool) {
 		return TransportSize_LTIME_OF_DAY, true
 	case "LTOD":
 		return TransportSize_LTOD, true
-	case "DATE_AND_TIME":
-		return TransportSize_DATE_AND_TIME, true
+	case "COUNTER":
+		return TransportSize_COUNTER, true
 	case "DT":
 		return TransportSize_DT, true
 	case "DATE_AND_LTIME":
@@ -2026,8 +2028,8 @@ func (e TransportSize) PLC4XEnumName() string {
 		return "LTIME_OF_DAY"
 	case TransportSize_LTOD:
 		return "LTOD"
-	case TransportSize_DATE_AND_TIME:
-		return "DATE_AND_TIME"
+	case TransportSize_COUNTER:
+		return "COUNTER"
 	case TransportSize_DT:
 		return "DT"
 	case TransportSize_DATE_AND_LTIME:
diff --git a/protocols/knxnetip/src/main/generated/protocols/knxnetip/knx-master-data.mspec b/protocols/knxnetip/src/main/generated/protocols/knxnetip/knx-master-data.mspec
index d0647c1874..00c4fd6999 100644
--- a/protocols/knxnetip/src/main/generated/protocols/knxnetip/knx-master-data.mspec
+++ b/protocols/knxnetip/src/main/generated/protocols/knxnetip/knx-master-data.mspec
@@ -836,7 +836,7 @@
     ['84' M_INNOTEAM ['123', '"Innoteam"']]
     ['85' M_ISE_GMBH ['124', '"ise GmbH"']]
     ['86' M_TEAM_FOR_TRONICS ['125', '"TEAM FOR TRONICS"']]
-    ['87' M_CIAT ['126', '"CIAT"']]
+    ['87' M_CARRIER_SAS ['126', '"CARRIER SAS"']]
     ['88' M_REMEHA_BV ['127', '"Remeha BV"']]
     ['89' M_ESYLUX ['128', '"ESYLUX"']]
     ['90' M_BASALTE ['129', '"BASALTE"']]
@@ -1441,8 +1441,10 @@
     ['689' M_XIAMEN_LEELEN_TECHNOLOGY_CO__LTD_ ['747', '"Xiamen Leelen Technology Co.,Ltd."']]
     ['690' M_LEDNX ['748', '"LedNX"']]
     ['691' M_EBELONG ['749', '"ebelong"']]
-    ['692' M_ABB___RESERVED ['43954', '"ABB - reserved"']]
-    ['693' M_BUSCH_JAEGER_ELEKTRO___RESERVED ['43959', '"Busch-Jaeger Elektro - reserved"']]
+    ['692' M_ASTRA_LED_AG ['750', '"Astra-LED AG"']]
+    ['693' M_WONDERFUL_HI_TECH_CO___LTD_ ['751', '"Wonderful Hi-Tech Co., Ltd."']]
+    ['694' M_ABB___RESERVED ['43954', '"ABB - reserved"']]
+    ['695' M_BUSCH_JAEGER_ELEKTRO___RESERVED ['43959', '"Busch-Jaeger Elektro - reserved"']]
     
 ]