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 2023/04/13 17:42:18 UTC

[plc4x] branch develop updated (beb4bdc237 -> d8c332f044)

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

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


    from beb4bdc237 test(plc4go/cbus): add some tests for Discoverer
     new 33f08a3c9e feat(plc4go): update enum interfaces
     new d8c332f044 feat(plc4j): update vendors

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../resources/templates/go/enum-template.go.ftlh   |  1 +
 plc4go/go.mod                                      |  2 +-
 .../readwrite/model/AdsDiscoveryBlockType.go       |  1 +
 .../discovery/readwrite/model/AdsPortNumbers.go    |  1 +
 .../ads/discovery/readwrite/model/Operation.go     |  1 +
 .../ads/discovery/readwrite/model/Status.go        |  1 +
 .../protocols/ads/readwrite/model/AdsDataType.go   |  1 +
 .../protocols/ads/readwrite/model/AdsTransMode.go  |  1 +
 plc4go/protocols/ads/readwrite/model/CommandId.go  |  1 +
 .../ads/readwrite/model/DefaultAmsPorts.go         |  1 +
 .../protocols/ads/readwrite/model/PlcValueType.go  |  1 +
 .../ads/readwrite/model/ReservedIndexGroups.go     |  1 +
 plc4go/protocols/ads/readwrite/model/ReturnCode.go |  1 +
 .../protocols/bacnetip/readwrite/model/ApduType.go |  1 +
 .../bacnetip/readwrite/model/BACnetAbortReason.go  |  1 +
 .../BACnetAccessAuthenticationFactorDisable.go     |  1 +
 .../model/BACnetAccessCredentialDisable.go         |  1 +
 .../model/BACnetAccessCredentialDisableReason.go   |  1 +
 .../bacnetip/readwrite/model/BACnetAccessEvent.go  |  1 +
 .../readwrite/model/BACnetAccessPassbackMode.go    |  1 +
 .../model/BACnetAccessRuleLocationSpecifier.go     |  1 +
 .../model/BACnetAccessRuleTimeRangeSpecifier.go    |  1 +
 .../readwrite/model/BACnetAccessUserType.go        |  1 +
 .../model/BACnetAccessZoneOccupancyState.go        |  1 +
 .../BACnetAccumulatorRecordAccumulatorStatus.go    |  1 +
 .../bacnetip/readwrite/model/BACnetAction.go       |  1 +
 .../model/BACnetAuthenticationFactorType.go        |  1 +
 .../readwrite/model/BACnetAuthenticationStatus.go  |  1 +
 .../model/BACnetAuthorizationExemption.go          |  1 +
 .../readwrite/model/BACnetAuthorizationMode.go     |  1 +
 .../bacnetip/readwrite/model/BACnetBackupState.go  |  1 +
 .../readwrite/model/BACnetBinaryLightingPV.go      |  1 +
 .../bacnetip/readwrite/model/BACnetBinaryPV.go     |  1 +
 .../readwrite/model/BACnetCharacterEncoding.go     |  1 +
 .../model/BACnetConfirmedServiceChoice.go          |  1 +
 ...ceRequestConfirmedTextMessageMessagePriority.go |  1 +
 ...questDeviceCommunicationControlEnableDisable.go |  1 +
 ...estGetEnrollmentSummaryAcknowledgementFilter.go |  1 +
 ...eRequestGetEnrollmentSummaryEventStateFilter.go |  1 +
 ...ReinitializeDeviceReinitializedStateOfDevice.go |  1 +
 .../bacnetip/readwrite/model/BACnetDataType.go     |  1 +
 .../bacnetip/readwrite/model/BACnetDaysOfWeek.go   |  1 +
 .../bacnetip/readwrite/model/BACnetDeviceStatus.go |  1 +
 .../readwrite/model/BACnetDoorAlarmState.go        |  1 +
 .../readwrite/model/BACnetDoorSecuredStatus.go     |  1 +
 .../bacnetip/readwrite/model/BACnetDoorStatus.go   |  1 +
 .../bacnetip/readwrite/model/BACnetDoorValue.go    |  1 +
 .../readwrite/model/BACnetEngineeringUnits.go      |  1 +
 .../readwrite/model/BACnetEscalatorFault.go        |  1 +
 .../readwrite/model/BACnetEscalatorMode.go         |  1 +
 .../model/BACnetEscalatorOperationDirection.go     |  1 +
 .../bacnetip/readwrite/model/BACnetEventState.go   |  1 +
 .../readwrite/model/BACnetEventTransitionBits.go   |  1 +
 .../bacnetip/readwrite/model/BACnetEventType.go    |  1 +
 .../bacnetip/readwrite/model/BACnetFaultType.go    |  1 +
 .../readwrite/model/BACnetFileAccessMethod.go      |  1 +
 .../bacnetip/readwrite/model/BACnetIPMode.go       |  1 +
 .../readwrite/model/BACnetLifeSafetyMode.go        |  1 +
 .../readwrite/model/BACnetLifeSafetyOperation.go   |  1 +
 .../readwrite/model/BACnetLifeSafetyState.go       |  1 +
 .../readwrite/model/BACnetLiftCarDirection.go      |  1 +
 .../readwrite/model/BACnetLiftCarDoorCommand.go    |  1 +
 .../readwrite/model/BACnetLiftCarDriveStatus.go    |  1 +
 .../bacnetip/readwrite/model/BACnetLiftCarMode.go  |  1 +
 .../bacnetip/readwrite/model/BACnetLiftFault.go    |  1 +
 .../readwrite/model/BACnetLiftGroupMode.go         |  1 +
 .../readwrite/model/BACnetLightingInProgress.go    |  1 +
 .../readwrite/model/BACnetLightingOperation.go     |  1 +
 .../readwrite/model/BACnetLightingTransition.go    |  1 +
 .../bacnetip/readwrite/model/BACnetLimitEnable.go  |  1 +
 .../bacnetip/readwrite/model/BACnetLockStatus.go   |  1 +
 .../bacnetip/readwrite/model/BACnetLogStatus.go    |  1 +
 .../bacnetip/readwrite/model/BACnetLoggingType.go  |  1 +
 .../bacnetip/readwrite/model/BACnetMaintenance.go  |  1 +
 .../readwrite/model/BACnetNetworkNumberQuality.go  |  1 +
 .../readwrite/model/BACnetNetworkPortCommand.go    |  1 +
 .../bacnetip/readwrite/model/BACnetNetworkType.go  |  1 +
 .../bacnetip/readwrite/model/BACnetNodeType.go     |  1 +
 .../bacnetip/readwrite/model/BACnetNotifyType.go   |  1 +
 .../bacnetip/readwrite/model/BACnetObjectType.go   |  1 +
 .../readwrite/model/BACnetObjectTypesSupported.go  |  1 +
 .../bacnetip/readwrite/model/BACnetPolarity.go     |  1 +
 .../bacnetip/readwrite/model/BACnetProgramError.go |  1 +
 .../readwrite/model/BACnetProgramRequest.go        |  1 +
 .../bacnetip/readwrite/model/BACnetProgramState.go |  1 +
 .../readwrite/model/BACnetPropertyIdentifier.go    |  1 +
 .../readwrite/model/BACnetProtocolLevel.go         |  1 +
 .../bacnetip/readwrite/model/BACnetRejectReason.go |  1 +
 .../bacnetip/readwrite/model/BACnetRelationship.go |  1 +
 .../bacnetip/readwrite/model/BACnetReliability.go  |  1 +
 .../readwrite/model/BACnetRestartReason.go         |  1 +
 .../bacnetip/readwrite/model/BACnetResultFlags.go  |  1 +
 .../readwrite/model/BACnetRouterEntryStatus.go     |  1 +
 .../readwrite/model/BACnetSecurityLevel.go         |  1 +
 .../readwrite/model/BACnetSecurityPolicy.go        |  1 +
 .../bacnetip/readwrite/model/BACnetSegmentation.go |  1 +
 .../readwrite/model/BACnetServicesSupported.go     |  1 +
 .../bacnetip/readwrite/model/BACnetShedState.go    |  1 +
 .../readwrite/model/BACnetSilencedState.go         |  1 +
 .../bacnetip/readwrite/model/BACnetStatusFlags.go  |  1 +
 .../bacnetip/readwrite/model/BACnetTimerState.go   |  1 +
 .../readwrite/model/BACnetTimerTransition.go       |  1 +
 .../model/BACnetUnconfirmedServiceChoice.go        |  1 +
 .../bacnetip/readwrite/model/BACnetVTClass.go      |  1 +
 .../bacnetip/readwrite/model/BACnetVendorId.go     | 49 ++++++++++++++++++++++
 .../bacnetip/readwrite/model/BACnetWriteStatus.go  |  1 +
 .../bacnetip/readwrite/model/BVLCResultCode.go     |  1 +
 .../bacnetip/readwrite/model/ErrorClass.go         |  1 +
 .../bacnetip/readwrite/model/ErrorCode.go          |  1 +
 .../readwrite/model/MaxApduLengthAccepted.go       |  1 +
 .../readwrite/model/MaxSegmentsAccepted.go         |  1 +
 .../model/NLMRejectRouterToNetworkRejectReason.go  |  1 +
 .../readwrite/model/NPDUNetworkPriority.go         |  1 +
 .../readwrite/model/SecurityResponseCode.go        |  1 +
 .../protocols/bacnetip/readwrite/model/TagClass.go |  1 +
 .../cbus/readwrite/model/AccessControlCategory.go  |  1 +
 .../readwrite/model/AccessControlCommandType.go    |  1 +
 .../model/AccessControlCommandTypeContainer.go     |  1 +
 .../cbus/readwrite/model/AccessControlDirection.go |  1 +
 .../readwrite/model/AirConditioningCommandType.go  |  1 +
 .../model/AirConditioningCommandTypeContainer.go   |  1 +
 .../cbus/readwrite/model/ApplicationId.go          |  1 +
 .../cbus/readwrite/model/ApplicationIdContainer.go |  1 +
 plc4go/protocols/cbus/readwrite/model/Attribute.go |  1 +
 .../cbus/readwrite/model/BaudRateSelector.go       |  1 +
 .../cbus/readwrite/model/CALCommandType.go         |  1 +
 .../readwrite/model/CALCommandTypeContainer.go     |  1 +
 .../cbus/readwrite/model/ChannelStatus.go          |  1 +
 .../model/ClockAndTimekeepingCommandType.go        |  1 +
 .../ClockAndTimekeepingCommandTypeContainer.go     |  1 +
 .../cbus/readwrite/model/ConfirmationType.go       |  1 +
 .../cbus/readwrite/model/DestinationAddressType.go |  1 +
 .../cbus/readwrite/model/DialInFailureReason.go    |  1 +
 .../cbus/readwrite/model/DialOutFailureReason.go   |  1 +
 .../readwrite/model/EnableControlCommandType.go    |  1 +
 .../model/EnableControlCommandTypeContainer.go     |  1 +
 .../readwrite/model/ErrorReportingCommandType.go   |  1 +
 .../model/ErrorReportingCommandTypeContainer.go    |  1 +
 .../cbus/readwrite/model/ErrorReportingSeverity.go |  1 +
 .../model/ErrorReportingSystemCategoryClass.go     |  1 +
 ...stemCategoryTypeForBuildingManagementSystems.go |  1 +
 ...rtingSystemCategoryTypeForClimateControllers.go |  1 +
 ...rrorReportingSystemCategoryTypeForInputUnits.go |  1 +
 ...rorReportingSystemCategoryTypeForOutputUnits.go |  1 +
 ...orReportingSystemCategoryTypeForSupportUnits.go |  1 +
 .../model/ErrorReportingSystemCategoryVariant.go   |  1 +
 plc4go/protocols/cbus/readwrite/model/GAVState.go  |  1 +
 plc4go/protocols/cbus/readwrite/model/HVACError.go |  1 +
 .../cbus/readwrite/model/HVACHumidityError.go      |  1 +
 .../model/HVACHumidityModeAndFlagsMode.go          |  1 +
 .../cbus/readwrite/model/HVACHumidityType.go       |  1 +
 .../cbus/readwrite/model/HVACModeAndFlagsMode.go   |  1 +
 .../cbus/readwrite/model/HVACSensorStatus.go       |  1 +
 plc4go/protocols/cbus/readwrite/model/HVACType.go  |  1 +
 plc4go/protocols/cbus/readwrite/model/Language.go  |  1 +
 .../readwrite/model/LevelInformationNibblePair.go  |  1 +
 .../cbus/readwrite/model/LightingCommandType.go    |  1 +
 .../model/LightingCommandTypeContainer.go          |  1 +
 .../cbus/readwrite/model/LightingCompatible.go     |  1 +
 .../cbus/readwrite/model/LightingLabelFlavour.go   |  1 +
 .../cbus/readwrite/model/LightingLabelType.go      |  1 +
 .../cbus/readwrite/model/LineOffHookReason.go      |  1 +
 .../cbus/readwrite/model/MeasurementCommandType.go |  1 +
 .../model/MeasurementCommandTypeContainer.go       |  1 +
 .../cbus/readwrite/model/MeasurementUnits.go       |  1 +
 .../model/MediaTransportControlCommandType.go      |  1 +
 .../MediaTransportControlCommandTypeContainer.go   |  1 +
 .../cbus/readwrite/model/MeteringCommandType.go    |  1 +
 .../model/MeteringCommandTypeContainer.go          |  1 +
 plc4go/protocols/cbus/readwrite/model/Parameter.go |  1 +
 .../cbus/readwrite/model/ParameterType.go          |  1 +
 .../cbus/readwrite/model/PriorityClass.go          |  1 +
 .../cbus/readwrite/model/ProtectionLevel.go        |  1 +
 .../protocols/cbus/readwrite/model/RequestType.go  |  1 +
 .../cbus/readwrite/model/SecurityCommandType.go    |  1 +
 .../model/SecurityCommandTypeContainer.go          |  1 +
 .../protocols/cbus/readwrite/model/StatusCoding.go |  1 +
 .../cbus/readwrite/model/TelephonyCommandType.go   |  1 +
 .../model/TelephonyCommandTypeContainer.go         |  1 +
 .../model/TemperatureBroadcastCommandType.go       |  1 +
 .../TemperatureBroadcastCommandTypeContainer.go    |  1 +
 .../readwrite/model/TriggerControlCommandType.go   |  1 +
 .../model/TriggerControlCommandTypeContainer.go    |  1 +
 .../readwrite/model/TriggerControlLabelFlavour.go  |  1 +
 .../readwrite/model/TriggerControlLabelType.go     |  1 +
 .../protocols/cbus/readwrite/model/UnitStatus.go   |  1 +
 .../cbus/readwrite/model/ZoneStatusTemp.go         |  1 +
 plc4go/protocols/eip/readwrite/model/CIPClassID.go |  1 +
 .../eip/readwrite/model/CIPDataTypeCode.go         |  1 +
 plc4go/protocols/eip/readwrite/model/CIPStatus.go  |  1 +
 .../eip/readwrite/model/CIPStructTypeCode.go       |  1 +
 plc4go/protocols/eip/readwrite/model/EiPCommand.go |  1 +
 .../protocols/firmata/readwrite/model/PinMode.go   |  1 +
 .../knxnetip/readwrite/model/AccessLevel.go        |  1 +
 .../knxnetip/readwrite/model/CEMIPriority.go       |  1 +
 .../readwrite/model/ComObjectTableAddresses.go     |  1 +
 .../knxnetip/readwrite/model/ComObjectValueType.go |  1 +
 .../knxnetip/readwrite/model/DeviceDescriptor.go   |  1 +
 .../readwrite/model/DeviceDescriptorMediumType.go  |  1 +
 .../knxnetip/readwrite/model/FirmwareType.go       |  1 +
 .../knxnetip/readwrite/model/HostProtocolCode.go   |  1 +
 .../readwrite/model/KnxDatapointMainType.go        |  1 +
 .../knxnetip/readwrite/model/KnxDatapointType.go   |  1 +
 .../readwrite/model/KnxInterfaceObjectProperty.go  |  1 +
 .../readwrite/model/KnxInterfaceObjectType.go      |  1 +
 .../protocols/knxnetip/readwrite/model/KnxLayer.go |  1 +
 .../knxnetip/readwrite/model/KnxManufacturer.go    | 27 +++++++++---
 .../knxnetip/readwrite/model/KnxMedium.go          |  1 +
 .../readwrite/model/KnxPropertyDataType.go         |  1 +
 .../protocols/knxnetip/readwrite/model/Status.go   |  1 +
 .../readwrite/model/SupportedPhysicalMedia.go      |  1 +
 .../protocols/modbus/readwrite/model/DriverType.go |  1 +
 .../modbus/readwrite/model/ModbusDataType.go       |  1 +
 .../ModbusDeviceInformationConformityLevel.go      |  1 +
 .../model/ModbusDeviceInformationLevel.go          |  1 +
 .../model/ModbusDeviceInformationMoreFollows.go    |  1 +
 .../modbus/readwrite/model/ModbusErrorCode.go      |  1 +
 .../protocols/s7/readwrite/model/AlarmStateType.go |  1 +
 plc4go/protocols/s7/readwrite/model/AlarmType.go   |  1 +
 .../s7/readwrite/model/COTPProtocolClass.go        |  1 +
 .../protocols/s7/readwrite/model/COTPTpduSize.go   |  1 +
 .../s7/readwrite/model/CpuSubscribeEvents.go       |  1 +
 .../s7/readwrite/model/DataTransportErrorCode.go   |  1 +
 .../s7/readwrite/model/DataTransportSize.go        |  1 +
 plc4go/protocols/s7/readwrite/model/DeviceGroup.go |  1 +
 plc4go/protocols/s7/readwrite/model/EventType.go   |  1 +
 plc4go/protocols/s7/readwrite/model/MemoryArea.go  |  1 +
 .../s7/readwrite/model/ModeTransitionType.go       |  1 +
 plc4go/protocols/s7/readwrite/model/QueryType.go   |  1 +
 .../protocols/s7/readwrite/model/SyntaxIdType.go   |  1 +
 .../s7/readwrite/model/SzlModuleTypeClass.go       |  1 +
 plc4go/protocols/s7/readwrite/model/SzlSublist.go  |  1 +
 .../protocols/s7/readwrite/model/TransportSize.go  |  1 +
 .../readwrite/model/SimulatedDataTypeSizes.go      |  1 +
 plc4go/spi/utils/ReadBuffer.go                     |  3 +-
 plc4go/spi/utils/WriteBuffer.go                    |  3 +-
 .../java/bacnetip/readwrite/BACnetVendorId.java    |  3 ++
 .../java/knxnetip/readwrite/KnxManufacturer.java   |  5 ++-
 238 files changed, 311 insertions(+), 12 deletions(-)


[plc4x] 01/02: feat(plc4go): update enum interfaces

Posted by sr...@apache.org.
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

commit 33f08a3c9e8527d61fd60becc8267f80c14605b8
Author: Sebastian Rühl <sr...@apache.org>
AuthorDate: Thu Apr 13 19:41:57 2023 +0200

    feat(plc4go): update enum interfaces
---
 .../resources/templates/go/enum-template.go.ftlh   |  1 +
 plc4go/go.mod                                      |  2 +-
 .../readwrite/model/AdsDiscoveryBlockType.go       |  1 +
 .../discovery/readwrite/model/AdsPortNumbers.go    |  1 +
 .../ads/discovery/readwrite/model/Operation.go     |  1 +
 .../ads/discovery/readwrite/model/Status.go        |  1 +
 .../protocols/ads/readwrite/model/AdsDataType.go   |  1 +
 .../protocols/ads/readwrite/model/AdsTransMode.go  |  1 +
 plc4go/protocols/ads/readwrite/model/CommandId.go  |  1 +
 .../ads/readwrite/model/DefaultAmsPorts.go         |  1 +
 .../protocols/ads/readwrite/model/PlcValueType.go  |  1 +
 .../ads/readwrite/model/ReservedIndexGroups.go     |  1 +
 plc4go/protocols/ads/readwrite/model/ReturnCode.go |  1 +
 .../protocols/bacnetip/readwrite/model/ApduType.go |  1 +
 .../bacnetip/readwrite/model/BACnetAbortReason.go  |  1 +
 .../BACnetAccessAuthenticationFactorDisable.go     |  1 +
 .../model/BACnetAccessCredentialDisable.go         |  1 +
 .../model/BACnetAccessCredentialDisableReason.go   |  1 +
 .../bacnetip/readwrite/model/BACnetAccessEvent.go  |  1 +
 .../readwrite/model/BACnetAccessPassbackMode.go    |  1 +
 .../model/BACnetAccessRuleLocationSpecifier.go     |  1 +
 .../model/BACnetAccessRuleTimeRangeSpecifier.go    |  1 +
 .../readwrite/model/BACnetAccessUserType.go        |  1 +
 .../model/BACnetAccessZoneOccupancyState.go        |  1 +
 .../BACnetAccumulatorRecordAccumulatorStatus.go    |  1 +
 .../bacnetip/readwrite/model/BACnetAction.go       |  1 +
 .../model/BACnetAuthenticationFactorType.go        |  1 +
 .../readwrite/model/BACnetAuthenticationStatus.go  |  1 +
 .../model/BACnetAuthorizationExemption.go          |  1 +
 .../readwrite/model/BACnetAuthorizationMode.go     |  1 +
 .../bacnetip/readwrite/model/BACnetBackupState.go  |  1 +
 .../readwrite/model/BACnetBinaryLightingPV.go      |  1 +
 .../bacnetip/readwrite/model/BACnetBinaryPV.go     |  1 +
 .../readwrite/model/BACnetCharacterEncoding.go     |  1 +
 .../model/BACnetConfirmedServiceChoice.go          |  1 +
 ...ceRequestConfirmedTextMessageMessagePriority.go |  1 +
 ...questDeviceCommunicationControlEnableDisable.go |  1 +
 ...estGetEnrollmentSummaryAcknowledgementFilter.go |  1 +
 ...eRequestGetEnrollmentSummaryEventStateFilter.go |  1 +
 ...ReinitializeDeviceReinitializedStateOfDevice.go |  1 +
 .../bacnetip/readwrite/model/BACnetDataType.go     |  1 +
 .../bacnetip/readwrite/model/BACnetDaysOfWeek.go   |  1 +
 .../bacnetip/readwrite/model/BACnetDeviceStatus.go |  1 +
 .../readwrite/model/BACnetDoorAlarmState.go        |  1 +
 .../readwrite/model/BACnetDoorSecuredStatus.go     |  1 +
 .../bacnetip/readwrite/model/BACnetDoorStatus.go   |  1 +
 .../bacnetip/readwrite/model/BACnetDoorValue.go    |  1 +
 .../readwrite/model/BACnetEngineeringUnits.go      |  1 +
 .../readwrite/model/BACnetEscalatorFault.go        |  1 +
 .../readwrite/model/BACnetEscalatorMode.go         |  1 +
 .../model/BACnetEscalatorOperationDirection.go     |  1 +
 .../bacnetip/readwrite/model/BACnetEventState.go   |  1 +
 .../readwrite/model/BACnetEventTransitionBits.go   |  1 +
 .../bacnetip/readwrite/model/BACnetEventType.go    |  1 +
 .../bacnetip/readwrite/model/BACnetFaultType.go    |  1 +
 .../readwrite/model/BACnetFileAccessMethod.go      |  1 +
 .../bacnetip/readwrite/model/BACnetIPMode.go       |  1 +
 .../readwrite/model/BACnetLifeSafetyMode.go        |  1 +
 .../readwrite/model/BACnetLifeSafetyOperation.go   |  1 +
 .../readwrite/model/BACnetLifeSafetyState.go       |  1 +
 .../readwrite/model/BACnetLiftCarDirection.go      |  1 +
 .../readwrite/model/BACnetLiftCarDoorCommand.go    |  1 +
 .../readwrite/model/BACnetLiftCarDriveStatus.go    |  1 +
 .../bacnetip/readwrite/model/BACnetLiftCarMode.go  |  1 +
 .../bacnetip/readwrite/model/BACnetLiftFault.go    |  1 +
 .../readwrite/model/BACnetLiftGroupMode.go         |  1 +
 .../readwrite/model/BACnetLightingInProgress.go    |  1 +
 .../readwrite/model/BACnetLightingOperation.go     |  1 +
 .../readwrite/model/BACnetLightingTransition.go    |  1 +
 .../bacnetip/readwrite/model/BACnetLimitEnable.go  |  1 +
 .../bacnetip/readwrite/model/BACnetLockStatus.go   |  1 +
 .../bacnetip/readwrite/model/BACnetLogStatus.go    |  1 +
 .../bacnetip/readwrite/model/BACnetLoggingType.go  |  1 +
 .../bacnetip/readwrite/model/BACnetMaintenance.go  |  1 +
 .../readwrite/model/BACnetNetworkNumberQuality.go  |  1 +
 .../readwrite/model/BACnetNetworkPortCommand.go    |  1 +
 .../bacnetip/readwrite/model/BACnetNetworkType.go  |  1 +
 .../bacnetip/readwrite/model/BACnetNodeType.go     |  1 +
 .../bacnetip/readwrite/model/BACnetNotifyType.go   |  1 +
 .../bacnetip/readwrite/model/BACnetObjectType.go   |  1 +
 .../readwrite/model/BACnetObjectTypesSupported.go  |  1 +
 .../bacnetip/readwrite/model/BACnetPolarity.go     |  1 +
 .../bacnetip/readwrite/model/BACnetProgramError.go |  1 +
 .../readwrite/model/BACnetProgramRequest.go        |  1 +
 .../bacnetip/readwrite/model/BACnetProgramState.go |  1 +
 .../readwrite/model/BACnetPropertyIdentifier.go    |  1 +
 .../readwrite/model/BACnetProtocolLevel.go         |  1 +
 .../bacnetip/readwrite/model/BACnetRejectReason.go |  1 +
 .../bacnetip/readwrite/model/BACnetRelationship.go |  1 +
 .../bacnetip/readwrite/model/BACnetReliability.go  |  1 +
 .../readwrite/model/BACnetRestartReason.go         |  1 +
 .../bacnetip/readwrite/model/BACnetResultFlags.go  |  1 +
 .../readwrite/model/BACnetRouterEntryStatus.go     |  1 +
 .../readwrite/model/BACnetSecurityLevel.go         |  1 +
 .../readwrite/model/BACnetSecurityPolicy.go        |  1 +
 .../bacnetip/readwrite/model/BACnetSegmentation.go |  1 +
 .../readwrite/model/BACnetServicesSupported.go     |  1 +
 .../bacnetip/readwrite/model/BACnetShedState.go    |  1 +
 .../readwrite/model/BACnetSilencedState.go         |  1 +
 .../bacnetip/readwrite/model/BACnetStatusFlags.go  |  1 +
 .../bacnetip/readwrite/model/BACnetTimerState.go   |  1 +
 .../readwrite/model/BACnetTimerTransition.go       |  1 +
 .../model/BACnetUnconfirmedServiceChoice.go        |  1 +
 .../bacnetip/readwrite/model/BACnetVTClass.go      |  1 +
 .../bacnetip/readwrite/model/BACnetVendorId.go     | 49 ++++++++++++++++++++++
 .../bacnetip/readwrite/model/BACnetWriteStatus.go  |  1 +
 .../bacnetip/readwrite/model/BVLCResultCode.go     |  1 +
 .../bacnetip/readwrite/model/ErrorClass.go         |  1 +
 .../bacnetip/readwrite/model/ErrorCode.go          |  1 +
 .../readwrite/model/MaxApduLengthAccepted.go       |  1 +
 .../readwrite/model/MaxSegmentsAccepted.go         |  1 +
 .../model/NLMRejectRouterToNetworkRejectReason.go  |  1 +
 .../readwrite/model/NPDUNetworkPriority.go         |  1 +
 .../readwrite/model/SecurityResponseCode.go        |  1 +
 .../protocols/bacnetip/readwrite/model/TagClass.go |  1 +
 .../cbus/readwrite/model/AccessControlCategory.go  |  1 +
 .../readwrite/model/AccessControlCommandType.go    |  1 +
 .../model/AccessControlCommandTypeContainer.go     |  1 +
 .../cbus/readwrite/model/AccessControlDirection.go |  1 +
 .../readwrite/model/AirConditioningCommandType.go  |  1 +
 .../model/AirConditioningCommandTypeContainer.go   |  1 +
 .../cbus/readwrite/model/ApplicationId.go          |  1 +
 .../cbus/readwrite/model/ApplicationIdContainer.go |  1 +
 plc4go/protocols/cbus/readwrite/model/Attribute.go |  1 +
 .../cbus/readwrite/model/BaudRateSelector.go       |  1 +
 .../cbus/readwrite/model/CALCommandType.go         |  1 +
 .../readwrite/model/CALCommandTypeContainer.go     |  1 +
 .../cbus/readwrite/model/ChannelStatus.go          |  1 +
 .../model/ClockAndTimekeepingCommandType.go        |  1 +
 .../ClockAndTimekeepingCommandTypeContainer.go     |  1 +
 .../cbus/readwrite/model/ConfirmationType.go       |  1 +
 .../cbus/readwrite/model/DestinationAddressType.go |  1 +
 .../cbus/readwrite/model/DialInFailureReason.go    |  1 +
 .../cbus/readwrite/model/DialOutFailureReason.go   |  1 +
 .../readwrite/model/EnableControlCommandType.go    |  1 +
 .../model/EnableControlCommandTypeContainer.go     |  1 +
 .../readwrite/model/ErrorReportingCommandType.go   |  1 +
 .../model/ErrorReportingCommandTypeContainer.go    |  1 +
 .../cbus/readwrite/model/ErrorReportingSeverity.go |  1 +
 .../model/ErrorReportingSystemCategoryClass.go     |  1 +
 ...stemCategoryTypeForBuildingManagementSystems.go |  1 +
 ...rtingSystemCategoryTypeForClimateControllers.go |  1 +
 ...rrorReportingSystemCategoryTypeForInputUnits.go |  1 +
 ...rorReportingSystemCategoryTypeForOutputUnits.go |  1 +
 ...orReportingSystemCategoryTypeForSupportUnits.go |  1 +
 .../model/ErrorReportingSystemCategoryVariant.go   |  1 +
 plc4go/protocols/cbus/readwrite/model/GAVState.go  |  1 +
 plc4go/protocols/cbus/readwrite/model/HVACError.go |  1 +
 .../cbus/readwrite/model/HVACHumidityError.go      |  1 +
 .../model/HVACHumidityModeAndFlagsMode.go          |  1 +
 .../cbus/readwrite/model/HVACHumidityType.go       |  1 +
 .../cbus/readwrite/model/HVACModeAndFlagsMode.go   |  1 +
 .../cbus/readwrite/model/HVACSensorStatus.go       |  1 +
 plc4go/protocols/cbus/readwrite/model/HVACType.go  |  1 +
 plc4go/protocols/cbus/readwrite/model/Language.go  |  1 +
 .../readwrite/model/LevelInformationNibblePair.go  |  1 +
 .../cbus/readwrite/model/LightingCommandType.go    |  1 +
 .../model/LightingCommandTypeContainer.go          |  1 +
 .../cbus/readwrite/model/LightingCompatible.go     |  1 +
 .../cbus/readwrite/model/LightingLabelFlavour.go   |  1 +
 .../cbus/readwrite/model/LightingLabelType.go      |  1 +
 .../cbus/readwrite/model/LineOffHookReason.go      |  1 +
 .../cbus/readwrite/model/MeasurementCommandType.go |  1 +
 .../model/MeasurementCommandTypeContainer.go       |  1 +
 .../cbus/readwrite/model/MeasurementUnits.go       |  1 +
 .../model/MediaTransportControlCommandType.go      |  1 +
 .../MediaTransportControlCommandTypeContainer.go   |  1 +
 .../cbus/readwrite/model/MeteringCommandType.go    |  1 +
 .../model/MeteringCommandTypeContainer.go          |  1 +
 plc4go/protocols/cbus/readwrite/model/Parameter.go |  1 +
 .../cbus/readwrite/model/ParameterType.go          |  1 +
 .../cbus/readwrite/model/PriorityClass.go          |  1 +
 .../cbus/readwrite/model/ProtectionLevel.go        |  1 +
 .../protocols/cbus/readwrite/model/RequestType.go  |  1 +
 .../cbus/readwrite/model/SecurityCommandType.go    |  1 +
 .../model/SecurityCommandTypeContainer.go          |  1 +
 .../protocols/cbus/readwrite/model/StatusCoding.go |  1 +
 .../cbus/readwrite/model/TelephonyCommandType.go   |  1 +
 .../model/TelephonyCommandTypeContainer.go         |  1 +
 .../model/TemperatureBroadcastCommandType.go       |  1 +
 .../TemperatureBroadcastCommandTypeContainer.go    |  1 +
 .../readwrite/model/TriggerControlCommandType.go   |  1 +
 .../model/TriggerControlCommandTypeContainer.go    |  1 +
 .../readwrite/model/TriggerControlLabelFlavour.go  |  1 +
 .../readwrite/model/TriggerControlLabelType.go     |  1 +
 .../protocols/cbus/readwrite/model/UnitStatus.go   |  1 +
 .../cbus/readwrite/model/ZoneStatusTemp.go         |  1 +
 plc4go/protocols/eip/readwrite/model/CIPClassID.go |  1 +
 .../eip/readwrite/model/CIPDataTypeCode.go         |  1 +
 plc4go/protocols/eip/readwrite/model/CIPStatus.go  |  1 +
 .../eip/readwrite/model/CIPStructTypeCode.go       |  1 +
 plc4go/protocols/eip/readwrite/model/EiPCommand.go |  1 +
 .../protocols/firmata/readwrite/model/PinMode.go   |  1 +
 .../knxnetip/readwrite/model/AccessLevel.go        |  1 +
 .../knxnetip/readwrite/model/CEMIPriority.go       |  1 +
 .../readwrite/model/ComObjectTableAddresses.go     |  1 +
 .../knxnetip/readwrite/model/ComObjectValueType.go |  1 +
 .../knxnetip/readwrite/model/DeviceDescriptor.go   |  1 +
 .../readwrite/model/DeviceDescriptorMediumType.go  |  1 +
 .../knxnetip/readwrite/model/FirmwareType.go       |  1 +
 .../knxnetip/readwrite/model/HostProtocolCode.go   |  1 +
 .../readwrite/model/KnxDatapointMainType.go        |  1 +
 .../knxnetip/readwrite/model/KnxDatapointType.go   |  1 +
 .../readwrite/model/KnxInterfaceObjectProperty.go  |  1 +
 .../readwrite/model/KnxInterfaceObjectType.go      |  1 +
 .../protocols/knxnetip/readwrite/model/KnxLayer.go |  1 +
 .../knxnetip/readwrite/model/KnxManufacturer.go    | 27 +++++++++---
 .../knxnetip/readwrite/model/KnxMedium.go          |  1 +
 .../readwrite/model/KnxPropertyDataType.go         |  1 +
 .../protocols/knxnetip/readwrite/model/Status.go   |  1 +
 .../readwrite/model/SupportedPhysicalMedia.go      |  1 +
 .../protocols/modbus/readwrite/model/DriverType.go |  1 +
 .../modbus/readwrite/model/ModbusDataType.go       |  1 +
 .../ModbusDeviceInformationConformityLevel.go      |  1 +
 .../model/ModbusDeviceInformationLevel.go          |  1 +
 .../model/ModbusDeviceInformationMoreFollows.go    |  1 +
 .../modbus/readwrite/model/ModbusErrorCode.go      |  1 +
 .../protocols/s7/readwrite/model/AlarmStateType.go |  1 +
 plc4go/protocols/s7/readwrite/model/AlarmType.go   |  1 +
 .../s7/readwrite/model/COTPProtocolClass.go        |  1 +
 .../protocols/s7/readwrite/model/COTPTpduSize.go   |  1 +
 .../s7/readwrite/model/CpuSubscribeEvents.go       |  1 +
 .../s7/readwrite/model/DataTransportErrorCode.go   |  1 +
 .../s7/readwrite/model/DataTransportSize.go        |  1 +
 plc4go/protocols/s7/readwrite/model/DeviceGroup.go |  1 +
 plc4go/protocols/s7/readwrite/model/EventType.go   |  1 +
 plc4go/protocols/s7/readwrite/model/MemoryArea.go  |  1 +
 .../s7/readwrite/model/ModeTransitionType.go       |  1 +
 plc4go/protocols/s7/readwrite/model/QueryType.go   |  1 +
 .../protocols/s7/readwrite/model/SyntaxIdType.go   |  1 +
 .../s7/readwrite/model/SzlModuleTypeClass.go       |  1 +
 plc4go/protocols/s7/readwrite/model/SzlSublist.go  |  1 +
 .../protocols/s7/readwrite/model/TransportSize.go  |  1 +
 .../readwrite/model/SimulatedDataTypeSizes.go      |  1 +
 plc4go/spi/utils/ReadBuffer.go                     |  3 +-
 plc4go/spi/utils/WriteBuffer.go                    |  3 +-
 236 files changed, 305 insertions(+), 10 deletions(-)

diff --git a/code-generation/language-go/src/main/resources/templates/go/enum-template.go.ftlh b/code-generation/language-go/src/main/resources/templates/go/enum-template.go.ftlh
index b207256121..5071090c1a 100644
--- a/code-generation/language-go/src/main/resources/templates/go/enum-template.go.ftlh
+++ b/code-generation/language-go/src/main/resources/templates/go/enum-template.go.ftlh
@@ -63,6 +63,7 @@ type ${type.name} ${baseType}
 
 type I${type.name} interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 <#if type.constantNames?has_content>
 	<#list type.constantNames as constantName>
diff --git a/plc4go/go.mod b/plc4go/go.mod
index 85c6707d7c..9a46986f7e 100644
--- a/plc4go/go.mod
+++ b/plc4go/go.mod
@@ -42,6 +42,7 @@ require (
 	github.com/subchen/go-xmldom v1.1.2
 	github.com/viney-shih/go-lock v1.1.2
 	golang.org/x/exp v0.0.0-20230213192124-5e25df0256eb
+	golang.org/x/net v0.9.0
 	golang.org/x/tools v0.8.0
 	gopkg.in/yaml.v3 v3.0.1
 )
@@ -69,7 +70,6 @@ require (
 	github.com/spf13/pflag v1.0.5 // indirect
 	github.com/subosito/gotenv v1.4.2 // indirect
 	golang.org/x/mod v0.10.0 // indirect
-	golang.org/x/net v0.9.0 // indirect
 	golang.org/x/sync v0.1.0 // indirect
 	golang.org/x/sys v0.7.0 // indirect
 	golang.org/x/term v0.7.0 // indirect
diff --git a/plc4go/protocols/ads/discovery/readwrite/model/AdsDiscoveryBlockType.go b/plc4go/protocols/ads/discovery/readwrite/model/AdsDiscoveryBlockType.go
index 1b5c50368d..73f6f743b9 100644
--- a/plc4go/protocols/ads/discovery/readwrite/model/AdsDiscoveryBlockType.go
+++ b/plc4go/protocols/ads/discovery/readwrite/model/AdsDiscoveryBlockType.go
@@ -33,6 +33,7 @@ type AdsDiscoveryBlockType uint16
 
 type IAdsDiscoveryBlockType interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/ads/discovery/readwrite/model/AdsPortNumbers.go b/plc4go/protocols/ads/discovery/readwrite/model/AdsPortNumbers.go
index 58cf505c10..fe02fe0329 100644
--- a/plc4go/protocols/ads/discovery/readwrite/model/AdsPortNumbers.go
+++ b/plc4go/protocols/ads/discovery/readwrite/model/AdsPortNumbers.go
@@ -33,6 +33,7 @@ type AdsPortNumbers uint16
 
 type IAdsPortNumbers interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/ads/discovery/readwrite/model/Operation.go b/plc4go/protocols/ads/discovery/readwrite/model/Operation.go
index b7f88c8422..4109ba8112 100644
--- a/plc4go/protocols/ads/discovery/readwrite/model/Operation.go
+++ b/plc4go/protocols/ads/discovery/readwrite/model/Operation.go
@@ -33,6 +33,7 @@ type Operation uint32
 
 type IOperation interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/ads/discovery/readwrite/model/Status.go b/plc4go/protocols/ads/discovery/readwrite/model/Status.go
index 7a78ae24f4..130be5880b 100644
--- a/plc4go/protocols/ads/discovery/readwrite/model/Status.go
+++ b/plc4go/protocols/ads/discovery/readwrite/model/Status.go
@@ -33,6 +33,7 @@ type Status uint32
 
 type IStatus interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/ads/readwrite/model/AdsDataType.go b/plc4go/protocols/ads/readwrite/model/AdsDataType.go
index 45e896c257..00ae78e17b 100644
--- a/plc4go/protocols/ads/readwrite/model/AdsDataType.go
+++ b/plc4go/protocols/ads/readwrite/model/AdsDataType.go
@@ -33,6 +33,7 @@ type AdsDataType int8
 
 type IAdsDataType interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 	NumBytes() uint16
 	PlcValueType() PlcValueType
diff --git a/plc4go/protocols/ads/readwrite/model/AdsTransMode.go b/plc4go/protocols/ads/readwrite/model/AdsTransMode.go
index 5bc6cb85f5..b0103bcdc9 100644
--- a/plc4go/protocols/ads/readwrite/model/AdsTransMode.go
+++ b/plc4go/protocols/ads/readwrite/model/AdsTransMode.go
@@ -33,6 +33,7 @@ type AdsTransMode uint32
 
 type IAdsTransMode interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/ads/readwrite/model/CommandId.go b/plc4go/protocols/ads/readwrite/model/CommandId.go
index 832569a2ea..f5a5421eeb 100644
--- a/plc4go/protocols/ads/readwrite/model/CommandId.go
+++ b/plc4go/protocols/ads/readwrite/model/CommandId.go
@@ -33,6 +33,7 @@ type CommandId uint16
 
 type ICommandId interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/ads/readwrite/model/DefaultAmsPorts.go b/plc4go/protocols/ads/readwrite/model/DefaultAmsPorts.go
index 4d4dbabb8d..bcb459098b 100644
--- a/plc4go/protocols/ads/readwrite/model/DefaultAmsPorts.go
+++ b/plc4go/protocols/ads/readwrite/model/DefaultAmsPorts.go
@@ -33,6 +33,7 @@ type DefaultAmsPorts uint16
 
 type IDefaultAmsPorts interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/ads/readwrite/model/PlcValueType.go b/plc4go/protocols/ads/readwrite/model/PlcValueType.go
index b439296ba2..d454c787b5 100644
--- a/plc4go/protocols/ads/readwrite/model/PlcValueType.go
+++ b/plc4go/protocols/ads/readwrite/model/PlcValueType.go
@@ -33,6 +33,7 @@ type PlcValueType uint8
 
 type IPlcValueType interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/ads/readwrite/model/ReservedIndexGroups.go b/plc4go/protocols/ads/readwrite/model/ReservedIndexGroups.go
index dd5da6af9e..d1fd8299bc 100644
--- a/plc4go/protocols/ads/readwrite/model/ReservedIndexGroups.go
+++ b/plc4go/protocols/ads/readwrite/model/ReservedIndexGroups.go
@@ -33,6 +33,7 @@ type ReservedIndexGroups uint32
 
 type IReservedIndexGroups interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/ads/readwrite/model/ReturnCode.go b/plc4go/protocols/ads/readwrite/model/ReturnCode.go
index 08e2f8b15d..14d77c23a8 100644
--- a/plc4go/protocols/ads/readwrite/model/ReturnCode.go
+++ b/plc4go/protocols/ads/readwrite/model/ReturnCode.go
@@ -33,6 +33,7 @@ type ReturnCode uint32
 
 type IReturnCode interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/ApduType.go b/plc4go/protocols/bacnetip/readwrite/model/ApduType.go
index a368adc4b1..08f050d050 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/ApduType.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/ApduType.go
@@ -33,6 +33,7 @@ type ApduType uint8
 
 type IApduType interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetAbortReason.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetAbortReason.go
index e621fdcfeb..5057cd0d56 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetAbortReason.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetAbortReason.go
@@ -33,6 +33,7 @@ type BACnetAbortReason uint8
 
 type IBACnetAbortReason interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessAuthenticationFactorDisable.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessAuthenticationFactorDisable.go
index 3949da6109..5069c9fcbf 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessAuthenticationFactorDisable.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessAuthenticationFactorDisable.go
@@ -33,6 +33,7 @@ type BACnetAccessAuthenticationFactorDisable uint16
 
 type IBACnetAccessAuthenticationFactorDisable interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessCredentialDisable.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessCredentialDisable.go
index 7a05c3c86c..07efe11de5 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessCredentialDisable.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessCredentialDisable.go
@@ -33,6 +33,7 @@ type BACnetAccessCredentialDisable uint16
 
 type IBACnetAccessCredentialDisable interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessCredentialDisableReason.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessCredentialDisableReason.go
index fbe5f3b23b..fc25825c03 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessCredentialDisableReason.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessCredentialDisableReason.go
@@ -33,6 +33,7 @@ type BACnetAccessCredentialDisableReason uint16
 
 type IBACnetAccessCredentialDisableReason interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessEvent.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessEvent.go
index dc454b3ba6..ae51613a2c 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessEvent.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessEvent.go
@@ -33,6 +33,7 @@ type BACnetAccessEvent uint16
 
 type IBACnetAccessEvent interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessPassbackMode.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessPassbackMode.go
index dc6f2be492..ee102aa4c6 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessPassbackMode.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessPassbackMode.go
@@ -33,6 +33,7 @@ type BACnetAccessPassbackMode uint8
 
 type IBACnetAccessPassbackMode interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessRuleLocationSpecifier.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessRuleLocationSpecifier.go
index 751748554e..7267946c2d 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessRuleLocationSpecifier.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessRuleLocationSpecifier.go
@@ -33,6 +33,7 @@ type BACnetAccessRuleLocationSpecifier uint8
 
 type IBACnetAccessRuleLocationSpecifier interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessRuleTimeRangeSpecifier.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessRuleTimeRangeSpecifier.go
index 1705495dd7..869716d8c2 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessRuleTimeRangeSpecifier.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessRuleTimeRangeSpecifier.go
@@ -33,6 +33,7 @@ type BACnetAccessRuleTimeRangeSpecifier uint8
 
 type IBACnetAccessRuleTimeRangeSpecifier interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessUserType.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessUserType.go
index 7039c95312..01545bdb5e 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessUserType.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessUserType.go
@@ -33,6 +33,7 @@ type BACnetAccessUserType uint16
 
 type IBACnetAccessUserType interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessZoneOccupancyState.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessZoneOccupancyState.go
index 7acc5e107a..173d11d7e2 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessZoneOccupancyState.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessZoneOccupancyState.go
@@ -33,6 +33,7 @@ type BACnetAccessZoneOccupancyState uint16
 
 type IBACnetAccessZoneOccupancyState interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetAccumulatorRecordAccumulatorStatus.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetAccumulatorRecordAccumulatorStatus.go
index 90f602f413..f8e727de13 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetAccumulatorRecordAccumulatorStatus.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetAccumulatorRecordAccumulatorStatus.go
@@ -33,6 +33,7 @@ type BACnetAccumulatorRecordAccumulatorStatus uint8
 
 type IBACnetAccumulatorRecordAccumulatorStatus interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetAction.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetAction.go
index 857cec54ff..c0f5e67a2b 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetAction.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetAction.go
@@ -33,6 +33,7 @@ type BACnetAction uint8
 
 type IBACnetAction interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthenticationFactorType.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthenticationFactorType.go
index c4d035f73c..f737c87fb3 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthenticationFactorType.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthenticationFactorType.go
@@ -33,6 +33,7 @@ type BACnetAuthenticationFactorType uint8
 
 type IBACnetAuthenticationFactorType interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthenticationStatus.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthenticationStatus.go
index e7c0652fcb..e9d928bbbd 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthenticationStatus.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthenticationStatus.go
@@ -33,6 +33,7 @@ type BACnetAuthenticationStatus uint8
 
 type IBACnetAuthenticationStatus interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthorizationExemption.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthorizationExemption.go
index 81ef370a8a..6749060890 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthorizationExemption.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthorizationExemption.go
@@ -33,6 +33,7 @@ type BACnetAuthorizationExemption uint8
 
 type IBACnetAuthorizationExemption interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthorizationMode.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthorizationMode.go
index 6e86073210..f1ff35c47c 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthorizationMode.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthorizationMode.go
@@ -33,6 +33,7 @@ type BACnetAuthorizationMode uint16
 
 type IBACnetAuthorizationMode interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetBackupState.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetBackupState.go
index 99e11d0510..bb4b96cfaa 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetBackupState.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetBackupState.go
@@ -33,6 +33,7 @@ type BACnetBackupState uint8
 
 type IBACnetBackupState interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetBinaryLightingPV.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetBinaryLightingPV.go
index 2e62e28373..cb6081f198 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetBinaryLightingPV.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetBinaryLightingPV.go
@@ -33,6 +33,7 @@ type BACnetBinaryLightingPV uint8
 
 type IBACnetBinaryLightingPV interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetBinaryPV.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetBinaryPV.go
index 7cc1d7d57c..eb10d19c04 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetBinaryPV.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetBinaryPV.go
@@ -33,6 +33,7 @@ type BACnetBinaryPV uint8
 
 type IBACnetBinaryPV interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetCharacterEncoding.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetCharacterEncoding.go
index 25e1d8d73e..ee3cc0b0a0 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetCharacterEncoding.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetCharacterEncoding.go
@@ -33,6 +33,7 @@ type BACnetCharacterEncoding byte
 
 type IBACnetCharacterEncoding interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceChoice.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceChoice.go
index 495d888427..92f2bfa671 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceChoice.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceChoice.go
@@ -33,6 +33,7 @@ type BACnetConfirmedServiceChoice uint8
 
 type IBACnetConfirmedServiceChoice interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedTextMessageMessagePriority.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedTextMessageMessagePriority.go
index f3aa07ac99..da9c57e1aa 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedTextMessageMessagePriority.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedTextMessageMessagePriority.go
@@ -33,6 +33,7 @@ type BACnetConfirmedServiceRequestConfirmedTextMessageMessagePriority uint8
 
 type IBACnetConfirmedServiceRequestConfirmedTextMessageMessagePriority interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestDeviceCommunicationControlEnableDisable.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestDeviceCommunicationControlEnableDisable.go
index 6e772c5086..da8c3b1f7a 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestDeviceCommunicationControlEnableDisable.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestDeviceCommunicationControlEnableDisable.go
@@ -33,6 +33,7 @@ type BACnetConfirmedServiceRequestDeviceCommunicationControlEnableDisable uint8
 
 type IBACnetConfirmedServiceRequestDeviceCommunicationControlEnableDisable interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestGetEnrollmentSummaryAcknowledgementFilter.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestGetEnrollmentSummaryAcknowledgementFilter.go
index be6ca43291..527e378dce 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestGetEnrollmentSummaryAcknowledgementFilter.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestGetEnrollmentSummaryAcknowledgementFilter.go
@@ -33,6 +33,7 @@ type BACnetConfirmedServiceRequestGetEnrollmentSummaryAcknowledgementFilter uint
 
 type IBACnetConfirmedServiceRequestGetEnrollmentSummaryAcknowledgementFilter interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestGetEnrollmentSummaryEventStateFilter.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestGetEnrollmentSummaryEventStateFilter.go
index 0cf3d2c90c..32b6e2a1ea 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestGetEnrollmentSummaryEventStateFilter.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestGetEnrollmentSummaryEventStateFilter.go
@@ -33,6 +33,7 @@ type BACnetConfirmedServiceRequestGetEnrollmentSummaryEventStateFilter uint8
 
 type IBACnetConfirmedServiceRequestGetEnrollmentSummaryEventStateFilter interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice.go
index 70ffc5690f..c430c85488 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice.go
@@ -33,6 +33,7 @@ type BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice u
 
 type IBACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetDataType.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetDataType.go
index 485c6a91d9..89ecdc27b0 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetDataType.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetDataType.go
@@ -33,6 +33,7 @@ type BACnetDataType uint8
 
 type IBACnetDataType interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetDaysOfWeek.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetDaysOfWeek.go
index 59a273a348..5820285411 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetDaysOfWeek.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetDaysOfWeek.go
@@ -33,6 +33,7 @@ type BACnetDaysOfWeek uint8
 
 type IBACnetDaysOfWeek interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetDeviceStatus.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetDeviceStatus.go
index 2b712d9033..8800bf89f7 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetDeviceStatus.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetDeviceStatus.go
@@ -33,6 +33,7 @@ type BACnetDeviceStatus uint16
 
 type IBACnetDeviceStatus interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetDoorAlarmState.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetDoorAlarmState.go
index 350981b27c..224f031c4e 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetDoorAlarmState.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetDoorAlarmState.go
@@ -33,6 +33,7 @@ type BACnetDoorAlarmState uint8
 
 type IBACnetDoorAlarmState interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetDoorSecuredStatus.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetDoorSecuredStatus.go
index 57ff6ccb1f..08b8711ec9 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetDoorSecuredStatus.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetDoorSecuredStatus.go
@@ -33,6 +33,7 @@ type BACnetDoorSecuredStatus uint8
 
 type IBACnetDoorSecuredStatus interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetDoorStatus.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetDoorStatus.go
index af856f193f..9de4ec9d54 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetDoorStatus.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetDoorStatus.go
@@ -33,6 +33,7 @@ type BACnetDoorStatus uint16
 
 type IBACnetDoorStatus interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetDoorValue.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetDoorValue.go
index bddbc4547d..e929b977bc 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetDoorValue.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetDoorValue.go
@@ -33,6 +33,7 @@ type BACnetDoorValue uint8
 
 type IBACnetDoorValue interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetEngineeringUnits.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetEngineeringUnits.go
index 1480331e68..56e7d60a06 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetEngineeringUnits.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetEngineeringUnits.go
@@ -33,6 +33,7 @@ type BACnetEngineeringUnits uint32
 
 type IBACnetEngineeringUnits interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetEscalatorFault.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetEscalatorFault.go
index 9bf9c7a712..338af5de7c 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetEscalatorFault.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetEscalatorFault.go
@@ -33,6 +33,7 @@ type BACnetEscalatorFault uint16
 
 type IBACnetEscalatorFault interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetEscalatorMode.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetEscalatorMode.go
index 2299dd2867..9f3828eb5b 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetEscalatorMode.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetEscalatorMode.go
@@ -33,6 +33,7 @@ type BACnetEscalatorMode uint16
 
 type IBACnetEscalatorMode interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetEscalatorOperationDirection.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetEscalatorOperationDirection.go
index ee0682aaef..0c4b9ee8dd 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetEscalatorOperationDirection.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetEscalatorOperationDirection.go
@@ -33,6 +33,7 @@ type BACnetEscalatorOperationDirection uint16
 
 type IBACnetEscalatorOperationDirection interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetEventState.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetEventState.go
index 717fc90681..76c228165d 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetEventState.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetEventState.go
@@ -33,6 +33,7 @@ type BACnetEventState uint16
 
 type IBACnetEventState interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetEventTransitionBits.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetEventTransitionBits.go
index adeed95ff0..59a9330e90 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetEventTransitionBits.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetEventTransitionBits.go
@@ -33,6 +33,7 @@ type BACnetEventTransitionBits uint8
 
 type IBACnetEventTransitionBits interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetEventType.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetEventType.go
index 5e38905322..6f7b1b460b 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetEventType.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetEventType.go
@@ -33,6 +33,7 @@ type BACnetEventType uint16
 
 type IBACnetEventType interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetFaultType.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetFaultType.go
index eab295b2df..15a12f6f59 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetFaultType.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetFaultType.go
@@ -33,6 +33,7 @@ type BACnetFaultType uint8
 
 type IBACnetFaultType interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetFileAccessMethod.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetFileAccessMethod.go
index 53e1de5550..490e38e2a6 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetFileAccessMethod.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetFileAccessMethod.go
@@ -33,6 +33,7 @@ type BACnetFileAccessMethod uint8
 
 type IBACnetFileAccessMethod interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetIPMode.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetIPMode.go
index 6e27965761..117b844a82 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetIPMode.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetIPMode.go
@@ -33,6 +33,7 @@ type BACnetIPMode uint8
 
 type IBACnetIPMode interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetLifeSafetyMode.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetLifeSafetyMode.go
index 7538633dc6..39424d63c3 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetLifeSafetyMode.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetLifeSafetyMode.go
@@ -33,6 +33,7 @@ type BACnetLifeSafetyMode uint16
 
 type IBACnetLifeSafetyMode interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetLifeSafetyOperation.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetLifeSafetyOperation.go
index 147c191670..7d9ca58436 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetLifeSafetyOperation.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetLifeSafetyOperation.go
@@ -33,6 +33,7 @@ type BACnetLifeSafetyOperation uint16
 
 type IBACnetLifeSafetyOperation interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetLifeSafetyState.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetLifeSafetyState.go
index 95a80a0737..00429c17fb 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetLifeSafetyState.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetLifeSafetyState.go
@@ -33,6 +33,7 @@ type BACnetLifeSafetyState uint16
 
 type IBACnetLifeSafetyState interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetLiftCarDirection.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetLiftCarDirection.go
index 0564f3ac89..0d00a747b9 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetLiftCarDirection.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetLiftCarDirection.go
@@ -33,6 +33,7 @@ type BACnetLiftCarDirection uint16
 
 type IBACnetLiftCarDirection interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetLiftCarDoorCommand.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetLiftCarDoorCommand.go
index 0f435cae95..5bd2f78410 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetLiftCarDoorCommand.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetLiftCarDoorCommand.go
@@ -33,6 +33,7 @@ type BACnetLiftCarDoorCommand uint8
 
 type IBACnetLiftCarDoorCommand interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetLiftCarDriveStatus.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetLiftCarDriveStatus.go
index aa59266cd7..ed7fd295ca 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetLiftCarDriveStatus.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetLiftCarDriveStatus.go
@@ -33,6 +33,7 @@ type BACnetLiftCarDriveStatus uint16
 
 type IBACnetLiftCarDriveStatus interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetLiftCarMode.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetLiftCarMode.go
index 9ee4bd44c2..c7f529ff63 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetLiftCarMode.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetLiftCarMode.go
@@ -33,6 +33,7 @@ type BACnetLiftCarMode uint16
 
 type IBACnetLiftCarMode interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetLiftFault.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetLiftFault.go
index f966d629ca..fe09536c9f 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetLiftFault.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetLiftFault.go
@@ -33,6 +33,7 @@ type BACnetLiftFault uint16
 
 type IBACnetLiftFault interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetLiftGroupMode.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetLiftGroupMode.go
index 9cc4c96c41..7991cd23ef 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetLiftGroupMode.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetLiftGroupMode.go
@@ -33,6 +33,7 @@ type BACnetLiftGroupMode uint8
 
 type IBACnetLiftGroupMode interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetLightingInProgress.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetLightingInProgress.go
index dc0fd9d0f9..1c5b999f78 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetLightingInProgress.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetLightingInProgress.go
@@ -33,6 +33,7 @@ type BACnetLightingInProgress uint8
 
 type IBACnetLightingInProgress interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetLightingOperation.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetLightingOperation.go
index d29f1257d8..1a3818b3d2 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetLightingOperation.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetLightingOperation.go
@@ -33,6 +33,7 @@ type BACnetLightingOperation uint16
 
 type IBACnetLightingOperation interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetLightingTransition.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetLightingTransition.go
index 774e2d7441..54237a8a05 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetLightingTransition.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetLightingTransition.go
@@ -33,6 +33,7 @@ type BACnetLightingTransition uint8
 
 type IBACnetLightingTransition interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetLimitEnable.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetLimitEnable.go
index 8da317110d..2cba4d1c2b 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetLimitEnable.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetLimitEnable.go
@@ -33,6 +33,7 @@ type BACnetLimitEnable uint8
 
 type IBACnetLimitEnable interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetLockStatus.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetLockStatus.go
index afdfc8e969..336ab6f09a 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetLockStatus.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetLockStatus.go
@@ -33,6 +33,7 @@ type BACnetLockStatus uint8
 
 type IBACnetLockStatus interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetLogStatus.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetLogStatus.go
index 29349ea30a..736077dbfc 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetLogStatus.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetLogStatus.go
@@ -33,6 +33,7 @@ type BACnetLogStatus uint8
 
 type IBACnetLogStatus interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetLoggingType.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetLoggingType.go
index 425af2b4b1..5ec2d1b86e 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetLoggingType.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetLoggingType.go
@@ -33,6 +33,7 @@ type BACnetLoggingType uint8
 
 type IBACnetLoggingType interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetMaintenance.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetMaintenance.go
index 79bb311f15..8a4fe9590b 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetMaintenance.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetMaintenance.go
@@ -33,6 +33,7 @@ type BACnetMaintenance uint8
 
 type IBACnetMaintenance interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetNetworkNumberQuality.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetNetworkNumberQuality.go
index 31254092e0..3569061437 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetNetworkNumberQuality.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetNetworkNumberQuality.go
@@ -33,6 +33,7 @@ type BACnetNetworkNumberQuality uint8
 
 type IBACnetNetworkNumberQuality interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetNetworkPortCommand.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetNetworkPortCommand.go
index 2e33e51525..08a3b733b8 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetNetworkPortCommand.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetNetworkPortCommand.go
@@ -33,6 +33,7 @@ type BACnetNetworkPortCommand uint8
 
 type IBACnetNetworkPortCommand interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetNetworkType.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetNetworkType.go
index 53eebedb1d..0441cc178d 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetNetworkType.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetNetworkType.go
@@ -33,6 +33,7 @@ type BACnetNetworkType uint8
 
 type IBACnetNetworkType interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetNodeType.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetNodeType.go
index b85ee107e0..72f16dc410 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetNodeType.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetNodeType.go
@@ -33,6 +33,7 @@ type BACnetNodeType uint8
 
 type IBACnetNodeType interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetNotifyType.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetNotifyType.go
index 430637a45e..d26f29073d 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetNotifyType.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetNotifyType.go
@@ -33,6 +33,7 @@ type BACnetNotifyType uint8
 
 type IBACnetNotifyType interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetObjectType.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetObjectType.go
index a61b3bf9a4..c7f78bcf1e 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetObjectType.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetObjectType.go
@@ -33,6 +33,7 @@ type BACnetObjectType uint16
 
 type IBACnetObjectType interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetObjectTypesSupported.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetObjectTypesSupported.go
index c46a4fb92f..e6341ce7fa 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetObjectTypesSupported.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetObjectTypesSupported.go
@@ -33,6 +33,7 @@ type BACnetObjectTypesSupported uint8
 
 type IBACnetObjectTypesSupported interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetPolarity.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetPolarity.go
index 0dddca799c..66846f5120 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetPolarity.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetPolarity.go
@@ -33,6 +33,7 @@ type BACnetPolarity uint8
 
 type IBACnetPolarity interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetProgramError.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetProgramError.go
index 588d0416fe..fc6864943c 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetProgramError.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetProgramError.go
@@ -33,6 +33,7 @@ type BACnetProgramError uint16
 
 type IBACnetProgramError interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetProgramRequest.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetProgramRequest.go
index f97403f0a7..7b1c023279 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetProgramRequest.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetProgramRequest.go
@@ -33,6 +33,7 @@ type BACnetProgramRequest uint8
 
 type IBACnetProgramRequest interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetProgramState.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetProgramState.go
index 28be4dbc83..8cf47c93a2 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetProgramState.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetProgramState.go
@@ -33,6 +33,7 @@ type BACnetProgramState uint8
 
 type IBACnetProgramState interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetPropertyIdentifier.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetPropertyIdentifier.go
index f4c1b6f596..a77673e9c1 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetPropertyIdentifier.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetPropertyIdentifier.go
@@ -33,6 +33,7 @@ type BACnetPropertyIdentifier uint32
 
 type IBACnetPropertyIdentifier interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetProtocolLevel.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetProtocolLevel.go
index 1ea1a0724a..c7cfbb345b 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetProtocolLevel.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetProtocolLevel.go
@@ -33,6 +33,7 @@ type BACnetProtocolLevel uint8
 
 type IBACnetProtocolLevel interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetRejectReason.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetRejectReason.go
index f1c1f3932c..952cc22fcc 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetRejectReason.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetRejectReason.go
@@ -33,6 +33,7 @@ type BACnetRejectReason uint8
 
 type IBACnetRejectReason interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetRelationship.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetRelationship.go
index 4f40f2d84c..e34d916f29 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetRelationship.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetRelationship.go
@@ -33,6 +33,7 @@ type BACnetRelationship uint16
 
 type IBACnetRelationship interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetReliability.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetReliability.go
index 02ac6bdabe..b120c5c6c9 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetReliability.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetReliability.go
@@ -33,6 +33,7 @@ type BACnetReliability uint16
 
 type IBACnetReliability interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetRestartReason.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetRestartReason.go
index d5aff8bf5d..6d271e7ff9 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetRestartReason.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetRestartReason.go
@@ -33,6 +33,7 @@ type BACnetRestartReason uint8
 
 type IBACnetRestartReason interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetResultFlags.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetResultFlags.go
index d629050d57..f8e3965421 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetResultFlags.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetResultFlags.go
@@ -33,6 +33,7 @@ type BACnetResultFlags uint8
 
 type IBACnetResultFlags interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetRouterEntryStatus.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetRouterEntryStatus.go
index 5bd8630f96..2aac411b23 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetRouterEntryStatus.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetRouterEntryStatus.go
@@ -33,6 +33,7 @@ type BACnetRouterEntryStatus uint8
 
 type IBACnetRouterEntryStatus interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetSecurityLevel.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetSecurityLevel.go
index c37c220916..cab81f1e42 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetSecurityLevel.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetSecurityLevel.go
@@ -33,6 +33,7 @@ type BACnetSecurityLevel uint8
 
 type IBACnetSecurityLevel interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetSecurityPolicy.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetSecurityPolicy.go
index 0fbaeadaf1..7cb4c5ebb1 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetSecurityPolicy.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetSecurityPolicy.go
@@ -33,6 +33,7 @@ type BACnetSecurityPolicy uint8
 
 type IBACnetSecurityPolicy interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetSegmentation.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetSegmentation.go
index 4ca0b4e33b..e67de3722e 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetSegmentation.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetSegmentation.go
@@ -33,6 +33,7 @@ type BACnetSegmentation uint8
 
 type IBACnetSegmentation interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetServicesSupported.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetServicesSupported.go
index 46507fa2f9..b180d9ad0d 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetServicesSupported.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetServicesSupported.go
@@ -33,6 +33,7 @@ type BACnetServicesSupported uint8
 
 type IBACnetServicesSupported interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetShedState.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetShedState.go
index e62cf18f3d..a5c2df20af 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetShedState.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetShedState.go
@@ -33,6 +33,7 @@ type BACnetShedState uint8
 
 type IBACnetShedState interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetSilencedState.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetSilencedState.go
index ac2e9b46a2..4af333c828 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetSilencedState.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetSilencedState.go
@@ -33,6 +33,7 @@ type BACnetSilencedState uint16
 
 type IBACnetSilencedState interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetStatusFlags.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetStatusFlags.go
index dcff49898c..174235beea 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetStatusFlags.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetStatusFlags.go
@@ -33,6 +33,7 @@ type BACnetStatusFlags uint8
 
 type IBACnetStatusFlags interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetTimerState.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetTimerState.go
index b97db611cd..b720d8a0eb 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetTimerState.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetTimerState.go
@@ -33,6 +33,7 @@ type BACnetTimerState uint8
 
 type IBACnetTimerState interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetTimerTransition.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetTimerTransition.go
index 6dea52d24d..5820b8740e 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetTimerTransition.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetTimerTransition.go
@@ -33,6 +33,7 @@ type BACnetTimerTransition uint8
 
 type IBACnetTimerTransition interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetUnconfirmedServiceChoice.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetUnconfirmedServiceChoice.go
index 67ede2f310..b850f370f3 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetUnconfirmedServiceChoice.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetUnconfirmedServiceChoice.go
@@ -33,6 +33,7 @@ type BACnetUnconfirmedServiceChoice uint8
 
 type IBACnetUnconfirmedServiceChoice interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetVTClass.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetVTClass.go
index 5ff307a734..9764dbf1bc 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetVTClass.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetVTClass.go
@@ -33,6 +33,7 @@ type BACnetVTClass uint16
 
 type IBACnetVTClass interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetVendorId.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetVendorId.go
index acec716b2a..b724fc2e9e 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetVendorId.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetVendorId.go
@@ -33,6 +33,7 @@ type BACnetVendorId uint16
 
 type IBACnetVendorId interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 	VendorId() uint16
 	VendorName() string
@@ -1443,6 +1444,9 @@ const (
 	BACnetVendorId_CALIBRATION_TECHNOLOGIES_INC                                                 BACnetVendorId = 1410
 	BACnetVendorId_ALLORADO                                                                     BACnetVendorId = 1411
 	BACnetVendorId_VERKADA                                                                      BACnetVendorId = 1412
+	BACnetVendorId_WATTSENSE                                                                    BACnetVendorId = 1413
+	BACnetVendorId_EMERSON_AUTOMATION_SOLUTIONS                                                 BACnetVendorId = 1414
+	BACnetVendorId_GROWLINK                                                                     BACnetVendorId = 1415
 	BACnetVendorId_UNKNOWN_VENDOR                                                               BACnetVendorId = 0xFFFF
 )
 
@@ -2855,6 +2859,9 @@ func init() {
 		BACnetVendorId_CALIBRATION_TECHNOLOGIES_INC,
 		BACnetVendorId_ALLORADO,
 		BACnetVendorId_VERKADA,
+		BACnetVendorId_WATTSENSE,
+		BACnetVendorId_EMERSON_AUTOMATION_SOLUTIONS,
+		BACnetVendorId_GROWLINK,
 		BACnetVendorId_UNKNOWN_VENDOR,
 	}
 }
@@ -4701,6 +4708,18 @@ func (e BACnetVendorId) VendorId() uint16 {
 		{ /* '1412' */
 			return 1412
 		}
+	case 1413:
+		{ /* '1413' */
+			return 1413
+		}
+	case 1414:
+		{ /* '1414' */
+			return 1414
+		}
+	case 1415:
+		{ /* '1415' */
+			return 1415
+		}
 	case 142:
 		{ /* '142' */
 			return 142
@@ -10339,6 +10358,18 @@ func (e BACnetVendorId) VendorName() string {
 		{ /* '1412' */
 			return "Verkada"
 		}
+	case 1413:
+		{ /* '1413' */
+			return "Wattsense"
+		}
+	case 1414:
+		{ /* '1414' */
+			return "Emerson Automation Solutions"
+		}
+	case 1415:
+		{ /* '1415' */
+			return "Growlink"
+		}
 	case 142:
 		{ /* '142' */
 			return "DEOS control systems GmbH"
@@ -15056,6 +15087,12 @@ func BACnetVendorIdByValue(value uint16) (enum BACnetVendorId, ok bool) {
 		return BACnetVendorId_ALLORADO, true
 	case 1412:
 		return BACnetVendorId_VERKADA, true
+	case 1413:
+		return BACnetVendorId_WATTSENSE, true
+	case 1414:
+		return BACnetVendorId_EMERSON_AUTOMATION_SOLUTIONS, true
+	case 1415:
+		return BACnetVendorId_GROWLINK, true
 	case 142:
 		return BACnetVendorId_DEO_SCONTROLSYSTEMS_GMBH, true
 	case 143:
@@ -17872,6 +17909,12 @@ func BACnetVendorIdByName(value string) (enum BACnetVendorId, ok bool) {
 		return BACnetVendorId_ALLORADO, true
 	case "VERKADA":
 		return BACnetVendorId_VERKADA, true
+	case "WATTSENSE":
+		return BACnetVendorId_WATTSENSE, true
+	case "EMERSON_AUTOMATION_SOLUTIONS":
+		return BACnetVendorId_EMERSON_AUTOMATION_SOLUTIONS, true
+	case "GROWLINK":
+		return BACnetVendorId_GROWLINK, true
 	case "DEO_SCONTROLSYSTEMS_GMBH":
 		return BACnetVendorId_DEO_SCONTROLSYSTEMS_GMBH, true
 	case "DIGITALE_MESSUND_STEUERSYSTEMEAG":
@@ -20745,6 +20788,12 @@ func (e BACnetVendorId) PLC4XEnumName() string {
 		return "ALLORADO"
 	case BACnetVendorId_VERKADA:
 		return "VERKADA"
+	case BACnetVendorId_WATTSENSE:
+		return "WATTSENSE"
+	case BACnetVendorId_EMERSON_AUTOMATION_SOLUTIONS:
+		return "EMERSON_AUTOMATION_SOLUTIONS"
+	case BACnetVendorId_GROWLINK:
+		return "GROWLINK"
 	case BACnetVendorId_DEO_SCONTROLSYSTEMS_GMBH:
 		return "DEO_SCONTROLSYSTEMS_GMBH"
 	case BACnetVendorId_DIGITALE_MESSUND_STEUERSYSTEMEAG:
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetWriteStatus.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetWriteStatus.go
index 0d8739baa3..6356fcbe93 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetWriteStatus.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetWriteStatus.go
@@ -33,6 +33,7 @@ type BACnetWriteStatus uint8
 
 type IBACnetWriteStatus interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BVLCResultCode.go b/plc4go/protocols/bacnetip/readwrite/model/BVLCResultCode.go
index 99e8758e8c..30589deaf9 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BVLCResultCode.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BVLCResultCode.go
@@ -33,6 +33,7 @@ type BVLCResultCode uint16
 
 type IBVLCResultCode interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/ErrorClass.go b/plc4go/protocols/bacnetip/readwrite/model/ErrorClass.go
index 3a5680b6d4..e34796be59 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/ErrorClass.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/ErrorClass.go
@@ -33,6 +33,7 @@ type ErrorClass uint16
 
 type IErrorClass interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/ErrorCode.go b/plc4go/protocols/bacnetip/readwrite/model/ErrorCode.go
index d29baac8b6..eebafbe613 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/ErrorCode.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/ErrorCode.go
@@ -33,6 +33,7 @@ type ErrorCode uint16
 
 type IErrorCode interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/MaxApduLengthAccepted.go b/plc4go/protocols/bacnetip/readwrite/model/MaxApduLengthAccepted.go
index 60d81f4574..86fc7a4541 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/MaxApduLengthAccepted.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/MaxApduLengthAccepted.go
@@ -33,6 +33,7 @@ type MaxApduLengthAccepted uint8
 
 type IMaxApduLengthAccepted interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 	NumberOfOctets() uint16
 }
diff --git a/plc4go/protocols/bacnetip/readwrite/model/MaxSegmentsAccepted.go b/plc4go/protocols/bacnetip/readwrite/model/MaxSegmentsAccepted.go
index 1f72ce71a5..12de0e77e8 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/MaxSegmentsAccepted.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/MaxSegmentsAccepted.go
@@ -33,6 +33,7 @@ type MaxSegmentsAccepted uint8
 
 type IMaxSegmentsAccepted interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 	MaxSegments() uint8
 }
diff --git a/plc4go/protocols/bacnetip/readwrite/model/NLMRejectRouterToNetworkRejectReason.go b/plc4go/protocols/bacnetip/readwrite/model/NLMRejectRouterToNetworkRejectReason.go
index e7f9ed7f61..cea92c7946 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/NLMRejectRouterToNetworkRejectReason.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/NLMRejectRouterToNetworkRejectReason.go
@@ -33,6 +33,7 @@ type NLMRejectRouterToNetworkRejectReason uint8
 
 type INLMRejectRouterToNetworkRejectReason interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/NPDUNetworkPriority.go b/plc4go/protocols/bacnetip/readwrite/model/NPDUNetworkPriority.go
index 5537e0f67f..5752853ef8 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/NPDUNetworkPriority.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/NPDUNetworkPriority.go
@@ -33,6 +33,7 @@ type NPDUNetworkPriority uint8
 
 type INPDUNetworkPriority interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/SecurityResponseCode.go b/plc4go/protocols/bacnetip/readwrite/model/SecurityResponseCode.go
index 41d22e3211..bf0a68b76e 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/SecurityResponseCode.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/SecurityResponseCode.go
@@ -33,6 +33,7 @@ type SecurityResponseCode uint8
 
 type ISecurityResponseCode interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/TagClass.go b/plc4go/protocols/bacnetip/readwrite/model/TagClass.go
index c9a93a6f0c..7f5ceed17c 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/TagClass.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/TagClass.go
@@ -33,6 +33,7 @@ type TagClass uint8
 
 type ITagClass interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/cbus/readwrite/model/AccessControlCategory.go b/plc4go/protocols/cbus/readwrite/model/AccessControlCategory.go
index 9fe8f0dea4..32d5a66c32 100644
--- a/plc4go/protocols/cbus/readwrite/model/AccessControlCategory.go
+++ b/plc4go/protocols/cbus/readwrite/model/AccessControlCategory.go
@@ -33,6 +33,7 @@ type AccessControlCategory uint8
 
 type IAccessControlCategory interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/cbus/readwrite/model/AccessControlCommandType.go b/plc4go/protocols/cbus/readwrite/model/AccessControlCommandType.go
index 8b529ce429..136b5b87eb 100644
--- a/plc4go/protocols/cbus/readwrite/model/AccessControlCommandType.go
+++ b/plc4go/protocols/cbus/readwrite/model/AccessControlCommandType.go
@@ -33,6 +33,7 @@ type AccessControlCommandType uint8
 
 type IAccessControlCommandType interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 	NumberOfArguments() uint8
 }
diff --git a/plc4go/protocols/cbus/readwrite/model/AccessControlCommandTypeContainer.go b/plc4go/protocols/cbus/readwrite/model/AccessControlCommandTypeContainer.go
index 763e3af91a..8ac735fce0 100644
--- a/plc4go/protocols/cbus/readwrite/model/AccessControlCommandTypeContainer.go
+++ b/plc4go/protocols/cbus/readwrite/model/AccessControlCommandTypeContainer.go
@@ -33,6 +33,7 @@ type AccessControlCommandTypeContainer uint8
 
 type IAccessControlCommandTypeContainer interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 	NumBytes() uint8
 	CommandType() AccessControlCommandType
diff --git a/plc4go/protocols/cbus/readwrite/model/AccessControlDirection.go b/plc4go/protocols/cbus/readwrite/model/AccessControlDirection.go
index 548521c1fc..2073618306 100644
--- a/plc4go/protocols/cbus/readwrite/model/AccessControlDirection.go
+++ b/plc4go/protocols/cbus/readwrite/model/AccessControlDirection.go
@@ -33,6 +33,7 @@ type AccessControlDirection uint8
 
 type IAccessControlDirection interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/cbus/readwrite/model/AirConditioningCommandType.go b/plc4go/protocols/cbus/readwrite/model/AirConditioningCommandType.go
index 2e82866d9c..4f23156e00 100644
--- a/plc4go/protocols/cbus/readwrite/model/AirConditioningCommandType.go
+++ b/plc4go/protocols/cbus/readwrite/model/AirConditioningCommandType.go
@@ -33,6 +33,7 @@ type AirConditioningCommandType uint8
 
 type IAirConditioningCommandType interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 	NumberOfArguments() uint8
 }
diff --git a/plc4go/protocols/cbus/readwrite/model/AirConditioningCommandTypeContainer.go b/plc4go/protocols/cbus/readwrite/model/AirConditioningCommandTypeContainer.go
index 06d4e9a212..759b40eed5 100644
--- a/plc4go/protocols/cbus/readwrite/model/AirConditioningCommandTypeContainer.go
+++ b/plc4go/protocols/cbus/readwrite/model/AirConditioningCommandTypeContainer.go
@@ -33,6 +33,7 @@ type AirConditioningCommandTypeContainer uint8
 
 type IAirConditioningCommandTypeContainer interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 	NumBytes() uint8
 	CommandType() AirConditioningCommandType
diff --git a/plc4go/protocols/cbus/readwrite/model/ApplicationId.go b/plc4go/protocols/cbus/readwrite/model/ApplicationId.go
index 4dd1ce4433..c39bb38830 100644
--- a/plc4go/protocols/cbus/readwrite/model/ApplicationId.go
+++ b/plc4go/protocols/cbus/readwrite/model/ApplicationId.go
@@ -33,6 +33,7 @@ type ApplicationId uint8
 
 type IApplicationId interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/cbus/readwrite/model/ApplicationIdContainer.go b/plc4go/protocols/cbus/readwrite/model/ApplicationIdContainer.go
index c999b446aa..cc3cfbda65 100644
--- a/plc4go/protocols/cbus/readwrite/model/ApplicationIdContainer.go
+++ b/plc4go/protocols/cbus/readwrite/model/ApplicationIdContainer.go
@@ -33,6 +33,7 @@ type ApplicationIdContainer uint8
 
 type IApplicationIdContainer interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 	LightingCompatible() LightingCompatible
 	ApplicationId() ApplicationId
diff --git a/plc4go/protocols/cbus/readwrite/model/Attribute.go b/plc4go/protocols/cbus/readwrite/model/Attribute.go
index 5d3b47b1fe..8a04c32eb4 100644
--- a/plc4go/protocols/cbus/readwrite/model/Attribute.go
+++ b/plc4go/protocols/cbus/readwrite/model/Attribute.go
@@ -33,6 +33,7 @@ type Attribute uint8
 
 type IAttribute interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 	BytesReturned() uint8
 }
diff --git a/plc4go/protocols/cbus/readwrite/model/BaudRateSelector.go b/plc4go/protocols/cbus/readwrite/model/BaudRateSelector.go
index ae5f7fb635..3228877c19 100644
--- a/plc4go/protocols/cbus/readwrite/model/BaudRateSelector.go
+++ b/plc4go/protocols/cbus/readwrite/model/BaudRateSelector.go
@@ -33,6 +33,7 @@ type BaudRateSelector uint8
 
 type IBaudRateSelector interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/cbus/readwrite/model/CALCommandType.go b/plc4go/protocols/cbus/readwrite/model/CALCommandType.go
index 55ef7e30c6..b01678e89d 100644
--- a/plc4go/protocols/cbus/readwrite/model/CALCommandType.go
+++ b/plc4go/protocols/cbus/readwrite/model/CALCommandType.go
@@ -33,6 +33,7 @@ type CALCommandType uint8
 
 type ICALCommandType interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/cbus/readwrite/model/CALCommandTypeContainer.go b/plc4go/protocols/cbus/readwrite/model/CALCommandTypeContainer.go
index 983d30705a..e138728333 100644
--- a/plc4go/protocols/cbus/readwrite/model/CALCommandTypeContainer.go
+++ b/plc4go/protocols/cbus/readwrite/model/CALCommandTypeContainer.go
@@ -33,6 +33,7 @@ type CALCommandTypeContainer uint8
 
 type ICALCommandTypeContainer interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 	NumBytes() uint8
 	CommandType() CALCommandType
diff --git a/plc4go/protocols/cbus/readwrite/model/ChannelStatus.go b/plc4go/protocols/cbus/readwrite/model/ChannelStatus.go
index c270da6fac..fb91dcb0db 100644
--- a/plc4go/protocols/cbus/readwrite/model/ChannelStatus.go
+++ b/plc4go/protocols/cbus/readwrite/model/ChannelStatus.go
@@ -33,6 +33,7 @@ type ChannelStatus uint8
 
 type IChannelStatus interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/cbus/readwrite/model/ClockAndTimekeepingCommandType.go b/plc4go/protocols/cbus/readwrite/model/ClockAndTimekeepingCommandType.go
index 0b4a410d61..4779c6a737 100644
--- a/plc4go/protocols/cbus/readwrite/model/ClockAndTimekeepingCommandType.go
+++ b/plc4go/protocols/cbus/readwrite/model/ClockAndTimekeepingCommandType.go
@@ -33,6 +33,7 @@ type ClockAndTimekeepingCommandType uint8
 
 type IClockAndTimekeepingCommandType interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 	NumberOfArguments() uint8
 }
diff --git a/plc4go/protocols/cbus/readwrite/model/ClockAndTimekeepingCommandTypeContainer.go b/plc4go/protocols/cbus/readwrite/model/ClockAndTimekeepingCommandTypeContainer.go
index d870f8fc8b..3c3d1269ba 100644
--- a/plc4go/protocols/cbus/readwrite/model/ClockAndTimekeepingCommandTypeContainer.go
+++ b/plc4go/protocols/cbus/readwrite/model/ClockAndTimekeepingCommandTypeContainer.go
@@ -33,6 +33,7 @@ type ClockAndTimekeepingCommandTypeContainer uint8
 
 type IClockAndTimekeepingCommandTypeContainer interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 	NumBytes() uint8
 	CommandType() ClockAndTimekeepingCommandType
diff --git a/plc4go/protocols/cbus/readwrite/model/ConfirmationType.go b/plc4go/protocols/cbus/readwrite/model/ConfirmationType.go
index de657d9642..079376ff24 100644
--- a/plc4go/protocols/cbus/readwrite/model/ConfirmationType.go
+++ b/plc4go/protocols/cbus/readwrite/model/ConfirmationType.go
@@ -33,6 +33,7 @@ type ConfirmationType byte
 
 type IConfirmationType interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/cbus/readwrite/model/DestinationAddressType.go b/plc4go/protocols/cbus/readwrite/model/DestinationAddressType.go
index 694ae81b0e..8164013089 100644
--- a/plc4go/protocols/cbus/readwrite/model/DestinationAddressType.go
+++ b/plc4go/protocols/cbus/readwrite/model/DestinationAddressType.go
@@ -33,6 +33,7 @@ type DestinationAddressType uint8
 
 type IDestinationAddressType interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/cbus/readwrite/model/DialInFailureReason.go b/plc4go/protocols/cbus/readwrite/model/DialInFailureReason.go
index 042c206058..c0576fbb55 100644
--- a/plc4go/protocols/cbus/readwrite/model/DialInFailureReason.go
+++ b/plc4go/protocols/cbus/readwrite/model/DialInFailureReason.go
@@ -33,6 +33,7 @@ type DialInFailureReason uint8
 
 type IDialInFailureReason interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/cbus/readwrite/model/DialOutFailureReason.go b/plc4go/protocols/cbus/readwrite/model/DialOutFailureReason.go
index f137975da4..c64a6b1fa6 100644
--- a/plc4go/protocols/cbus/readwrite/model/DialOutFailureReason.go
+++ b/plc4go/protocols/cbus/readwrite/model/DialOutFailureReason.go
@@ -33,6 +33,7 @@ type DialOutFailureReason uint8
 
 type IDialOutFailureReason interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/cbus/readwrite/model/EnableControlCommandType.go b/plc4go/protocols/cbus/readwrite/model/EnableControlCommandType.go
index edfbd2cba9..9968b539e6 100644
--- a/plc4go/protocols/cbus/readwrite/model/EnableControlCommandType.go
+++ b/plc4go/protocols/cbus/readwrite/model/EnableControlCommandType.go
@@ -33,6 +33,7 @@ type EnableControlCommandType uint8
 
 type IEnableControlCommandType interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 	NumberOfArguments() uint8
 }
diff --git a/plc4go/protocols/cbus/readwrite/model/EnableControlCommandTypeContainer.go b/plc4go/protocols/cbus/readwrite/model/EnableControlCommandTypeContainer.go
index 10da7488ad..a2e8a3a0bc 100644
--- a/plc4go/protocols/cbus/readwrite/model/EnableControlCommandTypeContainer.go
+++ b/plc4go/protocols/cbus/readwrite/model/EnableControlCommandTypeContainer.go
@@ -33,6 +33,7 @@ type EnableControlCommandTypeContainer uint8
 
 type IEnableControlCommandTypeContainer interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 	NumBytes() uint8
 	CommandType() EnableControlCommandType
diff --git a/plc4go/protocols/cbus/readwrite/model/ErrorReportingCommandType.go b/plc4go/protocols/cbus/readwrite/model/ErrorReportingCommandType.go
index 32321c3a86..430252b541 100644
--- a/plc4go/protocols/cbus/readwrite/model/ErrorReportingCommandType.go
+++ b/plc4go/protocols/cbus/readwrite/model/ErrorReportingCommandType.go
@@ -33,6 +33,7 @@ type ErrorReportingCommandType uint8
 
 type IErrorReportingCommandType interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 	NumberOfArguments() uint8
 }
diff --git a/plc4go/protocols/cbus/readwrite/model/ErrorReportingCommandTypeContainer.go b/plc4go/protocols/cbus/readwrite/model/ErrorReportingCommandTypeContainer.go
index 5dec9ad1e0..66f9747d74 100644
--- a/plc4go/protocols/cbus/readwrite/model/ErrorReportingCommandTypeContainer.go
+++ b/plc4go/protocols/cbus/readwrite/model/ErrorReportingCommandTypeContainer.go
@@ -33,6 +33,7 @@ type ErrorReportingCommandTypeContainer uint8
 
 type IErrorReportingCommandTypeContainer interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 	NumBytes() uint8
 	CommandType() ErrorReportingCommandType
diff --git a/plc4go/protocols/cbus/readwrite/model/ErrorReportingSeverity.go b/plc4go/protocols/cbus/readwrite/model/ErrorReportingSeverity.go
index 19f2a5a0df..6d529676e6 100644
--- a/plc4go/protocols/cbus/readwrite/model/ErrorReportingSeverity.go
+++ b/plc4go/protocols/cbus/readwrite/model/ErrorReportingSeverity.go
@@ -33,6 +33,7 @@ type ErrorReportingSeverity uint8
 
 type IErrorReportingSeverity interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/cbus/readwrite/model/ErrorReportingSystemCategoryClass.go b/plc4go/protocols/cbus/readwrite/model/ErrorReportingSystemCategoryClass.go
index b51cd76bf6..9760bcc794 100644
--- a/plc4go/protocols/cbus/readwrite/model/ErrorReportingSystemCategoryClass.go
+++ b/plc4go/protocols/cbus/readwrite/model/ErrorReportingSystemCategoryClass.go
@@ -33,6 +33,7 @@ type ErrorReportingSystemCategoryClass uint8
 
 type IErrorReportingSystemCategoryClass interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/cbus/readwrite/model/ErrorReportingSystemCategoryTypeForBuildingManagementSystems.go b/plc4go/protocols/cbus/readwrite/model/ErrorReportingSystemCategoryTypeForBuildingManagementSystems.go
index 0d365d5e06..7e5db1c011 100644
--- a/plc4go/protocols/cbus/readwrite/model/ErrorReportingSystemCategoryTypeForBuildingManagementSystems.go
+++ b/plc4go/protocols/cbus/readwrite/model/ErrorReportingSystemCategoryTypeForBuildingManagementSystems.go
@@ -33,6 +33,7 @@ type ErrorReportingSystemCategoryTypeForBuildingManagementSystems uint8
 
 type IErrorReportingSystemCategoryTypeForBuildingManagementSystems interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/cbus/readwrite/model/ErrorReportingSystemCategoryTypeForClimateControllers.go b/plc4go/protocols/cbus/readwrite/model/ErrorReportingSystemCategoryTypeForClimateControllers.go
index 88c9a635c1..7dbf3793f3 100644
--- a/plc4go/protocols/cbus/readwrite/model/ErrorReportingSystemCategoryTypeForClimateControllers.go
+++ b/plc4go/protocols/cbus/readwrite/model/ErrorReportingSystemCategoryTypeForClimateControllers.go
@@ -33,6 +33,7 @@ type ErrorReportingSystemCategoryTypeForClimateControllers uint8
 
 type IErrorReportingSystemCategoryTypeForClimateControllers interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/cbus/readwrite/model/ErrorReportingSystemCategoryTypeForInputUnits.go b/plc4go/protocols/cbus/readwrite/model/ErrorReportingSystemCategoryTypeForInputUnits.go
index 7eea84f034..785a5b0909 100644
--- a/plc4go/protocols/cbus/readwrite/model/ErrorReportingSystemCategoryTypeForInputUnits.go
+++ b/plc4go/protocols/cbus/readwrite/model/ErrorReportingSystemCategoryTypeForInputUnits.go
@@ -33,6 +33,7 @@ type ErrorReportingSystemCategoryTypeForInputUnits uint8
 
 type IErrorReportingSystemCategoryTypeForInputUnits interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/cbus/readwrite/model/ErrorReportingSystemCategoryTypeForOutputUnits.go b/plc4go/protocols/cbus/readwrite/model/ErrorReportingSystemCategoryTypeForOutputUnits.go
index e08915e61a..25bbc56dc7 100644
--- a/plc4go/protocols/cbus/readwrite/model/ErrorReportingSystemCategoryTypeForOutputUnits.go
+++ b/plc4go/protocols/cbus/readwrite/model/ErrorReportingSystemCategoryTypeForOutputUnits.go
@@ -33,6 +33,7 @@ type ErrorReportingSystemCategoryTypeForOutputUnits uint8
 
 type IErrorReportingSystemCategoryTypeForOutputUnits interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/cbus/readwrite/model/ErrorReportingSystemCategoryTypeForSupportUnits.go b/plc4go/protocols/cbus/readwrite/model/ErrorReportingSystemCategoryTypeForSupportUnits.go
index dff1f91a58..dace5d4006 100644
--- a/plc4go/protocols/cbus/readwrite/model/ErrorReportingSystemCategoryTypeForSupportUnits.go
+++ b/plc4go/protocols/cbus/readwrite/model/ErrorReportingSystemCategoryTypeForSupportUnits.go
@@ -33,6 +33,7 @@ type ErrorReportingSystemCategoryTypeForSupportUnits uint8
 
 type IErrorReportingSystemCategoryTypeForSupportUnits interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/cbus/readwrite/model/ErrorReportingSystemCategoryVariant.go b/plc4go/protocols/cbus/readwrite/model/ErrorReportingSystemCategoryVariant.go
index 5b310833f7..df896a1c0a 100644
--- a/plc4go/protocols/cbus/readwrite/model/ErrorReportingSystemCategoryVariant.go
+++ b/plc4go/protocols/cbus/readwrite/model/ErrorReportingSystemCategoryVariant.go
@@ -33,6 +33,7 @@ type ErrorReportingSystemCategoryVariant uint8
 
 type IErrorReportingSystemCategoryVariant interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/cbus/readwrite/model/GAVState.go b/plc4go/protocols/cbus/readwrite/model/GAVState.go
index a765c9c0bd..2a21ae1947 100644
--- a/plc4go/protocols/cbus/readwrite/model/GAVState.go
+++ b/plc4go/protocols/cbus/readwrite/model/GAVState.go
@@ -33,6 +33,7 @@ type GAVState uint8
 
 type IGAVState interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/cbus/readwrite/model/HVACError.go b/plc4go/protocols/cbus/readwrite/model/HVACError.go
index efa573f5a3..33ada9b59a 100644
--- a/plc4go/protocols/cbus/readwrite/model/HVACError.go
+++ b/plc4go/protocols/cbus/readwrite/model/HVACError.go
@@ -33,6 +33,7 @@ type HVACError uint8
 
 type IHVACError interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/cbus/readwrite/model/HVACHumidityError.go b/plc4go/protocols/cbus/readwrite/model/HVACHumidityError.go
index ea952cef0e..8d8a5a2cc4 100644
--- a/plc4go/protocols/cbus/readwrite/model/HVACHumidityError.go
+++ b/plc4go/protocols/cbus/readwrite/model/HVACHumidityError.go
@@ -33,6 +33,7 @@ type HVACHumidityError uint8
 
 type IHVACHumidityError interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/cbus/readwrite/model/HVACHumidityModeAndFlagsMode.go b/plc4go/protocols/cbus/readwrite/model/HVACHumidityModeAndFlagsMode.go
index f448c136a7..6364c5f7f9 100644
--- a/plc4go/protocols/cbus/readwrite/model/HVACHumidityModeAndFlagsMode.go
+++ b/plc4go/protocols/cbus/readwrite/model/HVACHumidityModeAndFlagsMode.go
@@ -33,6 +33,7 @@ type HVACHumidityModeAndFlagsMode uint8
 
 type IHVACHumidityModeAndFlagsMode interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/cbus/readwrite/model/HVACHumidityType.go b/plc4go/protocols/cbus/readwrite/model/HVACHumidityType.go
index 2043cf1795..9c26d32c03 100644
--- a/plc4go/protocols/cbus/readwrite/model/HVACHumidityType.go
+++ b/plc4go/protocols/cbus/readwrite/model/HVACHumidityType.go
@@ -33,6 +33,7 @@ type HVACHumidityType uint8
 
 type IHVACHumidityType interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/cbus/readwrite/model/HVACModeAndFlagsMode.go b/plc4go/protocols/cbus/readwrite/model/HVACModeAndFlagsMode.go
index 6e4ebcf6ed..fc8a241066 100644
--- a/plc4go/protocols/cbus/readwrite/model/HVACModeAndFlagsMode.go
+++ b/plc4go/protocols/cbus/readwrite/model/HVACModeAndFlagsMode.go
@@ -33,6 +33,7 @@ type HVACModeAndFlagsMode uint8
 
 type IHVACModeAndFlagsMode interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/cbus/readwrite/model/HVACSensorStatus.go b/plc4go/protocols/cbus/readwrite/model/HVACSensorStatus.go
index da43d2e43b..18dfd70dea 100644
--- a/plc4go/protocols/cbus/readwrite/model/HVACSensorStatus.go
+++ b/plc4go/protocols/cbus/readwrite/model/HVACSensorStatus.go
@@ -33,6 +33,7 @@ type HVACSensorStatus uint8
 
 type IHVACSensorStatus interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/cbus/readwrite/model/HVACType.go b/plc4go/protocols/cbus/readwrite/model/HVACType.go
index 0ae04fa300..11dacbd036 100644
--- a/plc4go/protocols/cbus/readwrite/model/HVACType.go
+++ b/plc4go/protocols/cbus/readwrite/model/HVACType.go
@@ -33,6 +33,7 @@ type HVACType uint8
 
 type IHVACType interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/cbus/readwrite/model/Language.go b/plc4go/protocols/cbus/readwrite/model/Language.go
index 44f6007bee..02670ad91d 100644
--- a/plc4go/protocols/cbus/readwrite/model/Language.go
+++ b/plc4go/protocols/cbus/readwrite/model/Language.go
@@ -33,6 +33,7 @@ type Language uint8
 
 type ILanguage interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/cbus/readwrite/model/LevelInformationNibblePair.go b/plc4go/protocols/cbus/readwrite/model/LevelInformationNibblePair.go
index 1f999526bb..d8d72fd6f1 100644
--- a/plc4go/protocols/cbus/readwrite/model/LevelInformationNibblePair.go
+++ b/plc4go/protocols/cbus/readwrite/model/LevelInformationNibblePair.go
@@ -33,6 +33,7 @@ type LevelInformationNibblePair uint8
 
 type ILevelInformationNibblePair interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 	NibbleValue() uint8
 }
diff --git a/plc4go/protocols/cbus/readwrite/model/LightingCommandType.go b/plc4go/protocols/cbus/readwrite/model/LightingCommandType.go
index 7d5ee5dea4..d00cb3f1eb 100644
--- a/plc4go/protocols/cbus/readwrite/model/LightingCommandType.go
+++ b/plc4go/protocols/cbus/readwrite/model/LightingCommandType.go
@@ -33,6 +33,7 @@ type LightingCommandType uint8
 
 type ILightingCommandType interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 	NumberOfArguments() uint8
 }
diff --git a/plc4go/protocols/cbus/readwrite/model/LightingCommandTypeContainer.go b/plc4go/protocols/cbus/readwrite/model/LightingCommandTypeContainer.go
index e8947b4b4a..38b759b6f3 100644
--- a/plc4go/protocols/cbus/readwrite/model/LightingCommandTypeContainer.go
+++ b/plc4go/protocols/cbus/readwrite/model/LightingCommandTypeContainer.go
@@ -33,6 +33,7 @@ type LightingCommandTypeContainer uint8
 
 type ILightingCommandTypeContainer interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 	NumBytes() uint8
 	CommandType() LightingCommandType
diff --git a/plc4go/protocols/cbus/readwrite/model/LightingCompatible.go b/plc4go/protocols/cbus/readwrite/model/LightingCompatible.go
index 9976b4c4a8..6d6d9557a0 100644
--- a/plc4go/protocols/cbus/readwrite/model/LightingCompatible.go
+++ b/plc4go/protocols/cbus/readwrite/model/LightingCompatible.go
@@ -33,6 +33,7 @@ type LightingCompatible uint8
 
 type ILightingCompatible interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/cbus/readwrite/model/LightingLabelFlavour.go b/plc4go/protocols/cbus/readwrite/model/LightingLabelFlavour.go
index fa7df19903..d5cd2a4cbc 100644
--- a/plc4go/protocols/cbus/readwrite/model/LightingLabelFlavour.go
+++ b/plc4go/protocols/cbus/readwrite/model/LightingLabelFlavour.go
@@ -33,6 +33,7 @@ type LightingLabelFlavour uint8
 
 type ILightingLabelFlavour interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/cbus/readwrite/model/LightingLabelType.go b/plc4go/protocols/cbus/readwrite/model/LightingLabelType.go
index 28b7febcbb..8c44b4437c 100644
--- a/plc4go/protocols/cbus/readwrite/model/LightingLabelType.go
+++ b/plc4go/protocols/cbus/readwrite/model/LightingLabelType.go
@@ -33,6 +33,7 @@ type LightingLabelType uint8
 
 type ILightingLabelType interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/cbus/readwrite/model/LineOffHookReason.go b/plc4go/protocols/cbus/readwrite/model/LineOffHookReason.go
index 0a30543d48..e8ecd0bc80 100644
--- a/plc4go/protocols/cbus/readwrite/model/LineOffHookReason.go
+++ b/plc4go/protocols/cbus/readwrite/model/LineOffHookReason.go
@@ -33,6 +33,7 @@ type LineOffHookReason uint8
 
 type ILineOffHookReason interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/cbus/readwrite/model/MeasurementCommandType.go b/plc4go/protocols/cbus/readwrite/model/MeasurementCommandType.go
index c38b06e45d..01180c6cf3 100644
--- a/plc4go/protocols/cbus/readwrite/model/MeasurementCommandType.go
+++ b/plc4go/protocols/cbus/readwrite/model/MeasurementCommandType.go
@@ -33,6 +33,7 @@ type MeasurementCommandType uint8
 
 type IMeasurementCommandType interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 	NumberOfArguments() uint8
 }
diff --git a/plc4go/protocols/cbus/readwrite/model/MeasurementCommandTypeContainer.go b/plc4go/protocols/cbus/readwrite/model/MeasurementCommandTypeContainer.go
index b687c6d5a9..bf56cb4d05 100644
--- a/plc4go/protocols/cbus/readwrite/model/MeasurementCommandTypeContainer.go
+++ b/plc4go/protocols/cbus/readwrite/model/MeasurementCommandTypeContainer.go
@@ -33,6 +33,7 @@ type MeasurementCommandTypeContainer uint8
 
 type IMeasurementCommandTypeContainer interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 	NumBytes() uint8
 	CommandType() MeasurementCommandType
diff --git a/plc4go/protocols/cbus/readwrite/model/MeasurementUnits.go b/plc4go/protocols/cbus/readwrite/model/MeasurementUnits.go
index 64e97286f1..fc1f251e3b 100644
--- a/plc4go/protocols/cbus/readwrite/model/MeasurementUnits.go
+++ b/plc4go/protocols/cbus/readwrite/model/MeasurementUnits.go
@@ -33,6 +33,7 @@ type MeasurementUnits uint8
 
 type IMeasurementUnits interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/cbus/readwrite/model/MediaTransportControlCommandType.go b/plc4go/protocols/cbus/readwrite/model/MediaTransportControlCommandType.go
index 65212b31cc..0b375f5c4e 100644
--- a/plc4go/protocols/cbus/readwrite/model/MediaTransportControlCommandType.go
+++ b/plc4go/protocols/cbus/readwrite/model/MediaTransportControlCommandType.go
@@ -33,6 +33,7 @@ type MediaTransportControlCommandType uint8
 
 type IMediaTransportControlCommandType interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 	NumberOfArguments() uint8
 }
diff --git a/plc4go/protocols/cbus/readwrite/model/MediaTransportControlCommandTypeContainer.go b/plc4go/protocols/cbus/readwrite/model/MediaTransportControlCommandTypeContainer.go
index b948c093f4..1c11b22d86 100644
--- a/plc4go/protocols/cbus/readwrite/model/MediaTransportControlCommandTypeContainer.go
+++ b/plc4go/protocols/cbus/readwrite/model/MediaTransportControlCommandTypeContainer.go
@@ -33,6 +33,7 @@ type MediaTransportControlCommandTypeContainer uint8
 
 type IMediaTransportControlCommandTypeContainer interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 	NumBytes() uint8
 	CommandType() MediaTransportControlCommandType
diff --git a/plc4go/protocols/cbus/readwrite/model/MeteringCommandType.go b/plc4go/protocols/cbus/readwrite/model/MeteringCommandType.go
index dac5485ae5..79f1771b34 100644
--- a/plc4go/protocols/cbus/readwrite/model/MeteringCommandType.go
+++ b/plc4go/protocols/cbus/readwrite/model/MeteringCommandType.go
@@ -33,6 +33,7 @@ type MeteringCommandType uint8
 
 type IMeteringCommandType interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 	NumberOfArguments() uint8
 }
diff --git a/plc4go/protocols/cbus/readwrite/model/MeteringCommandTypeContainer.go b/plc4go/protocols/cbus/readwrite/model/MeteringCommandTypeContainer.go
index b0b9fe63c4..e4291b79eb 100644
--- a/plc4go/protocols/cbus/readwrite/model/MeteringCommandTypeContainer.go
+++ b/plc4go/protocols/cbus/readwrite/model/MeteringCommandTypeContainer.go
@@ -33,6 +33,7 @@ type MeteringCommandTypeContainer uint8
 
 type IMeteringCommandTypeContainer interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 	NumBytes() uint8
 	CommandType() MeteringCommandType
diff --git a/plc4go/protocols/cbus/readwrite/model/Parameter.go b/plc4go/protocols/cbus/readwrite/model/Parameter.go
index 668c81bc85..e714dde590 100644
--- a/plc4go/protocols/cbus/readwrite/model/Parameter.go
+++ b/plc4go/protocols/cbus/readwrite/model/Parameter.go
@@ -33,6 +33,7 @@ type Parameter uint8
 
 type IParameter interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 	ParameterType() ParameterType
 	Form() string
diff --git a/plc4go/protocols/cbus/readwrite/model/ParameterType.go b/plc4go/protocols/cbus/readwrite/model/ParameterType.go
index a7af00afcc..d6da4daeca 100644
--- a/plc4go/protocols/cbus/readwrite/model/ParameterType.go
+++ b/plc4go/protocols/cbus/readwrite/model/ParameterType.go
@@ -33,6 +33,7 @@ type ParameterType uint8
 
 type IParameterType interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/cbus/readwrite/model/PriorityClass.go b/plc4go/protocols/cbus/readwrite/model/PriorityClass.go
index 3d1f063276..fedd17a053 100644
--- a/plc4go/protocols/cbus/readwrite/model/PriorityClass.go
+++ b/plc4go/protocols/cbus/readwrite/model/PriorityClass.go
@@ -33,6 +33,7 @@ type PriorityClass uint8
 
 type IPriorityClass interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/cbus/readwrite/model/ProtectionLevel.go b/plc4go/protocols/cbus/readwrite/model/ProtectionLevel.go
index 05b6afe076..fbe8f4ad67 100644
--- a/plc4go/protocols/cbus/readwrite/model/ProtectionLevel.go
+++ b/plc4go/protocols/cbus/readwrite/model/ProtectionLevel.go
@@ -33,6 +33,7 @@ type ProtectionLevel uint8
 
 type IProtectionLevel interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 	Description() string
 }
diff --git a/plc4go/protocols/cbus/readwrite/model/RequestType.go b/plc4go/protocols/cbus/readwrite/model/RequestType.go
index 23b8666618..42107c3d66 100644
--- a/plc4go/protocols/cbus/readwrite/model/RequestType.go
+++ b/plc4go/protocols/cbus/readwrite/model/RequestType.go
@@ -33,6 +33,7 @@ type RequestType uint8
 
 type IRequestType interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 	ControlChar() uint8
 }
diff --git a/plc4go/protocols/cbus/readwrite/model/SecurityCommandType.go b/plc4go/protocols/cbus/readwrite/model/SecurityCommandType.go
index 4a48384b4c..2bf751936c 100644
--- a/plc4go/protocols/cbus/readwrite/model/SecurityCommandType.go
+++ b/plc4go/protocols/cbus/readwrite/model/SecurityCommandType.go
@@ -33,6 +33,7 @@ type SecurityCommandType uint8
 
 type ISecurityCommandType interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 	NumberOfArguments() uint8
 }
diff --git a/plc4go/protocols/cbus/readwrite/model/SecurityCommandTypeContainer.go b/plc4go/protocols/cbus/readwrite/model/SecurityCommandTypeContainer.go
index 994e9624d7..4341d9d350 100644
--- a/plc4go/protocols/cbus/readwrite/model/SecurityCommandTypeContainer.go
+++ b/plc4go/protocols/cbus/readwrite/model/SecurityCommandTypeContainer.go
@@ -33,6 +33,7 @@ type SecurityCommandTypeContainer uint8
 
 type ISecurityCommandTypeContainer interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 	NumBytes() uint8
 	CommandType() SecurityCommandType
diff --git a/plc4go/protocols/cbus/readwrite/model/StatusCoding.go b/plc4go/protocols/cbus/readwrite/model/StatusCoding.go
index df7c0ffd98..f17ec69651 100644
--- a/plc4go/protocols/cbus/readwrite/model/StatusCoding.go
+++ b/plc4go/protocols/cbus/readwrite/model/StatusCoding.go
@@ -33,6 +33,7 @@ type StatusCoding byte
 
 type IStatusCoding interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/cbus/readwrite/model/TelephonyCommandType.go b/plc4go/protocols/cbus/readwrite/model/TelephonyCommandType.go
index 8400c2ceb9..42bc82338b 100644
--- a/plc4go/protocols/cbus/readwrite/model/TelephonyCommandType.go
+++ b/plc4go/protocols/cbus/readwrite/model/TelephonyCommandType.go
@@ -33,6 +33,7 @@ type TelephonyCommandType uint8
 
 type ITelephonyCommandType interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 	NumberOfArguments() uint8
 }
diff --git a/plc4go/protocols/cbus/readwrite/model/TelephonyCommandTypeContainer.go b/plc4go/protocols/cbus/readwrite/model/TelephonyCommandTypeContainer.go
index 5180d80c9d..259fe0d59d 100644
--- a/plc4go/protocols/cbus/readwrite/model/TelephonyCommandTypeContainer.go
+++ b/plc4go/protocols/cbus/readwrite/model/TelephonyCommandTypeContainer.go
@@ -33,6 +33,7 @@ type TelephonyCommandTypeContainer uint8
 
 type ITelephonyCommandTypeContainer interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 	NumBytes() uint8
 	CommandType() TelephonyCommandType
diff --git a/plc4go/protocols/cbus/readwrite/model/TemperatureBroadcastCommandType.go b/plc4go/protocols/cbus/readwrite/model/TemperatureBroadcastCommandType.go
index 6a3ccd230b..50909990a3 100644
--- a/plc4go/protocols/cbus/readwrite/model/TemperatureBroadcastCommandType.go
+++ b/plc4go/protocols/cbus/readwrite/model/TemperatureBroadcastCommandType.go
@@ -33,6 +33,7 @@ type TemperatureBroadcastCommandType uint8
 
 type ITemperatureBroadcastCommandType interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 	NumberOfArguments() uint8
 }
diff --git a/plc4go/protocols/cbus/readwrite/model/TemperatureBroadcastCommandTypeContainer.go b/plc4go/protocols/cbus/readwrite/model/TemperatureBroadcastCommandTypeContainer.go
index baba8ca8d9..eb681fec57 100644
--- a/plc4go/protocols/cbus/readwrite/model/TemperatureBroadcastCommandTypeContainer.go
+++ b/plc4go/protocols/cbus/readwrite/model/TemperatureBroadcastCommandTypeContainer.go
@@ -33,6 +33,7 @@ type TemperatureBroadcastCommandTypeContainer uint8
 
 type ITemperatureBroadcastCommandTypeContainer interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 	NumBytes() uint8
 	CommandType() TemperatureBroadcastCommandType
diff --git a/plc4go/protocols/cbus/readwrite/model/TriggerControlCommandType.go b/plc4go/protocols/cbus/readwrite/model/TriggerControlCommandType.go
index 10b79497ff..65a249de77 100644
--- a/plc4go/protocols/cbus/readwrite/model/TriggerControlCommandType.go
+++ b/plc4go/protocols/cbus/readwrite/model/TriggerControlCommandType.go
@@ -33,6 +33,7 @@ type TriggerControlCommandType uint8
 
 type ITriggerControlCommandType interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 	NumberOfArguments() uint8
 }
diff --git a/plc4go/protocols/cbus/readwrite/model/TriggerControlCommandTypeContainer.go b/plc4go/protocols/cbus/readwrite/model/TriggerControlCommandTypeContainer.go
index 1c8174e902..6264f96b1d 100644
--- a/plc4go/protocols/cbus/readwrite/model/TriggerControlCommandTypeContainer.go
+++ b/plc4go/protocols/cbus/readwrite/model/TriggerControlCommandTypeContainer.go
@@ -33,6 +33,7 @@ type TriggerControlCommandTypeContainer uint8
 
 type ITriggerControlCommandTypeContainer interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 	NumBytes() uint8
 	CommandType() TriggerControlCommandType
diff --git a/plc4go/protocols/cbus/readwrite/model/TriggerControlLabelFlavour.go b/plc4go/protocols/cbus/readwrite/model/TriggerControlLabelFlavour.go
index fe83b99e9e..bd6b2f359e 100644
--- a/plc4go/protocols/cbus/readwrite/model/TriggerControlLabelFlavour.go
+++ b/plc4go/protocols/cbus/readwrite/model/TriggerControlLabelFlavour.go
@@ -33,6 +33,7 @@ type TriggerControlLabelFlavour uint8
 
 type ITriggerControlLabelFlavour interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/cbus/readwrite/model/TriggerControlLabelType.go b/plc4go/protocols/cbus/readwrite/model/TriggerControlLabelType.go
index c7cfedfa38..517ef6734d 100644
--- a/plc4go/protocols/cbus/readwrite/model/TriggerControlLabelType.go
+++ b/plc4go/protocols/cbus/readwrite/model/TriggerControlLabelType.go
@@ -33,6 +33,7 @@ type TriggerControlLabelType uint8
 
 type ITriggerControlLabelType interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/cbus/readwrite/model/UnitStatus.go b/plc4go/protocols/cbus/readwrite/model/UnitStatus.go
index 4489528521..b8163bd3ab 100644
--- a/plc4go/protocols/cbus/readwrite/model/UnitStatus.go
+++ b/plc4go/protocols/cbus/readwrite/model/UnitStatus.go
@@ -33,6 +33,7 @@ type UnitStatus uint8
 
 type IUnitStatus interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/cbus/readwrite/model/ZoneStatusTemp.go b/plc4go/protocols/cbus/readwrite/model/ZoneStatusTemp.go
index 663ffc4f8e..999f0dc576 100644
--- a/plc4go/protocols/cbus/readwrite/model/ZoneStatusTemp.go
+++ b/plc4go/protocols/cbus/readwrite/model/ZoneStatusTemp.go
@@ -33,6 +33,7 @@ type ZoneStatusTemp uint8
 
 type IZoneStatusTemp interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/eip/readwrite/model/CIPClassID.go b/plc4go/protocols/eip/readwrite/model/CIPClassID.go
index 9c7c50f443..97f3ec8bb5 100644
--- a/plc4go/protocols/eip/readwrite/model/CIPClassID.go
+++ b/plc4go/protocols/eip/readwrite/model/CIPClassID.go
@@ -33,6 +33,7 @@ type CIPClassID uint16
 
 type ICIPClassID interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/eip/readwrite/model/CIPDataTypeCode.go b/plc4go/protocols/eip/readwrite/model/CIPDataTypeCode.go
index b9261c3764..c9cda86dd6 100644
--- a/plc4go/protocols/eip/readwrite/model/CIPDataTypeCode.go
+++ b/plc4go/protocols/eip/readwrite/model/CIPDataTypeCode.go
@@ -33,6 +33,7 @@ type CIPDataTypeCode uint16
 
 type ICIPDataTypeCode interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 	Size() uint8
 }
diff --git a/plc4go/protocols/eip/readwrite/model/CIPStatus.go b/plc4go/protocols/eip/readwrite/model/CIPStatus.go
index 7eb0eebf34..1ea7237ecc 100644
--- a/plc4go/protocols/eip/readwrite/model/CIPStatus.go
+++ b/plc4go/protocols/eip/readwrite/model/CIPStatus.go
@@ -33,6 +33,7 @@ type CIPStatus uint32
 
 type ICIPStatus interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/eip/readwrite/model/CIPStructTypeCode.go b/plc4go/protocols/eip/readwrite/model/CIPStructTypeCode.go
index 4e4f964054..fb52cf3f61 100644
--- a/plc4go/protocols/eip/readwrite/model/CIPStructTypeCode.go
+++ b/plc4go/protocols/eip/readwrite/model/CIPStructTypeCode.go
@@ -33,6 +33,7 @@ type CIPStructTypeCode uint16
 
 type ICIPStructTypeCode interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/eip/readwrite/model/EiPCommand.go b/plc4go/protocols/eip/readwrite/model/EiPCommand.go
index 35e1ceeedd..f34d5b48b3 100644
--- a/plc4go/protocols/eip/readwrite/model/EiPCommand.go
+++ b/plc4go/protocols/eip/readwrite/model/EiPCommand.go
@@ -33,6 +33,7 @@ type EiPCommand uint16
 
 type IEiPCommand interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/firmata/readwrite/model/PinMode.go b/plc4go/protocols/firmata/readwrite/model/PinMode.go
index 01790c24ac..8a93feff4a 100644
--- a/plc4go/protocols/firmata/readwrite/model/PinMode.go
+++ b/plc4go/protocols/firmata/readwrite/model/PinMode.go
@@ -33,6 +33,7 @@ type PinMode uint8
 
 type IPinMode interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/knxnetip/readwrite/model/AccessLevel.go b/plc4go/protocols/knxnetip/readwrite/model/AccessLevel.go
index 98be8384b2..22556e471b 100644
--- a/plc4go/protocols/knxnetip/readwrite/model/AccessLevel.go
+++ b/plc4go/protocols/knxnetip/readwrite/model/AccessLevel.go
@@ -33,6 +33,7 @@ type AccessLevel uint8
 
 type IAccessLevel interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 	Purpose() string
 	NeedsAuthentication() bool
diff --git a/plc4go/protocols/knxnetip/readwrite/model/CEMIPriority.go b/plc4go/protocols/knxnetip/readwrite/model/CEMIPriority.go
index 10a830e796..c13c2885f9 100644
--- a/plc4go/protocols/knxnetip/readwrite/model/CEMIPriority.go
+++ b/plc4go/protocols/knxnetip/readwrite/model/CEMIPriority.go
@@ -33,6 +33,7 @@ type CEMIPriority uint8
 
 type ICEMIPriority interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/knxnetip/readwrite/model/ComObjectTableAddresses.go b/plc4go/protocols/knxnetip/readwrite/model/ComObjectTableAddresses.go
index ae33de4443..d0895e80a4 100644
--- a/plc4go/protocols/knxnetip/readwrite/model/ComObjectTableAddresses.go
+++ b/plc4go/protocols/knxnetip/readwrite/model/ComObjectTableAddresses.go
@@ -33,6 +33,7 @@ type ComObjectTableAddresses uint16
 
 type IComObjectTableAddresses interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 	ComObjectTableAddress() uint16
 }
diff --git a/plc4go/protocols/knxnetip/readwrite/model/ComObjectValueType.go b/plc4go/protocols/knxnetip/readwrite/model/ComObjectValueType.go
index c6fd616673..ec5041746c 100644
--- a/plc4go/protocols/knxnetip/readwrite/model/ComObjectValueType.go
+++ b/plc4go/protocols/knxnetip/readwrite/model/ComObjectValueType.go
@@ -33,6 +33,7 @@ type ComObjectValueType uint8
 
 type IComObjectValueType interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 	SizeInBytes() uint8
 }
diff --git a/plc4go/protocols/knxnetip/readwrite/model/DeviceDescriptor.go b/plc4go/protocols/knxnetip/readwrite/model/DeviceDescriptor.go
index 779bbe6b46..4c7dc6ffb8 100644
--- a/plc4go/protocols/knxnetip/readwrite/model/DeviceDescriptor.go
+++ b/plc4go/protocols/knxnetip/readwrite/model/DeviceDescriptor.go
@@ -33,6 +33,7 @@ type DeviceDescriptor uint16
 
 type IDeviceDescriptor interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 	FirmwareType() FirmwareType
 	MediumType() DeviceDescriptorMediumType
diff --git a/plc4go/protocols/knxnetip/readwrite/model/DeviceDescriptorMediumType.go b/plc4go/protocols/knxnetip/readwrite/model/DeviceDescriptorMediumType.go
index 4004a8a8f2..ddca8b9d8f 100644
--- a/plc4go/protocols/knxnetip/readwrite/model/DeviceDescriptorMediumType.go
+++ b/plc4go/protocols/knxnetip/readwrite/model/DeviceDescriptorMediumType.go
@@ -33,6 +33,7 @@ type DeviceDescriptorMediumType uint8
 
 type IDeviceDescriptorMediumType interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/knxnetip/readwrite/model/FirmwareType.go b/plc4go/protocols/knxnetip/readwrite/model/FirmwareType.go
index fed5525c0a..198cee0a3c 100644
--- a/plc4go/protocols/knxnetip/readwrite/model/FirmwareType.go
+++ b/plc4go/protocols/knxnetip/readwrite/model/FirmwareType.go
@@ -33,6 +33,7 @@ type FirmwareType uint16
 
 type IFirmwareType interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/knxnetip/readwrite/model/HostProtocolCode.go b/plc4go/protocols/knxnetip/readwrite/model/HostProtocolCode.go
index e3ebb3db33..35798b7602 100644
--- a/plc4go/protocols/knxnetip/readwrite/model/HostProtocolCode.go
+++ b/plc4go/protocols/knxnetip/readwrite/model/HostProtocolCode.go
@@ -33,6 +33,7 @@ type HostProtocolCode uint8
 
 type IHostProtocolCode interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/knxnetip/readwrite/model/KnxDatapointMainType.go b/plc4go/protocols/knxnetip/readwrite/model/KnxDatapointMainType.go
index 2ce563f327..069482714b 100644
--- a/plc4go/protocols/knxnetip/readwrite/model/KnxDatapointMainType.go
+++ b/plc4go/protocols/knxnetip/readwrite/model/KnxDatapointMainType.go
@@ -33,6 +33,7 @@ type KnxDatapointMainType uint16
 
 type IKnxDatapointMainType interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 	Number() uint16
 	Name() string
diff --git a/plc4go/protocols/knxnetip/readwrite/model/KnxDatapointType.go b/plc4go/protocols/knxnetip/readwrite/model/KnxDatapointType.go
index e9f5ffc639..96cadf79d5 100644
--- a/plc4go/protocols/knxnetip/readwrite/model/KnxDatapointType.go
+++ b/plc4go/protocols/knxnetip/readwrite/model/KnxDatapointType.go
@@ -33,6 +33,7 @@ type KnxDatapointType uint32
 
 type IKnxDatapointType interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 	Number() uint16
 	Name() string
diff --git a/plc4go/protocols/knxnetip/readwrite/model/KnxInterfaceObjectProperty.go b/plc4go/protocols/knxnetip/readwrite/model/KnxInterfaceObjectProperty.go
index 6ef48abc78..1b3e058323 100644
--- a/plc4go/protocols/knxnetip/readwrite/model/KnxInterfaceObjectProperty.go
+++ b/plc4go/protocols/knxnetip/readwrite/model/KnxInterfaceObjectProperty.go
@@ -33,6 +33,7 @@ type KnxInterfaceObjectProperty uint32
 
 type IKnxInterfaceObjectProperty interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 	PropertyDataType() KnxPropertyDataType
 	Name() string
diff --git a/plc4go/protocols/knxnetip/readwrite/model/KnxInterfaceObjectType.go b/plc4go/protocols/knxnetip/readwrite/model/KnxInterfaceObjectType.go
index 4e2a625a81..6d0489a987 100644
--- a/plc4go/protocols/knxnetip/readwrite/model/KnxInterfaceObjectType.go
+++ b/plc4go/protocols/knxnetip/readwrite/model/KnxInterfaceObjectType.go
@@ -33,6 +33,7 @@ type KnxInterfaceObjectType uint16
 
 type IKnxInterfaceObjectType interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 	Code() string
 	Name() string
diff --git a/plc4go/protocols/knxnetip/readwrite/model/KnxLayer.go b/plc4go/protocols/knxnetip/readwrite/model/KnxLayer.go
index ee30644bcf..b2ac24e996 100644
--- a/plc4go/protocols/knxnetip/readwrite/model/KnxLayer.go
+++ b/plc4go/protocols/knxnetip/readwrite/model/KnxLayer.go
@@ -33,6 +33,7 @@ type KnxLayer uint8
 
 type IKnxLayer interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/knxnetip/readwrite/model/KnxManufacturer.go b/plc4go/protocols/knxnetip/readwrite/model/KnxManufacturer.go
index eca0d440bb..122bf32c11 100644
--- a/plc4go/protocols/knxnetip/readwrite/model/KnxManufacturer.go
+++ b/plc4go/protocols/knxnetip/readwrite/model/KnxManufacturer.go
@@ -33,6 +33,7 @@ type KnxManufacturer uint16
 
 type IKnxManufacturer interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 	Number() uint16
 	Name() string
@@ -663,8 +664,9 @@ const (
 	KnxManufacturer_M_RAYLOGIC_CONTROL_SYSTEMS_PVT_LTD                   KnxManufacturer = 621
 	KnxManufacturer_M_BITS_AND_BYTES                                     KnxManufacturer = 622
 	KnxManufacturer_M_KFV_SIEGENIA_GRUPPE                                KnxManufacturer = 623
-	KnxManufacturer_M_ABB___RESERVED                                     KnxManufacturer = 624
-	KnxManufacturer_M_BUSCH_JAEGER_ELEKTRO___RESERVED                    KnxManufacturer = 625
+	KnxManufacturer_M_SYMCON                                             KnxManufacturer = 624
+	KnxManufacturer_M_ABB___RESERVED                                     KnxManufacturer = 625
+	KnxManufacturer_M_BUSCH_JAEGER_ELEKTRO___RESERVED                    KnxManufacturer = 626
 )
 
 var KnxManufacturerValues []KnxManufacturer
@@ -1296,6 +1298,7 @@ func init() {
 		KnxManufacturer_M_RAYLOGIC_CONTROL_SYSTEMS_PVT_LTD,
 		KnxManufacturer_M_BITS_AND_BYTES,
 		KnxManufacturer_M_KFV_SIEGENIA_GRUPPE,
+		KnxManufacturer_M_SYMCON,
 		KnxManufacturer_M_ABB___RESERVED,
 		KnxManufacturer_M_BUSCH_JAEGER_ELEKTRO___RESERVED,
 	}
@@ -3641,10 +3644,14 @@ func (e KnxManufacturer) Number() uint16 {
 		}
 	case 624:
 		{ /* '624' */
-			return 43954
+			return 681
 		}
 	case 625:
 		{ /* '625' */
+			return 43954
+		}
+	case 626:
+		{ /* '626' */
 			return 43959
 		}
 	case 63:
@@ -6163,10 +6170,14 @@ func (e KnxManufacturer) Name() string {
 		}
 	case 624:
 		{ /* '624' */
-			return "ABB - reserved"
+			return "Symcon"
 		}
 	case 625:
 		{ /* '625' */
+			return "ABB - reserved"
+		}
+	case 626:
+		{ /* '626' */
 			return "Busch-Jaeger Elektro - reserved"
 		}
 	case 63:
@@ -7515,8 +7526,10 @@ func KnxManufacturerByValue(value uint16) (enum KnxManufacturer, ok bool) {
 	case 623:
 		return KnxManufacturer_M_KFV_SIEGENIA_GRUPPE, true
 	case 624:
-		return KnxManufacturer_M_ABB___RESERVED, true
+		return KnxManufacturer_M_SYMCON, true
 	case 625:
+		return KnxManufacturer_M_ABB___RESERVED, true
+	case 626:
 		return KnxManufacturer_M_BUSCH_JAEGER_ELEKTRO___RESERVED, true
 	case 63:
 		return KnxManufacturer_M_WHD_WILHELM_HUBER_Plus_SOEHNE, true
@@ -8772,6 +8785,8 @@ func KnxManufacturerByName(value string) (enum KnxManufacturer, ok bool) {
 		return KnxManufacturer_M_BITS_AND_BYTES, true
 	case "M_KFV_SIEGENIA_GRUPPE":
 		return KnxManufacturer_M_KFV_SIEGENIA_GRUPPE, true
+	case "M_SYMCON":
+		return KnxManufacturer_M_SYMCON, true
 	case "M_ABB___RESERVED":
 		return KnxManufacturer_M_ABB___RESERVED, true
 	case "M_BUSCH_JAEGER_ELEKTRO___RESERVED":
@@ -10087,6 +10102,8 @@ func (e KnxManufacturer) PLC4XEnumName() string {
 		return "M_BITS_AND_BYTES"
 	case KnxManufacturer_M_KFV_SIEGENIA_GRUPPE:
 		return "M_KFV_SIEGENIA_GRUPPE"
+	case KnxManufacturer_M_SYMCON:
+		return "M_SYMCON"
 	case KnxManufacturer_M_ABB___RESERVED:
 		return "M_ABB___RESERVED"
 	case KnxManufacturer_M_BUSCH_JAEGER_ELEKTRO___RESERVED:
diff --git a/plc4go/protocols/knxnetip/readwrite/model/KnxMedium.go b/plc4go/protocols/knxnetip/readwrite/model/KnxMedium.go
index 997755b485..70a508ce7d 100644
--- a/plc4go/protocols/knxnetip/readwrite/model/KnxMedium.go
+++ b/plc4go/protocols/knxnetip/readwrite/model/KnxMedium.go
@@ -33,6 +33,7 @@ type KnxMedium uint8
 
 type IKnxMedium interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/knxnetip/readwrite/model/KnxPropertyDataType.go b/plc4go/protocols/knxnetip/readwrite/model/KnxPropertyDataType.go
index 3fd6165ded..6d536780ba 100644
--- a/plc4go/protocols/knxnetip/readwrite/model/KnxPropertyDataType.go
+++ b/plc4go/protocols/knxnetip/readwrite/model/KnxPropertyDataType.go
@@ -33,6 +33,7 @@ type KnxPropertyDataType uint8
 
 type IKnxPropertyDataType interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 	Number() uint8
 	SizeInBytes() uint8
diff --git a/plc4go/protocols/knxnetip/readwrite/model/Status.go b/plc4go/protocols/knxnetip/readwrite/model/Status.go
index 011c10d102..6e2aea28e7 100644
--- a/plc4go/protocols/knxnetip/readwrite/model/Status.go
+++ b/plc4go/protocols/knxnetip/readwrite/model/Status.go
@@ -33,6 +33,7 @@ type Status uint8
 
 type IStatus interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/knxnetip/readwrite/model/SupportedPhysicalMedia.go b/plc4go/protocols/knxnetip/readwrite/model/SupportedPhysicalMedia.go
index 551fc9a150..628ab06630 100644
--- a/plc4go/protocols/knxnetip/readwrite/model/SupportedPhysicalMedia.go
+++ b/plc4go/protocols/knxnetip/readwrite/model/SupportedPhysicalMedia.go
@@ -33,6 +33,7 @@ type SupportedPhysicalMedia uint8
 
 type ISupportedPhysicalMedia interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 	KnxSupport() bool
 	Description() string
diff --git a/plc4go/protocols/modbus/readwrite/model/DriverType.go b/plc4go/protocols/modbus/readwrite/model/DriverType.go
index 8ba40d9019..964dd083ab 100644
--- a/plc4go/protocols/modbus/readwrite/model/DriverType.go
+++ b/plc4go/protocols/modbus/readwrite/model/DriverType.go
@@ -33,6 +33,7 @@ type DriverType uint32
 
 type IDriverType interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/modbus/readwrite/model/ModbusDataType.go b/plc4go/protocols/modbus/readwrite/model/ModbusDataType.go
index 774b8d3399..236f2ca2a8 100644
--- a/plc4go/protocols/modbus/readwrite/model/ModbusDataType.go
+++ b/plc4go/protocols/modbus/readwrite/model/ModbusDataType.go
@@ -33,6 +33,7 @@ type ModbusDataType uint8
 
 type IModbusDataType interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 	DataTypeSize() uint8
 }
diff --git a/plc4go/protocols/modbus/readwrite/model/ModbusDeviceInformationConformityLevel.go b/plc4go/protocols/modbus/readwrite/model/ModbusDeviceInformationConformityLevel.go
index 2b292db63d..44fc534ba3 100644
--- a/plc4go/protocols/modbus/readwrite/model/ModbusDeviceInformationConformityLevel.go
+++ b/plc4go/protocols/modbus/readwrite/model/ModbusDeviceInformationConformityLevel.go
@@ -33,6 +33,7 @@ type ModbusDeviceInformationConformityLevel uint8
 
 type IModbusDeviceInformationConformityLevel interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/modbus/readwrite/model/ModbusDeviceInformationLevel.go b/plc4go/protocols/modbus/readwrite/model/ModbusDeviceInformationLevel.go
index 9c3e80a31b..7b319c95c2 100644
--- a/plc4go/protocols/modbus/readwrite/model/ModbusDeviceInformationLevel.go
+++ b/plc4go/protocols/modbus/readwrite/model/ModbusDeviceInformationLevel.go
@@ -33,6 +33,7 @@ type ModbusDeviceInformationLevel uint8
 
 type IModbusDeviceInformationLevel interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/modbus/readwrite/model/ModbusDeviceInformationMoreFollows.go b/plc4go/protocols/modbus/readwrite/model/ModbusDeviceInformationMoreFollows.go
index 3cc83b05ed..94fc502546 100644
--- a/plc4go/protocols/modbus/readwrite/model/ModbusDeviceInformationMoreFollows.go
+++ b/plc4go/protocols/modbus/readwrite/model/ModbusDeviceInformationMoreFollows.go
@@ -33,6 +33,7 @@ type ModbusDeviceInformationMoreFollows uint8
 
 type IModbusDeviceInformationMoreFollows interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/modbus/readwrite/model/ModbusErrorCode.go b/plc4go/protocols/modbus/readwrite/model/ModbusErrorCode.go
index 1419f24115..7115622b46 100644
--- a/plc4go/protocols/modbus/readwrite/model/ModbusErrorCode.go
+++ b/plc4go/protocols/modbus/readwrite/model/ModbusErrorCode.go
@@ -33,6 +33,7 @@ type ModbusErrorCode uint8
 
 type IModbusErrorCode interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/s7/readwrite/model/AlarmStateType.go b/plc4go/protocols/s7/readwrite/model/AlarmStateType.go
index ce5a096db8..450698b2fc 100644
--- a/plc4go/protocols/s7/readwrite/model/AlarmStateType.go
+++ b/plc4go/protocols/s7/readwrite/model/AlarmStateType.go
@@ -33,6 +33,7 @@ type AlarmStateType uint8
 
 type IAlarmStateType interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/s7/readwrite/model/AlarmType.go b/plc4go/protocols/s7/readwrite/model/AlarmType.go
index d653d23cbe..3364128e41 100644
--- a/plc4go/protocols/s7/readwrite/model/AlarmType.go
+++ b/plc4go/protocols/s7/readwrite/model/AlarmType.go
@@ -33,6 +33,7 @@ type AlarmType uint8
 
 type IAlarmType interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/s7/readwrite/model/COTPProtocolClass.go b/plc4go/protocols/s7/readwrite/model/COTPProtocolClass.go
index 95236093be..42e3bbc0c7 100644
--- a/plc4go/protocols/s7/readwrite/model/COTPProtocolClass.go
+++ b/plc4go/protocols/s7/readwrite/model/COTPProtocolClass.go
@@ -33,6 +33,7 @@ type COTPProtocolClass uint8
 
 type ICOTPProtocolClass interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/s7/readwrite/model/COTPTpduSize.go b/plc4go/protocols/s7/readwrite/model/COTPTpduSize.go
index a5036294eb..542e4ec1bd 100644
--- a/plc4go/protocols/s7/readwrite/model/COTPTpduSize.go
+++ b/plc4go/protocols/s7/readwrite/model/COTPTpduSize.go
@@ -33,6 +33,7 @@ type COTPTpduSize uint8
 
 type ICOTPTpduSize interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 	SizeInBytes() uint16
 }
diff --git a/plc4go/protocols/s7/readwrite/model/CpuSubscribeEvents.go b/plc4go/protocols/s7/readwrite/model/CpuSubscribeEvents.go
index c6519e5699..6aafe9852d 100644
--- a/plc4go/protocols/s7/readwrite/model/CpuSubscribeEvents.go
+++ b/plc4go/protocols/s7/readwrite/model/CpuSubscribeEvents.go
@@ -33,6 +33,7 @@ type CpuSubscribeEvents uint8
 
 type ICpuSubscribeEvents interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/s7/readwrite/model/DataTransportErrorCode.go b/plc4go/protocols/s7/readwrite/model/DataTransportErrorCode.go
index b6da64fa92..67315164f1 100644
--- a/plc4go/protocols/s7/readwrite/model/DataTransportErrorCode.go
+++ b/plc4go/protocols/s7/readwrite/model/DataTransportErrorCode.go
@@ -33,6 +33,7 @@ type DataTransportErrorCode uint8
 
 type IDataTransportErrorCode interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/s7/readwrite/model/DataTransportSize.go b/plc4go/protocols/s7/readwrite/model/DataTransportSize.go
index a916d558e3..1579a74810 100644
--- a/plc4go/protocols/s7/readwrite/model/DataTransportSize.go
+++ b/plc4go/protocols/s7/readwrite/model/DataTransportSize.go
@@ -33,6 +33,7 @@ type DataTransportSize uint8
 
 type IDataTransportSize interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 	SizeInBits() bool
 }
diff --git a/plc4go/protocols/s7/readwrite/model/DeviceGroup.go b/plc4go/protocols/s7/readwrite/model/DeviceGroup.go
index 5a74fac68f..2052771f6b 100644
--- a/plc4go/protocols/s7/readwrite/model/DeviceGroup.go
+++ b/plc4go/protocols/s7/readwrite/model/DeviceGroup.go
@@ -33,6 +33,7 @@ type DeviceGroup uint8
 
 type IDeviceGroup interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/s7/readwrite/model/EventType.go b/plc4go/protocols/s7/readwrite/model/EventType.go
index 4898a59f16..24d15fe9da 100644
--- a/plc4go/protocols/s7/readwrite/model/EventType.go
+++ b/plc4go/protocols/s7/readwrite/model/EventType.go
@@ -33,6 +33,7 @@ type EventType uint8
 
 type IEventType interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/s7/readwrite/model/MemoryArea.go b/plc4go/protocols/s7/readwrite/model/MemoryArea.go
index 629c6bcb10..d7ee322261 100644
--- a/plc4go/protocols/s7/readwrite/model/MemoryArea.go
+++ b/plc4go/protocols/s7/readwrite/model/MemoryArea.go
@@ -33,6 +33,7 @@ type MemoryArea uint8
 
 type IMemoryArea interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 	ShortName() string
 }
diff --git a/plc4go/protocols/s7/readwrite/model/ModeTransitionType.go b/plc4go/protocols/s7/readwrite/model/ModeTransitionType.go
index 1eaecd2c97..a4e1337a41 100644
--- a/plc4go/protocols/s7/readwrite/model/ModeTransitionType.go
+++ b/plc4go/protocols/s7/readwrite/model/ModeTransitionType.go
@@ -33,6 +33,7 @@ type ModeTransitionType uint8
 
 type IModeTransitionType interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/s7/readwrite/model/QueryType.go b/plc4go/protocols/s7/readwrite/model/QueryType.go
index f463428778..8524d020e8 100644
--- a/plc4go/protocols/s7/readwrite/model/QueryType.go
+++ b/plc4go/protocols/s7/readwrite/model/QueryType.go
@@ -33,6 +33,7 @@ type QueryType uint8
 
 type IQueryType interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/s7/readwrite/model/SyntaxIdType.go b/plc4go/protocols/s7/readwrite/model/SyntaxIdType.go
index 7261806b39..a085c41442 100644
--- a/plc4go/protocols/s7/readwrite/model/SyntaxIdType.go
+++ b/plc4go/protocols/s7/readwrite/model/SyntaxIdType.go
@@ -33,6 +33,7 @@ type SyntaxIdType uint8
 
 type ISyntaxIdType interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/s7/readwrite/model/SzlModuleTypeClass.go b/plc4go/protocols/s7/readwrite/model/SzlModuleTypeClass.go
index d08f91daa8..724867e4cc 100644
--- a/plc4go/protocols/s7/readwrite/model/SzlModuleTypeClass.go
+++ b/plc4go/protocols/s7/readwrite/model/SzlModuleTypeClass.go
@@ -33,6 +33,7 @@ type SzlModuleTypeClass uint8
 
 type ISzlModuleTypeClass interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/s7/readwrite/model/SzlSublist.go b/plc4go/protocols/s7/readwrite/model/SzlSublist.go
index f83018d326..dc81551117 100644
--- a/plc4go/protocols/s7/readwrite/model/SzlSublist.go
+++ b/plc4go/protocols/s7/readwrite/model/SzlSublist.go
@@ -33,6 +33,7 @@ type SzlSublist uint8
 
 type ISzlSublist interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 }
 
diff --git a/plc4go/protocols/s7/readwrite/model/TransportSize.go b/plc4go/protocols/s7/readwrite/model/TransportSize.go
index c2e6265a0a..b1c28ce2f2 100644
--- a/plc4go/protocols/s7/readwrite/model/TransportSize.go
+++ b/plc4go/protocols/s7/readwrite/model/TransportSize.go
@@ -33,6 +33,7 @@ type TransportSize uint8
 
 type ITransportSize interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 	Supported_S7_300() bool
 	Supported_LOGO() bool
diff --git a/plc4go/protocols/simulated/readwrite/model/SimulatedDataTypeSizes.go b/plc4go/protocols/simulated/readwrite/model/SimulatedDataTypeSizes.go
index a75e105851..0c604aebcf 100644
--- a/plc4go/protocols/simulated/readwrite/model/SimulatedDataTypeSizes.go
+++ b/plc4go/protocols/simulated/readwrite/model/SimulatedDataTypeSizes.go
@@ -33,6 +33,7 @@ type SimulatedDataTypeSizes uint8
 
 type ISimulatedDataTypeSizes interface {
 	fmt.Stringer
+	utils.LengthAware
 	utils.Serializable
 	DataTypeSize() uint8
 }
diff --git a/plc4go/spi/utils/ReadBuffer.go b/plc4go/spi/utils/ReadBuffer.go
index 001a649507..e83052148b 100644
--- a/plc4go/spi/utils/ReadBuffer.go
+++ b/plc4go/spi/utils/ReadBuffer.go
@@ -24,8 +24,7 @@ import (
 )
 
 type ReadBuffer interface {
-	// GetPos return the current byte position
-	GetPos() uint16
+	PositionAware
 	// Reset sets the position to the supplied byte position
 	Reset(pos uint16)
 	// HasMore returns true if there are bitLength bits available
diff --git a/plc4go/spi/utils/WriteBuffer.go b/plc4go/spi/utils/WriteBuffer.go
index 53d54435d7..17bb364c1c 100644
--- a/plc4go/spi/utils/WriteBuffer.go
+++ b/plc4go/spi/utils/WriteBuffer.go
@@ -25,8 +25,7 @@ import (
 )
 
 type WriteBuffer interface {
-	// GetPos return the current byte position
-	GetPos() uint16
+	PositionAware
 	// PushContext signals opening context with the supplied logical name
 	PushContext(logicalName string, writerArgs ...WithWriterArgs) error
 	WriteBit(logicalName string, value bool, writerArgs ...WithWriterArgs) error


[plc4x] 02/02: feat(plc4j): update vendors

Posted by sr...@apache.org.
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

commit d8c332f044bab4adb7dfd3b3289614b8a3ab160a
Author: Sebastian Rühl <sr...@apache.org>
AuthorDate: Thu Apr 13 19:42:09 2023 +0200

    feat(plc4j): update vendors
---
 .../org/apache/plc4x/java/bacnetip/readwrite/BACnetVendorId.java     | 3 +++
 .../org/apache/plc4x/java/knxnetip/readwrite/KnxManufacturer.java    | 5 +++--
 2 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/plc4j/drivers/bacnet/src/main/generated/org/apache/plc4x/java/bacnetip/readwrite/BACnetVendorId.java b/plc4j/drivers/bacnet/src/main/generated/org/apache/plc4x/java/bacnetip/readwrite/BACnetVendorId.java
index 9bc4d517f9..d99fc56fa8 100644
--- a/plc4j/drivers/bacnet/src/main/generated/org/apache/plc4x/java/bacnetip/readwrite/BACnetVendorId.java
+++ b/plc4j/drivers/bacnet/src/main/generated/org/apache/plc4x/java/bacnetip/readwrite/BACnetVendorId.java
@@ -1622,6 +1622,9 @@ public enum BACnetVendorId {
   CALIBRATION_TECHNOLOGIES_INC((int) 1410, (int) 1410, (String) "Calibration Technologies, Inc."),
   ALLORADO((int) 1411, (int) 1411, (String) "Allorado"),
   VERKADA((int) 1412, (int) 1412, (String) "Verkada"),
+  WATTSENSE((int) 1413, (int) 1413, (String) "Wattsense"),
+  EMERSON_AUTOMATION_SOLUTIONS((int) 1414, (int) 1414, (String) "Emerson Automation Solutions"),
+  GROWLINK((int) 1415, (int) 1415, (String) "Growlink"),
   UNKNOWN_VENDOR((int) 0xFFFF, (int) 0xFFFF, (String) "Unknown");
   private static final Map<Integer, BACnetVendorId> map;
 
diff --git a/plc4j/drivers/knxnetip/src/main/generated/org/apache/plc4x/java/knxnetip/readwrite/KnxManufacturer.java b/plc4j/drivers/knxnetip/src/main/generated/org/apache/plc4x/java/knxnetip/readwrite/KnxManufacturer.java
index 7ae1562ecd..812fae962b 100644
--- a/plc4j/drivers/knxnetip/src/main/generated/org/apache/plc4x/java/knxnetip/readwrite/KnxManufacturer.java
+++ b/plc4j/drivers/knxnetip/src/main/generated/org/apache/plc4x/java/knxnetip/readwrite/KnxManufacturer.java
@@ -715,9 +715,10 @@ public enum KnxManufacturer {
       (int) 621, (int) 678, (String) "Raylogic Control Systems Pvt Ltd"),
   M_BITS_AND_BYTES((int) 622, (int) 679, (String) "Bits & Bytes"),
   M_KFV_SIEGENIA_GRUPPE((int) 623, (int) 680, (String) "KFV (SIEGENIA GRUPPE)"),
-  M_ABB___RESERVED((int) 624, (int) 43954, (String) "ABB - reserved"),
+  M_SYMCON((int) 624, (int) 681, (String) "Symcon"),
+  M_ABB___RESERVED((int) 625, (int) 43954, (String) "ABB - reserved"),
   M_BUSCH_JAEGER_ELEKTRO___RESERVED(
-      (int) 625, (int) 43959, (String) "Busch-Jaeger Elektro - reserved");
+      (int) 626, (int) 43959, (String) "Busch-Jaeger Elektro - reserved");
   private static final Map<Integer, KnxManufacturer> map;
 
   static {