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 2022/11/02 11:46:17 UTC

[plc4x] branch develop updated: refactor(plc4go/spi): change the API of Serialize

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

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


The following commit(s) were added to refs/heads/develop by this push:
     new f2510c2c0 refactor(plc4go/spi): change the API of Serialize
f2510c2c0 is described below

commit f2510c2c0c9a5b7bfaba1b50224690d378a4a6f2
Author: Sebastian Rühl <sr...@apache.org>
AuthorDate: Wed Nov 2 12:46:06 2022 +0100

    refactor(plc4go/spi): change the API of Serialize
    
    + The default serialize now uses a WriteBufferByteBased with BigEndian (TBD get it from mspec)
    + The old Serialize is available under the name SerializeWithWriteBuffer
---
 plc4go/internal/ads/Field.go                       |  21 +-
 plc4go/internal/ads/MessageCodec.go                |   2 +-
 plc4go/internal/ads/Writer.go                      |   2 +-
 plc4go/internal/bacnetip/Discoverer.go             |  16 +-
 plc4go/internal/bacnetip/Field.go                  |  11 +-
 plc4go/internal/bacnetip/MessageCodec.go           |   5 +-
 plc4go/internal/cbus/Field.go                      | 119 ++++-
 plc4go/internal/cbus/MessageCodec.go               |   5 +-
 plc4go/internal/cbus/Reader.go                     |   2 +-
 plc4go/internal/cbus/Subscriber.go                 |   2 +-
 plc4go/internal/eip/Field.go                       |  11 +-
 plc4go/internal/eip/MessageCodec.go                |   6 +-
 plc4go/internal/knxnetip/MessageCodec.go           |   5 +-
 plc4go/internal/knxnetip/Writer.go                 |   5 +-
 plc4go/internal/modbus/Field.go                    |  11 +-
 plc4go/internal/modbus/MessageCodec.go             |   5 +-
 plc4go/internal/modbus/Writer.go                   |   6 +-
 plc4go/internal/s7/Field.go                        |  20 +-
 plc4go/internal/s7/MessageCodec.go                 |   5 +-
 plc4go/internal/s7/Writer.go                       |   5 +-
 plc4go/internal/s7/s7Io_test.go                    |  10 +-
 .../model/CIPEncapsulationConnectionRequest.go     |  11 +-
 .../model/CIPEncapsulationConnectionResponse.go    |  11 +-
 .../readwrite/model/CIPEncapsulationReadRequest.go |  11 +-
 .../model/CIPEncapsulationReadResponse.go          |  11 +-
 .../readwrite/model/DF1CommandRequestMessage.go    |  11 +-
 ...mandResponseMessageProtectedTypedLogicalRead.go |  11 +-
 .../model/DF1RequestProtectedTypedLogicalRead.go   |  11 +-
 .../model/AdsAddDeviceNotificationRequest.go       |  11 +-
 .../model/AdsAddDeviceNotificationResponse.go      |  11 +-
 .../protocols/ads/readwrite/model/AdsConstants.go  |  11 +-
 .../protocols/ads/readwrite/model/AdsDataType.go   |  14 +-
 .../ads/readwrite/model/AdsDataTypeArrayInfo.go    |  11 +-
 .../readwrite/model/AdsDataTypeTableChildEntry.go  |  11 +-
 .../ads/readwrite/model/AdsDataTypeTableEntry.go   |  11 +-
 .../model/AdsDeleteDeviceNotificationRequest.go    |  11 +-
 .../model/AdsDeleteDeviceNotificationResponse.go   |  11 +-
 .../model/AdsDeviceNotificationRequest.go          |  11 +-
 .../model/AdsDeviceNotificationResponse.go         |  11 +-
 .../ads/readwrite/model/AdsInvalidRequest.go       |  11 +-
 .../ads/readwrite/model/AdsInvalidResponse.go      |  11 +-
 .../ads/readwrite/model/AdsMultiRequestItemRead.go |  11 +-
 .../model/AdsMultiRequestItemReadWrite.go          |  11 +-
 .../readwrite/model/AdsMultiRequestItemWrite.go    |  11 +-
 .../ads/readwrite/model/AdsNotificationSample.go   |  11 +-
 .../readwrite/model/AdsReadDeviceInfoRequest.go    |  11 +-
 .../readwrite/model/AdsReadDeviceInfoResponse.go   |  11 +-
 .../ads/readwrite/model/AdsReadRequest.go          |  11 +-
 .../ads/readwrite/model/AdsReadResponse.go         |  11 +-
 .../ads/readwrite/model/AdsReadStateRequest.go     |  11 +-
 .../ads/readwrite/model/AdsReadStateResponse.go    |  11 +-
 .../ads/readwrite/model/AdsReadWriteRequest.go     |  11 +-
 .../ads/readwrite/model/AdsReadWriteResponse.go    |  11 +-
 .../ads/readwrite/model/AdsStampHeader.go          |  11 +-
 .../ads/readwrite/model/AdsSymbolTableEntry.go     |  11 +-
 .../protocols/ads/readwrite/model/AdsTableSizes.go |  11 +-
 .../ads/readwrite/model/AdsWriteControlRequest.go  |  11 +-
 .../ads/readwrite/model/AdsWriteControlResponse.go |  11 +-
 .../ads/readwrite/model/AdsWriteRequest.go         |  11 +-
 .../ads/readwrite/model/AdsWriteResponse.go        |  11 +-
 plc4go/protocols/ads/readwrite/model/AmsNetId.go   |  11 +-
 .../readwrite/model/AmsSerialAcknowledgeFrame.go   |  11 +-
 .../ads/readwrite/model/AmsSerialFrame.go          |  11 +-
 .../ads/readwrite/model/AmsSerialResetFrame.go     |  11 +-
 .../protocols/ads/readwrite/model/AmsTCPPacket.go  |  11 +-
 plc4go/protocols/ads/readwrite/model/CommandId.go  |  14 +-
 plc4go/protocols/ads/readwrite/model/DataItem.go   |  11 +-
 .../ads/readwrite/model/DefaultAmsPorts.go         |  14 +-
 .../protocols/ads/readwrite/model/PlcValueType.go  |  14 +-
 .../ads/readwrite/model/ReservedIndexGroups.go     |  14 +-
 plc4go/protocols/ads/readwrite/model/ReturnCode.go |  14 +-
 .../bacnetip/readwrite/model/APDUAbort.go          |  11 +-
 .../bacnetip/readwrite/model/APDUComplexAck.go     |  11 +-
 .../readwrite/model/APDUConfirmedRequest.go        |  11 +-
 .../bacnetip/readwrite/model/APDUError.go          |  11 +-
 .../bacnetip/readwrite/model/APDUReject.go         |  11 +-
 .../bacnetip/readwrite/model/APDUSegmentAck.go     |  11 +-
 .../bacnetip/readwrite/model/APDUSimpleAck.go      |  11 +-
 .../readwrite/model/APDUUnconfirmedRequest.go      |  11 +-
 .../bacnetip/readwrite/model/APDUUnknown.go        |  11 +-
 .../protocols/bacnetip/readwrite/model/ApduType.go |  14 +-
 .../bacnetip/readwrite/model/BACnetAbortReason.go  |  14 +-
 .../readwrite/model/BACnetAbortReasonTagged.go     |  11 +-
 .../BACnetAccessAuthenticationFactorDisable.go     |  14 +-
 ...ACnetAccessAuthenticationFactorDisableTagged.go |  11 +-
 .../model/BACnetAccessCredentialDisable.go         |  14 +-
 .../model/BACnetAccessCredentialDisableReason.go   |  14 +-
 .../BACnetAccessCredentialDisableReasonTagged.go   |  11 +-
 .../model/BACnetAccessCredentialDisableTagged.go   |  11 +-
 .../bacnetip/readwrite/model/BACnetAccessEvent.go  |  14 +-
 .../readwrite/model/BACnetAccessEventTagged.go     |  11 +-
 .../readwrite/model/BACnetAccessPassbackMode.go    |  14 +-
 .../model/BACnetAccessPassbackModeTagged.go        |  11 +-
 .../bacnetip/readwrite/model/BACnetAccessRule.go   |  11 +-
 .../model/BACnetAccessRuleLocationSpecifier.go     |  14 +-
 .../BACnetAccessRuleLocationSpecifierTagged.go     |  11 +-
 .../model/BACnetAccessRuleTimeRangeSpecifier.go    |  14 +-
 .../BACnetAccessRuleTimeRangeSpecifierTagged.go    |  11 +-
 .../readwrite/model/BACnetAccessThreatLevel.go     |  11 +-
 .../readwrite/model/BACnetAccessUserType.go        |  14 +-
 .../readwrite/model/BACnetAccessUserTypeTagged.go  |  11 +-
 .../model/BACnetAccessZoneOccupancyState.go        |  14 +-
 .../model/BACnetAccessZoneOccupancyStateTagged.go  |  11 +-
 .../readwrite/model/BACnetAccumulatorRecord.go     |  11 +-
 .../BACnetAccumulatorRecordAccumulatorStatus.go    |  14 +-
 ...CnetAccumulatorRecordAccumulatorStatusTagged.go |  11 +-
 .../bacnetip/readwrite/model/BACnetAction.go       |  14 +-
 .../readwrite/model/BACnetActionCommand.go         |  11 +-
 .../bacnetip/readwrite/model/BACnetActionList.go   |  11 +-
 .../bacnetip/readwrite/model/BACnetActionTagged.go |  11 +-
 .../bacnetip/readwrite/model/BACnetAddress.go      |  11 +-
 .../readwrite/model/BACnetAddressBinding.go        |  11 +-
 .../readwrite/model/BACnetAddressEnclosed.go       |  11 +-
 .../model/BACnetApplicationTagBitString.go         |  11 +-
 .../readwrite/model/BACnetApplicationTagBoolean.go |  11 +-
 .../model/BACnetApplicationTagCharacterString.go   |  11 +-
 .../readwrite/model/BACnetApplicationTagDate.go    |  11 +-
 .../readwrite/model/BACnetApplicationTagDouble.go  |  11 +-
 .../model/BACnetApplicationTagEnumerated.go        |  11 +-
 .../readwrite/model/BACnetApplicationTagNull.go    |  11 +-
 .../model/BACnetApplicationTagObjectIdentifier.go  |  11 +-
 .../model/BACnetApplicationTagOctetString.go       |  11 +-
 .../readwrite/model/BACnetApplicationTagReal.go    |  11 +-
 .../model/BACnetApplicationTagSignedInteger.go     |  11 +-
 .../readwrite/model/BACnetApplicationTagTime.go    |  11 +-
 .../model/BACnetApplicationTagUnsignedInteger.go   |  11 +-
 .../readwrite/model/BACnetAssignedAccessRights.go  |  11 +-
 .../readwrite/model/BACnetAssignedLandingCalls.go  |  11 +-
 .../BACnetAssignedLandingCallsLandingCallsList.go  |  11 +-
 ...netAssignedLandingCallsLandingCallsListEntry.go |  11 +-
 .../readwrite/model/BACnetAuthenticationFactor.go  |  11 +-
 .../model/BACnetAuthenticationFactorEnclosed.go    |  11 +-
 .../model/BACnetAuthenticationFactorFormat.go      |  11 +-
 .../model/BACnetAuthenticationFactorType.go        |  14 +-
 .../model/BACnetAuthenticationFactorTypeTagged.go  |  11 +-
 .../readwrite/model/BACnetAuthenticationPolicy.go  |  11 +-
 .../model/BACnetAuthenticationPolicyList.go        |  11 +-
 .../model/BACnetAuthenticationPolicyListEntry.go   |  11 +-
 .../readwrite/model/BACnetAuthenticationStatus.go  |  14 +-
 .../model/BACnetAuthenticationStatusTagged.go      |  11 +-
 .../model/BACnetAuthorizationExemption.go          |  14 +-
 .../model/BACnetAuthorizationExemptionTagged.go    |  11 +-
 .../readwrite/model/BACnetAuthorizationMode.go     |  14 +-
 .../model/BACnetAuthorizationModeTagged.go         |  11 +-
 .../bacnetip/readwrite/model/BACnetBDTEntry.go     |  11 +-
 .../bacnetip/readwrite/model/BACnetBackupState.go  |  14 +-
 .../readwrite/model/BACnetBackupStateTagged.go     |  11 +-
 .../readwrite/model/BACnetBinaryLightingPV.go      |  14 +-
 .../model/BACnetBinaryLightingPVTagged.go          |  11 +-
 .../bacnetip/readwrite/model/BACnetBinaryPV.go     |  14 +-
 .../readwrite/model/BACnetBinaryPVTagged.go        |  11 +-
 .../model/BACnetCOVMultipleSubscription.go         |  11 +-
 ...bscriptionListOfCovSubscriptionSpecification.go |  11 +-
 ...ptionListOfCovSubscriptionSpecificationEntry.go |  11 +-
 ...riptionSpecificationEntryListOfCovReferences.go |  11 +-
 ...onSpecificationEntryListOfCovReferencesEntry.go |  11 +-
 .../readwrite/model/BACnetCOVSubscription.go       |  11 +-
 .../readwrite/model/BACnetCalendarEntryDate.go     |  11 +-
 .../model/BACnetCalendarEntryDateRange.go          |  11 +-
 .../readwrite/model/BACnetCalendarEntryEnclosed.go |  11 +-
 .../readwrite/model/BACnetCalendarEntryWeekNDay.go |  11 +-
 .../readwrite/model/BACnetChannelValueBitString.go |  11 +-
 .../readwrite/model/BACnetChannelValueBoolean.go   |  11 +-
 .../model/BACnetChannelValueCharacterString.go     |  11 +-
 .../readwrite/model/BACnetChannelValueDate.go      |  11 +-
 .../readwrite/model/BACnetChannelValueDouble.go    |  11 +-
 .../model/BACnetChannelValueEnumerated.go          |  11 +-
 .../readwrite/model/BACnetChannelValueInteger.go   |  11 +-
 .../model/BACnetChannelValueLightingCommand.go     |  11 +-
 .../readwrite/model/BACnetChannelValueNull.go      |  11 +-
 .../model/BACnetChannelValueObjectidentifier.go    |  11 +-
 .../model/BACnetChannelValueOctetString.go         |  11 +-
 .../readwrite/model/BACnetChannelValueReal.go      |  11 +-
 .../readwrite/model/BACnetChannelValueTime.go      |  11 +-
 .../readwrite/model/BACnetChannelValueUnsigned.go  |  11 +-
 .../readwrite/model/BACnetCharacterEncoding.go     |  14 +-
 .../readwrite/model/BACnetClientCOVNone.go         |  11 +-
 .../readwrite/model/BACnetClientCOVObject.go       |  11 +-
 .../bacnetip/readwrite/model/BACnetClosingTag.go   |  11 +-
 .../model/BACnetConfirmedServiceChoice.go          |  14 +-
 ...ACnetConfirmedServiceRequestAcknowledgeAlarm.go |  11 +-
 .../BACnetConfirmedServiceRequestAddListElement.go |  11 +-
 .../BACnetConfirmedServiceRequestAtomicReadFile.go |  11 +-
 ...tConfirmedServiceRequestAtomicReadFileRecord.go |  11 +-
 ...tConfirmedServiceRequestAtomicReadFileStream.go |  11 +-
 ...BACnetConfirmedServiceRequestAtomicWriteFile.go |  11 +-
 .../BACnetConfirmedServiceRequestAuthenticate.go   |  11 +-
 ...firmedServiceRequestConfirmedCOVNotification.go |  11 +-
 ...rviceRequestConfirmedCOVNotificationMultiple.go |  11 +-
 ...rmedServiceRequestConfirmedEventNotification.go |  11 +-
 ...firmedServiceRequestConfirmedPrivateTransfer.go |  11 +-
 ...tConfirmedServiceRequestConfirmedTextMessage.go |  11 +-
 ...estConfirmedTextMessageMessageClassCharacter.go |  11 +-
 ...questConfirmedTextMessageMessageClassNumeric.go |  11 +-
 ...ceRequestConfirmedTextMessageMessagePriority.go |  14 +-
 ...estConfirmedTextMessageMessagePriorityTagged.go |  11 +-
 .../BACnetConfirmedServiceRequestCreateObject.go   |  11 +-
 ...medServiceRequestCreateObjectObjectSpecifier.go |  11 +-
 .../BACnetConfirmedServiceRequestDeleteObject.go   |  11 +-
 ...rmedServiceRequestDeviceCommunicationControl.go |  11 +-
 ...questDeviceCommunicationControlEnableDisable.go |  14 +-
 ...eviceCommunicationControlEnableDisableTagged.go |  11 +-
 ...tConfirmedServiceRequestGetEnrollmentSummary.go |  11 +-
 ...estGetEnrollmentSummaryAcknowledgementFilter.go |  14 +-
 ...EnrollmentSummaryAcknowledgementFilterTagged.go |  11 +-
 ...eRequestGetEnrollmentSummaryEventStateFilter.go |  14 +-
 ...stGetEnrollmentSummaryEventStateFilterTagged.go |  11 +-
 ...iceRequestGetEnrollmentSummaryPriorityFilter.go |  11 +-
 ...etConfirmedServiceRequestGetEventInformation.go |  11 +-
 ...etConfirmedServiceRequestLifeSafetyOperation.go |  11 +-
 .../BACnetConfirmedServiceRequestReadProperty.go   |  11 +-
 ...nfirmedServiceRequestReadPropertyConditional.go |  11 +-
 ...tConfirmedServiceRequestReadPropertyMultiple.go |  11 +-
 .../BACnetConfirmedServiceRequestReadRange.go      |  11 +-
 ...firmedServiceRequestReadRangeRangeByPosition.go |  11 +-
 ...ServiceRequestReadRangeRangeBySequenceNumber.go |  11 +-
 ...tConfirmedServiceRequestReadRangeRangeByTime.go |  11 +-
 ...netConfirmedServiceRequestReinitializeDevice.go |  11 +-
 ...ReinitializeDeviceReinitializedStateOfDevice.go |  14 +-
 ...ializeDeviceReinitializedStateOfDeviceTagged.go |  11 +-
 ...CnetConfirmedServiceRequestRemoveListElement.go |  11 +-
 .../BACnetConfirmedServiceRequestRequestKey.go     |  11 +-
 .../BACnetConfirmedServiceRequestSubscribeCOV.go   |  11 +-
 ...tConfirmedServiceRequestSubscribeCOVProperty.go |  11 +-
 ...edServiceRequestSubscribeCOVPropertyMultiple.go |  11 +-
 ...yMultipleListOfCovSubscriptionSpecifications.go |  11 +-
 ...tipleListOfCovSubscriptionSpecificationsList.go |  11 +-
 ...ListOfCovSubscriptionSpecificationsReference.go |  11 +-
 .../model/BACnetConfirmedServiceRequestUnknown.go  |  11 +-
 .../model/BACnetConfirmedServiceRequestVTClose.go  |  11 +-
 .../model/BACnetConfirmedServiceRequestVTData.go   |  11 +-
 .../model/BACnetConfirmedServiceRequestVTOpen.go   |  11 +-
 .../BACnetConfirmedServiceRequestWriteProperty.go  |  11 +-
 ...ConfirmedServiceRequestWritePropertyMultiple.go |  11 +-
 .../model/BACnetConstructedDataAPDULength.go       |  11 +-
 .../BACnetConstructedDataAPDUSegmentTimeout.go     |  11 +-
 .../model/BACnetConstructedDataAPDUTimeout.go      |  11 +-
 .../model/BACnetConstructedDataAbsenteeLimit.go    |  11 +-
 .../model/BACnetConstructedDataAcceptedModes.go    |  11 +-
 .../BACnetConstructedDataAccessAlarmEvents.go      |  11 +-
 .../BACnetConstructedDataAccessCredentialAll.go    |  11 +-
 .../BACnetConstructedDataAccessDoorAlarmValues.go  |  11 +-
 .../model/BACnetConstructedDataAccessDoorAll.go    |  11 +-
 .../BACnetConstructedDataAccessDoorFaultValues.go  |  11 +-
 .../BACnetConstructedDataAccessDoorPresentValue.go |  11 +-
 ...etConstructedDataAccessDoorRelinquishDefault.go |  11 +-
 .../model/BACnetConstructedDataAccessDoors.go      |  11 +-
 .../model/BACnetConstructedDataAccessEvent.go      |  11 +-
 ...nstructedDataAccessEventAuthenticationFactor.go |  11 +-
 .../BACnetConstructedDataAccessEventCredential.go  |  11 +-
 .../model/BACnetConstructedDataAccessEventTag.go   |  11 +-
 .../model/BACnetConstructedDataAccessEventTime.go  |  11 +-
 .../model/BACnetConstructedDataAccessPointAll.go   |  11 +-
 .../model/BACnetConstructedDataAccessRightsAll.go  |  11 +-
 ...BACnetConstructedDataAccessTransactionEvents.go |  11 +-
 .../model/BACnetConstructedDataAccessUserAll.go    |  11 +-
 .../BACnetConstructedDataAccessZoneAdjustValue.go  |  11 +-
 .../BACnetConstructedDataAccessZoneAlarmValues.go  |  11 +-
 .../model/BACnetConstructedDataAccessZoneAll.go    |  11 +-
 .../model/BACnetConstructedDataAccompaniment.go    |  11 +-
 .../BACnetConstructedDataAccompanimentTime.go      |  11 +-
 .../model/BACnetConstructedDataAccumulatorAll.go   |  11 +-
 ...CnetConstructedDataAccumulatorFaultHighLimit.go |  11 +-
 ...ACnetConstructedDataAccumulatorFaultLowLimit.go |  11 +-
 .../BACnetConstructedDataAccumulatorHighLimit.go   |  11 +-
 .../BACnetConstructedDataAccumulatorLowLimit.go    |  11 +-
 ...BACnetConstructedDataAccumulatorMaxPresValue.go |  11 +-
 ...BACnetConstructedDataAccumulatorMinPresValue.go |  11 +-
 .../model/BACnetConstructedDataAckRequired.go      |  11 +-
 .../model/BACnetConstructedDataAckedTransitions.go |  11 +-
 .../readwrite/model/BACnetConstructedDataAction.go |  11 +-
 .../model/BACnetConstructedDataActionText.go       |  11 +-
 .../model/BACnetConstructedDataActivationTime.go   |  11 +-
 ...netConstructedDataActiveAuthenticationPolicy.go |  11 +-
 ...onstructedDataActiveCOVMultipleSubscriptions.go |  11 +-
 .../BACnetConstructedDataActiveCOVSubscriptions.go |  11 +-
 .../model/BACnetConstructedDataActiveText.go       |  11 +-
 .../model/BACnetConstructedDataActiveVTSessions.go |  11 +-
 .../model/BACnetConstructedDataActualShedLevel.go  |  11 +-
 .../model/BACnetConstructedDataAdjustValue.go      |  11 +-
 .../model/BACnetConstructedDataAlarmValue.go       |  11 +-
 .../model/BACnetConstructedDataAlarmValues.go      |  11 +-
 .../BACnetConstructedDataAlertEnrollmentAll.go     |  11 +-
 ...etConstructedDataAlertEnrollmentPresentValue.go |  11 +-
 .../model/BACnetConstructedDataAlignIntervals.go   |  11 +-
 .../BACnetConstructedDataAllWritesSuccessful.go    |  11 +-
 .../BACnetConstructedDataAllowGroupDelayInhibit.go |  11 +-
 .../model/BACnetConstructedDataAnalogInputAll.go   |  11 +-
 ...CnetConstructedDataAnalogInputFaultHighLimit.go |  11 +-
 ...ACnetConstructedDataAnalogInputFaultLowLimit.go |  11 +-
 ...CnetConstructedDataAnalogInputInterfaceValue.go |  11 +-
 ...BACnetConstructedDataAnalogInputMaxPresValue.go |  11 +-
 ...BACnetConstructedDataAnalogInputPresentValue.go |  11 +-
 .../model/BACnetConstructedDataAnalogOutputAll.go  |  11 +-
 ...netConstructedDataAnalogOutputInterfaceValue.go |  11 +-
 ...ACnetConstructedDataAnalogOutputMaxPresValue.go |  11 +-
 ...ACnetConstructedDataAnalogOutputPresentValue.go |  11 +-
 ...ConstructedDataAnalogOutputRelinquishDefault.go |  11 +-
 .../model/BACnetConstructedDataAnalogValueAll.go   |  11 +-
 ...CnetConstructedDataAnalogValueFaultHighLimit.go |  11 +-
 ...ACnetConstructedDataAnalogValueFaultLowLimit.go |  11 +-
 ...BACnetConstructedDataAnalogValueMaxPresValue.go |  11 +-
 ...BACnetConstructedDataAnalogValuePresentValue.go |  11 +-
 ...tConstructedDataAnalogValueRelinquishDefault.go |  11 +-
 ...netConstructedDataApplicationSoftwareVersion.go |  11 +-
 .../model/BACnetConstructedDataArchive.go          |  11 +-
 .../BACnetConstructedDataAssignedAccessRights.go   |  11 +-
 .../BACnetConstructedDataAssignedLandingCalls.go   |  11 +-
 .../model/BACnetConstructedDataAttemptedSamples.go |  11 +-
 .../BACnetConstructedDataAuthenticationFactors.go  |  11 +-
 ...ACnetConstructedDataAuthenticationPolicyList.go |  11 +-
 ...CnetConstructedDataAuthenticationPolicyNames.go |  11 +-
 .../BACnetConstructedDataAuthenticationStatus.go   |  11 +-
 ...BACnetConstructedDataAuthorizationExemptions.go |  11 +-
 .../BACnetConstructedDataAuthorizationMode.go      |  11 +-
 .../BACnetConstructedDataAutoSlaveDiscovery.go     |  11 +-
 .../model/BACnetConstructedDataAverageValue.go     |  11 +-
 .../model/BACnetConstructedDataAveragingAll.go     |  11 +-
 .../BACnetConstructedDataBACnetIPGlobalAddress.go  |  11 +-
 .../model/BACnetConstructedDataBACnetIPMode.go     |  11 +-
 ...ACnetConstructedDataBACnetIPMulticastAddress.go |  11 +-
 .../BACnetConstructedDataBACnetIPNATTraversal.go   |  11 +-
 .../model/BACnetConstructedDataBACnetIPUDPPort.go  |  11 +-
 .../model/BACnetConstructedDataBACnetIPv6Mode.go   |  11 +-
 ...netConstructedDataBACnetIPv6MulticastAddress.go |  11 +-
 .../BACnetConstructedDataBACnetIPv6UDPPort.go      |  11 +-
 ...CnetConstructedDataBBMDAcceptFDRegistrations.go |  11 +-
 ...onstructedDataBBMDBroadcastDistributionTable.go |  11 +-
 .../BACnetConstructedDataBBMDForeignDeviceTable.go |  11 +-
 .../BACnetConstructedDataBackupAndRestoreState.go  |  11 +-
 .../BACnetConstructedDataBackupFailureTimeout.go   |  11 +-
 .../BACnetConstructedDataBackupPreparationTime.go  |  11 +-
 ...ACnetConstructedDataBaseDeviceSecurityPolicy.go |  11 +-
 .../model/BACnetConstructedDataBelongsTo.go        |  11 +-
 .../readwrite/model/BACnetConstructedDataBias.go   |  11 +-
 .../model/BACnetConstructedDataBinaryInputAll.go   |  11 +-
 ...CnetConstructedDataBinaryInputInterfaceValue.go |  11 +-
 ...BACnetConstructedDataBinaryInputPresentValue.go |  11 +-
 ...BACnetConstructedDataBinaryLightingOutputAll.go |  11 +-
 ...tructedDataBinaryLightingOutputFeedbackValue.go |  11 +-
 ...structedDataBinaryLightingOutputPresentValue.go |  11 +-
 ...tedDataBinaryLightingOutputRelinquishDefault.go |  11 +-
 .../model/BACnetConstructedDataBinaryOutputAll.go  |  11 +-
 ...CnetConstructedDataBinaryOutputFeedbackValue.go |  11 +-
 ...netConstructedDataBinaryOutputInterfaceValue.go |  11 +-
 ...ACnetConstructedDataBinaryOutputPresentValue.go |  11 +-
 ...ConstructedDataBinaryOutputRelinquishDefault.go |  11 +-
 .../model/BACnetConstructedDataBinaryValueAll.go   |  11 +-
 ...BACnetConstructedDataBinaryValuePresentValue.go |  11 +-
 ...tConstructedDataBinaryValueRelinquishDefault.go |  11 +-
 .../model/BACnetConstructedDataBitMask.go          |  11 +-
 ...CnetConstructedDataBitStringValueAlarmValues.go |  11 +-
 ...netConstructedDataBitStringValuePresentValue.go |  11 +-
 ...nstructedDataBitStringValueRelinquishDefault.go |  11 +-
 .../model/BACnetConstructedDataBitText.go          |  11 +-
 .../BACnetConstructedDataBitstringValueAll.go      |  11 +-
 .../model/BACnetConstructedDataBlinkWarnEnable.go  |  11 +-
 .../model/BACnetConstructedDataBufferSize.go       |  11 +-
 .../model/BACnetConstructedDataCOVIncrement.go     |  11 +-
 .../model/BACnetConstructedDataCOVPeriod.go        |  11 +-
 ...CnetConstructedDataCOVResubscriptionInterval.go |  11 +-
 .../model/BACnetConstructedDataCOVUPeriod.go       |  11 +-
 .../model/BACnetConstructedDataCOVURecipients.go   |  11 +-
 .../model/BACnetConstructedDataCalendarAll.go      |  11 +-
 .../BACnetConstructedDataCalendarPresentValue.go   |  11 +-
 .../BACnetConstructedDataCarAssignedDirection.go   |  11 +-
 .../model/BACnetConstructedDataCarDoorCommand.go   |  11 +-
 .../model/BACnetConstructedDataCarDoorStatus.go    |  11 +-
 .../model/BACnetConstructedDataCarDoorText.go      |  11 +-
 .../model/BACnetConstructedDataCarDoorZone.go      |  11 +-
 .../model/BACnetConstructedDataCarDriveStatus.go   |  11 +-
 .../model/BACnetConstructedDataCarLoad.go          |  11 +-
 .../model/BACnetConstructedDataCarLoadUnits.go     |  11 +-
 .../model/BACnetConstructedDataCarMode.go          |  11 +-
 .../BACnetConstructedDataCarMovingDirection.go     |  11 +-
 .../model/BACnetConstructedDataCarPosition.go      |  11 +-
 .../BACnetConstructedDataChangeOfStateCount.go     |  11 +-
 .../BACnetConstructedDataChangeOfStateTime.go      |  11 +-
 .../model/BACnetConstructedDataChangesPending.go   |  11 +-
 .../model/BACnetConstructedDataChannelAll.go       |  11 +-
 ...tedDataChannelListOfObjectPropertyReferences.go |  11 +-
 .../model/BACnetConstructedDataChannelNumber.go    |  11 +-
 .../BACnetConstructedDataChannelPresentValue.go    |  11 +-
 ...nstructedDataCharacterStringValueAlarmValues.go |  11 +-
 ...nstructedDataCharacterStringValueFaultValues.go |  11 +-
 ...structedDataCharacterStringValuePresentValue.go |  11 +-
 ...tedDataCharacterStringValueRelinquishDefault.go |  11 +-
 ...BACnetConstructedDataCharacterstringValueAll.go |  11 +-
 .../BACnetConstructedDataClientCOVIncrement.go     |  11 +-
 .../model/BACnetConstructedDataCommand.go          |  11 +-
 .../model/BACnetConstructedDataCommandAction.go    |  11 +-
 .../model/BACnetConstructedDataCommandAll.go       |  11 +-
 .../model/BACnetConstructedDataCommandTimeArray.go |  11 +-
 .../BACnetConstructedDataConfigurationFiles.go     |  11 +-
 .../model/BACnetConstructedDataControlGroups.go    |  11 +-
 ...etConstructedDataControlledVariableReference.go |  11 +-
 ...BACnetConstructedDataControlledVariableUnits.go |  11 +-
 ...BACnetConstructedDataControlledVariableValue.go |  11 +-
 .../readwrite/model/BACnetConstructedDataCount.go  |  11 +-
 .../BACnetConstructedDataCountBeforeChange.go      |  11 +-
 .../model/BACnetConstructedDataCountChangeTime.go  |  11 +-
 .../BACnetConstructedDataCredentialDataInputAll.go |  11 +-
 ...nstructedDataCredentialDataInputPresentValue.go |  11 +-
 ...ConstructedDataCredentialDataInputUpdateTime.go |  11 +-
 .../BACnetConstructedDataCredentialDisable.go      |  11 +-
 .../model/BACnetConstructedDataCredentialStatus.go |  11 +-
 .../model/BACnetConstructedDataCredentials.go      |  11 +-
 .../BACnetConstructedDataCredentialsInZone.go      |  11 +-
 .../BACnetConstructedDataCurrentCommandPriority.go |  11 +-
 .../model/BACnetConstructedDataDatabaseRevision.go |  11 +-
 .../model/BACnetConstructedDataDateList.go         |  11 +-
 ...tConstructedDataDatePatternValuePresentValue.go |  11 +-
 ...tructedDataDatePatternValueRelinquishDefault.go |  11 +-
 ...structedDataDateTimePatternValuePresentValue.go |  11 +-
 ...tedDataDateTimePatternValueRelinquishDefault.go |  11 +-
 ...CnetConstructedDataDateTimeValuePresentValue.go |  11 +-
 ...onstructedDataDateTimeValueRelinquishDefault.go |  11 +-
 .../model/BACnetConstructedDataDateValueAll.go     |  11 +-
 .../BACnetConstructedDataDateValuePresentValue.go  |  11 +-
 ...netConstructedDataDateValueRelinquishDefault.go |  11 +-
 .../BACnetConstructedDataDatepatternValueAll.go    |  11 +-
 .../model/BACnetConstructedDataDatetimeValueAll.go |  11 +-
 ...BACnetConstructedDataDatetimepatternValueAll.go |  11 +-
 .../BACnetConstructedDataDaylightSavingsStatus.go  |  11 +-
 .../model/BACnetConstructedDataDaysRemaining.go    |  11 +-
 .../model/BACnetConstructedDataDeadband.go         |  11 +-
 .../model/BACnetConstructedDataDefaultFadeTime.go  |  11 +-
 .../model/BACnetConstructedDataDefaultRampRate.go  |  11 +-
 .../BACnetConstructedDataDefaultStepIncrement.go   |  11 +-
 ...onstructedDataDefaultSubordinateRelationship.go |  11 +-
 .../model/BACnetConstructedDataDefaultTimeout.go   |  11 +-
 ...BACnetConstructedDataDeployedProfileLocation.go |  11 +-
 .../BACnetConstructedDataDerivativeConstant.go     |  11 +-
 ...BACnetConstructedDataDerivativeConstantUnits.go |  11 +-
 .../model/BACnetConstructedDataDescription.go      |  11 +-
 .../BACnetConstructedDataDescriptionOfHalt.go      |  11 +-
 .../BACnetConstructedDataDeviceAddressBinding.go   |  11 +-
 .../model/BACnetConstructedDataDeviceAll.go        |  11 +-
 .../BACnetConstructedDataDeviceMaxInfoFrames.go    |  11 +-
 .../model/BACnetConstructedDataDeviceMaxMaster.go  |  11 +-
 .../model/BACnetConstructedDataDeviceType.go       |  11 +-
 .../model/BACnetConstructedDataDirectReading.go    |  11 +-
 ...BACnetConstructedDataDistributionKeyRevision.go |  11 +-
 .../model/BACnetConstructedDataDoNotHide.go        |  11 +-
 .../model/BACnetConstructedDataDoorAlarmState.go   |  11 +-
 .../BACnetConstructedDataDoorExtendedPulseTime.go  |  11 +-
 .../model/BACnetConstructedDataDoorMembers.go      |  11 +-
 .../BACnetConstructedDataDoorOpenTooLongTime.go    |  11 +-
 .../model/BACnetConstructedDataDoorPulseTime.go    |  11 +-
 .../model/BACnetConstructedDataDoorStatus.go       |  11 +-
 .../BACnetConstructedDataDoorUnlockDelayTime.go    |  11 +-
 .../model/BACnetConstructedDataDutyWindow.go       |  11 +-
 .../model/BACnetConstructedDataEffectivePeriod.go  |  11 +-
 .../model/BACnetConstructedDataEgressActive.go     |  11 +-
 .../model/BACnetConstructedDataEgressTime.go       |  11 +-
 .../BACnetConstructedDataElapsedActiveTime.go      |  11 +-
 .../model/BACnetConstructedDataElement.go          |  11 +-
 .../model/BACnetConstructedDataElevatorGroup.go    |  11 +-
 .../model/BACnetConstructedDataElevatorGroupAll.go |  11 +-
 ...CnetConstructedDataElevatorGroupGroupMembers.go |  11 +-
 .../readwrite/model/BACnetConstructedDataEnable.go |  11 +-
 .../model/BACnetConstructedDataEnergyMeter.go      |  11 +-
 .../model/BACnetConstructedDataEnergyMeterRef.go   |  11 +-
 .../model/BACnetConstructedDataEntryPoints.go      |  11 +-
 .../model/BACnetConstructedDataErrorLimit.go       |  11 +-
 .../model/BACnetConstructedDataEscalatorAll.go     |  11 +-
 .../BACnetConstructedDataEscalatorFaultSignals.go  |  11 +-
 .../model/BACnetConstructedDataEscalatorMode.go    |  11 +-
 .../BACnetConstructedDataEventAlgorithmInhibit.go  |  11 +-
 ...ACnetConstructedDataEventAlgorithmInhibitRef.go |  11 +-
 .../BACnetConstructedDataEventDetectionEnable.go   |  11 +-
 .../model/BACnetConstructedDataEventEnable.go      |  11 +-
 .../BACnetConstructedDataEventEnrollmentAll.go     |  11 +-
 .../model/BACnetConstructedDataEventLogAll.go      |  11 +-
 .../BACnetConstructedDataEventLogLogBuffer.go      |  11 +-
 .../BACnetConstructedDataEventMessageTexts.go      |  11 +-
 ...BACnetConstructedDataEventMessageTextsConfig.go |  11 +-
 .../model/BACnetConstructedDataEventParameters.go  |  11 +-
 .../model/BACnetConstructedDataEventState.go       |  11 +-
 .../model/BACnetConstructedDataEventTimeStamps.go  |  11 +-
 .../model/BACnetConstructedDataEventType.go        |  11 +-
 .../BACnetConstructedDataExceptionSchedule.go      |  11 +-
 .../model/BACnetConstructedDataExecutionDelay.go   |  11 +-
 .../model/BACnetConstructedDataExitPoints.go       |  11 +-
 .../BACnetConstructedDataExpectedShedLevel.go      |  11 +-
 .../model/BACnetConstructedDataExpirationTime.go   |  11 +-
 .../BACnetConstructedDataExtendedTimeEnable.go     |  11 +-
 .../model/BACnetConstructedDataFDBBMDAddress.go    |  11 +-
 .../BACnetConstructedDataFDSubscriptionLifetime.go |  11 +-
 .../BACnetConstructedDataFailedAttemptEvents.go    |  11 +-
 .../model/BACnetConstructedDataFailedAttempts.go   |  11 +-
 .../BACnetConstructedDataFailedAttemptsTime.go     |  11 +-
 .../model/BACnetConstructedDataFaultHighLimit.go   |  11 +-
 .../model/BACnetConstructedDataFaultLowLimit.go    |  11 +-
 .../model/BACnetConstructedDataFaultParameters.go  |  11 +-
 .../model/BACnetConstructedDataFaultSignals.go     |  11 +-
 .../model/BACnetConstructedDataFaultType.go        |  11 +-
 .../model/BACnetConstructedDataFaultValues.go      |  11 +-
 .../model/BACnetConstructedDataFileAccessMethod.go |  11 +-
 .../model/BACnetConstructedDataFileAll.go          |  11 +-
 .../model/BACnetConstructedDataFileRecordCount.go  |  11 +-
 .../model/BACnetConstructedDataFileSize.go         |  11 +-
 .../model/BACnetConstructedDataFileType.go         |  11 +-
 .../model/BACnetConstructedDataFirmwareRevision.go |  11 +-
 .../model/BACnetConstructedDataFloorText.go        |  11 +-
 .../model/BACnetConstructedDataFullDutyBaseline.go |  11 +-
 .../model/BACnetConstructedDataGlobalGroupAll.go   |  11 +-
 ...BACnetConstructedDataGlobalGroupGroupMembers.go |  11 +-
 ...BACnetConstructedDataGlobalGroupPresentValue.go |  11 +-
 .../model/BACnetConstructedDataGlobalIdentifier.go |  11 +-
 .../model/BACnetConstructedDataGroupAll.go         |  11 +-
 .../model/BACnetConstructedDataGroupID.go          |  11 +-
 .../model/BACnetConstructedDataGroupMemberNames.go |  11 +-
 .../model/BACnetConstructedDataGroupMembers.go     |  11 +-
 .../model/BACnetConstructedDataGroupMode.go        |  11 +-
 .../BACnetConstructedDataGroupPresentValue.go      |  11 +-
 .../model/BACnetConstructedDataHighLimit.go        |  11 +-
 .../model/BACnetConstructedDataHigherDeck.go       |  11 +-
 .../model/BACnetConstructedDataIPAddress.go        |  11 +-
 .../model/BACnetConstructedDataIPDHCPEnable.go     |  11 +-
 .../model/BACnetConstructedDataIPDHCPLeaseTime.go  |  11 +-
 ...ACnetConstructedDataIPDHCPLeaseTimeRemaining.go |  11 +-
 .../model/BACnetConstructedDataIPDHCPServer.go     |  11 +-
 .../model/BACnetConstructedDataIPDNSServer.go      |  11 +-
 .../model/BACnetConstructedDataIPDefaultGateway.go |  11 +-
 .../model/BACnetConstructedDataIPSubnetMask.go     |  11 +-
 .../model/BACnetConstructedDataIPv6Address.go      |  11 +-
 ...ACnetConstructedDataIPv6AutoAddressingEnable.go |  11 +-
 .../BACnetConstructedDataIPv6DHCPLeaseTime.go      |  11 +-
 ...netConstructedDataIPv6DHCPLeaseTimeRemaining.go |  11 +-
 .../model/BACnetConstructedDataIPv6DHCPServer.go   |  11 +-
 .../model/BACnetConstructedDataIPv6DNSServer.go    |  11 +-
 .../BACnetConstructedDataIPv6DefaultGateway.go     |  11 +-
 .../model/BACnetConstructedDataIPv6PrefixLength.go |  11 +-
 .../model/BACnetConstructedDataIPv6ZoneIndex.go    |  11 +-
 .../model/BACnetConstructedDataInProcess.go        |  11 +-
 .../model/BACnetConstructedDataInProgress.go       |  11 +-
 .../model/BACnetConstructedDataInactiveText.go     |  11 +-
 .../model/BACnetConstructedDataInitialTimeout.go   |  11 +-
 .../model/BACnetConstructedDataInputReference.go   |  11 +-
 .../model/BACnetConstructedDataInstallationID.go   |  11 +-
 .../model/BACnetConstructedDataInstanceOf.go       |  11 +-
 .../BACnetConstructedDataInstantaneousPower.go     |  11 +-
 .../model/BACnetConstructedDataIntegerValueAll.go  |  11 +-
 ...ACnetConstructedDataIntegerValueCOVIncrement.go |  11 +-
 .../BACnetConstructedDataIntegerValueDeadband.go   |  11 +-
 ...netConstructedDataIntegerValueFaultHighLimit.go |  11 +-
 ...CnetConstructedDataIntegerValueFaultLowLimit.go |  11 +-
 .../BACnetConstructedDataIntegerValueHighLimit.go  |  11 +-
 .../BACnetConstructedDataIntegerValueLowLimit.go   |  11 +-
 ...ACnetConstructedDataIntegerValueMaxPresValue.go |  11 +-
 ...ACnetConstructedDataIntegerValueMinPresValue.go |  11 +-
 ...ACnetConstructedDataIntegerValuePresentValue.go |  11 +-
 ...ConstructedDataIntegerValueRelinquishDefault.go |  11 +-
 .../BACnetConstructedDataIntegerValueResolution.go |  11 +-
 .../model/BACnetConstructedDataIntegralConstant.go |  11 +-
 .../BACnetConstructedDataIntegralConstantUnits.go  |  11 +-
 .../model/BACnetConstructedDataIntervalOffset.go   |  11 +-
 .../readwrite/model/BACnetConstructedDataIsUTC.go  |  11 +-
 .../model/BACnetConstructedDataKeySets.go          |  11 +-
 .../BACnetConstructedDataLandingCallControl.go     |  11 +-
 .../model/BACnetConstructedDataLandingCalls.go     |  11 +-
 .../BACnetConstructedDataLandingDoorStatus.go      |  11 +-
 .../BACnetConstructedDataLargeAnalogValueAll.go    |  11 +-
 ...tConstructedDataLargeAnalogValueCOVIncrement.go |  11 +-
 ...ACnetConstructedDataLargeAnalogValueDeadband.go |  11 +-
 ...onstructedDataLargeAnalogValueFaultHighLimit.go |  11 +-
 ...ConstructedDataLargeAnalogValueFaultLowLimit.go |  11 +-
 ...CnetConstructedDataLargeAnalogValueHighLimit.go |  11 +-
 ...ACnetConstructedDataLargeAnalogValueLowLimit.go |  11 +-
 ...tConstructedDataLargeAnalogValueMaxPresValue.go |  11 +-
 ...tConstructedDataLargeAnalogValueMinPresValue.go |  11 +-
 ...tConstructedDataLargeAnalogValuePresentValue.go |  11 +-
 ...tructedDataLargeAnalogValueRelinquishDefault.go |  11 +-
 ...netConstructedDataLargeAnalogValueResolution.go |  11 +-
 .../model/BACnetConstructedDataLastAccessEvent.go  |  11 +-
 .../model/BACnetConstructedDataLastAccessPoint.go  |  11 +-
 .../model/BACnetConstructedDataLastCommandTime.go  |  11 +-
 .../BACnetConstructedDataLastCredentialAdded.go    |  11 +-
 ...BACnetConstructedDataLastCredentialAddedTime.go |  11 +-
 .../BACnetConstructedDataLastCredentialRemoved.go  |  11 +-
 ...CnetConstructedDataLastCredentialRemovedTime.go |  11 +-
 .../model/BACnetConstructedDataLastKeyServer.go    |  11 +-
 .../model/BACnetConstructedDataLastNotifyRecord.go |  11 +-
 .../model/BACnetConstructedDataLastPriority.go     |  11 +-
 .../BACnetConstructedDataLastRestartReason.go      |  11 +-
 .../model/BACnetConstructedDataLastRestoreTime.go  |  11 +-
 .../model/BACnetConstructedDataLastStateChange.go  |  11 +-
 .../model/BACnetConstructedDataLastUseTime.go      |  11 +-
 .../BACnetConstructedDataLifeSafetyAlarmValues.go  |  11 +-
 ...netConstructedDataLifeSafetyPointAlarmValues.go |  11 +-
 .../BACnetConstructedDataLifeSafetyPointAll.go     |  11 +-
 ...netConstructedDataLifeSafetyPointFaultValues.go |  11 +-
 ...etConstructedDataLifeSafetyPointPresentValue.go |  11 +-
 ...CnetConstructedDataLifeSafetyZoneAlarmValues.go |  11 +-
 .../BACnetConstructedDataLifeSafetyZoneAll.go      |  11 +-
 ...CnetConstructedDataLifeSafetyZoneFaultValues.go |  11 +-
 ...tructedDataLifeSafetyZoneMaintenanceRequired.go |  11 +-
 ...netConstructedDataLifeSafetyZonePresentValue.go |  11 +-
 .../model/BACnetConstructedDataLiftAll.go          |  11 +-
 .../model/BACnetConstructedDataLiftFaultSignals.go |  11 +-
 .../model/BACnetConstructedDataLightingCommand.go  |  11 +-
 ...onstructedDataLightingCommandDefaultPriority.go |  11 +-
 .../BACnetConstructedDataLightingOutputAll.go      |  11 +-
 ...etConstructedDataLightingOutputFeedbackValue.go |  11 +-
 ...netConstructedDataLightingOutputPresentValue.go |  11 +-
 ...nstructedDataLightingOutputRelinquishDefault.go |  11 +-
 ...etConstructedDataLightingOutputTrackingValue.go |  11 +-
 .../model/BACnetConstructedDataLimitEnable.go      |  11 +-
 ...BACnetConstructedDataLimitMonitoringInterval.go |  11 +-
 .../model/BACnetConstructedDataLinkSpeed.go        |  11 +-
 .../BACnetConstructedDataLinkSpeedAutonegotiate.go |  11 +-
 .../model/BACnetConstructedDataLinkSpeeds.go       |  11 +-
 .../BACnetConstructedDataListOfGroupMembers.go     |  11 +-
 ...onstructedDataListOfObjectPropertyReferences.go |  11 +-
 .../model/BACnetConstructedDataLoadControlAll.go   |  11 +-
 ...BACnetConstructedDataLoadControlPresentValue.go |  11 +-
 .../model/BACnetConstructedDataLocalDate.go        |  11 +-
 .../BACnetConstructedDataLocalForwardingOnly.go    |  11 +-
 .../model/BACnetConstructedDataLocalTime.go        |  11 +-
 .../model/BACnetConstructedDataLocation.go         |  11 +-
 .../model/BACnetConstructedDataLockStatus.go       |  11 +-
 .../model/BACnetConstructedDataLockout.go          |  11 +-
 .../BACnetConstructedDataLockoutRelinquishTime.go  |  11 +-
 .../model/BACnetConstructedDataLogBuffer.go        |  11 +-
 ...BACnetConstructedDataLogDeviceObjectProperty.go |  11 +-
 .../model/BACnetConstructedDataLogInterval.go      |  11 +-
 .../model/BACnetConstructedDataLoggingObject.go    |  11 +-
 .../model/BACnetConstructedDataLoggingRecord.go    |  11 +-
 .../model/BACnetConstructedDataLoggingType.go      |  11 +-
 .../model/BACnetConstructedDataLoopAction.go       |  11 +-
 .../model/BACnetConstructedDataLoopAll.go          |  11 +-
 .../model/BACnetConstructedDataLoopPresentValue.go |  11 +-
 .../model/BACnetConstructedDataLowDiffLimit.go     |  11 +-
 .../model/BACnetConstructedDataLowLimit.go         |  11 +-
 .../model/BACnetConstructedDataLowerDeck.go        |  11 +-
 .../model/BACnetConstructedDataMACAddress.go       |  11 +-
 .../model/BACnetConstructedDataMachineRoomID.go    |  11 +-
 .../BACnetConstructedDataMaintenanceRequired.go    |  11 +-
 .../model/BACnetConstructedDataMakingCarCall.go    |  11 +-
 ...tConstructedDataManipulatedVariableReference.go |  11 +-
 ...CnetConstructedDataManualSlaveAddressBinding.go |  11 +-
 .../BACnetConstructedDataMaskedAlarmValues.go      |  11 +-
 .../BACnetConstructedDataMaxAPDULengthAccepted.go  |  11 +-
 .../model/BACnetConstructedDataMaxActualValue.go   |  11 +-
 .../BACnetConstructedDataMaxFailedAttempts.go      |  11 +-
 .../model/BACnetConstructedDataMaxInfoFrames.go    |  11 +-
 .../model/BACnetConstructedDataMaxMaster.go        |  11 +-
 .../model/BACnetConstructedDataMaxPresValue.go     |  11 +-
 .../BACnetConstructedDataMaxSegmentsAccepted.go    |  11 +-
 .../model/BACnetConstructedDataMaximumOutput.go    |  11 +-
 .../model/BACnetConstructedDataMaximumValue.go     |  11 +-
 .../BACnetConstructedDataMaximumValueTimestamp.go  |  11 +-
 .../model/BACnetConstructedDataMemberOf.go         |  11 +-
 .../BACnetConstructedDataMemberStatusFlags.go      |  11 +-
 .../model/BACnetConstructedDataMembers.go          |  11 +-
 .../model/BACnetConstructedDataMinActualValue.go   |  11 +-
 .../model/BACnetConstructedDataMinPresValue.go     |  11 +-
 .../model/BACnetConstructedDataMinimumOffTime.go   |  11 +-
 .../model/BACnetConstructedDataMinimumOnTime.go    |  11 +-
 .../model/BACnetConstructedDataMinimumOutput.go    |  11 +-
 .../model/BACnetConstructedDataMinimumValue.go     |  11 +-
 .../BACnetConstructedDataMinimumValueTimestamp.go  |  11 +-
 .../readwrite/model/BACnetConstructedDataMode.go   |  11 +-
 .../model/BACnetConstructedDataModelName.go        |  11 +-
 .../model/BACnetConstructedDataModificationDate.go |  11 +-
 ...netConstructedDataMultiStateInputAlarmValues.go |  11 +-
 .../BACnetConstructedDataMultiStateInputAll.go     |  11 +-
 ...netConstructedDataMultiStateInputFaultValues.go |  11 +-
 ...ConstructedDataMultiStateInputInterfaceValue.go |  11 +-
 .../BACnetConstructedDataMultiStateOutputAll.go    |  11 +-
 ...ConstructedDataMultiStateOutputFeedbackValue.go |  11 +-
 ...onstructedDataMultiStateOutputInterfaceValue.go |  11 +-
 ...tructedDataMultiStateOutputRelinquishDefault.go |  11 +-
 ...netConstructedDataMultiStateValueAlarmValues.go |  11 +-
 .../BACnetConstructedDataMultiStateValueAll.go     |  11 +-
 ...netConstructedDataMultiStateValueFaultValues.go |  11 +-
 ...structedDataMultiStateValueRelinquishDefault.go |  11 +-
 .../model/BACnetConstructedDataMusterPoint.go      |  11 +-
 .../BACnetConstructedDataNegativeAccessRules.go    |  11 +-
 ...ConstructedDataNetworkAccessSecurityPolicies.go |  11 +-
 .../BACnetConstructedDataNetworkInterfaceName.go   |  11 +-
 .../model/BACnetConstructedDataNetworkNumber.go    |  11 +-
 .../BACnetConstructedDataNetworkNumberQuality.go   |  11 +-
 .../model/BACnetConstructedDataNetworkPortAll.go   |  11 +-
 ...ACnetConstructedDataNetworkPortMaxInfoFrames.go |  11 +-
 .../BACnetConstructedDataNetworkPortMaxMaster.go   |  11 +-
 .../BACnetConstructedDataNetworkSecurityAll.go     |  11 +-
 .../model/BACnetConstructedDataNetworkType.go      |  11 +-
 .../BACnetConstructedDataNextStoppingFloor.go      |  11 +-
 .../model/BACnetConstructedDataNodeSubtype.go      |  11 +-
 .../model/BACnetConstructedDataNodeType.go         |  11 +-
 .../BACnetConstructedDataNotificationClass.go      |  11 +-
 .../BACnetConstructedDataNotificationClassAll.go   |  11 +-
 ...ACnetConstructedDataNotificationForwarderAll.go |  11 +-
 .../BACnetConstructedDataNotificationThreshold.go  |  11 +-
 .../model/BACnetConstructedDataNotifyType.go       |  11 +-
 .../BACnetConstructedDataNumberOfAPDURetries.go    |  11 +-
 ...onstructedDataNumberOfAuthenticationPolicies.go |  11 +-
 .../model/BACnetConstructedDataNumberOfStates.go   |  11 +-
 .../model/BACnetConstructedDataObjectIdentifier.go |  11 +-
 .../model/BACnetConstructedDataObjectList.go       |  11 +-
 .../model/BACnetConstructedDataObjectName.go       |  11 +-
 ...BACnetConstructedDataObjectPropertyReference.go |  11 +-
 .../model/BACnetConstructedDataObjectType.go       |  11 +-
 .../model/BACnetConstructedDataOccupancyCount.go   |  11 +-
 .../BACnetConstructedDataOccupancyCountAdjust.go   |  11 +-
 .../BACnetConstructedDataOccupancyCountEnable.go   |  11 +-
 .../BACnetConstructedDataOccupancyLowerLimit.go    |  11 +-
 ...etConstructedDataOccupancyLowerLimitEnforced.go |  11 +-
 .../model/BACnetConstructedDataOccupancyState.go   |  11 +-
 .../BACnetConstructedDataOccupancyUpperLimit.go    |  11 +-
 ...etConstructedDataOccupancyUpperLimitEnforced.go |  11 +-
 ...tConstructedDataOctetStringValuePresentValue.go |  11 +-
 ...tructedDataOctetStringValueRelinquishDefault.go |  11 +-
 .../BACnetConstructedDataOctetstringValueAll.go    |  11 +-
 .../BACnetConstructedDataOperationDirection.go     |  11 +-
 .../BACnetConstructedDataOperationExpected.go      |  11 +-
 .../model/BACnetConstructedDataOptional.go         |  11 +-
 .../model/BACnetConstructedDataOutOfService.go     |  11 +-
 .../model/BACnetConstructedDataOutputUnits.go      |  11 +-
 .../BACnetConstructedDataPacketReorderTime.go      |  11 +-
 .../model/BACnetConstructedDataPassbackMode.go     |  11 +-
 .../model/BACnetConstructedDataPassbackTimeout.go  |  11 +-
 .../model/BACnetConstructedDataPassengerAlarm.go   |  11 +-
 .../model/BACnetConstructedDataPolarity.go         |  11 +-
 .../model/BACnetConstructedDataPortFilter.go       |  11 +-
 .../BACnetConstructedDataPositiveAccessRules.go    |  11 +-
 ...BACnetConstructedDataPositiveIntegerValueAll.go |  11 +-
 ...structedDataPositiveIntegerValueCOVIncrement.go |  11 +-
 ...tConstructedDataPositiveIntegerValueDeadband.go |  11 +-
 ...ructedDataPositiveIntegerValueFaultHighLimit.go |  11 +-
 ...tructedDataPositiveIntegerValueFaultLowLimit.go |  11 +-
 ...ConstructedDataPositiveIntegerValueHighLimit.go |  11 +-
 ...tConstructedDataPositiveIntegerValueLowLimit.go |  11 +-
 ...structedDataPositiveIntegerValueMaxPresValue.go |  11 +-
 ...structedDataPositiveIntegerValueMinPresValue.go |  11 +-
 ...tedDataPositiveIntegerValueRelinquishDefault.go |  11 +-
 ...onstructedDataPositiveIntegerValueResolution.go |  11 +-
 .../readwrite/model/BACnetConstructedDataPower.go  |  11 +-
 .../model/BACnetConstructedDataPowerMode.go        |  11 +-
 .../model/BACnetConstructedDataPrescale.go         |  11 +-
 .../model/BACnetConstructedDataPresentValue.go     |  11 +-
 .../model/BACnetConstructedDataPriority.go         |  11 +-
 .../model/BACnetConstructedDataPriorityArray.go    |  11 +-
 .../BACnetConstructedDataPriorityForWriting.go     |  11 +-
 .../BACnetConstructedDataProcessIdentifier.go      |  11 +-
 ...BACnetConstructedDataProcessIdentifierFilter.go |  11 +-
 .../model/BACnetConstructedDataProfileLocation.go  |  11 +-
 .../model/BACnetConstructedDataProfileName.go      |  11 +-
 .../model/BACnetConstructedDataProgramAll.go       |  11 +-
 .../model/BACnetConstructedDataProgramChange.go    |  11 +-
 .../model/BACnetConstructedDataProgramLocation.go  |  11 +-
 .../model/BACnetConstructedDataProgramState.go     |  11 +-
 .../model/BACnetConstructedDataPropertyList.go     |  11 +-
 .../BACnetConstructedDataProportionalConstant.go   |  11 +-
 ...CnetConstructedDataProportionalConstantUnits.go |  11 +-
 .../model/BACnetConstructedDataProtocolLevel.go    |  11 +-
 ...tConstructedDataProtocolObjectTypesSupported.go |  11 +-
 .../model/BACnetConstructedDataProtocolRevision.go |  11 +-
 ...CnetConstructedDataProtocolServicesSupported.go |  11 +-
 .../model/BACnetConstructedDataProtocolVersion.go  |  11 +-
 ...CnetConstructedDataPulseConverterAdjustValue.go |  11 +-
 .../BACnetConstructedDataPulseConverterAll.go      |  11 +-
 ...netConstructedDataPulseConverterPresentValue.go |  11 +-
 .../model/BACnetConstructedDataPulseRate.go        |  11 +-
 .../model/BACnetConstructedDataReadOnly.go         |  11 +-
 .../model/BACnetConstructedDataReasonForDisable.go |  11 +-
 .../model/BACnetConstructedDataReasonForHalt.go    |  11 +-
 .../model/BACnetConstructedDataRecipientList.go    |  11 +-
 .../model/BACnetConstructedDataRecordCount.go      |  11 +-
 ...ACnetConstructedDataRecordsSinceNotification.go |  11 +-
 .../model/BACnetConstructedDataReferencePort.go    |  11 +-
 .../BACnetConstructedDataRegisteredCarCall.go      |  11 +-
 .../model/BACnetConstructedDataReliability.go      |  11 +-
 ...tConstructedDataReliabilityEvaluationInhibit.go |  11 +-
 .../BACnetConstructedDataRelinquishDefault.go      |  11 +-
 .../model/BACnetConstructedDataRepresents.go       |  11 +-
 .../BACnetConstructedDataRequestedShedLevel.go     |  11 +-
 ...BACnetConstructedDataRequestedUpdateInterval.go |  11 +-
 .../model/BACnetConstructedDataRequired.go         |  11 +-
 .../model/BACnetConstructedDataResolution.go       |  11 +-
 ...ConstructedDataRestartNotificationRecipients.go |  11 +-
 .../BACnetConstructedDataRestoreCompletionTime.go  |  11 +-
 .../BACnetConstructedDataRestorePreparationTime.go |  11 +-
 .../model/BACnetConstructedDataRoutingTable.go     |  11 +-
 .../readwrite/model/BACnetConstructedDataScale.go  |  11 +-
 .../model/BACnetConstructedDataScaleFactor.go      |  11 +-
 .../model/BACnetConstructedDataScheduleAll.go      |  11 +-
 .../model/BACnetConstructedDataScheduleDefault.go  |  11 +-
 .../BACnetConstructedDataSchedulePresentValue.go   |  11 +-
 .../model/BACnetConstructedDataSecuredStatus.go    |  11 +-
 .../BACnetConstructedDataSecurityPDUTimeout.go     |  11 +-
 .../BACnetConstructedDataSecurityTimeWindow.go     |  11 +-
 .../BACnetConstructedDataSegmentationSupported.go  |  11 +-
 .../model/BACnetConstructedDataSerialNumber.go     |  11 +-
 .../model/BACnetConstructedDataSetpoint.go         |  11 +-
 .../BACnetConstructedDataSetpointReference.go      |  11 +-
 .../model/BACnetConstructedDataSetting.go          |  11 +-
 .../model/BACnetConstructedDataShedDuration.go     |  11 +-
 .../BACnetConstructedDataShedLevelDescriptions.go  |  11 +-
 .../model/BACnetConstructedDataShedLevels.go       |  11 +-
 .../model/BACnetConstructedDataSilenced.go         |  11 +-
 .../BACnetConstructedDataSlaveAddressBinding.go    |  11 +-
 .../model/BACnetConstructedDataSlaveProxyEnable.go |  11 +-
 .../model/BACnetConstructedDataStartTime.go        |  11 +-
 .../BACnetConstructedDataStateChangeValues.go      |  11 +-
 .../model/BACnetConstructedDataStateDescription.go |  11 +-
 .../model/BACnetConstructedDataStateText.go        |  11 +-
 .../model/BACnetConstructedDataStatusFlags.go      |  11 +-
 .../model/BACnetConstructedDataStopTime.go         |  11 +-
 .../model/BACnetConstructedDataStopWhenFull.go     |  11 +-
 .../model/BACnetConstructedDataStrikeCount.go      |  11 +-
 .../BACnetConstructedDataStructuredObjectList.go   |  11 +-
 .../BACnetConstructedDataStructuredViewAll.go      |  11 +-
 .../BACnetConstructedDataSubordinateAnnotations.go |  11 +-
 .../model/BACnetConstructedDataSubordinateList.go  |  11 +-
 .../BACnetConstructedDataSubordinateNodeTypes.go   |  11 +-
 ...ACnetConstructedDataSubordinateRelationships.go |  11 +-
 .../model/BACnetConstructedDataSubordinateTags.go  |  11 +-
 .../BACnetConstructedDataSubscribedRecipients.go   |  11 +-
 .../BACnetConstructedDataSupportedFormatClasses.go |  11 +-
 .../model/BACnetConstructedDataSupportedFormats.go |  11 +-
 ...etConstructedDataSupportedSecurityAlgorithms.go |  11 +-
 .../model/BACnetConstructedDataSystemStatus.go     |  11 +-
 .../readwrite/model/BACnetConstructedDataTags.go   |  11 +-
 .../model/BACnetConstructedDataThreatAuthority.go  |  11 +-
 .../model/BACnetConstructedDataThreatLevel.go      |  11 +-
 .../model/BACnetConstructedDataTimeDelay.go        |  11 +-
 .../model/BACnetConstructedDataTimeDelayNormal.go  |  11 +-
 .../BACnetConstructedDataTimeOfActiveTimeReset.go  |  11 +-
 .../BACnetConstructedDataTimeOfDeviceRestart.go    |  11 +-
 .../BACnetConstructedDataTimeOfStateCountReset.go  |  11 +-
 .../BACnetConstructedDataTimeOfStrikeCountReset.go |  11 +-
 ...tConstructedDataTimePatternValuePresentValue.go |  11 +-
 ...tructedDataTimePatternValueRelinquishDefault.go |  11 +-
 ...etConstructedDataTimeSynchronizationInterval.go |  11 +-
 ...ConstructedDataTimeSynchronizationRecipients.go |  11 +-
 .../model/BACnetConstructedDataTimeValueAll.go     |  11 +-
 .../BACnetConstructedDataTimeValuePresentValue.go  |  11 +-
 ...netConstructedDataTimeValueRelinquishDefault.go |  11 +-
 .../BACnetConstructedDataTimepatternValueAll.go    |  11 +-
 .../model/BACnetConstructedDataTimerAlarmValues.go |  11 +-
 .../model/BACnetConstructedDataTimerAll.go         |  11 +-
 .../BACnetConstructedDataTimerMaxPresValue.go      |  11 +-
 .../BACnetConstructedDataTimerMinPresValue.go      |  11 +-
 .../model/BACnetConstructedDataTimerResolution.go  |  11 +-
 .../model/BACnetConstructedDataTimerRunning.go     |  11 +-
 .../model/BACnetConstructedDataTimerState.go       |  11 +-
 .../model/BACnetConstructedDataTotalRecordCount.go |  11 +-
 .../model/BACnetConstructedDataTraceFlag.go        |  11 +-
 .../model/BACnetConstructedDataTrackingValue.go    |  11 +-
 ...tConstructedDataTransactionNotificationClass.go |  11 +-
 .../model/BACnetConstructedDataTransition.go       |  11 +-
 .../model/BACnetConstructedDataTrendLogAll.go      |  11 +-
 .../BACnetConstructedDataTrendLogLogBuffer.go      |  11 +-
 ...nstructedDataTrendLogLogDeviceObjectProperty.go |  11 +-
 .../BACnetConstructedDataTrendLogMultipleAll.go    |  11 +-
 ...CnetConstructedDataTrendLogMultipleLogBuffer.go |  11 +-
 ...dDataTrendLogMultipleLogDeviceObjectProperty.go |  11 +-
 .../model/BACnetConstructedDataTrigger.go          |  11 +-
 .../model/BACnetConstructedDataUTCOffset.go        |  11 +-
 ...structedDataUTCTimeSynchronizationRecipients.go |  11 +-
 .../readwrite/model/BACnetConstructedDataUnits.go  |  11 +-
 .../model/BACnetConstructedDataUnspecified.go      |  11 +-
 .../model/BACnetConstructedDataUpdateInterval.go   |  11 +-
 .../BACnetConstructedDataUpdateKeySetTimeout.go    |  11 +-
 .../model/BACnetConstructedDataUpdateTime.go       |  11 +-
 .../BACnetConstructedDataUserExternalIdentifier.go |  11 +-
 ...ACnetConstructedDataUserInformationReference.go |  11 +-
 .../model/BACnetConstructedDataUserName.go         |  11 +-
 .../model/BACnetConstructedDataUserType.go         |  11 +-
 .../model/BACnetConstructedDataUsesRemaining.go    |  11 +-
 .../BACnetConstructedDataVTClassesSupported.go     |  11 +-
 .../model/BACnetConstructedDataValidSamples.go     |  11 +-
 .../BACnetConstructedDataValueBeforeChange.go      |  11 +-
 .../model/BACnetConstructedDataValueChangeTime.go  |  11 +-
 .../model/BACnetConstructedDataValueSet.go         |  11 +-
 .../model/BACnetConstructedDataValueSource.go      |  11 +-
 .../model/BACnetConstructedDataValueSourceArray.go |  11 +-
 .../model/BACnetConstructedDataVarianceValue.go    |  11 +-
 .../model/BACnetConstructedDataVendorIdentifier.go |  11 +-
 .../model/BACnetConstructedDataVendorName.go       |  11 +-
 .../model/BACnetConstructedDataVerificationTime.go |  11 +-
 .../BACnetConstructedDataVirtualMACAddressTable.go |  11 +-
 .../model/BACnetConstructedDataWeeklySchedule.go   |  11 +-
 .../model/BACnetConstructedDataWindowInterval.go   |  11 +-
 .../model/BACnetConstructedDataWindowSamples.go    |  11 +-
 .../model/BACnetConstructedDataWriteStatus.go      |  11 +-
 .../model/BACnetConstructedDataZoneFrom.go         |  11 +-
 .../model/BACnetConstructedDataZoneMembers.go      |  11 +-
 .../readwrite/model/BACnetConstructedDataZoneTo.go |  11 +-
 .../readwrite/model/BACnetContextTagBitString.go   |  11 +-
 .../readwrite/model/BACnetContextTagBoolean.go     |  11 +-
 .../model/BACnetContextTagCharacterString.go       |  11 +-
 .../readwrite/model/BACnetContextTagDate.go        |  11 +-
 .../readwrite/model/BACnetContextTagDouble.go      |  11 +-
 .../readwrite/model/BACnetContextTagEnumerated.go  |  11 +-
 .../readwrite/model/BACnetContextTagNull.go        |  11 +-
 .../model/BACnetContextTagObjectIdentifier.go      |  11 +-
 .../readwrite/model/BACnetContextTagOctetString.go |  11 +-
 .../readwrite/model/BACnetContextTagReal.go        |  11 +-
 .../model/BACnetContextTagSignedInteger.go         |  11 +-
 .../readwrite/model/BACnetContextTagTime.go        |  11 +-
 .../readwrite/model/BACnetContextTagUnknown.go     |  11 +-
 .../model/BACnetContextTagUnsignedInteger.go       |  11 +-
 .../model/BACnetCredentialAuthenticationFactor.go  |  11 +-
 .../readwrite/model/BACnetDailySchedule.go         |  11 +-
 .../bacnetip/readwrite/model/BACnetDataType.go     |  14 +-
 .../bacnetip/readwrite/model/BACnetDateRange.go    |  11 +-
 .../readwrite/model/BACnetDateRangeEnclosed.go     |  11 +-
 .../bacnetip/readwrite/model/BACnetDateTime.go     |  11 +-
 .../readwrite/model/BACnetDateTimeEnclosed.go      |  11 +-
 .../bacnetip/readwrite/model/BACnetDaysOfWeek.go   |  14 +-
 .../readwrite/model/BACnetDaysOfWeekTagged.go      |  11 +-
 .../bacnetip/readwrite/model/BACnetDestination.go  |  11 +-
 .../model/BACnetDeviceObjectPropertyReference.go   |  11 +-
 .../BACnetDeviceObjectPropertyReferenceEnclosed.go |  11 +-
 .../readwrite/model/BACnetDeviceObjectReference.go |  11 +-
 .../model/BACnetDeviceObjectReferenceEnclosed.go   |  11 +-
 .../bacnetip/readwrite/model/BACnetDeviceStatus.go |  14 +-
 .../readwrite/model/BACnetDeviceStatusTagged.go    |  11 +-
 .../readwrite/model/BACnetDoorAlarmState.go        |  14 +-
 .../readwrite/model/BACnetDoorAlarmStateTagged.go  |  11 +-
 .../readwrite/model/BACnetDoorSecuredStatus.go     |  14 +-
 .../model/BACnetDoorSecuredStatusTagged.go         |  11 +-
 .../bacnetip/readwrite/model/BACnetDoorStatus.go   |  14 +-
 .../readwrite/model/BACnetDoorStatusTagged.go      |  11 +-
 .../bacnetip/readwrite/model/BACnetDoorValue.go    |  14 +-
 .../readwrite/model/BACnetDoorValueTagged.go       |  11 +-
 .../readwrite/model/BACnetEngineeringUnits.go      |  14 +-
 .../model/BACnetEngineeringUnitsTagged.go          |  11 +-
 .../bacnetip/readwrite/model/BACnetErrorGeneral.go |  11 +-
 .../readwrite/model/BACnetEscalatorFault.go        |  14 +-
 .../readwrite/model/BACnetEscalatorFaultTagged.go  |  11 +-
 .../readwrite/model/BACnetEscalatorMode.go         |  14 +-
 .../readwrite/model/BACnetEscalatorModeTagged.go   |  11 +-
 .../model/BACnetEscalatorOperationDirection.go     |  14 +-
 .../BACnetEscalatorOperationDirectionTagged.go     |  11 +-
 .../readwrite/model/BACnetEventLogRecord.go        |  11 +-
 .../model/BACnetEventLogRecordLogDatumLogStatus.go |  11 +-
 .../BACnetEventLogRecordLogDatumNotification.go    |  11 +-
 .../BACnetEventLogRecordLogDatumTimeChange.go      |  11 +-
 .../model/BACnetEventNotificationSubscription.go   |  11 +-
 .../model/BACnetEventParameterAccessEvent.go       |  11 +-
 ...tEventParameterAccessEventListOfAccessEvents.go |  11 +-
 .../model/BACnetEventParameterBufferReady.go       |  11 +-
 .../model/BACnetEventParameterChangeOfBitstring.go |  11 +-
 ...ameterChangeOfBitstringListOfBitstringValues.go |  11 +-
 .../BACnetEventParameterChangeOfCharacterString.go |  11 +-
 ...eterChangeOfCharacterStringListOfAlarmValues.go |  11 +-
 .../BACnetEventParameterChangeOfDiscreteValue.go   |  11 +-
 .../BACnetEventParameterChangeOfLifeSavety.go      |  11 +-
 ...ParameterChangeOfLifeSavetyListOfAlarmValues.go |  11 +-
 ...hangeOfLifeSavetyListOfLifeSavetyAlarmValues.go |  11 +-
 .../model/BACnetEventParameterChangeOfState.go     |  11 +-
 ...ACnetEventParameterChangeOfStateListOfValues.go |  11 +-
 .../BACnetEventParameterChangeOfStatusFlags.go     |  11 +-
 .../model/BACnetEventParameterChangeOfTimer.go     |  11 +-
 .../BACnetEventParameterChangeOfTimerAlarmValue.go |  11 +-
 .../model/BACnetEventParameterChangeOfValue.go     |  11 +-
 ...ventParameterChangeOfValueCivCriteriaBitmask.go |  11 +-
 ...fValueCivCriteriaReferencedPropertyIncrement.go |  11 +-
 .../model/BACnetEventParameterCommandFailure.go    |  11 +-
 .../model/BACnetEventParameterDoubleOutOfRange.go  |  11 +-
 .../model/BACnetEventParameterExtended.go          |  11 +-
 .../BACnetEventParameterExtendedParameters.go      |  11 +-
 .../model/BACnetEventParameterFloatingLimit.go     |  11 +-
 .../readwrite/model/BACnetEventParameterNone.go    |  11 +-
 .../model/BACnetEventParameterOutOfRange.go        |  11 +-
 .../model/BACnetEventParameterSignedOutOfRange.go  |  11 +-
 .../BACnetEventParameterUnsignedOutOfRange.go      |  11 +-
 .../model/BACnetEventParameterUnsignedRange.go     |  11 +-
 .../readwrite/model/BACnetEventPriorities.go       |  11 +-
 .../bacnetip/readwrite/model/BACnetEventState.go   |  14 +-
 .../readwrite/model/BACnetEventStateTagged.go      |  11 +-
 .../readwrite/model/BACnetEventSummariesList.go    |  11 +-
 .../bacnetip/readwrite/model/BACnetEventSummary.go |  11 +-
 .../readwrite/model/BACnetEventTimestamps.go       |  11 +-
 .../model/BACnetEventTimestampsEnclosed.go         |  11 +-
 .../readwrite/model/BACnetEventTransitionBits.go   |  14 +-
 .../model/BACnetEventTransitionBitsTagged.go       |  11 +-
 .../bacnetip/readwrite/model/BACnetEventType.go    |  14 +-
 .../readwrite/model/BACnetEventTypeTagged.go       |  11 +-
 .../BACnetFaultParameterFaultCharacterString.go    |  11 +-
 ...rameterFaultCharacterStringListOfFaultValues.go |  11 +-
 .../model/BACnetFaultParameterFaultExtended.go     |  11 +-
 .../BACnetFaultParameterFaultExtendedParameters.go |  11 +-
 ...rameterFaultExtendedParametersEntryBitString.go |  11 +-
 ...ParameterFaultExtendedParametersEntryBoolean.go |  11 +-
 ...rFaultExtendedParametersEntryCharacterString.go |  11 +-
 ...ultParameterFaultExtendedParametersEntryDate.go |  11 +-
 ...tParameterFaultExtendedParametersEntryDouble.go |  11 +-
 ...ameterFaultExtendedParametersEntryEnumerated.go |  11 +-
 ...ParameterFaultExtendedParametersEntryInteger.go |  11 +-
 ...ultParameterFaultExtendedParametersEntryNull.go |  11 +-
 ...FaultExtendedParametersEntryObjectidentifier.go |  11 +-
 ...meterFaultExtendedParametersEntryOctetString.go |  11 +-
 ...ultParameterFaultExtendedParametersEntryReal.go |  11 +-
 ...rameterFaultExtendedParametersEntryReference.go |  11 +-
 ...ultParameterFaultExtendedParametersEntryTime.go |  11 +-
 ...arameterFaultExtendedParametersEntryUnsigned.go |  11 +-
 .../model/BACnetFaultParameterFaultLifeSafety.go   |  11 +-
 ...ultParameterFaultLifeSafetyListOfFaultValues.go |  11 +-
 .../model/BACnetFaultParameterFaultListed.go       |  11 +-
 .../model/BACnetFaultParameterFaultOutOfRange.go   |  11 +-
 ...ParameterFaultOutOfRangeMaxNormalValueDouble.go |  11 +-
 ...arameterFaultOutOfRangeMaxNormalValueInteger.go |  11 +-
 ...ltParameterFaultOutOfRangeMaxNormalValueReal.go |  11 +-
 ...rameterFaultOutOfRangeMaxNormalValueUnsigned.go |  11 +-
 ...ParameterFaultOutOfRangeMinNormalValueDouble.go |  11 +-
 ...arameterFaultOutOfRangeMinNormalValueInteger.go |  11 +-
 ...ltParameterFaultOutOfRangeMinNormalValueReal.go |  11 +-
 ...rameterFaultOutOfRangeMinNormalValueUnsigned.go |  11 +-
 .../model/BACnetFaultParameterFaultState.go        |  11 +-
 ...netFaultParameterFaultStateListOfFaultValues.go |  11 +-
 .../model/BACnetFaultParameterFaultStatusFlags.go  |  11 +-
 .../readwrite/model/BACnetFaultParameterNone.go    |  11 +-
 .../bacnetip/readwrite/model/BACnetFaultType.go    |  14 +-
 .../readwrite/model/BACnetFaultTypeTagged.go       |  11 +-
 .../readwrite/model/BACnetFileAccessMethod.go      |  14 +-
 .../model/BACnetFileAccessMethodTagged.go          |  11 +-
 .../readwrite/model/BACnetGroupChannelValue.go     |  11 +-
 .../readwrite/model/BACnetGroupChannelValueList.go |  11 +-
 .../readwrite/model/BACnetHostAddressEnclosed.go   |  11 +-
 .../readwrite/model/BACnetHostAddressIpAddress.go  |  11 +-
 .../readwrite/model/BACnetHostAddressName.go       |  11 +-
 .../readwrite/model/BACnetHostAddressNull.go       |  11 +-
 .../bacnetip/readwrite/model/BACnetHostNPort.go    |  11 +-
 .../readwrite/model/BACnetHostNPortEnclosed.go     |  11 +-
 .../bacnetip/readwrite/model/BACnetIPMode.go       |  14 +-
 .../bacnetip/readwrite/model/BACnetIPModeTagged.go |  11 +-
 .../readwrite/model/BACnetKeyIdentifier.go         |  11 +-
 .../readwrite/model/BACnetLandingCallStatus.go     |  11 +-
 .../BACnetLandingCallStatusCommandDestination.go   |  11 +-
 .../BACnetLandingCallStatusCommandDirection.go     |  11 +-
 .../readwrite/model/BACnetLandingDoorStatus.go     |  11 +-
 .../BACnetLandingDoorStatusLandingDoorsList.go     |  11 +-
 ...BACnetLandingDoorStatusLandingDoorsListEntry.go |  11 +-
 .../readwrite/model/BACnetLifeSafetyMode.go        |  14 +-
 .../readwrite/model/BACnetLifeSafetyModeTagged.go  |  11 +-
 .../readwrite/model/BACnetLifeSafetyOperation.go   |  14 +-
 .../model/BACnetLifeSafetyOperationTagged.go       |  11 +-
 .../readwrite/model/BACnetLifeSafetyState.go       |  14 +-
 .../readwrite/model/BACnetLifeSafetyStateTagged.go |  11 +-
 .../readwrite/model/BACnetLiftCarCallList.go       |  11 +-
 .../model/BACnetLiftCarCallListFloorList.go        |  11 +-
 .../readwrite/model/BACnetLiftCarDirection.go      |  14 +-
 .../model/BACnetLiftCarDirectionTagged.go          |  11 +-
 .../readwrite/model/BACnetLiftCarDoorCommand.go    |  14 +-
 .../model/BACnetLiftCarDoorCommandTagged.go        |  11 +-
 .../readwrite/model/BACnetLiftCarDriveStatus.go    |  14 +-
 .../model/BACnetLiftCarDriveStatusTagged.go        |  11 +-
 .../bacnetip/readwrite/model/BACnetLiftCarMode.go  |  14 +-
 .../readwrite/model/BACnetLiftCarModeTagged.go     |  11 +-
 .../bacnetip/readwrite/model/BACnetLiftFault.go    |  14 +-
 .../readwrite/model/BACnetLiftFaultTagged.go       |  11 +-
 .../readwrite/model/BACnetLiftGroupMode.go         |  14 +-
 .../readwrite/model/BACnetLiftGroupModeTagged.go   |  11 +-
 .../readwrite/model/BACnetLightingCommand.go       |  11 +-
 .../model/BACnetLightingCommandEnclosed.go         |  11 +-
 .../readwrite/model/BACnetLightingInProgress.go    |  14 +-
 .../model/BACnetLightingInProgressTagged.go        |  11 +-
 .../readwrite/model/BACnetLightingOperation.go     |  14 +-
 .../model/BACnetLightingOperationTagged.go         |  11 +-
 .../readwrite/model/BACnetLightingTransition.go    |  14 +-
 .../model/BACnetLightingTransitionTagged.go        |  11 +-
 .../bacnetip/readwrite/model/BACnetLimitEnable.go  |  14 +-
 .../readwrite/model/BACnetLimitEnableTagged.go     |  11 +-
 .../bacnetip/readwrite/model/BACnetLockStatus.go   |  14 +-
 .../readwrite/model/BACnetLockStatusTagged.go      |  11 +-
 .../readwrite/model/BACnetLogDataLogData.go        |  11 +-
 .../model/BACnetLogDataLogDataEntryAnyValue.go     |  11 +-
 .../BACnetLogDataLogDataEntryBitStringValue.go     |  11 +-
 .../model/BACnetLogDataLogDataEntryBooleanValue.go |  11 +-
 .../BACnetLogDataLogDataEntryEnumeratedValue.go    |  11 +-
 .../model/BACnetLogDataLogDataEntryFailure.go      |  11 +-
 .../model/BACnetLogDataLogDataEntryIntegerValue.go |  11 +-
 .../model/BACnetLogDataLogDataEntryNullValue.go    |  11 +-
 .../model/BACnetLogDataLogDataEntryRealValue.go    |  11 +-
 .../BACnetLogDataLogDataEntryUnsignedValue.go      |  11 +-
 .../model/BACnetLogDataLogDataTimeChange.go        |  11 +-
 .../readwrite/model/BACnetLogDataLogStatus.go      |  11 +-
 .../readwrite/model/BACnetLogMultipleRecord.go     |  11 +-
 .../bacnetip/readwrite/model/BACnetLogRecord.go    |  11 +-
 .../model/BACnetLogRecordLogDatumAnyValue.go       |  11 +-
 .../model/BACnetLogRecordLogDatumBitStringValue.go |  11 +-
 .../model/BACnetLogRecordLogDatumBooleanValue.go   |  11 +-
 .../BACnetLogRecordLogDatumEnumeratedValue.go      |  11 +-
 .../model/BACnetLogRecordLogDatumFailure.go        |  11 +-
 .../model/BACnetLogRecordLogDatumIntegerValue.go   |  11 +-
 .../model/BACnetLogRecordLogDatumLogStatus.go      |  11 +-
 .../model/BACnetLogRecordLogDatumNullValue.go      |  11 +-
 .../model/BACnetLogRecordLogDatumRealValue.go      |  11 +-
 .../model/BACnetLogRecordLogDatumTimeChange.go     |  11 +-
 .../model/BACnetLogRecordLogDatumUnsignedValue.go  |  11 +-
 .../bacnetip/readwrite/model/BACnetLogStatus.go    |  14 +-
 .../readwrite/model/BACnetLogStatusTagged.go       |  11 +-
 .../bacnetip/readwrite/model/BACnetLoggingType.go  |  14 +-
 .../readwrite/model/BACnetLoggingTypeTagged.go     |  11 +-
 .../bacnetip/readwrite/model/BACnetMaintenance.go  |  14 +-
 .../readwrite/model/BACnetMaintenanceTagged.go     |  11 +-
 .../bacnetip/readwrite/model/BACnetNameValue.go    |  11 +-
 .../readwrite/model/BACnetNameValueCollection.go   |  11 +-
 .../readwrite/model/BACnetNetworkNumberQuality.go  |  14 +-
 .../model/BACnetNetworkNumberQualityTagged.go      |  11 +-
 .../readwrite/model/BACnetNetworkPortCommand.go    |  14 +-
 .../model/BACnetNetworkPortCommandTagged.go        |  11 +-
 .../readwrite/model/BACnetNetworkSecurityPolicy.go |  11 +-
 .../bacnetip/readwrite/model/BACnetNetworkType.go  |  14 +-
 .../readwrite/model/BACnetNetworkTypeTagged.go     |  11 +-
 .../bacnetip/readwrite/model/BACnetNodeType.go     |  14 +-
 .../readwrite/model/BACnetNodeTypeTagged.go        |  11 +-
 .../BACnetNotificationParametersAccessEvent.go     |  11 +-
 .../BACnetNotificationParametersBufferReady.go     |  11 +-
 ...ACnetNotificationParametersChangeOfBitString.go |  11 +-
 ...otificationParametersChangeOfCharacterString.go |  11 +-
 ...tNotificationParametersChangeOfDiscreteValue.go |  11 +-
 ...rametersChangeOfDiscreteValueNewValueBoolean.go |  11 +-
 ...ChangeOfDiscreteValueNewValueCharacterString.go |  11 +-
 ...ametersChangeOfDiscreteValueNewValueDatetime.go |  11 +-
 ...etersChangeOfDiscreteValueNewValueEnumerated.go |  11 +-
 ...rametersChangeOfDiscreteValueNewValueInteger.go |  11 +-
 ...hangeOfDiscreteValueNewValueObjectidentifier.go |  11 +-
 ...metersChangeOfDiscreteValueNewValueOctetDate.go |  11 +-
 ...tersChangeOfDiscreteValueNewValueOctetString.go |  11 +-
 ...metersChangeOfDiscreteValueNewValueOctetTime.go |  11 +-
 ...ametersChangeOfDiscreteValueNewValueUnsigned.go |  11 +-
 ...CnetNotificationParametersChangeOfLifeSafety.go |  11 +-
 ...netNotificationParametersChangeOfReliability.go |  11 +-
 .../BACnetNotificationParametersChangeOfState.go   |  11 +-
 ...netNotificationParametersChangeOfStatusFlags.go |  11 +-
 .../BACnetNotificationParametersChangeOfTimer.go   |  11 +-
 .../BACnetNotificationParametersChangeOfValue.go   |  11 +-
 ...onParametersChangeOfValueNewValueChangedBits.go |  11 +-
 ...nParametersChangeOfValueNewValueChangedValue.go |  11 +-
 .../BACnetNotificationParametersCommandFailure.go  |  11 +-
 ...BACnetNotificationParametersComplexEventType.go |  11 +-
 ...BACnetNotificationParametersDoubleOutOfRange.go |  11 +-
 .../model/BACnetNotificationParametersExtended.go  |  11 +-
 ...CnetNotificationParametersExtendedParameters.go |  11 +-
 .../BACnetNotificationParametersFloatingLimit.go   |  11 +-
 .../BACnetNotificationParametersOutOfRange.go      |  11 +-
 ...BACnetNotificationParametersSignedOutOfRange.go |  11 +-
 ...CnetNotificationParametersUnsignedOutOfRange.go |  11 +-
 .../BACnetNotificationParametersUnsignedRange.go   |  11 +-
 .../bacnetip/readwrite/model/BACnetNotifyType.go   |  14 +-
 .../readwrite/model/BACnetNotifyTypeTagged.go      |  11 +-
 .../model/BACnetObjectPropertyReference.go         |  11 +-
 .../model/BACnetObjectPropertyReferenceEnclosed.go |  11 +-
 .../bacnetip/readwrite/model/BACnetObjectType.go   |  14 +-
 .../readwrite/model/BACnetObjectTypeTagged.go      |  11 +-
 .../readwrite/model/BACnetObjectTypesSupported.go  |  14 +-
 .../model/BACnetObjectTypesSupportedTagged.go      |  11 +-
 .../bacnetip/readwrite/model/BACnetOpeningTag.go   |  11 +-
 .../readwrite/model/BACnetOptionalBinaryPVNull.go  |  11 +-
 .../readwrite/model/BACnetOptionalBinaryPVValue.go |  11 +-
 .../model/BACnetOptionalCharacterStringNull.go     |  11 +-
 .../model/BACnetOptionalCharacterStringValue.go    |  11 +-
 .../readwrite/model/BACnetOptionalREALNull.go      |  11 +-
 .../readwrite/model/BACnetOptionalREALValue.go     |  11 +-
 .../readwrite/model/BACnetOptionalUnsignedNull.go  |  11 +-
 .../readwrite/model/BACnetOptionalUnsignedValue.go |  11 +-
 .../bacnetip/readwrite/model/BACnetPolarity.go     |  14 +-
 .../readwrite/model/BACnetPolarityTagged.go        |  11 +-
 .../readwrite/model/BACnetPortPermission.go        |  11 +-
 .../bacnetip/readwrite/model/BACnetPrescale.go     |  11 +-
 .../readwrite/model/BACnetPriorityArray.go         |  11 +-
 .../model/BACnetPriorityValueBitString.go          |  11 +-
 .../readwrite/model/BACnetPriorityValueBoolean.go  |  11 +-
 .../model/BACnetPriorityValueCharacterString.go    |  11 +-
 .../model/BACnetPriorityValueConstructedValue.go   |  11 +-
 .../readwrite/model/BACnetPriorityValueDate.go     |  11 +-
 .../readwrite/model/BACnetPriorityValueDateTime.go |  11 +-
 .../readwrite/model/BACnetPriorityValueDouble.go   |  11 +-
 .../model/BACnetPriorityValueEnumerated.go         |  11 +-
 .../readwrite/model/BACnetPriorityValueInteger.go  |  11 +-
 .../readwrite/model/BACnetPriorityValueNull.go     |  11 +-
 .../model/BACnetPriorityValueObjectidentifier.go   |  11 +-
 .../model/BACnetPriorityValueOctetString.go        |  11 +-
 .../readwrite/model/BACnetPriorityValueReal.go     |  11 +-
 .../readwrite/model/BACnetPriorityValueTime.go     |  11 +-
 .../readwrite/model/BACnetPriorityValueUnsigned.go |  11 +-
 .../model/BACnetProcessIdSelectionNull.go          |  11 +-
 .../model/BACnetProcessIdSelectionValue.go         |  11 +-
 .../bacnetip/readwrite/model/BACnetProgramError.go |  14 +-
 .../readwrite/model/BACnetProgramErrorTagged.go    |  11 +-
 .../readwrite/model/BACnetProgramRequest.go        |  14 +-
 .../readwrite/model/BACnetProgramRequestTagged.go  |  11 +-
 .../bacnetip/readwrite/model/BACnetProgramState.go |  14 +-
 .../readwrite/model/BACnetProgramStateTagged.go    |  11 +-
 .../readwrite/model/BACnetPropertyAccessResult.go  |  11 +-
 ...yAccessResultAccessResultPropertyAccessError.go |  11 +-
 ...ropertyAccessResultAccessResultPropertyValue.go |  11 +-
 .../readwrite/model/BACnetPropertyIdentifier.go    |  14 +-
 .../model/BACnetPropertyIdentifierTagged.go        |  11 +-
 .../readwrite/model/BACnetPropertyReference.go     |  11 +-
 .../model/BACnetPropertyReferenceEnclosed.go       |  11 +-
 .../model/BACnetPropertyStateActionUnknown.go      |  11 +-
 .../BACnetPropertyStatesAccessCredentialDisable.go |  11 +-
 ...tPropertyStatesAccessCredentialDisableReason.go |  11 +-
 .../model/BACnetPropertyStatesAccessEvent.go       |  11 +-
 .../readwrite/model/BACnetPropertyStatesAction.go  |  11 +-
 .../BACnetPropertyStatesAuthenticationStatus.go    |  11 +-
 .../model/BACnetPropertyStatesBackupState.go       |  11 +-
 .../model/BACnetPropertyStatesBacnetIpMode.go      |  11 +-
 .../BACnetPropertyStatesBinaryLightningValue.go    |  11 +-
 .../model/BACnetPropertyStatesBinaryValue.go       |  11 +-
 .../readwrite/model/BACnetPropertyStatesBoolean.go |  11 +-
 .../model/BACnetPropertyStatesDoorAlarmState.go    |  11 +-
 .../model/BACnetPropertyStatesDoorSecuredStatus.go |  11 +-
 .../model/BACnetPropertyStatesDoorStatus.go        |  11 +-
 .../model/BACnetPropertyStatesDoorValue.go         |  11 +-
 .../model/BACnetPropertyStatesEnclosed.go          |  11 +-
 .../model/BACnetPropertyStatesEscalatorFault.go    |  11 +-
 .../model/BACnetPropertyStatesEscalatorMode.go     |  11 +-
 ...netPropertyStatesEscalatorOperationDirection.go |  11 +-
 .../model/BACnetPropertyStatesEventType.go         |  11 +-
 .../model/BACnetPropertyStatesExtendedValue.go     |  11 +-
 .../model/BACnetPropertyStatesFileAccessMethod.go  |  11 +-
 .../model/BACnetPropertyStatesIntegerValue.go      |  11 +-
 .../model/BACnetPropertyStatesLifeSafetyMode.go    |  11 +-
 .../BACnetPropertyStatesLifeSafetyOperations.go    |  11 +-
 .../model/BACnetPropertyStatesLifeSafetyState.go   |  11 +-
 .../model/BACnetPropertyStatesLiftCarDirection.go  |  11 +-
 .../BACnetPropertyStatesLiftCarDoorCommand.go      |  11 +-
 .../BACnetPropertyStatesLiftCarDriveStatus.go      |  11 +-
 .../model/BACnetPropertyStatesLiftCarMode.go       |  11 +-
 .../model/BACnetPropertyStatesLiftFault.go         |  11 +-
 .../model/BACnetPropertyStatesLiftGroupMode.go     |  11 +-
 .../BACnetPropertyStatesLightningInProgress.go     |  11 +-
 .../BACnetPropertyStatesLightningOperation.go      |  11 +-
 .../BACnetPropertyStatesLightningTransition.go     |  11 +-
 .../model/BACnetPropertyStatesLockStatus.go        |  11 +-
 .../model/BACnetPropertyStatesMaintenance.go       |  11 +-
 .../BACnetPropertyStatesNetworkNumberQuality.go    |  11 +-
 .../BACnetPropertyStatesNetworkPortCommand.go      |  11 +-
 .../model/BACnetPropertyStatesNetworkType.go       |  11 +-
 .../model/BACnetPropertyStatesNodeType.go          |  11 +-
 .../model/BACnetPropertyStatesNotifyType.go        |  11 +-
 .../model/BACnetPropertyStatesPolarity.go          |  11 +-
 .../model/BACnetPropertyStatesProgramChange.go     |  11 +-
 .../model/BACnetPropertyStatesProtocolLevel.go     |  11 +-
 .../model/BACnetPropertyStatesReasonForHalt.go     |  11 +-
 .../model/BACnetPropertyStatesReliability.go       |  11 +-
 .../model/BACnetPropertyStatesRestartReason.go     |  11 +-
 .../model/BACnetPropertyStatesSecurityLevel.go     |  11 +-
 .../model/BACnetPropertyStatesShedState.go         |  11 +-
 .../model/BACnetPropertyStatesSilencedState.go     |  11 +-
 .../readwrite/model/BACnetPropertyStatesState.go   |  11 +-
 .../model/BACnetPropertyStatesSystemStatus.go      |  11 +-
 .../model/BACnetPropertyStatesTimerState.go        |  11 +-
 .../model/BACnetPropertyStatesTimerTransition.go   |  11 +-
 .../readwrite/model/BACnetPropertyStatesUnits.go   |  11 +-
 .../model/BACnetPropertyStatesWriteStatus.go       |  11 +-
 .../model/BACnetPropertyStatesZoneOccupanyState.go |  11 +-
 .../readwrite/model/BACnetPropertyValue.go         |  11 +-
 .../readwrite/model/BACnetPropertyValues.go        |  11 +-
 .../model/BACnetPropertyWriteDefinition.go         |  11 +-
 .../readwrite/model/BACnetProtocolLevel.go         |  14 +-
 .../readwrite/model/BACnetProtocolLevelTagged.go   |  11 +-
 .../readwrite/model/BACnetReadAccessProperty.go    |  11 +-
 .../model/BACnetReadAccessPropertyReadResult.go    |  11 +-
 .../readwrite/model/BACnetReadAccessResult.go      |  11 +-
 .../model/BACnetReadAccessResultListOfResults.go   |  11 +-
 .../model/BACnetReadAccessSpecification.go         |  11 +-
 .../readwrite/model/BACnetRecipientAddress.go      |  11 +-
 .../readwrite/model/BACnetRecipientDevice.go       |  11 +-
 .../readwrite/model/BACnetRecipientEnclosed.go     |  11 +-
 .../readwrite/model/BACnetRecipientProcess.go      |  11 +-
 .../model/BACnetRecipientProcessEnclosed.go        |  11 +-
 .../bacnetip/readwrite/model/BACnetRejectReason.go |  14 +-
 .../readwrite/model/BACnetRejectReasonTagged.go    |  11 +-
 .../bacnetip/readwrite/model/BACnetRelationship.go |  14 +-
 .../readwrite/model/BACnetRelationshipTagged.go    |  11 +-
 .../bacnetip/readwrite/model/BACnetReliability.go  |  14 +-
 .../readwrite/model/BACnetReliabilityTagged.go     |  11 +-
 .../readwrite/model/BACnetRestartReason.go         |  14 +-
 .../readwrite/model/BACnetRestartReasonTagged.go   |  11 +-
 .../bacnetip/readwrite/model/BACnetResultFlags.go  |  14 +-
 .../readwrite/model/BACnetResultFlagsTagged.go     |  11 +-
 .../bacnetip/readwrite/model/BACnetRouterEntry.go  |  11 +-
 .../readwrite/model/BACnetRouterEntryStatus.go     |  14 +-
 .../model/BACnetRouterEntryStatusTagged.go         |  11 +-
 .../readwrite/model/BACnetScaleFloatScale.go       |  11 +-
 .../readwrite/model/BACnetScaleIntegerScale.go     |  11 +-
 .../readwrite/model/BACnetSecurityKeySet.go        |  11 +-
 .../readwrite/model/BACnetSecurityKeySetKeyIds.go  |  11 +-
 .../readwrite/model/BACnetSecurityLevel.go         |  14 +-
 .../readwrite/model/BACnetSecurityLevelTagged.go   |  11 +-
 .../readwrite/model/BACnetSecurityPolicy.go        |  14 +-
 .../readwrite/model/BACnetSecurityPolicyTagged.go  |  11 +-
 .../bacnetip/readwrite/model/BACnetSegmentation.go |  14 +-
 .../readwrite/model/BACnetSegmentationTagged.go    |  11 +-
 .../model/BACnetServiceAckAtomicReadFile.go        |  11 +-
 .../model/BACnetServiceAckAtomicReadFileRecord.go  |  11 +-
 .../model/BACnetServiceAckAtomicReadFileStream.go  |  11 +-
 .../model/BACnetServiceAckAtomicWriteFile.go       |  11 +-
 .../model/BACnetServiceAckAuthenticate.go          |  11 +-
 .../BACnetServiceAckConfirmedPrivateTransfer.go    |  11 +-
 .../model/BACnetServiceAckCreateObject.go          |  11 +-
 .../model/BACnetServiceAckGetAlarmSummary.go       |  11 +-
 .../model/BACnetServiceAckGetEnrollmentSummary.go  |  11 +-
 .../model/BACnetServiceAckGetEventInformation.go   |  11 +-
 .../model/BACnetServiceAckReadProperty.go          |  11 +-
 .../BACnetServiceAckReadPropertyConditional.go     |  11 +-
 .../model/BACnetServiceAckReadPropertyMultiple.go  |  11 +-
 .../readwrite/model/BACnetServiceAckReadRange.go   |  11 +-
 .../readwrite/model/BACnetServiceAckRequestKey.go  |  11 +-
 .../readwrite/model/BACnetServiceAckVTData.go      |  11 +-
 .../readwrite/model/BACnetServiceAckVTOpen.go      |  11 +-
 .../readwrite/model/BACnetServicesSupported.go     |  14 +-
 .../model/BACnetServicesSupportedTagged.go         |  11 +-
 .../readwrite/model/BACnetSetpointReference.go     |  11 +-
 .../readwrite/model/BACnetShedLevelAmount.go       |  11 +-
 .../readwrite/model/BACnetShedLevelLevel.go        |  11 +-
 .../readwrite/model/BACnetShedLevelPercent.go      |  11 +-
 .../bacnetip/readwrite/model/BACnetShedState.go    |  14 +-
 .../readwrite/model/BACnetShedStateTagged.go       |  11 +-
 .../readwrite/model/BACnetSilencedState.go         |  14 +-
 .../readwrite/model/BACnetSilencedStateTagged.go   |  11 +-
 .../bacnetip/readwrite/model/BACnetSpecialEvent.go |  11 +-
 .../model/BACnetSpecialEventListOfTimeValues.go    |  11 +-
 .../model/BACnetSpecialEventPeriodCalendarEntry.go |  11 +-
 .../BACnetSpecialEventPeriodCalendarReference.go   |  11 +-
 .../bacnetip/readwrite/model/BACnetStatusFlags.go  |  14 +-
 .../readwrite/model/BACnetStatusFlagsTagged.go     |  11 +-
 .../bacnetip/readwrite/model/BACnetTagHeader.go    |  11 +-
 .../readwrite/model/BACnetTagPayloadBitString.go   |  11 +-
 .../readwrite/model/BACnetTagPayloadBoolean.go     |  11 +-
 .../model/BACnetTagPayloadCharacterString.go       |  11 +-
 .../readwrite/model/BACnetTagPayloadDate.go        |  11 +-
 .../readwrite/model/BACnetTagPayloadDouble.go      |  11 +-
 .../readwrite/model/BACnetTagPayloadEnumerated.go  |  11 +-
 .../model/BACnetTagPayloadObjectIdentifier.go      |  11 +-
 .../readwrite/model/BACnetTagPayloadOctetString.go |  11 +-
 .../readwrite/model/BACnetTagPayloadReal.go        |  11 +-
 .../model/BACnetTagPayloadSignedInteger.go         |  11 +-
 .../readwrite/model/BACnetTagPayloadTime.go        |  11 +-
 .../model/BACnetTagPayloadUnsignedInteger.go       |  11 +-
 .../readwrite/model/BACnetTimeStampDateTime.go     |  11 +-
 .../readwrite/model/BACnetTimeStampEnclosed.go     |  11 +-
 .../readwrite/model/BACnetTimeStampSequence.go     |  11 +-
 .../readwrite/model/BACnetTimeStampTime.go         |  11 +-
 .../readwrite/model/BACnetTimeStampsEnclosed.go    |  11 +-
 .../bacnetip/readwrite/model/BACnetTimeValue.go    |  11 +-
 .../bacnetip/readwrite/model/BACnetTimerState.go   |  14 +-
 .../model/BACnetTimerStateChangeValueBitString.go  |  11 +-
 .../model/BACnetTimerStateChangeValueBoolean.go    |  11 +-
 .../BACnetTimerStateChangeValueCharacterString.go  |  11 +-
 .../BACnetTimerStateChangeValueConstructedValue.go |  11 +-
 .../model/BACnetTimerStateChangeValueDate.go       |  11 +-
 .../model/BACnetTimerStateChangeValueDateTime.go   |  11 +-
 .../model/BACnetTimerStateChangeValueDouble.go     |  11 +-
 .../model/BACnetTimerStateChangeValueEnumerated.go |  11 +-
 .../model/BACnetTimerStateChangeValueInteger.go    |  11 +-
 .../BACnetTimerStateChangeValueLightingCommand.go  |  11 +-
 .../model/BACnetTimerStateChangeValueNoValue.go    |  11 +-
 .../model/BACnetTimerStateChangeValueNull.go       |  11 +-
 .../BACnetTimerStateChangeValueObjectidentifier.go |  11 +-
 .../BACnetTimerStateChangeValueOctetString.go      |  11 +-
 .../model/BACnetTimerStateChangeValueReal.go       |  11 +-
 .../model/BACnetTimerStateChangeValueTime.go       |  11 +-
 .../model/BACnetTimerStateChangeValueUnsigned.go   |  11 +-
 .../readwrite/model/BACnetTimerStateTagged.go      |  11 +-
 .../readwrite/model/BACnetTimerTransition.go       |  14 +-
 .../readwrite/model/BACnetTimerTransitionTagged.go |  11 +-
 .../model/BACnetUnconfirmedServiceChoice.go        |  14 +-
 .../model/BACnetUnconfirmedServiceChoiceTagged.go  |  11 +-
 .../model/BACnetUnconfirmedServiceRequestIAm.go    |  11 +-
 .../model/BACnetUnconfirmedServiceRequestIHave.go  |  11 +-
 ...UnconfirmedServiceRequestTimeSynchronization.go |  11 +-
 ...onfirmedServiceRequestUTCTimeSynchronization.go |  11 +-
 ...rmedServiceRequestUnconfirmedCOVNotification.go |  11 +-
 ...iceRequestUnconfirmedCOVNotificationMultiple.go |  11 +-
 ...edServiceRequestUnconfirmedEventNotification.go |  11 +-
 ...rmedServiceRequestUnconfirmedPrivateTransfer.go |  11 +-
 ...onfirmedServiceRequestUnconfirmedTextMessage.go |  11 +-
 .../BACnetUnconfirmedServiceRequestUnknown.go      |  11 +-
 .../model/BACnetUnconfirmedServiceRequestWhoHas.go |  11 +-
 ...onfirmedServiceRequestWhoHasObjectIdentifier.go |  11 +-
 ...netUnconfirmedServiceRequestWhoHasObjectName.go |  11 +-
 .../model/BACnetUnconfirmedServiceRequestWhoIs.go  |  11 +-
 .../BACnetUnconfirmedServiceRequestWriteGroup.go   |  11 +-
 .../bacnetip/readwrite/model/BACnetVMACEntry.go    |  11 +-
 .../bacnetip/readwrite/model/BACnetVTClass.go      |  14 +-
 .../readwrite/model/BACnetVTClassTagged.go         |  11 +-
 .../bacnetip/readwrite/model/BACnetVTSession.go    |  11 +-
 .../readwrite/model/BACnetValueSourceAddress.go    |  11 +-
 .../readwrite/model/BACnetValueSourceNone.go       |  11 +-
 .../readwrite/model/BACnetValueSourceObject.go     |  11 +-
 .../bacnetip/readwrite/model/BACnetVendorId.go     | 478 ++++++++++++++++++++-
 .../readwrite/model/BACnetVendorIdTagged.go        |  11 +-
 .../bacnetip/readwrite/model/BACnetWeekNDay.go     |  11 +-
 .../readwrite/model/BACnetWeekNDayTagged.go        |  11 +-
 .../model/BACnetWriteAccessSpecification.go        |  11 +-
 .../bacnetip/readwrite/model/BACnetWriteStatus.go  |  14 +-
 .../readwrite/model/BACnetWriteStatusTagged.go     |  11 +-
 .../model/BVLCBroadcastDistributionTableEntry.go   |  11 +-
 .../model/BVLCDeleteForeignDeviceTableEntry.go     |  11 +-
 .../model/BVLCDistributeBroadcastToNetwork.go      |  11 +-
 .../readwrite/model/BVLCForeignDeviceTableEntry.go |  11 +-
 .../bacnetip/readwrite/model/BVLCForwardedNPDU.go  |  11 +-
 .../readwrite/model/BVLCOriginalBroadcastNPDU.go   |  11 +-
 .../readwrite/model/BVLCOriginalUnicastNPDU.go     |  11 +-
 .../model/BVLCReadBroadcastDistributionTable.go    |  11 +-
 .../model/BVLCReadBroadcastDistributionTableAck.go |  11 +-
 .../readwrite/model/BVLCReadForeignDeviceTable.go  |  11 +-
 .../model/BVLCReadForeignDeviceTableAck.go         |  11 +-
 .../readwrite/model/BVLCRegisterForeignDevice.go   |  11 +-
 .../bacnetip/readwrite/model/BVLCResult.go         |  11 +-
 .../bacnetip/readwrite/model/BVLCResultCode.go     |  14 +-
 .../readwrite/model/BVLCResultCodeTagged.go        |  11 +-
 .../bacnetip/readwrite/model/BVLCSecureBVLL.go     |  11 +-
 .../model/BVLCWriteBroadcastDistributionTable.go   |  11 +-
 .../bacnetip/readwrite/model/ChangeListAddError.go |  11 +-
 .../readwrite/model/ChangeListRemoveError.go       |  11 +-
 .../model/ConfirmedEventNotificationRequest.go     |  11 +-
 .../model/ConfirmedPrivateTransferError.go         |  11 +-
 .../bacnetip/readwrite/model/CreateObjectError.go  |  11 +-
 plc4go/protocols/bacnetip/readwrite/model/Error.go |  11 +-
 .../bacnetip/readwrite/model/ErrorClass.go         |  14 +-
 .../bacnetip/readwrite/model/ErrorClassTagged.go   |  11 +-
 .../bacnetip/readwrite/model/ErrorCode.go          |  14 +-
 .../bacnetip/readwrite/model/ErrorCodeTagged.go    |  11 +-
 .../bacnetip/readwrite/model/ErrorEnclosed.go      |  11 +-
 .../readwrite/model/ListOfCovNotifications.go      |  11 +-
 .../readwrite/model/ListOfCovNotificationsList.go  |  11 +-
 .../readwrite/model/ListOfCovNotificationsValue.go |  11 +-
 .../readwrite/model/MaxApduLengthAccepted.go       |  14 +-
 .../readwrite/model/MaxApduLengthAcceptedTagged.go |  11 +-
 .../readwrite/model/MaxSegmentsAccepted.go         |  14 +-
 .../readwrite/model/MaxSegmentsAcceptedTagged.go   |  11 +-
 .../model/NLMDisconnectConnectionToNetwork.go      |  11 +-
 .../model/NLMEstablishConnectionToNetwork.go       |  11 +-
 .../readwrite/model/NLMIAmRouterToNetwork.go       |  11 +-
 .../readwrite/model/NLMICouldBeRouterToNetwork.go  |  11 +-
 .../readwrite/model/NLMInitalizeRoutingTable.go    |  11 +-
 .../readwrite/model/NLMInitalizeRoutingTableAck.go |  11 +-
 .../model/NLMInitalizeRoutingTablePortMapping.go   |  11 +-
 .../readwrite/model/NLMRejectRouterToNetwork.go    |  11 +-
 .../model/NLMRejectRouterToNetworkRejectReason.go  |  14 +-
 .../readwrite/model/NLMRouterAvailableToNetwork.go |  11 +-
 .../readwrite/model/NLMRouterBusyToNetwork.go      |  11 +-
 .../readwrite/model/NLMWhoIsRouterToNetwork.go     |  11 +-
 plc4go/protocols/bacnetip/readwrite/model/NPDU.go  |  11 +-
 .../bacnetip/readwrite/model/NPDUControl.go        |  11 +-
 .../readwrite/model/NPDUNetworkPriority.go         |  14 +-
 .../readwrite/model/NPDUNetworkPriorityTagged.go   |  11 +-
 .../model/SubscribeCOVPropertyMultipleError.go     |  11 +-
 ...PropertyMultipleErrorFirstFailedSubscription.go |  11 +-
 .../protocols/bacnetip/readwrite/model/TagClass.go |  14 +-
 .../bacnetip/readwrite/model/VTCloseError.go       |  11 +-
 .../VTCloseErrorListOfVTSessionIdentifiers.go      |  11 +-
 .../readwrite/model/WritePropertyMultipleError.go  |  11 +-
 .../cbus/readwrite/model/AccessControlCategory.go  |  14 +-
 .../readwrite/model/AccessControlCommandType.go    |  14 +-
 .../model/AccessControlCommandTypeContainer.go     |  14 +-
 .../model/AccessControlDataAccessPointClosed.go    |  11 +-
 .../AccessControlDataAccessPointForcedOpen.go      |  11 +-
 .../model/AccessControlDataAccessPointLeftOpen.go  |  11 +-
 .../model/AccessControlDataCloseAccessPoint.go     |  11 +-
 .../model/AccessControlDataInvalidAccessRequest.go |  11 +-
 .../model/AccessControlDataLockAccessPoint.go      |  11 +-
 .../model/AccessControlDataRequestToExit.go        |  11 +-
 .../model/AccessControlDataValidAccessRequest.go   |  11 +-
 .../cbus/readwrite/model/AccessControlDirection.go |  14 +-
 .../readwrite/model/AirConditioningCommandType.go  |  14 +-
 .../model/AirConditioningCommandTypeContainer.go   |  14 +-
 .../AirConditioningDataHumidityScheduleEntry.go    |  11 +-
 .../model/AirConditioningDataHvacScheduleEntry.go  |  11 +-
 .../readwrite/model/AirConditioningDataRefresh.go  |  11 +-
 ...irConditioningDataSetHumidityLowerGuardLimit.go |  11 +-
 .../AirConditioningDataSetHumiditySetbackLimit.go  |  11 +-
 ...irConditioningDataSetHumidityUpperGuardLimit.go |  11 +-
 .../AirConditioningDataSetHvacLowerGuardLimit.go   |  11 +-
 .../AirConditioningDataSetHvacSetbackLimit.go      |  11 +-
 .../AirConditioningDataSetHvacUpperGuardLimit.go   |  11 +-
 .../AirConditioningDataSetPlantHumidityLevel.go    |  11 +-
 .../model/AirConditioningDataSetPlantHvacLevel.go  |  11 +-
 .../model/AirConditioningDataSetZoneGroupOff.go    |  11 +-
 .../model/AirConditioningDataSetZoneGroupOn.go     |  11 +-
 .../AirConditioningDataSetZoneHumidityMode.go      |  11 +-
 .../model/AirConditioningDataSetZoneHvacMode.go    |  11 +-
 .../model/AirConditioningDataZoneHumidity.go       |  11 +-
 .../AirConditioningDataZoneHumidityPlantStatus.go  |  11 +-
 .../AirConditioningDataZoneHvacPlantStatus.go      |  11 +-
 .../model/AirConditioningDataZoneTemperature.go    |  11 +-
 plc4go/protocols/cbus/readwrite/model/Alpha.go     |  11 +-
 .../cbus/readwrite/model/ApplicationAddress1.go    |  11 +-
 .../cbus/readwrite/model/ApplicationAddress2.go    |  11 +-
 .../cbus/readwrite/model/ApplicationId.go          |  14 +-
 .../cbus/readwrite/model/ApplicationIdContainer.go |  14 +-
 plc4go/protocols/cbus/readwrite/model/Attribute.go |  14 +-
 .../cbus/readwrite/model/BaudRateSelector.go       |  14 +-
 .../cbus/readwrite/model/BridgeAddress.go          |  11 +-
 .../cbus/readwrite/model/CALCommandType.go         |  14 +-
 .../readwrite/model/CALCommandTypeContainer.go     |  14 +-
 .../cbus/readwrite/model/CALDataAcknowledge.go     |  11 +-
 .../cbus/readwrite/model/CALDataGetStatus.go       |  11 +-
 .../cbus/readwrite/model/CALDataIdentify.go        |  11 +-
 .../cbus/readwrite/model/CALDataIdentifyReply.go   |  11 +-
 .../cbus/readwrite/model/CALDataRecall.go          |  11 +-
 .../protocols/cbus/readwrite/model/CALDataReply.go |  11 +-
 .../protocols/cbus/readwrite/model/CALDataReset.go |  11 +-
 .../cbus/readwrite/model/CALDataStatus.go          |  11 +-
 .../cbus/readwrite/model/CALDataStatusExtended.go  |  11 +-
 .../protocols/cbus/readwrite/model/CALDataWrite.go |  11 +-
 .../protocols/cbus/readwrite/model/CALReplyLong.go |  11 +-
 .../cbus/readwrite/model/CALReplyShort.go          |  11 +-
 .../readwrite/model/CBusCommandDeviceManagement.go |  11 +-
 .../model/CBusCommandPointToMultiPoint.go          |  11 +-
 .../readwrite/model/CBusCommandPointToPoint.go     |  11 +-
 .../model/CBusCommandPointToPointToMultiPoint.go   |  11 +-
 .../cbus/readwrite/model/CBusConstants.go          |  11 +-
 .../protocols/cbus/readwrite/model/CBusHeader.go   |  11 +-
 .../cbus/readwrite/model/CBusMessageToClient.go    |  11 +-
 .../cbus/readwrite/model/CBusMessageToServer.go    |  11 +-
 .../protocols/cbus/readwrite/model/CBusOptions.go  |  11 +-
 .../model/CBusPointToMultiPointCommandNormal.go    |  11 +-
 .../model/CBusPointToMultiPointCommandStatus.go    |  11 +-
 .../model/CBusPointToPointCommandDirect.go         |  11 +-
 .../model/CBusPointToPointCommandIndirect.go       |  11 +-
 .../CBusPointToPointToMultiPointCommandNormal.go   |  11 +-
 .../CBusPointToPointToMultiPointCommandStatus.go   |  11 +-
 .../cbus/readwrite/model/ChannelStatus.go          |  14 +-
 plc4go/protocols/cbus/readwrite/model/Checksum.go  |  11 +-
 .../model/ClockAndTimekeepingCommandType.go        |  14 +-
 .../ClockAndTimekeepingCommandTypeContainer.go     |  14 +-
 .../model/ClockAndTimekeepingDataRequestRefresh.go |  11 +-
 .../model/ClockAndTimekeepingDataUpdateDate.go     |  11 +-
 .../model/ClockAndTimekeepingDataUpdateTime.go     |  11 +-
 .../protocols/cbus/readwrite/model/Confirmation.go |  11 +-
 .../cbus/readwrite/model/ConfirmationType.go       |  14 +-
 .../cbus/readwrite/model/CustomManufacturer.go     |  11 +-
 .../protocols/cbus/readwrite/model/CustomTypes.go  |  11 +-
 .../cbus/readwrite/model/DestinationAddressType.go |  14 +-
 .../cbus/readwrite/model/DialInFailureReason.go    |  14 +-
 .../cbus/readwrite/model/DialOutFailureReason.go   |  14 +-
 .../readwrite/model/EnableControlCommandType.go    |  14 +-
 .../model/EnableControlCommandTypeContainer.go     |  14 +-
 .../cbus/readwrite/model/EnableControlData.go      |  11 +-
 .../cbus/readwrite/model/EncodedReplyCALReply.go   |  11 +-
 .../readwrite/model/ErrorReportingCommandType.go   |  14 +-
 .../model/ErrorReportingCommandTypeContainer.go    |  14 +-
 .../readwrite/model/ErrorReportingDataGeneric.go   |  11 +-
 .../cbus/readwrite/model/ErrorReportingSeverity.go |  14 +-
 .../model/ErrorReportingSystemCategory.go          |  11 +-
 .../model/ErrorReportingSystemCategoryClass.go     |  14 +-
 ...gSystemCategoryTypeBuildingManagementSystems.go |  11 +-
 ...eportingSystemCategoryTypeClimateControllers.go |  11 +-
 ...stemCategoryTypeForBuildingManagementSystems.go |  14 +-
 ...rtingSystemCategoryTypeForClimateControllers.go |  14 +-
 ...rrorReportingSystemCategoryTypeForInputUnits.go |  14 +-
 ...rorReportingSystemCategoryTypeForOutputUnits.go |  14 +-
 ...orReportingSystemCategoryTypeForSupportUnits.go |  14 +-
 .../ErrorReportingSystemCategoryTypeInputUnits.go  |  11 +-
 .../ErrorReportingSystemCategoryTypeOutputUnits.go |  11 +-
 .../ErrorReportingSystemCategoryTypeReserved.go    |  11 +-
 ...ErrorReportingSystemCategoryTypeSupportUnits.go |  11 +-
 .../model/ErrorReportingSystemCategoryVariant.go   |  14 +-
 plc4go/protocols/cbus/readwrite/model/GAVState.go  |  14 +-
 .../cbus/readwrite/model/HVACAuxiliaryLevel.go     |  11 +-
 plc4go/protocols/cbus/readwrite/model/HVACError.go |  14 +-
 .../protocols/cbus/readwrite/model/HVACHumidity.go |  11 +-
 .../cbus/readwrite/model/HVACHumidityError.go      |  14 +-
 .../readwrite/model/HVACHumidityModeAndFlags.go    |  11 +-
 .../model/HVACHumidityModeAndFlagsMode.go          |  14 +-
 .../readwrite/model/HVACHumidityStatusFlags.go     |  11 +-
 .../cbus/readwrite/model/HVACHumidityType.go       |  14 +-
 .../cbus/readwrite/model/HVACModeAndFlags.go       |  11 +-
 .../cbus/readwrite/model/HVACModeAndFlagsMode.go   |  14 +-
 .../cbus/readwrite/model/HVACRawLevels.go          |  11 +-
 .../cbus/readwrite/model/HVACSensorStatus.go       |  14 +-
 .../cbus/readwrite/model/HVACStartTime.go          |  11 +-
 .../cbus/readwrite/model/HVACStatusFlags.go        |  11 +-
 .../cbus/readwrite/model/HVACTemperature.go        |  11 +-
 plc4go/protocols/cbus/readwrite/model/HVACType.go  |  14 +-
 .../protocols/cbus/readwrite/model/HVACZoneList.go |  11 +-
 .../IdentifyReplyCommandCurrentSenseLevels.go      |  11 +-
 .../model/IdentifyReplyCommandDSIStatus.go         |  11 +-
 .../readwrite/model/IdentifyReplyCommandDelays.go  |  11 +-
 ...dentifyReplyCommandExtendedDiagnosticSummary.go |  11 +-
 .../model/IdentifyReplyCommandFirmwareVersion.go   |  11 +-
 .../IdentifyReplyCommandGAVPhysicalAddresses.go    |  11 +-
 .../model/IdentifyReplyCommandGAVValuesCurrent.go  |  11 +-
 .../model/IdentifyReplyCommandGAVValuesStored.go   |  11 +-
 .../model/IdentifyReplyCommandLogicalAssignment.go |  11 +-
 .../model/IdentifyReplyCommandManufacturer.go      |  11 +-
 .../model/IdentifyReplyCommandMaximumLevels.go     |  11 +-
 .../model/IdentifyReplyCommandMinimumLevels.go     |  11 +-
 .../IdentifyReplyCommandNetworkTerminalLevels.go   |  11 +-
 .../model/IdentifyReplyCommandNetworkVoltage.go    |  11 +-
 .../model/IdentifyReplyCommandOutputUnitSummary.go |  11 +-
 .../readwrite/model/IdentifyReplyCommandSummary.go |  11 +-
 .../model/IdentifyReplyCommandTerminalLevels.go    |  11 +-
 .../readwrite/model/IdentifyReplyCommandType.go    |  11 +-
 .../model/IdentifyReplyCommandUnitSummary.go       |  11 +-
 .../cbus/readwrite/model/InterfaceOptions1.go      |  11 +-
 .../model/InterfaceOptions1PowerUpSettings.go      |  11 +-
 .../cbus/readwrite/model/InterfaceOptions2.go      |  11 +-
 .../cbus/readwrite/model/InterfaceOptions3.go      |  11 +-
 plc4go/protocols/cbus/readwrite/model/Language.go  |  14 +-
 .../cbus/readwrite/model/LevelInformationAbsent.go |  11 +-
 .../readwrite/model/LevelInformationCorrupted.go   |  11 +-
 .../readwrite/model/LevelInformationNibblePair.go  |  14 +-
 .../cbus/readwrite/model/LevelInformationNormal.go |  11 +-
 .../cbus/readwrite/model/LightingCommandType.go    |  14 +-
 .../model/LightingCommandTypeContainer.go          |  14 +-
 .../cbus/readwrite/model/LightingCompatible.go     |  14 +-
 .../cbus/readwrite/model/LightingDataLabel.go      |  11 +-
 .../cbus/readwrite/model/LightingDataOff.go        |  11 +-
 .../cbus/readwrite/model/LightingDataOn.go         |  11 +-
 .../readwrite/model/LightingDataRampToLevel.go     |  11 +-
 .../readwrite/model/LightingDataTerminateRamp.go   |  11 +-
 .../cbus/readwrite/model/LightingLabelFlavour.go   |  14 +-
 .../cbus/readwrite/model/LightingLabelOptions.go   |  11 +-
 .../cbus/readwrite/model/LightingLabelType.go      |  14 +-
 .../cbus/readwrite/model/LineOffHookReason.go      |  14 +-
 .../cbus/readwrite/model/LogicAssignment.go        |  11 +-
 .../cbus/readwrite/model/MeasurementCommandType.go |  14 +-
 .../model/MeasurementCommandTypeContainer.go       |  14 +-
 .../model/MeasurementDataChannelMeasurementData.go |  11 +-
 .../cbus/readwrite/model/MeasurementUnits.go       |  14 +-
 .../model/MediaTransportControlCommandType.go      |  14 +-
 .../MediaTransportControlCommandTypeContainer.go   |  14 +-
 .../model/MediaTransportControlDataCategoryName.go |  11 +-
 ...ontrolDataEnumerateCategoriesSelectionTracks.go |  11 +-
 .../MediaTransportControlDataEnumerationsSize.go   |  11 +-
 .../model/MediaTransportControlDataFastForward.go  |  11 +-
 ...ediaTransportControlDataNextPreviousCategory.go |  11 +-
 ...diaTransportControlDataNextPreviousSelection.go |  11 +-
 .../MediaTransportControlDataNextPreviousTrack.go  |  11 +-
 .../model/MediaTransportControlDataPauseResume.go  |  11 +-
 .../model/MediaTransportControlDataPlay.go         |  11 +-
 .../model/MediaTransportControlDataRepeatOnOff.go  |  11 +-
 .../model/MediaTransportControlDataRewind.go       |  11 +-
 .../MediaTransportControlDataSelectionName.go      |  11 +-
 .../model/MediaTransportControlDataSetCategory.go  |  11 +-
 .../model/MediaTransportControlDataSetSelection.go |  11 +-
 .../model/MediaTransportControlDataSetTrack.go     |  11 +-
 .../model/MediaTransportControlDataShuffleOnOff.go |  11 +-
 .../MediaTransportControlDataSourcePowerControl.go |  11 +-
 .../MediaTransportControlDataStatusRequest.go      |  11 +-
 .../model/MediaTransportControlDataStop.go         |  11 +-
 .../model/MediaTransportControlDataTotalTracks.go  |  11 +-
 .../model/MediaTransportControlDataTrackName.go    |  11 +-
 .../cbus/readwrite/model/MeteringCommandType.go    |  14 +-
 .../model/MeteringCommandTypeContainer.go          |  14 +-
 .../model/MeteringDataDrinkingWaterConsumption.go  |  11 +-
 .../model/MeteringDataElectricityConsumption.go    |  11 +-
 .../readwrite/model/MeteringDataGasConsumption.go  |  11 +-
 .../model/MeteringDataMeasureDrinkingWater.go      |  11 +-
 .../model/MeteringDataMeasureElectricity.go        |  11 +-
 .../cbus/readwrite/model/MeteringDataMeasureGas.go |  11 +-
 .../cbus/readwrite/model/MeteringDataMeasureOil.go |  11 +-
 .../model/MeteringDataMeasureOtherWater.go         |  11 +-
 .../readwrite/model/MeteringDataOilConsumption.go  |  11 +-
 .../model/MeteringDataOtherWaterConsumption.go     |  11 +-
 .../model/MonitoredSALLongFormSmartMode.go         |  11 +-
 .../cbus/readwrite/model/MonitoredSALReply.go      |  11 +-
 .../model/MonitoredSALShortFormBasicMode.go        |  11 +-
 .../model/NetworkProtocolControlInformation.go     |  11 +-
 .../protocols/cbus/readwrite/model/NetworkRoute.go |  11 +-
 .../protocols/cbus/readwrite/model/PanicStatus.go  |  11 +-
 plc4go/protocols/cbus/readwrite/model/Parameter.go |  14 +-
 .../cbus/readwrite/model/ParameterChange.go        |  11 +-
 .../cbus/readwrite/model/ParameterChangeReply.go   |  11 +-
 .../cbus/readwrite/model/ParameterType.go          |  14 +-
 .../model/ParameterValueApplicationAddress1.go     |  11 +-
 .../model/ParameterValueApplicationAddress2.go     |  11 +-
 .../model/ParameterValueBaudRateSelector.go        |  11 +-
 .../model/ParameterValueCustomManufacturer.go      |  11 +-
 .../readwrite/model/ParameterValueCustomTypes.go   |  11 +-
 .../model/ParameterValueInterfaceOptions1.go       |  11 +-
 ...rameterValueInterfaceOptions1PowerUpSettings.go |  11 +-
 .../model/ParameterValueInterfaceOptions2.go       |  11 +-
 .../model/ParameterValueInterfaceOptions3.go       |  11 +-
 .../cbus/readwrite/model/ParameterValueRaw.go      |  11 +-
 .../readwrite/model/ParameterValueSerialNumber.go  |  11 +-
 plc4go/protocols/cbus/readwrite/model/PowerUp.go   |  11 +-
 .../protocols/cbus/readwrite/model/PowerUpReply.go |  11 +-
 .../cbus/readwrite/model/PriorityClass.go          |  14 +-
 .../cbus/readwrite/model/ProtectionLevel.go        |  14 +-
 .../cbus/readwrite/model/ReplyEncodedReply.go      |  11 +-
 .../protocols/cbus/readwrite/model/ReplyNetwork.go |  11 +-
 .../model/ReplyOrConfirmationConfirmation.go       |  11 +-
 .../readwrite/model/ReplyOrConfirmationReply.go    |  11 +-
 .../cbus/readwrite/model/RequestCommand.go         |  11 +-
 .../cbus/readwrite/model/RequestContext.go         |  11 +-
 .../readwrite/model/RequestDirectCommandAccess.go  |  11 +-
 .../protocols/cbus/readwrite/model/RequestEmpty.go |  11 +-
 .../protocols/cbus/readwrite/model/RequestNull.go  |  11 +-
 .../cbus/readwrite/model/RequestObsolete.go        |  11 +-
 .../protocols/cbus/readwrite/model/RequestReset.go |  11 +-
 .../readwrite/model/RequestSmartConnectShortcut.go |  11 +-
 .../cbus/readwrite/model/RequestTermination.go     |  11 +-
 .../protocols/cbus/readwrite/model/RequestType.go  |  14 +-
 .../cbus/readwrite/model/ResponseTermination.go    |  11 +-
 .../cbus/readwrite/model/SALDataAccessControl.go   |  11 +-
 .../cbus/readwrite/model/SALDataAirConditioning.go |  11 +-
 .../cbus/readwrite/model/SALDataAudioAndVideo.go   |  11 +-
 .../readwrite/model/SALDataClockAndTimekeeping.go  |  11 +-
 .../cbus/readwrite/model/SALDataEnableControl.go   |  11 +-
 .../cbus/readwrite/model/SALDataErrorReporting.go  |  11 +-
 .../cbus/readwrite/model/SALDataFreeUsage.go       |  11 +-
 .../cbus/readwrite/model/SALDataHeating.go         |  11 +-
 .../cbus/readwrite/model/SALDataHvacActuator.go    |  11 +-
 .../readwrite/model/SALDataIrrigationControl.go    |  11 +-
 .../cbus/readwrite/model/SALDataLighting.go        |  11 +-
 .../cbus/readwrite/model/SALDataMeasurement.go     |  11 +-
 .../cbus/readwrite/model/SALDataMediaTransport.go  |  11 +-
 .../cbus/readwrite/model/SALDataMetering.go        |  11 +-
 .../model/SALDataPoolsSpasPondsFountainsControl.go |  11 +-
 .../cbus/readwrite/model/SALDataReserved.go        |  11 +-
 .../readwrite/model/SALDataRoomControlSystem.go    |  11 +-
 .../cbus/readwrite/model/SALDataSecurity.go        |  11 +-
 .../model/SALDataTelephonyStatusAndControl.go      |  11 +-
 .../readwrite/model/SALDataTemperatureBroadcast.go |  11 +-
 .../cbus/readwrite/model/SALDataTesting.go         |  11 +-
 .../cbus/readwrite/model/SALDataTriggerControl.go  |  11 +-
 .../cbus/readwrite/model/SALDataVentilation.go     |  11 +-
 .../cbus/readwrite/model/SecurityArmCode.go        |  11 +-
 .../cbus/readwrite/model/SecurityCommandType.go    |  14 +-
 .../model/SecurityCommandTypeContainer.go          |  14 +-
 .../cbus/readwrite/model/SecurityDataAlarmOff.go   |  11 +-
 .../cbus/readwrite/model/SecurityDataAlarmOn.go    |  11 +-
 .../model/SecurityDataArmFailedCleared.go          |  11 +-
 .../readwrite/model/SecurityDataArmFailedRaised.go |  11 +-
 .../model/SecurityDataArmReadyNotReady.go          |  11 +-
 .../cbus/readwrite/model/SecurityDataArmSystem.go  |  11 +-
 .../model/SecurityDataCurrentAlarmType.go          |  11 +-
 .../readwrite/model/SecurityDataDisplayMessage.go  |  11 +-
 .../cbus/readwrite/model/SecurityDataDropTamper.go |  11 +-
 .../readwrite/model/SecurityDataEmulatedKeypad.go  |  11 +-
 .../model/SecurityDataEntryDelayStarted.go         |  11 +-
 .../cbus/readwrite/model/SecurityDataEvent.go      |  11 +-
 .../model/SecurityDataExitDelayStarted.go          |  11 +-
 .../model/SecurityDataFireAlarmCleared.go          |  11 +-
 .../readwrite/model/SecurityDataFireAlarmRaised.go |  11 +-
 .../readwrite/model/SecurityDataGasAlarmCleared.go |  11 +-
 .../readwrite/model/SecurityDataGasAlarmRaised.go  |  11 +-
 .../model/SecurityDataLineCutAlarmCleared.go       |  11 +-
 .../model/SecurityDataLineCutAlarmRaised.go        |  11 +-
 .../model/SecurityDataLowBatteryCharging.go        |  11 +-
 .../model/SecurityDataLowBatteryCorrected.go       |  11 +-
 .../model/SecurityDataLowBatteryDetected.go        |  11 +-
 .../readwrite/model/SecurityDataMainsFailure.go    |  11 +-
 .../model/SecurityDataMainsRestoredOrApplied.go    |  11 +-
 .../cbus/readwrite/model/SecurityDataOff.go        |  11 +-
 .../cbus/readwrite/model/SecurityDataOn.go         |  11 +-
 .../model/SecurityDataOtherAlarmCleared.go         |  11 +-
 .../model/SecurityDataOtherAlarmRaised.go          |  11 +-
 .../readwrite/model/SecurityDataPanicActivated.go  |  11 +-
 .../readwrite/model/SecurityDataPanicCleared.go    |  11 +-
 .../model/SecurityDataPasswordEntryStatus.go       |  11 +-
 .../cbus/readwrite/model/SecurityDataRaiseAlarm.go |  11 +-
 .../readwrite/model/SecurityDataRaiseTamper.go     |  11 +-
 .../readwrite/model/SecurityDataRequestZoneName.go |  11 +-
 .../readwrite/model/SecurityDataStatus1Request.go  |  11 +-
 .../readwrite/model/SecurityDataStatus2Request.go  |  11 +-
 .../readwrite/model/SecurityDataStatusReport1.go   |  11 +-
 .../readwrite/model/SecurityDataStatusReport2.go   |  11 +-
 .../model/SecurityDataSystemArmedDisarmed.go       |  11 +-
 .../readwrite/model/SecurityDataSystemDisarmed.go  |  11 +-
 .../cbus/readwrite/model/SecurityDataTamperOff.go  |  11 +-
 .../cbus/readwrite/model/SecurityDataTamperOn.go   |  11 +-
 .../readwrite/model/SecurityDataZoneIsolated.go    |  11 +-
 .../cbus/readwrite/model/SecurityDataZoneName.go   |  11 +-
 .../cbus/readwrite/model/SecurityDataZoneOpen.go   |  11 +-
 .../cbus/readwrite/model/SecurityDataZoneSealed.go |  11 +-
 .../cbus/readwrite/model/SecurityDataZoneShort.go  |  11 +-
 .../readwrite/model/SecurityDataZoneUnsealed.go    |  11 +-
 .../cbus/readwrite/model/SerialInterfaceAddress.go |  11 +-
 .../protocols/cbus/readwrite/model/SerialNumber.go |  11 +-
 .../cbus/readwrite/model/ServerErrorReply.go       |  11 +-
 .../protocols/cbus/readwrite/model/StaticHelper.go |  11 +-
 .../protocols/cbus/readwrite/model/StatusByte.go   |  11 +-
 .../protocols/cbus/readwrite/model/StatusCoding.go |  14 +-
 .../readwrite/model/StatusRequestBinaryState.go    |  11 +-
 .../model/StatusRequestBinaryStateDeprecated.go    |  11 +-
 .../cbus/readwrite/model/StatusRequestLevel.go     |  11 +-
 .../protocols/cbus/readwrite/model/TamperStatus.go |  11 +-
 .../cbus/readwrite/model/TelephonyCommandType.go   |  14 +-
 .../model/TelephonyCommandTypeContainer.go         |  14 +-
 .../readwrite/model/TelephonyDataClearDiversion.go |  11 +-
 .../readwrite/model/TelephonyDataDialInFailure.go  |  11 +-
 .../readwrite/model/TelephonyDataDialOutFailure.go |  11 +-
 .../cbus/readwrite/model/TelephonyDataDivert.go    |  11 +-
 .../TelephonyDataInternetConnectionRequestMade.go  |  11 +-
 .../model/TelephonyDataIsolateSecondaryOutlet.go   |  11 +-
 .../readwrite/model/TelephonyDataLineOffHook.go    |  11 +-
 .../readwrite/model/TelephonyDataLineOnHook.go     |  11 +-
 .../model/TelephonyDataRecallLastNumber.go         |  11 +-
 .../model/TelephonyDataRecallLastNumberRequest.go  |  11 +-
 .../model/TelephonyDataRejectIncomingCall.go       |  11 +-
 .../cbus/readwrite/model/TelephonyDataRinging.go   |  11 +-
 .../model/TemperatureBroadcastCommandType.go       |  14 +-
 .../TemperatureBroadcastCommandTypeContainer.go    |  14 +-
 .../readwrite/model/TemperatureBroadcastData.go    |  11 +-
 .../readwrite/model/TriggerControlCommandType.go   |  14 +-
 .../model/TriggerControlCommandTypeContainer.go    |  14 +-
 .../model/TriggerControlDataIndicatorKill.go       |  11 +-
 .../readwrite/model/TriggerControlDataLabel.go     |  11 +-
 .../model/TriggerControlDataTriggerEvent.go        |  11 +-
 .../model/TriggerControlDataTriggerMax.go          |  11 +-
 .../model/TriggerControlDataTriggerMin.go          |  11 +-
 .../readwrite/model/TriggerControlLabelFlavour.go  |  14 +-
 .../readwrite/model/TriggerControlLabelOptions.go  |  11 +-
 .../readwrite/model/TriggerControlLabelType.go     |  14 +-
 .../protocols/cbus/readwrite/model/UnitAddress.go  |  11 +-
 .../protocols/cbus/readwrite/model/UnitStatus.go   |  14 +-
 .../protocols/cbus/readwrite/model/ZoneStatus.go   |  11 +-
 .../cbus/readwrite/model/ZoneStatusTemp.go         |  14 +-
 .../df1/readwrite/model/DF1SymbolMessageFrame.go   |  11 +-
 .../readwrite/model/DF1SymbolMessageFrameACK.go    |  11 +-
 .../readwrite/model/DF1SymbolMessageFrameNAK.go    |  11 +-
 .../readwrite/model/DF1UnprotectedReadRequest.go   |  11 +-
 .../readwrite/model/DF1UnprotectedReadResponse.go  |  11 +-
 .../protocols/df1/readwrite/model/StaticHelper.go  |   4 +-
 .../eip/readwrite/model/CIPDataTypeCode.go         |  14 +-
 .../eip/readwrite/model/CIPStructTypeCode.go       |  14 +-
 .../protocols/eip/readwrite/model/CipExchange.go   |  11 +-
 plc4go/protocols/eip/readwrite/model/CipRRData.go  |  11 +-
 .../eip/readwrite/model/CipReadRequest.go          |  11 +-
 .../eip/readwrite/model/CipReadResponse.go         |  11 +-
 .../eip/readwrite/model/CipUnconnectedRequest.go   |  11 +-
 .../eip/readwrite/model/CipWriteRequest.go         |  11 +-
 .../eip/readwrite/model/CipWriteResponse.go        |  11 +-
 plc4go/protocols/eip/readwrite/model/EiPCommand.go |  14 +-
 .../eip/readwrite/model/EipConnectionRequest.go    |  11 +-
 .../eip/readwrite/model/EipDisconnectRequest.go    |  11 +-
 .../eip/readwrite/model/MultipleServiceRequest.go  |  11 +-
 .../eip/readwrite/model/MultipleServiceResponse.go |  11 +-
 plc4go/protocols/eip/readwrite/model/Services.go   |  11 +-
 .../model/FirmataCommandProtocolVersion.go         |  11 +-
 .../model/FirmataCommandSetDigitalPinValue.go      |  11 +-
 .../readwrite/model/FirmataCommandSetPinMode.go    |  11 +-
 .../firmata/readwrite/model/FirmataCommandSysex.go |  11 +-
 .../readwrite/model/FirmataCommandSystemReset.go   |  11 +-
 .../readwrite/model/FirmataMessageAnalogIO.go      |  11 +-
 .../readwrite/model/FirmataMessageCommand.go       |  11 +-
 .../readwrite/model/FirmataMessageDigitalIO.go     |  11 +-
 .../model/FirmataMessageSubscribeAnalogPinValue.go |  11 +-
 .../FirmataMessageSubscribeDigitalPinValue.go      |  11 +-
 .../protocols/firmata/readwrite/model/PinMode.go   |  14 +-
 .../model/SysexCommandAnalogMappingQueryRequest.go |  11 +-
 .../SysexCommandAnalogMappingQueryResponse.go      |  11 +-
 .../model/SysexCommandAnalogMappingResponse.go     |  11 +-
 .../readwrite/model/SysexCommandCapabilityQuery.go |  11 +-
 .../model/SysexCommandCapabilityResponse.go        |  11 +-
 .../readwrite/model/SysexCommandExtendedAnalog.go  |  11 +-
 .../readwrite/model/SysexCommandExtendedId.go      |  11 +-
 .../readwrite/model/SysexCommandPinStateQuery.go   |  11 +-
 .../model/SysexCommandPinStateResponse.go          |  11 +-
 .../model/SysexCommandReportFirmwareRequest.go     |  11 +-
 .../model/SysexCommandReportFirmwareResponse.go    |  11 +-
 .../model/SysexCommandSamplingInterval.go          |  11 +-
 .../readwrite/model/SysexCommandStringData.go      |  11 +-
 .../model/SysexCommandSysexNonRealtime.go          |  11 +-
 .../readwrite/model/SysexCommandSysexRealtime.go   |  11 +-
 .../knxnetip/readwrite/model/AccessLevel.go        |  14 +-
 .../knxnetip/readwrite/model/ApduControlAck.go     |  11 +-
 .../knxnetip/readwrite/model/ApduControlConnect.go |  11 +-
 .../readwrite/model/ApduControlContainer.go        |  11 +-
 .../readwrite/model/ApduControlDisconnect.go       |  11 +-
 .../knxnetip/readwrite/model/ApduControlNack.go    |  11 +-
 .../knxnetip/readwrite/model/ApduDataAdcRead.go    |  11 +-
 .../readwrite/model/ApduDataAdcResponse.go         |  11 +-
 .../knxnetip/readwrite/model/ApduDataContainer.go  |  11 +-
 .../model/ApduDataDeviceDescriptorRead.go          |  11 +-
 .../model/ApduDataDeviceDescriptorResponse.go      |  11 +-
 .../readwrite/model/ApduDataExtAuthorizeRequest.go |  11 +-
 .../model/ApduDataExtAuthorizeResponse.go          |  11 +-
 .../model/ApduDataExtDomainAddressRead.go          |  11 +-
 .../model/ApduDataExtDomainAddressResponse.go      |  11 +-
 .../model/ApduDataExtDomainAddressSelectiveRead.go |  11 +-
 .../ApduDataExtDomainAddressSerialNumberRead.go    |  11 +-
 ...ApduDataExtDomainAddressSerialNumberResponse.go |  11 +-
 .../ApduDataExtDomainAddressSerialNumberWrite.go   |  11 +-
 .../model/ApduDataExtDomainAddressWrite.go         |  11 +-
 .../model/ApduDataExtFileStreamInfoReport.go       |  11 +-
 .../ApduDataExtGroupPropertyValueInfoReport.go     |  11 +-
 .../model/ApduDataExtGroupPropertyValueRead.go     |  11 +-
 .../model/ApduDataExtGroupPropertyValueResponse.go |  11 +-
 .../model/ApduDataExtGroupPropertyValueWrite.go    |  11 +-
 ...ApduDataExtIndividualAddressSerialNumberRead.go |  11 +-
 ...DataExtIndividualAddressSerialNumberResponse.go |  11 +-
 ...pduDataExtIndividualAddressSerialNumberWrite.go |  11 +-
 .../readwrite/model/ApduDataExtKeyResponse.go      |  11 +-
 .../readwrite/model/ApduDataExtKeyWrite.go         |  11 +-
 .../readwrite/model/ApduDataExtLinkRead.go         |  11 +-
 .../readwrite/model/ApduDataExtLinkResponse.go     |  11 +-
 .../readwrite/model/ApduDataExtLinkWrite.go        |  11 +-
 .../readwrite/model/ApduDataExtMemoryBitWrite.go   |  11 +-
 .../model/ApduDataExtNetworkParameterRead.go       |  11 +-
 .../model/ApduDataExtNetworkParameterResponse.go   |  11 +-
 .../model/ApduDataExtNetworkParameterWrite.go      |  11 +-
 .../model/ApduDataExtOpenRoutingTableRequest.go    |  11 +-
 .../model/ApduDataExtPropertyDescriptionRead.go    |  11 +-
 .../ApduDataExtPropertyDescriptionResponse.go      |  11 +-
 .../model/ApduDataExtPropertyValueRead.go          |  11 +-
 .../model/ApduDataExtPropertyValueResponse.go      |  11 +-
 .../model/ApduDataExtPropertyValueWrite.go         |  11 +-
 .../model/ApduDataExtReadRouterMemoryRequest.go    |  11 +-
 .../model/ApduDataExtReadRouterMemoryResponse.go   |  11 +-
 .../model/ApduDataExtReadRouterStatusRequest.go    |  11 +-
 .../model/ApduDataExtReadRouterStatusResponse.go   |  11 +-
 .../model/ApduDataExtReadRoutingTableRequest.go    |  11 +-
 .../model/ApduDataExtReadRoutingTableResponse.go   |  11 +-
 .../model/ApduDataExtWriteRouterMemoryRequest.go   |  11 +-
 .../model/ApduDataExtWriteRouterStatusRequest.go   |  11 +-
 .../model/ApduDataExtWriteRoutingTableRequest.go   |  11 +-
 .../readwrite/model/ApduDataGroupValueRead.go      |  11 +-
 .../readwrite/model/ApduDataGroupValueResponse.go  |  11 +-
 .../readwrite/model/ApduDataGroupValueWrite.go     |  11 +-
 .../model/ApduDataIndividualAddressRead.go         |  11 +-
 .../model/ApduDataIndividualAddressResponse.go     |  11 +-
 .../model/ApduDataIndividualAddressWrite.go        |  11 +-
 .../knxnetip/readwrite/model/ApduDataMemoryRead.go |  11 +-
 .../readwrite/model/ApduDataMemoryResponse.go      |  11 +-
 .../readwrite/model/ApduDataMemoryWrite.go         |  11 +-
 .../knxnetip/readwrite/model/ApduDataOther.go      |  11 +-
 .../knxnetip/readwrite/model/ApduDataRestart.go    |  11 +-
 .../readwrite/model/ApduDataUserMessage.go         |  11 +-
 .../CEMIAdditionalInformationBusmonitorInfo.go     |  11 +-
 .../CEMIAdditionalInformationRelativeTimestamp.go  |  11 +-
 .../knxnetip/readwrite/model/CEMIPriority.go       |  14 +-
 .../knxnetip/readwrite/model/ChannelInformation.go |  11 +-
 .../readwrite/model/ComObjectTableAddresses.go     |  14 +-
 .../model/ComObjectTableRealisationType1.go        |  11 +-
 .../model/ComObjectTableRealisationType2.go        |  11 +-
 .../model/ComObjectTableRealisationType6.go        |  11 +-
 .../knxnetip/readwrite/model/ComObjectValueType.go |  14 +-
 .../knxnetip/readwrite/model/ConnectionRequest.go  |  11 +-
 ...ConnectionRequestInformationDeviceManagement.go |  11 +-
 ...ConnectionRequestInformationTunnelConnection.go |  11 +-
 .../knxnetip/readwrite/model/ConnectionResponse.go |  11 +-
 .../ConnectionResponseDataBlockDeviceManagement.go |  11 +-
 .../ConnectionResponseDataBlockTunnelConnection.go |  11 +-
 .../readwrite/model/ConnectionStateRequest.go      |  11 +-
 .../readwrite/model/ConnectionStateResponse.go     |  11 +-
 .../knxnetip/readwrite/model/DIBDeviceInfo.go      |  11 +-
 .../knxnetip/readwrite/model/DIBSuppSvcFamilies.go |  11 +-
 .../knxnetip/readwrite/model/DescriptionRequest.go |  11 +-
 .../readwrite/model/DescriptionResponse.go         |  11 +-
 .../readwrite/model/DeviceConfigurationAck.go      |  11 +-
 .../model/DeviceConfigurationAckDataBlock.go       |  11 +-
 .../readwrite/model/DeviceConfigurationRequest.go  |  11 +-
 .../model/DeviceConfigurationRequestDataBlock.go   |  11 +-
 .../knxnetip/readwrite/model/DeviceDescriptor.go   |  14 +-
 .../readwrite/model/DeviceDescriptorMediumType.go  |  14 +-
 .../readwrite/model/DeviceDescriptorType2.go       |  11 +-
 .../knxnetip/readwrite/model/DeviceStatus.go       |  11 +-
 .../knxnetip/readwrite/model/DisconnectRequest.go  |  11 +-
 .../knxnetip/readwrite/model/DisconnectResponse.go |  11 +-
 .../knxnetip/readwrite/model/FirmwareType.go       |  14 +-
 .../model/GroupObjectDescriptorRealisationType1.go |  11 +-
 .../model/GroupObjectDescriptorRealisationType2.go |  11 +-
 .../model/GroupObjectDescriptorRealisationType6.go |  11 +-
 .../model/GroupObjectDescriptorRealisationType7.go |  11 +-
 .../model/GroupObjectDescriptorRealisationTypeB.go |  11 +-
 .../readwrite/model/HPAIControlEndpoint.go         |  11 +-
 .../knxnetip/readwrite/model/HPAIDataEndpoint.go   |  11 +-
 .../readwrite/model/HPAIDiscoveryEndpoint.go       |  11 +-
 .../knxnetip/readwrite/model/HostProtocolCode.go   |  14 +-
 .../knxnetip/readwrite/model/IPAddress.go          |  11 +-
 .../knxnetip/readwrite/model/KnxAddress.go         |  11 +-
 .../knxnetip/readwrite/model/KnxDatapoint.go       |  11 +-
 .../readwrite/model/KnxDatapointMainType.go        |  14 +-
 .../knxnetip/readwrite/model/KnxDatapointType.go   |  14 +-
 .../readwrite/model/KnxGroupAddress2Level.go       |  11 +-
 .../readwrite/model/KnxGroupAddress3Level.go       |  11 +-
 .../readwrite/model/KnxGroupAddressFreeLevel.go    |  11 +-
 .../readwrite/model/KnxInterfaceObjectProperty.go  |  14 +-
 .../readwrite/model/KnxInterfaceObjectType.go      |  14 +-
 .../protocols/knxnetip/readwrite/model/KnxLayer.go |  14 +-
 .../knxnetip/readwrite/model/KnxManufacturer.go    |  72 +++-
 .../knxnetip/readwrite/model/KnxMedium.go          |  14 +-
 .../knxnetip/readwrite/model/KnxNetIpCore.go       |  11 +-
 .../readwrite/model/KnxNetIpDeviceManagement.go    |  11 +-
 .../knxnetip/readwrite/model/KnxNetIpRouting.go    |  11 +-
 .../knxnetip/readwrite/model/KnxNetIpTunneling.go  |  11 +-
 .../knxnetip/readwrite/model/KnxNetObjectServer.go |  11 +-
 .../model/KnxNetRemoteConfigurationAndDiagnosis.go |  11 +-
 .../readwrite/model/KnxNetRemoteLogging.go         |  11 +-
 .../knxnetip/readwrite/model/KnxProperty.go        |  11 +-
 .../readwrite/model/KnxPropertyDataType.go         |  14 +-
 .../knxnetip/readwrite/model/LBusmonInd.go         |  11 +-
 .../protocols/knxnetip/readwrite/model/LDataCon.go |  11 +-
 .../knxnetip/readwrite/model/LDataExtended.go      |  11 +-
 .../knxnetip/readwrite/model/LDataFrameACK.go      |  11 +-
 .../protocols/knxnetip/readwrite/model/LDataInd.go |  11 +-
 .../protocols/knxnetip/readwrite/model/LDataReq.go |  11 +-
 .../knxnetip/readwrite/model/LPollData.go          |  11 +-
 .../knxnetip/readwrite/model/LPollDataCon.go       |  11 +-
 .../knxnetip/readwrite/model/LPollDataReq.go       |  11 +-
 .../protocols/knxnetip/readwrite/model/LRawCon.go  |  11 +-
 .../protocols/knxnetip/readwrite/model/LRawInd.go  |  11 +-
 .../protocols/knxnetip/readwrite/model/LRawReq.go  |  11 +-
 .../knxnetip/readwrite/model/MACAddress.go         |  11 +-
 .../readwrite/model/MFuncPropCommandReq.go         |  11 +-
 .../knxnetip/readwrite/model/MFuncPropCon.go       |  11 +-
 .../readwrite/model/MFuncPropStateReadReq.go       |  11 +-
 .../knxnetip/readwrite/model/MPropInfoInd.go       |  11 +-
 .../knxnetip/readwrite/model/MPropReadCon.go       |  11 +-
 .../knxnetip/readwrite/model/MPropReadReq.go       |  11 +-
 .../knxnetip/readwrite/model/MPropWriteCon.go      |  11 +-
 .../knxnetip/readwrite/model/MPropWriteReq.go      |  11 +-
 .../knxnetip/readwrite/model/MResetInd.go          |  11 +-
 .../knxnetip/readwrite/model/MResetReq.go          |  11 +-
 .../model/ProjectInstallationIdentifier.go         |  11 +-
 .../knxnetip/readwrite/model/RelativeTimestamp.go  |  11 +-
 .../knxnetip/readwrite/model/RoutingIndication.go  |  11 +-
 .../knxnetip/readwrite/model/SearchRequest.go      |  11 +-
 .../knxnetip/readwrite/model/SearchResponse.go     |  11 +-
 .../protocols/knxnetip/readwrite/model/Status.go   |  14 +-
 .../readwrite/model/SupportedPhysicalMedia.go      |  14 +-
 .../knxnetip/readwrite/model/TDataConnectedInd.go  |  11 +-
 .../knxnetip/readwrite/model/TDataConnectedReq.go  |  11 +-
 .../knxnetip/readwrite/model/TDataIndividualInd.go |  11 +-
 .../knxnetip/readwrite/model/TDataIndividualReq.go |  11 +-
 .../knxnetip/readwrite/model/TunnelingRequest.go   |  11 +-
 .../readwrite/model/TunnelingRequestDataBlock.go   |  11 +-
 .../knxnetip/readwrite/model/TunnelingResponse.go  |  11 +-
 .../readwrite/model/TunnelingResponseDataBlock.go  |  11 +-
 .../knxnetip/readwrite/model/UnknownMessage.go     |  11 +-
 .../protocols/modbus/readwrite/model/DataItem.go   |  11 +-
 .../protocols/modbus/readwrite/model/DriverType.go |  14 +-
 .../modbus/readwrite/model/ModbusAsciiADU.go       |  11 +-
 .../modbus/readwrite/model/ModbusConstants.go      |  11 +-
 .../modbus/readwrite/model/ModbusDataType.go       |  14 +-
 .../ModbusDeviceInformationConformityLevel.go      |  14 +-
 .../model/ModbusDeviceInformationLevel.go          |  14 +-
 .../model/ModbusDeviceInformationMoreFollows.go    |  14 +-
 .../model/ModbusDeviceInformationObject.go         |  11 +-
 .../modbus/readwrite/model/ModbusErrorCode.go      |  14 +-
 .../readwrite/model/ModbusPDUDiagnosticRequest.go  |  11 +-
 .../readwrite/model/ModbusPDUDiagnosticResponse.go |  11 +-
 .../modbus/readwrite/model/ModbusPDUError.go       |  11 +-
 .../model/ModbusPDUGetComEventCounterRequest.go    |  11 +-
 .../model/ModbusPDUGetComEventCounterResponse.go   |  11 +-
 .../model/ModbusPDUGetComEventLogRequest.go        |  11 +-
 .../model/ModbusPDUGetComEventLogResponse.go       |  11 +-
 .../ModbusPDUMaskWriteHoldingRegisterRequest.go    |  11 +-
 .../ModbusPDUMaskWriteHoldingRegisterResponse.go   |  11 +-
 .../readwrite/model/ModbusPDUReadCoilsRequest.go   |  11 +-
 .../readwrite/model/ModbusPDUReadCoilsResponse.go  |  11 +-
 .../ModbusPDUReadDeviceIdentificationRequest.go    |  11 +-
 .../ModbusPDUReadDeviceIdentificationResponse.go   |  11 +-
 .../model/ModbusPDUReadDiscreteInputsRequest.go    |  11 +-
 .../model/ModbusPDUReadDiscreteInputsResponse.go   |  11 +-
 .../model/ModbusPDUReadExceptionStatusRequest.go   |  11 +-
 .../model/ModbusPDUReadExceptionStatusResponse.go  |  11 +-
 .../model/ModbusPDUReadFifoQueueRequest.go         |  11 +-
 .../model/ModbusPDUReadFifoQueueResponse.go        |  11 +-
 .../model/ModbusPDUReadFileRecordRequest.go        |  11 +-
 .../model/ModbusPDUReadFileRecordRequestItem.go    |  11 +-
 .../model/ModbusPDUReadFileRecordResponse.go       |  11 +-
 .../model/ModbusPDUReadFileRecordResponseItem.go   |  11 +-
 .../model/ModbusPDUReadHoldingRegistersRequest.go  |  11 +-
 .../model/ModbusPDUReadHoldingRegistersResponse.go |  11 +-
 .../model/ModbusPDUReadInputRegistersRequest.go    |  11 +-
 .../model/ModbusPDUReadInputRegistersResponse.go   |  11 +-
 ...sPDUReadWriteMultipleHoldingRegistersRequest.go |  11 +-
 ...PDUReadWriteMultipleHoldingRegistersResponse.go |  11 +-
 .../model/ModbusPDUReportServerIdRequest.go        |  11 +-
 .../model/ModbusPDUReportServerIdResponse.go       |  11 +-
 .../model/ModbusPDUWriteFileRecordRequest.go       |  11 +-
 .../model/ModbusPDUWriteFileRecordRequestItem.go   |  11 +-
 .../model/ModbusPDUWriteFileRecordResponse.go      |  11 +-
 .../model/ModbusPDUWriteFileRecordResponseItem.go  |  11 +-
 .../model/ModbusPDUWriteMultipleCoilsRequest.go    |  11 +-
 .../model/ModbusPDUWriteMultipleCoilsResponse.go   |  11 +-
 ...odbusPDUWriteMultipleHoldingRegistersRequest.go |  11 +-
 ...dbusPDUWriteMultipleHoldingRegistersResponse.go |  11 +-
 .../model/ModbusPDUWriteSingleCoilRequest.go       |  11 +-
 .../model/ModbusPDUWriteSingleCoilResponse.go      |  11 +-
 .../model/ModbusPDUWriteSingleRegisterRequest.go   |  11 +-
 .../model/ModbusPDUWriteSingleRegisterResponse.go  |  11 +-
 .../modbus/readwrite/model/ModbusRtuADU.go         |  11 +-
 .../modbus/readwrite/model/ModbusTcpADU.go         |  11 +-
 .../model/AlarmMessageAckObjectPushType.go         |  11 +-
 .../s7/readwrite/model/AlarmMessageAckPushType.go  |  11 +-
 .../readwrite/model/AlarmMessageAckResponseType.go |  11 +-
 .../s7/readwrite/model/AlarmMessageAckType.go      |  11 +-
 .../readwrite/model/AlarmMessageObjectAckType.go   |  11 +-
 .../readwrite/model/AlarmMessageObjectPushType.go  |  11 +-
 .../readwrite/model/AlarmMessageObjectQueryType.go |  11 +-
 .../s7/readwrite/model/AlarmMessagePushType.go     |  11 +-
 .../s7/readwrite/model/AlarmMessageQueryType.go    |  11 +-
 .../protocols/s7/readwrite/model/AlarmStateType.go |  14 +-
 plc4go/protocols/s7/readwrite/model/AlarmType.go   |  14 +-
 .../s7/readwrite/model/AssociatedValueType.go      |  11 +-
 .../readwrite/model/COTPPacketConnectionRequest.go |  11 +-
 .../model/COTPPacketConnectionResponse.go          |  11 +-
 .../protocols/s7/readwrite/model/COTPPacketData.go |  11 +-
 .../readwrite/model/COTPPacketDisconnectRequest.go |  11 +-
 .../model/COTPPacketDisconnectResponse.go          |  11 +-
 .../s7/readwrite/model/COTPPacketTpduError.go      |  11 +-
 .../s7/readwrite/model/COTPParameterCalledTsap.go  |  11 +-
 .../s7/readwrite/model/COTPParameterCallingTsap.go |  11 +-
 .../s7/readwrite/model/COTPParameterChecksum.go    |  11 +-
 ...COTPParameterDisconnectAdditionalInformation.go |  11 +-
 .../s7/readwrite/model/COTPParameterTpduSize.go    |  11 +-
 .../s7/readwrite/model/COTPProtocolClass.go        |  14 +-
 .../protocols/s7/readwrite/model/COTPTpduSize.go   |  14 +-
 .../s7/readwrite/model/CpuSubscribeEvents.go       |  14 +-
 plc4go/protocols/s7/readwrite/model/DataItem.go    |  11 +-
 .../s7/readwrite/model/DataTransportErrorCode.go   |  14 +-
 .../s7/readwrite/model/DataTransportSize.go        |  14 +-
 plc4go/protocols/s7/readwrite/model/DateAndTime.go |  11 +-
 plc4go/protocols/s7/readwrite/model/DeviceGroup.go |  14 +-
 plc4go/protocols/s7/readwrite/model/EventType.go   |  14 +-
 plc4go/protocols/s7/readwrite/model/MemoryArea.go  |  14 +-
 .../s7/readwrite/model/ModeTransitionType.go       |  14 +-
 plc4go/protocols/s7/readwrite/model/QueryType.go   |  14 +-
 .../protocols/s7/readwrite/model/S7AddressAny.go   |  11 +-
 .../s7/readwrite/model/S7MessageObjectRequest.go   |  11 +-
 .../s7/readwrite/model/S7MessageObjectResponse.go  |  11 +-
 .../s7/readwrite/model/S7MessageRequest.go         |  11 +-
 .../s7/readwrite/model/S7MessageResponse.go        |  11 +-
 .../s7/readwrite/model/S7MessageResponseData.go    |  11 +-
 .../s7/readwrite/model/S7MessageUserData.go        |  11 +-
 .../readwrite/model/S7ParameterModeTransition.go   |  11 +-
 .../readwrite/model/S7ParameterReadVarRequest.go   |  11 +-
 .../readwrite/model/S7ParameterReadVarResponse.go  |  11 +-
 .../model/S7ParameterSetupCommunication.go         |  11 +-
 .../s7/readwrite/model/S7ParameterUserData.go      |  11 +-
 .../model/S7ParameterUserDataItemCPUFunctions.go   |  11 +-
 .../readwrite/model/S7ParameterWriteVarRequest.go  |  11 +-
 .../readwrite/model/S7ParameterWriteVarResponse.go |  11 +-
 .../s7/readwrite/model/S7PayloadAlarm8.go          |  11 +-
 .../s7/readwrite/model/S7PayloadAlarmAckInd.go     |  11 +-
 .../s7/readwrite/model/S7PayloadAlarmS.go          |  11 +-
 .../s7/readwrite/model/S7PayloadAlarmSC.go         |  11 +-
 .../s7/readwrite/model/S7PayloadAlarmSQ.go         |  11 +-
 .../readwrite/model/S7PayloadDiagnosticMessage.go  |  11 +-
 .../s7/readwrite/model/S7PayloadNotify.go          |  11 +-
 .../s7/readwrite/model/S7PayloadNotify8.go         |  11 +-
 .../s7/readwrite/model/S7PayloadReadVarResponse.go |  11 +-
 .../s7/readwrite/model/S7PayloadUserData.go        |  11 +-
 .../S7PayloadUserDataItemCpuFunctionAlarmAck.go    |  11 +-
 ...yloadUserDataItemCpuFunctionAlarmAckResponse.go |  11 +-
 .../S7PayloadUserDataItemCpuFunctionAlarmQuery.go  |  11 +-
 ...oadUserDataItemCpuFunctionAlarmQueryResponse.go |  11 +-
 ...ayloadUserDataItemCpuFunctionMsgSubscription.go |  11 +-
 ...aItemCpuFunctionMsgSubscriptionAlarmResponse.go |  11 +-
 ...erDataItemCpuFunctionMsgSubscriptionResponse.go |  11 +-
 ...ataItemCpuFunctionMsgSubscriptionSysResponse.go |  11 +-
 ...PayloadUserDataItemCpuFunctionReadSzlRequest.go |  11 +-
 ...ayloadUserDataItemCpuFunctionReadSzlResponse.go |  11 +-
 .../s7/readwrite/model/S7PayloadWriteVarRequest.go |  11 +-
 .../readwrite/model/S7PayloadWriteVarResponse.go   |  11 +-
 .../s7/readwrite/model/S7VarPayloadDataItem.go     |  11 +-
 .../s7/readwrite/model/S7VarPayloadStatusItem.go   |  11 +-
 .../model/S7VarRequestParameterItemAddress.go      |  11 +-
 plc4go/protocols/s7/readwrite/model/State.go       |  11 +-
 .../protocols/s7/readwrite/model/SyntaxIdType.go   |  14 +-
 .../s7/readwrite/model/SzlDataTreeItem.go          |  11 +-
 plc4go/protocols/s7/readwrite/model/SzlId.go       |  11 +-
 .../s7/readwrite/model/SzlModuleTypeClass.go       |  14 +-
 plc4go/protocols/s7/readwrite/model/SzlSublist.go  |  14 +-
 plc4go/protocols/s7/readwrite/model/TPKTPacket.go  |  11 +-
 .../protocols/s7/readwrite/model/TransportSize.go  |  14 +-
 .../simulated/readwrite/model/DataItem.go          |  11 +-
 .../protocols/simulated/readwrite/model/Dummy.go   |  11 +-
 .../readwrite/model/SimulatedDataTypeSizes.go      |  14 +-
 plc4go/spi/Message.go                              |   2 +-
 plc4go/spi/model/DefaultPlcBrowseEvent_plc4xgen.go |  15 +-
 .../model/DefaultPlcBrowseQueryResult_plc4xgen.go  |  15 +-
 .../DefaultPlcBrowseRequestResult_plc4xgen.go      |  15 +-
 .../spi/model/DefaultPlcBrowseRequest_plc4xgen.go  |  15 +-
 plc4go/spi/model/DefaultPlcBrowseResponse.go       |  15 +-
 .../DefaultPlcConsumerRegistration_plc4xgen.go     |  15 +-
 .../model/DefaultPlcReadRequestBuilder_plc4xgen.go |  19 +-
 .../model/DefaultPlcReadRequestResult_plc4xgen.go  |  15 +-
 plc4go/spi/model/DefaultPlcReadRequest_plc4xgen.go |  17 +-
 .../spi/model/DefaultPlcReadResponse_plc4xgen.go   |  17 +-
 .../model/DefaultPlcSubscriptionEvent_plc4xgen.go  |  19 +-
 .../model/DefaultPlcSubscriptionHandle_plc4xgen.go |  13 +-
 ...efaultPlcSubscriptionRequestBuilder_plc4xgen.go |  21 +-
 ...DefaultPlcSubscriptionRequestResult_plc4xgen.go |  15 +-
 .../DefaultPlcSubscriptionRequest_plc4xgen.go      |  17 +-
 .../DefaultPlcSubscriptionResponse_plc4xgen.go     |  17 +-
 ...faultPlcUnsubscriptionRequestResult_plc4xgen.go |  15 +-
 .../DefaultPlcWriteRequestBuilder_plc4xgen.go      |  21 +-
 .../model/DefaultPlcWriteRequestResult_plc4xgen.go |  15 +-
 .../spi/model/DefaultPlcWriteRequest_plc4xgen.go   |  19 +-
 .../spi/model/DefaultPlcWriteResponse_plc4xgen.go  |  15 +-
 plc4go/spi/model/DefaultRequest_plc4xgen.go        |  13 +-
 plc4go/spi/model/DefaultResponse_plc4xgen.go       |  13 +-
 plc4go/spi/testutils/DriverTestRunner.go           |   8 +-
 plc4go/spi/testutils/ParserSerializerTestRunner.go |   4 +-
 plc4go/spi/utils/Serializable.go                   |   4 +-
 plc4go/spi/utils/WriteBufferBoxBased.go            |   4 +-
 plc4go/spi/utils/WriteBufferByteBased.go           |   2 +-
 plc4go/spi/utils/WriteBufferJsonBased.go           |   2 +-
 plc4go/spi/utils/WriteBufferXmlBased.go            |   2 +-
 plc4go/spi/values/BINT.go                          |  11 +-
 plc4go/spi/values/BOOL.go                          |  11 +-
 plc4go/spi/values/BREAL.go                         |  16 +-
 plc4go/spi/values/BYTE.go                          |  11 +-
 plc4go/spi/values/CHAR.go                          |  11 +-
 plc4go/spi/values/DATE.go                          |  16 +-
 plc4go/spi/values/DATE_AND_TIME.go                 |  16 +-
 plc4go/spi/values/DINT.go                          |  16 +-
 plc4go/spi/values/DWORD.go                         |  16 +-
 plc4go/spi/values/INT.go                           |  16 +-
 plc4go/spi/values/LINT.go                          |  16 +-
 plc4go/spi/values/LREAL.go                         |  16 +-
 plc4go/spi/values/LTIME.go                         |  16 +-
 plc4go/spi/values/LWORD.go                         |  16 +-
 plc4go/spi/values/PlcBitString.go                  |   6 +-
 plc4go/spi/values/PlcByteArray.go                  |  11 +-
 plc4go/spi/values/PlcList.go                       |  19 +-
 plc4go/spi/values/PlcStruct.go                     |  13 +-
 plc4go/spi/values/REAL.go                          |  16 +-
 plc4go/spi/values/SINT.go                          |  16 +-
 plc4go/spi/values/STRING.go                        |  16 +-
 plc4go/spi/values/TIME.go                          |  16 +-
 plc4go/spi/values/TIME_OF_DAY.go                   |  16 +-
 plc4go/spi/values/UDINT.go                         |  16 +-
 plc4go/spi/values/UINT.go                          |  16 +-
 plc4go/spi/values/ULINT.go                         |  16 +-
 plc4go/spi/values/USINT.go                         |  16 +-
 plc4go/spi/values/WCHAR.go                         |  16 +-
 plc4go/spi/values/WORD.go                          |  16 +-
 plc4go/spi/values/WSTRING.go                       |  16 +-
 plc4go/spi/values/WriteBufferPlcValueBased.go      |   2 +-
 plc4go/tools/plc4xgenerator/gen.go                 |  17 +-
 .../internal/bacnetanalyzer/analyzer.go            |   6 +-
 .../internal/cbusanalyzer/analyzer.go              |   6 +-
 2233 files changed, 23282 insertions(+), 2671 deletions(-)

diff --git a/plc4go/internal/ads/Field.go b/plc4go/internal/ads/Field.go
index 412a6015c..d3562407e 100644
--- a/plc4go/internal/ads/Field.go
+++ b/plc4go/internal/ads/Field.go
@@ -20,6 +20,7 @@
 package ads
 
 import (
+	"encoding/binary"
 	"encoding/xml"
 	"fmt"
 	"github.com/apache/plc4x/plc4go/pkg/api/model"
@@ -107,7 +108,15 @@ func castToDirectAdsFieldFromPlcField(plcField model.PlcField) (DirectPlcField,
 	return DirectPlcField{}, errors.Errorf("couldn't %T cast to DirectPlcField", plcField)
 }
 
-func (m DirectPlcField) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m DirectPlcField) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian))
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m DirectPlcField) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	if err := writeBuffer.PushContext(m.FieldType.GetName()); err != nil {
 		return err
 	}
@@ -186,7 +195,15 @@ func castToSymbolicPlcFieldFromPlcField(plcField model.PlcField) (SymbolicPlcFie
 	return SymbolicPlcField{}, errors.Errorf("couldn't cast %T to SymbolicPlcField", plcField)
 }
 
-func (m SymbolicPlcField) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m SymbolicPlcField) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian))
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m SymbolicPlcField) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	if err := writeBuffer.PushContext(m.FieldType.GetName()); err != nil {
 		return err
 	}
diff --git a/plc4go/internal/ads/MessageCodec.go b/plc4go/internal/ads/MessageCodec.go
index a5574a20d..605583f2b 100644
--- a/plc4go/internal/ads/MessageCodec.go
+++ b/plc4go/internal/ads/MessageCodec.go
@@ -50,7 +50,7 @@ func (m *MessageCodec) Send(message spi.Message) error {
 	tcpPaket := message.(model.AmsTCPPacket)
 	// Serialize the request
 	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.LittleEndian))
-	err := tcpPaket.Serialize(wb)
+	err := tcpPaket.SerializeWithWriteBuffer(wb)
 	if err != nil {
 		return errors.Wrap(err, "error serializing request")
 	}
diff --git a/plc4go/internal/ads/Writer.go b/plc4go/internal/ads/Writer.go
index 9af8af02b..b5c513f86 100644
--- a/plc4go/internal/ads/Writer.go
+++ b/plc4go/internal/ads/Writer.go
@@ -107,7 +107,7 @@ func (m *Writer) Write(ctx context.Context, writeRequest model.PlcWriteRequest)
 		// Get the value from the request and serialize it to a byte array
 		value := writeRequest.GetValue(fieldName)
 		io := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.LittleEndian))
-		if err := readWriteModel.DataItemSerialize(io, value, adsField.Datatype.PlcValueType(), adsField.StringLength); err != nil {
+		if err := readWriteModel.DataItemSerializeWithWriteBuffer(io, value, adsField.Datatype.PlcValueType(), adsField.StringLength); err != nil {
 			result <- &plc4goModel.DefaultPlcWriteRequestResult{
 				Request:  writeRequest,
 				Response: nil,
diff --git a/plc4go/internal/bacnetip/Discoverer.go b/plc4go/internal/bacnetip/Discoverer.go
index a8228a743..e198de6c4 100644
--- a/plc4go/internal/bacnetip/Discoverer.go
+++ b/plc4go/internal/bacnetip/Discoverer.go
@@ -102,11 +102,11 @@ func broadcastAndDiscover(ctx context.Context, communicationChannels []communica
 			bvlc := driverModel.NewBVLCOriginalUnicastNPDU(npdu, 0)
 
 			// Send the search request.
-			wbbb := utils.NewWriteBufferByteBased()
-			if err := bvlc.Serialize(wbbb); err != nil {
-				panic(err)
+			theBytes, err := bvlc.Serialize()
+			if err != nil {
+				return nil, err
 			}
-			if _, err := communicationChannelInstance.broadcastConnection.WriteTo(wbbb.GetBytes(), communicationChannelInstance.broadcastConnection.LocalAddr()); err != nil {
+			if _, err := communicationChannelInstance.broadcastConnection.WriteTo(theBytes, communicationChannelInstance.broadcastConnection.LocalAddr()); err != nil {
 				log.Debug().Err(err).Msg("Error sending broadcast")
 			}
 		}
@@ -146,11 +146,11 @@ func broadcastAndDiscover(ctx context.Context, communicationChannels []communica
 			bvlc := driverModel.NewBVLCOriginalUnicastNPDU(npdu, 0)
 
 			// Send the search request.
-			wbbb := utils.NewWriteBufferByteBased()
-			if err := bvlc.Serialize(wbbb); err != nil {
-				panic(err)
+			theBytes, err := bvlc.Serialize()
+			if err != nil {
+				return nil, err
 			}
-			if _, err := communicationChannelInstance.broadcastConnection.WriteTo(wbbb.GetBytes(), communicationChannelInstance.broadcastConnection.LocalAddr()); err != nil {
+			if _, err := communicationChannelInstance.broadcastConnection.WriteTo(theBytes, communicationChannelInstance.broadcastConnection.LocalAddr()); err != nil {
 				log.Debug().Err(err).Msg("Error sending broadcast")
 			}
 		}
diff --git a/plc4go/internal/bacnetip/Field.go b/plc4go/internal/bacnetip/Field.go
index 82821d068..47c2163e3 100644
--- a/plc4go/internal/bacnetip/Field.go
+++ b/plc4go/internal/bacnetip/Field.go
@@ -20,6 +20,7 @@
 package bacnetip
 
 import (
+	"encoding/binary"
 	"fmt"
 	readWriteModel "github.com/apache/plc4x/plc4go/protocols/bacnetip/readwrite/model"
 	"github.com/apache/plc4x/plc4go/spi/utils"
@@ -120,7 +121,15 @@ func (m plcField) GetProperties() []property {
 	return m.Properties
 }
 
-func (m plcField) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m plcField) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian))
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m plcField) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	if err := writeBuffer.PushContext("BacNetPlcField"); err != nil {
 		return err
 	}
diff --git a/plc4go/internal/bacnetip/MessageCodec.go b/plc4go/internal/bacnetip/MessageCodec.go
index beba22961..b7e5d8cda 100644
--- a/plc4go/internal/bacnetip/MessageCodec.go
+++ b/plc4go/internal/bacnetip/MessageCodec.go
@@ -48,14 +48,13 @@ func (m *MessageCodec) Send(message spi.Message) error {
 	// Cast the message to the correct type of struct
 	bvlcPacket := message.(model.BVLC)
 	// Serialize the request
-	wb := utils.NewWriteBufferByteBased()
-	err := bvlcPacket.Serialize(wb)
+	theBytes, err := bvlcPacket.Serialize()
 	if err != nil {
 		return errors.Wrap(err, "error serializing request")
 	}
 
 	// Send it to the PLC
-	err = m.GetTransportInstance().Write(wb.GetBytes())
+	err = m.GetTransportInstance().Write(theBytes)
 	if err != nil {
 		return errors.Wrap(err, "error sending request")
 	}
diff --git a/plc4go/internal/cbus/Field.go b/plc4go/internal/cbus/Field.go
index d8a220dc8..911b7b992 100644
--- a/plc4go/internal/cbus/Field.go
+++ b/plc4go/internal/cbus/Field.go
@@ -20,6 +20,7 @@
 package cbus
 
 import (
+	"encoding/binary"
 	"fmt"
 	"github.com/apache/plc4x/plc4go/pkg/api/model"
 	readWriteModel "github.com/apache/plc4x/plc4go/protocols/cbus/readwrite/model"
@@ -287,7 +288,15 @@ func (s statusField) GetQuantity() uint16 {
 	return s.numElements
 }
 
-func (s statusField) Serialize(writeBuffer utils.WriteBuffer) error {
+func (s statusField) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian))
+	if err := s.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (s statusField) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	if err := writeBuffer.PushContext(s.fieldType.GetName()); err != nil {
 		return err
 	}
@@ -322,9 +331,17 @@ func (c calField) GetUnitAddress() readWriteModel.UnitAddress {
 	return c.unitAddress
 }
 
-func (c calField) Serialize(writeBuffer utils.WriteBuffer) error {
+func (c calField) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian))
+	if err := c.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (c calField) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	if unitAddress := c.unitAddress; unitAddress != nil {
-		return c.unitAddress.Serialize(writeBuffer)
+		return c.unitAddress.SerializeWithWriteBuffer(writeBuffer)
 	}
 	return nil
 }
@@ -357,16 +374,24 @@ func (c calRecallField) GetQuantity() uint16 {
 	return c.numElements
 }
 
-func (c calRecallField) Serialize(writeBuffer utils.WriteBuffer) error {
+func (c calRecallField) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian))
+	if err := c.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (c calRecallField) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	if err := writeBuffer.PushContext(c.fieldType.GetName()); err != nil {
 		return err
 	}
 
-	if err := c.calField.Serialize(writeBuffer); err != nil {
+	if err := c.calField.SerializeWithWriteBuffer(writeBuffer); err != nil {
 		return err
 	}
 
-	if err := c.parameter.Serialize(writeBuffer); err != nil {
+	if err := c.parameter.SerializeWithWriteBuffer(writeBuffer); err != nil {
 		return err
 	}
 
@@ -404,16 +429,24 @@ func (c calIdentifyField) GetQuantity() uint16 {
 	return c.numElements
 }
 
-func (c calIdentifyField) Serialize(writeBuffer utils.WriteBuffer) error {
+func (c calIdentifyField) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian))
+	if err := c.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (c calIdentifyField) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	if err := writeBuffer.PushContext(c.fieldType.GetName()); err != nil {
 		return err
 	}
 
-	if err := c.calField.Serialize(writeBuffer); err != nil {
+	if err := c.calField.SerializeWithWriteBuffer(writeBuffer); err != nil {
 		return err
 	}
 
-	if err := c.attribute.Serialize(writeBuffer); err != nil {
+	if err := c.attribute.SerializeWithWriteBuffer(writeBuffer); err != nil {
 		return err
 	}
 
@@ -451,16 +484,24 @@ func (c calGetstatusField) GetQuantity() uint16 {
 	return c.numElements
 }
 
-func (c calGetstatusField) Serialize(writeBuffer utils.WriteBuffer) error {
+func (c calGetstatusField) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian))
+	if err := c.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (c calGetstatusField) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	if err := writeBuffer.PushContext(c.fieldType.GetName()); err != nil {
 		return err
 	}
 
-	if err := c.calField.Serialize(writeBuffer); err != nil {
+	if err := c.calField.SerializeWithWriteBuffer(writeBuffer); err != nil {
 		return err
 	}
 
-	if err := c.parameter.Serialize(writeBuffer); err != nil {
+	if err := c.parameter.SerializeWithWriteBuffer(writeBuffer); err != nil {
 		return err
 	}
 
@@ -502,12 +543,20 @@ func (s salField) GetQuantity() uint16 {
 	return s.numElements
 }
 
-func (s salField) Serialize(writeBuffer utils.WriteBuffer) error {
+func (s salField) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian))
+	if err := s.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (s salField) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	if err := writeBuffer.PushContext(s.fieldType.GetName()); err != nil {
 		return err
 	}
 
-	if err := s.application.Serialize(writeBuffer); err != nil {
+	if err := s.application.SerializeWithWriteBuffer(writeBuffer); err != nil {
 		return err
 	}
 
@@ -557,18 +606,26 @@ func (s salMonitorField) GetApplication() *readWriteModel.ApplicationIdContainer
 	return s.application
 }
 
-func (s salMonitorField) Serialize(writeBuffer utils.WriteBuffer) error {
+func (s salMonitorField) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian))
+	if err := s.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (s salMonitorField) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	if err := writeBuffer.PushContext(s.fieldType.GetName()); err != nil {
 		return err
 	}
 
 	if unitAddress := s.unitAddress; unitAddress != nil {
-		if err := (*unitAddress).Serialize(writeBuffer); err != nil {
+		if err := (*unitAddress).SerializeWithWriteBuffer(writeBuffer); err != nil {
 			return err
 		}
 	}
 	if application := s.application; application != nil {
-		if err := application.Serialize(writeBuffer); err != nil {
+		if err := application.SerializeWithWriteBuffer(writeBuffer); err != nil {
 			return err
 		}
 	}
@@ -615,18 +672,26 @@ func (m mmiMonitorField) GetApplication() *readWriteModel.ApplicationIdContainer
 	return m.application
 }
 
-func (m mmiMonitorField) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m mmiMonitorField) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian))
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m mmiMonitorField) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	if err := writeBuffer.PushContext(m.fieldType.GetName()); err != nil {
 		return err
 	}
 
 	if unitAddress := m.unitAddress; unitAddress != nil {
-		if err := (*unitAddress).Serialize(writeBuffer); err != nil {
+		if err := (*unitAddress).SerializeWithWriteBuffer(writeBuffer); err != nil {
 			return err
 		}
 	}
 	if application := m.application; application != nil {
-		if err := application.Serialize(writeBuffer); err != nil {
+		if err := application.SerializeWithWriteBuffer(writeBuffer); err != nil {
 			return err
 		}
 	}
@@ -673,19 +738,27 @@ func (u unitInfoField) GetQuantity() uint16 {
 	return u.numElements
 }
 
-func (u unitInfoField) Serialize(writeBuffer utils.WriteBuffer) error {
+func (u unitInfoField) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian))
+	if err := u.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (u unitInfoField) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	if err := writeBuffer.PushContext(u.fieldType.GetName()); err != nil {
 		return err
 	}
 
 	if unitAddress := u.unitAddress; unitAddress != nil {
-		if err := (*unitAddress).Serialize(writeBuffer); err != nil {
+		if err := (*unitAddress).SerializeWithWriteBuffer(writeBuffer); err != nil {
 			return err
 		}
 	}
 
 	if attribute := u.attribute; attribute != nil {
-		if err := (*attribute).Serialize(writeBuffer); err != nil {
+		if err := (*attribute).SerializeWithWriteBuffer(writeBuffer); err != nil {
 			return err
 		}
 	}
diff --git a/plc4go/internal/cbus/MessageCodec.go b/plc4go/internal/cbus/MessageCodec.go
index 7b07c3e4e..c31b99779 100644
--- a/plc4go/internal/cbus/MessageCodec.go
+++ b/plc4go/internal/cbus/MessageCodec.go
@@ -70,14 +70,13 @@ func (m *MessageCodec) Send(message spi.Message) error {
 	log.Debug().Msgf("Created request context\n%s", m.requestContext)
 
 	// Serialize the request
-	wb := utils.NewWriteBufferByteBased()
-	err := cbusMessage.Serialize(wb)
+	theBytes, err := cbusMessage.Serialize()
 	if err != nil {
 		return errors.Wrap(err, "error serializing request")
 	}
 
 	// Send it to the PLC
-	err = m.GetTransportInstance().Write(wb.GetBytes())
+	err = m.GetTransportInstance().Write(theBytes)
 	if err != nil {
 		return errors.Wrap(err, "error sending request")
 	}
diff --git a/plc4go/internal/cbus/Reader.go b/plc4go/internal/cbus/Reader.go
index 661c9d555..2a9fad9eb 100644
--- a/plc4go/internal/cbus/Reader.go
+++ b/plc4go/internal/cbus/Reader.go
@@ -379,7 +379,7 @@ func (m *Reader) Read(ctx context.Context, readRequest apiModel.PlcReadRequest)
 							}
 						default:
 							wbpcb := spiValues.NewWriteBufferPlcValueBased()
-							if err := calData.Serialize(wbpcb); err != nil {
+							if err := calData.SerializeWithWriteBuffer(wbpcb); err != nil {
 								log.Warn().Err(err).Msgf("Unmapped cal data type %T. Returning raw to string", calData)
 								addPlcValue(fieldNameCopy, spiValues.NewPlcSTRING(fmt.Sprintf("%s", calData)))
 							} else {
diff --git a/plc4go/internal/cbus/Subscriber.go b/plc4go/internal/cbus/Subscriber.go
index dcf2e7dff..1c2b269f0 100644
--- a/plc4go/internal/cbus/Subscriber.go
+++ b/plc4go/internal/cbus/Subscriber.go
@@ -345,7 +345,7 @@ func (m *Subscriber) handleMonitoredSal(sal readWriteModel.MonitoredSAL) bool {
 			address[fieldName] = fmt.Sprintf("sal/%s/%s", applicationString, commandType)
 
 			rbvb := spiValues.NewWriteBufferPlcValueBased()
-			err := salData.Serialize(rbvb)
+			err := salData.SerializeWithWriteBuffer(rbvb)
 			if err != nil {
 				log.Error().Err(err).Msg("Error serializing to plc value... just returning it as string")
 				plcValues[fieldName] = spiValues.NewPlcSTRING(fmt.Sprintf("%s", salData))
diff --git a/plc4go/internal/eip/Field.go b/plc4go/internal/eip/Field.go
index 718293a94..58509b27b 100644
--- a/plc4go/internal/eip/Field.go
+++ b/plc4go/internal/eip/Field.go
@@ -20,6 +20,7 @@
 package eip
 
 import (
+	"encoding/binary"
 	readWrite "github.com/apache/plc4x/plc4go/protocols/eip/readwrite/model"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 )
@@ -68,7 +69,15 @@ func (m PlcField) GetElementNb() uint16 {
 	return m.ElementNb
 }
 
-func (m PlcField) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m PlcField) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian))
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m PlcField) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	if err := writeBuffer.PushContext("EipField"); err != nil {
 		return err
 	}
diff --git a/plc4go/internal/eip/MessageCodec.go b/plc4go/internal/eip/MessageCodec.go
index 4e701cf1f..0d6398e26 100644
--- a/plc4go/internal/eip/MessageCodec.go
+++ b/plc4go/internal/eip/MessageCodec.go
@@ -20,7 +20,6 @@
 package eip
 
 import (
-	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/protocols/eip/readwrite/model"
 	"github.com/apache/plc4x/plc4go/spi"
 	"github.com/apache/plc4x/plc4go/spi/default"
@@ -49,14 +48,13 @@ func (m *MessageCodec) Send(message spi.Message) error {
 	// Cast the message to the correct type of struct
 	eipPacket := message.(model.EipPacket)
 	// Serialize the request
-	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.LittleEndian))
-	err := eipPacket.Serialize(wb)
+	theBytes, err := eipPacket.Serialize()
 	if err != nil {
 		return errors.Wrap(err, "error serializing request")
 	}
 
 	// Send it to the PLC
-	err = m.GetTransportInstance().Write(wb.GetBytes())
+	err = m.GetTransportInstance().Write(theBytes)
 	if err != nil {
 		return errors.Wrap(err, "error sending request")
 	}
diff --git a/plc4go/internal/knxnetip/MessageCodec.go b/plc4go/internal/knxnetip/MessageCodec.go
index 0a7463bc3..ae0cab944 100644
--- a/plc4go/internal/knxnetip/MessageCodec.go
+++ b/plc4go/internal/knxnetip/MessageCodec.go
@@ -56,14 +56,13 @@ func (m *MessageCodec) Send(message spi.Message) error {
 	// Cast the message to the correct type of struct
 	knxMessage := message.(model.KnxNetIpMessage)
 	// Serialize the request
-	wb := utils.NewWriteBufferByteBased()
-	err := knxMessage.Serialize(wb)
+	theBytes, err := knxMessage.Serialize()
 	if err != nil {
 		return errors.Wrap(err, "error serializing request")
 	}
 
 	// Send it to the PLC
-	err = m.GetTransportInstance().Write(wb.GetBytes())
+	err = m.GetTransportInstance().Write(theBytes)
 	if err != nil {
 		return errors.Wrap(err, "error sending request ")
 	}
diff --git a/plc4go/internal/knxnetip/Writer.go b/plc4go/internal/knxnetip/Writer.go
index 9ff879b68..b2fcf5f0a 100644
--- a/plc4go/internal/knxnetip/Writer.go
+++ b/plc4go/internal/knxnetip/Writer.go
@@ -26,7 +26,6 @@ import (
 	readWriteModel "github.com/apache/plc4x/plc4go/protocols/knxnetip/readwrite/model"
 	"github.com/apache/plc4x/plc4go/spi"
 	plc4goModel "github.com/apache/plc4x/plc4go/spi/model"
-	"github.com/apache/plc4x/plc4go/spi/utils"
 )
 
 type Writer struct {
@@ -60,9 +59,9 @@ func (m Writer) Write(ctx context.Context, writeRequest model.PlcWriteRequest) <
 
 		// Get the value from the request and serialize it to a byte array
 		value := writeRequest.GetValue(fieldName)
-		io := utils.NewWriteBufferByteBased()
 		fieldType, _ := readWriteModel.KnxDatapointTypeByName(knxNetIpField.GetTypeName())
-		if err := readWriteModel.KnxDatapointSerialize(io, value, fieldType); err != nil {
+		// TODO: why do we ignore the bytes here?
+		if _, err := readWriteModel.KnxDatapointSerialize(value, fieldType); err != nil {
 			result <- &plc4goModel.DefaultPlcWriteRequestResult{
 				Request:  writeRequest,
 				Response: nil,
diff --git a/plc4go/internal/modbus/Field.go b/plc4go/internal/modbus/Field.go
index e27592f04..f4206c0c0 100644
--- a/plc4go/internal/modbus/Field.go
+++ b/plc4go/internal/modbus/Field.go
@@ -20,6 +20,7 @@
 package modbus
 
 import (
+	"encoding/binary"
 	"fmt"
 	"github.com/apache/plc4x/plc4go/pkg/api/model"
 	model2 "github.com/apache/plc4x/plc4go/protocols/modbus/readwrite/model"
@@ -89,7 +90,15 @@ func CastToModbusFieldFromPlcField(plcField model.PlcField) (PlcField, error) {
 	return PlcField{}, errors.New("couldn't cast to ModbusPlcField")
 }
 
-func (m PlcField) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m PlcField) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian))
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m PlcField) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	if err := writeBuffer.PushContext(m.FieldType.GetName()); err != nil {
 		return err
 	}
diff --git a/plc4go/internal/modbus/MessageCodec.go b/plc4go/internal/modbus/MessageCodec.go
index 0973a6194..6d5db2333 100644
--- a/plc4go/internal/modbus/MessageCodec.go
+++ b/plc4go/internal/modbus/MessageCodec.go
@@ -51,14 +51,13 @@ func (m *MessageCodec) Send(message spi.Message) error {
 	// Cast the message to the correct type of struct
 	tcpAdu := message.(model.ModbusTcpADU)
 	// Serialize the request
-	wb := utils.NewWriteBufferByteBased()
-	err := tcpAdu.Serialize(wb)
+	theBytes, err := tcpAdu.Serialize()
 	if err != nil {
 		return errors.Wrap(err, "error serializing request")
 	}
 
 	// Send it to the PLC
-	err = m.GetTransportInstance().Write(wb.GetBytes())
+	err = m.GetTransportInstance().Write(theBytes)
 	if err != nil {
 		return errors.Wrap(err, "error sending request")
 	}
diff --git a/plc4go/internal/modbus/Writer.go b/plc4go/internal/modbus/Writer.go
index 3d949d238..ed6c79a7c 100644
--- a/plc4go/internal/modbus/Writer.go
+++ b/plc4go/internal/modbus/Writer.go
@@ -25,7 +25,6 @@ import (
 	readWriteModel "github.com/apache/plc4x/plc4go/protocols/modbus/readwrite/model"
 	"github.com/apache/plc4x/plc4go/spi"
 	plc4goModel "github.com/apache/plc4x/plc4go/spi/model"
-	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 	"github.com/rs/zerolog/log"
 	"math"
@@ -76,8 +75,8 @@ func (m Writer) Write(ctx context.Context, writeRequest model.PlcWriteRequest) <
 
 		// Get the value from the request and serialize it to a byte array
 		value := writeRequest.GetValue(fieldName)
-		io := utils.NewWriteBufferByteBased()
-		if err := readWriteModel.DataItemSerialize(io, value, modbusField.Datatype, modbusField.Quantity); err != nil {
+		data, err := readWriteModel.DataItemSerialize(value, modbusField.Datatype, modbusField.Quantity)
+		if err != nil {
 			result <- &plc4goModel.DefaultPlcWriteRequestResult{
 				Request:  writeRequest,
 				Response: nil,
@@ -85,7 +84,6 @@ func (m Writer) Write(ctx context.Context, writeRequest model.PlcWriteRequest) <
 			}
 			return
 		}
-		data := io.GetBytes()
 
 		// Calculate the number of words needed to send the data
 		numWords := uint16(math.Ceil(float64(len(data)) / 2))
diff --git a/plc4go/internal/s7/Field.go b/plc4go/internal/s7/Field.go
index a1d34a569..662036319 100644
--- a/plc4go/internal/s7/Field.go
+++ b/plc4go/internal/s7/Field.go
@@ -20,6 +20,7 @@
 package s7
 
 import (
+	"encoding/binary"
 	"fmt"
 	"github.com/apache/plc4x/plc4go/pkg/api/model"
 	readWriteModel "github.com/apache/plc4x/plc4go/protocols/s7/readwrite/model"
@@ -114,8 +115,15 @@ func (m plcField) GetBitOffset() uint8 {
 func (m plcField) GetQuantity() uint16 {
 	return m.NumElements
 }
+func (m plcField) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian))
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
 
-func (m plcField) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m plcField) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	if err := writeBuffer.PushContext(m.FieldType.GetName()); err != nil {
 		return err
 	}
@@ -145,7 +153,15 @@ func (m plcField) Serialize(writeBuffer utils.WriteBuffer) error {
 	return nil
 }
 
-func (m PlcStringField) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m PlcStringField) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian))
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m PlcStringField) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	if err := writeBuffer.PushContext(m.FieldType.GetName()); err != nil {
 		return err
 	}
diff --git a/plc4go/internal/s7/MessageCodec.go b/plc4go/internal/s7/MessageCodec.go
index 2f0cde484..8f5cd2677 100644
--- a/plc4go/internal/s7/MessageCodec.go
+++ b/plc4go/internal/s7/MessageCodec.go
@@ -48,14 +48,13 @@ func (m *MessageCodec) Send(message spi.Message) error {
 	// Cast the message to the correct type of struct
 	tpktPacket := message.(model.TPKTPacketExactly)
 	// Serialize the request
-	wb := utils.NewWriteBufferByteBased()
-	err := tpktPacket.Serialize(wb)
+	theBytes, err := tpktPacket.Serialize()
 	if err != nil {
 		return errors.Wrap(err, "error serializing request")
 	}
 
 	// Send it to the PLC
-	err = m.GetTransportInstance().Write(wb.GetBytes())
+	err = m.GetTransportInstance().Write(theBytes)
 	if err != nil {
 		return errors.Wrap(err, "error sending request")
 	}
diff --git a/plc4go/internal/s7/Writer.go b/plc4go/internal/s7/Writer.go
index 40a69b73b..0798ffaf6 100644
--- a/plc4go/internal/s7/Writer.go
+++ b/plc4go/internal/s7/Writer.go
@@ -26,7 +26,6 @@ import (
 	readWriteModel "github.com/apache/plc4x/plc4go/protocols/s7/readwrite/model"
 	"github.com/apache/plc4x/plc4go/spi"
 	plc4goModel "github.com/apache/plc4x/plc4go/spi/model"
-	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 	"github.com/rs/zerolog/log"
 	"time"
@@ -231,12 +230,10 @@ func serializePlcValue(field model.PlcField, plcValue values.PlcValue) (readWrit
 	if s7StringField, ok := field.(*PlcStringField); ok {
 		stringLength = s7StringField.stringLength
 	}
-	io := utils.NewWriteBufferByteBased()
-	err := readWriteModel.DataItemSerialize(io, plcValue, s7Field.GetDataType().DataProtocolId(), int32(stringLength))
+	data, err := readWriteModel.DataItemSerialize(plcValue, s7Field.GetDataType().DataProtocolId(), int32(stringLength))
 	if err != nil {
 		return nil, errors.Wrapf(err, "Error serializing field item of type: '%v'", s7Field.GetDataType())
 	}
-	data := io.GetBytes()
 	return readWriteModel.NewS7VarPayloadDataItem(
 		readWriteModel.DataTransportErrorCode_OK,
 		transportSize, data,
diff --git a/plc4go/internal/s7/s7Io_test.go b/plc4go/internal/s7/s7Io_test.go
index 1ab9cb485..f97279006 100644
--- a/plc4go/internal/s7/s7Io_test.go
+++ b/plc4go/internal/s7/s7Io_test.go
@@ -881,7 +881,7 @@ func TestS7MessageBytes(t *testing.T) {
 			})
 			t.Run("Simple 2 Box", func(t *testing.T) {
 				boxWriter := utils.NewWriteBufferBoxBased()
-				if err := tt.args.debuggable.Serialize(boxWriter); err != nil {
+				if err := tt.args.debuggable.SerializeWithWriteBuffer(boxWriter); err != nil {
 					t.Error(err)
 				}
 				tt.wantStringSerialized = strings.Trim(tt.wantStringSerialized, "\n")
@@ -891,7 +891,7 @@ func TestS7MessageBytes(t *testing.T) {
 			})
 			t.Run("Simple 2 Compact Box", func(t *testing.T) {
 				boxWriter := utils.NewWriteBufferBoxBasedWithOptions(true, true)
-				if err := tt.args.debuggable.Serialize(boxWriter); err != nil {
+				if err := tt.args.debuggable.SerializeWithWriteBuffer(boxWriter); err != nil {
 					t.Error(err)
 				}
 				tt.wantStringSerializedCompact = strings.Trim(tt.wantStringSerializedCompact, "\n")
@@ -901,7 +901,7 @@ func TestS7MessageBytes(t *testing.T) {
 			})
 			t.Run("Simple 2 Xml", func(t *testing.T) {
 				xmlWriteBuffer := utils.NewXmlWriteBuffer()
-				if err := tt.args.debuggable.Serialize(xmlWriteBuffer); err != nil {
+				if err := tt.args.debuggable.SerializeWithWriteBuffer(xmlWriteBuffer); err != nil {
 					t.Error(err)
 				}
 				tt.wantStringXml = strings.Trim(tt.wantStringXml, "\n")
@@ -911,7 +911,7 @@ func TestS7MessageBytes(t *testing.T) {
 			})
 			t.Run("Simple 2 Json", func(t *testing.T) {
 				jsonWriteBuffer := utils.NewJsonWriteBuffer()
-				if err := tt.args.debuggable.Serialize(jsonWriteBuffer); err != nil {
+				if err := tt.args.debuggable.SerializeWithWriteBuffer(jsonWriteBuffer); err != nil {
 					t.Error(err)
 				}
 				tt.wantStringJson = strings.Trim(tt.wantStringJson, "\n")
@@ -925,7 +925,7 @@ func TestS7MessageBytes(t *testing.T) {
 			})
 			t.Run("Simple Binary Serialize", func(t *testing.T) {
 				buffer := utils.NewWriteBufferByteBased()
-				if err := tt.args.debuggable.Serialize(buffer); err != nil {
+				if err := tt.args.debuggable.SerializeWithWriteBuffer(buffer); err != nil {
 					t.Error(err)
 				}
 				tt.wantDump = strings.Trim(tt.wantDump, "\n")
diff --git a/plc4go/protocols/abeth/readwrite/model/CIPEncapsulationConnectionRequest.go b/plc4go/protocols/abeth/readwrite/model/CIPEncapsulationConnectionRequest.go
index 71d17cdd5..76180338d 100644
--- a/plc4go/protocols/abeth/readwrite/model/CIPEncapsulationConnectionRequest.go
+++ b/plc4go/protocols/abeth/readwrite/model/CIPEncapsulationConnectionRequest.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -129,7 +130,15 @@ func CIPEncapsulationConnectionRequestParse(readBuffer utils.ReadBuffer) (CIPEnc
 	return _child, nil
 }
 
-func (m *_CIPEncapsulationConnectionRequest) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_CIPEncapsulationConnectionRequest) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_CIPEncapsulationConnectionRequest) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/abeth/readwrite/model/CIPEncapsulationConnectionResponse.go b/plc4go/protocols/abeth/readwrite/model/CIPEncapsulationConnectionResponse.go
index d2c25dc7b..175683049 100644
--- a/plc4go/protocols/abeth/readwrite/model/CIPEncapsulationConnectionResponse.go
+++ b/plc4go/protocols/abeth/readwrite/model/CIPEncapsulationConnectionResponse.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -129,7 +130,15 @@ func CIPEncapsulationConnectionResponseParse(readBuffer utils.ReadBuffer) (CIPEn
 	return _child, nil
 }
 
-func (m *_CIPEncapsulationConnectionResponse) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_CIPEncapsulationConnectionResponse) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_CIPEncapsulationConnectionResponse) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/abeth/readwrite/model/CIPEncapsulationReadRequest.go b/plc4go/protocols/abeth/readwrite/model/CIPEncapsulationReadRequest.go
index a8e75289c..dba21620f 100644
--- a/plc4go/protocols/abeth/readwrite/model/CIPEncapsulationReadRequest.go
+++ b/plc4go/protocols/abeth/readwrite/model/CIPEncapsulationReadRequest.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -164,7 +165,15 @@ func CIPEncapsulationReadRequestParse(readBuffer utils.ReadBuffer) (CIPEncapsula
 	return _child, nil
 }
 
-func (m *_CIPEncapsulationReadRequest) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_CIPEncapsulationReadRequest) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_CIPEncapsulationReadRequest) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/abeth/readwrite/model/CIPEncapsulationReadResponse.go b/plc4go/protocols/abeth/readwrite/model/CIPEncapsulationReadResponse.go
index 4bf1f401a..fe1917a11 100644
--- a/plc4go/protocols/abeth/readwrite/model/CIPEncapsulationReadResponse.go
+++ b/plc4go/protocols/abeth/readwrite/model/CIPEncapsulationReadResponse.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -167,7 +168,15 @@ func CIPEncapsulationReadResponseParse(readBuffer utils.ReadBuffer, packetLen ui
 	return _child, nil
 }
 
-func (m *_CIPEncapsulationReadResponse) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_CIPEncapsulationReadResponse) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_CIPEncapsulationReadResponse) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/abeth/readwrite/model/DF1CommandRequestMessage.go b/plc4go/protocols/abeth/readwrite/model/DF1CommandRequestMessage.go
index c7d1b9b34..33fa90cfb 100644
--- a/plc4go/protocols/abeth/readwrite/model/DF1CommandRequestMessage.go
+++ b/plc4go/protocols/abeth/readwrite/model/DF1CommandRequestMessage.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -164,7 +165,15 @@ func DF1CommandRequestMessageParse(readBuffer utils.ReadBuffer) (DF1CommandReque
 	return _child, nil
 }
 
-func (m *_DF1CommandRequestMessage) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_DF1CommandRequestMessage) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_DF1CommandRequestMessage) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/abeth/readwrite/model/DF1CommandResponseMessageProtectedTypedLogicalRead.go b/plc4go/protocols/abeth/readwrite/model/DF1CommandResponseMessageProtectedTypedLogicalRead.go
index 88ccfd9f8..6ec41bc9e 100644
--- a/plc4go/protocols/abeth/readwrite/model/DF1CommandResponseMessageProtectedTypedLogicalRead.go
+++ b/plc4go/protocols/abeth/readwrite/model/DF1CommandResponseMessageProtectedTypedLogicalRead.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -176,7 +177,15 @@ func DF1CommandResponseMessageProtectedTypedLogicalReadParse(readBuffer utils.Re
 	return _child, nil
 }
 
-func (m *_DF1CommandResponseMessageProtectedTypedLogicalRead) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_DF1CommandResponseMessageProtectedTypedLogicalRead) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_DF1CommandResponseMessageProtectedTypedLogicalRead) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/abeth/readwrite/model/DF1RequestProtectedTypedLogicalRead.go b/plc4go/protocols/abeth/readwrite/model/DF1RequestProtectedTypedLogicalRead.go
index 530b2d0c0..73f5a6355 100644
--- a/plc4go/protocols/abeth/readwrite/model/DF1RequestProtectedTypedLogicalRead.go
+++ b/plc4go/protocols/abeth/readwrite/model/DF1RequestProtectedTypedLogicalRead.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -229,7 +230,15 @@ func DF1RequestProtectedTypedLogicalReadParse(readBuffer utils.ReadBuffer) (DF1R
 	return _child, nil
 }
 
-func (m *_DF1RequestProtectedTypedLogicalRead) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_DF1RequestProtectedTypedLogicalRead) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_DF1RequestProtectedTypedLogicalRead) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/ads/readwrite/model/AdsAddDeviceNotificationRequest.go b/plc4go/protocols/ads/readwrite/model/AdsAddDeviceNotificationRequest.go
index 5e1061e60..04345d54b 100644
--- a/plc4go/protocols/ads/readwrite/model/AdsAddDeviceNotificationRequest.go
+++ b/plc4go/protocols/ads/readwrite/model/AdsAddDeviceNotificationRequest.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -304,7 +305,15 @@ func AdsAddDeviceNotificationRequestParse(readBuffer utils.ReadBuffer) (AdsAddDe
 	return _child, nil
 }
 
-func (m *_AdsAddDeviceNotificationRequest) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_AdsAddDeviceNotificationRequest) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_AdsAddDeviceNotificationRequest) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/ads/readwrite/model/AdsAddDeviceNotificationResponse.go b/plc4go/protocols/ads/readwrite/model/AdsAddDeviceNotificationResponse.go
index 90191ce29..b0e75d991 100644
--- a/plc4go/protocols/ads/readwrite/model/AdsAddDeviceNotificationResponse.go
+++ b/plc4go/protocols/ads/readwrite/model/AdsAddDeviceNotificationResponse.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -189,7 +190,15 @@ func AdsAddDeviceNotificationResponseParse(readBuffer utils.ReadBuffer) (AdsAddD
 	return _child, nil
 }
 
-func (m *_AdsAddDeviceNotificationResponse) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_AdsAddDeviceNotificationResponse) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_AdsAddDeviceNotificationResponse) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/ads/readwrite/model/AdsConstants.go b/plc4go/protocols/ads/readwrite/model/AdsConstants.go
index 1757998b9..4d2678d21 100644
--- a/plc4go/protocols/ads/readwrite/model/AdsConstants.go
+++ b/plc4go/protocols/ads/readwrite/model/AdsConstants.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"fmt"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
@@ -124,7 +125,15 @@ func AdsConstantsParse(readBuffer utils.ReadBuffer) (AdsConstants, error) {
 	return &_AdsConstants{}, nil
 }
 
-func (m *_AdsConstants) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_AdsConstants) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_AdsConstants) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	if pushErr := writeBuffer.PushContext("AdsConstants"); pushErr != nil {
diff --git a/plc4go/protocols/ads/readwrite/model/AdsDataType.go b/plc4go/protocols/ads/readwrite/model/AdsDataType.go
index fd0f87ce2..3ee587fea 100644
--- a/plc4go/protocols/ads/readwrite/model/AdsDataType.go
+++ b/plc4go/protocols/ads/readwrite/model/AdsDataType.go
@@ -20,6 +20,8 @@
 package model
 
 import (
+	"encoding/binary"
+
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -30,9 +32,9 @@ import (
 type AdsDataType int8
 
 type IAdsDataType interface {
+	utils.Serializable
 	NumBytes() uint16
 	PlcValueType() PlcValueType
-	Serialize(writeBuffer utils.WriteBuffer) error
 }
 
 const (
@@ -693,7 +695,15 @@ func AdsDataTypeParse(readBuffer utils.ReadBuffer) (AdsDataType, error) {
 	}
 }
 
-func (e AdsDataType) Serialize(writeBuffer utils.WriteBuffer) error {
+func (e AdsDataType) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := e.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (e AdsDataType) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	return writeBuffer.WriteInt8("AdsDataType", 8, int8(e), utils.WithAdditionalStringRepresentation(e.PLC4XEnumName()))
 }
 
diff --git a/plc4go/protocols/ads/readwrite/model/AdsDataTypeArrayInfo.go b/plc4go/protocols/ads/readwrite/model/AdsDataTypeArrayInfo.go
index 5c602dde4..b425aea69 100644
--- a/plc4go/protocols/ads/readwrite/model/AdsDataTypeArrayInfo.go
+++ b/plc4go/protocols/ads/readwrite/model/AdsDataTypeArrayInfo.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -163,7 +164,15 @@ func AdsDataTypeArrayInfoParse(readBuffer utils.ReadBuffer) (AdsDataTypeArrayInf
 	}, nil
 }
 
-func (m *_AdsDataTypeArrayInfo) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_AdsDataTypeArrayInfo) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_AdsDataTypeArrayInfo) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	if pushErr := writeBuffer.PushContext("AdsDataTypeArrayInfo"); pushErr != nil {
diff --git a/plc4go/protocols/ads/readwrite/model/AdsDataTypeTableChildEntry.go b/plc4go/protocols/ads/readwrite/model/AdsDataTypeTableChildEntry.go
index ba00aa6cb..c2421f122 100644
--- a/plc4go/protocols/ads/readwrite/model/AdsDataTypeTableChildEntry.go
+++ b/plc4go/protocols/ads/readwrite/model/AdsDataTypeTableChildEntry.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"fmt"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
@@ -532,7 +533,15 @@ func AdsDataTypeTableChildEntryParse(readBuffer utils.ReadBuffer) (AdsDataTypeTa
 	}, nil
 }
 
-func (m *_AdsDataTypeTableChildEntry) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_AdsDataTypeTableChildEntry) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_AdsDataTypeTableChildEntry) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	if pushErr := writeBuffer.PushContext("AdsDataTypeTableChildEntry"); pushErr != nil {
diff --git a/plc4go/protocols/ads/readwrite/model/AdsDataTypeTableEntry.go b/plc4go/protocols/ads/readwrite/model/AdsDataTypeTableEntry.go
index 37a1cd2dd..4ddbb218c 100644
--- a/plc4go/protocols/ads/readwrite/model/AdsDataTypeTableEntry.go
+++ b/plc4go/protocols/ads/readwrite/model/AdsDataTypeTableEntry.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"fmt"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
@@ -532,7 +533,15 @@ func AdsDataTypeTableEntryParse(readBuffer utils.ReadBuffer) (AdsDataTypeTableEn
 	}, nil
 }
 
-func (m *_AdsDataTypeTableEntry) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_AdsDataTypeTableEntry) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_AdsDataTypeTableEntry) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	if pushErr := writeBuffer.PushContext("AdsDataTypeTableEntry"); pushErr != nil {
diff --git a/plc4go/protocols/ads/readwrite/model/AdsDeleteDeviceNotificationRequest.go b/plc4go/protocols/ads/readwrite/model/AdsDeleteDeviceNotificationRequest.go
index 924484d32..50ed36ad7 100644
--- a/plc4go/protocols/ads/readwrite/model/AdsDeleteDeviceNotificationRequest.go
+++ b/plc4go/protocols/ads/readwrite/model/AdsDeleteDeviceNotificationRequest.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -164,7 +165,15 @@ func AdsDeleteDeviceNotificationRequestParse(readBuffer utils.ReadBuffer) (AdsDe
 	return _child, nil
 }
 
-func (m *_AdsDeleteDeviceNotificationRequest) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_AdsDeleteDeviceNotificationRequest) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_AdsDeleteDeviceNotificationRequest) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/ads/readwrite/model/AdsDeleteDeviceNotificationResponse.go b/plc4go/protocols/ads/readwrite/model/AdsDeleteDeviceNotificationResponse.go
index 41fab08d5..cfcd5ef66 100644
--- a/plc4go/protocols/ads/readwrite/model/AdsDeleteDeviceNotificationResponse.go
+++ b/plc4go/protocols/ads/readwrite/model/AdsDeleteDeviceNotificationResponse.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -170,7 +171,15 @@ func AdsDeleteDeviceNotificationResponseParse(readBuffer utils.ReadBuffer) (AdsD
 	return _child, nil
 }
 
-func (m *_AdsDeleteDeviceNotificationResponse) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_AdsDeleteDeviceNotificationResponse) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_AdsDeleteDeviceNotificationResponse) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/ads/readwrite/model/AdsDeviceNotificationRequest.go b/plc4go/protocols/ads/readwrite/model/AdsDeviceNotificationRequest.go
index be8119af4..f3b82a63e 100644
--- a/plc4go/protocols/ads/readwrite/model/AdsDeviceNotificationRequest.go
+++ b/plc4go/protocols/ads/readwrite/model/AdsDeviceNotificationRequest.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -223,7 +224,15 @@ func AdsDeviceNotificationRequestParse(readBuffer utils.ReadBuffer) (AdsDeviceNo
 	return _child, nil
 }
 
-func (m *_AdsDeviceNotificationRequest) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_AdsDeviceNotificationRequest) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_AdsDeviceNotificationRequest) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/ads/readwrite/model/AdsDeviceNotificationResponse.go b/plc4go/protocols/ads/readwrite/model/AdsDeviceNotificationResponse.go
index f8fea545f..46a8cfbde 100644
--- a/plc4go/protocols/ads/readwrite/model/AdsDeviceNotificationResponse.go
+++ b/plc4go/protocols/ads/readwrite/model/AdsDeviceNotificationResponse.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -135,7 +136,15 @@ func AdsDeviceNotificationResponseParse(readBuffer utils.ReadBuffer) (AdsDeviceN
 	return _child, nil
 }
 
-func (m *_AdsDeviceNotificationResponse) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_AdsDeviceNotificationResponse) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_AdsDeviceNotificationResponse) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/ads/readwrite/model/AdsInvalidRequest.go b/plc4go/protocols/ads/readwrite/model/AdsInvalidRequest.go
index d75f7f012..4552675a8 100644
--- a/plc4go/protocols/ads/readwrite/model/AdsInvalidRequest.go
+++ b/plc4go/protocols/ads/readwrite/model/AdsInvalidRequest.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -135,7 +136,15 @@ func AdsInvalidRequestParse(readBuffer utils.ReadBuffer) (AdsInvalidRequest, err
 	return _child, nil
 }
 
-func (m *_AdsInvalidRequest) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_AdsInvalidRequest) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_AdsInvalidRequest) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/ads/readwrite/model/AdsInvalidResponse.go b/plc4go/protocols/ads/readwrite/model/AdsInvalidResponse.go
index 5259e59c5..ba84a2789 100644
--- a/plc4go/protocols/ads/readwrite/model/AdsInvalidResponse.go
+++ b/plc4go/protocols/ads/readwrite/model/AdsInvalidResponse.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -135,7 +136,15 @@ func AdsInvalidResponseParse(readBuffer utils.ReadBuffer) (AdsInvalidResponse, e
 	return _child, nil
 }
 
-func (m *_AdsInvalidResponse) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_AdsInvalidResponse) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_AdsInvalidResponse) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/ads/readwrite/model/AdsMultiRequestItemRead.go b/plc4go/protocols/ads/readwrite/model/AdsMultiRequestItemRead.go
index 9dc0717b1..721648810 100644
--- a/plc4go/protocols/ads/readwrite/model/AdsMultiRequestItemRead.go
+++ b/plc4go/protocols/ads/readwrite/model/AdsMultiRequestItemRead.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -191,7 +192,15 @@ func AdsMultiRequestItemReadParse(readBuffer utils.ReadBuffer, indexGroup uint32
 	return _child, nil
 }
 
-func (m *_AdsMultiRequestItemRead) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_AdsMultiRequestItemRead) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_AdsMultiRequestItemRead) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/ads/readwrite/model/AdsMultiRequestItemReadWrite.go b/plc4go/protocols/ads/readwrite/model/AdsMultiRequestItemReadWrite.go
index 94a98301a..06d9f5483 100644
--- a/plc4go/protocols/ads/readwrite/model/AdsMultiRequestItemReadWrite.go
+++ b/plc4go/protocols/ads/readwrite/model/AdsMultiRequestItemReadWrite.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -210,7 +211,15 @@ func AdsMultiRequestItemReadWriteParse(readBuffer utils.ReadBuffer, indexGroup u
 	return _child, nil
 }
 
-func (m *_AdsMultiRequestItemReadWrite) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_AdsMultiRequestItemReadWrite) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_AdsMultiRequestItemReadWrite) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/ads/readwrite/model/AdsMultiRequestItemWrite.go b/plc4go/protocols/ads/readwrite/model/AdsMultiRequestItemWrite.go
index a11932000..418411533 100644
--- a/plc4go/protocols/ads/readwrite/model/AdsMultiRequestItemWrite.go
+++ b/plc4go/protocols/ads/readwrite/model/AdsMultiRequestItemWrite.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -191,7 +192,15 @@ func AdsMultiRequestItemWriteParse(readBuffer utils.ReadBuffer, indexGroup uint3
 	return _child, nil
 }
 
-func (m *_AdsMultiRequestItemWrite) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_AdsMultiRequestItemWrite) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_AdsMultiRequestItemWrite) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/ads/readwrite/model/AdsNotificationSample.go b/plc4go/protocols/ads/readwrite/model/AdsNotificationSample.go
index 0a8d9cd86..f8e11843a 100644
--- a/plc4go/protocols/ads/readwrite/model/AdsNotificationSample.go
+++ b/plc4go/protocols/ads/readwrite/model/AdsNotificationSample.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -160,7 +161,15 @@ func AdsNotificationSampleParse(readBuffer utils.ReadBuffer) (AdsNotificationSam
 	}, nil
 }
 
-func (m *_AdsNotificationSample) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_AdsNotificationSample) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_AdsNotificationSample) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	if pushErr := writeBuffer.PushContext("AdsNotificationSample"); pushErr != nil {
diff --git a/plc4go/protocols/ads/readwrite/model/AdsReadDeviceInfoRequest.go b/plc4go/protocols/ads/readwrite/model/AdsReadDeviceInfoRequest.go
index 1b3c3c9b5..b5279e36d 100644
--- a/plc4go/protocols/ads/readwrite/model/AdsReadDeviceInfoRequest.go
+++ b/plc4go/protocols/ads/readwrite/model/AdsReadDeviceInfoRequest.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -135,7 +136,15 @@ func AdsReadDeviceInfoRequestParse(readBuffer utils.ReadBuffer) (AdsReadDeviceIn
 	return _child, nil
 }
 
-func (m *_AdsReadDeviceInfoRequest) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_AdsReadDeviceInfoRequest) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_AdsReadDeviceInfoRequest) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/ads/readwrite/model/AdsReadDeviceInfoResponse.go b/plc4go/protocols/ads/readwrite/model/AdsReadDeviceInfoResponse.go
index 0f1d91348..784515851 100644
--- a/plc4go/protocols/ads/readwrite/model/AdsReadDeviceInfoResponse.go
+++ b/plc4go/protocols/ads/readwrite/model/AdsReadDeviceInfoResponse.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -247,7 +248,15 @@ func AdsReadDeviceInfoResponseParse(readBuffer utils.ReadBuffer) (AdsReadDeviceI
 	return _child, nil
 }
 
-func (m *_AdsReadDeviceInfoResponse) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_AdsReadDeviceInfoResponse) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_AdsReadDeviceInfoResponse) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/ads/readwrite/model/AdsReadRequest.go b/plc4go/protocols/ads/readwrite/model/AdsReadRequest.go
index 888b3cfd4..67b5c581e 100644
--- a/plc4go/protocols/ads/readwrite/model/AdsReadRequest.go
+++ b/plc4go/protocols/ads/readwrite/model/AdsReadRequest.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -202,7 +203,15 @@ func AdsReadRequestParse(readBuffer utils.ReadBuffer) (AdsReadRequest, error) {
 	return _child, nil
 }
 
-func (m *_AdsReadRequest) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_AdsReadRequest) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_AdsReadRequest) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/ads/readwrite/model/AdsReadResponse.go b/plc4go/protocols/ads/readwrite/model/AdsReadResponse.go
index c59d88de7..5038d08e1 100644
--- a/plc4go/protocols/ads/readwrite/model/AdsReadResponse.go
+++ b/plc4go/protocols/ads/readwrite/model/AdsReadResponse.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -200,7 +201,15 @@ func AdsReadResponseParse(readBuffer utils.ReadBuffer) (AdsReadResponse, error)
 	return _child, nil
 }
 
-func (m *_AdsReadResponse) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_AdsReadResponse) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_AdsReadResponse) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/ads/readwrite/model/AdsReadStateRequest.go b/plc4go/protocols/ads/readwrite/model/AdsReadStateRequest.go
index 6b1a6b986..5bf64b231 100644
--- a/plc4go/protocols/ads/readwrite/model/AdsReadStateRequest.go
+++ b/plc4go/protocols/ads/readwrite/model/AdsReadStateRequest.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -135,7 +136,15 @@ func AdsReadStateRequestParse(readBuffer utils.ReadBuffer) (AdsReadStateRequest,
 	return _child, nil
 }
 
-func (m *_AdsReadStateRequest) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_AdsReadStateRequest) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_AdsReadStateRequest) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/ads/readwrite/model/AdsReadStateResponse.go b/plc4go/protocols/ads/readwrite/model/AdsReadStateResponse.go
index 581086217..a03d658ac 100644
--- a/plc4go/protocols/ads/readwrite/model/AdsReadStateResponse.go
+++ b/plc4go/protocols/ads/readwrite/model/AdsReadStateResponse.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -208,7 +209,15 @@ func AdsReadStateResponseParse(readBuffer utils.ReadBuffer) (AdsReadStateRespons
 	return _child, nil
 }
 
-func (m *_AdsReadStateResponse) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_AdsReadStateResponse) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_AdsReadStateResponse) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/ads/readwrite/model/AdsReadWriteRequest.go b/plc4go/protocols/ads/readwrite/model/AdsReadWriteRequest.go
index d3de3c51b..8f100297b 100644
--- a/plc4go/protocols/ads/readwrite/model/AdsReadWriteRequest.go
+++ b/plc4go/protocols/ads/readwrite/model/AdsReadWriteRequest.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -272,7 +273,15 @@ func AdsReadWriteRequestParse(readBuffer utils.ReadBuffer) (AdsReadWriteRequest,
 	return _child, nil
 }
 
-func (m *_AdsReadWriteRequest) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_AdsReadWriteRequest) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_AdsReadWriteRequest) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/ads/readwrite/model/AdsReadWriteResponse.go b/plc4go/protocols/ads/readwrite/model/AdsReadWriteResponse.go
index 7097cf5b0..ea4f082d9 100644
--- a/plc4go/protocols/ads/readwrite/model/AdsReadWriteResponse.go
+++ b/plc4go/protocols/ads/readwrite/model/AdsReadWriteResponse.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -200,7 +201,15 @@ func AdsReadWriteResponseParse(readBuffer utils.ReadBuffer) (AdsReadWriteRespons
 	return _child, nil
 }
 
-func (m *_AdsReadWriteResponse) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_AdsReadWriteResponse) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_AdsReadWriteResponse) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/ads/readwrite/model/AdsStampHeader.go b/plc4go/protocols/ads/readwrite/model/AdsStampHeader.go
index 5c0c29564..c7952b3bf 100644
--- a/plc4go/protocols/ads/readwrite/model/AdsStampHeader.go
+++ b/plc4go/protocols/ads/readwrite/model/AdsStampHeader.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -180,7 +181,15 @@ func AdsStampHeaderParse(readBuffer utils.ReadBuffer) (AdsStampHeader, error) {
 	}, nil
 }
 
-func (m *_AdsStampHeader) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_AdsStampHeader) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_AdsStampHeader) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	if pushErr := writeBuffer.PushContext("AdsStampHeader"); pushErr != nil {
diff --git a/plc4go/protocols/ads/readwrite/model/AdsSymbolTableEntry.go b/plc4go/protocols/ads/readwrite/model/AdsSymbolTableEntry.go
index 06d2d1ae3..3b63ff828 100644
--- a/plc4go/protocols/ads/readwrite/model/AdsSymbolTableEntry.go
+++ b/plc4go/protocols/ads/readwrite/model/AdsSymbolTableEntry.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"fmt"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
@@ -643,7 +644,15 @@ func AdsSymbolTableEntryParse(readBuffer utils.ReadBuffer) (AdsSymbolTableEntry,
 	}, nil
 }
 
-func (m *_AdsSymbolTableEntry) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_AdsSymbolTableEntry) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_AdsSymbolTableEntry) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	if pushErr := writeBuffer.PushContext("AdsSymbolTableEntry"); pushErr != nil {
diff --git a/plc4go/protocols/ads/readwrite/model/AdsTableSizes.go b/plc4go/protocols/ads/readwrite/model/AdsTableSizes.go
index 9f6df7454..2a2515ead 100644
--- a/plc4go/protocols/ads/readwrite/model/AdsTableSizes.go
+++ b/plc4go/protocols/ads/readwrite/model/AdsTableSizes.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -213,7 +214,15 @@ func AdsTableSizesParse(readBuffer utils.ReadBuffer) (AdsTableSizes, error) {
 	}, nil
 }
 
-func (m *_AdsTableSizes) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_AdsTableSizes) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_AdsTableSizes) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	if pushErr := writeBuffer.PushContext("AdsTableSizes"); pushErr != nil {
diff --git a/plc4go/protocols/ads/readwrite/model/AdsWriteControlRequest.go b/plc4go/protocols/ads/readwrite/model/AdsWriteControlRequest.go
index 4b1a47212..215df85a1 100644
--- a/plc4go/protocols/ads/readwrite/model/AdsWriteControlRequest.go
+++ b/plc4go/protocols/ads/readwrite/model/AdsWriteControlRequest.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -213,7 +214,15 @@ func AdsWriteControlRequestParse(readBuffer utils.ReadBuffer) (AdsWriteControlRe
 	return _child, nil
 }
 
-func (m *_AdsWriteControlRequest) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_AdsWriteControlRequest) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_AdsWriteControlRequest) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/ads/readwrite/model/AdsWriteControlResponse.go b/plc4go/protocols/ads/readwrite/model/AdsWriteControlResponse.go
index 86a7295d2..60bf8fc17 100644
--- a/plc4go/protocols/ads/readwrite/model/AdsWriteControlResponse.go
+++ b/plc4go/protocols/ads/readwrite/model/AdsWriteControlResponse.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -170,7 +171,15 @@ func AdsWriteControlResponseParse(readBuffer utils.ReadBuffer) (AdsWriteControlR
 	return _child, nil
 }
 
-func (m *_AdsWriteControlResponse) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_AdsWriteControlResponse) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_AdsWriteControlResponse) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/ads/readwrite/model/AdsWriteRequest.go b/plc4go/protocols/ads/readwrite/model/AdsWriteRequest.go
index 09d9946d6..8ce370371 100644
--- a/plc4go/protocols/ads/readwrite/model/AdsWriteRequest.go
+++ b/plc4go/protocols/ads/readwrite/model/AdsWriteRequest.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -213,7 +214,15 @@ func AdsWriteRequestParse(readBuffer utils.ReadBuffer) (AdsWriteRequest, error)
 	return _child, nil
 }
 
-func (m *_AdsWriteRequest) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_AdsWriteRequest) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_AdsWriteRequest) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/ads/readwrite/model/AdsWriteResponse.go b/plc4go/protocols/ads/readwrite/model/AdsWriteResponse.go
index 9d06ce1b8..72bf8c9fc 100644
--- a/plc4go/protocols/ads/readwrite/model/AdsWriteResponse.go
+++ b/plc4go/protocols/ads/readwrite/model/AdsWriteResponse.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -170,7 +171,15 @@ func AdsWriteResponseParse(readBuffer utils.ReadBuffer) (AdsWriteResponse, error
 	return _child, nil
 }
 
-func (m *_AdsWriteResponse) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_AdsWriteResponse) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_AdsWriteResponse) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/ads/readwrite/model/AmsNetId.go b/plc4go/protocols/ads/readwrite/model/AmsNetId.go
index 5c5401182..7f397b7c0 100644
--- a/plc4go/protocols/ads/readwrite/model/AmsNetId.go
+++ b/plc4go/protocols/ads/readwrite/model/AmsNetId.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -213,7 +214,15 @@ func AmsNetIdParse(readBuffer utils.ReadBuffer) (AmsNetId, error) {
 	}, nil
 }
 
-func (m *_AmsNetId) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_AmsNetId) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_AmsNetId) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	if pushErr := writeBuffer.PushContext("AmsNetId"); pushErr != nil {
diff --git a/plc4go/protocols/ads/readwrite/model/AmsSerialAcknowledgeFrame.go b/plc4go/protocols/ads/readwrite/model/AmsSerialAcknowledgeFrame.go
index 2af84a9f4..fc112a251 100644
--- a/plc4go/protocols/ads/readwrite/model/AmsSerialAcknowledgeFrame.go
+++ b/plc4go/protocols/ads/readwrite/model/AmsSerialAcknowledgeFrame.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -213,7 +214,15 @@ func AmsSerialAcknowledgeFrameParse(readBuffer utils.ReadBuffer) (AmsSerialAckno
 	}, nil
 }
 
-func (m *_AmsSerialAcknowledgeFrame) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_AmsSerialAcknowledgeFrame) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_AmsSerialAcknowledgeFrame) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	if pushErr := writeBuffer.PushContext("AmsSerialAcknowledgeFrame"); pushErr != nil {
diff --git a/plc4go/protocols/ads/readwrite/model/AmsSerialFrame.go b/plc4go/protocols/ads/readwrite/model/AmsSerialFrame.go
index 9fab3cdc0..c578d527e 100644
--- a/plc4go/protocols/ads/readwrite/model/AmsSerialFrame.go
+++ b/plc4go/protocols/ads/readwrite/model/AmsSerialFrame.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -237,7 +238,15 @@ func AmsSerialFrameParse(readBuffer utils.ReadBuffer) (AmsSerialFrame, error) {
 	}, nil
 }
 
-func (m *_AmsSerialFrame) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_AmsSerialFrame) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_AmsSerialFrame) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	if pushErr := writeBuffer.PushContext("AmsSerialFrame"); pushErr != nil {
diff --git a/plc4go/protocols/ads/readwrite/model/AmsSerialResetFrame.go b/plc4go/protocols/ads/readwrite/model/AmsSerialResetFrame.go
index 735d16c0e..12e53c9a8 100644
--- a/plc4go/protocols/ads/readwrite/model/AmsSerialResetFrame.go
+++ b/plc4go/protocols/ads/readwrite/model/AmsSerialResetFrame.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -213,7 +214,15 @@ func AmsSerialResetFrameParse(readBuffer utils.ReadBuffer) (AmsSerialResetFrame,
 	}, nil
 }
 
-func (m *_AmsSerialResetFrame) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_AmsSerialResetFrame) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_AmsSerialResetFrame) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	if pushErr := writeBuffer.PushContext("AmsSerialResetFrame"); pushErr != nil {
diff --git a/plc4go/protocols/ads/readwrite/model/AmsTCPPacket.go b/plc4go/protocols/ads/readwrite/model/AmsTCPPacket.go
index ef9e4a36b..c45ea2ef5 100644
--- a/plc4go/protocols/ads/readwrite/model/AmsTCPPacket.go
+++ b/plc4go/protocols/ads/readwrite/model/AmsTCPPacket.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -162,7 +163,15 @@ func AmsTCPPacketParse(readBuffer utils.ReadBuffer) (AmsTCPPacket, error) {
 	}, nil
 }
 
-func (m *_AmsTCPPacket) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_AmsTCPPacket) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_AmsTCPPacket) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	if pushErr := writeBuffer.PushContext("AmsTCPPacket"); pushErr != nil {
diff --git a/plc4go/protocols/ads/readwrite/model/CommandId.go b/plc4go/protocols/ads/readwrite/model/CommandId.go
index 064b21136..80b41d25d 100644
--- a/plc4go/protocols/ads/readwrite/model/CommandId.go
+++ b/plc4go/protocols/ads/readwrite/model/CommandId.go
@@ -20,6 +20,8 @@
 package model
 
 import (
+	"encoding/binary"
+
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -30,7 +32,7 @@ import (
 type CommandId uint16
 
 type ICommandId interface {
-	Serialize(writeBuffer utils.WriteBuffer) error
+	utils.Serializable
 }
 
 const (
@@ -156,7 +158,15 @@ func CommandIdParse(readBuffer utils.ReadBuffer) (CommandId, error) {
 	}
 }
 
-func (e CommandId) Serialize(writeBuffer utils.WriteBuffer) error {
+func (e CommandId) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := e.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (e CommandId) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	return writeBuffer.WriteUint16("CommandId", 16, uint16(e), utils.WithAdditionalStringRepresentation(e.PLC4XEnumName()))
 }
 
diff --git a/plc4go/protocols/ads/readwrite/model/DataItem.go b/plc4go/protocols/ads/readwrite/model/DataItem.go
index 1856eaa47..e5cec4184 100644
--- a/plc4go/protocols/ads/readwrite/model/DataItem.go
+++ b/plc4go/protocols/ads/readwrite/model/DataItem.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	api "github.com/apache/plc4x/plc4go/pkg/api/values"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/apache/plc4x/plc4go/spi/values"
@@ -245,7 +246,15 @@ func DataItemParse(readBuffer utils.ReadBuffer, plcValueType PlcValueType, strin
 	return nil, errors.New("unsupported type")
 }
 
-func DataItemSerialize(writeBuffer utils.WriteBuffer, value api.PlcValue, plcValueType PlcValueType, stringLength int32) error {
+func DataItemSerialize(value api.PlcValue, plcValueType PlcValueType, stringLength int32) ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := DataItemSerializeWithWriteBuffer(wb, value, plcValueType, stringLength); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func DataItemSerializeWithWriteBuffer(writeBuffer utils.WriteBuffer, value api.PlcValue, plcValueType PlcValueType, stringLength int32) error {
 	m := struct {
 		PlcValueType PlcValueType
 		StringLength int32
diff --git a/plc4go/protocols/ads/readwrite/model/DefaultAmsPorts.go b/plc4go/protocols/ads/readwrite/model/DefaultAmsPorts.go
index 2219b94a7..825395187 100644
--- a/plc4go/protocols/ads/readwrite/model/DefaultAmsPorts.go
+++ b/plc4go/protocols/ads/readwrite/model/DefaultAmsPorts.go
@@ -20,6 +20,8 @@
 package model
 
 import (
+	"encoding/binary"
+
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -30,7 +32,7 @@ import (
 type DefaultAmsPorts uint16
 
 type IDefaultAmsPorts interface {
-	Serialize(writeBuffer utils.WriteBuffer) error
+	utils.Serializable
 }
 
 const (
@@ -426,7 +428,15 @@ func DefaultAmsPortsParse(readBuffer utils.ReadBuffer) (DefaultAmsPorts, error)
 	}
 }
 
-func (e DefaultAmsPorts) Serialize(writeBuffer utils.WriteBuffer) error {
+func (e DefaultAmsPorts) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := e.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (e DefaultAmsPorts) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	return writeBuffer.WriteUint16("DefaultAmsPorts", 16, uint16(e), utils.WithAdditionalStringRepresentation(e.PLC4XEnumName()))
 }
 
diff --git a/plc4go/protocols/ads/readwrite/model/PlcValueType.go b/plc4go/protocols/ads/readwrite/model/PlcValueType.go
index f923131b0..56ee422fe 100644
--- a/plc4go/protocols/ads/readwrite/model/PlcValueType.go
+++ b/plc4go/protocols/ads/readwrite/model/PlcValueType.go
@@ -20,6 +20,8 @@
 package model
 
 import (
+	"encoding/binary"
+
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -30,7 +32,7 @@ import (
 type PlcValueType uint8
 
 type IPlcValueType interface {
-	Serialize(writeBuffer utils.WriteBuffer) error
+	utils.Serializable
 }
 
 const (
@@ -282,7 +284,15 @@ func PlcValueTypeParse(readBuffer utils.ReadBuffer) (PlcValueType, error) {
 	}
 }
 
-func (e PlcValueType) Serialize(writeBuffer utils.WriteBuffer) error {
+func (e PlcValueType) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := e.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (e PlcValueType) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	return writeBuffer.WriteUint8("PlcValueType", 8, uint8(e), utils.WithAdditionalStringRepresentation(e.PLC4XEnumName()))
 }
 
diff --git a/plc4go/protocols/ads/readwrite/model/ReservedIndexGroups.go b/plc4go/protocols/ads/readwrite/model/ReservedIndexGroups.go
index 11990ece9..45860abe6 100644
--- a/plc4go/protocols/ads/readwrite/model/ReservedIndexGroups.go
+++ b/plc4go/protocols/ads/readwrite/model/ReservedIndexGroups.go
@@ -20,6 +20,8 @@
 package model
 
 import (
+	"encoding/binary"
+
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -30,7 +32,7 @@ import (
 type ReservedIndexGroups uint32
 
 type IReservedIndexGroups interface {
-	Serialize(writeBuffer utils.WriteBuffer) error
+	utils.Serializable
 }
 
 const (
@@ -312,7 +314,15 @@ func ReservedIndexGroupsParse(readBuffer utils.ReadBuffer) (ReservedIndexGroups,
 	}
 }
 
-func (e ReservedIndexGroups) Serialize(writeBuffer utils.WriteBuffer) error {
+func (e ReservedIndexGroups) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := e.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (e ReservedIndexGroups) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	return writeBuffer.WriteUint32("ReservedIndexGroups", 32, uint32(e), utils.WithAdditionalStringRepresentation(e.PLC4XEnumName()))
 }
 
diff --git a/plc4go/protocols/ads/readwrite/model/ReturnCode.go b/plc4go/protocols/ads/readwrite/model/ReturnCode.go
index 5ef2e4229..6b769dc94 100644
--- a/plc4go/protocols/ads/readwrite/model/ReturnCode.go
+++ b/plc4go/protocols/ads/readwrite/model/ReturnCode.go
@@ -20,6 +20,8 @@
 package model
 
 import (
+	"encoding/binary"
+
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -30,7 +32,7 @@ import (
 type ReturnCode uint32
 
 type IReturnCode interface {
-	Serialize(writeBuffer utils.WriteBuffer) error
+	utils.Serializable
 }
 
 const (
@@ -828,7 +830,15 @@ func ReturnCodeParse(readBuffer utils.ReadBuffer) (ReturnCode, error) {
 	}
 }
 
-func (e ReturnCode) Serialize(writeBuffer utils.WriteBuffer) error {
+func (e ReturnCode) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := e.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (e ReturnCode) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	return writeBuffer.WriteUint32("ReturnCode", 32, uint32(e), utils.WithAdditionalStringRepresentation(e.PLC4XEnumName()))
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/APDUAbort.go b/plc4go/protocols/bacnetip/readwrite/model/APDUAbort.go
index 5c74b309a..54cb46c25 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/APDUAbort.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/APDUAbort.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -222,7 +223,15 @@ func APDUAbortParse(readBuffer utils.ReadBuffer, apduLength uint16) (APDUAbort,
 	return _child, nil
 }
 
-func (m *_APDUAbort) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_APDUAbort) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_APDUAbort) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/APDUComplexAck.go b/plc4go/protocols/bacnetip/readwrite/model/APDUComplexAck.go
index 1b97489c4..63fcbd272 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/APDUComplexAck.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/APDUComplexAck.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 	"io"
@@ -403,7 +404,15 @@ func APDUComplexAckParse(readBuffer utils.ReadBuffer, apduLength uint16) (APDUCo
 	return _child, nil
 }
 
-func (m *_APDUComplexAck) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_APDUComplexAck) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_APDUComplexAck) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/APDUConfirmedRequest.go b/plc4go/protocols/bacnetip/readwrite/model/APDUConfirmedRequest.go
index a30f9ad75..7733c49df 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/APDUConfirmedRequest.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/APDUConfirmedRequest.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 	"io"
@@ -472,7 +473,15 @@ func APDUConfirmedRequestParse(readBuffer utils.ReadBuffer, apduLength uint16) (
 	return _child, nil
 }
 
-func (m *_APDUConfirmedRequest) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_APDUConfirmedRequest) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_APDUConfirmedRequest) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/APDUError.go b/plc4go/protocols/bacnetip/readwrite/model/APDUError.go
index 89376ca5e..4fbb9577e 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/APDUError.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/APDUError.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -228,7 +229,15 @@ func APDUErrorParse(readBuffer utils.ReadBuffer, apduLength uint16) (APDUError,
 	return _child, nil
 }
 
-func (m *_APDUError) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_APDUError) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_APDUError) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/APDUReject.go b/plc4go/protocols/bacnetip/readwrite/model/APDUReject.go
index 65a39cd0d..e03fc74ee 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/APDUReject.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/APDUReject.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -203,7 +204,15 @@ func APDURejectParse(readBuffer utils.ReadBuffer, apduLength uint16) (APDUReject
 	return _child, nil
 }
 
-func (m *_APDUReject) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_APDUReject) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_APDUReject) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/APDUSegmentAck.go b/plc4go/protocols/bacnetip/readwrite/model/APDUSegmentAck.go
index d9b2aa185..f0e6e8425 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/APDUSegmentAck.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/APDUSegmentAck.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -254,7 +255,15 @@ func APDUSegmentAckParse(readBuffer utils.ReadBuffer, apduLength uint16) (APDUSe
 	return _child, nil
 }
 
-func (m *_APDUSegmentAck) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_APDUSegmentAck) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_APDUSegmentAck) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/APDUSimpleAck.go b/plc4go/protocols/bacnetip/readwrite/model/APDUSimpleAck.go
index 98df9463c..fe37ec06d 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/APDUSimpleAck.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/APDUSimpleAck.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -197,7 +198,15 @@ func APDUSimpleAckParse(readBuffer utils.ReadBuffer, apduLength uint16) (APDUSim
 	return _child, nil
 }
 
-func (m *_APDUSimpleAck) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_APDUSimpleAck) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_APDUSimpleAck) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/APDUUnconfirmedRequest.go b/plc4go/protocols/bacnetip/readwrite/model/APDUUnconfirmedRequest.go
index 25eb34761..662514470 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/APDUUnconfirmedRequest.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/APDUUnconfirmedRequest.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -184,7 +185,15 @@ func APDUUnconfirmedRequestParse(readBuffer utils.ReadBuffer, apduLength uint16)
 	return _child, nil
 }
 
-func (m *_APDUUnconfirmedRequest) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_APDUUnconfirmedRequest) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_APDUUnconfirmedRequest) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/APDUUnknown.go b/plc4go/protocols/bacnetip/readwrite/model/APDUUnknown.go
index f0ea4d096..af4379b93 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/APDUUnknown.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/APDUUnknown.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -175,7 +176,15 @@ func APDUUnknownParse(readBuffer utils.ReadBuffer, apduLength uint16) (APDUUnkno
 	return _child, nil
 }
 
-func (m *_APDUUnknown) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_APDUUnknown) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_APDUUnknown) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/ApduType.go b/plc4go/protocols/bacnetip/readwrite/model/ApduType.go
index d5b28f86e..e946d1deb 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/ApduType.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/ApduType.go
@@ -20,6 +20,8 @@
 package model
 
 import (
+	"encoding/binary"
+
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -30,7 +32,7 @@ import (
 type ApduType uint8
 
 type IApduType interface {
-	Serialize(writeBuffer utils.WriteBuffer) error
+	utils.Serializable
 }
 
 const (
@@ -192,7 +194,15 @@ func ApduTypeParse(readBuffer utils.ReadBuffer) (ApduType, error) {
 	}
 }
 
-func (e ApduType) Serialize(writeBuffer utils.WriteBuffer) error {
+func (e ApduType) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := e.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (e ApduType) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	return writeBuffer.WriteUint8("ApduType", 4, uint8(e), utils.WithAdditionalStringRepresentation(e.PLC4XEnumName()))
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetAbortReason.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetAbortReason.go
index 8e5fdd9ce..e16aeba49 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetAbortReason.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetAbortReason.go
@@ -20,6 +20,8 @@
 package model
 
 import (
+	"encoding/binary"
+
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -30,7 +32,7 @@ import (
 type BACnetAbortReason uint8
 
 type IBACnetAbortReason interface {
-	Serialize(writeBuffer utils.WriteBuffer) error
+	utils.Serializable
 }
 
 const (
@@ -174,7 +176,15 @@ func BACnetAbortReasonParse(readBuffer utils.ReadBuffer) (BACnetAbortReason, err
 	}
 }
 
-func (e BACnetAbortReason) Serialize(writeBuffer utils.WriteBuffer) error {
+func (e BACnetAbortReason) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := e.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (e BACnetAbortReason) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	return writeBuffer.WriteUint8("BACnetAbortReason", 8, uint8(e), utils.WithAdditionalStringRepresentation(e.PLC4XEnumName()))
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetAbortReasonTagged.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetAbortReasonTagged.go
index e22642690..b36da492e 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetAbortReasonTagged.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetAbortReasonTagged.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -173,7 +174,15 @@ func BACnetAbortReasonTaggedParse(readBuffer utils.ReadBuffer, actualLength uint
 	}, nil
 }
 
-func (m *_BACnetAbortReasonTagged) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetAbortReasonTagged) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetAbortReasonTagged) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	if pushErr := writeBuffer.PushContext("BACnetAbortReasonTagged"); pushErr != nil {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessAuthenticationFactorDisable.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessAuthenticationFactorDisable.go
index 1aec83db1..0da1ea999 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessAuthenticationFactorDisable.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessAuthenticationFactorDisable.go
@@ -20,6 +20,8 @@
 package model
 
 import (
+	"encoding/binary"
+
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -30,7 +32,7 @@ import (
 type BACnetAccessAuthenticationFactorDisable uint16
 
 type IBACnetAccessAuthenticationFactorDisable interface {
-	Serialize(writeBuffer utils.WriteBuffer) error
+	utils.Serializable
 }
 
 const (
@@ -138,7 +140,15 @@ func BACnetAccessAuthenticationFactorDisableParse(readBuffer utils.ReadBuffer) (
 	}
 }
 
-func (e BACnetAccessAuthenticationFactorDisable) Serialize(writeBuffer utils.WriteBuffer) error {
+func (e BACnetAccessAuthenticationFactorDisable) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := e.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (e BACnetAccessAuthenticationFactorDisable) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	return writeBuffer.WriteUint16("BACnetAccessAuthenticationFactorDisable", 16, uint16(e), utils.WithAdditionalStringRepresentation(e.PLC4XEnumName()))
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessAuthenticationFactorDisableTagged.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessAuthenticationFactorDisableTagged.go
index 68ecb27c0..aae72ab76 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessAuthenticationFactorDisableTagged.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessAuthenticationFactorDisableTagged.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -209,7 +210,15 @@ func BACnetAccessAuthenticationFactorDisableTaggedParse(readBuffer utils.ReadBuf
 	}, nil
 }
 
-func (m *_BACnetAccessAuthenticationFactorDisableTagged) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetAccessAuthenticationFactorDisableTagged) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetAccessAuthenticationFactorDisableTagged) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	if pushErr := writeBuffer.PushContext("BACnetAccessAuthenticationFactorDisableTagged"); pushErr != nil {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessCredentialDisable.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessCredentialDisable.go
index fb84ecf09..77a8f5244 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessCredentialDisable.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessCredentialDisable.go
@@ -20,6 +20,8 @@
 package model
 
 import (
+	"encoding/binary"
+
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -30,7 +32,7 @@ import (
 type BACnetAccessCredentialDisable uint16
 
 type IBACnetAccessCredentialDisable interface {
-	Serialize(writeBuffer utils.WriteBuffer) error
+	utils.Serializable
 }
 
 const (
@@ -126,7 +128,15 @@ func BACnetAccessCredentialDisableParse(readBuffer utils.ReadBuffer) (BACnetAcce
 	}
 }
 
-func (e BACnetAccessCredentialDisable) Serialize(writeBuffer utils.WriteBuffer) error {
+func (e BACnetAccessCredentialDisable) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := e.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (e BACnetAccessCredentialDisable) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	return writeBuffer.WriteUint16("BACnetAccessCredentialDisable", 16, uint16(e), utils.WithAdditionalStringRepresentation(e.PLC4XEnumName()))
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessCredentialDisableReason.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessCredentialDisableReason.go
index 31c9052bf..1bb41e849 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessCredentialDisableReason.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessCredentialDisableReason.go
@@ -20,6 +20,8 @@
 package model
 
 import (
+	"encoding/binary"
+
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -30,7 +32,7 @@ import (
 type BACnetAccessCredentialDisableReason uint16
 
 type IBACnetAccessCredentialDisableReason interface {
-	Serialize(writeBuffer utils.WriteBuffer) error
+	utils.Serializable
 }
 
 const (
@@ -162,7 +164,15 @@ func BACnetAccessCredentialDisableReasonParse(readBuffer utils.ReadBuffer) (BACn
 	}
 }
 
-func (e BACnetAccessCredentialDisableReason) Serialize(writeBuffer utils.WriteBuffer) error {
+func (e BACnetAccessCredentialDisableReason) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := e.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (e BACnetAccessCredentialDisableReason) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	return writeBuffer.WriteUint16("BACnetAccessCredentialDisableReason", 16, uint16(e), utils.WithAdditionalStringRepresentation(e.PLC4XEnumName()))
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessCredentialDisableReasonTagged.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessCredentialDisableReasonTagged.go
index 33d468a50..4f3181e6c 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessCredentialDisableReasonTagged.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessCredentialDisableReasonTagged.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -209,7 +210,15 @@ func BACnetAccessCredentialDisableReasonTaggedParse(readBuffer utils.ReadBuffer,
 	}, nil
 }
 
-func (m *_BACnetAccessCredentialDisableReasonTagged) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetAccessCredentialDisableReasonTagged) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetAccessCredentialDisableReasonTagged) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	if pushErr := writeBuffer.PushContext("BACnetAccessCredentialDisableReasonTagged"); pushErr != nil {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessCredentialDisableTagged.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessCredentialDisableTagged.go
index 847e85c5c..3ec05de52 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessCredentialDisableTagged.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessCredentialDisableTagged.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -209,7 +210,15 @@ func BACnetAccessCredentialDisableTaggedParse(readBuffer utils.ReadBuffer, tagNu
 	}, nil
 }
 
-func (m *_BACnetAccessCredentialDisableTagged) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetAccessCredentialDisableTagged) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetAccessCredentialDisableTagged) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	if pushErr := writeBuffer.PushContext("BACnetAccessCredentialDisableTagged"); pushErr != nil {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessEvent.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessEvent.go
index 401ef3014..7b8c997f3 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessEvent.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessEvent.go
@@ -20,6 +20,8 @@
 package model
 
 import (
+	"encoding/binary"
+
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -30,7 +32,7 @@ import (
 type BACnetAccessEvent uint16
 
 type IBACnetAccessEvent interface {
-	Serialize(writeBuffer utils.WriteBuffer) error
+	utils.Serializable
 }
 
 const (
@@ -426,7 +428,15 @@ func BACnetAccessEventParse(readBuffer utils.ReadBuffer) (BACnetAccessEvent, err
 	}
 }
 
-func (e BACnetAccessEvent) Serialize(writeBuffer utils.WriteBuffer) error {
+func (e BACnetAccessEvent) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := e.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (e BACnetAccessEvent) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	return writeBuffer.WriteUint16("BACnetAccessEvent", 16, uint16(e), utils.WithAdditionalStringRepresentation(e.PLC4XEnumName()))
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessEventTagged.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessEventTagged.go
index fa6d13c5c..3ca315c4c 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessEventTagged.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessEventTagged.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -209,7 +210,15 @@ func BACnetAccessEventTaggedParse(readBuffer utils.ReadBuffer, tagNumber uint8,
 	}, nil
 }
 
-func (m *_BACnetAccessEventTagged) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetAccessEventTagged) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetAccessEventTagged) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	if pushErr := writeBuffer.PushContext("BACnetAccessEventTagged"); pushErr != nil {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessPassbackMode.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessPassbackMode.go
index 7119c75e6..7b9bf8dc1 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessPassbackMode.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessPassbackMode.go
@@ -20,6 +20,8 @@
 package model
 
 import (
+	"encoding/binary"
+
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -30,7 +32,7 @@ import (
 type BACnetAccessPassbackMode uint8
 
 type IBACnetAccessPassbackMode interface {
-	Serialize(writeBuffer utils.WriteBuffer) error
+	utils.Serializable
 }
 
 const (
@@ -114,7 +116,15 @@ func BACnetAccessPassbackModeParse(readBuffer utils.ReadBuffer) (BACnetAccessPas
 	}
 }
 
-func (e BACnetAccessPassbackMode) Serialize(writeBuffer utils.WriteBuffer) error {
+func (e BACnetAccessPassbackMode) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := e.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (e BACnetAccessPassbackMode) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	return writeBuffer.WriteUint8("BACnetAccessPassbackMode", 8, uint8(e), utils.WithAdditionalStringRepresentation(e.PLC4XEnumName()))
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessPassbackModeTagged.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessPassbackModeTagged.go
index a37b970b4..0c293b81c 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessPassbackModeTagged.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessPassbackModeTagged.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -166,7 +167,15 @@ func BACnetAccessPassbackModeTaggedParse(readBuffer utils.ReadBuffer, tagNumber
 	}, nil
 }
 
-func (m *_BACnetAccessPassbackModeTagged) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetAccessPassbackModeTagged) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetAccessPassbackModeTagged) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	if pushErr := writeBuffer.PushContext("BACnetAccessPassbackModeTagged"); pushErr != nil {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessRule.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessRule.go
index 025869d28..fa24eb9d1 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessRule.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessRule.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 	"io"
@@ -248,7 +249,15 @@ func BACnetAccessRuleParse(readBuffer utils.ReadBuffer) (BACnetAccessRule, error
 	}, nil
 }
 
-func (m *_BACnetAccessRule) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetAccessRule) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetAccessRule) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	if pushErr := writeBuffer.PushContext("BACnetAccessRule"); pushErr != nil {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessRuleLocationSpecifier.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessRuleLocationSpecifier.go
index 231fcb380..12509fd17 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessRuleLocationSpecifier.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessRuleLocationSpecifier.go
@@ -20,6 +20,8 @@
 package model
 
 import (
+	"encoding/binary"
+
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -30,7 +32,7 @@ import (
 type BACnetAccessRuleLocationSpecifier uint8
 
 type IBACnetAccessRuleLocationSpecifier interface {
-	Serialize(writeBuffer utils.WriteBuffer) error
+	utils.Serializable
 }
 
 const (
@@ -108,7 +110,15 @@ func BACnetAccessRuleLocationSpecifierParse(readBuffer utils.ReadBuffer) (BACnet
 	}
 }
 
-func (e BACnetAccessRuleLocationSpecifier) Serialize(writeBuffer utils.WriteBuffer) error {
+func (e BACnetAccessRuleLocationSpecifier) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := e.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (e BACnetAccessRuleLocationSpecifier) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	return writeBuffer.WriteUint8("BACnetAccessRuleLocationSpecifier", 8, uint8(e), utils.WithAdditionalStringRepresentation(e.PLC4XEnumName()))
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessRuleLocationSpecifierTagged.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessRuleLocationSpecifierTagged.go
index d2831ae6b..a478eb719 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessRuleLocationSpecifierTagged.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessRuleLocationSpecifierTagged.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -166,7 +167,15 @@ func BACnetAccessRuleLocationSpecifierTaggedParse(readBuffer utils.ReadBuffer, t
 	}, nil
 }
 
-func (m *_BACnetAccessRuleLocationSpecifierTagged) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetAccessRuleLocationSpecifierTagged) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetAccessRuleLocationSpecifierTagged) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	if pushErr := writeBuffer.PushContext("BACnetAccessRuleLocationSpecifierTagged"); pushErr != nil {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessRuleTimeRangeSpecifier.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessRuleTimeRangeSpecifier.go
index 6d4d3a0c0..d191407d6 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessRuleTimeRangeSpecifier.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessRuleTimeRangeSpecifier.go
@@ -20,6 +20,8 @@
 package model
 
 import (
+	"encoding/binary"
+
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -30,7 +32,7 @@ import (
 type BACnetAccessRuleTimeRangeSpecifier uint8
 
 type IBACnetAccessRuleTimeRangeSpecifier interface {
-	Serialize(writeBuffer utils.WriteBuffer) error
+	utils.Serializable
 }
 
 const (
@@ -108,7 +110,15 @@ func BACnetAccessRuleTimeRangeSpecifierParse(readBuffer utils.ReadBuffer) (BACne
 	}
 }
 
-func (e BACnetAccessRuleTimeRangeSpecifier) Serialize(writeBuffer utils.WriteBuffer) error {
+func (e BACnetAccessRuleTimeRangeSpecifier) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := e.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (e BACnetAccessRuleTimeRangeSpecifier) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	return writeBuffer.WriteUint8("BACnetAccessRuleTimeRangeSpecifier", 8, uint8(e), utils.WithAdditionalStringRepresentation(e.PLC4XEnumName()))
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessRuleTimeRangeSpecifierTagged.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessRuleTimeRangeSpecifierTagged.go
index 8ca176903..9bc9e28a6 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessRuleTimeRangeSpecifierTagged.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessRuleTimeRangeSpecifierTagged.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -166,7 +167,15 @@ func BACnetAccessRuleTimeRangeSpecifierTaggedParse(readBuffer utils.ReadBuffer,
 	}, nil
 }
 
-func (m *_BACnetAccessRuleTimeRangeSpecifierTagged) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetAccessRuleTimeRangeSpecifierTagged) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetAccessRuleTimeRangeSpecifierTagged) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	if pushErr := writeBuffer.PushContext("BACnetAccessRuleTimeRangeSpecifierTagged"); pushErr != nil {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessThreatLevel.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessThreatLevel.go
index a48bd453b..a5afe9bf0 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessThreatLevel.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessThreatLevel.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -129,7 +130,15 @@ func BACnetAccessThreatLevelParse(readBuffer utils.ReadBuffer) (BACnetAccessThre
 	}, nil
 }
 
-func (m *_BACnetAccessThreatLevel) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetAccessThreatLevel) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetAccessThreatLevel) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	if pushErr := writeBuffer.PushContext("BACnetAccessThreatLevel"); pushErr != nil {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessUserType.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessUserType.go
index 5bc730d41..9948ff832 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessUserType.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessUserType.go
@@ -20,6 +20,8 @@
 package model
 
 import (
+	"encoding/binary"
+
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -30,7 +32,7 @@ import (
 type BACnetAccessUserType uint16
 
 type IBACnetAccessUserType interface {
-	Serialize(writeBuffer utils.WriteBuffer) error
+	utils.Serializable
 }
 
 const (
@@ -120,7 +122,15 @@ func BACnetAccessUserTypeParse(readBuffer utils.ReadBuffer) (BACnetAccessUserTyp
 	}
 }
 
-func (e BACnetAccessUserType) Serialize(writeBuffer utils.WriteBuffer) error {
+func (e BACnetAccessUserType) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := e.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (e BACnetAccessUserType) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	return writeBuffer.WriteUint16("BACnetAccessUserType", 16, uint16(e), utils.WithAdditionalStringRepresentation(e.PLC4XEnumName()))
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessUserTypeTagged.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessUserTypeTagged.go
index 146c41a58..dcb4b70b0 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessUserTypeTagged.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessUserTypeTagged.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -209,7 +210,15 @@ func BACnetAccessUserTypeTaggedParse(readBuffer utils.ReadBuffer, tagNumber uint
 	}, nil
 }
 
-func (m *_BACnetAccessUserTypeTagged) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetAccessUserTypeTagged) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetAccessUserTypeTagged) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	if pushErr := writeBuffer.PushContext("BACnetAccessUserTypeTagged"); pushErr != nil {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessZoneOccupancyState.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessZoneOccupancyState.go
index 1058bb784..0c61d8154 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessZoneOccupancyState.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessZoneOccupancyState.go
@@ -20,6 +20,8 @@
 package model
 
 import (
+	"encoding/binary"
+
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -30,7 +32,7 @@ import (
 type BACnetAccessZoneOccupancyState uint16
 
 type IBACnetAccessZoneOccupancyState interface {
-	Serialize(writeBuffer utils.WriteBuffer) error
+	utils.Serializable
 }
 
 const (
@@ -144,7 +146,15 @@ func BACnetAccessZoneOccupancyStateParse(readBuffer utils.ReadBuffer) (BACnetAcc
 	}
 }
 
-func (e BACnetAccessZoneOccupancyState) Serialize(writeBuffer utils.WriteBuffer) error {
+func (e BACnetAccessZoneOccupancyState) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := e.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (e BACnetAccessZoneOccupancyState) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	return writeBuffer.WriteUint16("BACnetAccessZoneOccupancyState", 16, uint16(e), utils.WithAdditionalStringRepresentation(e.PLC4XEnumName()))
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessZoneOccupancyStateTagged.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessZoneOccupancyStateTagged.go
index 6c9252394..01474a9d8 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessZoneOccupancyStateTagged.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessZoneOccupancyStateTagged.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -209,7 +210,15 @@ func BACnetAccessZoneOccupancyStateTaggedParse(readBuffer utils.ReadBuffer, tagN
 	}, nil
 }
 
-func (m *_BACnetAccessZoneOccupancyStateTagged) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetAccessZoneOccupancyStateTagged) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetAccessZoneOccupancyStateTagged) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	if pushErr := writeBuffer.PushContext("BACnetAccessZoneOccupancyStateTagged"); pushErr != nil {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetAccumulatorRecord.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetAccumulatorRecord.go
index c15eec50d..d4d73d859 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetAccumulatorRecord.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetAccumulatorRecord.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -201,7 +202,15 @@ func BACnetAccumulatorRecordParse(readBuffer utils.ReadBuffer) (BACnetAccumulato
 	}, nil
 }
 
-func (m *_BACnetAccumulatorRecord) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetAccumulatorRecord) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetAccumulatorRecord) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	if pushErr := writeBuffer.PushContext("BACnetAccumulatorRecord"); pushErr != nil {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetAccumulatorRecordAccumulatorStatus.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetAccumulatorRecordAccumulatorStatus.go
index c92af9993..dfbe0c08c 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetAccumulatorRecordAccumulatorStatus.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetAccumulatorRecordAccumulatorStatus.go
@@ -20,6 +20,8 @@
 package model
 
 import (
+	"encoding/binary"
+
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -30,7 +32,7 @@ import (
 type BACnetAccumulatorRecordAccumulatorStatus uint8
 
 type IBACnetAccumulatorRecordAccumulatorStatus interface {
-	Serialize(writeBuffer utils.WriteBuffer) error
+	utils.Serializable
 }
 
 const (
@@ -126,7 +128,15 @@ func BACnetAccumulatorRecordAccumulatorStatusParse(readBuffer utils.ReadBuffer)
 	}
 }
 
-func (e BACnetAccumulatorRecordAccumulatorStatus) Serialize(writeBuffer utils.WriteBuffer) error {
+func (e BACnetAccumulatorRecordAccumulatorStatus) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := e.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (e BACnetAccumulatorRecordAccumulatorStatus) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	return writeBuffer.WriteUint8("BACnetAccumulatorRecordAccumulatorStatus", 8, uint8(e), utils.WithAdditionalStringRepresentation(e.PLC4XEnumName()))
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetAccumulatorRecordAccumulatorStatusTagged.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetAccumulatorRecordAccumulatorStatusTagged.go
index 20febf1c2..38a80d182 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetAccumulatorRecordAccumulatorStatusTagged.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetAccumulatorRecordAccumulatorStatusTagged.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -166,7 +167,15 @@ func BACnetAccumulatorRecordAccumulatorStatusTaggedParse(readBuffer utils.ReadBu
 	}, nil
 }
 
-func (m *_BACnetAccumulatorRecordAccumulatorStatusTagged) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetAccumulatorRecordAccumulatorStatusTagged) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetAccumulatorRecordAccumulatorStatusTagged) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	if pushErr := writeBuffer.PushContext("BACnetAccumulatorRecordAccumulatorStatusTagged"); pushErr != nil {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetAction.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetAction.go
index 020f1d4d3..4df7520c0 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetAction.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetAction.go
@@ -20,6 +20,8 @@
 package model
 
 import (
+	"encoding/binary"
+
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -30,7 +32,7 @@ import (
 type BACnetAction uint8
 
 type IBACnetAction interface {
-	Serialize(writeBuffer utils.WriteBuffer) error
+	utils.Serializable
 }
 
 const (
@@ -108,7 +110,15 @@ func BACnetActionParse(readBuffer utils.ReadBuffer) (BACnetAction, error) {
 	}
 }
 
-func (e BACnetAction) Serialize(writeBuffer utils.WriteBuffer) error {
+func (e BACnetAction) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := e.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (e BACnetAction) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	return writeBuffer.WriteUint8("BACnetAction", 8, uint8(e), utils.WithAdditionalStringRepresentation(e.PLC4XEnumName()))
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetActionCommand.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetActionCommand.go
index b7f6c8391..fd18149a5 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetActionCommand.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetActionCommand.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 	"io"
@@ -377,7 +378,15 @@ func BACnetActionCommandParse(readBuffer utils.ReadBuffer) (BACnetActionCommand,
 	}, nil
 }
 
-func (m *_BACnetActionCommand) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetActionCommand) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetActionCommand) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	if pushErr := writeBuffer.PushContext("BACnetActionCommand"); pushErr != nil {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetActionList.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetActionList.go
index d87d31369..36f870f77 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetActionList.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetActionList.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -188,7 +189,15 @@ func BACnetActionListParse(readBuffer utils.ReadBuffer) (BACnetActionList, error
 	}, nil
 }
 
-func (m *_BACnetActionList) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetActionList) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetActionList) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	if pushErr := writeBuffer.PushContext("BACnetActionList"); pushErr != nil {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetActionTagged.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetActionTagged.go
index 502b14501..b9b7b384b 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetActionTagged.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetActionTagged.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -166,7 +167,15 @@ func BACnetActionTaggedParse(readBuffer utils.ReadBuffer, tagNumber uint8, tagCl
 	}, nil
 }
 
-func (m *_BACnetActionTagged) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetActionTagged) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetActionTagged) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	if pushErr := writeBuffer.PushContext("BACnetActionTagged"); pushErr != nil {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetAddress.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetAddress.go
index b41bf5bb0..17e44959a 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetAddress.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetAddress.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -201,7 +202,15 @@ func BACnetAddressParse(readBuffer utils.ReadBuffer) (BACnetAddress, error) {
 	}, nil
 }
 
-func (m *_BACnetAddress) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetAddress) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetAddress) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	if pushErr := writeBuffer.PushContext("BACnetAddress"); pushErr != nil {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetAddressBinding.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetAddressBinding.go
index 8e7e3e51a..f20d06ece 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetAddressBinding.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetAddressBinding.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -153,7 +154,15 @@ func BACnetAddressBindingParse(readBuffer utils.ReadBuffer) (BACnetAddressBindin
 	}, nil
 }
 
-func (m *_BACnetAddressBinding) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetAddressBinding) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetAddressBinding) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	if pushErr := writeBuffer.PushContext("BACnetAddressBinding"); pushErr != nil {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetAddressEnclosed.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetAddressEnclosed.go
index af82cbd3a..c2ca102c9 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetAddressEnclosed.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetAddressEnclosed.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -181,7 +182,15 @@ func BACnetAddressEnclosedParse(readBuffer utils.ReadBuffer, tagNumber uint8) (B
 	}, nil
 }
 
-func (m *_BACnetAddressEnclosed) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetAddressEnclosed) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetAddressEnclosed) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	if pushErr := writeBuffer.PushContext("BACnetAddressEnclosed"); pushErr != nil {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetApplicationTagBitString.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetApplicationTagBitString.go
index b65b4b681..dbf160ce4 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetApplicationTagBitString.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetApplicationTagBitString.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -157,7 +158,15 @@ func BACnetApplicationTagBitStringParse(readBuffer utils.ReadBuffer, header BACn
 	return _child, nil
 }
 
-func (m *_BACnetApplicationTagBitString) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetApplicationTagBitString) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetApplicationTagBitString) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetApplicationTagBoolean.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetApplicationTagBoolean.go
index 4282083e6..b51772864 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetApplicationTagBoolean.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetApplicationTagBoolean.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -179,7 +180,15 @@ func BACnetApplicationTagBooleanParse(readBuffer utils.ReadBuffer, header BACnet
 	return _child, nil
 }
 
-func (m *_BACnetApplicationTagBoolean) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetApplicationTagBoolean) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetApplicationTagBoolean) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetApplicationTagCharacterString.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetApplicationTagCharacterString.go
index f5f02ad0c..9f78363a7 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetApplicationTagCharacterString.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetApplicationTagCharacterString.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -179,7 +180,15 @@ func BACnetApplicationTagCharacterStringParse(readBuffer utils.ReadBuffer, heade
 	return _child, nil
 }
 
-func (m *_BACnetApplicationTagCharacterString) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetApplicationTagCharacterString) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetApplicationTagCharacterString) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetApplicationTagDate.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetApplicationTagDate.go
index 31af33910..84a705a3b 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetApplicationTagDate.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetApplicationTagDate.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -157,7 +158,15 @@ func BACnetApplicationTagDateParse(readBuffer utils.ReadBuffer) (BACnetApplicati
 	return _child, nil
 }
 
-func (m *_BACnetApplicationTagDate) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetApplicationTagDate) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetApplicationTagDate) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetApplicationTagDouble.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetApplicationTagDouble.go
index f185d85c2..0423e538d 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetApplicationTagDouble.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetApplicationTagDouble.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -179,7 +180,15 @@ func BACnetApplicationTagDoubleParse(readBuffer utils.ReadBuffer) (BACnetApplica
 	return _child, nil
 }
 
-func (m *_BACnetApplicationTagDouble) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetApplicationTagDouble) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetApplicationTagDouble) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetApplicationTagEnumerated.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetApplicationTagEnumerated.go
index b608616fd..23eac6ed5 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetApplicationTagEnumerated.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetApplicationTagEnumerated.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -179,7 +180,15 @@ func BACnetApplicationTagEnumeratedParse(readBuffer utils.ReadBuffer, header BAC
 	return _child, nil
 }
 
-func (m *_BACnetApplicationTagEnumerated) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetApplicationTagEnumerated) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetApplicationTagEnumerated) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetApplicationTagNull.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetApplicationTagNull.go
index 5b574ba0e..723e49eef 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetApplicationTagNull.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetApplicationTagNull.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -122,7 +123,15 @@ func BACnetApplicationTagNullParse(readBuffer utils.ReadBuffer) (BACnetApplicati
 	return _child, nil
 }
 
-func (m *_BACnetApplicationTagNull) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetApplicationTagNull) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetApplicationTagNull) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetApplicationTagObjectIdentifier.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetApplicationTagObjectIdentifier.go
index f89c3f876..8bf45d3e4 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetApplicationTagObjectIdentifier.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetApplicationTagObjectIdentifier.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -192,7 +193,15 @@ func BACnetApplicationTagObjectIdentifierParse(readBuffer utils.ReadBuffer) (BAC
 	return _child, nil
 }
 
-func (m *_BACnetApplicationTagObjectIdentifier) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetApplicationTagObjectIdentifier) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetApplicationTagObjectIdentifier) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetApplicationTagOctetString.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetApplicationTagOctetString.go
index 4a944e4b0..4d49ba3ef 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetApplicationTagOctetString.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetApplicationTagOctetString.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -157,7 +158,15 @@ func BACnetApplicationTagOctetStringParse(readBuffer utils.ReadBuffer, header BA
 	return _child, nil
 }
 
-func (m *_BACnetApplicationTagOctetString) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetApplicationTagOctetString) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetApplicationTagOctetString) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetApplicationTagReal.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetApplicationTagReal.go
index d7936c69a..541c79765 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetApplicationTagReal.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetApplicationTagReal.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -179,7 +180,15 @@ func BACnetApplicationTagRealParse(readBuffer utils.ReadBuffer) (BACnetApplicati
 	return _child, nil
 }
 
-func (m *_BACnetApplicationTagReal) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetApplicationTagReal) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetApplicationTagReal) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetApplicationTagSignedInteger.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetApplicationTagSignedInteger.go
index 94dd62399..b309651a9 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetApplicationTagSignedInteger.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetApplicationTagSignedInteger.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -179,7 +180,15 @@ func BACnetApplicationTagSignedIntegerParse(readBuffer utils.ReadBuffer, header
 	return _child, nil
 }
 
-func (m *_BACnetApplicationTagSignedInteger) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetApplicationTagSignedInteger) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetApplicationTagSignedInteger) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetApplicationTagTime.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetApplicationTagTime.go
index 972878c91..f80ba2782 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetApplicationTagTime.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetApplicationTagTime.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -157,7 +158,15 @@ func BACnetApplicationTagTimeParse(readBuffer utils.ReadBuffer) (BACnetApplicati
 	return _child, nil
 }
 
-func (m *_BACnetApplicationTagTime) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetApplicationTagTime) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetApplicationTagTime) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetApplicationTagUnsignedInteger.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetApplicationTagUnsignedInteger.go
index 88dca725a..1b9624a9f 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetApplicationTagUnsignedInteger.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetApplicationTagUnsignedInteger.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -179,7 +180,15 @@ func BACnetApplicationTagUnsignedIntegerParse(readBuffer utils.ReadBuffer, heade
 	return _child, nil
 }
 
-func (m *_BACnetApplicationTagUnsignedInteger) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetApplicationTagUnsignedInteger) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetApplicationTagUnsignedInteger) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetAssignedAccessRights.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetAssignedAccessRights.go
index 8c2f8098e..d7cc3121b 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetAssignedAccessRights.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetAssignedAccessRights.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -153,7 +154,15 @@ func BACnetAssignedAccessRightsParse(readBuffer utils.ReadBuffer) (BACnetAssigne
 	}, nil
 }
 
-func (m *_BACnetAssignedAccessRights) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetAssignedAccessRights) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetAssignedAccessRights) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	if pushErr := writeBuffer.PushContext("BACnetAssignedAccessRights"); pushErr != nil {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetAssignedLandingCalls.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetAssignedLandingCalls.go
index 61bce8ee8..76f249bbf 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetAssignedLandingCalls.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetAssignedLandingCalls.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -129,7 +130,15 @@ func BACnetAssignedLandingCallsParse(readBuffer utils.ReadBuffer) (BACnetAssigne
 	}, nil
 }
 
-func (m *_BACnetAssignedLandingCalls) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetAssignedLandingCalls) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetAssignedLandingCalls) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	if pushErr := writeBuffer.PushContext("BACnetAssignedLandingCalls"); pushErr != nil {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetAssignedLandingCallsLandingCallsList.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetAssignedLandingCallsLandingCallsList.go
index b0c714672..5efc7c8e4 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetAssignedLandingCallsLandingCallsList.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetAssignedLandingCallsLandingCallsList.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -192,7 +193,15 @@ func BACnetAssignedLandingCallsLandingCallsListParse(readBuffer utils.ReadBuffer
 	}, nil
 }
 
-func (m *_BACnetAssignedLandingCallsLandingCallsList) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetAssignedLandingCallsLandingCallsList) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetAssignedLandingCallsLandingCallsList) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	if pushErr := writeBuffer.PushContext("BACnetAssignedLandingCallsLandingCallsList"); pushErr != nil {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetAssignedLandingCallsLandingCallsListEntry.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetAssignedLandingCallsLandingCallsListEntry.go
index 1b5ac88d3..871ecf864 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetAssignedLandingCallsLandingCallsListEntry.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetAssignedLandingCallsLandingCallsListEntry.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -153,7 +154,15 @@ func BACnetAssignedLandingCallsLandingCallsListEntryParse(readBuffer utils.ReadB
 	}, nil
 }
 
-func (m *_BACnetAssignedLandingCallsLandingCallsListEntry) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetAssignedLandingCallsLandingCallsListEntry) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetAssignedLandingCallsLandingCallsListEntry) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	if pushErr := writeBuffer.PushContext("BACnetAssignedLandingCallsLandingCallsListEntry"); pushErr != nil {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthenticationFactor.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthenticationFactor.go
index ecf598ad3..651fbc33a 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthenticationFactor.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthenticationFactor.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -177,7 +178,15 @@ func BACnetAuthenticationFactorParse(readBuffer utils.ReadBuffer) (BACnetAuthent
 	}, nil
 }
 
-func (m *_BACnetAuthenticationFactor) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetAuthenticationFactor) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetAuthenticationFactor) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	if pushErr := writeBuffer.PushContext("BACnetAuthenticationFactor"); pushErr != nil {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthenticationFactorEnclosed.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthenticationFactorEnclosed.go
index 1900c4863..855864239 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthenticationFactorEnclosed.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthenticationFactorEnclosed.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -181,7 +182,15 @@ func BACnetAuthenticationFactorEnclosedParse(readBuffer utils.ReadBuffer, tagNum
 	}, nil
 }
 
-func (m *_BACnetAuthenticationFactorEnclosed) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetAuthenticationFactorEnclosed) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetAuthenticationFactorEnclosed) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	if pushErr := writeBuffer.PushContext("BACnetAuthenticationFactorEnclosed"); pushErr != nil {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthenticationFactorFormat.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthenticationFactorFormat.go
index d28bee0e0..9b5e982b3 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthenticationFactorFormat.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthenticationFactorFormat.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 	"io"
@@ -200,7 +201,15 @@ func BACnetAuthenticationFactorFormatParse(readBuffer utils.ReadBuffer) (BACnetA
 	}, nil
 }
 
-func (m *_BACnetAuthenticationFactorFormat) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetAuthenticationFactorFormat) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetAuthenticationFactorFormat) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	if pushErr := writeBuffer.PushContext("BACnetAuthenticationFactorFormat"); pushErr != nil {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthenticationFactorType.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthenticationFactorType.go
index a8b099015..0f57ba4a5 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthenticationFactorType.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthenticationFactorType.go
@@ -20,6 +20,8 @@
 package model
 
 import (
+	"encoding/binary"
+
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -30,7 +32,7 @@ import (
 type BACnetAuthenticationFactorType uint8
 
 type IBACnetAuthenticationFactorType interface {
-	Serialize(writeBuffer utils.WriteBuffer) error
+	utils.Serializable
 }
 
 const (
@@ -246,7 +248,15 @@ func BACnetAuthenticationFactorTypeParse(readBuffer utils.ReadBuffer) (BACnetAut
 	}
 }
 
-func (e BACnetAuthenticationFactorType) Serialize(writeBuffer utils.WriteBuffer) error {
+func (e BACnetAuthenticationFactorType) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := e.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (e BACnetAuthenticationFactorType) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	return writeBuffer.WriteUint8("BACnetAuthenticationFactorType", 8, uint8(e), utils.WithAdditionalStringRepresentation(e.PLC4XEnumName()))
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthenticationFactorTypeTagged.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthenticationFactorTypeTagged.go
index d954c6eb8..76a85dbc6 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthenticationFactorTypeTagged.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthenticationFactorTypeTagged.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -166,7 +167,15 @@ func BACnetAuthenticationFactorTypeTaggedParse(readBuffer utils.ReadBuffer, tagN
 	}, nil
 }
 
-func (m *_BACnetAuthenticationFactorTypeTagged) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetAuthenticationFactorTypeTagged) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetAuthenticationFactorTypeTagged) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	if pushErr := writeBuffer.PushContext("BACnetAuthenticationFactorTypeTagged"); pushErr != nil {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthenticationPolicy.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthenticationPolicy.go
index 781ef5741..b40efa5bb 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthenticationPolicy.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthenticationPolicy.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -177,7 +178,15 @@ func BACnetAuthenticationPolicyParse(readBuffer utils.ReadBuffer) (BACnetAuthent
 	}, nil
 }
 
-func (m *_BACnetAuthenticationPolicy) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetAuthenticationPolicy) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetAuthenticationPolicy) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	if pushErr := writeBuffer.PushContext("BACnetAuthenticationPolicy"); pushErr != nil {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthenticationPolicyList.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthenticationPolicyList.go
index f6694e0fa..54a92bbcd 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthenticationPolicyList.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthenticationPolicyList.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -192,7 +193,15 @@ func BACnetAuthenticationPolicyListParse(readBuffer utils.ReadBuffer, tagNumber
 	}, nil
 }
 
-func (m *_BACnetAuthenticationPolicyList) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetAuthenticationPolicyList) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetAuthenticationPolicyList) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	if pushErr := writeBuffer.PushContext("BACnetAuthenticationPolicyList"); pushErr != nil {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthenticationPolicyListEntry.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthenticationPolicyListEntry.go
index f93324a94..7071c2067 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthenticationPolicyListEntry.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthenticationPolicyListEntry.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -153,7 +154,15 @@ func BACnetAuthenticationPolicyListEntryParse(readBuffer utils.ReadBuffer) (BACn
 	}, nil
 }
 
-func (m *_BACnetAuthenticationPolicyListEntry) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetAuthenticationPolicyListEntry) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetAuthenticationPolicyListEntry) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	if pushErr := writeBuffer.PushContext("BACnetAuthenticationPolicyListEntry"); pushErr != nil {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthenticationStatus.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthenticationStatus.go
index fb1d58b70..0b4bb0c4b 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthenticationStatus.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthenticationStatus.go
@@ -20,6 +20,8 @@
 package model
 
 import (
+	"encoding/binary"
+
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -30,7 +32,7 @@ import (
 type BACnetAuthenticationStatus uint8
 
 type IBACnetAuthenticationStatus interface {
-	Serialize(writeBuffer utils.WriteBuffer) error
+	utils.Serializable
 }
 
 const (
@@ -138,7 +140,15 @@ func BACnetAuthenticationStatusParse(readBuffer utils.ReadBuffer) (BACnetAuthent
 	}
 }
 
-func (e BACnetAuthenticationStatus) Serialize(writeBuffer utils.WriteBuffer) error {
+func (e BACnetAuthenticationStatus) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := e.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (e BACnetAuthenticationStatus) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	return writeBuffer.WriteUint8("BACnetAuthenticationStatus", 8, uint8(e), utils.WithAdditionalStringRepresentation(e.PLC4XEnumName()))
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthenticationStatusTagged.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthenticationStatusTagged.go
index 5d08b7c28..71dd79d1a 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthenticationStatusTagged.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthenticationStatusTagged.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -166,7 +167,15 @@ func BACnetAuthenticationStatusTaggedParse(readBuffer utils.ReadBuffer, tagNumbe
 	}, nil
 }
 
-func (m *_BACnetAuthenticationStatusTagged) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetAuthenticationStatusTagged) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetAuthenticationStatusTagged) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	if pushErr := writeBuffer.PushContext("BACnetAuthenticationStatusTagged"); pushErr != nil {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthorizationExemption.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthorizationExemption.go
index 376c62409..25a42df62 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthorizationExemption.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthorizationExemption.go
@@ -20,6 +20,8 @@
 package model
 
 import (
+	"encoding/binary"
+
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -30,7 +32,7 @@ import (
 type BACnetAuthorizationExemption uint8
 
 type IBACnetAuthorizationExemption interface {
-	Serialize(writeBuffer utils.WriteBuffer) error
+	utils.Serializable
 }
 
 const (
@@ -144,7 +146,15 @@ func BACnetAuthorizationExemptionParse(readBuffer utils.ReadBuffer) (BACnetAutho
 	}
 }
 
-func (e BACnetAuthorizationExemption) Serialize(writeBuffer utils.WriteBuffer) error {
+func (e BACnetAuthorizationExemption) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := e.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (e BACnetAuthorizationExemption) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	return writeBuffer.WriteUint8("BACnetAuthorizationExemption", 8, uint8(e), utils.WithAdditionalStringRepresentation(e.PLC4XEnumName()))
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthorizationExemptionTagged.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthorizationExemptionTagged.go
index fad38646d..a5946148f 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthorizationExemptionTagged.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthorizationExemptionTagged.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -209,7 +210,15 @@ func BACnetAuthorizationExemptionTaggedParse(readBuffer utils.ReadBuffer, tagNum
 	}, nil
 }
 
-func (m *_BACnetAuthorizationExemptionTagged) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetAuthorizationExemptionTagged) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetAuthorizationExemptionTagged) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	if pushErr := writeBuffer.PushContext("BACnetAuthorizationExemptionTagged"); pushErr != nil {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthorizationMode.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthorizationMode.go
index b31c2a561..048bb4cab 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthorizationMode.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthorizationMode.go
@@ -20,6 +20,8 @@
 package model
 
 import (
+	"encoding/binary"
+
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -30,7 +32,7 @@ import (
 type BACnetAuthorizationMode uint16
 
 type IBACnetAuthorizationMode interface {
-	Serialize(writeBuffer utils.WriteBuffer) error
+	utils.Serializable
 }
 
 const (
@@ -138,7 +140,15 @@ func BACnetAuthorizationModeParse(readBuffer utils.ReadBuffer) (BACnetAuthorizat
 	}
 }
 
-func (e BACnetAuthorizationMode) Serialize(writeBuffer utils.WriteBuffer) error {
+func (e BACnetAuthorizationMode) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := e.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (e BACnetAuthorizationMode) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	return writeBuffer.WriteUint16("BACnetAuthorizationMode", 16, uint16(e), utils.WithAdditionalStringRepresentation(e.PLC4XEnumName()))
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthorizationModeTagged.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthorizationModeTagged.go
index 9674e97e6..743ebd078 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthorizationModeTagged.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthorizationModeTagged.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -209,7 +210,15 @@ func BACnetAuthorizationModeTaggedParse(readBuffer utils.ReadBuffer, tagNumber u
 	}, nil
 }
 
-func (m *_BACnetAuthorizationModeTagged) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetAuthorizationModeTagged) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetAuthorizationModeTagged) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	if pushErr := writeBuffer.PushContext("BACnetAuthorizationModeTagged"); pushErr != nil {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetBDTEntry.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetBDTEntry.go
index d5fb8c074..1ea0e2db4 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetBDTEntry.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetBDTEntry.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 	"io"
@@ -165,7 +166,15 @@ func BACnetBDTEntryParse(readBuffer utils.ReadBuffer) (BACnetBDTEntry, error) {
 	}, nil
 }
 
-func (m *_BACnetBDTEntry) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetBDTEntry) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetBDTEntry) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	if pushErr := writeBuffer.PushContext("BACnetBDTEntry"); pushErr != nil {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetBackupState.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetBackupState.go
index a2ba0d616..76aa4bd49 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetBackupState.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetBackupState.go
@@ -20,6 +20,8 @@
 package model
 
 import (
+	"encoding/binary"
+
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -30,7 +32,7 @@ import (
 type BACnetBackupState uint8
 
 type IBACnetBackupState interface {
-	Serialize(writeBuffer utils.WriteBuffer) error
+	utils.Serializable
 }
 
 const (
@@ -138,7 +140,15 @@ func BACnetBackupStateParse(readBuffer utils.ReadBuffer) (BACnetBackupState, err
 	}
 }
 
-func (e BACnetBackupState) Serialize(writeBuffer utils.WriteBuffer) error {
+func (e BACnetBackupState) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := e.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (e BACnetBackupState) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	return writeBuffer.WriteUint8("BACnetBackupState", 8, uint8(e), utils.WithAdditionalStringRepresentation(e.PLC4XEnumName()))
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetBackupStateTagged.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetBackupStateTagged.go
index d07805b91..37dfd58e2 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetBackupStateTagged.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetBackupStateTagged.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -166,7 +167,15 @@ func BACnetBackupStateTaggedParse(readBuffer utils.ReadBuffer, tagNumber uint8,
 	}, nil
 }
 
-func (m *_BACnetBackupStateTagged) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetBackupStateTagged) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetBackupStateTagged) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	if pushErr := writeBuffer.PushContext("BACnetBackupStateTagged"); pushErr != nil {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetBinaryLightingPV.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetBinaryLightingPV.go
index 833ba0edc..294a0c424 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetBinaryLightingPV.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetBinaryLightingPV.go
@@ -20,6 +20,8 @@
 package model
 
 import (
+	"encoding/binary"
+
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -30,7 +32,7 @@ import (
 type BACnetBinaryLightingPV uint8
 
 type IBACnetBinaryLightingPV interface {
-	Serialize(writeBuffer utils.WriteBuffer) error
+	utils.Serializable
 }
 
 const (
@@ -138,7 +140,15 @@ func BACnetBinaryLightingPVParse(readBuffer utils.ReadBuffer) (BACnetBinaryLight
 	}
 }
 
-func (e BACnetBinaryLightingPV) Serialize(writeBuffer utils.WriteBuffer) error {
+func (e BACnetBinaryLightingPV) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := e.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (e BACnetBinaryLightingPV) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	return writeBuffer.WriteUint8("BACnetBinaryLightingPV", 8, uint8(e), utils.WithAdditionalStringRepresentation(e.PLC4XEnumName()))
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetBinaryLightingPVTagged.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetBinaryLightingPVTagged.go
index a7986f48b..8dbdb2008 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetBinaryLightingPVTagged.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetBinaryLightingPVTagged.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -209,7 +210,15 @@ func BACnetBinaryLightingPVTaggedParse(readBuffer utils.ReadBuffer, tagNumber ui
 	}, nil
 }
 
-func (m *_BACnetBinaryLightingPVTagged) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetBinaryLightingPVTagged) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetBinaryLightingPVTagged) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	if pushErr := writeBuffer.PushContext("BACnetBinaryLightingPVTagged"); pushErr != nil {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetBinaryPV.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetBinaryPV.go
index 08712b497..e8f3409e9 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetBinaryPV.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetBinaryPV.go
@@ -20,6 +20,8 @@
 package model
 
 import (
+	"encoding/binary"
+
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -30,7 +32,7 @@ import (
 type BACnetBinaryPV uint8
 
 type IBACnetBinaryPV interface {
-	Serialize(writeBuffer utils.WriteBuffer) error
+	utils.Serializable
 }
 
 const (
@@ -108,7 +110,15 @@ func BACnetBinaryPVParse(readBuffer utils.ReadBuffer) (BACnetBinaryPV, error) {
 	}
 }
 
-func (e BACnetBinaryPV) Serialize(writeBuffer utils.WriteBuffer) error {
+func (e BACnetBinaryPV) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := e.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (e BACnetBinaryPV) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	return writeBuffer.WriteUint8("BACnetBinaryPV", 8, uint8(e), utils.WithAdditionalStringRepresentation(e.PLC4XEnumName()))
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetBinaryPVTagged.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetBinaryPVTagged.go
index 375e3a81a..221f41b2f 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetBinaryPVTagged.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetBinaryPVTagged.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -166,7 +167,15 @@ func BACnetBinaryPVTaggedParse(readBuffer utils.ReadBuffer, tagNumber uint8, tag
 	}, nil
 }
 
-func (m *_BACnetBinaryPVTagged) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetBinaryPVTagged) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetBinaryPVTagged) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	if pushErr := writeBuffer.PushContext("BACnetBinaryPVTagged"); pushErr != nil {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetCOVMultipleSubscription.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetCOVMultipleSubscription.go
index 34bac9260..6e7976d14 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetCOVMultipleSubscription.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetCOVMultipleSubscription.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -225,7 +226,15 @@ func BACnetCOVMultipleSubscriptionParse(readBuffer utils.ReadBuffer) (BACnetCOVM
 	}, nil
 }
 
-func (m *_BACnetCOVMultipleSubscription) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetCOVMultipleSubscription) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetCOVMultipleSubscription) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	if pushErr := writeBuffer.PushContext("BACnetCOVMultipleSubscription"); pushErr != nil {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetCOVMultipleSubscriptionListOfCovSubscriptionSpecification.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetCOVMultipleSubscriptionListOfCovSubscriptionSpecification.go
index 5e743d73e..58bebda33 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetCOVMultipleSubscriptionListOfCovSubscriptionSpecification.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetCOVMultipleSubscriptionListOfCovSubscriptionSpecification.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -192,7 +193,15 @@ func BACnetCOVMultipleSubscriptionListOfCovSubscriptionSpecificationParse(readBu
 	}, nil
 }
 
-func (m *_BACnetCOVMultipleSubscriptionListOfCovSubscriptionSpecification) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetCOVMultipleSubscriptionListOfCovSubscriptionSpecification) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetCOVMultipleSubscriptionListOfCovSubscriptionSpecification) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	if pushErr := writeBuffer.PushContext("BACnetCOVMultipleSubscriptionListOfCovSubscriptionSpecification"); pushErr != nil {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetCOVMultipleSubscriptionListOfCovSubscriptionSpecificationEntry.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetCOVMultipleSubscriptionListOfCovSubscriptionSpecificationEntry.go
index 60d80e3a9..f78ffac9f 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetCOVMultipleSubscriptionListOfCovSubscriptionSpecificationEntry.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetCOVMultipleSubscriptionListOfCovSubscriptionSpecificationEntry.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -153,7 +154,15 @@ func BACnetCOVMultipleSubscriptionListOfCovSubscriptionSpecificationEntryParse(r
 	}, nil
 }
 
-func (m *_BACnetCOVMultipleSubscriptionListOfCovSubscriptionSpecificationEntry) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetCOVMultipleSubscriptionListOfCovSubscriptionSpecificationEntry) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetCOVMultipleSubscriptionListOfCovSubscriptionSpecificationEntry) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	if pushErr := writeBuffer.PushContext("BACnetCOVMultipleSubscriptionListOfCovSubscriptionSpecificationEntry"); pushErr != nil {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetCOVMultipleSubscriptionListOfCovSubscriptionSpecificationEntryListOfCovReferences.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetCOVMultipleSubscriptionListOfCovSubscriptionSpecificationEntryListOfCovReferences.go
index 4d0f05f1d..60b787b5d 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetCOVMultipleSubscriptionListOfCovSubscriptionSpecificationEntryListOfCovReferences.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetCOVMultipleSubscriptionListOfCovSubscriptionSpecificationEntryListOfCovReferences.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -192,7 +193,15 @@ func BACnetCOVMultipleSubscriptionListOfCovSubscriptionSpecificationEntryListOfC
 	}, nil
 }
 
-func (m *_BACnetCOVMultipleSubscriptionListOfCovSubscriptionSpecificationEntryListOfCovReferences) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetCOVMultipleSubscriptionListOfCovSubscriptionSpecificationEntryListOfCovReferences) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetCOVMultipleSubscriptionListOfCovSubscriptionSpecificationEntryListOfCovReferences) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	if pushErr := writeBuffer.PushContext("BACnetCOVMultipleSubscriptionListOfCovSubscriptionSpecificationEntryListOfCovReferences"); pushErr != nil {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetCOVMultipleSubscriptionListOfCovSubscriptionSpecificationEntryListOfCovReferencesEntry.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetCOVMultipleSubscriptionListOfCovSubscriptionSpecificationEntryListOfCovReferencesEntry.go
index ca60a85ef..1f520d9a6 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetCOVMultipleSubscriptionListOfCovSubscriptionSpecificationEntryListOfCovReferencesEntry.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetCOVMultipleSubscriptionListOfCovSubscriptionSpecificationEntryListOfCovReferencesEntry.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 	"io"
@@ -189,7 +190,15 @@ func BACnetCOVMultipleSubscriptionListOfCovSubscriptionSpecificationEntryListOfC
 	}, nil
 }
 
-func (m *_BACnetCOVMultipleSubscriptionListOfCovSubscriptionSpecificationEntryListOfCovReferencesEntry) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetCOVMultipleSubscriptionListOfCovSubscriptionSpecificationEntryListOfCovReferencesEntry) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetCOVMultipleSubscriptionListOfCovSubscriptionSpecificationEntryListOfCovReferencesEntry) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	if pushErr := writeBuffer.PushContext("BACnetCOVMultipleSubscriptionListOfCovSubscriptionSpecificationEntryListOfCovReferencesEntry"); pushErr != nil {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetCOVSubscription.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetCOVSubscription.go
index 7dc31190f..375531c8f 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetCOVSubscription.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetCOVSubscription.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 	"io"
@@ -237,7 +238,15 @@ func BACnetCOVSubscriptionParse(readBuffer utils.ReadBuffer) (BACnetCOVSubscript
 	}, nil
 }
 
-func (m *_BACnetCOVSubscription) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetCOVSubscription) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetCOVSubscription) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	if pushErr := writeBuffer.PushContext("BACnetCOVSubscription"); pushErr != nil {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetCalendarEntryDate.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetCalendarEntryDate.go
index e8a00ae5d..344ee9b51 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetCalendarEntryDate.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetCalendarEntryDate.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -157,7 +158,15 @@ func BACnetCalendarEntryDateParse(readBuffer utils.ReadBuffer) (BACnetCalendarEn
 	return _child, nil
 }
 
-func (m *_BACnetCalendarEntryDate) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetCalendarEntryDate) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetCalendarEntryDate) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetCalendarEntryDateRange.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetCalendarEntryDateRange.go
index bdd348cc4..666677da6 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetCalendarEntryDateRange.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetCalendarEntryDateRange.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -157,7 +158,15 @@ func BACnetCalendarEntryDateRangeParse(readBuffer utils.ReadBuffer) (BACnetCalen
 	return _child, nil
 }
 
-func (m *_BACnetCalendarEntryDateRange) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetCalendarEntryDateRange) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetCalendarEntryDateRange) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetCalendarEntryEnclosed.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetCalendarEntryEnclosed.go
index 287c27a9a..d4a18048a 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetCalendarEntryEnclosed.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetCalendarEntryEnclosed.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -181,7 +182,15 @@ func BACnetCalendarEntryEnclosedParse(readBuffer utils.ReadBuffer, tagNumber uin
 	}, nil
 }
 
-func (m *_BACnetCalendarEntryEnclosed) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetCalendarEntryEnclosed) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetCalendarEntryEnclosed) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	if pushErr := writeBuffer.PushContext("BACnetCalendarEntryEnclosed"); pushErr != nil {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetCalendarEntryWeekNDay.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetCalendarEntryWeekNDay.go
index 68c20ee0a..f9815c3b7 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetCalendarEntryWeekNDay.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetCalendarEntryWeekNDay.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -157,7 +158,15 @@ func BACnetCalendarEntryWeekNDayParse(readBuffer utils.ReadBuffer) (BACnetCalend
 	return _child, nil
 }
 
-func (m *_BACnetCalendarEntryWeekNDay) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetCalendarEntryWeekNDay) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetCalendarEntryWeekNDay) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetChannelValueBitString.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetChannelValueBitString.go
index 41bb0335d..e6d018ed5 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetChannelValueBitString.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetChannelValueBitString.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -157,7 +158,15 @@ func BACnetChannelValueBitStringParse(readBuffer utils.ReadBuffer) (BACnetChanne
 	return _child, nil
 }
 
-func (m *_BACnetChannelValueBitString) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetChannelValueBitString) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetChannelValueBitString) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetChannelValueBoolean.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetChannelValueBoolean.go
index 644b96285..a3cc5cdad 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetChannelValueBoolean.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetChannelValueBoolean.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -157,7 +158,15 @@ func BACnetChannelValueBooleanParse(readBuffer utils.ReadBuffer) (BACnetChannelV
 	return _child, nil
 }
 
-func (m *_BACnetChannelValueBoolean) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetChannelValueBoolean) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetChannelValueBoolean) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetChannelValueCharacterString.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetChannelValueCharacterString.go
index 457a81caf..56bb26e83 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetChannelValueCharacterString.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetChannelValueCharacterString.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -157,7 +158,15 @@ func BACnetChannelValueCharacterStringParse(readBuffer utils.ReadBuffer) (BACnet
 	return _child, nil
 }
 
-func (m *_BACnetChannelValueCharacterString) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetChannelValueCharacterString) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetChannelValueCharacterString) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetChannelValueDate.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetChannelValueDate.go
index 42a51eace..71911a92c 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetChannelValueDate.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetChannelValueDate.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -157,7 +158,15 @@ func BACnetChannelValueDateParse(readBuffer utils.ReadBuffer) (BACnetChannelValu
 	return _child, nil
 }
 
-func (m *_BACnetChannelValueDate) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetChannelValueDate) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetChannelValueDate) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetChannelValueDouble.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetChannelValueDouble.go
index 81feb69f6..2f4112466 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetChannelValueDouble.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetChannelValueDouble.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -157,7 +158,15 @@ func BACnetChannelValueDoubleParse(readBuffer utils.ReadBuffer) (BACnetChannelVa
 	return _child, nil
 }
 
-func (m *_BACnetChannelValueDouble) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetChannelValueDouble) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetChannelValueDouble) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetChannelValueEnumerated.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetChannelValueEnumerated.go
index 527ca06ca..4440b6ac5 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetChannelValueEnumerated.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetChannelValueEnumerated.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -157,7 +158,15 @@ func BACnetChannelValueEnumeratedParse(readBuffer utils.ReadBuffer) (BACnetChann
 	return _child, nil
 }
 
-func (m *_BACnetChannelValueEnumerated) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetChannelValueEnumerated) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetChannelValueEnumerated) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetChannelValueInteger.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetChannelValueInteger.go
index 3f6cd2348..ed745c773 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetChannelValueInteger.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetChannelValueInteger.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -157,7 +158,15 @@ func BACnetChannelValueIntegerParse(readBuffer utils.ReadBuffer) (BACnetChannelV
 	return _child, nil
 }
 
-func (m *_BACnetChannelValueInteger) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetChannelValueInteger) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetChannelValueInteger) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetChannelValueLightingCommand.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetChannelValueLightingCommand.go
index 97a084eca..ff6680b3d 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetChannelValueLightingCommand.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetChannelValueLightingCommand.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -157,7 +158,15 @@ func BACnetChannelValueLightingCommandParse(readBuffer utils.ReadBuffer) (BACnet
 	return _child, nil
 }
 
-func (m *_BACnetChannelValueLightingCommand) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetChannelValueLightingCommand) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetChannelValueLightingCommand) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetChannelValueNull.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetChannelValueNull.go
index 2c56a8a1b..4f3599ab9 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetChannelValueNull.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetChannelValueNull.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -157,7 +158,15 @@ func BACnetChannelValueNullParse(readBuffer utils.ReadBuffer) (BACnetChannelValu
 	return _child, nil
 }
 
-func (m *_BACnetChannelValueNull) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetChannelValueNull) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetChannelValueNull) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetChannelValueObjectidentifier.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetChannelValueObjectidentifier.go
index 7385984a8..fe6adbb1d 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetChannelValueObjectidentifier.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetChannelValueObjectidentifier.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -157,7 +158,15 @@ func BACnetChannelValueObjectidentifierParse(readBuffer utils.ReadBuffer) (BACne
 	return _child, nil
 }
 
-func (m *_BACnetChannelValueObjectidentifier) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetChannelValueObjectidentifier) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetChannelValueObjectidentifier) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetChannelValueOctetString.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetChannelValueOctetString.go
index fbe15e912..e7752297f 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetChannelValueOctetString.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetChannelValueOctetString.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -157,7 +158,15 @@ func BACnetChannelValueOctetStringParse(readBuffer utils.ReadBuffer) (BACnetChan
 	return _child, nil
 }
 
-func (m *_BACnetChannelValueOctetString) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetChannelValueOctetString) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetChannelValueOctetString) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetChannelValueReal.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetChannelValueReal.go
index c574670b7..1b5739b3f 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetChannelValueReal.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetChannelValueReal.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -157,7 +158,15 @@ func BACnetChannelValueRealParse(readBuffer utils.ReadBuffer) (BACnetChannelValu
 	return _child, nil
 }
 
-func (m *_BACnetChannelValueReal) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetChannelValueReal) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetChannelValueReal) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetChannelValueTime.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetChannelValueTime.go
index 81acccd98..38f160542 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetChannelValueTime.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetChannelValueTime.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -157,7 +158,15 @@ func BACnetChannelValueTimeParse(readBuffer utils.ReadBuffer) (BACnetChannelValu
 	return _child, nil
 }
 
-func (m *_BACnetChannelValueTime) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetChannelValueTime) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetChannelValueTime) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetChannelValueUnsigned.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetChannelValueUnsigned.go
index 5c2dae246..ebb258581 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetChannelValueUnsigned.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetChannelValueUnsigned.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -157,7 +158,15 @@ func BACnetChannelValueUnsignedParse(readBuffer utils.ReadBuffer) (BACnetChannel
 	return _child, nil
 }
 
-func (m *_BACnetChannelValueUnsigned) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetChannelValueUnsigned) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetChannelValueUnsigned) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetCharacterEncoding.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetCharacterEncoding.go
index 5bd5703e6..f9967c563 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetCharacterEncoding.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetCharacterEncoding.go
@@ -20,6 +20,8 @@
 package model
 
 import (
+	"encoding/binary"
+
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -30,7 +32,7 @@ import (
 type BACnetCharacterEncoding byte
 
 type IBACnetCharacterEncoding interface {
-	Serialize(writeBuffer utils.WriteBuffer) error
+	utils.Serializable
 }
 
 const (
@@ -132,7 +134,15 @@ func BACnetCharacterEncodingParse(readBuffer utils.ReadBuffer) (BACnetCharacterE
 	}
 }
 
-func (e BACnetCharacterEncoding) Serialize(writeBuffer utils.WriteBuffer) error {
+func (e BACnetCharacterEncoding) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := e.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (e BACnetCharacterEncoding) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	return writeBuffer.WriteByte("BACnetCharacterEncoding", byte(e), utils.WithAdditionalStringRepresentation(e.PLC4XEnumName()))
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetClientCOVNone.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetClientCOVNone.go
index 1cb929c20..6fed414ab 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetClientCOVNone.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetClientCOVNone.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -157,7 +158,15 @@ func BACnetClientCOVNoneParse(readBuffer utils.ReadBuffer) (BACnetClientCOVNone,
 	return _child, nil
 }
 
-func (m *_BACnetClientCOVNone) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetClientCOVNone) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetClientCOVNone) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetClientCOVObject.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetClientCOVObject.go
index b79df7d0d..9e6f59531 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetClientCOVObject.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetClientCOVObject.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -157,7 +158,15 @@ func BACnetClientCOVObjectParse(readBuffer utils.ReadBuffer) (BACnetClientCOVObj
 	return _child, nil
 }
 
-func (m *_BACnetClientCOVObject) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetClientCOVObject) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetClientCOVObject) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetClosingTag.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetClosingTag.go
index 815944e24..b27d34c38 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetClosingTag.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetClosingTag.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -148,7 +149,15 @@ func BACnetClosingTagParse(readBuffer utils.ReadBuffer, tagNumberArgument uint8)
 	}, nil
 }
 
-func (m *_BACnetClosingTag) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetClosingTag) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetClosingTag) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	if pushErr := writeBuffer.PushContext("BACnetClosingTag"); pushErr != nil {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceChoice.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceChoice.go
index c0deb9112..fd0ac39c9 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceChoice.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceChoice.go
@@ -20,6 +20,8 @@
 package model
 
 import (
+	"encoding/binary"
+
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -30,7 +32,7 @@ import (
 type BACnetConfirmedServiceChoice uint8
 
 type IBACnetConfirmedServiceChoice interface {
-	Serialize(writeBuffer utils.WriteBuffer) error
+	utils.Serializable
 }
 
 const (
@@ -288,7 +290,15 @@ func BACnetConfirmedServiceChoiceParse(readBuffer utils.ReadBuffer) (BACnetConfi
 	}
 }
 
-func (e BACnetConfirmedServiceChoice) Serialize(writeBuffer utils.WriteBuffer) error {
+func (e BACnetConfirmedServiceChoice) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := e.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (e BACnetConfirmedServiceChoice) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	return writeBuffer.WriteUint8("BACnetConfirmedServiceChoice", 8, uint8(e), utils.WithAdditionalStringRepresentation(e.PLC4XEnumName()))
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAcknowledgeAlarm.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAcknowledgeAlarm.go
index 157387ac4..2d55d5ef0 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAcknowledgeAlarm.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAcknowledgeAlarm.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -287,7 +288,15 @@ func BACnetConfirmedServiceRequestAcknowledgeAlarmParse(readBuffer utils.ReadBuf
 	return _child, nil
 }
 
-func (m *_BACnetConfirmedServiceRequestAcknowledgeAlarm) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetConfirmedServiceRequestAcknowledgeAlarm) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetConfirmedServiceRequestAcknowledgeAlarm) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAddListElement.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAddListElement.go
index fb1ebd160..11d0d6465 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAddListElement.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAddListElement.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 	"io"
@@ -260,7 +261,15 @@ func BACnetConfirmedServiceRequestAddListElementParse(readBuffer utils.ReadBuffe
 	return _child, nil
 }
 
-func (m *_BACnetConfirmedServiceRequestAddListElement) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetConfirmedServiceRequestAddListElement) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetConfirmedServiceRequestAddListElement) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAtomicReadFile.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAtomicReadFile.go
index 505300428..f76ae4376 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAtomicReadFile.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAtomicReadFile.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -187,7 +188,15 @@ func BACnetConfirmedServiceRequestAtomicReadFileParse(readBuffer utils.ReadBuffe
 	return _child, nil
 }
 
-func (m *_BACnetConfirmedServiceRequestAtomicReadFile) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetConfirmedServiceRequestAtomicReadFile) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetConfirmedServiceRequestAtomicReadFile) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAtomicReadFileRecord.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAtomicReadFileRecord.go
index baadfd1b6..a2eda121f 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAtomicReadFileRecord.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAtomicReadFileRecord.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -184,7 +185,15 @@ func BACnetConfirmedServiceRequestAtomicReadFileRecordParse(readBuffer utils.Rea
 	return _child, nil
 }
 
-func (m *_BACnetConfirmedServiceRequestAtomicReadFileRecord) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetConfirmedServiceRequestAtomicReadFileRecord) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetConfirmedServiceRequestAtomicReadFileRecord) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAtomicReadFileStream.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAtomicReadFileStream.go
index ae5d68b35..6b71fbb6b 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAtomicReadFileStream.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAtomicReadFileStream.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -184,7 +185,15 @@ func BACnetConfirmedServiceRequestAtomicReadFileStreamParse(readBuffer utils.Rea
 	return _child, nil
 }
 
-func (m *_BACnetConfirmedServiceRequestAtomicReadFileStream) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetConfirmedServiceRequestAtomicReadFileStream) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetConfirmedServiceRequestAtomicReadFileStream) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAtomicWriteFile.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAtomicWriteFile.go
index 344402163..cc0a14abc 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAtomicWriteFile.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAtomicWriteFile.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 	"io"
@@ -285,7 +286,15 @@ func BACnetConfirmedServiceRequestAtomicWriteFileParse(readBuffer utils.ReadBuff
 	return _child, nil
 }
 
-func (m *_BACnetConfirmedServiceRequestAtomicWriteFile) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetConfirmedServiceRequestAtomicWriteFile) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetConfirmedServiceRequestAtomicWriteFile) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAuthenticate.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAuthenticate.go
index d898d2555..07b12e3ce 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAuthenticate.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAuthenticate.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -160,7 +161,15 @@ func BACnetConfirmedServiceRequestAuthenticateParse(readBuffer utils.ReadBuffer,
 	return _child, nil
 }
 
-func (m *_BACnetConfirmedServiceRequestAuthenticate) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetConfirmedServiceRequestAuthenticate) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetConfirmedServiceRequestAuthenticate) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedCOVNotification.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedCOVNotification.go
index 9cc294ffe..78eaeddc9 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedCOVNotification.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedCOVNotification.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -262,7 +263,15 @@ func BACnetConfirmedServiceRequestConfirmedCOVNotificationParse(readBuffer utils
 	return _child, nil
 }
 
-func (m *_BACnetConfirmedServiceRequestConfirmedCOVNotification) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetConfirmedServiceRequestConfirmedCOVNotification) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetConfirmedServiceRequestConfirmedCOVNotification) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedCOVNotificationMultiple.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedCOVNotificationMultiple.go
index 3fd701b29..4b7e2de44 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedCOVNotificationMultiple.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedCOVNotificationMultiple.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 	"io"
@@ -274,7 +275,15 @@ func BACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleParse(readBuff
 	return _child, nil
 }
 
-func (m *_BACnetConfirmedServiceRequestConfirmedCOVNotificationMultiple) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetConfirmedServiceRequestConfirmedCOVNotificationMultiple) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetConfirmedServiceRequestConfirmedCOVNotificationMultiple) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedEventNotification.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedEventNotification.go
index 284029e7a..6bd80dbee 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedEventNotification.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedEventNotification.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 	"io"
@@ -507,7 +508,15 @@ func BACnetConfirmedServiceRequestConfirmedEventNotificationParse(readBuffer uti
 	return _child, nil
 }
 
-func (m *_BACnetConfirmedServiceRequestConfirmedEventNotification) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetConfirmedServiceRequestConfirmedEventNotification) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetConfirmedServiceRequestConfirmedEventNotification) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedPrivateTransfer.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedPrivateTransfer.go
index ab3872a4d..5293864c4 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedPrivateTransfer.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedPrivateTransfer.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 	"io"
@@ -224,7 +225,15 @@ func BACnetConfirmedServiceRequestConfirmedPrivateTransferParse(readBuffer utils
 	return _child, nil
 }
 
-func (m *_BACnetConfirmedServiceRequestConfirmedPrivateTransfer) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetConfirmedServiceRequestConfirmedPrivateTransfer) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetConfirmedServiceRequestConfirmedPrivateTransfer) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedTextMessage.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedTextMessage.go
index fe821c4bc..71aac02e0 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedTextMessage.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedTextMessage.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 	"io"
@@ -249,7 +250,15 @@ func BACnetConfirmedServiceRequestConfirmedTextMessageParse(readBuffer utils.Rea
 	return _child, nil
 }
 
-func (m *_BACnetConfirmedServiceRequestConfirmedTextMessage) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetConfirmedServiceRequestConfirmedTextMessage) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetConfirmedServiceRequestConfirmedTextMessage) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedTextMessageMessageClassCharacter.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedTextMessageMessageClassCharacter.go
index a2471bddd..5ff31d83a 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedTextMessageMessageClassCharacter.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedTextMessageMessageClassCharacter.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -161,7 +162,15 @@ func BACnetConfirmedServiceRequestConfirmedTextMessageMessageClassCharacterParse
 	return _child, nil
 }
 
-func (m *_BACnetConfirmedServiceRequestConfirmedTextMessageMessageClassCharacter) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetConfirmedServiceRequestConfirmedTextMessageMessageClassCharacter) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetConfirmedServiceRequestConfirmedTextMessageMessageClassCharacter) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedTextMessageMessageClassNumeric.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedTextMessageMessageClassNumeric.go
index ea5bd63a5..f7facc4f4 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedTextMessageMessageClassNumeric.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedTextMessageMessageClassNumeric.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -161,7 +162,15 @@ func BACnetConfirmedServiceRequestConfirmedTextMessageMessageClassNumericParse(r
 	return _child, nil
 }
 
-func (m *_BACnetConfirmedServiceRequestConfirmedTextMessageMessageClassNumeric) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetConfirmedServiceRequestConfirmedTextMessageMessageClassNumeric) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetConfirmedServiceRequestConfirmedTextMessageMessageClassNumeric) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedTextMessageMessagePriority.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedTextMessageMessagePriority.go
index e993fdb80..77d4c5fc7 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedTextMessageMessagePriority.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedTextMessageMessagePriority.go
@@ -20,6 +20,8 @@
 package model
 
 import (
+	"encoding/binary"
+
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -30,7 +32,7 @@ import (
 type BACnetConfirmedServiceRequestConfirmedTextMessageMessagePriority uint8
 
 type IBACnetConfirmedServiceRequestConfirmedTextMessageMessagePriority interface {
-	Serialize(writeBuffer utils.WriteBuffer) error
+	utils.Serializable
 }
 
 const (
@@ -108,7 +110,15 @@ func BACnetConfirmedServiceRequestConfirmedTextMessageMessagePriorityParse(readB
 	}
 }
 
-func (e BACnetConfirmedServiceRequestConfirmedTextMessageMessagePriority) Serialize(writeBuffer utils.WriteBuffer) error {
+func (e BACnetConfirmedServiceRequestConfirmedTextMessageMessagePriority) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := e.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (e BACnetConfirmedServiceRequestConfirmedTextMessageMessagePriority) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	return writeBuffer.WriteUint8("BACnetConfirmedServiceRequestConfirmedTextMessageMessagePriority", 8, uint8(e), utils.WithAdditionalStringRepresentation(e.PLC4XEnumName()))
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedTextMessageMessagePriorityTagged.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedTextMessageMessagePriorityTagged.go
index cfea7770a..cb7147f7e 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedTextMessageMessagePriorityTagged.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedTextMessageMessagePriorityTagged.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -166,7 +167,15 @@ func BACnetConfirmedServiceRequestConfirmedTextMessageMessagePriorityTaggedParse
 	}, nil
 }
 
-func (m *_BACnetConfirmedServiceRequestConfirmedTextMessageMessagePriorityTagged) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetConfirmedServiceRequestConfirmedTextMessageMessagePriorityTagged) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetConfirmedServiceRequestConfirmedTextMessageMessagePriorityTagged) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	if pushErr := writeBuffer.PushContext("BACnetConfirmedServiceRequestConfirmedTextMessageMessagePriorityTagged"); pushErr != nil {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestCreateObject.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestCreateObject.go
index e17527cb1..739c00bfa 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestCreateObject.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestCreateObject.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 	"io"
@@ -199,7 +200,15 @@ func BACnetConfirmedServiceRequestCreateObjectParse(readBuffer utils.ReadBuffer,
 	return _child, nil
 }
 
-func (m *_BACnetConfirmedServiceRequestCreateObject) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetConfirmedServiceRequestCreateObject) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetConfirmedServiceRequestCreateObject) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestCreateObjectObjectSpecifier.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestCreateObjectObjectSpecifier.go
index ef4276062..583fb763b 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestCreateObjectObjectSpecifier.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestCreateObjectObjectSpecifier.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 	"io"
@@ -293,7 +294,15 @@ func BACnetConfirmedServiceRequestCreateObjectObjectSpecifierParse(readBuffer ut
 	}, nil
 }
 
-func (m *_BACnetConfirmedServiceRequestCreateObjectObjectSpecifier) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetConfirmedServiceRequestCreateObjectObjectSpecifier) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetConfirmedServiceRequestCreateObjectObjectSpecifier) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	if pushErr := writeBuffer.PushContext("BACnetConfirmedServiceRequestCreateObjectObjectSpecifier"); pushErr != nil {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestDeleteObject.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestDeleteObject.go
index 512bfe245..58ee5dfe4 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestDeleteObject.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestDeleteObject.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -162,7 +163,15 @@ func BACnetConfirmedServiceRequestDeleteObjectParse(readBuffer utils.ReadBuffer,
 	return _child, nil
 }
 
-func (m *_BACnetConfirmedServiceRequestDeleteObject) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetConfirmedServiceRequestDeleteObject) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetConfirmedServiceRequestDeleteObject) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestDeviceCommunicationControl.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestDeviceCommunicationControl.go
index c6057d57a..d5dcc0ac6 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestDeviceCommunicationControl.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestDeviceCommunicationControl.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 	"io"
@@ -235,7 +236,15 @@ func BACnetConfirmedServiceRequestDeviceCommunicationControlParse(readBuffer uti
 	return _child, nil
 }
 
-func (m *_BACnetConfirmedServiceRequestDeviceCommunicationControl) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetConfirmedServiceRequestDeviceCommunicationControl) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetConfirmedServiceRequestDeviceCommunicationControl) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestDeviceCommunicationControlEnableDisable.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestDeviceCommunicationControlEnableDisable.go
index 6208a24a8..c9261590b 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestDeviceCommunicationControlEnableDisable.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestDeviceCommunicationControlEnableDisable.go
@@ -20,6 +20,8 @@
 package model
 
 import (
+	"encoding/binary"
+
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -30,7 +32,7 @@ import (
 type BACnetConfirmedServiceRequestDeviceCommunicationControlEnableDisable uint8
 
 type IBACnetConfirmedServiceRequestDeviceCommunicationControlEnableDisable interface {
-	Serialize(writeBuffer utils.WriteBuffer) error
+	utils.Serializable
 }
 
 const (
@@ -114,7 +116,15 @@ func BACnetConfirmedServiceRequestDeviceCommunicationControlEnableDisableParse(r
 	}
 }
 
-func (e BACnetConfirmedServiceRequestDeviceCommunicationControlEnableDisable) Serialize(writeBuffer utils.WriteBuffer) error {
+func (e BACnetConfirmedServiceRequestDeviceCommunicationControlEnableDisable) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := e.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (e BACnetConfirmedServiceRequestDeviceCommunicationControlEnableDisable) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	return writeBuffer.WriteUint8("BACnetConfirmedServiceRequestDeviceCommunicationControlEnableDisable", 8, uint8(e), utils.WithAdditionalStringRepresentation(e.PLC4XEnumName()))
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestDeviceCommunicationControlEnableDisableTagged.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestDeviceCommunicationControlEnableDisableTagged.go
index 1cfde5bb1..d32af759b 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestDeviceCommunicationControlEnableDisableTagged.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestDeviceCommunicationControlEnableDisableTagged.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -166,7 +167,15 @@ func BACnetConfirmedServiceRequestDeviceCommunicationControlEnableDisableTaggedP
 	}, nil
 }
 
-func (m *_BACnetConfirmedServiceRequestDeviceCommunicationControlEnableDisableTagged) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetConfirmedServiceRequestDeviceCommunicationControlEnableDisableTagged) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetConfirmedServiceRequestDeviceCommunicationControlEnableDisableTagged) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	if pushErr := writeBuffer.PushContext("BACnetConfirmedServiceRequestDeviceCommunicationControlEnableDisableTagged"); pushErr != nil {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestGetEnrollmentSummary.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestGetEnrollmentSummary.go
index 5d18ec61b..8d21fcd4b 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestGetEnrollmentSummary.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestGetEnrollmentSummary.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 	"io"
@@ -343,7 +344,15 @@ func BACnetConfirmedServiceRequestGetEnrollmentSummaryParse(readBuffer utils.Rea
 	return _child, nil
 }
 
-func (m *_BACnetConfirmedServiceRequestGetEnrollmentSummary) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetConfirmedServiceRequestGetEnrollmentSummary) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetConfirmedServiceRequestGetEnrollmentSummary) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestGetEnrollmentSummaryAcknowledgementFilter.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestGetEnrollmentSummaryAcknowledgementFilter.go
index 4077aad9e..d96009f16 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestGetEnrollmentSummaryAcknowledgementFilter.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestGetEnrollmentSummaryAcknowledgementFilter.go
@@ -20,6 +20,8 @@
 package model
 
 import (
+	"encoding/binary"
+
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -30,7 +32,7 @@ import (
 type BACnetConfirmedServiceRequestGetEnrollmentSummaryAcknowledgementFilter uint8
 
 type IBACnetConfirmedServiceRequestGetEnrollmentSummaryAcknowledgementFilter interface {
-	Serialize(writeBuffer utils.WriteBuffer) error
+	utils.Serializable
 }
 
 const (
@@ -114,7 +116,15 @@ func BACnetConfirmedServiceRequestGetEnrollmentSummaryAcknowledgementFilterParse
 	}
 }
 
-func (e BACnetConfirmedServiceRequestGetEnrollmentSummaryAcknowledgementFilter) Serialize(writeBuffer utils.WriteBuffer) error {
+func (e BACnetConfirmedServiceRequestGetEnrollmentSummaryAcknowledgementFilter) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := e.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (e BACnetConfirmedServiceRequestGetEnrollmentSummaryAcknowledgementFilter) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	return writeBuffer.WriteUint8("BACnetConfirmedServiceRequestGetEnrollmentSummaryAcknowledgementFilter", 8, uint8(e), utils.WithAdditionalStringRepresentation(e.PLC4XEnumName()))
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestGetEnrollmentSummaryAcknowledgementFilterTagged.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestGetEnrollmentSummaryAcknowledgementFilterTagged.go
index 37334f9bc..9e259be67 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestGetEnrollmentSummaryAcknowledgementFilterTagged.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestGetEnrollmentSummaryAcknowledgementFilterTagged.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -166,7 +167,15 @@ func BACnetConfirmedServiceRequestGetEnrollmentSummaryAcknowledgementFilterTagge
 	}, nil
 }
 
-func (m *_BACnetConfirmedServiceRequestGetEnrollmentSummaryAcknowledgementFilterTagged) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetConfirmedServiceRequestGetEnrollmentSummaryAcknowledgementFilterTagged) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetConfirmedServiceRequestGetEnrollmentSummaryAcknowledgementFilterTagged) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	if pushErr := writeBuffer.PushContext("BACnetConfirmedServiceRequestGetEnrollmentSummaryAcknowledgementFilterTagged"); pushErr != nil {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestGetEnrollmentSummaryEventStateFilter.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestGetEnrollmentSummaryEventStateFilter.go
index 3416e7deb..83a970516 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestGetEnrollmentSummaryEventStateFilter.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestGetEnrollmentSummaryEventStateFilter.go
@@ -20,6 +20,8 @@
 package model
 
 import (
+	"encoding/binary"
+
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -30,7 +32,7 @@ import (
 type BACnetConfirmedServiceRequestGetEnrollmentSummaryEventStateFilter uint8
 
 type IBACnetConfirmedServiceRequestGetEnrollmentSummaryEventStateFilter interface {
-	Serialize(writeBuffer utils.WriteBuffer) error
+	utils.Serializable
 }
 
 const (
@@ -126,7 +128,15 @@ func BACnetConfirmedServiceRequestGetEnrollmentSummaryEventStateFilterParse(read
 	}
 }
 
-func (e BACnetConfirmedServiceRequestGetEnrollmentSummaryEventStateFilter) Serialize(writeBuffer utils.WriteBuffer) error {
+func (e BACnetConfirmedServiceRequestGetEnrollmentSummaryEventStateFilter) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := e.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (e BACnetConfirmedServiceRequestGetEnrollmentSummaryEventStateFilter) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	return writeBuffer.WriteUint8("BACnetConfirmedServiceRequestGetEnrollmentSummaryEventStateFilter", 8, uint8(e), utils.WithAdditionalStringRepresentation(e.PLC4XEnumName()))
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestGetEnrollmentSummaryEventStateFilterTagged.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestGetEnrollmentSummaryEventStateFilterTagged.go
index d5a355550..6950abfff 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestGetEnrollmentSummaryEventStateFilterTagged.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestGetEnrollmentSummaryEventStateFilterTagged.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -166,7 +167,15 @@ func BACnetConfirmedServiceRequestGetEnrollmentSummaryEventStateFilterTaggedPars
 	}, nil
 }
 
-func (m *_BACnetConfirmedServiceRequestGetEnrollmentSummaryEventStateFilterTagged) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetConfirmedServiceRequestGetEnrollmentSummaryEventStateFilterTagged) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetConfirmedServiceRequestGetEnrollmentSummaryEventStateFilterTagged) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	if pushErr := writeBuffer.PushContext("BACnetConfirmedServiceRequestGetEnrollmentSummaryEventStateFilterTagged"); pushErr != nil {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestGetEnrollmentSummaryPriorityFilter.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestGetEnrollmentSummaryPriorityFilter.go
index 2c4d82194..ec18ce42c 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestGetEnrollmentSummaryPriorityFilter.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestGetEnrollmentSummaryPriorityFilter.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -205,7 +206,15 @@ func BACnetConfirmedServiceRequestGetEnrollmentSummaryPriorityFilterParse(readBu
 	}, nil
 }
 
-func (m *_BACnetConfirmedServiceRequestGetEnrollmentSummaryPriorityFilter) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetConfirmedServiceRequestGetEnrollmentSummaryPriorityFilter) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetConfirmedServiceRequestGetEnrollmentSummaryPriorityFilter) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	if pushErr := writeBuffer.PushContext("BACnetConfirmedServiceRequestGetEnrollmentSummaryPriorityFilter"); pushErr != nil {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestGetEventInformation.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestGetEventInformation.go
index 2d6030f58..84e97dbfa 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestGetEventInformation.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestGetEventInformation.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 	"io"
@@ -174,7 +175,15 @@ func BACnetConfirmedServiceRequestGetEventInformationParse(readBuffer utils.Read
 	return _child, nil
 }
 
-func (m *_BACnetConfirmedServiceRequestGetEventInformation) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetConfirmedServiceRequestGetEventInformation) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetConfirmedServiceRequestGetEventInformation) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestLifeSafetyOperation.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestLifeSafetyOperation.go
index e7ec7de39..5c3231d2f 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestLifeSafetyOperation.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestLifeSafetyOperation.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 	"io"
@@ -249,7 +250,15 @@ func BACnetConfirmedServiceRequestLifeSafetyOperationParse(readBuffer utils.Read
 	return _child, nil
 }
 
-func (m *_BACnetConfirmedServiceRequestLifeSafetyOperation) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetConfirmedServiceRequestLifeSafetyOperation) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetConfirmedServiceRequestLifeSafetyOperation) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReadProperty.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReadProperty.go
index 9e9e54b79..22affadfe 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReadProperty.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReadProperty.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 	"io"
@@ -224,7 +225,15 @@ func BACnetConfirmedServiceRequestReadPropertyParse(readBuffer utils.ReadBuffer,
 	return _child, nil
 }
 
-func (m *_BACnetConfirmedServiceRequestReadProperty) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetConfirmedServiceRequestReadProperty) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetConfirmedServiceRequestReadProperty) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReadPropertyConditional.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReadPropertyConditional.go
index 9e72e4def..b1d82e1cd 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReadPropertyConditional.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReadPropertyConditional.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -160,7 +161,15 @@ func BACnetConfirmedServiceRequestReadPropertyConditionalParse(readBuffer utils.
 	return _child, nil
 }
 
-func (m *_BACnetConfirmedServiceRequestReadPropertyConditional) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetConfirmedServiceRequestReadPropertyConditional) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetConfirmedServiceRequestReadPropertyConditional) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReadPropertyMultiple.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReadPropertyMultiple.go
index 5e976bb0e..8c3463c3b 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReadPropertyMultiple.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReadPropertyMultiple.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -177,7 +178,15 @@ func BACnetConfirmedServiceRequestReadPropertyMultipleParse(readBuffer utils.Rea
 	return _child, nil
 }
 
-func (m *_BACnetConfirmedServiceRequestReadPropertyMultiple) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetConfirmedServiceRequestReadPropertyMultiple) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetConfirmedServiceRequestReadPropertyMultiple) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReadRange.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReadRange.go
index 7add3746f..1cafd7b55 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReadRange.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReadRange.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 	"io"
@@ -260,7 +261,15 @@ func BACnetConfirmedServiceRequestReadRangeParse(readBuffer utils.ReadBuffer, se
 	return _child, nil
 }
 
-func (m *_BACnetConfirmedServiceRequestReadRange) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetConfirmedServiceRequestReadRange) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetConfirmedServiceRequestReadRange) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReadRangeRangeByPosition.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReadRangeRangeByPosition.go
index 7545b2f36..536339ea8 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReadRangeRangeByPosition.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReadRangeRangeByPosition.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -184,7 +185,15 @@ func BACnetConfirmedServiceRequestReadRangeRangeByPositionParse(readBuffer utils
 	return _child, nil
 }
 
-func (m *_BACnetConfirmedServiceRequestReadRangeRangeByPosition) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetConfirmedServiceRequestReadRangeRangeByPosition) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetConfirmedServiceRequestReadRangeRangeByPosition) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReadRangeRangeBySequenceNumber.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReadRangeRangeBySequenceNumber.go
index 1c3c0a48b..7f03753ae 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReadRangeRangeBySequenceNumber.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReadRangeRangeBySequenceNumber.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -184,7 +185,15 @@ func BACnetConfirmedServiceRequestReadRangeRangeBySequenceNumberParse(readBuffer
 	return _child, nil
 }
 
-func (m *_BACnetConfirmedServiceRequestReadRangeRangeBySequenceNumber) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetConfirmedServiceRequestReadRangeRangeBySequenceNumber) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetConfirmedServiceRequestReadRangeRangeBySequenceNumber) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReadRangeRangeByTime.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReadRangeRangeByTime.go
index 12e556413..806dc723c 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReadRangeRangeByTime.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReadRangeRangeByTime.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -184,7 +185,15 @@ func BACnetConfirmedServiceRequestReadRangeRangeByTimeParse(readBuffer utils.Rea
 	return _child, nil
 }
 
-func (m *_BACnetConfirmedServiceRequestReadRangeRangeByTime) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetConfirmedServiceRequestReadRangeRangeByTime) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetConfirmedServiceRequestReadRangeRangeByTime) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReinitializeDevice.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReinitializeDevice.go
index c346cec76..126d5d3bd 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReinitializeDevice.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReinitializeDevice.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 	"io"
@@ -199,7 +200,15 @@ func BACnetConfirmedServiceRequestReinitializeDeviceParse(readBuffer utils.ReadB
 	return _child, nil
 }
 
-func (m *_BACnetConfirmedServiceRequestReinitializeDevice) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetConfirmedServiceRequestReinitializeDevice) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetConfirmedServiceRequestReinitializeDevice) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice.go
index 25a0c0eda..1430b0838 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice.go
@@ -20,6 +20,8 @@
 package model
 
 import (
+	"encoding/binary"
+
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -30,7 +32,7 @@ import (
 type BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice uint8
 
 type IBACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice interface {
-	Serialize(writeBuffer utils.WriteBuffer) error
+	utils.Serializable
 }
 
 const (
@@ -150,7 +152,15 @@ func BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevicePa
 	}
 }
 
-func (e BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice) Serialize(writeBuffer utils.WriteBuffer) error {
+func (e BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := e.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (e BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	return writeBuffer.WriteUint8("BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice", 8, uint8(e), utils.WithAdditionalStringRepresentation(e.PLC4XEnumName()))
 }
 
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDeviceTagged.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDeviceTagged.go
index 1a94470a2..7db09fa62 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDeviceTagged.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDeviceTagged.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -166,7 +167,15 @@ func BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDeviceTa
 	}, nil
 }
 
-func (m *_BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDeviceTagged) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDeviceTagged) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDeviceTagged) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	if pushErr := writeBuffer.PushContext("BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDeviceTagged"); pushErr != nil {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestRemoveListElement.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestRemoveListElement.go
index 0c4740f8a..ed177e7f1 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestRemoveListElement.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestRemoveListElement.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 	"io"
@@ -260,7 +261,15 @@ func BACnetConfirmedServiceRequestRemoveListElementParse(readBuffer utils.ReadBu
 	return _child, nil
 }
 
-func (m *_BACnetConfirmedServiceRequestRemoveListElement) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetConfirmedServiceRequestRemoveListElement) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetConfirmedServiceRequestRemoveListElement) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestRequestKey.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestRequestKey.go
index ee2ac6b9e..4e6991992 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestRequestKey.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestRequestKey.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -160,7 +161,15 @@ func BACnetConfirmedServiceRequestRequestKeyParse(readBuffer utils.ReadBuffer, s
 	return _child, nil
 }
 
-func (m *_BACnetConfirmedServiceRequestRequestKey) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetConfirmedServiceRequestRequestKey) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetConfirmedServiceRequestRequestKey) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestSubscribeCOV.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestSubscribeCOV.go
index 1ac7924ad..d514a1455 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestSubscribeCOV.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestSubscribeCOV.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 	"io"
@@ -260,7 +261,15 @@ func BACnetConfirmedServiceRequestSubscribeCOVParse(readBuffer utils.ReadBuffer,
 	return _child, nil
 }
 
-func (m *_BACnetConfirmedServiceRequestSubscribeCOV) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetConfirmedServiceRequestSubscribeCOV) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetConfirmedServiceRequestSubscribeCOV) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestSubscribeCOVProperty.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestSubscribeCOVProperty.go
index 75e35994f..45318fb05 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestSubscribeCOVProperty.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestSubscribeCOVProperty.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 	"io"
@@ -321,7 +322,15 @@ func BACnetConfirmedServiceRequestSubscribeCOVPropertyParse(readBuffer utils.Rea
 	return _child, nil
 }
 
-func (m *_BACnetConfirmedServiceRequestSubscribeCOVProperty) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetConfirmedServiceRequestSubscribeCOVProperty) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetConfirmedServiceRequestSubscribeCOVProperty) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestSubscribeCOVPropertyMultiple.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestSubscribeCOVPropertyMultiple.go
index 40c64c228..75d05ec4d 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestSubscribeCOVPropertyMultiple.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestSubscribeCOVPropertyMultiple.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 	"io"
@@ -296,7 +297,15 @@ func BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleParse(readBuffer u
 	return _child, nil
 }
 
-func (m *_BACnetConfirmedServiceRequestSubscribeCOVPropertyMultiple) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetConfirmedServiceRequestSubscribeCOVPropertyMultiple) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetConfirmedServiceRequestSubscribeCOVPropertyMultiple) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecifications.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecifications.go
index 8ad371682..9c713170e 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecifications.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecifications.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -212,7 +213,15 @@ func BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscript
 	}, nil
 }
 
-func (m *_BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecifications) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecifications) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecifications) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	if pushErr := writeBuffer.PushContext("BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecifications"); pushErr != nil {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsList.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsList.go
index 12352ec5d..e7fda8602 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsList.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsList.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -192,7 +193,15 @@ func BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscript
 	}, nil
 }
 
-func (m *_BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsList) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsList) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsList) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	if pushErr := writeBuffer.PushContext("BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsList"); pushErr != nil {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsReference.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsReference.go
index 104981f59..a2a3074ee 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsReference.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsReference.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 	"io"
@@ -189,7 +190,15 @@ func BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscript
 	}, nil
 }
 
-func (m *_BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsReference) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsReference) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsReference) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	if pushErr := writeBuffer.PushContext("BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsReference"); pushErr != nil {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestUnknown.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestUnknown.go
index 072b7771a..fc148f318 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestUnknown.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestUnknown.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -160,7 +161,15 @@ func BACnetConfirmedServiceRequestUnknownParse(readBuffer utils.ReadBuffer, serv
 	return _child, nil
 }
 
-func (m *_BACnetConfirmedServiceRequestUnknown) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetConfirmedServiceRequestUnknown) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetConfirmedServiceRequestUnknown) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestVTClose.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestVTClose.go
index 6b2cbf77a..fe30ed0e4 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestVTClose.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestVTClose.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -177,7 +178,15 @@ func BACnetConfirmedServiceRequestVTCloseParse(readBuffer utils.ReadBuffer, serv
 	return _child, nil
 }
 
-func (m *_BACnetConfirmedServiceRequestVTClose) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetConfirmedServiceRequestVTClose) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetConfirmedServiceRequestVTClose) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestVTData.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestVTData.go
index 4bb480df6..c464d6476 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestVTData.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestVTData.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -212,7 +213,15 @@ func BACnetConfirmedServiceRequestVTDataParse(readBuffer utils.ReadBuffer, servi
 	return _child, nil
 }
 
-func (m *_BACnetConfirmedServiceRequestVTData) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetConfirmedServiceRequestVTData) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetConfirmedServiceRequestVTData) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestVTOpen.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestVTOpen.go
index 8f6c7728f..8920ff8ea 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestVTOpen.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestVTOpen.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -187,7 +188,15 @@ func BACnetConfirmedServiceRequestVTOpenParse(readBuffer utils.ReadBuffer, servi
 	return _child, nil
 }
 
-func (m *_BACnetConfirmedServiceRequestVTOpen) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetConfirmedServiceRequestVTOpen) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetConfirmedServiceRequestVTOpen) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestWriteProperty.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestWriteProperty.go
index ab4b795d2..5438c3d58 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestWriteProperty.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestWriteProperty.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 	"io"
@@ -285,7 +286,15 @@ func BACnetConfirmedServiceRequestWritePropertyParse(readBuffer utils.ReadBuffer
 	return _child, nil
 }
 
-func (m *_BACnetConfirmedServiceRequestWriteProperty) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetConfirmedServiceRequestWriteProperty) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetConfirmedServiceRequestWriteProperty) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestWritePropertyMultiple.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestWritePropertyMultiple.go
index 806a67834..6b9cf038c 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestWritePropertyMultiple.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestWritePropertyMultiple.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -177,7 +178,15 @@ func BACnetConfirmedServiceRequestWritePropertyMultipleParse(readBuffer utils.Re
 	return _child, nil
 }
 
-func (m *_BACnetConfirmedServiceRequestWritePropertyMultiple) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetConfirmedServiceRequestWritePropertyMultiple) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetConfirmedServiceRequestWritePropertyMultiple) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAPDULength.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAPDULength.go
index 81c765ee5..a213458f6 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAPDULength.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAPDULength.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -192,7 +193,15 @@ func BACnetConstructedDataAPDULengthParse(readBuffer utils.ReadBuffer, tagNumber
 	return _child, nil
 }
 
-func (m *_BACnetConstructedDataAPDULength) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetConstructedDataAPDULength) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetConstructedDataAPDULength) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAPDUSegmentTimeout.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAPDUSegmentTimeout.go
index 30ed904ff..15b415e84 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAPDUSegmentTimeout.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAPDUSegmentTimeout.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -192,7 +193,15 @@ func BACnetConstructedDataAPDUSegmentTimeoutParse(readBuffer utils.ReadBuffer, t
 	return _child, nil
 }
 
-func (m *_BACnetConstructedDataAPDUSegmentTimeout) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetConstructedDataAPDUSegmentTimeout) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetConstructedDataAPDUSegmentTimeout) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAPDUTimeout.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAPDUTimeout.go
index caa3c64a8..2661ed9ba 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAPDUTimeout.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAPDUTimeout.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -192,7 +193,15 @@ func BACnetConstructedDataAPDUTimeoutParse(readBuffer utils.ReadBuffer, tagNumbe
 	return _child, nil
 }
 
-func (m *_BACnetConstructedDataAPDUTimeout) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetConstructedDataAPDUTimeout) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetConstructedDataAPDUTimeout) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAbsenteeLimit.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAbsenteeLimit.go
index 3cb208d1b..c8dfd6944 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAbsenteeLimit.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAbsenteeLimit.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -192,7 +193,15 @@ func BACnetConstructedDataAbsenteeLimitParse(readBuffer utils.ReadBuffer, tagNum
 	return _child, nil
 }
 
-func (m *_BACnetConstructedDataAbsenteeLimit) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetConstructedDataAbsenteeLimit) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetConstructedDataAbsenteeLimit) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAcceptedModes.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAcceptedModes.go
index 0e406d4bf..73841b7f5 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAcceptedModes.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAcceptedModes.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -181,7 +182,15 @@ func BACnetConstructedDataAcceptedModesParse(readBuffer utils.ReadBuffer, tagNum
 	return _child, nil
 }
 
-func (m *_BACnetConstructedDataAcceptedModes) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetConstructedDataAcceptedModes) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetConstructedDataAcceptedModes) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAccessAlarmEvents.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAccessAlarmEvents.go
index 9b57ea6bc..33f7c311a 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAccessAlarmEvents.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAccessAlarmEvents.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -181,7 +182,15 @@ func BACnetConstructedDataAccessAlarmEventsParse(readBuffer utils.ReadBuffer, ta
 	return _child, nil
 }
 
-func (m *_BACnetConstructedDataAccessAlarmEvents) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetConstructedDataAccessAlarmEvents) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetConstructedDataAccessAlarmEvents) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAccessCredentialAll.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAccessCredentialAll.go
index f5997ca7a..c2777bc34 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAccessCredentialAll.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAccessCredentialAll.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -140,7 +141,15 @@ func BACnetConstructedDataAccessCredentialAllParse(readBuffer utils.ReadBuffer,
 	return _child, nil
 }
 
-func (m *_BACnetConstructedDataAccessCredentialAll) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetConstructedDataAccessCredentialAll) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetConstructedDataAccessCredentialAll) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAccessDoorAlarmValues.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAccessDoorAlarmValues.go
index 053beb13b..daf39d57b 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAccessDoorAlarmValues.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAccessDoorAlarmValues.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -181,7 +182,15 @@ func BACnetConstructedDataAccessDoorAlarmValuesParse(readBuffer utils.ReadBuffer
 	return _child, nil
 }
 
-func (m *_BACnetConstructedDataAccessDoorAlarmValues) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetConstructedDataAccessDoorAlarmValues) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetConstructedDataAccessDoorAlarmValues) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAccessDoorAll.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAccessDoorAll.go
index bfd3738a8..755ae4a5a 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAccessDoorAll.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAccessDoorAll.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -140,7 +141,15 @@ func BACnetConstructedDataAccessDoorAllParse(readBuffer utils.ReadBuffer, tagNum
 	return _child, nil
 }
 
-func (m *_BACnetConstructedDataAccessDoorAll) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetConstructedDataAccessDoorAll) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetConstructedDataAccessDoorAll) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAccessDoorFaultValues.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAccessDoorFaultValues.go
index 1c1374be4..8a65bee80 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAccessDoorFaultValues.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAccessDoorFaultValues.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -181,7 +182,15 @@ func BACnetConstructedDataAccessDoorFaultValuesParse(readBuffer utils.ReadBuffer
 	return _child, nil
 }
 
-func (m *_BACnetConstructedDataAccessDoorFaultValues) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetConstructedDataAccessDoorFaultValues) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetConstructedDataAccessDoorFaultValues) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAccessDoorPresentValue.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAccessDoorPresentValue.go
index 0037c67ed..a28d8589b 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAccessDoorPresentValue.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAccessDoorPresentValue.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -192,7 +193,15 @@ func BACnetConstructedDataAccessDoorPresentValueParse(readBuffer utils.ReadBuffe
 	return _child, nil
 }
 
-func (m *_BACnetConstructedDataAccessDoorPresentValue) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetConstructedDataAccessDoorPresentValue) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetConstructedDataAccessDoorPresentValue) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAccessDoorRelinquishDefault.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAccessDoorRelinquishDefault.go
index c4aec268c..759113f4a 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAccessDoorRelinquishDefault.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAccessDoorRelinquishDefault.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -192,7 +193,15 @@ func BACnetConstructedDataAccessDoorRelinquishDefaultParse(readBuffer utils.Read
 	return _child, nil
 }
 
-func (m *_BACnetConstructedDataAccessDoorRelinquishDefault) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetConstructedDataAccessDoorRelinquishDefault) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetConstructedDataAccessDoorRelinquishDefault) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAccessDoors.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAccessDoors.go
index 94fa95fd4..a344991a9 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAccessDoors.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAccessDoors.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 	"io"
@@ -242,7 +243,15 @@ func BACnetConstructedDataAccessDoorsParse(readBuffer utils.ReadBuffer, tagNumbe
 	return _child, nil
 }
 
-func (m *_BACnetConstructedDataAccessDoors) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetConstructedDataAccessDoors) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetConstructedDataAccessDoors) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAccessEvent.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAccessEvent.go
index e4d32517e..161a6ed43 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAccessEvent.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAccessEvent.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -192,7 +193,15 @@ func BACnetConstructedDataAccessEventParse(readBuffer utils.ReadBuffer, tagNumbe
 	return _child, nil
 }
 
-func (m *_BACnetConstructedDataAccessEvent) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetConstructedDataAccessEvent) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetConstructedDataAccessEvent) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAccessEventAuthenticationFactor.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAccessEventAuthenticationFactor.go
index ca4153f0a..32d02f760 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAccessEventAuthenticationFactor.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAccessEventAuthenticationFactor.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -192,7 +193,15 @@ func BACnetConstructedDataAccessEventAuthenticationFactorParse(readBuffer utils.
 	return _child, nil
 }
 
-func (m *_BACnetConstructedDataAccessEventAuthenticationFactor) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetConstructedDataAccessEventAuthenticationFactor) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetConstructedDataAccessEventAuthenticationFactor) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAccessEventCredential.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAccessEventCredential.go
index 01491a520..cf4902158 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAccessEventCredential.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAccessEventCredential.go
@@ -20,6 +20,7 @@
 package model
 
 import (
+	"encoding/binary"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
@@ -192,7 +193,15 @@ func BACnetConstructedDataAccessEventCredentialParse(readBuffer utils.ReadBuffer
 	return _child, nil
 }
 
-func (m *_BACnetConstructedDataAccessEventCredential) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_BACnetConstructedDataAccessEventCredential) Serialize() ([]byte, error) {
+	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian)) // TODO: get endianness from mspec
+	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+		return nil, err
+	}
+	return wb.GetBytes(), nil
+}
+
+func (m *_BACnetConstructedDataAccessEventCredential) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAccessEventTag.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAccessEventTag.go
... 60845 lines suppressed ...