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/07/12 15:23:08 UTC

[plc4x] branch develop updated: refactor(codegen/plc4go): reworked enum parsing to include a flag if it is a unknown enum

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 2f1730023 refactor(codegen/plc4go): reworked enum parsing to include a flag if it is a unknown enum
2f1730023 is described below

commit 2f1730023fce7e12a81b7f87293018c5937a7da4
Author: Sebastian Rühl <sr...@apache.org>
AuthorDate: Tue Jul 12 17:22:59 2022 +0200

    refactor(codegen/plc4go): reworked enum parsing to include a flag if it is a unknown enum
---
 .../resources/templates/go/enum-template.go.ftlh   |   20 +-
 plc4go/internal/ads/Reader.go                      |    5 +-
 plc4go/internal/s7/TsapIdEncoder.go                |    3 +-
 .../protocols/ads/readwrite/model/AdsDataType.go   |  176 +-
 plc4go/protocols/ads/readwrite/model/CommandId.go  |   56 +-
 .../ads/readwrite/model/ReservedIndexGroups.go     |  136 +-
 plc4go/protocols/ads/readwrite/model/ReturnCode.go |  504 +-
 .../protocols/bacnetip/readwrite/model/ApduType.go |   80 +-
 .../bacnetip/readwrite/model/BACnetAbortReason.go  |   68 +-
 .../BACnetAccessAuthenticationFactorDisable.go     |   44 +-
 .../model/BACnetAccessCredentialDisable.go         |   36 +-
 .../model/BACnetAccessCredentialDisableReason.go   |   60 +-
 .../bacnetip/readwrite/model/BACnetAccessEvent.go  |  236 +-
 .../readwrite/model/BACnetAccessPassbackMode.go    |   28 +-
 .../model/BACnetAccessRuleLocationSpecifier.go     |   24 +-
 .../model/BACnetAccessRuleTimeRangeSpecifier.go    |   24 +-
 .../readwrite/model/BACnetAccessUserType.go        |   32 +-
 .../model/BACnetAccessZoneOccupancyState.go        |   48 +-
 .../BACnetAccumulatorRecordAccumulatorStatus.go    |   36 +-
 .../bacnetip/readwrite/model/BACnetAction.go       |   24 +-
 .../model/BACnetAuthenticationFactorType.go        |  116 +-
 .../readwrite/model/BACnetAuthenticationStatus.go  |   44 +-
 .../model/BACnetAuthorizationExemption.go          |   48 +-
 .../readwrite/model/BACnetAuthorizationMode.go     |   44 +-
 .../bacnetip/readwrite/model/BACnetBackupState.go  |   44 +-
 .../readwrite/model/BACnetBinaryLightingPV.go      |   44 +-
 .../bacnetip/readwrite/model/BACnetBinaryPV.go     |   24 +-
 .../readwrite/model/BACnetCharacterEncoding.go     |   40 +-
 .../model/BACnetConfirmedServiceChoice.go          |  144 +-
 ...ceRequestConfirmedTextMessageMessagePriority.go |   24 +-
 ...questDeviceCommunicationControlEnableDisable.go |   28 +-
 ...estGetEnrollmentSummaryAcknowledgementFilter.go |   28 +-
 ...eRequestGetEnrollmentSummaryEventStateFilter.go |   36 +-
 ...ReinitializeDeviceReinitializedStateOfDevice.go |   52 +-
 .../bacnetip/readwrite/model/BACnetDataType.go     |   72 +-
 .../bacnetip/readwrite/model/BACnetDaysOfWeek.go   |   44 +-
 .../bacnetip/readwrite/model/BACnetDeviceStatus.go |   44 +-
 .../readwrite/model/BACnetDoorAlarmState.go        |   56 +-
 .../readwrite/model/BACnetDoorSecuredStatus.go     |   28 +-
 .../bacnetip/readwrite/model/BACnetDoorStatus.go   |   60 +-
 .../bacnetip/readwrite/model/BACnetDoorValue.go    |   32 +-
 .../readwrite/model/BACnetEngineeringUnits.go      | 1024 +--
 .../readwrite/model/BACnetEscalatorFault.go        |   56 +-
 .../readwrite/model/BACnetEscalatorMode.go         |   44 +-
 .../model/BACnetEscalatorOperationDirection.go     |   44 +-
 .../bacnetip/readwrite/model/BACnetEventState.go   |   44 +-
 .../readwrite/model/BACnetEventTransitionBits.go   |   28 +-
 .../bacnetip/readwrite/model/BACnetEventType.go    |  100 +-
 .../bacnetip/readwrite/model/BACnetFaultType.go    |   48 +-
 .../readwrite/model/BACnetFileAccessMethod.go      |   24 +-
 .../bacnetip/readwrite/model/BACnetIPMode.go       |   28 +-
 .../readwrite/model/BACnetLifeSafetyMode.go        |   80 +-
 .../readwrite/model/BACnetLifeSafetyOperation.go   |   60 +-
 .../readwrite/model/BACnetLifeSafetyState.go       |  116 +-
 .../readwrite/model/BACnetLiftCarDirection.go      |   44 +-
 .../readwrite/model/BACnetLiftCarDoorCommand.go    |   28 +-
 .../readwrite/model/BACnetLiftCarDriveStatus.go    |   60 +-
 .../bacnetip/readwrite/model/BACnetLiftCarMode.go  |   76 +-
 .../bacnetip/readwrite/model/BACnetLiftFault.go    |   88 +-
 .../readwrite/model/BACnetLiftGroupMode.go         |   44 +-
 .../readwrite/model/BACnetLightingInProgress.go    |   36 +-
 .../readwrite/model/BACnetLightingOperation.go     |   64 +-
 .../readwrite/model/BACnetLightingTransition.go    |   32 +-
 .../bacnetip/readwrite/model/BACnetLimitEnable.go  |   24 +-
 .../bacnetip/readwrite/model/BACnetLockStatus.go   |   36 +-
 .../bacnetip/readwrite/model/BACnetLogStatus.go    |   28 +-
 .../bacnetip/readwrite/model/BACnetLoggingType.go  |   32 +-
 .../bacnetip/readwrite/model/BACnetMaintenance.go  |   36 +-
 .../readwrite/model/BACnetNetworkNumberQuality.go  |   32 +-
 .../readwrite/model/BACnetNetworkPortCommand.go    |   52 +-
 .../bacnetip/readwrite/model/BACnetNetworkType.go  |   64 +-
 .../bacnetip/readwrite/model/BACnetNodeType.go     |  104 +-
 .../bacnetip/readwrite/model/BACnetNotifyType.go   |   28 +-
 .../bacnetip/readwrite/model/BACnetObjectType.go   |  260 +-
 .../readwrite/model/BACnetObjectTypesSupported.go  |  256 +-
 .../bacnetip/readwrite/model/BACnetPolarity.go     |   24 +-
 .../bacnetip/readwrite/model/BACnetProgramError.go |   40 +-
 .../readwrite/model/BACnetProgramRequest.go        |   40 +-
 .../bacnetip/readwrite/model/BACnetProgramState.go |   40 +-
 .../readwrite/model/BACnetPropertyIdentifier.go    | 1848 ++---
 .../readwrite/model/BACnetProtocolLevel.go         |   32 +-
 .../bacnetip/readwrite/model/BACnetRejectReason.go |   60 +-
 .../bacnetip/readwrite/model/BACnetRelationship.go |  140 +-
 .../bacnetip/readwrite/model/BACnetReliability.go  |  116 +-
 .../readwrite/model/BACnetRestartReason.go         |   56 +-
 .../bacnetip/readwrite/model/BACnetResultFlags.go  |   28 +-
 .../readwrite/model/BACnetRouterEntryStatus.go     |   28 +-
 .../readwrite/model/BACnetSecurityLevel.go         |   40 +-
 .../readwrite/model/BACnetSecurityPolicy.go        |   32 +-
 .../bacnetip/readwrite/model/BACnetSegmentation.go |   32 +-
 .../readwrite/model/BACnetServicesSupported.go     |  180 +-
 .../bacnetip/readwrite/model/BACnetShedState.go    |   32 +-
 .../readwrite/model/BACnetSilencedState.go         |   36 +-
 .../bacnetip/readwrite/model/BACnetStatusFlags.go  |   32 +-
 .../bacnetip/readwrite/model/BACnetTimerState.go   |   28 +-
 .../readwrite/model/BACnetTimerTransition.go       |   48 +-
 .../model/BACnetUnconfirmedServiceChoice.go        |   64 +-
 .../bacnetip/readwrite/model/BACnetVTClass.go      |   48 +-
 .../bacnetip/readwrite/model/BACnetVendorId.go     | 5452 +++++++-------
 .../bacnetip/readwrite/model/BACnetWriteStatus.go  |   32 +-
 .../bacnetip/readwrite/model/BVLCResultCode.go     |   44 +-
 .../bacnetip/readwrite/model/ErrorClass.go         |   52 +-
 .../bacnetip/readwrite/model/ErrorCode.go          |  536 +-
 .../readwrite/model/MaxApduLengthAccepted.go       |   80 +-
 .../readwrite/model/MaxSegmentsAccepted.go         |   48 +-
 .../model/NLMRejectRouterToNetworkRejectReason.go  |   44 +-
 .../readwrite/model/NPDUNetworkPriority.go         |   32 +-
 .../bacnetip/readwrite/model/StaticHelper.go       |   16 +-
 .../protocols/bacnetip/readwrite/model/TagClass.go |   24 +-
 .../cbus/readwrite/model/ApplicationId.go          |   96 +-
 .../cbus/readwrite/model/ApplicationIdContainer.go | 1040 +--
 plc4go/protocols/cbus/readwrite/model/Attribute.go |   88 +-
 .../cbus/readwrite/model/CALCommandType.go         |   48 +-
 .../readwrite/model/CALCommandTypeContainer.go     |  416 +-
 .../cbus/readwrite/model/ChannelStatus.go          |   28 +-
 .../cbus/readwrite/model/ConfirmationType.go       |   36 +-
 .../cbus/readwrite/model/DestinationAddressType.go |   28 +-
 plc4go/protocols/cbus/readwrite/model/GAVState.go  |   32 +-
 .../cbus/readwrite/model/LightingCompatible.go     |   32 +-
 .../cbus/readwrite/model/PriorityClass.go          |   32 +-
 .../protocols/cbus/readwrite/model/RequestType.go  |   44 +-
 plc4go/protocols/cbus/readwrite/model/RouteType.go |   48 +-
 .../cbus/readwrite/model/SALCommandType.go         |   32 +-
 .../readwrite/model/SALCommandTypeContainer.go     |   92 +-
 .../protocols/cbus/readwrite/model/StatusCoding.go |   32 +-
 .../protocols/cbus/readwrite/model/UnitStatus.go   |   28 +-
 .../eip/readwrite/model/CIPDataTypeCode.go         |   48 +-
 .../eip/readwrite/model/CIPStructTypeCode.go       |   20 +-
 plc4go/protocols/eip/readwrite/model/EiPCommand.go |   28 +-
 .../protocols/firmata/readwrite/model/PinMode.go   |   64 +-
 .../knxnetip/readwrite/model/AccessLevel.go        |   36 +-
 .../knxnetip/readwrite/model/CEMIPriority.go       |   32 +-
 .../readwrite/model/ComObjectTableAddresses.go     | 7520 ++++++++++----------
 .../knxnetip/readwrite/model/ComObjectValueType.go |   76 +-
 .../knxnetip/readwrite/model/DeviceDescriptor.go   |  132 +-
 .../readwrite/model/DeviceDescriptorMediumType.go  |   40 +-
 .../knxnetip/readwrite/model/FirmwareType.go       |   80 +-
 .../knxnetip/readwrite/model/HostProtocolCode.go   |   24 +-
 .../readwrite/model/KnxDatapointMainType.go        |  260 +-
 .../knxnetip/readwrite/model/KnxDatapointType.go   | 1412 ++--
 .../readwrite/model/KnxInterfaceObjectProperty.go  |  880 +--
 .../readwrite/model/KnxInterfaceObjectType.go      |  116 +-
 .../protocols/knxnetip/readwrite/model/KnxLayer.go |   28 +-
 .../knxnetip/readwrite/model/KnxManufacturer.go    | 2396 +++----
 .../knxnetip/readwrite/model/KnxMedium.go          |   40 +-
 .../readwrite/model/KnxPropertyDataType.go         |  216 +-
 .../protocols/knxnetip/readwrite/model/Status.go   |   64 +-
 .../readwrite/model/SupportedPhysicalMedia.go      |  100 +-
 .../protocols/modbus/readwrite/model/DriverType.go |   28 +-
 .../modbus/readwrite/model/ModbusDataType.go       |  124 +-
 .../ModbusDeviceInformationConformityLevel.go      |   28 +-
 .../model/ModbusDeviceInformationLevel.go          |   32 +-
 .../model/ModbusDeviceInformationMoreFollows.go    |   24 +-
 .../modbus/readwrite/model/ModbusErrorCode.go      |   56 +-
 .../protocols/s7/readwrite/model/AlarmStateType.go |   40 +-
 plc4go/protocols/s7/readwrite/model/AlarmType.go   |   28 +-
 .../s7/readwrite/model/COTPProtocolClass.go        |   36 +-
 .../protocols/s7/readwrite/model/COTPTpduSize.go   |   44 +-
 .../s7/readwrite/model/CpuSubscribeEvents.go       |   32 +-
 .../s7/readwrite/model/DataTransportErrorCode.go   |   40 +-
 .../s7/readwrite/model/DataTransportSize.go        |   44 +-
 plc4go/protocols/s7/readwrite/model/DeviceGroup.go |   28 +-
 plc4go/protocols/s7/readwrite/model/EventType.go   |   32 +-
 plc4go/protocols/s7/readwrite/model/MemoryArea.go  |   52 +-
 .../s7/readwrite/model/ModeTransitionType.go       |   52 +-
 plc4go/protocols/s7/readwrite/model/QueryType.go   |   28 +-
 .../protocols/s7/readwrite/model/SyntaxIdType.go   |   68 +-
 .../s7/readwrite/model/SzlModuleTypeClass.go       |   32 +-
 plc4go/protocols/s7/readwrite/model/SzlSublist.go  |   92 +-
 .../protocols/s7/readwrite/model/TransportSize.go  |  120 +-
 .../readwrite/model/SimulatedDataTypeSizes.go      |  124 +-
 171 files changed, 16073 insertions(+), 16071 deletions(-)

diff --git a/code-generation/language-go/src/main/resources/templates/go/enum-template.go.ftlh b/code-generation/language-go/src/main/resources/templates/go/enum-template.go.ftlh
index 798b55279..a483143e4 100644
--- a/code-generation/language-go/src/main/resources/templates/go/enum-template.go.ftlh
+++ b/code-generation/language-go/src/main/resources/templates/go/enum-template.go.ftlh
@@ -126,28 +126,24 @@ func ${type.name}FirstEnumForField${constantName?cap_first}(value ${helper.getLa
 }
 	</#list>
 </#if>
-func ${type.name}ByValue(value <#if type.type.isPresent()>${helper.getLanguageTypeNameForTypeReference(type.type.orElseThrow())}<#else>string</#if>) ${type.name} {
+func ${type.name}ByValue(value <#if type.type.isPresent()>${helper.getLanguageTypeNameForTypeReference(type.type.orElseThrow())}<#else>string</#if>) (enum ${type.name}, ok bool) {
 	switch value {
 <#list helper.getUniqueEnumValues(type.enumValues) as enumValue>
 		case <#if type.type.orElseThrow().isStringTypeReference()>"${enumValue.value}"<#else>${enumValue.value}</#if>:
-			return ${type.name}_${enumValue.name}
+			return ${type.name}_${enumValue.name}, true
 </#list>
 	}
-	return <#if type.type.orElseThrow().isStringTypeReference()>""<#elseif baseType == "bool">false<#else>0</#if>
+	return <#if type.type.orElseThrow().isStringTypeReference()>""<#elseif baseType == "bool">false<#else>0</#if>, false
 }
 
 func ${type.name}ByName(value string) (enum ${type.name}, ok bool) {
-	ok = true
 	switch value {
 	<#list helper.getUniqueEnumValues(type.enumValues) as enumValue>
 	case "${enumValue.name}":
-		enum = ${type.name}_${enumValue.name}
+		return ${type.name}_${enumValue.name}, true
 	</#list>
-	default:
-		enum = <#if type.type.orElseThrow().isStringTypeReference()>""<#elseif baseType == "bool">false<#else>0</#if>
-		ok = false
 	}
-	return
+	return <#if type.type.orElseThrow().isStringTypeReference()>""<#elseif baseType == "bool">false<#else>0</#if>, false
 }
 
 func ${type.name}Knows(value <#if type.type.isPresent()>${helper.getLanguageTypeNameForTypeReference(type.type.orElseThrow())}<#else>string</#if>)  bool {
@@ -186,7 +182,11 @@ func ${type.name}Parse(readBuffer utils.ReadBuffer) (${type.name}, error) {
 	if err != nil {
 		return <#if type.type.orElseThrow().isStringTypeReference() || type.type.orElseThrow().isVstringTypeReference()>""<#elseif baseType == "bool">false<#else>0</#if>, errors.Wrap(err, "error reading ${type.name}")
 	}
-	return ${type.name}ByValue(val), nil
+	if enum, ok := ${type.name}ByValue(val); !ok {
+		return <#if type.type.orElseThrow().isStringTypeReference() || type.type.orElseThrow().isVstringTypeReference()>""<#elseif baseType == "bool">false<#else>0</#if>, errors.Errorf("no value %v found for ${type.name}", val)
+	} else {
+		return enum, nil
+	}
 }
 
 func (e ${type.name}) Serialize(writeBuffer utils.WriteBuffer) error {
diff --git a/plc4go/internal/ads/Reader.go b/plc4go/internal/ads/Reader.go
index a481ff5a3..2d00306cf 100644
--- a/plc4go/internal/ads/Reader.go
+++ b/plc4go/internal/ads/Reader.go
@@ -396,12 +396,13 @@ func (m *Reader) ToPlc4xReadResponse(amsTcpPaket readWriteModel.AmsTCPPacket, re
 				responseCodes[fieldName] = model.PlcResponseCode_INTERNAL_ERROR
 				continue
 			}
-			switch readWriteModel.ReturnCodeByValue(responseCode) {
+			val, _ := readWriteModel.ReturnCodeByValue(responseCode)
+			switch val {
 			case readWriteModel.ReturnCode_OK:
 				responseCodes[fieldName] = model.PlcResponseCode_OK
 			default:
 				// TODO: Implement this a little more ...
-				log.Error().Stringer("adsReturnCode", readWriteModel.ReturnCodeByValue(responseCode)).Msgf("Unmapped return code for %s", fieldName)
+				log.Error().Stringer("adsReturnCode", val).Msgf("Unmapped return code for %s", fieldName)
 				responseCodes[fieldName] = model.PlcResponseCode_INTERNAL_ERROR
 			}
 		}
diff --git a/plc4go/internal/s7/TsapIdEncoder.go b/plc4go/internal/s7/TsapIdEncoder.go
index 9b3bd3e37..7f746580c 100644
--- a/plc4go/internal/s7/TsapIdEncoder.go
+++ b/plc4go/internal/s7/TsapIdEncoder.go
@@ -29,7 +29,8 @@ func encodeS7TsapId(deviceGroup model.DeviceGroup, rack int32, slot int32) uint1
 
 func decodeDeviceGroup(tsapId int32) model.DeviceGroup {
 	deviceGroupCode := uint8((tsapId >> 8) & (0xFF))
-	return model.DeviceGroupByValue(deviceGroupCode)
+	value, _ := model.DeviceGroupByValue(deviceGroupCode)
+	return value
 }
 
 func decodeRack(tsapId int32) int64 {
diff --git a/plc4go/protocols/ads/readwrite/model/AdsDataType.go b/plc4go/protocols/ads/readwrite/model/AdsDataType.go
index ff9f80b93..54ddfba9d 100644
--- a/plc4go/protocols/ads/readwrite/model/AdsDataType.go
+++ b/plc4go/protocols/ads/readwrite/model/AdsDataType.go
@@ -481,180 +481,176 @@ func AdsDataTypeFirstEnumForFieldDataFormatName(value string) (AdsDataType, erro
 	}
 	return 0, errors.Errorf("enum for %v describing DataFormatName not found", value)
 }
-func AdsDataTypeByValue(value int8) AdsDataType {
+func AdsDataTypeByValue(value int8) (enum AdsDataType, ok bool) {
 	switch value {
 	case 0x01:
-		return AdsDataType_BOOL
+		return AdsDataType_BOOL, true
 	case 0x02:
-		return AdsDataType_BIT
+		return AdsDataType_BIT, true
 	case 0x03:
-		return AdsDataType_BIT8
+		return AdsDataType_BIT8, true
 	case 0x04:
-		return AdsDataType_BYTE
+		return AdsDataType_BYTE, true
 	case 0x05:
-		return AdsDataType_BITARR8
+		return AdsDataType_BITARR8, true
 	case 0x06:
-		return AdsDataType_WORD
+		return AdsDataType_WORD, true
 	case 0x07:
-		return AdsDataType_BITARR16
+		return AdsDataType_BITARR16, true
 	case 0x08:
-		return AdsDataType_DWORD
+		return AdsDataType_DWORD, true
 	case 0x09:
-		return AdsDataType_BITARR32
+		return AdsDataType_BITARR32, true
 	case 0x0A:
-		return AdsDataType_SINT
+		return AdsDataType_SINT, true
 	case 0x0B:
-		return AdsDataType_INT8
+		return AdsDataType_INT8, true
 	case 0x0C:
-		return AdsDataType_USINT
+		return AdsDataType_USINT, true
 	case 0x0D:
-		return AdsDataType_UINT8
+		return AdsDataType_UINT8, true
 	case 0x0E:
-		return AdsDataType_INT
+		return AdsDataType_INT, true
 	case 0x0F:
-		return AdsDataType_INT16
+		return AdsDataType_INT16, true
 	case 0x10:
-		return AdsDataType_UINT
+		return AdsDataType_UINT, true
 	case 0x11:
-		return AdsDataType_UINT16
+		return AdsDataType_UINT16, true
 	case 0x12:
-		return AdsDataType_DINT
+		return AdsDataType_DINT, true
 	case 0x13:
-		return AdsDataType_INT32
+		return AdsDataType_INT32, true
 	case 0x14:
-		return AdsDataType_UDINT
+		return AdsDataType_UDINT, true
 	case 0x15:
-		return AdsDataType_UINT32
+		return AdsDataType_UINT32, true
 	case 0x16:
-		return AdsDataType_LINT
+		return AdsDataType_LINT, true
 	case 0x17:
-		return AdsDataType_INT64
+		return AdsDataType_INT64, true
 	case 0x18:
-		return AdsDataType_ULINT
+		return AdsDataType_ULINT, true
 	case 0x19:
-		return AdsDataType_UINT64
+		return AdsDataType_UINT64, true
 	case 0x1A:
-		return AdsDataType_REAL
+		return AdsDataType_REAL, true
 	case 0x1B:
-		return AdsDataType_FLOAT
+		return AdsDataType_FLOAT, true
 	case 0x1C:
-		return AdsDataType_LREAL
+		return AdsDataType_LREAL, true
 	case 0x1D:
-		return AdsDataType_DOUBLE
+		return AdsDataType_DOUBLE, true
 	case 0x1E:
-		return AdsDataType_CHAR
+		return AdsDataType_CHAR, true
 	case 0x1F:
-		return AdsDataType_WCHAR
+		return AdsDataType_WCHAR, true
 	case 0x20:
-		return AdsDataType_STRING
+		return AdsDataType_STRING, true
 	case 0x21:
-		return AdsDataType_WSTRING
+		return AdsDataType_WSTRING, true
 	case 0x22:
-		return AdsDataType_TIME
+		return AdsDataType_TIME, true
 	case 0x23:
-		return AdsDataType_LTIME
+		return AdsDataType_LTIME, true
 	case 0x24:
-		return AdsDataType_DATE
+		return AdsDataType_DATE, true
 	case 0x25:
-		return AdsDataType_TIME_OF_DAY
+		return AdsDataType_TIME_OF_DAY, true
 	case 0x26:
-		return AdsDataType_TOD
+		return AdsDataType_TOD, true
 	case 0x27:
-		return AdsDataType_DATE_AND_TIME
+		return AdsDataType_DATE_AND_TIME, true
 	case 0x28:
-		return AdsDataType_DT
+		return AdsDataType_DT, true
 	}
-	return 0
+	return 0, false
 }
 
 func AdsDataTypeByName(value string) (enum AdsDataType, ok bool) {
-	ok = true
 	switch value {
 	case "BOOL":
-		enum = AdsDataType_BOOL
+		return AdsDataType_BOOL, true
 	case "BIT":
-		enum = AdsDataType_BIT
+		return AdsDataType_BIT, true
 	case "BIT8":
-		enum = AdsDataType_BIT8
+		return AdsDataType_BIT8, true
 	case "BYTE":
-		enum = AdsDataType_BYTE
+		return AdsDataType_BYTE, true
 	case "BITARR8":
-		enum = AdsDataType_BITARR8
+		return AdsDataType_BITARR8, true
 	case "WORD":
-		enum = AdsDataType_WORD
+		return AdsDataType_WORD, true
 	case "BITARR16":
-		enum = AdsDataType_BITARR16
+		return AdsDataType_BITARR16, true
 	case "DWORD":
-		enum = AdsDataType_DWORD
+		return AdsDataType_DWORD, true
 	case "BITARR32":
-		enum = AdsDataType_BITARR32
+		return AdsDataType_BITARR32, true
 	case "SINT":
-		enum = AdsDataType_SINT
+		return AdsDataType_SINT, true
 	case "INT8":
-		enum = AdsDataType_INT8
+		return AdsDataType_INT8, true
 	case "USINT":
-		enum = AdsDataType_USINT
+		return AdsDataType_USINT, true
 	case "UINT8":
-		enum = AdsDataType_UINT8
+		return AdsDataType_UINT8, true
 	case "INT":
-		enum = AdsDataType_INT
+		return AdsDataType_INT, true
 	case "INT16":
-		enum = AdsDataType_INT16
+		return AdsDataType_INT16, true
 	case "UINT":
-		enum = AdsDataType_UINT
+		return AdsDataType_UINT, true
 	case "UINT16":
-		enum = AdsDataType_UINT16
+		return AdsDataType_UINT16, true
 	case "DINT":
-		enum = AdsDataType_DINT
+		return AdsDataType_DINT, true
 	case "INT32":
-		enum = AdsDataType_INT32
+		return AdsDataType_INT32, true
 	case "UDINT":
-		enum = AdsDataType_UDINT
+		return AdsDataType_UDINT, true
 	case "UINT32":
-		enum = AdsDataType_UINT32
+		return AdsDataType_UINT32, true
 	case "LINT":
-		enum = AdsDataType_LINT
+		return AdsDataType_LINT, true
 	case "INT64":
-		enum = AdsDataType_INT64
+		return AdsDataType_INT64, true
 	case "ULINT":
-		enum = AdsDataType_ULINT
+		return AdsDataType_ULINT, true
 	case "UINT64":
-		enum = AdsDataType_UINT64
+		return AdsDataType_UINT64, true
 	case "REAL":
-		enum = AdsDataType_REAL
+		return AdsDataType_REAL, true
 	case "FLOAT":
-		enum = AdsDataType_FLOAT
+		return AdsDataType_FLOAT, true
 	case "LREAL":
-		enum = AdsDataType_LREAL
+		return AdsDataType_LREAL, true
 	case "DOUBLE":
-		enum = AdsDataType_DOUBLE
+		return AdsDataType_DOUBLE, true
 	case "CHAR":
-		enum = AdsDataType_CHAR
+		return AdsDataType_CHAR, true
 	case "WCHAR":
-		enum = AdsDataType_WCHAR
+		return AdsDataType_WCHAR, true
 	case "STRING":
-		enum = AdsDataType_STRING
+		return AdsDataType_STRING, true
 	case "WSTRING":
-		enum = AdsDataType_WSTRING
+		return AdsDataType_WSTRING, true
 	case "TIME":
-		enum = AdsDataType_TIME
+		return AdsDataType_TIME, true
 	case "LTIME":
-		enum = AdsDataType_LTIME
+		return AdsDataType_LTIME, true
 	case "DATE":
-		enum = AdsDataType_DATE
+		return AdsDataType_DATE, true
 	case "TIME_OF_DAY":
-		enum = AdsDataType_TIME_OF_DAY
+		return AdsDataType_TIME_OF_DAY, true
 	case "TOD":
-		enum = AdsDataType_TOD
+		return AdsDataType_TOD, true
 	case "DATE_AND_TIME":
-		enum = AdsDataType_DATE_AND_TIME
+		return AdsDataType_DATE_AND_TIME, true
 	case "DT":
-		enum = AdsDataType_DT
-	default:
-		enum = 0
-		ok = false
+		return AdsDataType_DT, true
 	}
-	return
+	return 0, false
 }
 
 func AdsDataTypeKnows(value int8) bool {
@@ -689,7 +685,11 @@ func AdsDataTypeParse(readBuffer utils.ReadBuffer) (AdsDataType, error) {
 	if err != nil {
 		return 0, errors.Wrap(err, "error reading AdsDataType")
 	}
-	return AdsDataTypeByValue(val), nil
+	if enum, ok := AdsDataTypeByValue(val); !ok {
+		return 0, errors.Errorf("no value %v found for AdsDataType", val)
+	} else {
+		return enum, nil
+	}
 }
 
 func (e AdsDataType) Serialize(writeBuffer utils.WriteBuffer) error {
diff --git a/plc4go/protocols/ads/readwrite/model/CommandId.go b/plc4go/protocols/ads/readwrite/model/CommandId.go
index 3df8c2785..5a779b4d8 100644
--- a/plc4go/protocols/ads/readwrite/model/CommandId.go
+++ b/plc4go/protocols/ads/readwrite/model/CommandId.go
@@ -64,60 +64,56 @@ func init() {
 	}
 }
 
-func CommandIdByValue(value uint16) CommandId {
+func CommandIdByValue(value uint16) (enum CommandId, ok bool) {
 	switch value {
 	case 0x0000:
-		return CommandId_INVALID
+		return CommandId_INVALID, true
 	case 0x0001:
-		return CommandId_ADS_READ_DEVICE_INFO
+		return CommandId_ADS_READ_DEVICE_INFO, true
 	case 0x0002:
-		return CommandId_ADS_READ
+		return CommandId_ADS_READ, true
 	case 0x0003:
-		return CommandId_ADS_WRITE
+		return CommandId_ADS_WRITE, true
 	case 0x0004:
-		return CommandId_ADS_READ_STATE
+		return CommandId_ADS_READ_STATE, true
 	case 0x0005:
-		return CommandId_ADS_WRITE_CONTROL
+		return CommandId_ADS_WRITE_CONTROL, true
 	case 0x0006:
-		return CommandId_ADS_ADD_DEVICE_NOTIFICATION
+		return CommandId_ADS_ADD_DEVICE_NOTIFICATION, true
 	case 0x0007:
-		return CommandId_ADS_DELETE_DEVICE_NOTIFICATION
+		return CommandId_ADS_DELETE_DEVICE_NOTIFICATION, true
 	case 0x0008:
-		return CommandId_ADS_DEVICE_NOTIFICATION
+		return CommandId_ADS_DEVICE_NOTIFICATION, true
 	case 0x0009:
-		return CommandId_ADS_READ_WRITE
+		return CommandId_ADS_READ_WRITE, true
 	}
-	return 0
+	return 0, false
 }
 
 func CommandIdByName(value string) (enum CommandId, ok bool) {
-	ok = true
 	switch value {
 	case "INVALID":
-		enum = CommandId_INVALID
+		return CommandId_INVALID, true
 	case "ADS_READ_DEVICE_INFO":
-		enum = CommandId_ADS_READ_DEVICE_INFO
+		return CommandId_ADS_READ_DEVICE_INFO, true
 	case "ADS_READ":
-		enum = CommandId_ADS_READ
+		return CommandId_ADS_READ, true
 	case "ADS_WRITE":
-		enum = CommandId_ADS_WRITE
+		return CommandId_ADS_WRITE, true
 	case "ADS_READ_STATE":
-		enum = CommandId_ADS_READ_STATE
+		return CommandId_ADS_READ_STATE, true
 	case "ADS_WRITE_CONTROL":
-		enum = CommandId_ADS_WRITE_CONTROL
+		return CommandId_ADS_WRITE_CONTROL, true
 	case "ADS_ADD_DEVICE_NOTIFICATION":
-		enum = CommandId_ADS_ADD_DEVICE_NOTIFICATION
+		return CommandId_ADS_ADD_DEVICE_NOTIFICATION, true
 	case "ADS_DELETE_DEVICE_NOTIFICATION":
-		enum = CommandId_ADS_DELETE_DEVICE_NOTIFICATION
+		return CommandId_ADS_DELETE_DEVICE_NOTIFICATION, true
 	case "ADS_DEVICE_NOTIFICATION":
-		enum = CommandId_ADS_DEVICE_NOTIFICATION
+		return CommandId_ADS_DEVICE_NOTIFICATION, true
 	case "ADS_READ_WRITE":
-		enum = CommandId_ADS_READ_WRITE
-	default:
-		enum = 0
-		ok = false
+		return CommandId_ADS_READ_WRITE, true
 	}
-	return
+	return 0, false
 }
 
 func CommandIdKnows(value uint16) bool {
@@ -152,7 +148,11 @@ func CommandIdParse(readBuffer utils.ReadBuffer) (CommandId, error) {
 	if err != nil {
 		return 0, errors.Wrap(err, "error reading CommandId")
 	}
-	return CommandIdByValue(val), nil
+	if enum, ok := CommandIdByValue(val); !ok {
+		return 0, errors.Errorf("no value %v found for CommandId", val)
+	} else {
+		return enum, nil
+	}
 }
 
 func (e CommandId) Serialize(writeBuffer utils.WriteBuffer) error {
diff --git a/plc4go/protocols/ads/readwrite/model/ReservedIndexGroups.go b/plc4go/protocols/ads/readwrite/model/ReservedIndexGroups.go
index a73837b50..edafe3268 100644
--- a/plc4go/protocols/ads/readwrite/model/ReservedIndexGroups.go
+++ b/plc4go/protocols/ads/readwrite/model/ReservedIndexGroups.go
@@ -104,140 +104,136 @@ func init() {
 	}
 }
 
-func ReservedIndexGroupsByValue(value uint32) ReservedIndexGroups {
+func ReservedIndexGroupsByValue(value uint32) (enum ReservedIndexGroups, ok bool) {
 	switch value {
 	case 0x00000000:
-		return ReservedIndexGroups_ADSIOFFS_DEVDATA_ADSSTATE
+		return ReservedIndexGroups_ADSIOFFS_DEVDATA_ADSSTATE, true
 	case 0x00000002:
-		return ReservedIndexGroups_ADSIOFFS_DEVDATA_DEVSTATE
+		return ReservedIndexGroups_ADSIOFFS_DEVDATA_DEVSTATE, true
 	case 0x0000F000:
-		return ReservedIndexGroups_ADSIGRP_SYMTAB
+		return ReservedIndexGroups_ADSIGRP_SYMTAB, true
 	case 0x0000F001:
-		return ReservedIndexGroups_ADSIGRP_SYMNAME
+		return ReservedIndexGroups_ADSIGRP_SYMNAME, true
 	case 0x0000F002:
-		return ReservedIndexGroups_ADSIGRP_SYMVAL
+		return ReservedIndexGroups_ADSIGRP_SYMVAL, true
 	case 0x0000F003:
-		return ReservedIndexGroups_ADSIGRP_SYM_HNDBYNAME
+		return ReservedIndexGroups_ADSIGRP_SYM_HNDBYNAME, true
 	case 0x0000F004:
-		return ReservedIndexGroups_ADSIGRP_SYM_VALBYNAME
+		return ReservedIndexGroups_ADSIGRP_SYM_VALBYNAME, true
 	case 0x0000F005:
-		return ReservedIndexGroups_ADSIGRP_SYM_VALBYHND
+		return ReservedIndexGroups_ADSIGRP_SYM_VALBYHND, true
 	case 0x0000F006:
-		return ReservedIndexGroups_ADSIGRP_SYM_RELEASEHND
+		return ReservedIndexGroups_ADSIGRP_SYM_RELEASEHND, true
 	case 0x0000F007:
-		return ReservedIndexGroups_ADSIGRP_SYM_INFOBYNAME
+		return ReservedIndexGroups_ADSIGRP_SYM_INFOBYNAME, true
 	case 0x0000F008:
-		return ReservedIndexGroups_ADSIGRP_SYM_VERSION
+		return ReservedIndexGroups_ADSIGRP_SYM_VERSION, true
 	case 0x0000F009:
-		return ReservedIndexGroups_ADSIGRP_SYM_INFOBYNAMEEX
+		return ReservedIndexGroups_ADSIGRP_SYM_INFOBYNAMEEX, true
 	case 0x0000F00A:
-		return ReservedIndexGroups_ADSIGRP_SYM_DOWNLOAD
+		return ReservedIndexGroups_ADSIGRP_SYM_DOWNLOAD, true
 	case 0x0000F00B:
-		return ReservedIndexGroups_ADSIGRP_SYM_UPLOAD
+		return ReservedIndexGroups_ADSIGRP_SYM_UPLOAD, true
 	case 0x0000F00C:
-		return ReservedIndexGroups_ADSIGRP_SYM_UPLOADINFO
+		return ReservedIndexGroups_ADSIGRP_SYM_UPLOADINFO, true
 	case 0x0000F010:
-		return ReservedIndexGroups_ADSIGRP_SYMNOTE
+		return ReservedIndexGroups_ADSIGRP_SYMNOTE, true
 	case 0x0000F020:
-		return ReservedIndexGroups_ADSIGRP_IOIMAGE_RWIB
+		return ReservedIndexGroups_ADSIGRP_IOIMAGE_RWIB, true
 	case 0x0000F021:
-		return ReservedIndexGroups_ADSIGRP_IOIMAGE_RWIX
+		return ReservedIndexGroups_ADSIGRP_IOIMAGE_RWIX, true
 	case 0x0000F025:
-		return ReservedIndexGroups_ADSIGRP_IOIMAGE_RISIZE
+		return ReservedIndexGroups_ADSIGRP_IOIMAGE_RISIZE, true
 	case 0x0000F030:
-		return ReservedIndexGroups_ADSIGRP_IOIMAGE_RWOB
+		return ReservedIndexGroups_ADSIGRP_IOIMAGE_RWOB, true
 	case 0x0000F031:
-		return ReservedIndexGroups_ADSIGRP_IOIMAGE_RWOX
+		return ReservedIndexGroups_ADSIGRP_IOIMAGE_RWOX, true
 	case 0x0000F035:
-		return ReservedIndexGroups_ADSIGRP_IOIMAGE_RWOSIZE
+		return ReservedIndexGroups_ADSIGRP_IOIMAGE_RWOSIZE, true
 	case 0x0000F040:
-		return ReservedIndexGroups_ADSIGRP_IOIMAGE_CLEARI
+		return ReservedIndexGroups_ADSIGRP_IOIMAGE_CLEARI, true
 	case 0x0000F050:
-		return ReservedIndexGroups_ADSIGRP_IOIMAGE_CLEARO
+		return ReservedIndexGroups_ADSIGRP_IOIMAGE_CLEARO, true
 	case 0x0000F060:
-		return ReservedIndexGroups_ADSIGRP_IOIMAGE_RWIOB
+		return ReservedIndexGroups_ADSIGRP_IOIMAGE_RWIOB, true
 	case 0x0000F080:
-		return ReservedIndexGroups_ADSIGRP_MULTIPLE_READ
+		return ReservedIndexGroups_ADSIGRP_MULTIPLE_READ, true
 	case 0x0000F081:
-		return ReservedIndexGroups_ADSIGRP_MULTIPLE_WRITE
+		return ReservedIndexGroups_ADSIGRP_MULTIPLE_WRITE, true
 	case 0x0000F082:
-		return ReservedIndexGroups_ADSIGRP_MULTIPLE_READ_WRITE
+		return ReservedIndexGroups_ADSIGRP_MULTIPLE_READ_WRITE, true
 	case 0x0000F083:
-		return ReservedIndexGroups_ADSIGRP_MULTIPLE_RELEASE_HANDLE
+		return ReservedIndexGroups_ADSIGRP_MULTIPLE_RELEASE_HANDLE, true
 	case 0x0000F100:
-		return ReservedIndexGroups_ADSIGRP_DEVICE_DATA
+		return ReservedIndexGroups_ADSIGRP_DEVICE_DATA, true
 	}
-	return 0
+	return 0, false
 }
 
 func ReservedIndexGroupsByName(value string) (enum ReservedIndexGroups, ok bool) {
-	ok = true
 	switch value {
 	case "ADSIOFFS_DEVDATA_ADSSTATE":
-		enum = ReservedIndexGroups_ADSIOFFS_DEVDATA_ADSSTATE
+		return ReservedIndexGroups_ADSIOFFS_DEVDATA_ADSSTATE, true
 	case "ADSIOFFS_DEVDATA_DEVSTATE":
-		enum = ReservedIndexGroups_ADSIOFFS_DEVDATA_DEVSTATE
+		return ReservedIndexGroups_ADSIOFFS_DEVDATA_DEVSTATE, true
 	case "ADSIGRP_SYMTAB":
-		enum = ReservedIndexGroups_ADSIGRP_SYMTAB
+		return ReservedIndexGroups_ADSIGRP_SYMTAB, true
 	case "ADSIGRP_SYMNAME":
-		enum = ReservedIndexGroups_ADSIGRP_SYMNAME
+		return ReservedIndexGroups_ADSIGRP_SYMNAME, true
 	case "ADSIGRP_SYMVAL":
-		enum = ReservedIndexGroups_ADSIGRP_SYMVAL
+		return ReservedIndexGroups_ADSIGRP_SYMVAL, true
 	case "ADSIGRP_SYM_HNDBYNAME":
-		enum = ReservedIndexGroups_ADSIGRP_SYM_HNDBYNAME
+		return ReservedIndexGroups_ADSIGRP_SYM_HNDBYNAME, true
 	case "ADSIGRP_SYM_VALBYNAME":
-		enum = ReservedIndexGroups_ADSIGRP_SYM_VALBYNAME
+		return ReservedIndexGroups_ADSIGRP_SYM_VALBYNAME, true
 	case "ADSIGRP_SYM_VALBYHND":
-		enum = ReservedIndexGroups_ADSIGRP_SYM_VALBYHND
+		return ReservedIndexGroups_ADSIGRP_SYM_VALBYHND, true
 	case "ADSIGRP_SYM_RELEASEHND":
-		enum = ReservedIndexGroups_ADSIGRP_SYM_RELEASEHND
+		return ReservedIndexGroups_ADSIGRP_SYM_RELEASEHND, true
 	case "ADSIGRP_SYM_INFOBYNAME":
-		enum = ReservedIndexGroups_ADSIGRP_SYM_INFOBYNAME
+		return ReservedIndexGroups_ADSIGRP_SYM_INFOBYNAME, true
 	case "ADSIGRP_SYM_VERSION":
-		enum = ReservedIndexGroups_ADSIGRP_SYM_VERSION
+		return ReservedIndexGroups_ADSIGRP_SYM_VERSION, true
 	case "ADSIGRP_SYM_INFOBYNAMEEX":
-		enum = ReservedIndexGroups_ADSIGRP_SYM_INFOBYNAMEEX
+		return ReservedIndexGroups_ADSIGRP_SYM_INFOBYNAMEEX, true
 	case "ADSIGRP_SYM_DOWNLOAD":
-		enum = ReservedIndexGroups_ADSIGRP_SYM_DOWNLOAD
+		return ReservedIndexGroups_ADSIGRP_SYM_DOWNLOAD, true
 	case "ADSIGRP_SYM_UPLOAD":
-		enum = ReservedIndexGroups_ADSIGRP_SYM_UPLOAD
+		return ReservedIndexGroups_ADSIGRP_SYM_UPLOAD, true
 	case "ADSIGRP_SYM_UPLOADINFO":
-		enum = ReservedIndexGroups_ADSIGRP_SYM_UPLOADINFO
+		return ReservedIndexGroups_ADSIGRP_SYM_UPLOADINFO, true
 	case "ADSIGRP_SYMNOTE":
-		enum = ReservedIndexGroups_ADSIGRP_SYMNOTE
+		return ReservedIndexGroups_ADSIGRP_SYMNOTE, true
 	case "ADSIGRP_IOIMAGE_RWIB":
-		enum = ReservedIndexGroups_ADSIGRP_IOIMAGE_RWIB
+		return ReservedIndexGroups_ADSIGRP_IOIMAGE_RWIB, true
 	case "ADSIGRP_IOIMAGE_RWIX":
-		enum = ReservedIndexGroups_ADSIGRP_IOIMAGE_RWIX
+		return ReservedIndexGroups_ADSIGRP_IOIMAGE_RWIX, true
 	case "ADSIGRP_IOIMAGE_RISIZE":
-		enum = ReservedIndexGroups_ADSIGRP_IOIMAGE_RISIZE
+		return ReservedIndexGroups_ADSIGRP_IOIMAGE_RISIZE, true
 	case "ADSIGRP_IOIMAGE_RWOB":
-		enum = ReservedIndexGroups_ADSIGRP_IOIMAGE_RWOB
+		return ReservedIndexGroups_ADSIGRP_IOIMAGE_RWOB, true
 	case "ADSIGRP_IOIMAGE_RWOX":
-		enum = ReservedIndexGroups_ADSIGRP_IOIMAGE_RWOX
+		return ReservedIndexGroups_ADSIGRP_IOIMAGE_RWOX, true
 	case "ADSIGRP_IOIMAGE_RWOSIZE":
-		enum = ReservedIndexGroups_ADSIGRP_IOIMAGE_RWOSIZE
+		return ReservedIndexGroups_ADSIGRP_IOIMAGE_RWOSIZE, true
 	case "ADSIGRP_IOIMAGE_CLEARI":
-		enum = ReservedIndexGroups_ADSIGRP_IOIMAGE_CLEARI
+		return ReservedIndexGroups_ADSIGRP_IOIMAGE_CLEARI, true
 	case "ADSIGRP_IOIMAGE_CLEARO":
-		enum = ReservedIndexGroups_ADSIGRP_IOIMAGE_CLEARO
+		return ReservedIndexGroups_ADSIGRP_IOIMAGE_CLEARO, true
 	case "ADSIGRP_IOIMAGE_RWIOB":
-		enum = ReservedIndexGroups_ADSIGRP_IOIMAGE_RWIOB
+		return ReservedIndexGroups_ADSIGRP_IOIMAGE_RWIOB, true
 	case "ADSIGRP_MULTIPLE_READ":
-		enum = ReservedIndexGroups_ADSIGRP_MULTIPLE_READ
+		return ReservedIndexGroups_ADSIGRP_MULTIPLE_READ, true
 	case "ADSIGRP_MULTIPLE_WRITE":
-		enum = ReservedIndexGroups_ADSIGRP_MULTIPLE_WRITE
+		return ReservedIndexGroups_ADSIGRP_MULTIPLE_WRITE, true
 	case "ADSIGRP_MULTIPLE_READ_WRITE":
-		enum = ReservedIndexGroups_ADSIGRP_MULTIPLE_READ_WRITE
+		return ReservedIndexGroups_ADSIGRP_MULTIPLE_READ_WRITE, true
 	case "ADSIGRP_MULTIPLE_RELEASE_HANDLE":
-		enum = ReservedIndexGroups_ADSIGRP_MULTIPLE_RELEASE_HANDLE
+		return ReservedIndexGroups_ADSIGRP_MULTIPLE_RELEASE_HANDLE, true
 	case "ADSIGRP_DEVICE_DATA":
-		enum = ReservedIndexGroups_ADSIGRP_DEVICE_DATA
-	default:
-		enum = 0
-		ok = false
+		return ReservedIndexGroups_ADSIGRP_DEVICE_DATA, true
 	}
-	return
+	return 0, false
 }
 
 func ReservedIndexGroupsKnows(value uint32) bool {
@@ -272,7 +268,11 @@ func ReservedIndexGroupsParse(readBuffer utils.ReadBuffer) (ReservedIndexGroups,
 	if err != nil {
 		return 0, errors.Wrap(err, "error reading ReservedIndexGroups")
 	}
-	return ReservedIndexGroupsByValue(val), nil
+	if enum, ok := ReservedIndexGroupsByValue(val); !ok {
+		return 0, errors.Errorf("no value %v found for ReservedIndexGroups", val)
+	} else {
+		return enum, nil
+	}
 }
 
 func (e ReservedIndexGroups) Serialize(writeBuffer utils.WriteBuffer) error {
diff --git a/plc4go/protocols/ads/readwrite/model/ReturnCode.go b/plc4go/protocols/ads/readwrite/model/ReturnCode.go
index 80b4dbae1..f2f0a0c3f 100644
--- a/plc4go/protocols/ads/readwrite/model/ReturnCode.go
+++ b/plc4go/protocols/ads/readwrite/model/ReturnCode.go
@@ -288,508 +288,504 @@ func init() {
 	}
 }
 
-func ReturnCodeByValue(value uint32) ReturnCode {
+func ReturnCodeByValue(value uint32) (enum ReturnCode, ok bool) {
 	switch value {
 	case 0x00:
-		return ReturnCode_OK
+		return ReturnCode_OK, true
 	case 0x01:
-		return ReturnCode_INTERNAL_ERROR
+		return ReturnCode_INTERNAL_ERROR, true
 	case 0x02:
-		return ReturnCode_NO_REALTIME
+		return ReturnCode_NO_REALTIME, true
 	case 0x03:
-		return ReturnCode_SAVE_ERROR
+		return ReturnCode_SAVE_ERROR, true
 	case 0x04:
-		return ReturnCode_MAILBOX_FULL
+		return ReturnCode_MAILBOX_FULL, true
 	case 0x05:
-		return ReturnCode_WRONG_HMSG
+		return ReturnCode_WRONG_HMSG, true
 	case 0x06:
-		return ReturnCode_TARGET_PORT_NOT_FOUND
+		return ReturnCode_TARGET_PORT_NOT_FOUND, true
 	case 0x07:
-		return ReturnCode_TARGET_HOST_NOT_FOUND
+		return ReturnCode_TARGET_HOST_NOT_FOUND, true
 	case 0x08:
-		return ReturnCode_UNKNOWN_COMMAND_ID
+		return ReturnCode_UNKNOWN_COMMAND_ID, true
 	case 0x09:
-		return ReturnCode_UNKNOWN_TASK_ID
+		return ReturnCode_UNKNOWN_TASK_ID, true
 	case 0x0A:
-		return ReturnCode_NO_IO
+		return ReturnCode_NO_IO, true
 	case 0x0B:
-		return ReturnCode_UNKNOWN_ADS_COMMAND
+		return ReturnCode_UNKNOWN_ADS_COMMAND, true
 	case 0x0C:
-		return ReturnCode_WIN32_ERROR
+		return ReturnCode_WIN32_ERROR, true
 	case 0x0D:
-		return ReturnCode_PORT_NOT_CONNECTED
+		return ReturnCode_PORT_NOT_CONNECTED, true
 	case 0x0E:
-		return ReturnCode_INVALID_ADS_LENGTH
+		return ReturnCode_INVALID_ADS_LENGTH, true
 	case 0x0F:
-		return ReturnCode_INVALID_AMS_NET_ID
+		return ReturnCode_INVALID_AMS_NET_ID, true
 	case 0x10:
-		return ReturnCode_LOW_INSTALLATION_LEVEL
+		return ReturnCode_LOW_INSTALLATION_LEVEL, true
 	case 0x1000:
-		return ReturnCode_RTERR_INTERNAL
+		return ReturnCode_RTERR_INTERNAL, true
 	case 0x1001:
-		return ReturnCode_RTERR_BADTIMERPERIODS
+		return ReturnCode_RTERR_BADTIMERPERIODS, true
 	case 0x1002:
-		return ReturnCode_RTERR_INVALIDTASKPTR
+		return ReturnCode_RTERR_INVALIDTASKPTR, true
 	case 0x1003:
-		return ReturnCode_RTERR_INVALIDSTACKPTR
+		return ReturnCode_RTERR_INVALIDSTACKPTR, true
 	case 0x1004:
-		return ReturnCode_RTERR_PRIOEXISTS
+		return ReturnCode_RTERR_PRIOEXISTS, true
 	case 0x1005:
-		return ReturnCode_RTERR_NOMORETCB
+		return ReturnCode_RTERR_NOMORETCB, true
 	case 0x1006:
-		return ReturnCode_RTERR_NOMORESEMAS
+		return ReturnCode_RTERR_NOMORESEMAS, true
 	case 0x1007:
-		return ReturnCode_RTERR_NOMOREQUEUES
+		return ReturnCode_RTERR_NOMOREQUEUES, true
 	case 0x100D:
-		return ReturnCode_RTERR_EXTIRQALREADYDEF
+		return ReturnCode_RTERR_EXTIRQALREADYDEF, true
 	case 0x100E:
-		return ReturnCode_RTERR_EXTIRQNOTDEF
+		return ReturnCode_RTERR_EXTIRQNOTDEF, true
 	case 0x100F:
-		return ReturnCode_RTERR_EXTIRQINSTALLFAILED
+		return ReturnCode_RTERR_EXTIRQINSTALLFAILED, true
 	case 0x1010:
-		return ReturnCode_RTERR_IRQLNOTLESSOREQUAL
+		return ReturnCode_RTERR_IRQLNOTLESSOREQUAL, true
 	case 0x1017:
-		return ReturnCode_RTERR_VMXNOTSUPPORTED
+		return ReturnCode_RTERR_VMXNOTSUPPORTED, true
 	case 0x1018:
-		return ReturnCode_RTERR_VMXDISABLED
+		return ReturnCode_RTERR_VMXDISABLED, true
 	case 0x1019:
-		return ReturnCode_RTERR_VMXCONTROLSMISSING
+		return ReturnCode_RTERR_VMXCONTROLSMISSING, true
 	case 0x101A:
-		return ReturnCode_RTERR_VMXENABLEFAILS
+		return ReturnCode_RTERR_VMXENABLEFAILS, true
 	case 0x11:
-		return ReturnCode_NO_DEBUGGING_AVAILABLE
+		return ReturnCode_NO_DEBUGGING_AVAILABLE, true
 	case 0x12:
-		return ReturnCode_PORT_DEACTIVATED
+		return ReturnCode_PORT_DEACTIVATED, true
 	case 0x13:
-		return ReturnCode_PORT_ALREADY_CONNECTED
+		return ReturnCode_PORT_ALREADY_CONNECTED, true
 	case 0x14:
-		return ReturnCode_ADS_SYNC_WIN32_ERROR
+		return ReturnCode_ADS_SYNC_WIN32_ERROR, true
 	case 0x15:
-		return ReturnCode_ADS_SYNC_TIMEOUT
+		return ReturnCode_ADS_SYNC_TIMEOUT, true
 	case 0x16:
-		return ReturnCode_ADS_SYNC_AMS_ERROR
+		return ReturnCode_ADS_SYNC_AMS_ERROR, true
 	case 0x17:
-		return ReturnCode_NO_INDEX_MAP_FOR_ADS_AVAILABLE
+		return ReturnCode_NO_INDEX_MAP_FOR_ADS_AVAILABLE, true
 	case 0x18:
-		return ReturnCode_INVALID_ADS_PORT
+		return ReturnCode_INVALID_ADS_PORT, true
 	case 0x19:
-		return ReturnCode_NO_MEMORY
+		return ReturnCode_NO_MEMORY, true
 	case 0x1A:
-		return ReturnCode_TCP_SENDING_ERROR
+		return ReturnCode_TCP_SENDING_ERROR, true
 	case 0x1B:
-		return ReturnCode_HOST_NOT_REACHABLE
+		return ReturnCode_HOST_NOT_REACHABLE, true
 	case 0x1C:
-		return ReturnCode_INVALID_AMS_FRAGMENT
+		return ReturnCode_INVALID_AMS_FRAGMENT, true
 	case 0x274C:
-		return ReturnCode_WSAETIMEDOUT
+		return ReturnCode_WSAETIMEDOUT, true
 	case 0x274D:
-		return ReturnCode_WSAECONNREFUSED
+		return ReturnCode_WSAECONNREFUSED, true
 	case 0x2751:
-		return ReturnCode_WSAEHOSTUNREACH
+		return ReturnCode_WSAEHOSTUNREACH, true
 	case 0x500:
-		return ReturnCode_ROUTERERR_NOLOCKEDMEMORY
+		return ReturnCode_ROUTERERR_NOLOCKEDMEMORY, true
 	case 0x501:
-		return ReturnCode_ROUTERERR_RESIZEMEMORY
+		return ReturnCode_ROUTERERR_RESIZEMEMORY, true
 	case 0x502:
-		return ReturnCode_ROUTERERR_MAILBOXFULL
+		return ReturnCode_ROUTERERR_MAILBOXFULL, true
 	case 0x503:
-		return ReturnCode_ROUTERERR_DEBUGBOXFULL
+		return ReturnCode_ROUTERERR_DEBUGBOXFULL, true
 	case 0x504:
-		return ReturnCode_ROUTERERR_UNKNOWNPORTTYPE
+		return ReturnCode_ROUTERERR_UNKNOWNPORTTYPE, true
 	case 0x505:
-		return ReturnCode_ROUTERERR_NOTINITIALIZED
+		return ReturnCode_ROUTERERR_NOTINITIALIZED, true
 	case 0x506:
-		return ReturnCode_ROUTERERR_PORTALREADYINUSE
+		return ReturnCode_ROUTERERR_PORTALREADYINUSE, true
 	case 0x507:
-		return ReturnCode_ROUTERERR_NOTREGISTERED
+		return ReturnCode_ROUTERERR_NOTREGISTERED, true
 	case 0x508:
-		return ReturnCode_ROUTERERR_NOMOREQUEUES
+		return ReturnCode_ROUTERERR_NOMOREQUEUES, true
 	case 0x509:
-		return ReturnCode_ROUTERERR_INVALIDPORT
+		return ReturnCode_ROUTERERR_INVALIDPORT, true
 	case 0x50A:
-		return ReturnCode_ROUTERERR_NOTACTIVATED
+		return ReturnCode_ROUTERERR_NOTACTIVATED, true
 	case 0x700:
-		return ReturnCode_ADSERR_DEVICE_ERROR
+		return ReturnCode_ADSERR_DEVICE_ERROR, true
 	case 0x701:
-		return ReturnCode_ADSERR_DEVICE_SRVNOTSUPP
+		return ReturnCode_ADSERR_DEVICE_SRVNOTSUPP, true
 	case 0x702:
-		return ReturnCode_ADSERR_DEVICE_INVALIDGRP
+		return ReturnCode_ADSERR_DEVICE_INVALIDGRP, true
 	case 0x703:
-		return ReturnCode_ADSERR_DEVICE_INVALIDOFFSET
+		return ReturnCode_ADSERR_DEVICE_INVALIDOFFSET, true
 	case 0x704:
-		return ReturnCode_ADSERR_DEVICE_INVALIDACCESS
+		return ReturnCode_ADSERR_DEVICE_INVALIDACCESS, true
 	case 0x705:
-		return ReturnCode_ADSERR_DEVICE_INVALIDSIZE
+		return ReturnCode_ADSERR_DEVICE_INVALIDSIZE, true
 	case 0x706:
-		return ReturnCode_ADSERR_DEVICE_INVALIDDATA
+		return ReturnCode_ADSERR_DEVICE_INVALIDDATA, true
 	case 0x707:
-		return ReturnCode_ADSERR_DEVICE_NOTREADY
+		return ReturnCode_ADSERR_DEVICE_NOTREADY, true
 	case 0x708:
-		return ReturnCode_ADSERR_DEVICE_BUSY
+		return ReturnCode_ADSERR_DEVICE_BUSY, true
 	case 0x709:
-		return ReturnCode_ADSERR_DEVICE_INVALIDCONTEXT
+		return ReturnCode_ADSERR_DEVICE_INVALIDCONTEXT, true
 	case 0x70A:
-		return ReturnCode_ADSERR_DEVICE_NOMEMORY
+		return ReturnCode_ADSERR_DEVICE_NOMEMORY, true
 	case 0x70B:
-		return ReturnCode_ADSERR_DEVICE_INVALIDPARM
+		return ReturnCode_ADSERR_DEVICE_INVALIDPARM, true
 	case 0x70C:
-		return ReturnCode_ADSERR_DEVICE_NOTFOUND
+		return ReturnCode_ADSERR_DEVICE_NOTFOUND, true
 	case 0x70D:
-		return ReturnCode_ADSERR_DEVICE_SYNTAX
+		return ReturnCode_ADSERR_DEVICE_SYNTAX, true
 	case 0x70E:
-		return ReturnCode_ADSERR_DEVICE_INCOMPATIBLE
+		return ReturnCode_ADSERR_DEVICE_INCOMPATIBLE, true
 	case 0x70F:
-		return ReturnCode_ADSERR_DEVICE_EXISTS
+		return ReturnCode_ADSERR_DEVICE_EXISTS, true
 	case 0x710:
-		return ReturnCode_ADSERR_DEVICE_SYMBOLNOTFOUND
+		return ReturnCode_ADSERR_DEVICE_SYMBOLNOTFOUND, true
 	case 0x711:
-		return ReturnCode_ADSERR_DEVICE_SYMBOLVERSIONINVALID
+		return ReturnCode_ADSERR_DEVICE_SYMBOLVERSIONINVALID, true
 	case 0x712:
-		return ReturnCode_ADSERR_DEVICE_INVALIDSTATE
+		return ReturnCode_ADSERR_DEVICE_INVALIDSTATE, true
 	case 0x713:
-		return ReturnCode_ADSERR_DEVICE_TRANSMODENOTSUPP
+		return ReturnCode_ADSERR_DEVICE_TRANSMODENOTSUPP, true
 	case 0x714:
-		return ReturnCode_ADSERR_DEVICE_NOTIFYHNDINVALID
+		return ReturnCode_ADSERR_DEVICE_NOTIFYHNDINVALID, true
 	case 0x715:
-		return ReturnCode_ADSERR_DEVICE_CLIENTUNKNOWN
+		return ReturnCode_ADSERR_DEVICE_CLIENTUNKNOWN, true
 	case 0x716:
-		return ReturnCode_ADSERR_DEVICE_NOMOREHDLS
+		return ReturnCode_ADSERR_DEVICE_NOMOREHDLS, true
 	case 0x717:
-		return ReturnCode_ADSERR_DEVICE_INVALIDWATCHSIZE
+		return ReturnCode_ADSERR_DEVICE_INVALIDWATCHSIZE, true
 	case 0x718:
-		return ReturnCode_ADSERR_DEVICE_NOTINIT
+		return ReturnCode_ADSERR_DEVICE_NOTINIT, true
 	case 0x719:
-		return ReturnCode_ADSERR_DEVICE_TIMEOUT
+		return ReturnCode_ADSERR_DEVICE_TIMEOUT, true
 	case 0x71A:
-		return ReturnCode_ADSERR_DEVICE_NOINTERFACE
+		return ReturnCode_ADSERR_DEVICE_NOINTERFACE, true
 	case 0x71B:
-		return ReturnCode_ADSERR_DEVICE_INVALIDINTERFACE
+		return ReturnCode_ADSERR_DEVICE_INVALIDINTERFACE, true
 	case 0x71C:
-		return ReturnCode_ADSERR_DEVICE_INVALIDCLSID
+		return ReturnCode_ADSERR_DEVICE_INVALIDCLSID, true
 	case 0x71D:
-		return ReturnCode_ADSERR_DEVICE_INVALIDOBJID
+		return ReturnCode_ADSERR_DEVICE_INVALIDOBJID, true
 	case 0x71E:
-		return ReturnCode_ADSERR_DEVICE_PENDING
+		return ReturnCode_ADSERR_DEVICE_PENDING, true
 	case 0x71F:
-		return ReturnCode_ADSERR_DEVICE_ABORTED
+		return ReturnCode_ADSERR_DEVICE_ABORTED, true
 	case 0x720:
-		return ReturnCode_ADSERR_DEVICE_WARNING
+		return ReturnCode_ADSERR_DEVICE_WARNING, true
 	case 0x721:
-		return ReturnCode_ADSERR_DEVICE_INVALIDARRAYIDX
+		return ReturnCode_ADSERR_DEVICE_INVALIDARRAYIDX, true
 	case 0x722:
-		return ReturnCode_ADSERR_DEVICE_SYMBOLNOTACTIVE
+		return ReturnCode_ADSERR_DEVICE_SYMBOLNOTACTIVE, true
 	case 0x723:
-		return ReturnCode_ADSERR_DEVICE_ACCESSDENIED
+		return ReturnCode_ADSERR_DEVICE_ACCESSDENIED, true
 	case 0x724:
-		return ReturnCode_ADSERR_DEVICE_LICENSENOTFOUND
+		return ReturnCode_ADSERR_DEVICE_LICENSENOTFOUND, true
 	case 0x725:
-		return ReturnCode_ADSERR_DEVICE_LICENSEEXPIRED
+		return ReturnCode_ADSERR_DEVICE_LICENSEEXPIRED, true
 	case 0x726:
-		return ReturnCode_ADSERR_DEVICE_LICENSEEXCEEDED
+		return ReturnCode_ADSERR_DEVICE_LICENSEEXCEEDED, true
 	case 0x727:
-		return ReturnCode_ADSERR_DEVICE_LICENSEINVALID
+		return ReturnCode_ADSERR_DEVICE_LICENSEINVALID, true
 	case 0x728:
-		return ReturnCode_ADSERR_DEVICE_LICENSESYSTEMID
+		return ReturnCode_ADSERR_DEVICE_LICENSESYSTEMID, true
 	case 0x729:
-		return ReturnCode_ADSERR_DEVICE_LICENSENOTIMELIMIT
+		return ReturnCode_ADSERR_DEVICE_LICENSENOTIMELIMIT, true
 	case 0x72A:
-		return ReturnCode_ADSERR_DEVICE_LICENSEFUTUREISSUE
+		return ReturnCode_ADSERR_DEVICE_LICENSEFUTUREISSUE, true
 	case 0x72B:
-		return ReturnCode_ADSERR_DEVICE_LICENSETIMETOLONG
+		return ReturnCode_ADSERR_DEVICE_LICENSETIMETOLONG, true
 	case 0x72D:
-		return ReturnCode_ADSERR_DEVICE_LICENSEDUPLICATED
+		return ReturnCode_ADSERR_DEVICE_LICENSEDUPLICATED, true
 	case 0x72E:
-		return ReturnCode_ADSERR_DEVICE_SIGNATUREINVALID
+		return ReturnCode_ADSERR_DEVICE_SIGNATUREINVALID, true
 	case 0x72F:
-		return ReturnCode_ADSERR_DEVICE_CERTIFICATEINVALID
+		return ReturnCode_ADSERR_DEVICE_CERTIFICATEINVALID, true
 	case 0x72c:
-		return ReturnCode_ADSERR_DEVICE_EXCEPTION
+		return ReturnCode_ADSERR_DEVICE_EXCEPTION, true
 	case 0x740:
-		return ReturnCode_ADSERR_CLIENT_ERROR
+		return ReturnCode_ADSERR_CLIENT_ERROR, true
 	case 0x741:
-		return ReturnCode_ADSERR_CLIENT_INVALIDPARM
+		return ReturnCode_ADSERR_CLIENT_INVALIDPARM, true
 	case 0x742:
-		return ReturnCode_ADSERR_CLIENT_LISTEMPTY
+		return ReturnCode_ADSERR_CLIENT_LISTEMPTY, true
 	case 0x743:
-		return ReturnCode_ADSERR_CLIENT_VARUSED
+		return ReturnCode_ADSERR_CLIENT_VARUSED, true
 	case 0x744:
-		return ReturnCode_ADSERR_CLIENT_DUPLINVOKEID
+		return ReturnCode_ADSERR_CLIENT_DUPLINVOKEID, true
 	case 0x745:
-		return ReturnCode_ADSERR_CLIENT_SYNCTIMEOUT
+		return ReturnCode_ADSERR_CLIENT_SYNCTIMEOUT, true
 	case 0x746:
-		return ReturnCode_ADSERR_CLIENT_W32ERROR
+		return ReturnCode_ADSERR_CLIENT_W32ERROR, true
 	case 0x747:
-		return ReturnCode_ADSERR_CLIENT_TIMEOUTINVALID
+		return ReturnCode_ADSERR_CLIENT_TIMEOUTINVALID, true
 	case 0x748:
-		return ReturnCode_ADSERR_CLIENT_PORTNOTOPEN
+		return ReturnCode_ADSERR_CLIENT_PORTNOTOPEN, true
 	case 0x750:
-		return ReturnCode_ADSERR_CLIENT_NOAMSADDR
+		return ReturnCode_ADSERR_CLIENT_NOAMSADDR, true
 	case 0x751:
-		return ReturnCode_ADSERR_CLIENT_SYNCINTERNAL
+		return ReturnCode_ADSERR_CLIENT_SYNCINTERNAL, true
 	case 0x752:
-		return ReturnCode_ADSERR_CLIENT_ADDHASH
+		return ReturnCode_ADSERR_CLIENT_ADDHASH, true
 	case 0x753:
-		return ReturnCode_ADSERR_CLIENT_REMOVEHASH
+		return ReturnCode_ADSERR_CLIENT_REMOVEHASH, true
 	case 0x754:
-		return ReturnCode_ADSERR_CLIENT_NOMORESYM
+		return ReturnCode_ADSERR_CLIENT_NOMORESYM, true
 	case 0x755:
-		return ReturnCode_ADSERR_CLIENT_SYNCRESINVALID
+		return ReturnCode_ADSERR_CLIENT_SYNCRESINVALID, true
 	}
-	return 0
+	return 0, false
 }
 
 func ReturnCodeByName(value string) (enum ReturnCode, ok bool) {
-	ok = true
 	switch value {
 	case "OK":
-		enum = ReturnCode_OK
+		return ReturnCode_OK, true
 	case "INTERNAL_ERROR":
-		enum = ReturnCode_INTERNAL_ERROR
+		return ReturnCode_INTERNAL_ERROR, true
 	case "NO_REALTIME":
-		enum = ReturnCode_NO_REALTIME
+		return ReturnCode_NO_REALTIME, true
 	case "SAVE_ERROR":
-		enum = ReturnCode_SAVE_ERROR
+		return ReturnCode_SAVE_ERROR, true
 	case "MAILBOX_FULL":
-		enum = ReturnCode_MAILBOX_FULL
+		return ReturnCode_MAILBOX_FULL, true
 	case "WRONG_HMSG":
-		enum = ReturnCode_WRONG_HMSG
+		return ReturnCode_WRONG_HMSG, true
 	case "TARGET_PORT_NOT_FOUND":
-		enum = ReturnCode_TARGET_PORT_NOT_FOUND
+		return ReturnCode_TARGET_PORT_NOT_FOUND, true
 	case "TARGET_HOST_NOT_FOUND":
-		enum = ReturnCode_TARGET_HOST_NOT_FOUND
+		return ReturnCode_TARGET_HOST_NOT_FOUND, true
 	case "UNKNOWN_COMMAND_ID":
-		enum = ReturnCode_UNKNOWN_COMMAND_ID
+		return ReturnCode_UNKNOWN_COMMAND_ID, true
 	case "UNKNOWN_TASK_ID":
-		enum = ReturnCode_UNKNOWN_TASK_ID
+		return ReturnCode_UNKNOWN_TASK_ID, true
 	case "NO_IO":
-		enum = ReturnCode_NO_IO
+		return ReturnCode_NO_IO, true
 	case "UNKNOWN_ADS_COMMAND":
-		enum = ReturnCode_UNKNOWN_ADS_COMMAND
+		return ReturnCode_UNKNOWN_ADS_COMMAND, true
 	case "WIN32_ERROR":
-		enum = ReturnCode_WIN32_ERROR
+		return ReturnCode_WIN32_ERROR, true
 	case "PORT_NOT_CONNECTED":
-		enum = ReturnCode_PORT_NOT_CONNECTED
+		return ReturnCode_PORT_NOT_CONNECTED, true
 	case "INVALID_ADS_LENGTH":
-		enum = ReturnCode_INVALID_ADS_LENGTH
+		return ReturnCode_INVALID_ADS_LENGTH, true
 	case "INVALID_AMS_NET_ID":
-		enum = ReturnCode_INVALID_AMS_NET_ID
+		return ReturnCode_INVALID_AMS_NET_ID, true
 	case "LOW_INSTALLATION_LEVEL":
-		enum = ReturnCode_LOW_INSTALLATION_LEVEL
+		return ReturnCode_LOW_INSTALLATION_LEVEL, true
 	case "RTERR_INTERNAL":
-		enum = ReturnCode_RTERR_INTERNAL
+		return ReturnCode_RTERR_INTERNAL, true
 	case "RTERR_BADTIMERPERIODS":
-		enum = ReturnCode_RTERR_BADTIMERPERIODS
+		return ReturnCode_RTERR_BADTIMERPERIODS, true
 	case "RTERR_INVALIDTASKPTR":
-		enum = ReturnCode_RTERR_INVALIDTASKPTR
+		return ReturnCode_RTERR_INVALIDTASKPTR, true
 	case "RTERR_INVALIDSTACKPTR":
-		enum = ReturnCode_RTERR_INVALIDSTACKPTR
+		return ReturnCode_RTERR_INVALIDSTACKPTR, true
 	case "RTERR_PRIOEXISTS":
-		enum = ReturnCode_RTERR_PRIOEXISTS
+		return ReturnCode_RTERR_PRIOEXISTS, true
 	case "RTERR_NOMORETCB":
-		enum = ReturnCode_RTERR_NOMORETCB
+		return ReturnCode_RTERR_NOMORETCB, true
 	case "RTERR_NOMORESEMAS":
-		enum = ReturnCode_RTERR_NOMORESEMAS
+		return ReturnCode_RTERR_NOMORESEMAS, true
 	case "RTERR_NOMOREQUEUES":
-		enum = ReturnCode_RTERR_NOMOREQUEUES
+		return ReturnCode_RTERR_NOMOREQUEUES, true
 	case "RTERR_EXTIRQALREADYDEF":
-		enum = ReturnCode_RTERR_EXTIRQALREADYDEF
+		return ReturnCode_RTERR_EXTIRQALREADYDEF, true
 	case "RTERR_EXTIRQNOTDEF":
-		enum = ReturnCode_RTERR_EXTIRQNOTDEF
+		return ReturnCode_RTERR_EXTIRQNOTDEF, true
 	case "RTERR_EXTIRQINSTALLFAILED":
-		enum = ReturnCode_RTERR_EXTIRQINSTALLFAILED
+		return ReturnCode_RTERR_EXTIRQINSTALLFAILED, true
 	case "RTERR_IRQLNOTLESSOREQUAL":
-		enum = ReturnCode_RTERR_IRQLNOTLESSOREQUAL
+		return ReturnCode_RTERR_IRQLNOTLESSOREQUAL, true
 	case "RTERR_VMXNOTSUPPORTED":
-		enum = ReturnCode_RTERR_VMXNOTSUPPORTED
+		return ReturnCode_RTERR_VMXNOTSUPPORTED, true
 	case "RTERR_VMXDISABLED":
-		enum = ReturnCode_RTERR_VMXDISABLED
+		return ReturnCode_RTERR_VMXDISABLED, true
 	case "RTERR_VMXCONTROLSMISSING":
-		enum = ReturnCode_RTERR_VMXCONTROLSMISSING
+		return ReturnCode_RTERR_VMXCONTROLSMISSING, true
 	case "RTERR_VMXENABLEFAILS":
-		enum = ReturnCode_RTERR_VMXENABLEFAILS
+		return ReturnCode_RTERR_VMXENABLEFAILS, true
 	case "NO_DEBUGGING_AVAILABLE":
-		enum = ReturnCode_NO_DEBUGGING_AVAILABLE
+		return ReturnCode_NO_DEBUGGING_AVAILABLE, true
 	case "PORT_DEACTIVATED":
-		enum = ReturnCode_PORT_DEACTIVATED
+		return ReturnCode_PORT_DEACTIVATED, true
 	case "PORT_ALREADY_CONNECTED":
-		enum = ReturnCode_PORT_ALREADY_CONNECTED
+		return ReturnCode_PORT_ALREADY_CONNECTED, true
 	case "ADS_SYNC_WIN32_ERROR":
-		enum = ReturnCode_ADS_SYNC_WIN32_ERROR
+		return ReturnCode_ADS_SYNC_WIN32_ERROR, true
 	case "ADS_SYNC_TIMEOUT":
-		enum = ReturnCode_ADS_SYNC_TIMEOUT
+		return ReturnCode_ADS_SYNC_TIMEOUT, true
 	case "ADS_SYNC_AMS_ERROR":
-		enum = ReturnCode_ADS_SYNC_AMS_ERROR
+		return ReturnCode_ADS_SYNC_AMS_ERROR, true
 	case "NO_INDEX_MAP_FOR_ADS_AVAILABLE":
-		enum = ReturnCode_NO_INDEX_MAP_FOR_ADS_AVAILABLE
+		return ReturnCode_NO_INDEX_MAP_FOR_ADS_AVAILABLE, true
 	case "INVALID_ADS_PORT":
-		enum = ReturnCode_INVALID_ADS_PORT
+		return ReturnCode_INVALID_ADS_PORT, true
 	case "NO_MEMORY":
-		enum = ReturnCode_NO_MEMORY
+		return ReturnCode_NO_MEMORY, true
 	case "TCP_SENDING_ERROR":
-		enum = ReturnCode_TCP_SENDING_ERROR
+		return ReturnCode_TCP_SENDING_ERROR, true
 	case "HOST_NOT_REACHABLE":
-		enum = ReturnCode_HOST_NOT_REACHABLE
+		return ReturnCode_HOST_NOT_REACHABLE, true
 	case "INVALID_AMS_FRAGMENT":
-		enum = ReturnCode_INVALID_AMS_FRAGMENT
+		return ReturnCode_INVALID_AMS_FRAGMENT, true
 	case "WSAETIMEDOUT":
-		enum = ReturnCode_WSAETIMEDOUT
+		return ReturnCode_WSAETIMEDOUT, true
 	case "WSAECONNREFUSED":
-		enum = ReturnCode_WSAECONNREFUSED
+		return ReturnCode_WSAECONNREFUSED, true
 	case "WSAEHOSTUNREACH":
-		enum = ReturnCode_WSAEHOSTUNREACH
+		return ReturnCode_WSAEHOSTUNREACH, true
 	case "ROUTERERR_NOLOCKEDMEMORY":
-		enum = ReturnCode_ROUTERERR_NOLOCKEDMEMORY
+		return ReturnCode_ROUTERERR_NOLOCKEDMEMORY, true
 	case "ROUTERERR_RESIZEMEMORY":
-		enum = ReturnCode_ROUTERERR_RESIZEMEMORY
+		return ReturnCode_ROUTERERR_RESIZEMEMORY, true
 	case "ROUTERERR_MAILBOXFULL":
-		enum = ReturnCode_ROUTERERR_MAILBOXFULL
+		return ReturnCode_ROUTERERR_MAILBOXFULL, true
 	case "ROUTERERR_DEBUGBOXFULL":
-		enum = ReturnCode_ROUTERERR_DEBUGBOXFULL
+		return ReturnCode_ROUTERERR_DEBUGBOXFULL, true
 	case "ROUTERERR_UNKNOWNPORTTYPE":
-		enum = ReturnCode_ROUTERERR_UNKNOWNPORTTYPE
+		return ReturnCode_ROUTERERR_UNKNOWNPORTTYPE, true
 	case "ROUTERERR_NOTINITIALIZED":
-		enum = ReturnCode_ROUTERERR_NOTINITIALIZED
+		return ReturnCode_ROUTERERR_NOTINITIALIZED, true
 	case "ROUTERERR_PORTALREADYINUSE":
-		enum = ReturnCode_ROUTERERR_PORTALREADYINUSE
+		return ReturnCode_ROUTERERR_PORTALREADYINUSE, true
 	case "ROUTERERR_NOTREGISTERED":
-		enum = ReturnCode_ROUTERERR_NOTREGISTERED
+		return ReturnCode_ROUTERERR_NOTREGISTERED, true
 	case "ROUTERERR_NOMOREQUEUES":
-		enum = ReturnCode_ROUTERERR_NOMOREQUEUES
+		return ReturnCode_ROUTERERR_NOMOREQUEUES, true
 	case "ROUTERERR_INVALIDPORT":
-		enum = ReturnCode_ROUTERERR_INVALIDPORT
+		return ReturnCode_ROUTERERR_INVALIDPORT, true
 	case "ROUTERERR_NOTACTIVATED":
-		enum = ReturnCode_ROUTERERR_NOTACTIVATED
+		return ReturnCode_ROUTERERR_NOTACTIVATED, true
 	case "ADSERR_DEVICE_ERROR":
-		enum = ReturnCode_ADSERR_DEVICE_ERROR
+		return ReturnCode_ADSERR_DEVICE_ERROR, true
 	case "ADSERR_DEVICE_SRVNOTSUPP":
-		enum = ReturnCode_ADSERR_DEVICE_SRVNOTSUPP
+		return ReturnCode_ADSERR_DEVICE_SRVNOTSUPP, true
 	case "ADSERR_DEVICE_INVALIDGRP":
-		enum = ReturnCode_ADSERR_DEVICE_INVALIDGRP
+		return ReturnCode_ADSERR_DEVICE_INVALIDGRP, true
 	case "ADSERR_DEVICE_INVALIDOFFSET":
-		enum = ReturnCode_ADSERR_DEVICE_INVALIDOFFSET
+		return ReturnCode_ADSERR_DEVICE_INVALIDOFFSET, true
 	case "ADSERR_DEVICE_INVALIDACCESS":
-		enum = ReturnCode_ADSERR_DEVICE_INVALIDACCESS
+		return ReturnCode_ADSERR_DEVICE_INVALIDACCESS, true
 	case "ADSERR_DEVICE_INVALIDSIZE":
-		enum = ReturnCode_ADSERR_DEVICE_INVALIDSIZE
+		return ReturnCode_ADSERR_DEVICE_INVALIDSIZE, true
 	case "ADSERR_DEVICE_INVALIDDATA":
-		enum = ReturnCode_ADSERR_DEVICE_INVALIDDATA
+		return ReturnCode_ADSERR_DEVICE_INVALIDDATA, true
 	case "ADSERR_DEVICE_NOTREADY":
-		enum = ReturnCode_ADSERR_DEVICE_NOTREADY
+		return ReturnCode_ADSERR_DEVICE_NOTREADY, true
 	case "ADSERR_DEVICE_BUSY":
-		enum = ReturnCode_ADSERR_DEVICE_BUSY
+		return ReturnCode_ADSERR_DEVICE_BUSY, true
 	case "ADSERR_DEVICE_INVALIDCONTEXT":
-		enum = ReturnCode_ADSERR_DEVICE_INVALIDCONTEXT
+		return ReturnCode_ADSERR_DEVICE_INVALIDCONTEXT, true
 	case "ADSERR_DEVICE_NOMEMORY":
-		enum = ReturnCode_ADSERR_DEVICE_NOMEMORY
+		return ReturnCode_ADSERR_DEVICE_NOMEMORY, true
 	case "ADSERR_DEVICE_INVALIDPARM":
-		enum = ReturnCode_ADSERR_DEVICE_INVALIDPARM
+		return ReturnCode_ADSERR_DEVICE_INVALIDPARM, true
 	case "ADSERR_DEVICE_NOTFOUND":
-		enum = ReturnCode_ADSERR_DEVICE_NOTFOUND
+		return ReturnCode_ADSERR_DEVICE_NOTFOUND, true
 	case "ADSERR_DEVICE_SYNTAX":
-		enum = ReturnCode_ADSERR_DEVICE_SYNTAX
+		return ReturnCode_ADSERR_DEVICE_SYNTAX, true
 	case "ADSERR_DEVICE_INCOMPATIBLE":
-		enum = ReturnCode_ADSERR_DEVICE_INCOMPATIBLE
+		return ReturnCode_ADSERR_DEVICE_INCOMPATIBLE, true
 	case "ADSERR_DEVICE_EXISTS":
-		enum = ReturnCode_ADSERR_DEVICE_EXISTS
+		return ReturnCode_ADSERR_DEVICE_EXISTS, true
 	case "ADSERR_DEVICE_SYMBOLNOTFOUND":
-		enum = ReturnCode_ADSERR_DEVICE_SYMBOLNOTFOUND
+		return ReturnCode_ADSERR_DEVICE_SYMBOLNOTFOUND, true
 	case "ADSERR_DEVICE_SYMBOLVERSIONINVALID":
-		enum = ReturnCode_ADSERR_DEVICE_SYMBOLVERSIONINVALID
+		return ReturnCode_ADSERR_DEVICE_SYMBOLVERSIONINVALID, true
 	case "ADSERR_DEVICE_INVALIDSTATE":
-		enum = ReturnCode_ADSERR_DEVICE_INVALIDSTATE
+		return ReturnCode_ADSERR_DEVICE_INVALIDSTATE, true
 	case "ADSERR_DEVICE_TRANSMODENOTSUPP":
-		enum = ReturnCode_ADSERR_DEVICE_TRANSMODENOTSUPP
+		return ReturnCode_ADSERR_DEVICE_TRANSMODENOTSUPP, true
 	case "ADSERR_DEVICE_NOTIFYHNDINVALID":
-		enum = ReturnCode_ADSERR_DEVICE_NOTIFYHNDINVALID
+		return ReturnCode_ADSERR_DEVICE_NOTIFYHNDINVALID, true
 	case "ADSERR_DEVICE_CLIENTUNKNOWN":
-		enum = ReturnCode_ADSERR_DEVICE_CLIENTUNKNOWN
+		return ReturnCode_ADSERR_DEVICE_CLIENTUNKNOWN, true
 	case "ADSERR_DEVICE_NOMOREHDLS":
-		enum = ReturnCode_ADSERR_DEVICE_NOMOREHDLS
+		return ReturnCode_ADSERR_DEVICE_NOMOREHDLS, true
 	case "ADSERR_DEVICE_INVALIDWATCHSIZE":
-		enum = ReturnCode_ADSERR_DEVICE_INVALIDWATCHSIZE
+		return ReturnCode_ADSERR_DEVICE_INVALIDWATCHSIZE, true
 	case "ADSERR_DEVICE_NOTINIT":
-		enum = ReturnCode_ADSERR_DEVICE_NOTINIT
+		return ReturnCode_ADSERR_DEVICE_NOTINIT, true
 	case "ADSERR_DEVICE_TIMEOUT":
-		enum = ReturnCode_ADSERR_DEVICE_TIMEOUT
+		return ReturnCode_ADSERR_DEVICE_TIMEOUT, true
 	case "ADSERR_DEVICE_NOINTERFACE":
-		enum = ReturnCode_ADSERR_DEVICE_NOINTERFACE
+		return ReturnCode_ADSERR_DEVICE_NOINTERFACE, true
 	case "ADSERR_DEVICE_INVALIDINTERFACE":
-		enum = ReturnCode_ADSERR_DEVICE_INVALIDINTERFACE
+		return ReturnCode_ADSERR_DEVICE_INVALIDINTERFACE, true
 	case "ADSERR_DEVICE_INVALIDCLSID":
-		enum = ReturnCode_ADSERR_DEVICE_INVALIDCLSID
+		return ReturnCode_ADSERR_DEVICE_INVALIDCLSID, true
 	case "ADSERR_DEVICE_INVALIDOBJID":
-		enum = ReturnCode_ADSERR_DEVICE_INVALIDOBJID
+		return ReturnCode_ADSERR_DEVICE_INVALIDOBJID, true
 	case "ADSERR_DEVICE_PENDING":
-		enum = ReturnCode_ADSERR_DEVICE_PENDING
+		return ReturnCode_ADSERR_DEVICE_PENDING, true
 	case "ADSERR_DEVICE_ABORTED":
-		enum = ReturnCode_ADSERR_DEVICE_ABORTED
+		return ReturnCode_ADSERR_DEVICE_ABORTED, true
 	case "ADSERR_DEVICE_WARNING":
-		enum = ReturnCode_ADSERR_DEVICE_WARNING
+		return ReturnCode_ADSERR_DEVICE_WARNING, true
 	case "ADSERR_DEVICE_INVALIDARRAYIDX":
-		enum = ReturnCode_ADSERR_DEVICE_INVALIDARRAYIDX
+		return ReturnCode_ADSERR_DEVICE_INVALIDARRAYIDX, true
 	case "ADSERR_DEVICE_SYMBOLNOTACTIVE":
-		enum = ReturnCode_ADSERR_DEVICE_SYMBOLNOTACTIVE
+		return ReturnCode_ADSERR_DEVICE_SYMBOLNOTACTIVE, true
 	case "ADSERR_DEVICE_ACCESSDENIED":
-		enum = ReturnCode_ADSERR_DEVICE_ACCESSDENIED
+		return ReturnCode_ADSERR_DEVICE_ACCESSDENIED, true
 	case "ADSERR_DEVICE_LICENSENOTFOUND":
-		enum = ReturnCode_ADSERR_DEVICE_LICENSENOTFOUND
+		return ReturnCode_ADSERR_DEVICE_LICENSENOTFOUND, true
 	case "ADSERR_DEVICE_LICENSEEXPIRED":
-		enum = ReturnCode_ADSERR_DEVICE_LICENSEEXPIRED
+		return ReturnCode_ADSERR_DEVICE_LICENSEEXPIRED, true
 	case "ADSERR_DEVICE_LICENSEEXCEEDED":
-		enum = ReturnCode_ADSERR_DEVICE_LICENSEEXCEEDED
+		return ReturnCode_ADSERR_DEVICE_LICENSEEXCEEDED, true
 	case "ADSERR_DEVICE_LICENSEINVALID":
-		enum = ReturnCode_ADSERR_DEVICE_LICENSEINVALID
+		return ReturnCode_ADSERR_DEVICE_LICENSEINVALID, true
 	case "ADSERR_DEVICE_LICENSESYSTEMID":
-		enum = ReturnCode_ADSERR_DEVICE_LICENSESYSTEMID
+		return ReturnCode_ADSERR_DEVICE_LICENSESYSTEMID, true
 	case "ADSERR_DEVICE_LICENSENOTIMELIMIT":
-		enum = ReturnCode_ADSERR_DEVICE_LICENSENOTIMELIMIT
+		return ReturnCode_ADSERR_DEVICE_LICENSENOTIMELIMIT, true
 	case "ADSERR_DEVICE_LICENSEFUTUREISSUE":
-		enum = ReturnCode_ADSERR_DEVICE_LICENSEFUTUREISSUE
+		return ReturnCode_ADSERR_DEVICE_LICENSEFUTUREISSUE, true
 	case "ADSERR_DEVICE_LICENSETIMETOLONG":
-		enum = ReturnCode_ADSERR_DEVICE_LICENSETIMETOLONG
+		return ReturnCode_ADSERR_DEVICE_LICENSETIMETOLONG, true
 	case "ADSERR_DEVICE_LICENSEDUPLICATED":
-		enum = ReturnCode_ADSERR_DEVICE_LICENSEDUPLICATED
+		return ReturnCode_ADSERR_DEVICE_LICENSEDUPLICATED, true
 	case "ADSERR_DEVICE_SIGNATUREINVALID":
-		enum = ReturnCode_ADSERR_DEVICE_SIGNATUREINVALID
+		return ReturnCode_ADSERR_DEVICE_SIGNATUREINVALID, true
 	case "ADSERR_DEVICE_CERTIFICATEINVALID":
-		enum = ReturnCode_ADSERR_DEVICE_CERTIFICATEINVALID
+		return ReturnCode_ADSERR_DEVICE_CERTIFICATEINVALID, true
 	case "ADSERR_DEVICE_EXCEPTION":
-		enum = ReturnCode_ADSERR_DEVICE_EXCEPTION
+		return ReturnCode_ADSERR_DEVICE_EXCEPTION, true
 	case "ADSERR_CLIENT_ERROR":
-		enum = ReturnCode_ADSERR_CLIENT_ERROR
+		return ReturnCode_ADSERR_CLIENT_ERROR, true
 	case "ADSERR_CLIENT_INVALIDPARM":
-		enum = ReturnCode_ADSERR_CLIENT_INVALIDPARM
+		return ReturnCode_ADSERR_CLIENT_INVALIDPARM, true
 	case "ADSERR_CLIENT_LISTEMPTY":
-		enum = ReturnCode_ADSERR_CLIENT_LISTEMPTY
+		return ReturnCode_ADSERR_CLIENT_LISTEMPTY, true
 	case "ADSERR_CLIENT_VARUSED":
-		enum = ReturnCode_ADSERR_CLIENT_VARUSED
+		return ReturnCode_ADSERR_CLIENT_VARUSED, true
 	case "ADSERR_CLIENT_DUPLINVOKEID":
-		enum = ReturnCode_ADSERR_CLIENT_DUPLINVOKEID
+		return ReturnCode_ADSERR_CLIENT_DUPLINVOKEID, true
 	case "ADSERR_CLIENT_SYNCTIMEOUT":
-		enum = ReturnCode_ADSERR_CLIENT_SYNCTIMEOUT
+		return ReturnCode_ADSERR_CLIENT_SYNCTIMEOUT, true
 	case "ADSERR_CLIENT_W32ERROR":
-		enum = ReturnCode_ADSERR_CLIENT_W32ERROR
+		return ReturnCode_ADSERR_CLIENT_W32ERROR, true
 	case "ADSERR_CLIENT_TIMEOUTINVALID":
-		enum = ReturnCode_ADSERR_CLIENT_TIMEOUTINVALID
+		return ReturnCode_ADSERR_CLIENT_TIMEOUTINVALID, true
 	case "ADSERR_CLIENT_PORTNOTOPEN":
-		enum = ReturnCode_ADSERR_CLIENT_PORTNOTOPEN
+		return ReturnCode_ADSERR_CLIENT_PORTNOTOPEN, true
 	case "ADSERR_CLIENT_NOAMSADDR":
-		enum = ReturnCode_ADSERR_CLIENT_NOAMSADDR
+		return ReturnCode_ADSERR_CLIENT_NOAMSADDR, true
 	case "ADSERR_CLIENT_SYNCINTERNAL":
-		enum = ReturnCode_ADSERR_CLIENT_SYNCINTERNAL
+		return ReturnCode_ADSERR_CLIENT_SYNCINTERNAL, true
 	case "ADSERR_CLIENT_ADDHASH":
-		enum = ReturnCode_ADSERR_CLIENT_ADDHASH
+		return ReturnCode_ADSERR_CLIENT_ADDHASH, true
 	case "ADSERR_CLIENT_REMOVEHASH":
-		enum = ReturnCode_ADSERR_CLIENT_REMOVEHASH
+		return ReturnCode_ADSERR_CLIENT_REMOVEHASH, true
 	case "ADSERR_CLIENT_NOMORESYM":
-		enum = ReturnCode_ADSERR_CLIENT_NOMORESYM
+		return ReturnCode_ADSERR_CLIENT_NOMORESYM, true
 	case "ADSERR_CLIENT_SYNCRESINVALID":
-		enum = ReturnCode_ADSERR_CLIENT_SYNCRESINVALID
-	default:
-		enum = 0
-		ok = false
+		return ReturnCode_ADSERR_CLIENT_SYNCRESINVALID, true
 	}
-	return
+	return 0, false
 }
 
 func ReturnCodeKnows(value uint32) bool {
@@ -824,7 +820,11 @@ func ReturnCodeParse(readBuffer utils.ReadBuffer) (ReturnCode, error) {
 	if err != nil {
 		return 0, errors.Wrap(err, "error reading ReturnCode")
 	}
-	return ReturnCodeByValue(val), nil
+	if enum, ok := ReturnCodeByValue(val); !ok {
+		return 0, errors.Errorf("no value %v found for ReturnCode", val)
+	} else {
+		return enum, nil
+	}
 }
 
 func (e ReturnCode) Serialize(writeBuffer utils.WriteBuffer) error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/ApduType.go b/plc4go/protocols/bacnetip/readwrite/model/ApduType.go
index 007c7b741..cfeb23ab3 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/ApduType.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/ApduType.go
@@ -76,84 +76,80 @@ func init() {
 	}
 }
 
-func ApduTypeByValue(value uint8) ApduType {
+func ApduTypeByValue(value uint8) (enum ApduType, ok bool) {
 	switch value {
 	case 0x0:
-		return ApduType_CONFIRMED_REQUEST_PDU
+		return ApduType_CONFIRMED_REQUEST_PDU, true
 	case 0x1:
-		return ApduType_UNCONFIRMED_REQUEST_PDU
+		return ApduType_UNCONFIRMED_REQUEST_PDU, true
 	case 0x2:
-		return ApduType_SIMPLE_ACK_PDU
+		return ApduType_SIMPLE_ACK_PDU, true
 	case 0x3:
-		return ApduType_COMPLEX_ACK_PDU
+		return ApduType_COMPLEX_ACK_PDU, true
 	case 0x4:
-		return ApduType_SEGMENT_ACK_PDU
+		return ApduType_SEGMENT_ACK_PDU, true
 	case 0x5:
-		return ApduType_ERROR_PDU
+		return ApduType_ERROR_PDU, true
 	case 0x6:
-		return ApduType_REJECT_PDU
+		return ApduType_REJECT_PDU, true
 	case 0x7:
-		return ApduType_ABORT_PDU
+		return ApduType_ABORT_PDU, true
 	case 0x8:
-		return ApduType_APDU_UNKNOWN_8
+		return ApduType_APDU_UNKNOWN_8, true
 	case 0x9:
-		return ApduType_APDU_UNKNOWN_9
+		return ApduType_APDU_UNKNOWN_9, true
 	case 0xA:
-		return ApduType_APDU_UNKNOWN_A
+		return ApduType_APDU_UNKNOWN_A, true
 	case 0xB:
-		return ApduType_APDU_UNKNOWN_B
+		return ApduType_APDU_UNKNOWN_B, true
 	case 0xC:
-		return ApduType_APDU_UNKNOWN_C
+		return ApduType_APDU_UNKNOWN_C, true
 	case 0xD:
-		return ApduType_APDU_UNKNOWN_D
+		return ApduType_APDU_UNKNOWN_D, true
 	case 0xE:
-		return ApduType_APDU_UNKNOWN_E
+		return ApduType_APDU_UNKNOWN_E, true
 	case 0xF:
-		return ApduType_APDU_UNKNOWN_F
+		return ApduType_APDU_UNKNOWN_F, true
 	}
-	return 0
+	return 0, false
 }
 
 func ApduTypeByName(value string) (enum ApduType, ok bool) {
-	ok = true
 	switch value {
 	case "CONFIRMED_REQUEST_PDU":
-		enum = ApduType_CONFIRMED_REQUEST_PDU
+		return ApduType_CONFIRMED_REQUEST_PDU, true
 	case "UNCONFIRMED_REQUEST_PDU":
-		enum = ApduType_UNCONFIRMED_REQUEST_PDU
+		return ApduType_UNCONFIRMED_REQUEST_PDU, true
 	case "SIMPLE_ACK_PDU":
-		enum = ApduType_SIMPLE_ACK_PDU
+		return ApduType_SIMPLE_ACK_PDU, true
 	case "COMPLEX_ACK_PDU":
-		enum = ApduType_COMPLEX_ACK_PDU
+		return ApduType_COMPLEX_ACK_PDU, true
 	case "SEGMENT_ACK_PDU":
-		enum = ApduType_SEGMENT_ACK_PDU
+		return ApduType_SEGMENT_ACK_PDU, true
 	case "ERROR_PDU":
-		enum = ApduType_ERROR_PDU
+		return ApduType_ERROR_PDU, true
 	case "REJECT_PDU":
-		enum = ApduType_REJECT_PDU
+		return ApduType_REJECT_PDU, true
 	case "ABORT_PDU":
-		enum = ApduType_ABORT_PDU
+		return ApduType_ABORT_PDU, true
 	case "APDU_UNKNOWN_8":
-		enum = ApduType_APDU_UNKNOWN_8
+		return ApduType_APDU_UNKNOWN_8, true
 	case "APDU_UNKNOWN_9":
-		enum = ApduType_APDU_UNKNOWN_9
+		return ApduType_APDU_UNKNOWN_9, true
 	case "APDU_UNKNOWN_A":
-		enum = ApduType_APDU_UNKNOWN_A
+		return ApduType_APDU_UNKNOWN_A, true
 	case "APDU_UNKNOWN_B":
-		enum = ApduType_APDU_UNKNOWN_B
+		return ApduType_APDU_UNKNOWN_B, true
 	case "APDU_UNKNOWN_C":
-		enum = ApduType_APDU_UNKNOWN_C
+		return ApduType_APDU_UNKNOWN_C, true
 	case "APDU_UNKNOWN_D":
-		enum = ApduType_APDU_UNKNOWN_D
+		return ApduType_APDU_UNKNOWN_D, true
 	case "APDU_UNKNOWN_E":
-		enum = ApduType_APDU_UNKNOWN_E
+		return ApduType_APDU_UNKNOWN_E, true
 	case "APDU_UNKNOWN_F":
-		enum = ApduType_APDU_UNKNOWN_F
-	default:
-		enum = 0
-		ok = false
+		return ApduType_APDU_UNKNOWN_F, true
 	}
-	return
+	return 0, false
 }
 
 func ApduTypeKnows(value uint8) bool {
@@ -188,7 +184,11 @@ func ApduTypeParse(readBuffer utils.ReadBuffer) (ApduType, error) {
 	if err != nil {
 		return 0, errors.Wrap(err, "error reading ApduType")
 	}
-	return ApduTypeByValue(val), nil
+	if enum, ok := ApduTypeByValue(val); !ok {
+		return 0, errors.Errorf("no value %v found for ApduType", val)
+	} else {
+		return enum, nil
+	}
 }
 
 func (e ApduType) Serialize(writeBuffer utils.WriteBuffer) error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetAbortReason.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetAbortReason.go
index ee12072f0..dff82ce8e 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetAbortReason.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetAbortReason.go
@@ -70,72 +70,68 @@ func init() {
 	}
 }
 
-func BACnetAbortReasonByValue(value uint8) BACnetAbortReason {
+func BACnetAbortReasonByValue(value uint8) (enum BACnetAbortReason, ok bool) {
 	switch value {
 	case 0:
-		return BACnetAbortReason_OTHER
+		return BACnetAbortReason_OTHER, true
 	case 0xFF:
-		return BACnetAbortReason_VENDOR_PROPRIETARY_VALUE
+		return BACnetAbortReason_VENDOR_PROPRIETARY_VALUE, true
 	case 1:
-		return BACnetAbortReason_BUFFER_OVERFLOW
+		return BACnetAbortReason_BUFFER_OVERFLOW, true
 	case 10:
-		return BACnetAbortReason_TSM_TIMEOUT
+		return BACnetAbortReason_TSM_TIMEOUT, true
 	case 11:
-		return BACnetAbortReason_APDU_TOO_LONG
+		return BACnetAbortReason_APDU_TOO_LONG, true
 	case 2:
-		return BACnetAbortReason_INVALID_APDU_IN_THIS_STATE
+		return BACnetAbortReason_INVALID_APDU_IN_THIS_STATE, true
 	case 3:
-		return BACnetAbortReason_PREEMPTED_BY_HIGHER_PRIORITY_TASK
+		return BACnetAbortReason_PREEMPTED_BY_HIGHER_PRIORITY_TASK, true
 	case 4:
-		return BACnetAbortReason_SEGMENTATION_NOT_SUPPORTED
+		return BACnetAbortReason_SEGMENTATION_NOT_SUPPORTED, true
 	case 5:
-		return BACnetAbortReason_SECURITY_ERROR
+		return BACnetAbortReason_SECURITY_ERROR, true
 	case 6:
-		return BACnetAbortReason_INSUFFICIENT_SECURITY
+		return BACnetAbortReason_INSUFFICIENT_SECURITY, true
 	case 7:
-		return BACnetAbortReason_WINDOW_SIZE_OUT_OF_RANGE
+		return BACnetAbortReason_WINDOW_SIZE_OUT_OF_RANGE, true
 	case 8:
-		return BACnetAbortReason_APPLICATION_EXCEEDED_REPLY_TIME
+		return BACnetAbortReason_APPLICATION_EXCEEDED_REPLY_TIME, true
 	case 9:
-		return BACnetAbortReason_OUT_OF_RESOURCES
+		return BACnetAbortReason_OUT_OF_RESOURCES, true
 	}
-	return 0
+	return 0, false
 }
 
 func BACnetAbortReasonByName(value string) (enum BACnetAbortReason, ok bool) {
-	ok = true
 	switch value {
 	case "OTHER":
-		enum = BACnetAbortReason_OTHER
+		return BACnetAbortReason_OTHER, true
 	case "VENDOR_PROPRIETARY_VALUE":
-		enum = BACnetAbortReason_VENDOR_PROPRIETARY_VALUE
+		return BACnetAbortReason_VENDOR_PROPRIETARY_VALUE, true
 	case "BUFFER_OVERFLOW":
-		enum = BACnetAbortReason_BUFFER_OVERFLOW
+		return BACnetAbortReason_BUFFER_OVERFLOW, true
 	case "TSM_TIMEOUT":
-		enum = BACnetAbortReason_TSM_TIMEOUT
+		return BACnetAbortReason_TSM_TIMEOUT, true
 	case "APDU_TOO_LONG":
-		enum = BACnetAbortReason_APDU_TOO_LONG
+		return BACnetAbortReason_APDU_TOO_LONG, true
 	case "INVALID_APDU_IN_THIS_STATE":
-		enum = BACnetAbortReason_INVALID_APDU_IN_THIS_STATE
+		return BACnetAbortReason_INVALID_APDU_IN_THIS_STATE, true
 	case "PREEMPTED_BY_HIGHER_PRIORITY_TASK":
-		enum = BACnetAbortReason_PREEMPTED_BY_HIGHER_PRIORITY_TASK
+		return BACnetAbortReason_PREEMPTED_BY_HIGHER_PRIORITY_TASK, true
 	case "SEGMENTATION_NOT_SUPPORTED":
-		enum = BACnetAbortReason_SEGMENTATION_NOT_SUPPORTED
+		return BACnetAbortReason_SEGMENTATION_NOT_SUPPORTED, true
 	case "SECURITY_ERROR":
-		enum = BACnetAbortReason_SECURITY_ERROR
+		return BACnetAbortReason_SECURITY_ERROR, true
 	case "INSUFFICIENT_SECURITY":
-		enum = BACnetAbortReason_INSUFFICIENT_SECURITY
+		return BACnetAbortReason_INSUFFICIENT_SECURITY, true
 	case "WINDOW_SIZE_OUT_OF_RANGE":
-		enum = BACnetAbortReason_WINDOW_SIZE_OUT_OF_RANGE
+		return BACnetAbortReason_WINDOW_SIZE_OUT_OF_RANGE, true
 	case "APPLICATION_EXCEEDED_REPLY_TIME":
-		enum = BACnetAbortReason_APPLICATION_EXCEEDED_REPLY_TIME
+		return BACnetAbortReason_APPLICATION_EXCEEDED_REPLY_TIME, true
 	case "OUT_OF_RESOURCES":
-		enum = BACnetAbortReason_OUT_OF_RESOURCES
-	default:
-		enum = 0
-		ok = false
+		return BACnetAbortReason_OUT_OF_RESOURCES, true
 	}
-	return
+	return 0, false
 }
 
 func BACnetAbortReasonKnows(value uint8) bool {
@@ -170,7 +166,11 @@ func BACnetAbortReasonParse(readBuffer utils.ReadBuffer) (BACnetAbortReason, err
 	if err != nil {
 		return 0, errors.Wrap(err, "error reading BACnetAbortReason")
 	}
-	return BACnetAbortReasonByValue(val), nil
+	if enum, ok := BACnetAbortReasonByValue(val); !ok {
+		return 0, errors.Errorf("no value %v found for BACnetAbortReason", val)
+	} else {
+		return enum, nil
+	}
 }
 
 func (e BACnetAbortReason) Serialize(writeBuffer utils.WriteBuffer) error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessAuthenticationFactorDisable.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessAuthenticationFactorDisable.go
index 549356344..61595ef96 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessAuthenticationFactorDisable.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessAuthenticationFactorDisable.go
@@ -58,48 +58,44 @@ func init() {
 	}
 }
 
-func BACnetAccessAuthenticationFactorDisableByValue(value uint16) BACnetAccessAuthenticationFactorDisable {
+func BACnetAccessAuthenticationFactorDisableByValue(value uint16) (enum BACnetAccessAuthenticationFactorDisable, ok bool) {
 	switch value {
 	case 0:
-		return BACnetAccessAuthenticationFactorDisable_NONE
+		return BACnetAccessAuthenticationFactorDisable_NONE, true
 	case 0xFFFF:
-		return BACnetAccessAuthenticationFactorDisable_VENDOR_PROPRIETARY_VALUE
+		return BACnetAccessAuthenticationFactorDisable_VENDOR_PROPRIETARY_VALUE, true
 	case 1:
-		return BACnetAccessAuthenticationFactorDisable_DISABLED
+		return BACnetAccessAuthenticationFactorDisable_DISABLED, true
 	case 2:
-		return BACnetAccessAuthenticationFactorDisable_DISABLED_LOST
+		return BACnetAccessAuthenticationFactorDisable_DISABLED_LOST, true
 	case 3:
-		return BACnetAccessAuthenticationFactorDisable_DISABLED_STOLEN
+		return BACnetAccessAuthenticationFactorDisable_DISABLED_STOLEN, true
 	case 4:
-		return BACnetAccessAuthenticationFactorDisable_DISABLED_DAMAGED
+		return BACnetAccessAuthenticationFactorDisable_DISABLED_DAMAGED, true
 	case 5:
-		return BACnetAccessAuthenticationFactorDisable_DISABLED_DESTROYED
+		return BACnetAccessAuthenticationFactorDisable_DISABLED_DESTROYED, true
 	}
-	return 0
+	return 0, false
 }
 
 func BACnetAccessAuthenticationFactorDisableByName(value string) (enum BACnetAccessAuthenticationFactorDisable, ok bool) {
-	ok = true
 	switch value {
 	case "NONE":
-		enum = BACnetAccessAuthenticationFactorDisable_NONE
+		return BACnetAccessAuthenticationFactorDisable_NONE, true
 	case "VENDOR_PROPRIETARY_VALUE":
-		enum = BACnetAccessAuthenticationFactorDisable_VENDOR_PROPRIETARY_VALUE
+		return BACnetAccessAuthenticationFactorDisable_VENDOR_PROPRIETARY_VALUE, true
 	case "DISABLED":
-		enum = BACnetAccessAuthenticationFactorDisable_DISABLED
+		return BACnetAccessAuthenticationFactorDisable_DISABLED, true
 	case "DISABLED_LOST":
-		enum = BACnetAccessAuthenticationFactorDisable_DISABLED_LOST
+		return BACnetAccessAuthenticationFactorDisable_DISABLED_LOST, true
 	case "DISABLED_STOLEN":
-		enum = BACnetAccessAuthenticationFactorDisable_DISABLED_STOLEN
+		return BACnetAccessAuthenticationFactorDisable_DISABLED_STOLEN, true
 	case "DISABLED_DAMAGED":
-		enum = BACnetAccessAuthenticationFactorDisable_DISABLED_DAMAGED
+		return BACnetAccessAuthenticationFactorDisable_DISABLED_DAMAGED, true
 	case "DISABLED_DESTROYED":
-		enum = BACnetAccessAuthenticationFactorDisable_DISABLED_DESTROYED
-	default:
-		enum = 0
-		ok = false
+		return BACnetAccessAuthenticationFactorDisable_DISABLED_DESTROYED, true
 	}
-	return
+	return 0, false
 }
 
 func BACnetAccessAuthenticationFactorDisableKnows(value uint16) bool {
@@ -134,7 +130,11 @@ func BACnetAccessAuthenticationFactorDisableParse(readBuffer utils.ReadBuffer) (
 	if err != nil {
 		return 0, errors.Wrap(err, "error reading BACnetAccessAuthenticationFactorDisable")
 	}
-	return BACnetAccessAuthenticationFactorDisableByValue(val), nil
+	if enum, ok := BACnetAccessAuthenticationFactorDisableByValue(val); !ok {
+		return 0, errors.Errorf("no value %v found for BACnetAccessAuthenticationFactorDisable", val)
+	} else {
+		return enum, nil
+	}
 }
 
 func (e BACnetAccessAuthenticationFactorDisable) Serialize(writeBuffer utils.WriteBuffer) error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessCredentialDisable.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessCredentialDisable.go
index 45f50310e..9507aca71 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessCredentialDisable.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessCredentialDisable.go
@@ -54,40 +54,36 @@ func init() {
 	}
 }
 
-func BACnetAccessCredentialDisableByValue(value uint16) BACnetAccessCredentialDisable {
+func BACnetAccessCredentialDisableByValue(value uint16) (enum BACnetAccessCredentialDisable, ok bool) {
 	switch value {
 	case 0:
-		return BACnetAccessCredentialDisable_NONE
+		return BACnetAccessCredentialDisable_NONE, true
 	case 0xFFFF:
-		return BACnetAccessCredentialDisable_VENDOR_PROPRIETARY_VALUE
+		return BACnetAccessCredentialDisable_VENDOR_PROPRIETARY_VALUE, true
 	case 1:
-		return BACnetAccessCredentialDisable_DISABLE
+		return BACnetAccessCredentialDisable_DISABLE, true
 	case 2:
-		return BACnetAccessCredentialDisable_DISABLE_MANUAL
+		return BACnetAccessCredentialDisable_DISABLE_MANUAL, true
 	case 3:
-		return BACnetAccessCredentialDisable_DISABLE_LOCKOUT
+		return BACnetAccessCredentialDisable_DISABLE_LOCKOUT, true
 	}
-	return 0
+	return 0, false
 }
 
 func BACnetAccessCredentialDisableByName(value string) (enum BACnetAccessCredentialDisable, ok bool) {
-	ok = true
 	switch value {
 	case "NONE":
-		enum = BACnetAccessCredentialDisable_NONE
+		return BACnetAccessCredentialDisable_NONE, true
 	case "VENDOR_PROPRIETARY_VALUE":
-		enum = BACnetAccessCredentialDisable_VENDOR_PROPRIETARY_VALUE
+		return BACnetAccessCredentialDisable_VENDOR_PROPRIETARY_VALUE, true
 	case "DISABLE":
-		enum = BACnetAccessCredentialDisable_DISABLE
+		return BACnetAccessCredentialDisable_DISABLE, true
 	case "DISABLE_MANUAL":
-		enum = BACnetAccessCredentialDisable_DISABLE_MANUAL
+		return BACnetAccessCredentialDisable_DISABLE_MANUAL, true
 	case "DISABLE_LOCKOUT":
-		enum = BACnetAccessCredentialDisable_DISABLE_LOCKOUT
-	default:
-		enum = 0
-		ok = false
+		return BACnetAccessCredentialDisable_DISABLE_LOCKOUT, true
 	}
-	return
+	return 0, false
 }
 
 func BACnetAccessCredentialDisableKnows(value uint16) bool {
@@ -122,7 +118,11 @@ func BACnetAccessCredentialDisableParse(readBuffer utils.ReadBuffer) (BACnetAcce
 	if err != nil {
 		return 0, errors.Wrap(err, "error reading BACnetAccessCredentialDisable")
 	}
-	return BACnetAccessCredentialDisableByValue(val), nil
+	if enum, ok := BACnetAccessCredentialDisableByValue(val); !ok {
+		return 0, errors.Errorf("no value %v found for BACnetAccessCredentialDisable", val)
+	} else {
+		return enum, nil
+	}
 }
 
 func (e BACnetAccessCredentialDisable) Serialize(writeBuffer utils.WriteBuffer) error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessCredentialDisableReason.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessCredentialDisableReason.go
index 3c8cbee1b..a81b5af4d 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessCredentialDisableReason.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessCredentialDisableReason.go
@@ -66,64 +66,60 @@ func init() {
 	}
 }
 
-func BACnetAccessCredentialDisableReasonByValue(value uint16) BACnetAccessCredentialDisableReason {
+func BACnetAccessCredentialDisableReasonByValue(value uint16) (enum BACnetAccessCredentialDisableReason, ok bool) {
 	switch value {
 	case 0:
-		return BACnetAccessCredentialDisableReason_DISABLED
+		return BACnetAccessCredentialDisableReason_DISABLED, true
 	case 0xFFFF:
-		return BACnetAccessCredentialDisableReason_VENDOR_PROPRIETARY_VALUE
+		return BACnetAccessCredentialDisableReason_VENDOR_PROPRIETARY_VALUE, true
 	case 1:
-		return BACnetAccessCredentialDisableReason_DISABLED_NEEDS_PROVISIONING
+		return BACnetAccessCredentialDisableReason_DISABLED_NEEDS_PROVISIONING, true
 	case 2:
-		return BACnetAccessCredentialDisableReason_DISABLED_UNASSIGNED
+		return BACnetAccessCredentialDisableReason_DISABLED_UNASSIGNED, true
 	case 3:
-		return BACnetAccessCredentialDisableReason_DISABLED_NOT_YET_ACTIVE
+		return BACnetAccessCredentialDisableReason_DISABLED_NOT_YET_ACTIVE, true
 	case 4:
-		return BACnetAccessCredentialDisableReason_DISABLED_EXPIRED
+		return BACnetAccessCredentialDisableReason_DISABLED_EXPIRED, true
 	case 5:
-		return BACnetAccessCredentialDisableReason_DISABLED_LOCKOUT
+		return BACnetAccessCredentialDisableReason_DISABLED_LOCKOUT, true
 	case 6:
-		return BACnetAccessCredentialDisableReason_DISABLED_MAX_DAYS
+		return BACnetAccessCredentialDisableReason_DISABLED_MAX_DAYS, true
 	case 7:
-		return BACnetAccessCredentialDisableReason_DISABLED_MAX_USES
+		return BACnetAccessCredentialDisableReason_DISABLED_MAX_USES, true
 	case 8:
-		return BACnetAccessCredentialDisableReason_DISABLED_INACTIVITY
+		return BACnetAccessCredentialDisableReason_DISABLED_INACTIVITY, true
 	case 9:
-		return BACnetAccessCredentialDisableReason_DISABLED_MANUAL
+		return BACnetAccessCredentialDisableReason_DISABLED_MANUAL, true
 	}
-	return 0
+	return 0, false
 }
 
 func BACnetAccessCredentialDisableReasonByName(value string) (enum BACnetAccessCredentialDisableReason, ok bool) {
-	ok = true
 	switch value {
 	case "DISABLED":
-		enum = BACnetAccessCredentialDisableReason_DISABLED
+		return BACnetAccessCredentialDisableReason_DISABLED, true
 	case "VENDOR_PROPRIETARY_VALUE":
-		enum = BACnetAccessCredentialDisableReason_VENDOR_PROPRIETARY_VALUE
+		return BACnetAccessCredentialDisableReason_VENDOR_PROPRIETARY_VALUE, true
 	case "DISABLED_NEEDS_PROVISIONING":
-		enum = BACnetAccessCredentialDisableReason_DISABLED_NEEDS_PROVISIONING
+		return BACnetAccessCredentialDisableReason_DISABLED_NEEDS_PROVISIONING, true
 	case "DISABLED_UNASSIGNED":
-		enum = BACnetAccessCredentialDisableReason_DISABLED_UNASSIGNED
+		return BACnetAccessCredentialDisableReason_DISABLED_UNASSIGNED, true
 	case "DISABLED_NOT_YET_ACTIVE":
-		enum = BACnetAccessCredentialDisableReason_DISABLED_NOT_YET_ACTIVE
+		return BACnetAccessCredentialDisableReason_DISABLED_NOT_YET_ACTIVE, true
 	case "DISABLED_EXPIRED":
-		enum = BACnetAccessCredentialDisableReason_DISABLED_EXPIRED
+		return BACnetAccessCredentialDisableReason_DISABLED_EXPIRED, true
 	case "DISABLED_LOCKOUT":
-		enum = BACnetAccessCredentialDisableReason_DISABLED_LOCKOUT
+		return BACnetAccessCredentialDisableReason_DISABLED_LOCKOUT, true
 	case "DISABLED_MAX_DAYS":
-		enum = BACnetAccessCredentialDisableReason_DISABLED_MAX_DAYS
+		return BACnetAccessCredentialDisableReason_DISABLED_MAX_DAYS, true
 	case "DISABLED_MAX_USES":
-		enum = BACnetAccessCredentialDisableReason_DISABLED_MAX_USES
+		return BACnetAccessCredentialDisableReason_DISABLED_MAX_USES, true
 	case "DISABLED_INACTIVITY":
-		enum = BACnetAccessCredentialDisableReason_DISABLED_INACTIVITY
+		return BACnetAccessCredentialDisableReason_DISABLED_INACTIVITY, true
 	case "DISABLED_MANUAL":
-		enum = BACnetAccessCredentialDisableReason_DISABLED_MANUAL
-	default:
-		enum = 0
-		ok = false
+		return BACnetAccessCredentialDisableReason_DISABLED_MANUAL, true
 	}
-	return
+	return 0, false
 }
 
 func BACnetAccessCredentialDisableReasonKnows(value uint16) bool {
@@ -158,7 +154,11 @@ func BACnetAccessCredentialDisableReasonParse(readBuffer utils.ReadBuffer) (BACn
 	if err != nil {
 		return 0, errors.Wrap(err, "error reading BACnetAccessCredentialDisableReason")
 	}
-	return BACnetAccessCredentialDisableReasonByValue(val), nil
+	if enum, ok := BACnetAccessCredentialDisableReasonByValue(val); !ok {
+		return 0, errors.Errorf("no value %v found for BACnetAccessCredentialDisableReason", val)
+	} else {
+		return enum, nil
+	}
 }
 
 func (e BACnetAccessCredentialDisableReason) Serialize(writeBuffer utils.WriteBuffer) error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessEvent.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessEvent.go
index 4871a4e2f..4bfb09018 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessEvent.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessEvent.go
@@ -154,240 +154,236 @@ func init() {
 	}
 }
 
-func BACnetAccessEventByValue(value uint16) BACnetAccessEvent {
+func BACnetAccessEventByValue(value uint16) (enum BACnetAccessEvent, ok bool) {
 	switch value {
 	case 0:
-		return BACnetAccessEvent_NONE
+		return BACnetAccessEvent_NONE, true
 	case 0xFFFF:
-		return BACnetAccessEvent_VENDOR_PROPRIETARY_VALUE
+		return BACnetAccessEvent_VENDOR_PROPRIETARY_VALUE, true
 	case 1:
-		return BACnetAccessEvent_GRANTED
+		return BACnetAccessEvent_GRANTED, true
 	case 10:
-		return BACnetAccessEvent_OUT_OF_SERVICE
+		return BACnetAccessEvent_OUT_OF_SERVICE, true
 	case 11:
-		return BACnetAccessEvent_OUT_OF_SERVICE_RELINQUISHED
+		return BACnetAccessEvent_OUT_OF_SERVICE_RELINQUISHED, true
 	case 12:
-		return BACnetAccessEvent_ACCOMPANIMENT_BY
+		return BACnetAccessEvent_ACCOMPANIMENT_BY, true
 	case 128:
-		return BACnetAccessEvent_DENIED_DENY_ALL
+		return BACnetAccessEvent_DENIED_DENY_ALL, true
 	case 129:
-		return BACnetAccessEvent_DENIED_UNKNOWN_CREDENTIAL
+		return BACnetAccessEvent_DENIED_UNKNOWN_CREDENTIAL, true
 	case 13:
-		return BACnetAccessEvent_AUTHENTICATION_FACTOR_READ
+		return BACnetAccessEvent_AUTHENTICATION_FACTOR_READ, true
 	case 130:
-		return BACnetAccessEvent_DENIED_AUTHENTICATION_UNAVAILABLE
+		return BACnetAccessEvent_DENIED_AUTHENTICATION_UNAVAILABLE, true
 	case 131:
-		return BACnetAccessEvent_DENIED_AUTHENTICATION_FACTOR_TIMEOUT
+		return BACnetAccessEvent_DENIED_AUTHENTICATION_FACTOR_TIMEOUT, true
 	case 132:
-		return BACnetAccessEvent_DENIED_INCORRECT_AUTHENTICATION_FACTOR
+		return BACnetAccessEvent_DENIED_INCORRECT_AUTHENTICATION_FACTOR, true
 	case 133:
-		return BACnetAccessEvent_DENIED_ZONE_NO_ACCESS_RIGHTS
+		return BACnetAccessEvent_DENIED_ZONE_NO_ACCESS_RIGHTS, true
 	case 134:
-		return BACnetAccessEvent_DENIED_POINT_NO_ACCESS_RIGHTS
+		return BACnetAccessEvent_DENIED_POINT_NO_ACCESS_RIGHTS, true
 	case 135:
-		return BACnetAccessEvent_DENIED_NO_ACCESS_RIGHTS
+		return BACnetAccessEvent_DENIED_NO_ACCESS_RIGHTS, true
 	case 136:
-		return BACnetAccessEvent_DENIED_OUT_OF_TIME_RANGE
+		return BACnetAccessEvent_DENIED_OUT_OF_TIME_RANGE, true
 	case 137:
-		return BACnetAccessEvent_DENIED_THREAT_LEVEL
+		return BACnetAccessEvent_DENIED_THREAT_LEVEL, true
 	case 138:
-		return BACnetAccessEvent_DENIED_PASSBACK
+		return BACnetAccessEvent_DENIED_PASSBACK, true
 	case 139:
-		return BACnetAccessEvent_DENIED_UNEXPECTED_LOCATION_USAGE
+		return BACnetAccessEvent_DENIED_UNEXPECTED_LOCATION_USAGE, true
 	case 14:
-		return BACnetAccessEvent_AUTHORIZATION_DELAYED
+		return BACnetAccessEvent_AUTHORIZATION_DELAYED, true
 	case 140:
-		return BACnetAccessEvent_DENIED_MAX_ATTEMPTS
+		return BACnetAccessEvent_DENIED_MAX_ATTEMPTS, true
 	case 141:
-		return BACnetAccessEvent_DENIED_LOWER_OCCUPANCY_LIMIT
+		return BACnetAccessEvent_DENIED_LOWER_OCCUPANCY_LIMIT, true
 	case 142:
-		return BACnetAccessEvent_DENIED_UPPER_OCCUPANCY_LIMIT
+		return BACnetAccessEvent_DENIED_UPPER_OCCUPANCY_LIMIT, true
 	case 143:
-		return BACnetAccessEvent_DENIED_AUTHENTICATION_FACTOR_LOST
+		return BACnetAccessEvent_DENIED_AUTHENTICATION_FACTOR_LOST, true
 	case 144:
-		return BACnetAccessEvent_DENIED_AUTHENTICATION_FACTOR_STOLEN
+		return BACnetAccessEvent_DENIED_AUTHENTICATION_FACTOR_STOLEN, true
 	case 145:
-		return BACnetAccessEvent_DENIED_AUTHENTICATION_FACTOR_DAMAGED
+		return BACnetAccessEvent_DENIED_AUTHENTICATION_FACTOR_DAMAGED, true
 	case 146:
-		return BACnetAccessEvent_DENIED_AUTHENTICATION_FACTOR_DESTROYED
+		return BACnetAccessEvent_DENIED_AUTHENTICATION_FACTOR_DESTROYED, true
 	case 147:
-		return BACnetAccessEvent_DENIED_AUTHENTICATION_FACTOR_DISABLED
+		return BACnetAccessEvent_DENIED_AUTHENTICATION_FACTOR_DISABLED, true
 	case 148:
-		return BACnetAccessEvent_DENIED_AUTHENTICATION_FACTOR_ERROR
+		return BACnetAccessEvent_DENIED_AUTHENTICATION_FACTOR_ERROR, true
 	case 149:
-		return BACnetAccessEvent_DENIED_CREDENTIAL_UNASSIGNED
+		return BACnetAccessEvent_DENIED_CREDENTIAL_UNASSIGNED, true
 	case 15:
-		return BACnetAccessEvent_VERIFICATION_REQUIRED
+		return BACnetAccessEvent_VERIFICATION_REQUIRED, true
 	case 150:
-		return BACnetAccessEvent_DENIED_CREDENTIAL_NOT_PROVISIONED
+		return BACnetAccessEvent_DENIED_CREDENTIAL_NOT_PROVISIONED, true
 	case 151:
-		return BACnetAccessEvent_DENIED_CREDENTIAL_NOT_YET_ACTIVE
+		return BACnetAccessEvent_DENIED_CREDENTIAL_NOT_YET_ACTIVE, true
 	case 152:
-		return BACnetAccessEvent_DENIED_CREDENTIAL_EXPIRED
+		return BACnetAccessEvent_DENIED_CREDENTIAL_EXPIRED, true
 	case 153:
-		return BACnetAccessEvent_DENIED_CREDENTIAL_MANUAL_DISABLE
+		return BACnetAccessEvent_DENIED_CREDENTIAL_MANUAL_DISABLE, true
 	case 154:
-		return BACnetAccessEvent_DENIED_CREDENTIAL_LOCKOUT
+		return BACnetAccessEvent_DENIED_CREDENTIAL_LOCKOUT, true
 	case 155:
-		return BACnetAccessEvent_DENIED_CREDENTIAL_MAX_DAYS
+		return BACnetAccessEvent_DENIED_CREDENTIAL_MAX_DAYS, true
 	case 156:
-		return BACnetAccessEvent_DENIED_CREDENTIAL_MAX_USES
+		return BACnetAccessEvent_DENIED_CREDENTIAL_MAX_USES, true
 	case 157:
-		return BACnetAccessEvent_DENIED_CREDENTIAL_INACTIVITY
+		return BACnetAccessEvent_DENIED_CREDENTIAL_INACTIVITY, true
 	case 158:
-		return BACnetAccessEvent_DENIED_CREDENTIAL_DISABLED
+		return BACnetAccessEvent_DENIED_CREDENTIAL_DISABLED, true
 	case 159:
-		return BACnetAccessEvent_DENIED_NO_ACCOMPANIMENT
+		return BACnetAccessEvent_DENIED_NO_ACCOMPANIMENT, true
 	case 16:
-		return BACnetAccessEvent_NO_ENTRY_AFTER_GRANTED
+		return BACnetAccessEvent_NO_ENTRY_AFTER_GRANTED, true
 	case 160:
-		return BACnetAccessEvent_DENIED_INCORRECT_ACCOMPANIMENT
+		return BACnetAccessEvent_DENIED_INCORRECT_ACCOMPANIMENT, true
 	case 161:
-		return BACnetAccessEvent_DENIED_LOCKOUT
+		return BACnetAccessEvent_DENIED_LOCKOUT, true
 	case 162:
-		return BACnetAccessEvent_DENIED_VERIFICATION_FAILED
+		return BACnetAccessEvent_DENIED_VERIFICATION_FAILED, true
 	case 163:
-		return BACnetAccessEvent_DENIED_VERIFICATION_TIMEOUT
+		return BACnetAccessEvent_DENIED_VERIFICATION_TIMEOUT, true
 	case 164:
-		return BACnetAccessEvent_DENIED_OTHER
+		return BACnetAccessEvent_DENIED_OTHER, true
 	case 2:
-		return BACnetAccessEvent_MUSTER
+		return BACnetAccessEvent_MUSTER, true
 	case 3:
-		return BACnetAccessEvent_PASSBACK_DETECTED
+		return BACnetAccessEvent_PASSBACK_DETECTED, true
 	case 4:
-		return BACnetAccessEvent_DURESS
+		return BACnetAccessEvent_DURESS, true
 	case 5:
-		return BACnetAccessEvent_TRACE
+		return BACnetAccessEvent_TRACE, true
 	case 6:
-		return BACnetAccessEvent_LOCKOUT_MAX_ATTEMPTS
+		return BACnetAccessEvent_LOCKOUT_MAX_ATTEMPTS, true
 	case 7:
-		return BACnetAccessEvent_LOCKOUT_OTHER
+		return BACnetAccessEvent_LOCKOUT_OTHER, true
 	case 8:
-		return BACnetAccessEvent_LOCKOUT_RELINQUISHED
+		return BACnetAccessEvent_LOCKOUT_RELINQUISHED, true
 	case 9:
-		return BACnetAccessEvent_LOCKED_BY_HIGHER_PRIORITY
+		return BACnetAccessEvent_LOCKED_BY_HIGHER_PRIORITY, true
 	}
-	return 0
+	return 0, false
 }
 
 func BACnetAccessEventByName(value string) (enum BACnetAccessEvent, ok bool) {
-	ok = true
 	switch value {
 	case "NONE":
-		enum = BACnetAccessEvent_NONE
+		return BACnetAccessEvent_NONE, true
 	case "VENDOR_PROPRIETARY_VALUE":
-		enum = BACnetAccessEvent_VENDOR_PROPRIETARY_VALUE
+		return BACnetAccessEvent_VENDOR_PROPRIETARY_VALUE, true
 	case "GRANTED":
-		enum = BACnetAccessEvent_GRANTED
+		return BACnetAccessEvent_GRANTED, true
 	case "OUT_OF_SERVICE":
-		enum = BACnetAccessEvent_OUT_OF_SERVICE
+		return BACnetAccessEvent_OUT_OF_SERVICE, true
 	case "OUT_OF_SERVICE_RELINQUISHED":
-		enum = BACnetAccessEvent_OUT_OF_SERVICE_RELINQUISHED
+		return BACnetAccessEvent_OUT_OF_SERVICE_RELINQUISHED, true
 	case "ACCOMPANIMENT_BY":
-		enum = BACnetAccessEvent_ACCOMPANIMENT_BY
+		return BACnetAccessEvent_ACCOMPANIMENT_BY, true
 	case "DENIED_DENY_ALL":
-		enum = BACnetAccessEvent_DENIED_DENY_ALL
+		return BACnetAccessEvent_DENIED_DENY_ALL, true
 	case "DENIED_UNKNOWN_CREDENTIAL":
-		enum = BACnetAccessEvent_DENIED_UNKNOWN_CREDENTIAL
+		return BACnetAccessEvent_DENIED_UNKNOWN_CREDENTIAL, true
 	case "AUTHENTICATION_FACTOR_READ":
-		enum = BACnetAccessEvent_AUTHENTICATION_FACTOR_READ
+		return BACnetAccessEvent_AUTHENTICATION_FACTOR_READ, true
 	case "DENIED_AUTHENTICATION_UNAVAILABLE":
-		enum = BACnetAccessEvent_DENIED_AUTHENTICATION_UNAVAILABLE
+		return BACnetAccessEvent_DENIED_AUTHENTICATION_UNAVAILABLE, true
 	case "DENIED_AUTHENTICATION_FACTOR_TIMEOUT":
-		enum = BACnetAccessEvent_DENIED_AUTHENTICATION_FACTOR_TIMEOUT
+		return BACnetAccessEvent_DENIED_AUTHENTICATION_FACTOR_TIMEOUT, true
 	case "DENIED_INCORRECT_AUTHENTICATION_FACTOR":
-		enum = BACnetAccessEvent_DENIED_INCORRECT_AUTHENTICATION_FACTOR
+		return BACnetAccessEvent_DENIED_INCORRECT_AUTHENTICATION_FACTOR, true
 	case "DENIED_ZONE_NO_ACCESS_RIGHTS":
-		enum = BACnetAccessEvent_DENIED_ZONE_NO_ACCESS_RIGHTS
+		return BACnetAccessEvent_DENIED_ZONE_NO_ACCESS_RIGHTS, true
 	case "DENIED_POINT_NO_ACCESS_RIGHTS":
-		enum = BACnetAccessEvent_DENIED_POINT_NO_ACCESS_RIGHTS
+		return BACnetAccessEvent_DENIED_POINT_NO_ACCESS_RIGHTS, true
 	case "DENIED_NO_ACCESS_RIGHTS":
-		enum = BACnetAccessEvent_DENIED_NO_ACCESS_RIGHTS
+		return BACnetAccessEvent_DENIED_NO_ACCESS_RIGHTS, true
 	case "DENIED_OUT_OF_TIME_RANGE":
-		enum = BACnetAccessEvent_DENIED_OUT_OF_TIME_RANGE
+		return BACnetAccessEvent_DENIED_OUT_OF_TIME_RANGE, true
 	case "DENIED_THREAT_LEVEL":
-		enum = BACnetAccessEvent_DENIED_THREAT_LEVEL
+		return BACnetAccessEvent_DENIED_THREAT_LEVEL, true
 	case "DENIED_PASSBACK":
-		enum = BACnetAccessEvent_DENIED_PASSBACK
+		return BACnetAccessEvent_DENIED_PASSBACK, true
 	case "DENIED_UNEXPECTED_LOCATION_USAGE":
-		enum = BACnetAccessEvent_DENIED_UNEXPECTED_LOCATION_USAGE
+		return BACnetAccessEvent_DENIED_UNEXPECTED_LOCATION_USAGE, true
 	case "AUTHORIZATION_DELAYED":
-		enum = BACnetAccessEvent_AUTHORIZATION_DELAYED
+		return BACnetAccessEvent_AUTHORIZATION_DELAYED, true
 	case "DENIED_MAX_ATTEMPTS":
-		enum = BACnetAccessEvent_DENIED_MAX_ATTEMPTS
+		return BACnetAccessEvent_DENIED_MAX_ATTEMPTS, true
 	case "DENIED_LOWER_OCCUPANCY_LIMIT":
-		enum = BACnetAccessEvent_DENIED_LOWER_OCCUPANCY_LIMIT
+		return BACnetAccessEvent_DENIED_LOWER_OCCUPANCY_LIMIT, true
 	case "DENIED_UPPER_OCCUPANCY_LIMIT":
-		enum = BACnetAccessEvent_DENIED_UPPER_OCCUPANCY_LIMIT
+		return BACnetAccessEvent_DENIED_UPPER_OCCUPANCY_LIMIT, true
 	case "DENIED_AUTHENTICATION_FACTOR_LOST":
-		enum = BACnetAccessEvent_DENIED_AUTHENTICATION_FACTOR_LOST
+		return BACnetAccessEvent_DENIED_AUTHENTICATION_FACTOR_LOST, true
 	case "DENIED_AUTHENTICATION_FACTOR_STOLEN":
-		enum = BACnetAccessEvent_DENIED_AUTHENTICATION_FACTOR_STOLEN
+		return BACnetAccessEvent_DENIED_AUTHENTICATION_FACTOR_STOLEN, true
 	case "DENIED_AUTHENTICATION_FACTOR_DAMAGED":
-		enum = BACnetAccessEvent_DENIED_AUTHENTICATION_FACTOR_DAMAGED
+		return BACnetAccessEvent_DENIED_AUTHENTICATION_FACTOR_DAMAGED, true
 	case "DENIED_AUTHENTICATION_FACTOR_DESTROYED":
-		enum = BACnetAccessEvent_DENIED_AUTHENTICATION_FACTOR_DESTROYED
+		return BACnetAccessEvent_DENIED_AUTHENTICATION_FACTOR_DESTROYED, true
 	case "DENIED_AUTHENTICATION_FACTOR_DISABLED":
-		enum = BACnetAccessEvent_DENIED_AUTHENTICATION_FACTOR_DISABLED
+		return BACnetAccessEvent_DENIED_AUTHENTICATION_FACTOR_DISABLED, true
 	case "DENIED_AUTHENTICATION_FACTOR_ERROR":
-		enum = BACnetAccessEvent_DENIED_AUTHENTICATION_FACTOR_ERROR
+		return BACnetAccessEvent_DENIED_AUTHENTICATION_FACTOR_ERROR, true
 	case "DENIED_CREDENTIAL_UNASSIGNED":
-		enum = BACnetAccessEvent_DENIED_CREDENTIAL_UNASSIGNED
+		return BACnetAccessEvent_DENIED_CREDENTIAL_UNASSIGNED, true
 	case "VERIFICATION_REQUIRED":
-		enum = BACnetAccessEvent_VERIFICATION_REQUIRED
+		return BACnetAccessEvent_VERIFICATION_REQUIRED, true
 	case "DENIED_CREDENTIAL_NOT_PROVISIONED":
-		enum = BACnetAccessEvent_DENIED_CREDENTIAL_NOT_PROVISIONED
+		return BACnetAccessEvent_DENIED_CREDENTIAL_NOT_PROVISIONED, true
 	case "DENIED_CREDENTIAL_NOT_YET_ACTIVE":
-		enum = BACnetAccessEvent_DENIED_CREDENTIAL_NOT_YET_ACTIVE
+		return BACnetAccessEvent_DENIED_CREDENTIAL_NOT_YET_ACTIVE, true
 	case "DENIED_CREDENTIAL_EXPIRED":
-		enum = BACnetAccessEvent_DENIED_CREDENTIAL_EXPIRED
+		return BACnetAccessEvent_DENIED_CREDENTIAL_EXPIRED, true
 	case "DENIED_CREDENTIAL_MANUAL_DISABLE":
-		enum = BACnetAccessEvent_DENIED_CREDENTIAL_MANUAL_DISABLE
+		return BACnetAccessEvent_DENIED_CREDENTIAL_MANUAL_DISABLE, true
 	case "DENIED_CREDENTIAL_LOCKOUT":
-		enum = BACnetAccessEvent_DENIED_CREDENTIAL_LOCKOUT
+		return BACnetAccessEvent_DENIED_CREDENTIAL_LOCKOUT, true
 	case "DENIED_CREDENTIAL_MAX_DAYS":
-		enum = BACnetAccessEvent_DENIED_CREDENTIAL_MAX_DAYS
+		return BACnetAccessEvent_DENIED_CREDENTIAL_MAX_DAYS, true
 	case "DENIED_CREDENTIAL_MAX_USES":
-		enum = BACnetAccessEvent_DENIED_CREDENTIAL_MAX_USES
+		return BACnetAccessEvent_DENIED_CREDENTIAL_MAX_USES, true
 	case "DENIED_CREDENTIAL_INACTIVITY":
-		enum = BACnetAccessEvent_DENIED_CREDENTIAL_INACTIVITY
+		return BACnetAccessEvent_DENIED_CREDENTIAL_INACTIVITY, true
 	case "DENIED_CREDENTIAL_DISABLED":
-		enum = BACnetAccessEvent_DENIED_CREDENTIAL_DISABLED
+		return BACnetAccessEvent_DENIED_CREDENTIAL_DISABLED, true
 	case "DENIED_NO_ACCOMPANIMENT":
-		enum = BACnetAccessEvent_DENIED_NO_ACCOMPANIMENT
+		return BACnetAccessEvent_DENIED_NO_ACCOMPANIMENT, true
 	case "NO_ENTRY_AFTER_GRANTED":
-		enum = BACnetAccessEvent_NO_ENTRY_AFTER_GRANTED
+		return BACnetAccessEvent_NO_ENTRY_AFTER_GRANTED, true
 	case "DENIED_INCORRECT_ACCOMPANIMENT":
-		enum = BACnetAccessEvent_DENIED_INCORRECT_ACCOMPANIMENT
+		return BACnetAccessEvent_DENIED_INCORRECT_ACCOMPANIMENT, true
 	case "DENIED_LOCKOUT":
-		enum = BACnetAccessEvent_DENIED_LOCKOUT
+		return BACnetAccessEvent_DENIED_LOCKOUT, true
 	case "DENIED_VERIFICATION_FAILED":
-		enum = BACnetAccessEvent_DENIED_VERIFICATION_FAILED
+		return BACnetAccessEvent_DENIED_VERIFICATION_FAILED, true
 	case "DENIED_VERIFICATION_TIMEOUT":
-		enum = BACnetAccessEvent_DENIED_VERIFICATION_TIMEOUT
+		return BACnetAccessEvent_DENIED_VERIFICATION_TIMEOUT, true
 	case "DENIED_OTHER":
-		enum = BACnetAccessEvent_DENIED_OTHER
+		return BACnetAccessEvent_DENIED_OTHER, true
 	case "MUSTER":
-		enum = BACnetAccessEvent_MUSTER
+		return BACnetAccessEvent_MUSTER, true
 	case "PASSBACK_DETECTED":
-		enum = BACnetAccessEvent_PASSBACK_DETECTED
+		return BACnetAccessEvent_PASSBACK_DETECTED, true
 	case "DURESS":
-		enum = BACnetAccessEvent_DURESS
+		return BACnetAccessEvent_DURESS, true
 	case "TRACE":
-		enum = BACnetAccessEvent_TRACE
+		return BACnetAccessEvent_TRACE, true
 	case "LOCKOUT_MAX_ATTEMPTS":
-		enum = BACnetAccessEvent_LOCKOUT_MAX_ATTEMPTS
+		return BACnetAccessEvent_LOCKOUT_MAX_ATTEMPTS, true
 	case "LOCKOUT_OTHER":
-		enum = BACnetAccessEvent_LOCKOUT_OTHER
+		return BACnetAccessEvent_LOCKOUT_OTHER, true
 	case "LOCKOUT_RELINQUISHED":
-		enum = BACnetAccessEvent_LOCKOUT_RELINQUISHED
+		return BACnetAccessEvent_LOCKOUT_RELINQUISHED, true
 	case "LOCKED_BY_HIGHER_PRIORITY":
-		enum = BACnetAccessEvent_LOCKED_BY_HIGHER_PRIORITY
-	default:
-		enum = 0
-		ok = false
+		return BACnetAccessEvent_LOCKED_BY_HIGHER_PRIORITY, true
 	}
-	return
+	return 0, false
 }
 
 func BACnetAccessEventKnows(value uint16) bool {
@@ -422,7 +418,11 @@ func BACnetAccessEventParse(readBuffer utils.ReadBuffer) (BACnetAccessEvent, err
 	if err != nil {
 		return 0, errors.Wrap(err, "error reading BACnetAccessEvent")
 	}
-	return BACnetAccessEventByValue(val), nil
+	if enum, ok := BACnetAccessEventByValue(val); !ok {
+		return 0, errors.Errorf("no value %v found for BACnetAccessEvent", val)
+	} else {
+		return enum, nil
+	}
 }
 
 func (e BACnetAccessEvent) Serialize(writeBuffer utils.WriteBuffer) error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessPassbackMode.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessPassbackMode.go
index 2214cae31..1a18128bf 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessPassbackMode.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessPassbackMode.go
@@ -50,32 +50,28 @@ func init() {
 	}
 }
 
-func BACnetAccessPassbackModeByValue(value uint8) BACnetAccessPassbackMode {
+func BACnetAccessPassbackModeByValue(value uint8) (enum BACnetAccessPassbackMode, ok bool) {
 	switch value {
 	case 0:
-		return BACnetAccessPassbackMode_PASSBACK_OFF
+		return BACnetAccessPassbackMode_PASSBACK_OFF, true
 	case 1:
-		return BACnetAccessPassbackMode_HARD_PASSBACK
+		return BACnetAccessPassbackMode_HARD_PASSBACK, true
 	case 2:
-		return BACnetAccessPassbackMode_SOFT_PASSBACK
+		return BACnetAccessPassbackMode_SOFT_PASSBACK, true
 	}
-	return 0
+	return 0, false
 }
 
 func BACnetAccessPassbackModeByName(value string) (enum BACnetAccessPassbackMode, ok bool) {
-	ok = true
 	switch value {
 	case "PASSBACK_OFF":
-		enum = BACnetAccessPassbackMode_PASSBACK_OFF
+		return BACnetAccessPassbackMode_PASSBACK_OFF, true
 	case "HARD_PASSBACK":
-		enum = BACnetAccessPassbackMode_HARD_PASSBACK
+		return BACnetAccessPassbackMode_HARD_PASSBACK, true
 	case "SOFT_PASSBACK":
-		enum = BACnetAccessPassbackMode_SOFT_PASSBACK
-	default:
-		enum = 0
-		ok = false
+		return BACnetAccessPassbackMode_SOFT_PASSBACK, true
 	}
-	return
+	return 0, false
 }
 
 func BACnetAccessPassbackModeKnows(value uint8) bool {
@@ -110,7 +106,11 @@ func BACnetAccessPassbackModeParse(readBuffer utils.ReadBuffer) (BACnetAccessPas
 	if err != nil {
 		return 0, errors.Wrap(err, "error reading BACnetAccessPassbackMode")
 	}
-	return BACnetAccessPassbackModeByValue(val), nil
+	if enum, ok := BACnetAccessPassbackModeByValue(val); !ok {
+		return 0, errors.Errorf("no value %v found for BACnetAccessPassbackMode", val)
+	} else {
+		return enum, nil
+	}
 }
 
 func (e BACnetAccessPassbackMode) Serialize(writeBuffer utils.WriteBuffer) error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessRuleLocationSpecifier.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessRuleLocationSpecifier.go
index 0068ba797..e45a3142a 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessRuleLocationSpecifier.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessRuleLocationSpecifier.go
@@ -48,28 +48,24 @@ func init() {
 	}
 }
 
-func BACnetAccessRuleLocationSpecifierByValue(value uint8) BACnetAccessRuleLocationSpecifier {
+func BACnetAccessRuleLocationSpecifierByValue(value uint8) (enum BACnetAccessRuleLocationSpecifier, ok bool) {
 	switch value {
 	case 0:
-		return BACnetAccessRuleLocationSpecifier_SPECIFIED
+		return BACnetAccessRuleLocationSpecifier_SPECIFIED, true
 	case 1:
-		return BACnetAccessRuleLocationSpecifier_ALL
+		return BACnetAccessRuleLocationSpecifier_ALL, true
 	}
-	return 0
+	return 0, false
 }
 
 func BACnetAccessRuleLocationSpecifierByName(value string) (enum BACnetAccessRuleLocationSpecifier, ok bool) {
-	ok = true
 	switch value {
 	case "SPECIFIED":
-		enum = BACnetAccessRuleLocationSpecifier_SPECIFIED
+		return BACnetAccessRuleLocationSpecifier_SPECIFIED, true
 	case "ALL":
-		enum = BACnetAccessRuleLocationSpecifier_ALL
-	default:
-		enum = 0
-		ok = false
+		return BACnetAccessRuleLocationSpecifier_ALL, true
 	}
-	return
+	return 0, false
 }
 
 func BACnetAccessRuleLocationSpecifierKnows(value uint8) bool {
@@ -104,7 +100,11 @@ func BACnetAccessRuleLocationSpecifierParse(readBuffer utils.ReadBuffer) (BACnet
 	if err != nil {
 		return 0, errors.Wrap(err, "error reading BACnetAccessRuleLocationSpecifier")
 	}
-	return BACnetAccessRuleLocationSpecifierByValue(val), nil
+	if enum, ok := BACnetAccessRuleLocationSpecifierByValue(val); !ok {
+		return 0, errors.Errorf("no value %v found for BACnetAccessRuleLocationSpecifier", val)
+	} else {
+		return enum, nil
+	}
 }
 
 func (e BACnetAccessRuleLocationSpecifier) Serialize(writeBuffer utils.WriteBuffer) error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessRuleTimeRangeSpecifier.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessRuleTimeRangeSpecifier.go
index ac500b7a1..9aff38e83 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessRuleTimeRangeSpecifier.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessRuleTimeRangeSpecifier.go
@@ -48,28 +48,24 @@ func init() {
 	}
 }
 
-func BACnetAccessRuleTimeRangeSpecifierByValue(value uint8) BACnetAccessRuleTimeRangeSpecifier {
+func BACnetAccessRuleTimeRangeSpecifierByValue(value uint8) (enum BACnetAccessRuleTimeRangeSpecifier, ok bool) {
 	switch value {
 	case 0:
-		return BACnetAccessRuleTimeRangeSpecifier_SPECIFIED
+		return BACnetAccessRuleTimeRangeSpecifier_SPECIFIED, true
 	case 1:
-		return BACnetAccessRuleTimeRangeSpecifier_ALWAYS
+		return BACnetAccessRuleTimeRangeSpecifier_ALWAYS, true
 	}
-	return 0
+	return 0, false
 }
 
 func BACnetAccessRuleTimeRangeSpecifierByName(value string) (enum BACnetAccessRuleTimeRangeSpecifier, ok bool) {
-	ok = true
 	switch value {
 	case "SPECIFIED":
-		enum = BACnetAccessRuleTimeRangeSpecifier_SPECIFIED
+		return BACnetAccessRuleTimeRangeSpecifier_SPECIFIED, true
 	case "ALWAYS":
-		enum = BACnetAccessRuleTimeRangeSpecifier_ALWAYS
-	default:
-		enum = 0
-		ok = false
+		return BACnetAccessRuleTimeRangeSpecifier_ALWAYS, true
 	}
-	return
+	return 0, false
 }
 
 func BACnetAccessRuleTimeRangeSpecifierKnows(value uint8) bool {
@@ -104,7 +100,11 @@ func BACnetAccessRuleTimeRangeSpecifierParse(readBuffer utils.ReadBuffer) (BACne
 	if err != nil {
 		return 0, errors.Wrap(err, "error reading BACnetAccessRuleTimeRangeSpecifier")
 	}
-	return BACnetAccessRuleTimeRangeSpecifierByValue(val), nil
+	if enum, ok := BACnetAccessRuleTimeRangeSpecifierByValue(val); !ok {
+		return 0, errors.Errorf("no value %v found for BACnetAccessRuleTimeRangeSpecifier", val)
+	} else {
+		return enum, nil
+	}
 }
 
 func (e BACnetAccessRuleTimeRangeSpecifier) Serialize(writeBuffer utils.WriteBuffer) error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessUserType.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessUserType.go
index 21cb32cba..eeeea010a 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessUserType.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessUserType.go
@@ -52,36 +52,32 @@ func init() {
 	}
 }
 
-func BACnetAccessUserTypeByValue(value uint16) BACnetAccessUserType {
+func BACnetAccessUserTypeByValue(value uint16) (enum BACnetAccessUserType, ok bool) {
 	switch value {
 	case 0:
-		return BACnetAccessUserType_ASSET
+		return BACnetAccessUserType_ASSET, true
 	case 0xFFFF:
-		return BACnetAccessUserType_VENDOR_PROPRIETARY_VALUE
+		return BACnetAccessUserType_VENDOR_PROPRIETARY_VALUE, true
 	case 1:
-		return BACnetAccessUserType_GROUP
+		return BACnetAccessUserType_GROUP, true
 	case 2:
-		return BACnetAccessUserType_PERSON
+		return BACnetAccessUserType_PERSON, true
 	}
-	return 0
+	return 0, false
 }
 
 func BACnetAccessUserTypeByName(value string) (enum BACnetAccessUserType, ok bool) {
-	ok = true
 	switch value {
 	case "ASSET":
-		enum = BACnetAccessUserType_ASSET
+		return BACnetAccessUserType_ASSET, true
 	case "VENDOR_PROPRIETARY_VALUE":
-		enum = BACnetAccessUserType_VENDOR_PROPRIETARY_VALUE
+		return BACnetAccessUserType_VENDOR_PROPRIETARY_VALUE, true
 	case "GROUP":
-		enum = BACnetAccessUserType_GROUP
+		return BACnetAccessUserType_GROUP, true
 	case "PERSON":
-		enum = BACnetAccessUserType_PERSON
-	default:
-		enum = 0
-		ok = false
+		return BACnetAccessUserType_PERSON, true
 	}
-	return
+	return 0, false
 }
 
 func BACnetAccessUserTypeKnows(value uint16) bool {
@@ -116,7 +112,11 @@ func BACnetAccessUserTypeParse(readBuffer utils.ReadBuffer) (BACnetAccessUserTyp
 	if err != nil {
 		return 0, errors.Wrap(err, "error reading BACnetAccessUserType")
 	}
-	return BACnetAccessUserTypeByValue(val), nil
+	if enum, ok := BACnetAccessUserTypeByValue(val); !ok {
+		return 0, errors.Errorf("no value %v found for BACnetAccessUserType", val)
+	} else {
+		return enum, nil
+	}
 }
 
 func (e BACnetAccessUserType) Serialize(writeBuffer utils.WriteBuffer) error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessZoneOccupancyState.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessZoneOccupancyState.go
index 2d9bf0810..051305757 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessZoneOccupancyState.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessZoneOccupancyState.go
@@ -60,52 +60,48 @@ func init() {
 	}
 }
 
-func BACnetAccessZoneOccupancyStateByValue(value uint16) BACnetAccessZoneOccupancyState {
+func BACnetAccessZoneOccupancyStateByValue(value uint16) (enum BACnetAccessZoneOccupancyState, ok bool) {
 	switch value {
 	case 0:
-		return BACnetAccessZoneOccupancyState_NORMAL
+		return BACnetAccessZoneOccupancyState_NORMAL, true
 	case 0xFFFF:
-		return BACnetAccessZoneOccupancyState_VENDOR_PROPRIETARY_VALUE
+		return BACnetAccessZoneOccupancyState_VENDOR_PROPRIETARY_VALUE, true
 	case 1:
-		return BACnetAccessZoneOccupancyState_BELOW_LOWER_LIMIT
+		return BACnetAccessZoneOccupancyState_BELOW_LOWER_LIMIT, true
 	case 2:
-		return BACnetAccessZoneOccupancyState_AT_LOWER_LIMIT
+		return BACnetAccessZoneOccupancyState_AT_LOWER_LIMIT, true
 	case 3:
-		return BACnetAccessZoneOccupancyState_AT_UPPER_LIMIT
+		return BACnetAccessZoneOccupancyState_AT_UPPER_LIMIT, true
 	case 4:
-		return BACnetAccessZoneOccupancyState_ABOVE_UPPER_LIMIT
+		return BACnetAccessZoneOccupancyState_ABOVE_UPPER_LIMIT, true
 	case 5:
-		return BACnetAccessZoneOccupancyState_DISABLED
+		return BACnetAccessZoneOccupancyState_DISABLED, true
 	case 6:
-		return BACnetAccessZoneOccupancyState_NOT_SUPPORTED
+		return BACnetAccessZoneOccupancyState_NOT_SUPPORTED, true
 	}
-	return 0
+	return 0, false
 }
 
 func BACnetAccessZoneOccupancyStateByName(value string) (enum BACnetAccessZoneOccupancyState, ok bool) {
-	ok = true
 	switch value {
 	case "NORMAL":
-		enum = BACnetAccessZoneOccupancyState_NORMAL
+		return BACnetAccessZoneOccupancyState_NORMAL, true
 	case "VENDOR_PROPRIETARY_VALUE":
-		enum = BACnetAccessZoneOccupancyState_VENDOR_PROPRIETARY_VALUE
+		return BACnetAccessZoneOccupancyState_VENDOR_PROPRIETARY_VALUE, true
 	case "BELOW_LOWER_LIMIT":
-		enum = BACnetAccessZoneOccupancyState_BELOW_LOWER_LIMIT
+		return BACnetAccessZoneOccupancyState_BELOW_LOWER_LIMIT, true
 	case "AT_LOWER_LIMIT":
-		enum = BACnetAccessZoneOccupancyState_AT_LOWER_LIMIT
+		return BACnetAccessZoneOccupancyState_AT_LOWER_LIMIT, true
 	case "AT_UPPER_LIMIT":
-		enum = BACnetAccessZoneOccupancyState_AT_UPPER_LIMIT
+		return BACnetAccessZoneOccupancyState_AT_UPPER_LIMIT, true
 	case "ABOVE_UPPER_LIMIT":
-		enum = BACnetAccessZoneOccupancyState_ABOVE_UPPER_LIMIT
+		return BACnetAccessZoneOccupancyState_ABOVE_UPPER_LIMIT, true
 	case "DISABLED":
-		enum = BACnetAccessZoneOccupancyState_DISABLED
+		return BACnetAccessZoneOccupancyState_DISABLED, true
 	case "NOT_SUPPORTED":
-		enum = BACnetAccessZoneOccupancyState_NOT_SUPPORTED
-	default:
-		enum = 0
-		ok = false
+		return BACnetAccessZoneOccupancyState_NOT_SUPPORTED, true
 	}
-	return
+	return 0, false
 }
 
 func BACnetAccessZoneOccupancyStateKnows(value uint16) bool {
@@ -140,7 +136,11 @@ func BACnetAccessZoneOccupancyStateParse(readBuffer utils.ReadBuffer) (BACnetAcc
 	if err != nil {
 		return 0, errors.Wrap(err, "error reading BACnetAccessZoneOccupancyState")
 	}
-	return BACnetAccessZoneOccupancyStateByValue(val), nil
+	if enum, ok := BACnetAccessZoneOccupancyStateByValue(val); !ok {
+		return 0, errors.Errorf("no value %v found for BACnetAccessZoneOccupancyState", val)
+	} else {
+		return enum, nil
+	}
 }
 
 func (e BACnetAccessZoneOccupancyState) Serialize(writeBuffer utils.WriteBuffer) error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetAccumulatorRecordAccumulatorStatus.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetAccumulatorRecordAccumulatorStatus.go
index 598b04754..89355345c 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetAccumulatorRecordAccumulatorStatus.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetAccumulatorRecordAccumulatorStatus.go
@@ -54,40 +54,36 @@ func init() {
 	}
 }
 
-func BACnetAccumulatorRecordAccumulatorStatusByValue(value uint8) BACnetAccumulatorRecordAccumulatorStatus {
+func BACnetAccumulatorRecordAccumulatorStatusByValue(value uint8) (enum BACnetAccumulatorRecordAccumulatorStatus, ok bool) {
 	switch value {
 	case 0:
-		return BACnetAccumulatorRecordAccumulatorStatus_NORMAL
+		return BACnetAccumulatorRecordAccumulatorStatus_NORMAL, true
 	case 1:
-		return BACnetAccumulatorRecordAccumulatorStatus_STARTING
+		return BACnetAccumulatorRecordAccumulatorStatus_STARTING, true
 	case 2:
-		return BACnetAccumulatorRecordAccumulatorStatus_RECOVERED
+		return BACnetAccumulatorRecordAccumulatorStatus_RECOVERED, true
 	case 3:
-		return BACnetAccumulatorRecordAccumulatorStatus_ABNORMAL
+		return BACnetAccumulatorRecordAccumulatorStatus_ABNORMAL, true
 	case 4:
-		return BACnetAccumulatorRecordAccumulatorStatus_FAILED
+		return BACnetAccumulatorRecordAccumulatorStatus_FAILED, true
 	}
-	return 0
+	return 0, false
 }
 
 func BACnetAccumulatorRecordAccumulatorStatusByName(value string) (enum BACnetAccumulatorRecordAccumulatorStatus, ok bool) {
-	ok = true
 	switch value {
 	case "NORMAL":
-		enum = BACnetAccumulatorRecordAccumulatorStatus_NORMAL
+		return BACnetAccumulatorRecordAccumulatorStatus_NORMAL, true
 	case "STARTING":
-		enum = BACnetAccumulatorRecordAccumulatorStatus_STARTING
+		return BACnetAccumulatorRecordAccumulatorStatus_STARTING, true
 	case "RECOVERED":
-		enum = BACnetAccumulatorRecordAccumulatorStatus_RECOVERED
+		return BACnetAccumulatorRecordAccumulatorStatus_RECOVERED, true
 	case "ABNORMAL":
-		enum = BACnetAccumulatorRecordAccumulatorStatus_ABNORMAL
+		return BACnetAccumulatorRecordAccumulatorStatus_ABNORMAL, true
 	case "FAILED":
-		enum = BACnetAccumulatorRecordAccumulatorStatus_FAILED
-	default:
-		enum = 0
-		ok = false
+		return BACnetAccumulatorRecordAccumulatorStatus_FAILED, true
 	}
-	return
+	return 0, false
 }
 
 func BACnetAccumulatorRecordAccumulatorStatusKnows(value uint8) bool {
@@ -122,7 +118,11 @@ func BACnetAccumulatorRecordAccumulatorStatusParse(readBuffer utils.ReadBuffer)
 	if err != nil {
 		return 0, errors.Wrap(err, "error reading BACnetAccumulatorRecordAccumulatorStatus")
 	}
-	return BACnetAccumulatorRecordAccumulatorStatusByValue(val), nil
+	if enum, ok := BACnetAccumulatorRecordAccumulatorStatusByValue(val); !ok {
+		return 0, errors.Errorf("no value %v found for BACnetAccumulatorRecordAccumulatorStatus", val)
+	} else {
+		return enum, nil
+	}
 }
 
 func (e BACnetAccumulatorRecordAccumulatorStatus) Serialize(writeBuffer utils.WriteBuffer) error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetAction.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetAction.go
index 2db93da7b..223438da8 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetAction.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetAction.go
@@ -48,28 +48,24 @@ func init() {
 	}
 }
 
-func BACnetActionByValue(value uint8) BACnetAction {
+func BACnetActionByValue(value uint8) (enum BACnetAction, ok bool) {
 	switch value {
 	case 0:
-		return BACnetAction_DIRECT
+		return BACnetAction_DIRECT, true
 	case 1:
-		return BACnetAction_REVERSE
+		return BACnetAction_REVERSE, true
 	}
-	return 0
+	return 0, false
 }
 
 func BACnetActionByName(value string) (enum BACnetAction, ok bool) {
-	ok = true
 	switch value {
 	case "DIRECT":
-		enum = BACnetAction_DIRECT
+		return BACnetAction_DIRECT, true
 	case "REVERSE":
-		enum = BACnetAction_REVERSE
-	default:
-		enum = 0
-		ok = false
+		return BACnetAction_REVERSE, true
 	}
-	return
+	return 0, false
 }
 
 func BACnetActionKnows(value uint8) bool {
@@ -104,7 +100,11 @@ func BACnetActionParse(readBuffer utils.ReadBuffer) (BACnetAction, error) {
 	if err != nil {
 		return 0, errors.Wrap(err, "error reading BACnetAction")
 	}
-	return BACnetActionByValue(val), nil
+	if enum, ok := BACnetActionByValue(val); !ok {
+		return 0, errors.Errorf("no value %v found for BACnetAction", val)
+	} else {
+		return enum, nil
+	}
 }
 
 func (e BACnetAction) Serialize(writeBuffer utils.WriteBuffer) error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthenticationFactorType.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthenticationFactorType.go
index 6cdde508b..1f17c96d0 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthenticationFactorType.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthenticationFactorType.go
@@ -94,120 +94,116 @@ func init() {
 	}
 }
 
-func BACnetAuthenticationFactorTypeByValue(value uint8) BACnetAuthenticationFactorType {
+func BACnetAuthenticationFactorTypeByValue(value uint8) (enum BACnetAuthenticationFactorType, ok bool) {
 	switch value {
 	case 0:
-		return BACnetAuthenticationFactorType_UNDEFINED
+		return BACnetAuthenticationFactorType_UNDEFINED, true
 	case 1:
-		return BACnetAuthenticationFactorType_ERROR
+		return BACnetAuthenticationFactorType_ERROR, true
 	case 10:
-		return BACnetAuthenticationFactorType_WIEGAND37_FACILITY
+		return BACnetAuthenticationFactorType_WIEGAND37_FACILITY, true
 	case 11:
-		return BACnetAuthenticationFactorType_FACILITY16_CARD32
+		return BACnetAuthenticationFactorType_FACILITY16_CARD32, true
 	case 12:
-		return BACnetAuthenticationFactorType_FACILITY32_CARD32
+		return BACnetAuthenticationFactorType_FACILITY32_CARD32, true
 	case 13:
-		return BACnetAuthenticationFactorType_FASC_N
+		return BACnetAuthenticationFactorType_FASC_N, true
 	case 14:
-		return BACnetAuthenticationFactorType_FASC_N_BCD
+		return BACnetAuthenticationFactorType_FASC_N_BCD, true
 	case 15:
-		return BACnetAuthenticationFactorType_FASC_N_LARGE
+		return BACnetAuthenticationFactorType_FASC_N_LARGE, true
 	case 16:
-		return BACnetAuthenticationFactorType_FASC_N_LARGE_BCD
+		return BACnetAuthenticationFactorType_FASC_N_LARGE_BCD, true
 	case 17:
-		return BACnetAuthenticationFactorType_GSA75
+		return BACnetAuthenticationFactorType_GSA75, true
 	case 18:
-		return BACnetAuthenticationFactorType_CHUID
+		return BACnetAuthenticationFactorType_CHUID, true
 	case 19:
-		return BACnetAuthenticationFactorType_CHUID_FULL
+		return BACnetAuthenticationFactorType_CHUID_FULL, true
 	case 2:
-		return BACnetAuthenticationFactorType_CUSTOM
+		return BACnetAuthenticationFactorType_CUSTOM, true
 	case 20:
-		return BACnetAuthenticationFactorType_GUID
+		return BACnetAuthenticationFactorType_GUID, true
 	case 21:
-		return BACnetAuthenticationFactorType_CBEFF_A
+		return BACnetAuthenticationFactorType_CBEFF_A, true
 	case 22:
-		return BACnetAuthenticationFactorType_CBEFF_B
+		return BACnetAuthenticationFactorType_CBEFF_B, true
 	case 23:
-		return BACnetAuthenticationFactorType_CBEFF_C
+		return BACnetAuthenticationFactorType_CBEFF_C, true
 	case 24:
-		return BACnetAuthenticationFactorType_USER_PASSWORD
+		return BACnetAuthenticationFactorType_USER_PASSWORD, true
 	case 3:
-		return BACnetAuthenticationFactorType_SIMPLE_NUMBER16
+		return BACnetAuthenticationFactorType_SIMPLE_NUMBER16, true
 	case 4:
-		return BACnetAuthenticationFactorType_SIMPLE_NUMBER32
+		return BACnetAuthenticationFactorType_SIMPLE_NUMBER32, true
 	case 5:
-		return BACnetAuthenticationFactorType_SIMPLE_NUMBER56
+		return BACnetAuthenticationFactorType_SIMPLE_NUMBER56, true
 	case 6:
-		return BACnetAuthenticationFactorType_SIMPLE_ALPHA_NUMERIC
+		return BACnetAuthenticationFactorType_SIMPLE_ALPHA_NUMERIC, true
 	case 7:
-		return BACnetAuthenticationFactorType_ABA_TRACK2
+		return BACnetAuthenticationFactorType_ABA_TRACK2, true
 	case 8:
-		return BACnetAuthenticationFactorType_WIEGAND26
+		return BACnetAuthenticationFactorType_WIEGAND26, true
 	case 9:
-		return BACnetAuthenticationFactorType_WIEGAND37
+		return BACnetAuthenticationFactorType_WIEGAND37, true
 	}
-	return 0
+	return 0, false
 }
 
 func BACnetAuthenticationFactorTypeByName(value string) (enum BACnetAuthenticationFactorType, ok bool) {
-	ok = true
 	switch value {
 	case "UNDEFINED":
-		enum = BACnetAuthenticationFactorType_UNDEFINED
+		return BACnetAuthenticationFactorType_UNDEFINED, true
 	case "ERROR":
-		enum = BACnetAuthenticationFactorType_ERROR
+		return BACnetAuthenticationFactorType_ERROR, true
 	case "WIEGAND37_FACILITY":
-		enum = BACnetAuthenticationFactorType_WIEGAND37_FACILITY
+		return BACnetAuthenticationFactorType_WIEGAND37_FACILITY, true
 	case "FACILITY16_CARD32":
-		enum = BACnetAuthenticationFactorType_FACILITY16_CARD32
+		return BACnetAuthenticationFactorType_FACILITY16_CARD32, true
 	case "FACILITY32_CARD32":
-		enum = BACnetAuthenticationFactorType_FACILITY32_CARD32
+		return BACnetAuthenticationFactorType_FACILITY32_CARD32, true
 	case "FASC_N":
-		enum = BACnetAuthenticationFactorType_FASC_N
+		return BACnetAuthenticationFactorType_FASC_N, true
 	case "FASC_N_BCD":
-		enum = BACnetAuthenticationFactorType_FASC_N_BCD
+		return BACnetAuthenticationFactorType_FASC_N_BCD, true
 	case "FASC_N_LARGE":
-		enum = BACnetAuthenticationFactorType_FASC_N_LARGE
+		return BACnetAuthenticationFactorType_FASC_N_LARGE, true
 	case "FASC_N_LARGE_BCD":
-		enum = BACnetAuthenticationFactorType_FASC_N_LARGE_BCD
+		return BACnetAuthenticationFactorType_FASC_N_LARGE_BCD, true
 	case "GSA75":
-		enum = BACnetAuthenticationFactorType_GSA75
+		return BACnetAuthenticationFactorType_GSA75, true
 	case "CHUID":
-		enum = BACnetAuthenticationFactorType_CHUID
+		return BACnetAuthenticationFactorType_CHUID, true
 	case "CHUID_FULL":
-		enum = BACnetAuthenticationFactorType_CHUID_FULL
+		return BACnetAuthenticationFactorType_CHUID_FULL, true
 	case "CUSTOM":
-		enum = BACnetAuthenticationFactorType_CUSTOM
+		return BACnetAuthenticationFactorType_CUSTOM, true
 	case "GUID":
-		enum = BACnetAuthenticationFactorType_GUID
+		return BACnetAuthenticationFactorType_GUID, true
 	case "CBEFF_A":
-		enum = BACnetAuthenticationFactorType_CBEFF_A
+		return BACnetAuthenticationFactorType_CBEFF_A, true
 	case "CBEFF_B":
-		enum = BACnetAuthenticationFactorType_CBEFF_B
+		return BACnetAuthenticationFactorType_CBEFF_B, true
 	case "CBEFF_C":
-		enum = BACnetAuthenticationFactorType_CBEFF_C
+		return BACnetAuthenticationFactorType_CBEFF_C, true
 	case "USER_PASSWORD":
-		enum = BACnetAuthenticationFactorType_USER_PASSWORD
+		return BACnetAuthenticationFactorType_USER_PASSWORD, true
 	case "SIMPLE_NUMBER16":
-		enum = BACnetAuthenticationFactorType_SIMPLE_NUMBER16
+		return BACnetAuthenticationFactorType_SIMPLE_NUMBER16, true
 	case "SIMPLE_NUMBER32":
-		enum = BACnetAuthenticationFactorType_SIMPLE_NUMBER32
+		return BACnetAuthenticationFactorType_SIMPLE_NUMBER32, true
 	case "SIMPLE_NUMBER56":
-		enum = BACnetAuthenticationFactorType_SIMPLE_NUMBER56
+		return BACnetAuthenticationFactorType_SIMPLE_NUMBER56, true
 	case "SIMPLE_ALPHA_NUMERIC":
-		enum = BACnetAuthenticationFactorType_SIMPLE_ALPHA_NUMERIC
+		return BACnetAuthenticationFactorType_SIMPLE_ALPHA_NUMERIC, true
 	case "ABA_TRACK2":
-		enum = BACnetAuthenticationFactorType_ABA_TRACK2
+		return BACnetAuthenticationFactorType_ABA_TRACK2, true
 	case "WIEGAND26":
-		enum = BACnetAuthenticationFactorType_WIEGAND26
+		return BACnetAuthenticationFactorType_WIEGAND26, true
 	case "WIEGAND37":
-		enum = BACnetAuthenticationFactorType_WIEGAND37
-	default:
-		enum = 0
-		ok = false
+		return BACnetAuthenticationFactorType_WIEGAND37, true
 	}
-	return
+	return 0, false
 }
 
 func BACnetAuthenticationFactorTypeKnows(value uint8) bool {
@@ -242,7 +238,11 @@ func BACnetAuthenticationFactorTypeParse(readBuffer utils.ReadBuffer) (BACnetAut
 	if err != nil {
 		return 0, errors.Wrap(err, "error reading BACnetAuthenticationFactorType")
 	}
-	return BACnetAuthenticationFactorTypeByValue(val), nil
+	if enum, ok := BACnetAuthenticationFactorTypeByValue(val); !ok {
+		return 0, errors.Errorf("no value %v found for BACnetAuthenticationFactorType", val)
+	} else {
+		return enum, nil
+	}
 }
 
 func (e BACnetAuthenticationFactorType) Serialize(writeBuffer utils.WriteBuffer) error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthenticationStatus.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthenticationStatus.go
index 32c9fb907..6e8674181 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthenticationStatus.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthenticationStatus.go
@@ -58,48 +58,44 @@ func init() {
 	}
 }
 
-func BACnetAuthenticationStatusByValue(value uint8) BACnetAuthenticationStatus {
+func BACnetAuthenticationStatusByValue(value uint8) (enum BACnetAuthenticationStatus, ok bool) {
 	switch value {
 	case 0:
-		return BACnetAuthenticationStatus_NOT_READY
+		return BACnetAuthenticationStatus_NOT_READY, true
 	case 1:
-		return BACnetAuthenticationStatus_READY
+		return BACnetAuthenticationStatus_READY, true
 	case 2:
-		return BACnetAuthenticationStatus_DISABLED
+		return BACnetAuthenticationStatus_DISABLED, true
 	case 3:
-		return BACnetAuthenticationStatus_WAITING_FOR_AUTHENTICATION_FACTOR
+		return BACnetAuthenticationStatus_WAITING_FOR_AUTHENTICATION_FACTOR, true
 	case 4:
-		return BACnetAuthenticationStatus_WAITING_FOR_ACCOMPANIMENT
+		return BACnetAuthenticationStatus_WAITING_FOR_ACCOMPANIMENT, true
 	case 5:
-		return BACnetAuthenticationStatus_WAITING_FOR_VERIFICATION
+		return BACnetAuthenticationStatus_WAITING_FOR_VERIFICATION, true
 	case 6:
-		return BACnetAuthenticationStatus_IN_PROGRESS
+		return BACnetAuthenticationStatus_IN_PROGRESS, true
 	}
-	return 0
+	return 0, false
 }
 
 func BACnetAuthenticationStatusByName(value string) (enum BACnetAuthenticationStatus, ok bool) {
-	ok = true
 	switch value {
 	case "NOT_READY":
-		enum = BACnetAuthenticationStatus_NOT_READY
+		return BACnetAuthenticationStatus_NOT_READY, true
 	case "READY":
-		enum = BACnetAuthenticationStatus_READY
+		return BACnetAuthenticationStatus_READY, true
 	case "DISABLED":
-		enum = BACnetAuthenticationStatus_DISABLED
+		return BACnetAuthenticationStatus_DISABLED, true
 	case "WAITING_FOR_AUTHENTICATION_FACTOR":
-		enum = BACnetAuthenticationStatus_WAITING_FOR_AUTHENTICATION_FACTOR
+		return BACnetAuthenticationStatus_WAITING_FOR_AUTHENTICATION_FACTOR, true
 	case "WAITING_FOR_ACCOMPANIMENT":
-		enum = BACnetAuthenticationStatus_WAITING_FOR_ACCOMPANIMENT
+		return BACnetAuthenticationStatus_WAITING_FOR_ACCOMPANIMENT, true
 	case "WAITING_FOR_VERIFICATION":
-		enum = BACnetAuthenticationStatus_WAITING_FOR_VERIFICATION
+		return BACnetAuthenticationStatus_WAITING_FOR_VERIFICATION, true
 	case "IN_PROGRESS":
-		enum = BACnetAuthenticationStatus_IN_PROGRESS
-	default:
-		enum = 0
-		ok = false
+		return BACnetAuthenticationStatus_IN_PROGRESS, true
 	}
-	return
+	return 0, false
 }
 
 func BACnetAuthenticationStatusKnows(value uint8) bool {
@@ -134,7 +130,11 @@ func BACnetAuthenticationStatusParse(readBuffer utils.ReadBuffer) (BACnetAuthent
 	if err != nil {
 		return 0, errors.Wrap(err, "error reading BACnetAuthenticationStatus")
 	}
-	return BACnetAuthenticationStatusByValue(val), nil
+	if enum, ok := BACnetAuthenticationStatusByValue(val); !ok {
+		return 0, errors.Errorf("no value %v found for BACnetAuthenticationStatus", val)
+	} else {
+		return enum, nil
+	}
 }
 
 func (e BACnetAuthenticationStatus) Serialize(writeBuffer utils.WriteBuffer) error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthorizationExemption.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthorizationExemption.go
index 05c478f27..9ba1d7527 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthorizationExemption.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthorizationExemption.go
@@ -60,52 +60,48 @@ func init() {
 	}
 }
 
-func BACnetAuthorizationExemptionByValue(value uint8) BACnetAuthorizationExemption {
+func BACnetAuthorizationExemptionByValue(value uint8) (enum BACnetAuthorizationExemption, ok bool) {
 	switch value {
 	case 0:
-		return BACnetAuthorizationExemption_PASSBACK
+		return BACnetAuthorizationExemption_PASSBACK, true
 	case 0xFF:
-		return BACnetAuthorizationExemption_VENDOR_PROPRIETARY_VALUE
+		return BACnetAuthorizationExemption_VENDOR_PROPRIETARY_VALUE, true
 	case 1:
-		return BACnetAuthorizationExemption_OCCUPANCY_CHECK
+		return BACnetAuthorizationExemption_OCCUPANCY_CHECK, true
 	case 2:
-		return BACnetAuthorizationExemption_ACCESS_RIGHTS
+		return BACnetAuthorizationExemption_ACCESS_RIGHTS, true
 	case 3:
-		return BACnetAuthorizationExemption_LOCKOUT
+		return BACnetAuthorizationExemption_LOCKOUT, true
 	case 4:
-		return BACnetAuthorizationExemption_DENY
+		return BACnetAuthorizationExemption_DENY, true
 	case 5:
-		return BACnetAuthorizationExemption_VERIFICATION
+		return BACnetAuthorizationExemption_VERIFICATION, true
 	case 6:
-		return BACnetAuthorizationExemption_AUTHORIZATION_DELAY
+		return BACnetAuthorizationExemption_AUTHORIZATION_DELAY, true
 	}
-	return 0
+	return 0, false
 }
 
 func BACnetAuthorizationExemptionByName(value string) (enum BACnetAuthorizationExemption, ok bool) {
-	ok = true
 	switch value {
 	case "PASSBACK":
-		enum = BACnetAuthorizationExemption_PASSBACK
+		return BACnetAuthorizationExemption_PASSBACK, true
 	case "VENDOR_PROPRIETARY_VALUE":
-		enum = BACnetAuthorizationExemption_VENDOR_PROPRIETARY_VALUE
+		return BACnetAuthorizationExemption_VENDOR_PROPRIETARY_VALUE, true
 	case "OCCUPANCY_CHECK":
-		enum = BACnetAuthorizationExemption_OCCUPANCY_CHECK
+		return BACnetAuthorizationExemption_OCCUPANCY_CHECK, true
 	case "ACCESS_RIGHTS":
-		enum = BACnetAuthorizationExemption_ACCESS_RIGHTS
+		return BACnetAuthorizationExemption_ACCESS_RIGHTS, true
 	case "LOCKOUT":
-		enum = BACnetAuthorizationExemption_LOCKOUT
+		return BACnetAuthorizationExemption_LOCKOUT, true
 	case "DENY":
-		enum = BACnetAuthorizationExemption_DENY
+		return BACnetAuthorizationExemption_DENY, true
 	case "VERIFICATION":
-		enum = BACnetAuthorizationExemption_VERIFICATION
+		return BACnetAuthorizationExemption_VERIFICATION, true
 	case "AUTHORIZATION_DELAY":
-		enum = BACnetAuthorizationExemption_AUTHORIZATION_DELAY
-	default:
-		enum = 0
-		ok = false
+		return BACnetAuthorizationExemption_AUTHORIZATION_DELAY, true
 	}
-	return
+	return 0, false
 }
 
 func BACnetAuthorizationExemptionKnows(value uint8) bool {
@@ -140,7 +136,11 @@ func BACnetAuthorizationExemptionParse(readBuffer utils.ReadBuffer) (BACnetAutho
 	if err != nil {
 		return 0, errors.Wrap(err, "error reading BACnetAuthorizationExemption")
 	}
-	return BACnetAuthorizationExemptionByValue(val), nil
+	if enum, ok := BACnetAuthorizationExemptionByValue(val); !ok {
+		return 0, errors.Errorf("no value %v found for BACnetAuthorizationExemption", val)
+	} else {
+		return enum, nil
+	}
 }
 
 func (e BACnetAuthorizationExemption) Serialize(writeBuffer utils.WriteBuffer) error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthorizationMode.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthorizationMode.go
index 5b3be288b..0def513d1 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthorizationMode.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthorizationMode.go
@@ -58,48 +58,44 @@ func init() {
 	}
 }
 
-func BACnetAuthorizationModeByValue(value uint16) BACnetAuthorizationMode {
+func BACnetAuthorizationModeByValue(value uint16) (enum BACnetAuthorizationMode, ok bool) {
 	switch value {
 	case 0:
-		return BACnetAuthorizationMode_AUTHORIZE
+		return BACnetAuthorizationMode_AUTHORIZE, true
 	case 0xFFFF:
-		return BACnetAuthorizationMode_VENDOR_PROPRIETARY_VALUE
+		return BACnetAuthorizationMode_VENDOR_PROPRIETARY_VALUE, true
 	case 1:
-		return BACnetAuthorizationMode_GRANT_ACTIVE
+		return BACnetAuthorizationMode_GRANT_ACTIVE, true
 	case 2:
-		return BACnetAuthorizationMode_DENY_ALL
+		return BACnetAuthorizationMode_DENY_ALL, true
 	case 3:
-		return BACnetAuthorizationMode_VERIFICATION_REQUIRED
+		return BACnetAuthorizationMode_VERIFICATION_REQUIRED, true
 	case 4:
-		return BACnetAuthorizationMode_AUTHORIZATION_DELAYED
+		return BACnetAuthorizationMode_AUTHORIZATION_DELAYED, true
 	case 5:
-		return BACnetAuthorizationMode_NONE
+		return BACnetAuthorizationMode_NONE, true
 	}
-	return 0
+	return 0, false
 }
 
 func BACnetAuthorizationModeByName(value string) (enum BACnetAuthorizationMode, ok bool) {
-	ok = true
 	switch value {
 	case "AUTHORIZE":
-		enum = BACnetAuthorizationMode_AUTHORIZE
+		return BACnetAuthorizationMode_AUTHORIZE, true
 	case "VENDOR_PROPRIETARY_VALUE":
-		enum = BACnetAuthorizationMode_VENDOR_PROPRIETARY_VALUE
+		return BACnetAuthorizationMode_VENDOR_PROPRIETARY_VALUE, true
 	case "GRANT_ACTIVE":
-		enum = BACnetAuthorizationMode_GRANT_ACTIVE
+		return BACnetAuthorizationMode_GRANT_ACTIVE, true
 	case "DENY_ALL":
-		enum = BACnetAuthorizationMode_DENY_ALL
+		return BACnetAuthorizationMode_DENY_ALL, true
 	case "VERIFICATION_REQUIRED":
-		enum = BACnetAuthorizationMode_VERIFICATION_REQUIRED
+		return BACnetAuthorizationMode_VERIFICATION_REQUIRED, true
 	case "AUTHORIZATION_DELAYED":
-		enum = BACnetAuthorizationMode_AUTHORIZATION_DELAYED
+		return BACnetAuthorizationMode_AUTHORIZATION_DELAYED, true
 	case "NONE":
-		enum = BACnetAuthorizationMode_NONE
-	default:
-		enum = 0
-		ok = false
+		return BACnetAuthorizationMode_NONE, true
 	}
-	return
+	return 0, false
 }
 
 func BACnetAuthorizationModeKnows(value uint16) bool {
@@ -134,7 +130,11 @@ func BACnetAuthorizationModeParse(readBuffer utils.ReadBuffer) (BACnetAuthorizat
 	if err != nil {
 		return 0, errors.Wrap(err, "error reading BACnetAuthorizationMode")
 	}
-	return BACnetAuthorizationModeByValue(val), nil
+	if enum, ok := BACnetAuthorizationModeByValue(val); !ok {
+		return 0, errors.Errorf("no value %v found for BACnetAuthorizationMode", val)
+	} else {
+		return enum, nil
+	}
 }
 
 func (e BACnetAuthorizationMode) Serialize(writeBuffer utils.WriteBuffer) error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetBackupState.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetBackupState.go
index 557ff930e..8f8cfea01 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetBackupState.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetBackupState.go
@@ -58,48 +58,44 @@ func init() {
 	}
 }
 
-func BACnetBackupStateByValue(value uint8) BACnetBackupState {
+func BACnetBackupStateByValue(value uint8) (enum BACnetBackupState, ok bool) {
 	switch value {
 	case 0:
-		return BACnetBackupState_IDLE
+		return BACnetBackupState_IDLE, true
 	case 1:
-		return BACnetBackupState_PREPARING_FOR_BACKUP
+		return BACnetBackupState_PREPARING_FOR_BACKUP, true
 	case 2:
-		return BACnetBackupState_PREPARING_FOR_RESTORE
+		return BACnetBackupState_PREPARING_FOR_RESTORE, true
 	case 3:
-		return BACnetBackupState_PERFORMING_A_BACKUP
+		return BACnetBackupState_PERFORMING_A_BACKUP, true
 	case 4:
-		return BACnetBackupState_PERFORMING_A_RESTORE
+		return BACnetBackupState_PERFORMING_A_RESTORE, true
 	case 5:
-		return BACnetBackupState_BACKUP_FAILURE
+		return BACnetBackupState_BACKUP_FAILURE, true
 	case 6:
-		return BACnetBackupState_RESTORE_FAILURE
+		return BACnetBackupState_RESTORE_FAILURE, true
 	}
-	return 0
+	return 0, false
 }
 
 func BACnetBackupStateByName(value string) (enum BACnetBackupState, ok bool) {
-	ok = true
 	switch value {
 	case "IDLE":
-		enum = BACnetBackupState_IDLE
+		return BACnetBackupState_IDLE, true
 	case "PREPARING_FOR_BACKUP":
-		enum = BACnetBackupState_PREPARING_FOR_BACKUP
+		return BACnetBackupState_PREPARING_FOR_BACKUP, true
 	case "PREPARING_FOR_RESTORE":
-		enum = BACnetBackupState_PREPARING_FOR_RESTORE
+		return BACnetBackupState_PREPARING_FOR_RESTORE, true
 	case "PERFORMING_A_BACKUP":
-		enum = BACnetBackupState_PERFORMING_A_BACKUP
+		return BACnetBackupState_PERFORMING_A_BACKUP, true
 	case "PERFORMING_A_RESTORE":
-		enum = BACnetBackupState_PERFORMING_A_RESTORE
+		return BACnetBackupState_PERFORMING_A_RESTORE, true
 	case "BACKUP_FAILURE":
-		enum = BACnetBackupState_BACKUP_FAILURE
+		return BACnetBackupState_BACKUP_FAILURE, true
 	case "RESTORE_FAILURE":
-		enum = BACnetBackupState_RESTORE_FAILURE
-	default:
-		enum = 0
-		ok = false
+		return BACnetBackupState_RESTORE_FAILURE, true
 	}
-	return
+	return 0, false
 }
 
 func BACnetBackupStateKnows(value uint8) bool {
@@ -134,7 +130,11 @@ func BACnetBackupStateParse(readBuffer utils.ReadBuffer) (BACnetBackupState, err
 	if err != nil {
 		return 0, errors.Wrap(err, "error reading BACnetBackupState")
 	}
-	return BACnetBackupStateByValue(val), nil
+	if enum, ok := BACnetBackupStateByValue(val); !ok {
+		return 0, errors.Errorf("no value %v found for BACnetBackupState", val)
+	} else {
+		return enum, nil
+	}
 }
 
 func (e BACnetBackupState) Serialize(writeBuffer utils.WriteBuffer) error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetBinaryLightingPV.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetBinaryLightingPV.go
index c4baee75b..0508689f7 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetBinaryLightingPV.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetBinaryLightingPV.go
@@ -58,48 +58,44 @@ func init() {
 	}
 }
 
-func BACnetBinaryLightingPVByValue(value uint8) BACnetBinaryLightingPV {
+func BACnetBinaryLightingPVByValue(value uint8) (enum BACnetBinaryLightingPV, ok bool) {
 	switch value {
 	case 0:
-		return BACnetBinaryLightingPV_OFF
+		return BACnetBinaryLightingPV_OFF, true
 	case 0xFF:
-		return BACnetBinaryLightingPV_VENDOR_PROPRIETARY_VALUE
+		return BACnetBinaryLightingPV_VENDOR_PROPRIETARY_VALUE, true
 	case 1:
-		return BACnetBinaryLightingPV_ON
+		return BACnetBinaryLightingPV_ON, true
 	case 2:
-		return BACnetBinaryLightingPV_WARN
+		return BACnetBinaryLightingPV_WARN, true
 	case 3:
-		return BACnetBinaryLightingPV_WARN_OFF
+		return BACnetBinaryLightingPV_WARN_OFF, true
 	case 4:
-		return BACnetBinaryLightingPV_WARN_RELINQUISH
+		return BACnetBinaryLightingPV_WARN_RELINQUISH, true
 	case 5:
-		return BACnetBinaryLightingPV_STOP
+		return BACnetBinaryLightingPV_STOP, true
 	}
-	return 0
+	return 0, false
 }
 
 func BACnetBinaryLightingPVByName(value string) (enum BACnetBinaryLightingPV, ok bool) {
-	ok = true
 	switch value {
 	case "OFF":
-		enum = BACnetBinaryLightingPV_OFF
+		return BACnetBinaryLightingPV_OFF, true
 	case "VENDOR_PROPRIETARY_VALUE":
-		enum = BACnetBinaryLightingPV_VENDOR_PROPRIETARY_VALUE
+		return BACnetBinaryLightingPV_VENDOR_PROPRIETARY_VALUE, true
 	case "ON":
-		enum = BACnetBinaryLightingPV_ON
+		return BACnetBinaryLightingPV_ON, true
 	case "WARN":
-		enum = BACnetBinaryLightingPV_WARN
+		return BACnetBinaryLightingPV_WARN, true
 	case "WARN_OFF":
-		enum = BACnetBinaryLightingPV_WARN_OFF
+		return BACnetBinaryLightingPV_WARN_OFF, true
 	case "WARN_RELINQUISH":
-		enum = BACnetBinaryLightingPV_WARN_RELINQUISH
+		return BACnetBinaryLightingPV_WARN_RELINQUISH, true
 	case "STOP":
-		enum = BACnetBinaryLightingPV_STOP
-	default:
-		enum = 0
-		ok = false
+		return BACnetBinaryLightingPV_STOP, true
 	}
-	return
+	return 0, false
 }
 
 func BACnetBinaryLightingPVKnows(value uint8) bool {
@@ -134,7 +130,11 @@ func BACnetBinaryLightingPVParse(readBuffer utils.ReadBuffer) (BACnetBinaryLight
 	if err != nil {
 		return 0, errors.Wrap(err, "error reading BACnetBinaryLightingPV")
 	}
-	return BACnetBinaryLightingPVByValue(val), nil
+	if enum, ok := BACnetBinaryLightingPVByValue(val); !ok {
+		return 0, errors.Errorf("no value %v found for BACnetBinaryLightingPV", val)
+	} else {
+		return enum, nil
+	}
 }
 
 func (e BACnetBinaryLightingPV) Serialize(writeBuffer utils.WriteBuffer) error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetBinaryPV.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetBinaryPV.go
index 932520367..07aab65f9 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetBinaryPV.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetBinaryPV.go
@@ -48,28 +48,24 @@ func init() {
 	}
 }
 
-func BACnetBinaryPVByValue(value uint8) BACnetBinaryPV {
+func BACnetBinaryPVByValue(value uint8) (enum BACnetBinaryPV, ok bool) {
 	switch value {
 	case 0:
-		return BACnetBinaryPV_INACTIVE
+		return BACnetBinaryPV_INACTIVE, true
 	case 1:
-		return BACnetBinaryPV_ACTIVE
+		return BACnetBinaryPV_ACTIVE, true
 	}
-	return 0
+	return 0, false
 }
 
 func BACnetBinaryPVByName(value string) (enum BACnetBinaryPV, ok bool) {
-	ok = true
 	switch value {
 	case "INACTIVE":
-		enum = BACnetBinaryPV_INACTIVE
+		return BACnetBinaryPV_INACTIVE, true
 	case "ACTIVE":
-		enum = BACnetBinaryPV_ACTIVE
-	default:
-		enum = 0
-		ok = false
+		return BACnetBinaryPV_ACTIVE, true
 	}
-	return
+	return 0, false
 }
 
 func BACnetBinaryPVKnows(value uint8) bool {
@@ -104,7 +100,11 @@ func BACnetBinaryPVParse(readBuffer utils.ReadBuffer) (BACnetBinaryPV, error) {
 	if err != nil {
 		return 0, errors.Wrap(err, "error reading BACnetBinaryPV")
 	}
-	return BACnetBinaryPVByValue(val), nil
+	if enum, ok := BACnetBinaryPVByValue(val); !ok {
+		return 0, errors.Errorf("no value %v found for BACnetBinaryPV", val)
+	} else {
+		return enum, nil
+	}
 }
 
 func (e BACnetBinaryPV) Serialize(writeBuffer utils.WriteBuffer) error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetCharacterEncoding.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetCharacterEncoding.go
index cc882d12a..7c8d01ff8 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetCharacterEncoding.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetCharacterEncoding.go
@@ -56,44 +56,40 @@ func init() {
 	}
 }
 
-func BACnetCharacterEncodingByValue(value byte) BACnetCharacterEncoding {
+func BACnetCharacterEncodingByValue(value byte) (enum BACnetCharacterEncoding, ok bool) {
 	switch value {
 	case 0x0:
-		return BACnetCharacterEncoding_ISO_10646
+		return BACnetCharacterEncoding_ISO_10646, true
 	case 0x1:
-		return BACnetCharacterEncoding_IBM_Microsoft_DBCS
+		return BACnetCharacterEncoding_IBM_Microsoft_DBCS, true
 	case 0x2:
-		return BACnetCharacterEncoding_JIS_X_0208
+		return BACnetCharacterEncoding_JIS_X_0208, true
 	case 0x3:
-		return BACnetCharacterEncoding_ISO_10646_4
+		return BACnetCharacterEncoding_ISO_10646_4, true
 	case 0x4:
-		return BACnetCharacterEncoding_ISO_10646_2
+		return BACnetCharacterEncoding_ISO_10646_2, true
 	case 0x5:
-		return BACnetCharacterEncoding_ISO_8859_1
+		return BACnetCharacterEncoding_ISO_8859_1, true
 	}
-	return 0
+	return 0, false
 }
 
 func BACnetCharacterEncodingByName(value string) (enum BACnetCharacterEncoding, ok bool) {
-	ok = true
 	switch value {
 	case "ISO_10646":
-		enum = BACnetCharacterEncoding_ISO_10646
+		return BACnetCharacterEncoding_ISO_10646, true
 	case "IBM_Microsoft_DBCS":
-		enum = BACnetCharacterEncoding_IBM_Microsoft_DBCS
+		return BACnetCharacterEncoding_IBM_Microsoft_DBCS, true
 	case "JIS_X_0208":
-		enum = BACnetCharacterEncoding_JIS_X_0208
+		return BACnetCharacterEncoding_JIS_X_0208, true
 	case "ISO_10646_4":
-		enum = BACnetCharacterEncoding_ISO_10646_4
+		return BACnetCharacterEncoding_ISO_10646_4, true
 	case "ISO_10646_2":
-		enum = BACnetCharacterEncoding_ISO_10646_2
+		return BACnetCharacterEncoding_ISO_10646_2, true
 	case "ISO_8859_1":
-		enum = BACnetCharacterEncoding_ISO_8859_1
-	default:
-		enum = 0
-		ok = false
+		return BACnetCharacterEncoding_ISO_8859_1, true
 	}
-	return
+	return 0, false
 }
 
 func BACnetCharacterEncodingKnows(value byte) bool {
@@ -128,7 +124,11 @@ func BACnetCharacterEncodingParse(readBuffer utils.ReadBuffer) (BACnetCharacterE
 	if err != nil {
 		return 0, errors.Wrap(err, "error reading BACnetCharacterEncoding")
 	}
-	return BACnetCharacterEncodingByValue(val), nil
+	if enum, ok := BACnetCharacterEncodingByValue(val); !ok {
+		return 0, errors.Errorf("no value %v found for BACnetCharacterEncoding", val)
+	} else {
+		return enum, nil
+	}
 }
 
 func (e BACnetCharacterEncoding) Serialize(writeBuffer utils.WriteBuffer) error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceChoice.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceChoice.go
index bc62f372e..4eb97a9b9 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceChoice.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceChoice.go
@@ -108,148 +108,144 @@ func init() {
 	}
 }
 
-func BACnetConfirmedServiceChoiceByValue(value uint8) BACnetConfirmedServiceChoice {
+func BACnetConfirmedServiceChoiceByValue(value uint8) (enum BACnetConfirmedServiceChoice, ok bool) {
 	switch value {
 	case 0x00:
-		return BACnetConfirmedServiceChoice_ACKNOWLEDGE_ALARM
+		return BACnetConfirmedServiceChoice_ACKNOWLEDGE_ALARM, true
 	case 0x01:
-		return BACnetConfirmedServiceChoice_CONFIRMED_COV_NOTIFICATION
+		return BACnetConfirmedServiceChoice_CONFIRMED_COV_NOTIFICATION, true
 	case 0x02:
-		return BACnetConfirmedServiceChoice_CONFIRMED_EVENT_NOTIFICATION
+		return BACnetConfirmedServiceChoice_CONFIRMED_EVENT_NOTIFICATION, true
 	case 0x03:
-		return BACnetConfirmedServiceChoice_GET_ALARM_SUMMARY
+		return BACnetConfirmedServiceChoice_GET_ALARM_SUMMARY, true
 	case 0x04:
-		return BACnetConfirmedServiceChoice_GET_ENROLLMENT_SUMMARY
+		return BACnetConfirmedServiceChoice_GET_ENROLLMENT_SUMMARY, true
 	case 0x05:
-		return BACnetConfirmedServiceChoice_SUBSCRIBE_COV
+		return BACnetConfirmedServiceChoice_SUBSCRIBE_COV, true
 	case 0x06:
-		return BACnetConfirmedServiceChoice_ATOMIC_READ_FILE
+		return BACnetConfirmedServiceChoice_ATOMIC_READ_FILE, true
 	case 0x07:
-		return BACnetConfirmedServiceChoice_ATOMIC_WRITE_FILE
+		return BACnetConfirmedServiceChoice_ATOMIC_WRITE_FILE, true
 	case 0x08:
-		return BACnetConfirmedServiceChoice_ADD_LIST_ELEMENT
+		return BACnetConfirmedServiceChoice_ADD_LIST_ELEMENT, true
 	case 0x09:
-		return BACnetConfirmedServiceChoice_REMOVE_LIST_ELEMENT
+		return BACnetConfirmedServiceChoice_REMOVE_LIST_ELEMENT, true
 	case 0x0A:
-		return BACnetConfirmedServiceChoice_CREATE_OBJECT
+		return BACnetConfirmedServiceChoice_CREATE_OBJECT, true
 	case 0x0B:
-		return BACnetConfirmedServiceChoice_DELETE_OBJECT
+		return BACnetConfirmedServiceChoice_DELETE_OBJECT, true
 	case 0x0C:
-		return BACnetConfirmedServiceChoice_READ_PROPERTY
+		return BACnetConfirmedServiceChoice_READ_PROPERTY, true
 	case 0x0D:
-		return BACnetConfirmedServiceChoice_READ_PROPERTY_CONDITIONAL
+		return BACnetConfirmedServiceChoice_READ_PROPERTY_CONDITIONAL, true
 	case 0x0E:
-		return BACnetConfirmedServiceChoice_READ_PROPERTY_MULTIPLE
+		return BACnetConfirmedServiceChoice_READ_PROPERTY_MULTIPLE, true
 	case 0x0F:
-		return BACnetConfirmedServiceChoice_WRITE_PROPERTY
+		return BACnetConfirmedServiceChoice_WRITE_PROPERTY, true
 	case 0x10:
-		return BACnetConfirmedServiceChoice_WRITE_PROPERTY_MULTIPLE
+		return BACnetConfirmedServiceChoice_WRITE_PROPERTY_MULTIPLE, true
 	case 0x11:
-		return BACnetConfirmedServiceChoice_DEVICE_COMMUNICATION_CONTROL
+		return BACnetConfirmedServiceChoice_DEVICE_COMMUNICATION_CONTROL, true
 	case 0x12:
-		return BACnetConfirmedServiceChoice_CONFIRMED_PRIVATE_TRANSFER
+		return BACnetConfirmedServiceChoice_CONFIRMED_PRIVATE_TRANSFER, true
 	case 0x13:
-		return BACnetConfirmedServiceChoice_CONFIRMED_TEXT_MESSAGE
+		return BACnetConfirmedServiceChoice_CONFIRMED_TEXT_MESSAGE, true
 	case 0x14:
-		return BACnetConfirmedServiceChoice_REINITIALIZE_DEVICE
+		return BACnetConfirmedServiceChoice_REINITIALIZE_DEVICE, true
 	case 0x15:
-		return BACnetConfirmedServiceChoice_VT_OPEN
+		return BACnetConfirmedServiceChoice_VT_OPEN, true
 	case 0x16:
-		return BACnetConfirmedServiceChoice_VT_CLOSE
+		return BACnetConfirmedServiceChoice_VT_CLOSE, true
 	case 0x17:
-		return BACnetConfirmedServiceChoice_VT_DATA
+		return BACnetConfirmedServiceChoice_VT_DATA, true
 	case 0x18:
-		return BACnetConfirmedServiceChoice_AUTHENTICATE
+		return BACnetConfirmedServiceChoice_AUTHENTICATE, true
 	case 0x19:
-		return BACnetConfirmedServiceChoice_REQUEST_KEY
+		return BACnetConfirmedServiceChoice_REQUEST_KEY, true
 	case 0x1A:
-		return BACnetConfirmedServiceChoice_READ_RANGE
+		return BACnetConfirmedServiceChoice_READ_RANGE, true
 	case 0x1B:
-		return BACnetConfirmedServiceChoice_LIFE_SAFETY_OPERATION
+		return BACnetConfirmedServiceChoice_LIFE_SAFETY_OPERATION, true
 	case 0x1C:
-		return BACnetConfirmedServiceChoice_SUBSCRIBE_COV_PROPERTY
+		return BACnetConfirmedServiceChoice_SUBSCRIBE_COV_PROPERTY, true
 	case 0x1D:
-		return BACnetConfirmedServiceChoice_GET_EVENT_INFORMATION
+		return BACnetConfirmedServiceChoice_GET_EVENT_INFORMATION, true
 	case 0x1E:
-		return BACnetConfirmedServiceChoice_SUBSCRIBE_COV_PROPERTY_MULTIPLE
+		return BACnetConfirmedServiceChoice_SUBSCRIBE_COV_PROPERTY_MULTIPLE, true
 	case 0x1F:
-		return BACnetConfirmedServiceChoice_CONFIRMED_COV_NOTIFICATION_MULTIPLE
+		return BACnetConfirmedServiceChoice_CONFIRMED_COV_NOTIFICATION_MULTIPLE, true
 	}
-	return 0
+	return 0, false
 }
 
 func BACnetConfirmedServiceChoiceByName(value string) (enum BACnetConfirmedServiceChoice, ok bool) {
-	ok = true
 	switch value {
 	case "ACKNOWLEDGE_ALARM":
-		enum = BACnetConfirmedServiceChoice_ACKNOWLEDGE_ALARM
+		return BACnetConfirmedServiceChoice_ACKNOWLEDGE_ALARM, true
 	case "CONFIRMED_COV_NOTIFICATION":
-		enum = BACnetConfirmedServiceChoice_CONFIRMED_COV_NOTIFICATION
+		return BACnetConfirmedServiceChoice_CONFIRMED_COV_NOTIFICATION, true
 	case "CONFIRMED_EVENT_NOTIFICATION":
-		enum = BACnetConfirmedServiceChoice_CONFIRMED_EVENT_NOTIFICATION
+		return BACnetConfirmedServiceChoice_CONFIRMED_EVENT_NOTIFICATION, true
 	case "GET_ALARM_SUMMARY":
-		enum = BACnetConfirmedServiceChoice_GET_ALARM_SUMMARY
+		return BACnetConfirmedServiceChoice_GET_ALARM_SUMMARY, true
 	case "GET_ENROLLMENT_SUMMARY":
-		enum = BACnetConfirmedServiceChoice_GET_ENROLLMENT_SUMMARY
+		return BACnetConfirmedServiceChoice_GET_ENROLLMENT_SUMMARY, true
 	case "SUBSCRIBE_COV":
-		enum = BACnetConfirmedServiceChoice_SUBSCRIBE_COV
+		return BACnetConfirmedServiceChoice_SUBSCRIBE_COV, true
 	case "ATOMIC_READ_FILE":
-		enum = BACnetConfirmedServiceChoice_ATOMIC_READ_FILE
+		return BACnetConfirmedServiceChoice_ATOMIC_READ_FILE, true
 	case "ATOMIC_WRITE_FILE":
-		enum = BACnetConfirmedServiceChoice_ATOMIC_WRITE_FILE
+		return BACnetConfirmedServiceChoice_ATOMIC_WRITE_FILE, true
 	case "ADD_LIST_ELEMENT":
-		enum = BACnetConfirmedServiceChoice_ADD_LIST_ELEMENT
+		return BACnetConfirmedServiceChoice_ADD_LIST_ELEMENT, true
 	case "REMOVE_LIST_ELEMENT":
-		enum = BACnetConfirmedServiceChoice_REMOVE_LIST_ELEMENT
+		return BACnetConfirmedServiceChoice_REMOVE_LIST_ELEMENT, true
 	case "CREATE_OBJECT":
-		enum = BACnetConfirmedServiceChoice_CREATE_OBJECT
+		return BACnetConfirmedServiceChoice_CREATE_OBJECT, true
 	case "DELETE_OBJECT":
-		enum = BACnetConfirmedServiceChoice_DELETE_OBJECT
+		return BACnetConfirmedServiceChoice_DELETE_OBJECT, true
 	case "READ_PROPERTY":
-		enum = BACnetConfirmedServiceChoice_READ_PROPERTY
+		return BACnetConfirmedServiceChoice_READ_PROPERTY, true
 	case "READ_PROPERTY_CONDITIONAL":
-		enum = BACnetConfirmedServiceChoice_READ_PROPERTY_CONDITIONAL
+		return BACnetConfirmedServiceChoice_READ_PROPERTY_CONDITIONAL, true
 	case "READ_PROPERTY_MULTIPLE":
-		enum = BACnetConfirmedServiceChoice_READ_PROPERTY_MULTIPLE
+		return BACnetConfirmedServiceChoice_READ_PROPERTY_MULTIPLE, true
 	case "WRITE_PROPERTY":
-		enum = BACnetConfirmedServiceChoice_WRITE_PROPERTY
+		return BACnetConfirmedServiceChoice_WRITE_PROPERTY, true
 	case "WRITE_PROPERTY_MULTIPLE":
-		enum = BACnetConfirmedServiceChoice_WRITE_PROPERTY_MULTIPLE
+		return BACnetConfirmedServiceChoice_WRITE_PROPERTY_MULTIPLE, true
 	case "DEVICE_COMMUNICATION_CONTROL":
-		enum = BACnetConfirmedServiceChoice_DEVICE_COMMUNICATION_CONTROL
+		return BACnetConfirmedServiceChoice_DEVICE_COMMUNICATION_CONTROL, true
 	case "CONFIRMED_PRIVATE_TRANSFER":
-		enum = BACnetConfirmedServiceChoice_CONFIRMED_PRIVATE_TRANSFER
+		return BACnetConfirmedServiceChoice_CONFIRMED_PRIVATE_TRANSFER, true
 	case "CONFIRMED_TEXT_MESSAGE":
-		enum = BACnetConfirmedServiceChoice_CONFIRMED_TEXT_MESSAGE
+		return BACnetConfirmedServiceChoice_CONFIRMED_TEXT_MESSAGE, true
 	case "REINITIALIZE_DEVICE":
-		enum = BACnetConfirmedServiceChoice_REINITIALIZE_DEVICE
+		return BACnetConfirmedServiceChoice_REINITIALIZE_DEVICE, true
 	case "VT_OPEN":
-		enum = BACnetConfirmedServiceChoice_VT_OPEN
+		return BACnetConfirmedServiceChoice_VT_OPEN, true
 	case "VT_CLOSE":
-		enum = BACnetConfirmedServiceChoice_VT_CLOSE
+		return BACnetConfirmedServiceChoice_VT_CLOSE, true
 	case "VT_DATA":
-		enum = BACnetConfirmedServiceChoice_VT_DATA
+		return BACnetConfirmedServiceChoice_VT_DATA, true
 	case "AUTHENTICATE":
-		enum = BACnetConfirmedServiceChoice_AUTHENTICATE
+		return BACnetConfirmedServiceChoice_AUTHENTICATE, true
 	case "REQUEST_KEY":
-		enum = BACnetConfirmedServiceChoice_REQUEST_KEY
+		return BACnetConfirmedServiceChoice_REQUEST_KEY, true
 	case "READ_RANGE":
-		enum = BACnetConfirmedServiceChoice_READ_RANGE
+		return BACnetConfirmedServiceChoice_READ_RANGE, true
 	case "LIFE_SAFETY_OPERATION":
-		enum = BACnetConfirmedServiceChoice_LIFE_SAFETY_OPERATION
+		return BACnetConfirmedServiceChoice_LIFE_SAFETY_OPERATION, true
 	case "SUBSCRIBE_COV_PROPERTY":
-		enum = BACnetConfirmedServiceChoice_SUBSCRIBE_COV_PROPERTY
+		return BACnetConfirmedServiceChoice_SUBSCRIBE_COV_PROPERTY, true
 	case "GET_EVENT_INFORMATION":
-		enum = BACnetConfirmedServiceChoice_GET_EVENT_INFORMATION
+		return BACnetConfirmedServiceChoice_GET_EVENT_INFORMATION, true
 	case "SUBSCRIBE_COV_PROPERTY_MULTIPLE":
-		enum = BACnetConfirmedServiceChoice_SUBSCRIBE_COV_PROPERTY_MULTIPLE
+		return BACnetConfirmedServiceChoice_SUBSCRIBE_COV_PROPERTY_MULTIPLE, true
 	case "CONFIRMED_COV_NOTIFICATION_MULTIPLE":
-		enum = BACnetConfirmedServiceChoice_CONFIRMED_COV_NOTIFICATION_MULTIPLE
-	default:
-		enum = 0
-		ok = false
+		return BACnetConfirmedServiceChoice_CONFIRMED_COV_NOTIFICATION_MULTIPLE, true
 	}
-	return
+	return 0, false
 }
 
 func BACnetConfirmedServiceChoiceKnows(value uint8) bool {
@@ -284,7 +280,11 @@ func BACnetConfirmedServiceChoiceParse(readBuffer utils.ReadBuffer) (BACnetConfi
 	if err != nil {
 		return 0, errors.Wrap(err, "error reading BACnetConfirmedServiceChoice")
 	}
-	return BACnetConfirmedServiceChoiceByValue(val), nil
+	if enum, ok := BACnetConfirmedServiceChoiceByValue(val); !ok {
+		return 0, errors.Errorf("no value %v found for BACnetConfirmedServiceChoice", val)
+	} else {
+		return enum, nil
+	}
 }
 
 func (e BACnetConfirmedServiceChoice) Serialize(writeBuffer utils.WriteBuffer) error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedTextMessageMessagePriority.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedTextMessageMessagePriority.go
index 48c0f41d2..ee8bd8a22 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedTextMessageMessagePriority.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedTextMessageMessagePriority.go
@@ -48,28 +48,24 @@ func init() {
 	}
 }
 
-func BACnetConfirmedServiceRequestConfirmedTextMessageMessagePriorityByValue(value uint8) BACnetConfirmedServiceRequestConfirmedTextMessageMessagePriority {
+func BACnetConfirmedServiceRequestConfirmedTextMessageMessagePriorityByValue(value uint8) (enum BACnetConfirmedServiceRequestConfirmedTextMessageMessagePriority, ok bool) {
 	switch value {
 	case 0:
-		return BACnetConfirmedServiceRequestConfirmedTextMessageMessagePriority_NORMAL
+		return BACnetConfirmedServiceRequestConfirmedTextMessageMessagePriority_NORMAL, true
 	case 1:
-		return BACnetConfirmedServiceRequestConfirmedTextMessageMessagePriority_URGENT
+		return BACnetConfirmedServiceRequestConfirmedTextMessageMessagePriority_URGENT, true
 	}
-	return 0
+	return 0, false
 }
 
 func BACnetConfirmedServiceRequestConfirmedTextMessageMessagePriorityByName(value string) (enum BACnetConfirmedServiceRequestConfirmedTextMessageMessagePriority, ok bool) {
-	ok = true
 	switch value {
 	case "NORMAL":
-		enum = BACnetConfirmedServiceRequestConfirmedTextMessageMessagePriority_NORMAL
+		return BACnetConfirmedServiceRequestConfirmedTextMessageMessagePriority_NORMAL, true
 	case "URGENT":
-		enum = BACnetConfirmedServiceRequestConfirmedTextMessageMessagePriority_URGENT
-	default:
-		enum = 0
-		ok = false
+		return BACnetConfirmedServiceRequestConfirmedTextMessageMessagePriority_URGENT, true
 	}
-	return
+	return 0, false
 }
 
 func BACnetConfirmedServiceRequestConfirmedTextMessageMessagePriorityKnows(value uint8) bool {
@@ -104,7 +100,11 @@ func BACnetConfirmedServiceRequestConfirmedTextMessageMessagePriorityParse(readB
 	if err != nil {
 		return 0, errors.Wrap(err, "error reading BACnetConfirmedServiceRequestConfirmedTextMessageMessagePriority")
 	}
-	return BACnetConfirmedServiceRequestConfirmedTextMessageMessagePriorityByValue(val), nil
+	if enum, ok := BACnetConfirmedServiceRequestConfirmedTextMessageMessagePriorityByValue(val); !ok {
+		return 0, errors.Errorf("no value %v found for BACnetConfirmedServiceRequestConfirmedTextMessageMessagePriority", val)
+	} else {
+		return enum, nil
+	}
 }
 
 func (e BACnetConfirmedServiceRequestConfirmedTextMessageMessagePriority) Serialize(writeBuffer utils.WriteBuffer) error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestDeviceCommunicationControlEnableDisable.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestDeviceCommunicationControlEnableDisable.go
index 83fd32ccd..b49d32be2 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestDeviceCommunicationControlEnableDisable.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestDeviceCommunicationControlEnableDisable.go
@@ -50,32 +50,28 @@ func init() {
 	}
 }
 
-func BACnetConfirmedServiceRequestDeviceCommunicationControlEnableDisableByValue(value uint8) BACnetConfirmedServiceRequestDeviceCommunicationControlEnableDisable {
+func BACnetConfirmedServiceRequestDeviceCommunicationControlEnableDisableByValue(value uint8) (enum BACnetConfirmedServiceRequestDeviceCommunicationControlEnableDisable, ok bool) {
 	switch value {
 	case 0:
-		return BACnetConfirmedServiceRequestDeviceCommunicationControlEnableDisable_ENABLE
+		return BACnetConfirmedServiceRequestDeviceCommunicationControlEnableDisable_ENABLE, true
 	case 1:
-		return BACnetConfirmedServiceRequestDeviceCommunicationControlEnableDisable_DISABLE
+		return BACnetConfirmedServiceRequestDeviceCommunicationControlEnableDisable_DISABLE, true
 	case 2:
-		return BACnetConfirmedServiceRequestDeviceCommunicationControlEnableDisable_DISABLE_INITIATION
+		return BACnetConfirmedServiceRequestDeviceCommunicationControlEnableDisable_DISABLE_INITIATION, true
 	}
-	return 0
+	return 0, false
 }
 
 func BACnetConfirmedServiceRequestDeviceCommunicationControlEnableDisableByName(value string) (enum BACnetConfirmedServiceRequestDeviceCommunicationControlEnableDisable, ok bool) {
-	ok = true
 	switch value {
 	case "ENABLE":
-		enum = BACnetConfirmedServiceRequestDeviceCommunicationControlEnableDisable_ENABLE
+		return BACnetConfirmedServiceRequestDeviceCommunicationControlEnableDisable_ENABLE, true
 	case "DISABLE":
-		enum = BACnetConfirmedServiceRequestDeviceCommunicationControlEnableDisable_DISABLE
+		return BACnetConfirmedServiceRequestDeviceCommunicationControlEnableDisable_DISABLE, true
 	case "DISABLE_INITIATION":
-		enum = BACnetConfirmedServiceRequestDeviceCommunicationControlEnableDisable_DISABLE_INITIATION
-	default:
-		enum = 0
-		ok = false
+		return BACnetConfirmedServiceRequestDeviceCommunicationControlEnableDisable_DISABLE_INITIATION, true
 	}
-	return
+	return 0, false
 }
 
 func BACnetConfirmedServiceRequestDeviceCommunicationControlEnableDisableKnows(value uint8) bool {
@@ -110,7 +106,11 @@ func BACnetConfirmedServiceRequestDeviceCommunicationControlEnableDisableParse(r
 	if err != nil {
 		return 0, errors.Wrap(err, "error reading BACnetConfirmedServiceRequestDeviceCommunicationControlEnableDisable")
 	}
-	return BACnetConfirmedServiceRequestDeviceCommunicationControlEnableDisableByValue(val), nil
+	if enum, ok := BACnetConfirmedServiceRequestDeviceCommunicationControlEnableDisableByValue(val); !ok {
+		return 0, errors.Errorf("no value %v found for BACnetConfirmedServiceRequestDeviceCommunicationControlEnableDisable", val)
+	} else {
+		return enum, nil
+	}
 }
 
 func (e BACnetConfirmedServiceRequestDeviceCommunicationControlEnableDisable) Serialize(writeBuffer utils.WriteBuffer) error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestGetEnrollmentSummaryAcknowledgementFilter.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestGetEnrollmentSummaryAcknowledgementFilter.go
index 609ef16ac..e4e167b90 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestGetEnrollmentSummaryAcknowledgementFilter.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestGetEnrollmentSummaryAcknowledgementFilter.go
@@ -50,32 +50,28 @@ func init() {
 	}
 }
 
-func BACnetConfirmedServiceRequestGetEnrollmentSummaryAcknowledgementFilterByValue(value uint8) BACnetConfirmedServiceRequestGetEnrollmentSummaryAcknowledgementFilter {
+func BACnetConfirmedServiceRequestGetEnrollmentSummaryAcknowledgementFilterByValue(value uint8) (enum BACnetConfirmedServiceRequestGetEnrollmentSummaryAcknowledgementFilter, ok bool) {
 	switch value {
 	case 0:
-		return BACnetConfirmedServiceRequestGetEnrollmentSummaryAcknowledgementFilter_ALL
+		return BACnetConfirmedServiceRequestGetEnrollmentSummaryAcknowledgementFilter_ALL, true
 	case 1:
-		return BACnetConfirmedServiceRequestGetEnrollmentSummaryAcknowledgementFilter_ACKED
+		return BACnetConfirmedServiceRequestGetEnrollmentSummaryAcknowledgementFilter_ACKED, true
 	case 2:
-		return BACnetConfirmedServiceRequestGetEnrollmentSummaryAcknowledgementFilter_NOT_ACKED
+		return BACnetConfirmedServiceRequestGetEnrollmentSummaryAcknowledgementFilter_NOT_ACKED, true
 	}
-	return 0
+	return 0, false
 }
 
 func BACnetConfirmedServiceRequestGetEnrollmentSummaryAcknowledgementFilterByName(value string) (enum BACnetConfirmedServiceRequestGetEnrollmentSummaryAcknowledgementFilter, ok bool) {
-	ok = true
 	switch value {
 	case "ALL":
-		enum = BACnetConfirmedServiceRequestGetEnrollmentSummaryAcknowledgementFilter_ALL
+		return BACnetConfirmedServiceRequestGetEnrollmentSummaryAcknowledgementFilter_ALL, true
 	case "ACKED":
-		enum = BACnetConfirmedServiceRequestGetEnrollmentSummaryAcknowledgementFilter_ACKED
+		return BACnetConfirmedServiceRequestGetEnrollmentSummaryAcknowledgementFilter_ACKED, true
 	case "NOT_ACKED":
-		enum = BACnetConfirmedServiceRequestGetEnrollmentSummaryAcknowledgementFilter_NOT_ACKED
-	default:
-		enum = 0
-		ok = false
+		return BACnetConfirmedServiceRequestGetEnrollmentSummaryAcknowledgementFilter_NOT_ACKED, true
 	}
-	return
+	return 0, false
 }
 
 func BACnetConfirmedServiceRequestGetEnrollmentSummaryAcknowledgementFilterKnows(value uint8) bool {
@@ -110,7 +106,11 @@ func BACnetConfirmedServiceRequestGetEnrollmentSummaryAcknowledgementFilterParse
 	if err != nil {
 		return 0, errors.Wrap(err, "error reading BACnetConfirmedServiceRequestGetEnrollmentSummaryAcknowledgementFilter")
 	}
-	return BACnetConfirmedServiceRequestGetEnrollmentSummaryAcknowledgementFilterByValue(val), nil
+	if enum, ok := BACnetConfirmedServiceRequestGetEnrollmentSummaryAcknowledgementFilterByValue(val); !ok {
+		return 0, errors.Errorf("no value %v found for BACnetConfirmedServiceRequestGetEnrollmentSummaryAcknowledgementFilter", val)
+	} else {
+		return enum, nil
+	}
 }
 
 func (e BACnetConfirmedServiceRequestGetEnrollmentSummaryAcknowledgementFilter) Serialize(writeBuffer utils.WriteBuffer) error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestGetEnrollmentSummaryEventStateFilter.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestGetEnrollmentSummaryEventStateFilter.go
index 96d695dc7..bd5572d09 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestGetEnrollmentSummaryEventStateFilter.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestGetEnrollmentSummaryEventStateFilter.go
@@ -54,40 +54,36 @@ func init() {
 	}
 }
 
-func BACnetConfirmedServiceRequestGetEnrollmentSummaryEventStateFilterByValue(value uint8) BACnetConfirmedServiceRequestGetEnrollmentSummaryEventStateFilter {
+func BACnetConfirmedServiceRequestGetEnrollmentSummaryEventStateFilterByValue(value uint8) (enum BACnetConfirmedServiceRequestGetEnrollmentSummaryEventStateFilter, ok bool) {
 	switch value {
 	case 0:
-		return BACnetConfirmedServiceRequestGetEnrollmentSummaryEventStateFilter_OFFNORMAL
+		return BACnetConfirmedServiceRequestGetEnrollmentSummaryEventStateFilter_OFFNORMAL, true
 	case 1:
-		return BACnetConfirmedServiceRequestGetEnrollmentSummaryEventStateFilter_FAULT
+		return BACnetConfirmedServiceRequestGetEnrollmentSummaryEventStateFilter_FAULT, true
 	case 2:
-		return BACnetConfirmedServiceRequestGetEnrollmentSummaryEventStateFilter_NORMAL
+		return BACnetConfirmedServiceRequestGetEnrollmentSummaryEventStateFilter_NORMAL, true
 	case 3:
-		return BACnetConfirmedServiceRequestGetEnrollmentSummaryEventStateFilter_ALL
+		return BACnetConfirmedServiceRequestGetEnrollmentSummaryEventStateFilter_ALL, true
 	case 4:
-		return BACnetConfirmedServiceRequestGetEnrollmentSummaryEventStateFilter_ACTIVE
+		return BACnetConfirmedServiceRequestGetEnrollmentSummaryEventStateFilter_ACTIVE, true
 	}
-	return 0
+	return 0, false
 }
 
 func BACnetConfirmedServiceRequestGetEnrollmentSummaryEventStateFilterByName(value string) (enum BACnetConfirmedServiceRequestGetEnrollmentSummaryEventStateFilter, ok bool) {
-	ok = true
 	switch value {
 	case "OFFNORMAL":
-		enum = BACnetConfirmedServiceRequestGetEnrollmentSummaryEventStateFilter_OFFNORMAL
+		return BACnetConfirmedServiceRequestGetEnrollmentSummaryEventStateFilter_OFFNORMAL, true
 	case "FAULT":
-		enum = BACnetConfirmedServiceRequestGetEnrollmentSummaryEventStateFilter_FAULT
+		return BACnetConfirmedServiceRequestGetEnrollmentSummaryEventStateFilter_FAULT, true
 	case "NORMAL":
-		enum = BACnetConfirmedServiceRequestGetEnrollmentSummaryEventStateFilter_NORMAL
+		return BACnetConfirmedServiceRequestGetEnrollmentSummaryEventStateFilter_NORMAL, true
 	case "ALL":
-		enum = BACnetConfirmedServiceRequestGetEnrollmentSummaryEventStateFilter_ALL
+		return BACnetConfirmedServiceRequestGetEnrollmentSummaryEventStateFilter_ALL, true
 	case "ACTIVE":
-		enum = BACnetConfirmedServiceRequestGetEnrollmentSummaryEventStateFilter_ACTIVE
-	default:
-		enum = 0
-		ok = false
+		return BACnetConfirmedServiceRequestGetEnrollmentSummaryEventStateFilter_ACTIVE, true
 	}
-	return
+	return 0, false
 }
 
 func BACnetConfirmedServiceRequestGetEnrollmentSummaryEventStateFilterKnows(value uint8) bool {
@@ -122,7 +118,11 @@ func BACnetConfirmedServiceRequestGetEnrollmentSummaryEventStateFilterParse(read
 	if err != nil {
 		return 0, errors.Wrap(err, "error reading BACnetConfirmedServiceRequestGetEnrollmentSummaryEventStateFilter")
 	}
-	return BACnetConfirmedServiceRequestGetEnrollmentSummaryEventStateFilterByValue(val), nil
+	if enum, ok := BACnetConfirmedServiceRequestGetEnrollmentSummaryEventStateFilterByValue(val); !ok {
+		return 0, errors.Errorf("no value %v found for BACnetConfirmedServiceRequestGetEnrollmentSummaryEventStateFilter", val)
+	} else {
+		return enum, nil
+	}
 }
 
 func (e BACnetConfirmedServiceRequestGetEnrollmentSummaryEventStateFilter) Serialize(writeBuffer utils.WriteBuffer) error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice.go
index 656aa9c4b..e6b9527ec 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice.go
@@ -62,56 +62,52 @@ func init() {
 	}
 }
 
-func BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDeviceByValue(value uint8) BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice {
+func BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDeviceByValue(value uint8) (enum BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice, ok bool) {
 	switch value {
 	case 0x0:
-		return BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice_COLDSTART
+		return BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice_COLDSTART, true
 	case 0x1:
-		return BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice_WARMSTART
+		return BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice_WARMSTART, true
 	case 0x2:
-		return BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice_ACTIVATE_CHANGES
+		return BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice_ACTIVATE_CHANGES, true
 	case 0x3:
-		return BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice_STARTBACKUP
+		return BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice_STARTBACKUP, true
 	case 0x4:
-		return BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice_ENDBACKUP
+		return BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice_ENDBACKUP, true
 	case 0x5:
-		return BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice_STARTRESTORE
+		return BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice_STARTRESTORE, true
 	case 0x6:
-		return BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice_ENDRESTORE
+		return BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice_ENDRESTORE, true
 	case 0x7:
-		return BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice_ABORTRESTORE
+		return BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice_ABORTRESTORE, true
 	case 0xFF:
-		return BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice_VENDOR_PROPRIETARY_VALUE
+		return BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice_VENDOR_PROPRIETARY_VALUE, true
 	}
-	return 0
+	return 0, false
 }
 
 func BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDeviceByName(value string) (enum BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice, ok bool) {
-	ok = true
 	switch value {
 	case "COLDSTART":
-		enum = BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice_COLDSTART
+		return BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice_COLDSTART, true
 	case "WARMSTART":
-		enum = BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice_WARMSTART
+		return BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice_WARMSTART, true
 	case "ACTIVATE_CHANGES":
-		enum = BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice_ACTIVATE_CHANGES
+		return BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice_ACTIVATE_CHANGES, true
 	case "STARTBACKUP":
-		enum = BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice_STARTBACKUP
+		return BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice_STARTBACKUP, true
 	case "ENDBACKUP":
-		enum = BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice_ENDBACKUP
+		return BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice_ENDBACKUP, true
 	case "STARTRESTORE":
-		enum = BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice_STARTRESTORE
+		return BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice_STARTRESTORE, true
 	case "ENDRESTORE":
-		enum = BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice_ENDRESTORE
+		return BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice_ENDRESTORE, true
 	case "ABORTRESTORE":
-		enum = BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice_ABORTRESTORE
+		return BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice_ABORTRESTORE, true
 	case "VENDOR_PROPRIETARY_VALUE":
-		enum = BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice_VENDOR_PROPRIETARY_VALUE
-	default:
-		enum = 0
-		ok = false
+		return BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice_VENDOR_PROPRIETARY_VALUE, true
 	}
-	return
+	return 0, false
 }
 
 func BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDeviceKnows(value uint8) bool {
@@ -146,7 +142,11 @@ func BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevicePa
 	if err != nil {
 		return 0, errors.Wrap(err, "error reading BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice")
 	}
-	return BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDeviceByValue(val), nil
+	if enum, ok := BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDeviceByValue(val); !ok {
+		return 0, errors.Errorf("no value %v found for BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice", val)
+	} else {
+		return enum, nil
+	}
 }
 
 func (e BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice) Serialize(writeBuffer utils.WriteBuffer) error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetDataType.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetDataType.go
index 6641b0774..9637c946c 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetDataType.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetDataType.go
@@ -72,76 +72,72 @@ func init() {
 	}
 }
 
-func BACnetDataTypeByValue(value uint8) BACnetDataType {
+func BACnetDataTypeByValue(value uint8) (enum BACnetDataType, ok bool) {
 	switch value {
 	case 0:
-		return BACnetDataType_NULL
+		return BACnetDataType_NULL, true
 	case 1:
-		return BACnetDataType_BOOLEAN
+		return BACnetDataType_BOOLEAN, true
 	case 10:
-		return BACnetDataType_DATE
+		return BACnetDataType_DATE, true
 	case 11:
-		return BACnetDataType_TIME
+		return BACnetDataType_TIME, true
 	case 12:
-		return BACnetDataType_BACNET_OBJECT_IDENTIFIER
+		return BACnetDataType_BACNET_OBJECT_IDENTIFIER, true
 	case 2:
-		return BACnetDataType_UNSIGNED_INTEGER
+		return BACnetDataType_UNSIGNED_INTEGER, true
 	case 3:
-		return BACnetDataType_SIGNED_INTEGER
+		return BACnetDataType_SIGNED_INTEGER, true
 	case 33:
-		return BACnetDataType_UNKNOWN
+		return BACnetDataType_UNKNOWN, true
 	case 4:
-		return BACnetDataType_REAL
+		return BACnetDataType_REAL, true
 	case 5:
-		return BACnetDataType_DOUBLE
+		return BACnetDataType_DOUBLE, true
 	case 6:
-		return BACnetDataType_OCTET_STRING
+		return BACnetDataType_OCTET_STRING, true
 	case 7:
-		return BACnetDataType_CHARACTER_STRING
+		return BACnetDataType_CHARACTER_STRING, true
 	case 8:
-		return BACnetDataType_BIT_STRING
+		return BACnetDataType_BIT_STRING, true
 	case 9:
-		return BACnetDataType_ENUMERATED
+		return BACnetDataType_ENUMERATED, true
 	}
-	return 0
+	return 0, false
 }
 
 func BACnetDataTypeByName(value string) (enum BACnetDataType, ok bool) {
-	ok = true
 	switch value {
 	case "NULL":
-		enum = BACnetDataType_NULL
+		return BACnetDataType_NULL, true
 	case "BOOLEAN":
-		enum = BACnetDataType_BOOLEAN
+		return BACnetDataType_BOOLEAN, true
 	case "DATE":
-		enum = BACnetDataType_DATE
+		return BACnetDataType_DATE, true
 	case "TIME":
-		enum = BACnetDataType_TIME
+		return BACnetDataType_TIME, true
 	case "BACNET_OBJECT_IDENTIFIER":
-		enum = BACnetDataType_BACNET_OBJECT_IDENTIFIER
+		return BACnetDataType_BACNET_OBJECT_IDENTIFIER, true
 	case "UNSIGNED_INTEGER":
-		enum = BACnetDataType_UNSIGNED_INTEGER
+		return BACnetDataType_UNSIGNED_INTEGER, true
 	case "SIGNED_INTEGER":
-		enum = BACnetDataType_SIGNED_INTEGER
+		return BACnetDataType_SIGNED_INTEGER, true
 	case "UNKNOWN":
-		enum = BACnetDataType_UNKNOWN
+		return BACnetDataType_UNKNOWN, true
 	case "REAL":
-		enum = BACnetDataType_REAL
+		return BACnetDataType_REAL, true
 	case "DOUBLE":
-		enum = BACnetDataType_DOUBLE
+		return BACnetDataType_DOUBLE, true
 	case "OCTET_STRING":
-		enum = BACnetDataType_OCTET_STRING
+		return BACnetDataType_OCTET_STRING, true
 	case "CHARACTER_STRING":
-		enum = BACnetDataType_CHARACTER_STRING
+		return BACnetDataType_CHARACTER_STRING, true
 	case "BIT_STRING":
-		enum = BACnetDataType_BIT_STRING
+		return BACnetDataType_BIT_STRING, true
 	case "ENUMERATED":
-		enum = BACnetDataType_ENUMERATED
-	default:
-		enum = 0
-		ok = false
+		return BACnetDataType_ENUMERATED, true
 	}
-	return
+	return 0, false
 }
 
 func BACnetDataTypeKnows(value uint8) bool {
@@ -176,7 +172,11 @@ func BACnetDataTypeParse(readBuffer utils.ReadBuffer) (BACnetDataType, error) {
 	if err != nil {
 		return 0, errors.Wrap(err, "error reading BACnetDataType")
 	}
-	return BACnetDataTypeByValue(val), nil
+	if enum, ok := BACnetDataTypeByValue(val); !ok {
+		return 0, errors.Errorf("no value %v found for BACnetDataType", val)
+	} else {
+		return enum, nil
+	}
 }
 
 func (e BACnetDataType) Serialize(writeBuffer utils.WriteBuffer) error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetDaysOfWeek.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetDaysOfWeek.go
index f03c1ecb7..7044e8a4b 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetDaysOfWeek.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetDaysOfWeek.go
@@ -58,48 +58,44 @@ func init() {
 	}
 }
 
-func BACnetDaysOfWeekByValue(value uint8) BACnetDaysOfWeek {
+func BACnetDaysOfWeekByValue(value uint8) (enum BACnetDaysOfWeek, ok bool) {
 	switch value {
 	case 0:
-		return BACnetDaysOfWeek_MONDAY
+		return BACnetDaysOfWeek_MONDAY, true
 	case 1:
-		return BACnetDaysOfWeek_TUESDAY
+		return BACnetDaysOfWeek_TUESDAY, true
 	case 2:
-		return BACnetDaysOfWeek_WEDNESDAY
+		return BACnetDaysOfWeek_WEDNESDAY, true
 	case 3:
-		return BACnetDaysOfWeek_THURSDAY
+		return BACnetDaysOfWeek_THURSDAY, true
 	case 4:
-		return BACnetDaysOfWeek_FRIDAY
+		return BACnetDaysOfWeek_FRIDAY, true
 	case 5:
-		return BACnetDaysOfWeek_SATURDAY
+		return BACnetDaysOfWeek_SATURDAY, true
 	case 6:
-		return BACnetDaysOfWeek_SUNDAY
+		return BACnetDaysOfWeek_SUNDAY, true
 	}
-	return 0
+	return 0, false
 }
 
 func BACnetDaysOfWeekByName(value string) (enum BACnetDaysOfWeek, ok bool) {
-	ok = true
 	switch value {
 	case "MONDAY":
-		enum = BACnetDaysOfWeek_MONDAY
+		return BACnetDaysOfWeek_MONDAY, true
 	case "TUESDAY":
-		enum = BACnetDaysOfWeek_TUESDAY
+		return BACnetDaysOfWeek_TUESDAY, true
 	case "WEDNESDAY":
-		enum = BACnetDaysOfWeek_WEDNESDAY
+		return BACnetDaysOfWeek_WEDNESDAY, true
 	case "THURSDAY":
-		enum = BACnetDaysOfWeek_THURSDAY
+		return BACnetDaysOfWeek_THURSDAY, true
 	case "FRIDAY":
-		enum = BACnetDaysOfWeek_FRIDAY
+		return BACnetDaysOfWeek_FRIDAY, true
 	case "SATURDAY":
-		enum = BACnetDaysOfWeek_SATURDAY
+		return BACnetDaysOfWeek_SATURDAY, true
 	case "SUNDAY":
-		enum = BACnetDaysOfWeek_SUNDAY
-	default:
-		enum = 0
-		ok = false
+		return BACnetDaysOfWeek_SUNDAY, true
 	}
-	return
+	return 0, false
 }
 
 func BACnetDaysOfWeekKnows(value uint8) bool {
@@ -134,7 +130,11 @@ func BACnetDaysOfWeekParse(readBuffer utils.ReadBuffer) (BACnetDaysOfWeek, error
 	if err != nil {
 		return 0, errors.Wrap(err, "error reading BACnetDaysOfWeek")
 	}
-	return BACnetDaysOfWeekByValue(val), nil
+	if enum, ok := BACnetDaysOfWeekByValue(val); !ok {
+		return 0, errors.Errorf("no value %v found for BACnetDaysOfWeek", val)
+	} else {
+		return enum, nil
+	}
 }
 
 func (e BACnetDaysOfWeek) Serialize(writeBuffer utils.WriteBuffer) error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetDeviceStatus.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetDeviceStatus.go
index 140fcf75f..d04c5922a 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetDeviceStatus.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetDeviceStatus.go
@@ -58,48 +58,44 @@ func init() {
 	}
 }
 
-func BACnetDeviceStatusByValue(value uint16) BACnetDeviceStatus {
+func BACnetDeviceStatusByValue(value uint16) (enum BACnetDeviceStatus, ok bool) {
 	switch value {
 	case 0:
-		return BACnetDeviceStatus_OPERATIONAL
+		return BACnetDeviceStatus_OPERATIONAL, true
 	case 0xFFFF:
-		return BACnetDeviceStatus_VENDOR_PROPRIETARY_VALUE
+		return BACnetDeviceStatus_VENDOR_PROPRIETARY_VALUE, true
 	case 1:
-		return BACnetDeviceStatus_OPERATIONAL_READ_ONLY
+		return BACnetDeviceStatus_OPERATIONAL_READ_ONLY, true
 	case 2:
-		return BACnetDeviceStatus_DOWNLOAD_REQUIRED
+		return BACnetDeviceStatus_DOWNLOAD_REQUIRED, true
 	case 3:
-		return BACnetDeviceStatus_DOWNLOAD_IN_PROGRESS
+		return BACnetDeviceStatus_DOWNLOAD_IN_PROGRESS, true
 	case 4:
-		return BACnetDeviceStatus_NON_OPERATIONAL
+		return BACnetDeviceStatus_NON_OPERATIONAL, true
 	case 5:
-		return BACnetDeviceStatus_BACKUP_IN_PROGRESS
+		return BACnetDeviceStatus_BACKUP_IN_PROGRESS, true
 	}
-	return 0
+	return 0, false
 }
 
 func BACnetDeviceStatusByName(value string) (enum BACnetDeviceStatus, ok bool) {
-	ok = true
 	switch value {
 	case "OPERATIONAL":
-		enum = BACnetDeviceStatus_OPERATIONAL
+		return BACnetDeviceStatus_OPERATIONAL, true
 	case "VENDOR_PROPRIETARY_VALUE":
-		enum = BACnetDeviceStatus_VENDOR_PROPRIETARY_VALUE
+		return BACnetDeviceStatus_VENDOR_PROPRIETARY_VALUE, true
 	case "OPERATIONAL_READ_ONLY":
-		enum = BACnetDeviceStatus_OPERATIONAL_READ_ONLY
+		return BACnetDeviceStatus_OPERATIONAL_READ_ONLY, true
 	case "DOWNLOAD_REQUIRED":
-		enum = BACnetDeviceStatus_DOWNLOAD_REQUIRED
+		return BACnetDeviceStatus_DOWNLOAD_REQUIRED, true
 	case "DOWNLOAD_IN_PROGRESS":
-		enum = BACnetDeviceStatus_DOWNLOAD_IN_PROGRESS
+		return BACnetDeviceStatus_DOWNLOAD_IN_PROGRESS, true
 	case "NON_OPERATIONAL":
-		enum = BACnetDeviceStatus_NON_OPERATIONAL
+		return BACnetDeviceStatus_NON_OPERATIONAL, true
 	case "BACKUP_IN_PROGRESS":
-		enum = BACnetDeviceStatus_BACKUP_IN_PROGRESS
-	default:
-		enum = 0
-		ok = false
+		return BACnetDeviceStatus_BACKUP_IN_PROGRESS, true
 	}
-	return
+	return 0, false
 }
 
 func BACnetDeviceStatusKnows(value uint16) bool {
@@ -134,7 +130,11 @@ func BACnetDeviceStatusParse(readBuffer utils.ReadBuffer) (BACnetDeviceStatus, e
 	if err != nil {
 		return 0, errors.Wrap(err, "error reading BACnetDeviceStatus")
 	}
-	return BACnetDeviceStatusByValue(val), nil
+	if enum, ok := BACnetDeviceStatusByValue(val); !ok {
+		return 0, errors.Errorf("no value %v found for BACnetDeviceStatus", val)
+	} else {
+		return enum, nil
+	}
 }
 
 func (e BACnetDeviceStatus) Serialize(writeBuffer utils.WriteBuffer) error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetDoorAlarmState.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetDoorAlarmState.go
index 4a5d83d0c..902bf714d 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetDoorAlarmState.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetDoorAlarmState.go
@@ -64,60 +64,56 @@ func init() {
 	}
 }
 
-func BACnetDoorAlarmStateByValue(value uint8) BACnetDoorAlarmState {
+func BACnetDoorAlarmStateByValue(value uint8) (enum BACnetDoorAlarmState, ok bool) {
 	switch value {
 	case 0:
-		return BACnetDoorAlarmState_NORMAL
+		return BACnetDoorAlarmState_NORMAL, true
 	case 0xFF:
-		return BACnetDoorAlarmState_VENDOR_PROPRIETARY_VALUE
+		return BACnetDoorAlarmState_VENDOR_PROPRIETARY_VALUE, true
 	case 1:
-		return BACnetDoorAlarmState_ALARM
+		return BACnetDoorAlarmState_ALARM, true
 	case 2:
-		return BACnetDoorAlarmState_DOOR_OPEN_TOO_LONG
+		return BACnetDoorAlarmState_DOOR_OPEN_TOO_LONG, true
 	case 3:
-		return BACnetDoorAlarmState_FORCED_OPEN
+		return BACnetDoorAlarmState_FORCED_OPEN, true
 	case 4:
-		return BACnetDoorAlarmState_TAMPER
+		return BACnetDoorAlarmState_TAMPER, true
 	case 5:
-		return BACnetDoorAlarmState_DOOR_FAULT
+		return BACnetDoorAlarmState_DOOR_FAULT, true
 	case 6:
-		return BACnetDoorAlarmState_LOCK_DOWN
+		return BACnetDoorAlarmState_LOCK_DOWN, true
 	case 7:
-		return BACnetDoorAlarmState_FREE_ACCESS
+		return BACnetDoorAlarmState_FREE_ACCESS, true
 	case 8:
-		return BACnetDoorAlarmState_EGRESS_OPEN
+		return BACnetDoorAlarmState_EGRESS_OPEN, true
 	}
-	return 0
+	return 0, false
 }
 
 func BACnetDoorAlarmStateByName(value string) (enum BACnetDoorAlarmState, ok bool) {
-	ok = true
 	switch value {
 	case "NORMAL":
-		enum = BACnetDoorAlarmState_NORMAL
+		return BACnetDoorAlarmState_NORMAL, true
 	case "VENDOR_PROPRIETARY_VALUE":
-		enum = BACnetDoorAlarmState_VENDOR_PROPRIETARY_VALUE
+		return BACnetDoorAlarmState_VENDOR_PROPRIETARY_VALUE, true
 	case "ALARM":
-		enum = BACnetDoorAlarmState_ALARM
+		return BACnetDoorAlarmState_ALARM, true
 	case "DOOR_OPEN_TOO_LONG":
-		enum = BACnetDoorAlarmState_DOOR_OPEN_TOO_LONG
+		return BACnetDoorAlarmState_DOOR_OPEN_TOO_LONG, true
 	case "FORCED_OPEN":
-		enum = BACnetDoorAlarmState_FORCED_OPEN
+		return BACnetDoorAlarmState_FORCED_OPEN, true
 	case "TAMPER":
-		enum = BACnetDoorAlarmState_TAMPER
+		return BACnetDoorAlarmState_TAMPER, true
 	case "DOOR_FAULT":
-		enum = BACnetDoorAlarmState_DOOR_FAULT
+		return BACnetDoorAlarmState_DOOR_FAULT, true
 	case "LOCK_DOWN":
-		enum = BACnetDoorAlarmState_LOCK_DOWN
+		return BACnetDoorAlarmState_LOCK_DOWN, true
 	case "FREE_ACCESS":
-		enum = BACnetDoorAlarmState_FREE_ACCESS
+		return BACnetDoorAlarmState_FREE_ACCESS, true
 	case "EGRESS_OPEN":
-		enum = BACnetDoorAlarmState_EGRESS_OPEN
-	default:
-		enum = 0
-		ok = false
+		return BACnetDoorAlarmState_EGRESS_OPEN, true
 	}
-	return
+	return 0, false
 }
 
 func BACnetDoorAlarmStateKnows(value uint8) bool {
@@ -152,7 +148,11 @@ func BACnetDoorAlarmStateParse(readBuffer utils.ReadBuffer) (BACnetDoorAlarmStat
 	if err != nil {
 		return 0, errors.Wrap(err, "error reading BACnetDoorAlarmState")
 	}
-	return BACnetDoorAlarmStateByValue(val), nil
+	if enum, ok := BACnetDoorAlarmStateByValue(val); !ok {
+		return 0, errors.Errorf("no value %v found for BACnetDoorAlarmState", val)
+	} else {
+		return enum, nil
+	}
 }
 
 func (e BACnetDoorAlarmState) Serialize(writeBuffer utils.WriteBuffer) error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetDoorSecuredStatus.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetDoorSecuredStatus.go
index 994a267f7..0e204218f 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetDoorSecuredStatus.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetDoorSecuredStatus.go
@@ -50,32 +50,28 @@ func init() {
 	}
 }
 
-func BACnetDoorSecuredStatusByValue(value uint8) BACnetDoorSecuredStatus {
+func BACnetDoorSecuredStatusByValue(value uint8) (enum BACnetDoorSecuredStatus, ok bool) {
 	switch value {
 	case 0:
-		return BACnetDoorSecuredStatus_SECURED
+		return BACnetDoorSecuredStatus_SECURED, true
 	case 1:
-		return BACnetDoorSecuredStatus_UNSECURED
+		return BACnetDoorSecuredStatus_UNSECURED, true
 	case 2:
-		return BACnetDoorSecuredStatus_UNKNOWN
+		return BACnetDoorSecuredStatus_UNKNOWN, true
 	}
-	return 0
+	return 0, false
 }
 
 func BACnetDoorSecuredStatusByName(value string) (enum BACnetDoorSecuredStatus, ok bool) {
-	ok = true
 	switch value {
 	case "SECURED":
-		enum = BACnetDoorSecuredStatus_SECURED
+		return BACnetDoorSecuredStatus_SECURED, true
 	case "UNSECURED":
-		enum = BACnetDoorSecuredStatus_UNSECURED
+		return BACnetDoorSecuredStatus_UNSECURED, true
 	case "UNKNOWN":
-		enum = BACnetDoorSecuredStatus_UNKNOWN
-	default:
-		enum = 0
-		ok = false
+		return BACnetDoorSecuredStatus_UNKNOWN, true
 	}
-	return
+	return 0, false
 }
 
 func BACnetDoorSecuredStatusKnows(value uint8) bool {
@@ -110,7 +106,11 @@ func BACnetDoorSecuredStatusParse(readBuffer utils.ReadBuffer) (BACnetDoorSecure
 	if err != nil {
 		return 0, errors.Wrap(err, "error reading BACnetDoorSecuredStatus")
 	}
-	return BACnetDoorSecuredStatusByValue(val), nil
+	if enum, ok := BACnetDoorSecuredStatusByValue(val); !ok {
+		return 0, errors.Errorf("no value %v found for BACnetDoorSecuredStatus", val)
+	} else {
+		return enum, nil
+	}
 }
 
 func (e BACnetDoorSecuredStatus) Serialize(writeBuffer utils.WriteBuffer) error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetDoorStatus.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetDoorStatus.go
index 1d6daf12a..717cb2d68 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetDoorStatus.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetDoorStatus.go
@@ -66,64 +66,60 @@ func init() {
 	}
 }
 
-func BACnetDoorStatusByValue(value uint16) BACnetDoorStatus {
+func BACnetDoorStatusByValue(value uint16) (enum BACnetDoorStatus, ok bool) {
 	switch value {
 	case 0:
-		return BACnetDoorStatus_CLOSED
+		return BACnetDoorStatus_CLOSED, true
 	case 0xFFFF:
-		return BACnetDoorStatus_VENDOR_PROPRIETARY_VALUE
+		return BACnetDoorStatus_VENDOR_PROPRIETARY_VALUE, true
 	case 1:
-		return BACnetDoorStatus_OPENED
+		return BACnetDoorStatus_OPENED, true
 	case 2:
-		return BACnetDoorStatus_UNKNOWN
+		return BACnetDoorStatus_UNKNOWN, true
 	case 3:
-		return BACnetDoorStatus_DOOR_FAULT
+		return BACnetDoorStatus_DOOR_FAULT, true
 	case 4:
-		return BACnetDoorStatus_UNUSED
+		return BACnetDoorStatus_UNUSED, true
 	case 5:
-		return BACnetDoorStatus_NONE
+		return BACnetDoorStatus_NONE, true
 	case 6:
-		return BACnetDoorStatus_CLOSING
+		return BACnetDoorStatus_CLOSING, true
 	case 7:
-		return BACnetDoorStatus_OPENING
+		return BACnetDoorStatus_OPENING, true
 	case 8:
-		return BACnetDoorStatus_SAFETY_LOCKED
+		return BACnetDoorStatus_SAFETY_LOCKED, true
 	case 9:
-		return BACnetDoorStatus_LIMITED_OPENED
+		return BACnetDoorStatus_LIMITED_OPENED, true
 	}
-	return 0
+	return 0, false
 }
 
 func BACnetDoorStatusByName(value string) (enum BACnetDoorStatus, ok bool) {
-	ok = true
 	switch value {
 	case "CLOSED":
-		enum = BACnetDoorStatus_CLOSED
+		return BACnetDoorStatus_CLOSED, true
 	case "VENDOR_PROPRIETARY_VALUE":
-		enum = BACnetDoorStatus_VENDOR_PROPRIETARY_VALUE
+		return BACnetDoorStatus_VENDOR_PROPRIETARY_VALUE, true
 	case "OPENED":
-		enum = BACnetDoorStatus_OPENED
+		return BACnetDoorStatus_OPENED, true
 	case "UNKNOWN":
-		enum = BACnetDoorStatus_UNKNOWN
+		return BACnetDoorStatus_UNKNOWN, true
 	case "DOOR_FAULT":
-		enum = BACnetDoorStatus_DOOR_FAULT
+		return BACnetDoorStatus_DOOR_FAULT, true
 	case "UNUSED":
-		enum = BACnetDoorStatus_UNUSED
+		return BACnetDoorStatus_UNUSED, true
 	case "NONE":
-		enum = BACnetDoorStatus_NONE
+		return BACnetDoorStatus_NONE, true
 	case "CLOSING":
-		enum = BACnetDoorStatus_CLOSING
+		return BACnetDoorStatus_CLOSING, true
 	case "OPENING":
-		enum = BACnetDoorStatus_OPENING
+		return BACnetDoorStatus_OPENING, true
 	case "SAFETY_LOCKED":
-		enum = BACnetDoorStatus_SAFETY_LOCKED
+		return BACnetDoorStatus_SAFETY_LOCKED, true
 	case "LIMITED_OPENED":
-		enum = BACnetDoorStatus_LIMITED_OPENED
-	default:
-		enum = 0
-		ok = false
+		return BACnetDoorStatus_LIMITED_OPENED, true
 	}
-	return
+	return 0, false
 }
 
 func BACnetDoorStatusKnows(value uint16) bool {
@@ -158,7 +154,11 @@ func BACnetDoorStatusParse(readBuffer utils.ReadBuffer) (BACnetDoorStatus, error
 	if err != nil {
 		return 0, errors.Wrap(err, "error reading BACnetDoorStatus")
 	}
-	return BACnetDoorStatusByValue(val), nil
+	if enum, ok := BACnetDoorStatusByValue(val); !ok {
+		return 0, errors.Errorf("no value %v found for BACnetDoorStatus", val)
+	} else {
+		return enum, nil
+	}
 }
 
 func (e BACnetDoorStatus) Serialize(writeBuffer utils.WriteBuffer) error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetDoorValue.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetDoorValue.go
index 2860784af..14672a671 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetDoorValue.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetDoorValue.go
@@ -52,36 +52,32 @@ func init() {
 	}
 }
 
-func BACnetDoorValueByValue(value uint8) BACnetDoorValue {
+func BACnetDoorValueByValue(value uint8) (enum BACnetDoorValue, ok bool) {
 	switch value {
 	case 0:
-		return BACnetDoorValue_LOCK
+		return BACnetDoorValue_LOCK, true
 	case 1:
-		return BACnetDoorValue_UNLOCK
+		return BACnetDoorValue_UNLOCK, true
 	case 2:
-		return BACnetDoorValue_PULSE_UNLOCK
+		return BACnetDoorValue_PULSE_UNLOCK, true
 	case 3:
-		return BACnetDoorValue_EXTENDED_PULSE_UNLOCK
+		return BACnetDoorValue_EXTENDED_PULSE_UNLOCK, true
 	}
-	return 0
+	return 0, false
 }
 
 func BACnetDoorValueByName(value string) (enum BACnetDoorValue, ok bool) {
-	ok = true
 	switch value {
 	case "LOCK":
-		enum = BACnetDoorValue_LOCK
+		return BACnetDoorValue_LOCK, true
 	case "UNLOCK":
-		enum = BACnetDoorValue_UNLOCK
+		return BACnetDoorValue_UNLOCK, true
 	case "PULSE_UNLOCK":
-		enum = BACnetDoorValue_PULSE_UNLOCK
+		return BACnetDoorValue_PULSE_UNLOCK, true
 	case "EXTENDED_PULSE_UNLOCK":
-		enum = BACnetDoorValue_EXTENDED_PULSE_UNLOCK
-	default:
-		enum = 0
-		ok = false
+		return BACnetDoorValue_EXTENDED_PULSE_UNLOCK, true
 	}
-	return
+	return 0, false
 }
 
 func BACnetDoorValueKnows(value uint8) bool {
@@ -116,7 +112,11 @@ func BACnetDoorValueParse(readBuffer utils.ReadBuffer) (BACnetDoorValue, error)
 	if err != nil {
 		return 0, errors.Wrap(err, "error reading BACnetDoorValue")
 	}
-	return BACnetDoorValueByValue(val), nil
+	if enum, ok := BACnetDoorValueByValue(val); !ok {
+		return 0, errors.Errorf("no value %v found for BACnetDoorValue", val)
+	} else {
+		return enum, nil
+	}
 }
 
 func (e BACnetDoorValue) Serialize(writeBuffer utils.WriteBuffer) error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetEngineeringUnits.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetEngineeringUnits.go
index f6ba24dde..27d6c897b 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetEngineeringUnits.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetEngineeringUnits.go
@@ -548,1028 +548,1024 @@ func init() {
 	}
 }
 
-func BACnetEngineeringUnitsByValue(value uint32) BACnetEngineeringUnits {
+func BACnetEngineeringUnitsByValue(value uint32) (enum BACnetEngineeringUnits, ok bool) {
 	switch value {
 	case 0:
-		return BACnetEngineeringUnits_SQUARE_METERS
+		return BACnetEngineeringUnits_SQUARE_METERS, true
 	case 0xFF:
-		return BACnetEngineeringUnits_VENDOR_PROPRIETARY_VALUE
+		return BACnetEngineeringUnits_VENDOR_PROPRIETARY_VALUE, true
 	case 1:
-		return BACnetEngineeringUnits_SQUARE_FEET
+		return BACnetEngineeringUnits_SQUARE_FEET, true
 	case 10:
-		return BACnetEngineeringUnits_MEGAVOLT_AMPERES
+		return BACnetEngineeringUnits_MEGAVOLT_AMPERES, true
 	case 100:
-		return BACnetEngineeringUnits_PER_MINUTE
+		return BACnetEngineeringUnits_PER_MINUTE, true
 	case 101:
-		return BACnetEngineeringUnits_PER_SECOND
+		return BACnetEngineeringUnits_PER_SECOND, true
 	case 102:
-		return BACnetEngineeringUnits_PSI_PER_DEGREE_FAHRENHEIT
+		return BACnetEngineeringUnits_PSI_PER_DEGREE_FAHRENHEIT, true
 	case 103:
-		return BACnetEngineeringUnits_RADIANS
+		return BACnetEngineeringUnits_RADIANS, true
 	case 104:
-		return BACnetEngineeringUnits_REVOLUTIONS_PER_MINUTE
+		return BACnetEngineeringUnits_REVOLUTIONS_PER_MINUTE, true
 	case 105:
-		return BACnetEngineeringUnits_CURRENCY1
+		return BACnetEngineeringUnits_CURRENCY1, true
 	case 106:
-		return BACnetEngineeringUnits_CURRENCY2
+		return BACnetEngineeringUnits_CURRENCY2, true
 	case 107:
-		return BACnetEngineeringUnits_CURRENCY3
+		return BACnetEngineeringUnits_CURRENCY3, true
 	case 108:
-		return BACnetEngineeringUnits_CURRENCY4
+		return BACnetEngineeringUnits_CURRENCY4, true
 	case 109:
-		return BACnetEngineeringUnits_CURRENCY5
+		return BACnetEngineeringUnits_CURRENCY5, true
 	case 11:
-		return BACnetEngineeringUnits_VOLT_AMPERES_REACTIVE
+		return BACnetEngineeringUnits_VOLT_AMPERES_REACTIVE, true
 	case 110:
-		return BACnetEngineeringUnits_CURRENCY6
+		return BACnetEngineeringUnits_CURRENCY6, true
 	case 111:
-		return BACnetEngineeringUnits_CURRENCY7
+		return BACnetEngineeringUnits_CURRENCY7, true
 	case 112:
-		return BACnetEngineeringUnits_CURRENCY8
+		return BACnetEngineeringUnits_CURRENCY8, true
 	case 113:
-		return BACnetEngineeringUnits_CURRENCY9
+		return BACnetEngineeringUnits_CURRENCY9, true
 	case 114:
-		return BACnetEngineeringUnits_CURRENCY10
+		return BACnetEngineeringUnits_CURRENCY10, true
 	case 115:
-		return BACnetEngineeringUnits_SQUARE_INCHES
+		return BACnetEngineeringUnits_SQUARE_INCHES, true
 	case 116:
-		return BACnetEngineeringUnits_SQUARE_CENTIMETERS
+		return BACnetEngineeringUnits_SQUARE_CENTIMETERS, true
 	case 117:
-		return BACnetEngineeringUnits_BTUS_PER_POUND
+		return BACnetEngineeringUnits_BTUS_PER_POUND, true
 	case 118:
-		return BACnetEngineeringUnits_CENTIMETERS
+		return BACnetEngineeringUnits_CENTIMETERS, true
 	case 119:
-		return BACnetEngineeringUnits_POUNDS_MASS_PER_SECOND
+		return BACnetEngineeringUnits_POUNDS_MASS_PER_SECOND, true
 	case 12:
-		return BACnetEngineeringUnits_KILOVOLT_AMPERES_REACTIVE
+		return BACnetEngineeringUnits_KILOVOLT_AMPERES_REACTIVE, true
 	case 120:
-		return BACnetEngineeringUnits_DELTA_DEGREES_FAHRENHEIT
+		return BACnetEngineeringUnits_DELTA_DEGREES_FAHRENHEIT, true
 	case 121:
-		return BACnetEngineeringUnits_DELTA_DEGREES_KELVIN
+		return BACnetEngineeringUnits_DELTA_DEGREES_KELVIN, true
 	case 122:
-		return BACnetEngineeringUnits_KILOHMS
+		return BACnetEngineeringUnits_KILOHMS, true
 	case 123:
-		return BACnetEngineeringUnits_MEGOHMS
+		return BACnetEngineeringUnits_MEGOHMS, true
 	case 124:
-		return BACnetEngineeringUnits_MILLIVOLTS
+		return BACnetEngineeringUnits_MILLIVOLTS, true
 	case 125:
-		return BACnetEngineeringUnits_KILOJOULES_PER_KILOGRAM
+		return BACnetEngineeringUnits_KILOJOULES_PER_KILOGRAM, true
 	case 126:
-		return BACnetEngineeringUnits_MEGAJOULES
+		return BACnetEngineeringUnits_MEGAJOULES, true
 	case 13:
-		return BACnetEngineeringUnits_MEGAVOLT_AMPERES_REACTIVE
+		return BACnetEngineeringUnits_MEGAVOLT_AMPERES_REACTIVE, true
 	case 132:
-		return BACnetEngineeringUnits_IWATTS
+		return BACnetEngineeringUnits_IWATTS, true
 	case 133:
-		return BACnetEngineeringUnits_HECTOPASCALS
+		return BACnetEngineeringUnits_HECTOPASCALS, true
 	case 134:
-		return BACnetEngineeringUnits_MILLIBARS
+		return BACnetEngineeringUnits_MILLIBARS, true
 	case 135:
-		return BACnetEngineeringUnits_CUBIC_METERS_PER_HOUR
+		return BACnetEngineeringUnits_CUBIC_METERS_PER_HOUR, true
 	case 136:
-		return BACnetEngineeringUnits_LITERS_PER_HOUR
+		return BACnetEngineeringUnits_LITERS_PER_HOUR, true
 	case 137:
-		return BACnetEngineeringUnits_KILOWATT_HOURS_PER_SQUARE_METER
+		return BACnetEngineeringUnits_KILOWATT_HOURS_PER_SQUARE_METER, true
 	case 138:
-		return BACnetEngineeringUnits_KILOWATT_HOURS_PER_SQUARE_FOOT
+		return BACnetEngineeringUnits_KILOWATT_HOURS_PER_SQUARE_FOOT, true
 	case 139:
-		return BACnetEngineeringUnits_MEGAJOULES_PER_SQUARE_METER
+		return BACnetEngineeringUnits_MEGAJOULES_PER_SQUARE_METER, true
 	case 14:
-		return BACnetEngineeringUnits_DEGREES_PHASE
+		return BACnetEngineeringUnits_DEGREES_PHASE, true
 	case 140:
-		return BACnetEngineeringUnits_MEGAJOULES_PER_SQUARE_FOOT
+		return BACnetEngineeringUnits_MEGAJOULES_PER_SQUARE_FOOT, true
 	case 141:
-		return BACnetEngineeringUnits_WATTS_PER_SQUARE_METER_DEGREE_KELVIN
+		return BACnetEngineeringUnits_WATTS_PER_SQUARE_METER_DEGREE_KELVIN, true
 	case 142:
-		return BACnetEngineeringUnits_CUBIC_FEET_PER_SECOND
+		return BACnetEngineeringUnits_CUBIC_FEET_PER_SECOND, true
 	case 143:
-		return BACnetEngineeringUnits_PERCENT_OBSCURATION_PER_FOOT
+		return BACnetEngineeringUnits_PERCENT_OBSCURATION_PER_FOOT, true
 	case 144:
-		return BACnetEngineeringUnits_PERCENT_OBSCURATION_PER_METER
+		return BACnetEngineeringUnits_PERCENT_OBSCURATION_PER_METER, true
 	case 145:
-		return BACnetEngineeringUnits_MILLIOHMS
+		return BACnetEngineeringUnits_MILLIOHMS, true
 	case 146:
-		return BACnetEngineeringUnits_MEGAWATT_HOURS
+		return BACnetEngineeringUnits_MEGAWATT_HOURS, true
 	case 147:
-		return BACnetEngineeringUnits_KILO_BTUS
+		return BACnetEngineeringUnits_KILO_BTUS, true
 	case 148:
-		return BACnetEngineeringUnits_MEGA_BTUS
+		return BACnetEngineeringUnits_MEGA_BTUS, true
 	case 149:
-		return BACnetEngineeringUnits_KILOJOULES_PER_KILOGRAM_DRY_AIR
+		return BACnetEngineeringUnits_KILOJOULES_PER_KILOGRAM_DRY_AIR, true
 	case 15:
-		return BACnetEngineeringUnits_POWER_FACTOR
+		return BACnetEngineeringUnits_POWER_FACTOR, true
 	case 150:
-		return BACnetEngineeringUnits_MEGAJOULES_PER_KILOGRAM_DRY_AIR
+		return BACnetEngineeringUnits_MEGAJOULES_PER_KILOGRAM_DRY_AIR, true
 	case 154:
-		return BACnetEngineeringUnits_GRAMS_PER_SECOND
+		return BACnetEngineeringUnits_GRAMS_PER_SECOND, true
 	case 155:
-		return BACnetEngineeringUnits_GRAMS_PER_MINUTE
+		return BACnetEngineeringUnits_GRAMS_PER_MINUTE, true
 	case 156:
-		return BACnetEngineeringUnits_TONS_PER_HOUR
+		return BACnetEngineeringUnits_TONS_PER_HOUR, true
 	case 157:
-		return BACnetEngineeringUnits_KILO_BTUS_PER_HOUR
+		return BACnetEngineeringUnits_KILO_BTUS_PER_HOUR, true
 	case 158:
-		return BACnetEngineeringUnits_HUNDREDTHS_SECONDS
+		return BACnetEngineeringUnits_HUNDREDTHS_SECONDS, true
 	case 159:
-		return BACnetEngineeringUnits_MILLISECONDS
+		return BACnetEngineeringUnits_MILLISECONDS, true
 	case 16:
-		return BACnetEngineeringUnits_JOULES
+		return BACnetEngineeringUnits_JOULES, true
 	case 160:
-		return BACnetEngineeringUnits_NEWTON_METERS
+		return BACnetEngineeringUnits_NEWTON_METERS, true
 	case 161:
-		return BACnetEngineeringUnits_MILLIMETERS_PER_SECOND
+		return BACnetEngineeringUnits_MILLIMETERS_PER_SECOND, true
 	case 162:
-		return BACnetEngineeringUnits_MILLIMETERS_PER_MINUTE
+		return BACnetEngineeringUnits_MILLIMETERS_PER_MINUTE, true
 	case 163:
-		return BACnetEngineeringUnits_METERS_PER_MINUTE
+		return BACnetEngineeringUnits_METERS_PER_MINUTE, true
 	case 164:
-		return BACnetEngineeringUnits_METERS_PER_HOUR
+		return BACnetEngineeringUnits_METERS_PER_HOUR, true
 	case 165:
-		return BACnetEngineeringUnits_CUBIC_METERS_PER_MINUTE
+		return BACnetEngineeringUnits_CUBIC_METERS_PER_MINUTE, true
 	case 166:
-		return BACnetEngineeringUnits_METERS_PER_SECOND_PER_SECOND
+		return BACnetEngineeringUnits_METERS_PER_SECOND_PER_SECOND, true
 	case 167:
-		return BACnetEngineeringUnits_AMPERES_PER_METER
+		return BACnetEngineeringUnits_AMPERES_PER_METER, true
 	case 168:
-		return BACnetEngineeringUnits_AMPERES_PER_SQUARE_METER
+		return BACnetEngineeringUnits_AMPERES_PER_SQUARE_METER, true
 	case 169:
-		return BACnetEngineeringUnits_AMPERE_SQUARE_METERS
+		return BACnetEngineeringUnits_AMPERE_SQUARE_METERS, true
 	case 17:
-		return BACnetEngineeringUnits_KILOJOULES
+		return BACnetEngineeringUnits_KILOJOULES, true
 	case 170:
-		return BACnetEngineeringUnits_FARADS
+		return BACnetEngineeringUnits_FARADS, true
 	case 171:
-		return BACnetEngineeringUnits_HENRYS
+		return BACnetEngineeringUnits_HENRYS, true
 	case 172:
-		return BACnetEngineeringUnits_OHM_METERS
+		return BACnetEngineeringUnits_OHM_METERS, true
 	case 173:
-		return BACnetEngineeringUnits_SIEMENS
+		return BACnetEngineeringUnits_SIEMENS, true
 	case 174:
-		return BACnetEngineeringUnits_SIEMENS_PER_METER
+		return BACnetEngineeringUnits_SIEMENS_PER_METER, true
 	case 175:
-		return BACnetEngineeringUnits_TESLAS
+		return BACnetEngineeringUnits_TESLAS, true
 	case 176:
-		return BACnetEngineeringUnits_VOLTS_PER_DEGREE_KELVIN
+		return BACnetEngineeringUnits_VOLTS_PER_DEGREE_KELVIN, true
 	case 177:
-		return BACnetEngineeringUnits_VOLTS_PER_METER
+		return BACnetEngineeringUnits_VOLTS_PER_METER, true
 	case 178:
-		return BACnetEngineeringUnits_WEBERS
+		return BACnetEngineeringUnits_WEBERS, true
 	case 179:
-		return BACnetEngineeringUnits_CANDELAS
+		return BACnetEngineeringUnits_CANDELAS, true
 	case 18:
-		return BACnetEngineeringUnits_WATT_HOURS
+		return BACnetEngineeringUnits_WATT_HOURS, true
 	case 180:
-		return BACnetEngineeringUnits_CANDELAS_PER_SQUARE_METER
+		return BACnetEngineeringUnits_CANDELAS_PER_SQUARE_METER, true
 	case 181:
-		return BACnetEngineeringUnits_DEGREES_KELVIN_PER_HOUR
+		return BACnetEngineeringUnits_DEGREES_KELVIN_PER_HOUR, true
 	case 182:
-		return BACnetEngineeringUnits_DEGREES_KELVIN_PER_MINUTE
+		return BACnetEngineeringUnits_DEGREES_KELVIN_PER_MINUTE, true
 	case 183:
-		return BACnetEngineeringUnits_JOULE_SECONDS
+		return BACnetEngineeringUnits_JOULE_SECONDS, true
 	case 184:
-		return BACnetEngineeringUnits_RADIANS_PER_SECOND
+		return BACnetEngineeringUnits_RADIANS_PER_SECOND, true
 	case 185:
-		return BACnetEngineeringUnits_SQUARE_METERS_PER_NEWTON
+		return BACnetEngineeringUnits_SQUARE_METERS_PER_NEWTON, true
 	case 186:
-		return BACnetEngineeringUnits_KILOGRAMS_PER_CUBIC_METER
+		return BACnetEngineeringUnits_KILOGRAMS_PER_CUBIC_METER, true
 	case 187:
-		return BACnetEngineeringUnits_NEWTON_SECONDS
+		return BACnetEngineeringUnits_NEWTON_SECONDS, true
 	case 188:
-		return BACnetEngineeringUnits_NEWTONS_PER_METER
+		return BACnetEngineeringUnits_NEWTONS_PER_METER, true
 	case 189:
-		return BACnetEngineeringUnits_WATTS_PER_METER_PER_DEGREE_KELVIN
+		return BACnetEngineeringUnits_WATTS_PER_METER_PER_DEGREE_KELVIN, true
 	case 19:
-		return BACnetEngineeringUnits_KILOWATT_HOURS
+		return BACnetEngineeringUnits_KILOWATT_HOURS, true
 	case 190:
-		return BACnetEngineeringUnits_MICROSIEMENS
+		return BACnetEngineeringUnits_MICROSIEMENS, true
 	case 191:
-		return BACnetEngineeringUnits_CUBIC_FEET_PER_HOUR
+		return BACnetEngineeringUnits_CUBIC_FEET_PER_HOUR, true
 	case 192:
-		return BACnetEngineeringUnits_US_GALLONS_PER_HOUR
+		return BACnetEngineeringUnits_US_GALLONS_PER_HOUR, true
 	case 193:
-		return BACnetEngineeringUnits_KILOMETERS
+		return BACnetEngineeringUnits_KILOMETERS, true
 	case 194:
-		return BACnetEngineeringUnits_MICROMETERS
+		return BACnetEngineeringUnits_MICROMETERS, true
 	case 195:
-		return BACnetEngineeringUnits_GRAMS
+		return BACnetEngineeringUnits_GRAMS, true
 	case 196:
-		return BACnetEngineeringUnits_MILLIGRAMS
+		return BACnetEngineeringUnits_MILLIGRAMS, true
 	case 197:
-		return BACnetEngineeringUnits_MILLILITERS
+		return BACnetEngineeringUnits_MILLILITERS, true
 	case 198:
-		return BACnetEngineeringUnits_MILLILITERS_PER_SECOND
+		return BACnetEngineeringUnits_MILLILITERS_PER_SECOND, true
 	case 199:
-		return BACnetEngineeringUnits_DECIBELS
+		return BACnetEngineeringUnits_DECIBELS, true
 	case 2:
-		return BACnetEngineeringUnits_MILLIAMPERES
+		return BACnetEngineeringUnits_MILLIAMPERES, true
 	case 20:
-		return BACnetEngineeringUnits_BTUS
+		return BACnetEngineeringUnits_BTUS, true
 	case 200:
-		return BACnetEngineeringUnits_DECIBELS_MILLIVOLT
+		return BACnetEngineeringUnits_DECIBELS_MILLIVOLT, true
 	case 201:
-		return BACnetEngineeringUnits_DECIBELS_VOLT
+		return BACnetEngineeringUnits_DECIBELS_VOLT, true
 	case 202:
-		return BACnetEngineeringUnits_MILLISIEMENS
+		return BACnetEngineeringUnits_MILLISIEMENS, true
 	case 203:
-		return BACnetEngineeringUnits_WATT_HOURS_REACTIVE
+		return BACnetEngineeringUnits_WATT_HOURS_REACTIVE, true
 	case 204:
-		return BACnetEngineeringUnits_KILOWATT_HOURS_REACTIVE
+		return BACnetEngineeringUnits_KILOWATT_HOURS_REACTIVE, true
 	case 205:
-		return BACnetEngineeringUnits_MEGAWATT_HOURS_REACTIVE
+		return BACnetEngineeringUnits_MEGAWATT_HOURS_REACTIVE, true
 	case 206:
-		return BACnetEngineeringUnits_MILLIMETERS_OF_WATER
+		return BACnetEngineeringUnits_MILLIMETERS_OF_WATER, true
 	case 207:
-		return BACnetEngineeringUnits_PER_MILLE
+		return BACnetEngineeringUnits_PER_MILLE, true
 	case 208:
-		return BACnetEngineeringUnits_GRAMS_PER_GRAM
+		return BACnetEngineeringUnits_GRAMS_PER_GRAM, true
 	case 209:
-		return BACnetEngineeringUnits_KILOGRAMS_PER_KILOGRAM
+		return BACnetEngineeringUnits_KILOGRAMS_PER_KILOGRAM, true
 	case 21:
-		return BACnetEngineeringUnits_THERMS
+		return BACnetEngineeringUnits_THERMS, true
 	case 210:
-		return BACnetEngineeringUnits_GRAMS_PER_KILOGRAM
+		return BACnetEngineeringUnits_GRAMS_PER_KILOGRAM, true
 	case 211:
-		return BACnetEngineeringUnits_MILLIGRAMS_PER_GRAM
+		return BACnetEngineeringUnits_MILLIGRAMS_PER_GRAM, true
 	case 212:
-		return BACnetEngineeringUnits_MILLIGRAMS_PER_KILOGRAM
+		return BACnetEngineeringUnits_MILLIGRAMS_PER_KILOGRAM, true
 	case 213:
-		return BACnetEngineeringUnits_GRAMS_PER_MILLILITER
+		return BACnetEngineeringUnits_GRAMS_PER_MILLILITER, true
 	case 214:
-		return BACnetEngineeringUnits_GRAMS_PER_LITER
+		return BACnetEngineeringUnits_GRAMS_PER_LITER, true
 	case 215:
-		return BACnetEngineeringUnits_MILLIGRAMS_PER_LITER
+		return BACnetEngineeringUnits_MILLIGRAMS_PER_LITER, true
 	case 216:
-		return BACnetEngineeringUnits_MICROGRAMS_PER_LITER
+		return BACnetEngineeringUnits_MICROGRAMS_PER_LITER, true
 	case 217:
-		return BACnetEngineeringUnits_GRAMS_PER_CUBIC_METER
+		return BACnetEngineeringUnits_GRAMS_PER_CUBIC_METER, true
 	case 218:
-		return BACnetEngineeringUnits_MILLIGRAMS_PER_CUBIC_METER
+		return BACnetEngineeringUnits_MILLIGRAMS_PER_CUBIC_METER, true
 	case 219:
-		return BACnetEngineeringUnits_MICROGRAMS_PER_CUBIC_METER
+		return BACnetEngineeringUnits_MICROGRAMS_PER_CUBIC_METER, true
 	case 22:
-		return BACnetEngineeringUnits_TON_HOURS
+		return BACnetEngineeringUnits_TON_HOURS, true
 	case 220:
-		return BACnetEngineeringUnits_NANOGRAMS_PER_CUBIC_METER
+		return BACnetEngineeringUnits_NANOGRAMS_PER_CUBIC_METER, true
 	case 221:
-		return BACnetEngineeringUnits_GRAMS_PER_CUBIC_CENTIMETER
+		return BACnetEngineeringUnits_GRAMS_PER_CUBIC_CENTIMETER, true
 	case 222:
-		return BACnetEngineeringUnits_BECQUERELS
+		return BACnetEngineeringUnits_BECQUERELS, true
 	case 223:
-		return BACnetEngineeringUnits_KILOBECQUERELS
+		return BACnetEngineeringUnits_KILOBECQUERELS, true
 	case 224:
-		return BACnetEngineeringUnits_MEGABECQUERELS
+		return BACnetEngineeringUnits_MEGABECQUERELS, true
 	case 225:
-		return BACnetEngineeringUnits_GRAY
+		return BACnetEngineeringUnits_GRAY, true
 	case 226:
-		return BACnetEngineeringUnits_MILLIGRAY
+		return BACnetEngineeringUnits_MILLIGRAY, true
 	case 227:
-		return BACnetEngineeringUnits_MICROGRAY
+		return BACnetEngineeringUnits_MICROGRAY, true
 	case 228:
-		return BACnetEngineeringUnits_SIEVERTS
+		return BACnetEngineeringUnits_SIEVERTS, true
 	case 229:
-		return BACnetEngineeringUnits_MILLISIEVERTS
+		return BACnetEngineeringUnits_MILLISIEVERTS, true
 	case 23:
-		return BACnetEngineeringUnits_JOULES_PER_KILOGRAM_DRY_AIR
+		return BACnetEngineeringUnits_JOULES_PER_KILOGRAM_DRY_AIR, true
 	case 230:
-		return BACnetEngineeringUnits_MICROSIEVERTS
+		return BACnetEngineeringUnits_MICROSIEVERTS, true
 	case 231:
-		return BACnetEngineeringUnits_MICROSIEVERTS_PER_HOUR
+		return BACnetEngineeringUnits_MICROSIEVERTS_PER_HOUR, true
 	case 232:
-		return BACnetEngineeringUnits_DECIBELS_A
+		return BACnetEngineeringUnits_DECIBELS_A, true
 	case 233:
-		return BACnetEngineeringUnits_NEPHELOMETRIC_TURBIDITY_UNIT
+		return BACnetEngineeringUnits_NEPHELOMETRIC_TURBIDITY_UNIT, true
 	case 234:
-		return BACnetEngineeringUnits_P_H
+		return BACnetEngineeringUnits_P_H, true
 	case 235:
-		return BACnetEngineeringUnits_GRAMS_PER_SQUARE_METER
+		return BACnetEngineeringUnits_GRAMS_PER_SQUARE_METER, true
 	case 236:
-		return BACnetEngineeringUnits_MINUTES_PER_DEGREE_KELVIN
+		return BACnetEngineeringUnits_MINUTES_PER_DEGREE_KELVIN, true
 	case 237:
-		return BACnetEngineeringUnits_OHM_METER_SQUARED_PER_METER
+		return BACnetEngineeringUnits_OHM_METER_SQUARED_PER_METER, true
 	case 238:
-		return BACnetEngineeringUnits_AMPERE_SECONDS
+		return BACnetEngineeringUnits_AMPERE_SECONDS, true
 	case 239:
-		return BACnetEngineeringUnits_VOLT_AMPERE_HOURS
+		return BACnetEngineeringUnits_VOLT_AMPERE_HOURS, true
 	case 24:
-		return BACnetEngineeringUnits_BTUS_PER_POUND_DRY_AIR
+		return BACnetEngineeringUnits_BTUS_PER_POUND_DRY_AIR, true
 	case 240:
-		return BACnetEngineeringUnits_KILOVOLT_AMPERE_HOURS
+		return BACnetEngineeringUnits_KILOVOLT_AMPERE_HOURS, true
 	case 241:
-		return BACnetEngineeringUnits_MEGAVOLT_AMPERE_HOURS
+		return BACnetEngineeringUnits_MEGAVOLT_AMPERE_HOURS, true
 	case 242:
-		return BACnetEngineeringUnits_VOLT_AMPERE_HOURS_REACTIVE
+		return BACnetEngineeringUnits_VOLT_AMPERE_HOURS_REACTIVE, true
 	case 243:
-		return BACnetEngineeringUnits_KILOVOLT_AMPERE_HOURS_REACTIVE
+		return BACnetEngineeringUnits_KILOVOLT_AMPERE_HOURS_REACTIVE, true
 	case 244:
-		return BACnetEngineeringUnits_MEGAVOLT_AMPERE_HOURS_REACTIVE
+		return BACnetEngineeringUnits_MEGAVOLT_AMPERE_HOURS_REACTIVE, true
 	case 245:
-		return BACnetEngineeringUnits_VOLT_SQUARE_HOURS
+		return BACnetEngineeringUnits_VOLT_SQUARE_HOURS, true
 	case 246:
-		return BACnetEngineeringUnits_AMPERE_SQUARE_HOURS
+		return BACnetEngineeringUnits_AMPERE_SQUARE_HOURS, true
 	case 247:
-		return BACnetEngineeringUnits_JOULE_PER_HOURS
+		return BACnetEngineeringUnits_JOULE_PER_HOURS, true
 	case 248:
-		return BACnetEngineeringUnits_CUBIC_FEET_PER_DAY
+		return BACnetEngineeringUnits_CUBIC_FEET_PER_DAY, true
 	case 249:
-		return BACnetEngineeringUnits_CUBIC_METERS_PER_DAY
+		return BACnetEngineeringUnits_CUBIC_METERS_PER_DAY, true
 	case 250:
-		return BACnetEngineeringUnits_WATT_HOURS_PER_CUBIC_METER
+		return BACnetEngineeringUnits_WATT_HOURS_PER_CUBIC_METER, true
 	case 251:
-		return BACnetEngineeringUnits_JOULES_PER_CUBIC_METER
+		return BACnetEngineeringUnits_JOULES_PER_CUBIC_METER, true
 	case 252:
-		return BACnetEngineeringUnits_MOLE_PERCENT
+		return BACnetEngineeringUnits_MOLE_PERCENT, true
 	case 253:
-		return BACnetEngineeringUnits_PASCAL_SECONDS
+		return BACnetEngineeringUnits_PASCAL_SECONDS, true
 	case 254:
-		return BACnetEngineeringUnits_MILLION_STANDARD_CUBIC_FEET_PER_MINUTE
+		return BACnetEngineeringUnits_MILLION_STANDARD_CUBIC_FEET_PER_MINUTE, true
 	case 28:
-		return BACnetEngineeringUnits_GRAMS_OF_WATER_PER_KILOGRAM_DRY_AIR
+		return BACnetEngineeringUnits_GRAMS_OF_WATER_PER_KILOGRAM_DRY_AIR, true
 	case 29:
-		return BACnetEngineeringUnits_PERCENT_RELATIVE_HUMIDITY
+		return BACnetEngineeringUnits_PERCENT_RELATIVE_HUMIDITY, true
 	case 3:
-		return BACnetEngineeringUnits_AMPERES
+		return BACnetEngineeringUnits_AMPERES, true
 	case 30:
-		return BACnetEngineeringUnits_MILLIMETERS
+		return BACnetEngineeringUnits_MILLIMETERS, true
 	case 31:
-		return BACnetEngineeringUnits_METERS
+		return BACnetEngineeringUnits_METERS, true
 	case 32:
-		return BACnetEngineeringUnits_INCHES
+		return BACnetEngineeringUnits_INCHES, true
 	case 33:
-		return BACnetEngineeringUnits_FEET
+		return BACnetEngineeringUnits_FEET, true
 	case 34:
-		return BACnetEngineeringUnits_WATTS_PER_SQUARE_FOOT
+		return BACnetEngineeringUnits_WATTS_PER_SQUARE_FOOT, true
 	case 35:
-		return BACnetEngineeringUnits_WATTS_PER_SQUARE_METER
+		return BACnetEngineeringUnits_WATTS_PER_SQUARE_METER, true
 	case 36:
-		return BACnetEngineeringUnits_LUMENS
+		return BACnetEngineeringUnits_LUMENS, true
 	case 37:
-		return BACnetEngineeringUnits_LUXES
+		return BACnetEngineeringUnits_LUXES, true
 	case 38:
-		return BACnetEngineeringUnits_FOOT_CANDLES
+		return BACnetEngineeringUnits_FOOT_CANDLES, true
 	case 39:
-		return BACnetEngineeringUnits_KILOGRAMS
+		return BACnetEngineeringUnits_KILOGRAMS, true
 	case 4:
-		return BACnetEngineeringUnits_OHMS
+		return BACnetEngineeringUnits_OHMS, true
 	case 40:
-		return BACnetEngineeringUnits_POUNDS_MASS
+		return BACnetEngineeringUnits_POUNDS_MASS, true
 	case 41:
-		return BACnetEngineeringUnits_TONS
+		return BACnetEngineeringUnits_TONS, true
 	case 42:
-		return BACnetEngineeringUnits_KILOGRAMS_PER_SECOND
+		return BACnetEngineeringUnits_KILOGRAMS_PER_SECOND, true
 	case 43:
-		return BACnetEngineeringUnits_KILOGRAMS_PER_MINUTE
+		return BACnetEngineeringUnits_KILOGRAMS_PER_MINUTE, true
 	case 44:
-		return BACnetEngineeringUnits_KILOGRAMS_PER_HOUR
+		return BACnetEngineeringUnits_KILOGRAMS_PER_HOUR, true
 	case 45:
-		return BACnetEngineeringUnits_POUNDS_MASS_PER_MINUTE
+		return BACnetEngineeringUnits_POUNDS_MASS_PER_MINUTE, true
 	case 46:
-		return BACnetEngineeringUnits_POUNDS_MASS_PER_HOUR
+		return BACnetEngineeringUnits_POUNDS_MASS_PER_HOUR, true
 	case 47:
-		return BACnetEngineeringUnits_WATTS
+		return BACnetEngineeringUnits_WATTS, true
 	case 47808:
-		return BACnetEngineeringUnits_STANDARD_CUBIC_FEET_PER_DAY
+		return BACnetEngineeringUnits_STANDARD_CUBIC_FEET_PER_DAY, true
 	case 47809:
-		return BACnetEngineeringUnits_MILLION_STANDARD_CUBIC_FEET_PER_DAY
+		return BACnetEngineeringUnits_MILLION_STANDARD_CUBIC_FEET_PER_DAY, true
 	case 47810:
-		return BACnetEngineeringUnits_THOUSAND_CUBIC_FEET_PER_DAY
+		return BACnetEngineeringUnits_THOUSAND_CUBIC_FEET_PER_DAY, true
 	case 47811:
-		return BACnetEngineeringUnits_THOUSAND_STANDARD_CUBIC_FEET_PER_DAY
+		return BACnetEngineeringUnits_THOUSAND_STANDARD_CUBIC_FEET_PER_DAY, true
 	case 47812:
-		return BACnetEngineeringUnits_POUNDS_MASS_PER_DAY
+		return BACnetEngineeringUnits_POUNDS_MASS_PER_DAY, true
 	case 47814:
-		return BACnetEngineeringUnits_MILLIREMS
+		return BACnetEngineeringUnits_MILLIREMS, true
 	case 47815:
-		return BACnetEngineeringUnits_MILLIREMS_PER_HOUR
+		return BACnetEngineeringUnits_MILLIREMS_PER_HOUR, true
 	case 48:
-		return BACnetEngineeringUnits_KILOWATTS
+		return BACnetEngineeringUnits_KILOWATTS, true
 	case 49:
-		return BACnetEngineeringUnits_MEGAWATTS
+		return BACnetEngineeringUnits_MEGAWATTS, true
 	case 5:
-		return BACnetEngineeringUnits_VOLTS
+		return BACnetEngineeringUnits_VOLTS, true
 	case 50:
-		return BACnetEngineeringUnits_BTUS_PER_HOUR
+		return BACnetEngineeringUnits_BTUS_PER_HOUR, true
 	case 51:
-		return BACnetEngineeringUnits_HORSEPOWER
+		return BACnetEngineeringUnits_HORSEPOWER, true
 	case 52:
-		return BACnetEngineeringUnits_TONS_REFRIGERATION
+		return BACnetEngineeringUnits_TONS_REFRIGERATION, true
 	case 53:
-		return BACnetEngineeringUnits_PASCALS
+		return BACnetEngineeringUnits_PASCALS, true
 	case 54:
-		return BACnetEngineeringUnits_KILOPASCALS
+		return BACnetEngineeringUnits_KILOPASCALS, true
 	case 55:
-		return BACnetEngineeringUnits_BARS
+		return BACnetEngineeringUnits_BARS, true
 	case 56:
-		return BACnetEngineeringUnits_POUNDS_FORCE_PER_SQUARE_INCH
+		return BACnetEngineeringUnits_POUNDS_FORCE_PER_SQUARE_INCH, true
 	case 57:
-		return BACnetEngineeringUnits_CENTIMETERS_OF_WATER
+		return BACnetEngineeringUnits_CENTIMETERS_OF_WATER, true
 	case 58:
-		return BACnetEngineeringUnits_INCHES_OF_WATER
+		return BACnetEngineeringUnits_INCHES_OF_WATER, true
 	case 59:
-		return BACnetEngineeringUnits_MILLIMETERS_OF_MERCURY
+		return BACnetEngineeringUnits_MILLIMETERS_OF_MERCURY, true
 	case 6:
-		return BACnetEngineeringUnits_KILOVOLTS
+		return BACnetEngineeringUnits_KILOVOLTS, true
 	case 60:
-		return BACnetEngineeringUnits_CENTIMETERS_OF_MERCURY
+		return BACnetEngineeringUnits_CENTIMETERS_OF_MERCURY, true
 	case 61:
-		return BACnetEngineeringUnits_INCHES_OF_MERCURY
+		return BACnetEngineeringUnits_INCHES_OF_MERCURY, true
 	case 62:
-		return BACnetEngineeringUnits_DEGREES_CELSIUS
+		return BACnetEngineeringUnits_DEGREES_CELSIUS, true
 	case 63:
-		return BACnetEngineeringUnits_DEGREES_KELVIN
+		return BACnetEngineeringUnits_DEGREES_KELVIN, true
 	case 64:
-		return BACnetEngineeringUnits_DEGREES_FAHRENHEIT
+		return BACnetEngineeringUnits_DEGREES_FAHRENHEIT, true
 	case 65:
-		return BACnetEngineeringUnits_DEGREE_DAYS_CELSIUS
+		return BACnetEngineeringUnits_DEGREE_DAYS_CELSIUS, true
 	case 66:
-		return BACnetEngineeringUnits_DEGREE_DAYS_FAHRENHEIT
+		return BACnetEngineeringUnits_DEGREE_DAYS_FAHRENHEIT, true
 	case 67:
-		return BACnetEngineeringUnits_YEARS
+		return BACnetEngineeringUnits_YEARS, true
 	case 68:
-		return BACnetEngineeringUnits_MONTHS
+		return BACnetEngineeringUnits_MONTHS, true
 	case 69:
-		return BACnetEngineeringUnits_WEEKS
+		return BACnetEngineeringUnits_WEEKS, true
 	case 7:
-		return BACnetEngineeringUnits_MEGAVOLTS
+		return BACnetEngineeringUnits_MEGAVOLTS, true
 	case 70:
-		return BACnetEngineeringUnits_DAYS
+		return BACnetEngineeringUnits_DAYS, true
 	case 71:
-		return BACnetEngineeringUnits_HOURS
+		return BACnetEngineeringUnits_HOURS, true
 	case 72:
-		return BACnetEngineeringUnits_MINUTES
+		return BACnetEngineeringUnits_MINUTES, true
 	case 73:
-		return BACnetEngineeringUnits_SECONDS
+		return BACnetEngineeringUnits_SECONDS, true
 	case 74:
-		return BACnetEngineeringUnits_METERS_PER_SECOND
+		return BACnetEngineeringUnits_METERS_PER_SECOND, true
 	case 75:
-		return BACnetEngineeringUnits_KILOMETERS_PER_HOUR
+		return BACnetEngineeringUnits_KILOMETERS_PER_HOUR, true
 	case 76:
-		return BACnetEngineeringUnits_FEET_PER_SECOND
+		return BACnetEngineeringUnits_FEET_PER_SECOND, true
 	case 77:
-		return BACnetEngineeringUnits_FEET_PER_MINUTE
+		return BACnetEngineeringUnits_FEET_PER_MINUTE, true
 	case 78:
-		return BACnetEngineeringUnits_MILES_PER_HOUR
+		return BACnetEngineeringUnits_MILES_PER_HOUR, true
 	case 79:
-		return BACnetEngineeringUnits_CUBIC_FEET
+		return BACnetEngineeringUnits_CUBIC_FEET, true
 	case 8:
-		return BACnetEngineeringUnits_VOLT_AMPERES
+		return BACnetEngineeringUnits_VOLT_AMPERES, true
 	case 80:
-		return BACnetEngineeringUnits_CUBIC_METERS
+		return BACnetEngineeringUnits_CUBIC_METERS, true
 	case 81:
-		return BACnetEngineeringUnits_IMPERIAL_GALLONS
+		return BACnetEngineeringUnits_IMPERIAL_GALLONS, true
 	case 82:
-		return BACnetEngineeringUnits_LITERS
+		return BACnetEngineeringUnits_LITERS, true
 	case 83:
-		return BACnetEngineeringUnits_US_GALLONS
+		return BACnetEngineeringUnits_US_GALLONS, true
 	case 84:
-		return BACnetEngineeringUnits_CUBIC_FEET_PER_MINUTE
+		return BACnetEngineeringUnits_CUBIC_FEET_PER_MINUTE, true
 	case 85:
-		return BACnetEngineeringUnits_CUBIC_METERS_PER_SECOND
+		return BACnetEngineeringUnits_CUBIC_METERS_PER_SECOND, true
 	case 86:
-		return BACnetEngineeringUnits_IMPERIAL_GALLONS_PER_MINUTE
+		return BACnetEngineeringUnits_IMPERIAL_GALLONS_PER_MINUTE, true
 	case 87:
-		return BACnetEngineeringUnits_LITERS_PER_SECOND
+		return BACnetEngineeringUnits_LITERS_PER_SECOND, true
 	case 88:
-		return BACnetEngineeringUnits_LITERS_PER_MINUTE
+		return BACnetEngineeringUnits_LITERS_PER_MINUTE, true
 	case 89:
-		return BACnetEngineeringUnits_US_GALLONS_PER_MINUTE
+		return BACnetEngineeringUnits_US_GALLONS_PER_MINUTE, true
 	case 9:
-		return BACnetEngineeringUnits_KILOVOLT_AMPERES
+		return BACnetEngineeringUnits_KILOVOLT_AMPERES, true
 	case 90:
-		return BACnetEngineeringUnits_DEGREES_ANGULAR
+		return BACnetEngineeringUnits_DEGREES_ANGULAR, true
 	case 91:
-		return BACnetEngineeringUnits_DEGREES_CELSIUS_PER_HOUR
+		return BACnetEngineeringUnits_DEGREES_CELSIUS_PER_HOUR, true
 	case 92:
-		return BACnetEngineeringUnits_DEGREES_CELSIUS_PER_MINUTE
+		return BACnetEngineeringUnits_DEGREES_CELSIUS_PER_MINUTE, true
 	case 93:
-		return BACnetEngineeringUnits_DEGREES_FAHRENHEIT_PER_HOUR
+		return BACnetEngineeringUnits_DEGREES_FAHRENHEIT_PER_HOUR, true
 	case 94:
-		return BACnetEngineeringUnits_DEGREES_FAHRENHEIT_PER_MINUTE
+		return BACnetEngineeringUnits_DEGREES_FAHRENHEIT_PER_MINUTE, true
 	case 95:
-		return BACnetEngineeringUnits_NO_UNITS
+		return BACnetEngineeringUnits_NO_UNITS, true
 	case 96:
-		return BACnetEngineeringUnits_PARTS_PER_MILLION
+		return BACnetEngineeringUnits_PARTS_PER_MILLION, true
 	case 97:
-		return BACnetEngineeringUnits_PARTS_PER_BILLION
+		return BACnetEngineeringUnits_PARTS_PER_BILLION, true
 	case 98:
-		return BACnetEngineeringUnits_PERCENT
+		return BACnetEngineeringUnits_PERCENT, true
 	case 99:
-		return BACnetEngineeringUnits_PERCENT_PER_SECOND
+		return BACnetEngineeringUnits_PERCENT_PER_SECOND, true
 	}
-	return 0
+	return 0, false
 }
 
 func BACnetEngineeringUnitsByName(value string) (enum BACnetEngineeringUnits, ok bool) {
-	ok = true
 	switch value {
 	case "SQUARE_METERS":
-		enum = BACnetEngineeringUnits_SQUARE_METERS
+		return BACnetEngineeringUnits_SQUARE_METERS, true
 	case "VENDOR_PROPRIETARY_VALUE":
-		enum = BACnetEngineeringUnits_VENDOR_PROPRIETARY_VALUE
+		return BACnetEngineeringUnits_VENDOR_PROPRIETARY_VALUE, true
 	case "SQUARE_FEET":
-		enum = BACnetEngineeringUnits_SQUARE_FEET
+		return BACnetEngineeringUnits_SQUARE_FEET, true
 	case "MEGAVOLT_AMPERES":
-		enum = BACnetEngineeringUnits_MEGAVOLT_AMPERES
+		return BACnetEngineeringUnits_MEGAVOLT_AMPERES, true
 	case "PER_MINUTE":
-		enum = BACnetEngineeringUnits_PER_MINUTE
+		return BACnetEngineeringUnits_PER_MINUTE, true
 	case "PER_SECOND":
-		enum = BACnetEngineeringUnits_PER_SECOND
+		return BACnetEngineeringUnits_PER_SECOND, true
 	case "PSI_PER_DEGREE_FAHRENHEIT":
-		enum = BACnetEngineeringUnits_PSI_PER_DEGREE_FAHRENHEIT
+		return BACnetEngineeringUnits_PSI_PER_DEGREE_FAHRENHEIT, true
 	case "RADIANS":
-		enum = BACnetEngineeringUnits_RADIANS
+		return BACnetEngineeringUnits_RADIANS, true
 	case "REVOLUTIONS_PER_MINUTE":
-		enum = BACnetEngineeringUnits_REVOLUTIONS_PER_MINUTE
+		return BACnetEngineeringUnits_REVOLUTIONS_PER_MINUTE, true
 	case "CURRENCY1":
-		enum = BACnetEngineeringUnits_CURRENCY1
+		return BACnetEngineeringUnits_CURRENCY1, true
 	case "CURRENCY2":
-		enum = BACnetEngineeringUnits_CURRENCY2
+		return BACnetEngineeringUnits_CURRENCY2, true
 	case "CURRENCY3":
-		enum = BACnetEngineeringUnits_CURRENCY3
+		return BACnetEngineeringUnits_CURRENCY3, true
 	case "CURRENCY4":
-		enum = BACnetEngineeringUnits_CURRENCY4
+		return BACnetEngineeringUnits_CURRENCY4, true
 	case "CURRENCY5":
-		enum = BACnetEngineeringUnits_CURRENCY5
+		return BACnetEngineeringUnits_CURRENCY5, true
 	case "VOLT_AMPERES_REACTIVE":
-		enum = BACnetEngineeringUnits_VOLT_AMPERES_REACTIVE
+		return BACnetEngineeringUnits_VOLT_AMPERES_REACTIVE, true
 	case "CURRENCY6":
-		enum = BACnetEngineeringUnits_CURRENCY6
+		return BACnetEngineeringUnits_CURRENCY6, true
 	case "CURRENCY7":
-		enum = BACnetEngineeringUnits_CURRENCY7
+		return BACnetEngineeringUnits_CURRENCY7, true
 	case "CURRENCY8":
-		enum = BACnetEngineeringUnits_CURRENCY8
+		return BACnetEngineeringUnits_CURRENCY8, true
 	case "CURRENCY9":
-		enum = BACnetEngineeringUnits_CURRENCY9
+		return BACnetEngineeringUnits_CURRENCY9, true
 	case "CURRENCY10":
-		enum = BACnetEngineeringUnits_CURRENCY10
+		return BACnetEngineeringUnits_CURRENCY10, true
 	case "SQUARE_INCHES":
-		enum = BACnetEngineeringUnits_SQUARE_INCHES
+		return BACnetEngineeringUnits_SQUARE_INCHES, true
 	case "SQUARE_CENTIMETERS":
-		enum = BACnetEngineeringUnits_SQUARE_CENTIMETERS
+		return BACnetEngineeringUnits_SQUARE_CENTIMETERS, true
 	case "BTUS_PER_POUND":
-		enum = BACnetEngineeringUnits_BTUS_PER_POUND
+		return BACnetEngineeringUnits_BTUS_PER_POUND, true
 	case "CENTIMETERS":
-		enum = BACnetEngineeringUnits_CENTIMETERS
+		return BACnetEngineeringUnits_CENTIMETERS, true
 	case "POUNDS_MASS_PER_SECOND":
-		enum = BACnetEngineeringUnits_POUNDS_MASS_PER_SECOND
+		return BACnetEngineeringUnits_POUNDS_MASS_PER_SECOND, true
 	case "KILOVOLT_AMPERES_REACTIVE":
-		enum = BACnetEngineeringUnits_KILOVOLT_AMPERES_REACTIVE
+		return BACnetEngineeringUnits_KILOVOLT_AMPERES_REACTIVE, true
 	case "DELTA_DEGREES_FAHRENHEIT":
-		enum = BACnetEngineeringUnits_DELTA_DEGREES_FAHRENHEIT
+		return BACnetEngineeringUnits_DELTA_DEGREES_FAHRENHEIT, true
 	case "DELTA_DEGREES_KELVIN":
-		enum = BACnetEngineeringUnits_DELTA_DEGREES_KELVIN
+		return BACnetEngineeringUnits_DELTA_DEGREES_KELVIN, true
 	case "KILOHMS":
-		enum = BACnetEngineeringUnits_KILOHMS
+		return BACnetEngineeringUnits_KILOHMS, true
 	case "MEGOHMS":
-		enum = BACnetEngineeringUnits_MEGOHMS
+		return BACnetEngineeringUnits_MEGOHMS, true
 	case "MILLIVOLTS":
-		enum = BACnetEngineeringUnits_MILLIVOLTS
+		return BACnetEngineeringUnits_MILLIVOLTS, true
 	case "KILOJOULES_PER_KILOGRAM":
-		enum = BACnetEngineeringUnits_KILOJOULES_PER_KILOGRAM
+		return BACnetEngineeringUnits_KILOJOULES_PER_KILOGRAM, true
 	case "MEGAJOULES":
-		enum = BACnetEngineeringUnits_MEGAJOULES
+		return BACnetEngineeringUnits_MEGAJOULES, true
 	case "MEGAVOLT_AMPERES_REACTIVE":
-		enum = BACnetEngineeringUnits_MEGAVOLT_AMPERES_REACTIVE
+		return BACnetEngineeringUnits_MEGAVOLT_AMPERES_REACTIVE, true
 	case "IWATTS":
-		enum = BACnetEngineeringUnits_IWATTS
+		return BACnetEngineeringUnits_IWATTS, true
 	case "HECTOPASCALS":
-		enum = BACnetEngineeringUnits_HECTOPASCALS
+		return BACnetEngineeringUnits_HECTOPASCALS, true
 	case "MILLIBARS":
-		enum = BACnetEngineeringUnits_MILLIBARS
+		return BACnetEngineeringUnits_MILLIBARS, true
 	case "CUBIC_METERS_PER_HOUR":
-		enum = BACnetEngineeringUnits_CUBIC_METERS_PER_HOUR
+		return BACnetEngineeringUnits_CUBIC_METERS_PER_HOUR, true
 	case "LITERS_PER_HOUR":
-		enum = BACnetEngineeringUnits_LITERS_PER_HOUR
+		return BACnetEngineeringUnits_LITERS_PER_HOUR, true
 	case "KILOWATT_HOURS_PER_SQUARE_METER":
-		enum = BACnetEngineeringUnits_KILOWATT_HOURS_PER_SQUARE_METER
+		return BACnetEngineeringUnits_KILOWATT_HOURS_PER_SQUARE_METER, true
 	case "KILOWATT_HOURS_PER_SQUARE_FOOT":
-		enum = BACnetEngineeringUnits_KILOWATT_HOURS_PER_SQUARE_FOOT
+		return BACnetEngineeringUnits_KILOWATT_HOURS_PER_SQUARE_FOOT, true
 	case "MEGAJOULES_PER_SQUARE_METER":
-		enum = BACnetEngineeringUnits_MEGAJOULES_PER_SQUARE_METER
+		return BACnetEngineeringUnits_MEGAJOULES_PER_SQUARE_METER, true
 	case "DEGREES_PHASE":
-		enum = BACnetEngineeringUnits_DEGREES_PHASE
+		return BACnetEngineeringUnits_DEGREES_PHASE, true
 	case "MEGAJOULES_PER_SQUARE_FOOT":
-		enum = BACnetEngineeringUnits_MEGAJOULES_PER_SQUARE_FOOT
+		return BACnetEngineeringUnits_MEGAJOULES_PER_SQUARE_FOOT, true
 	case "WATTS_PER_SQUARE_METER_DEGREE_KELVIN":
-		enum = BACnetEngineeringUnits_WATTS_PER_SQUARE_METER_DEGREE_KELVIN
+		return BACnetEngineeringUnits_WATTS_PER_SQUARE_METER_DEGREE_KELVIN, true
 	case "CUBIC_FEET_PER_SECOND":
-		enum = BACnetEngineeringUnits_CUBIC_FEET_PER_SECOND
+		return BACnetEngineeringUnits_CUBIC_FEET_PER_SECOND, true
 	case "PERCENT_OBSCURATION_PER_FOOT":
-		enum = BACnetEngineeringUnits_PERCENT_OBSCURATION_PER_FOOT
+		return BACnetEngineeringUnits_PERCENT_OBSCURATION_PER_FOOT, true
 	case "PERCENT_OBSCURATION_PER_METER":
-		enum = BACnetEngineeringUnits_PERCENT_OBSCURATION_PER_METER
+		return BACnetEngineeringUnits_PERCENT_OBSCURATION_PER_METER, true
 	case "MILLIOHMS":
-		enum = BACnetEngineeringUnits_MILLIOHMS
+		return BACnetEngineeringUnits_MILLIOHMS, true
 	case "MEGAWATT_HOURS":
-		enum = BACnetEngineeringUnits_MEGAWATT_HOURS
+		return BACnetEngineeringUnits_MEGAWATT_HOURS, true
 	case "KILO_BTUS":
-		enum = BACnetEngineeringUnits_KILO_BTUS
+		return BACnetEngineeringUnits_KILO_BTUS, true
 	case "MEGA_BTUS":
-		enum = BACnetEngineeringUnits_MEGA_BTUS
+		return BACnetEngineeringUnits_MEGA_BTUS, true
 	case "KILOJOULES_PER_KILOGRAM_DRY_AIR":
-		enum = BACnetEngineeringUnits_KILOJOULES_PER_KILOGRAM_DRY_AIR
+		return BACnetEngineeringUnits_KILOJOULES_PER_KILOGRAM_DRY_AIR, true
 	case "POWER_FACTOR":
-		enum = BACnetEngineeringUnits_POWER_FACTOR
+		return BACnetEngineeringUnits_POWER_FACTOR, true
 	case "MEGAJOULES_PER_KILOGRAM_DRY_AIR":
-		enum = BACnetEngineeringUnits_MEGAJOULES_PER_KILOGRAM_DRY_AIR
+		return BACnetEngineeringUnits_MEGAJOULES_PER_KILOGRAM_DRY_AIR, true
 	case "GRAMS_PER_SECOND":
-		enum = BACnetEngineeringUnits_GRAMS_PER_SECOND
+		return BACnetEngineeringUnits_GRAMS_PER_SECOND, true
 	case "GRAMS_PER_MINUTE":
-		enum = BACnetEngineeringUnits_GRAMS_PER_MINUTE
+		return BACnetEngineeringUnits_GRAMS_PER_MINUTE, true
 	case "TONS_PER_HOUR":
-		enum = BACnetEngineeringUnits_TONS_PER_HOUR
+		return BACnetEngineeringUnits_TONS_PER_HOUR, true
 	case "KILO_BTUS_PER_HOUR":
-		enum = BACnetEngineeringUnits_KILO_BTUS_PER_HOUR
+		return BACnetEngineeringUnits_KILO_BTUS_PER_HOUR, true
 	case "HUNDREDTHS_SECONDS":
-		enum = BACnetEngineeringUnits_HUNDREDTHS_SECONDS
+		return BACnetEngineeringUnits_HUNDREDTHS_SECONDS, true
 	case "MILLISECONDS":
-		enum = BACnetEngineeringUnits_MILLISECONDS
+		return BACnetEngineeringUnits_MILLISECONDS, true
 	case "JOULES":
-		enum = BACnetEngineeringUnits_JOULES
+		return BACnetEngineeringUnits_JOULES, true
 	case "NEWTON_METERS":
-		enum = BACnetEngineeringUnits_NEWTON_METERS
+		return BACnetEngineeringUnits_NEWTON_METERS, true
 	case "MILLIMETERS_PER_SECOND":
-		enum = BACnetEngineeringUnits_MILLIMETERS_PER_SECOND
+		return BACnetEngineeringUnits_MILLIMETERS_PER_SECOND, true
 	case "MILLIMETERS_PER_MINUTE":
-		enum = BACnetEngineeringUnits_MILLIMETERS_PER_MINUTE
+		return BACnetEngineeringUnits_MILLIMETERS_PER_MINUTE, true
 	case "METERS_PER_MINUTE":
-		enum = BACnetEngineeringUnits_METERS_PER_MINUTE
+		return BACnetEngineeringUnits_METERS_PER_MINUTE, true
 	case "METERS_PER_HOUR":
-		enum = BACnetEngineeringUnits_METERS_PER_HOUR
+		return BACnetEngineeringUnits_METERS_PER_HOUR, true
 	case "CUBIC_METERS_PER_MINUTE":
-		enum = BACnetEngineeringUnits_CUBIC_METERS_PER_MINUTE
+		return BACnetEngineeringUnits_CUBIC_METERS_PER_MINUTE, true
 	case "METERS_PER_SECOND_PER_SECOND":
-		enum = BACnetEngineeringUnits_METERS_PER_SECOND_PER_SECOND
+		return BACnetEngineeringUnits_METERS_PER_SECOND_PER_SECOND, true
 	case "AMPERES_PER_METER":
-		enum = BACnetEngineeringUnits_AMPERES_PER_METER
+		return BACnetEngineeringUnits_AMPERES_PER_METER, true
 	case "AMPERES_PER_SQUARE_METER":
-		enum = BACnetEngineeringUnits_AMPERES_PER_SQUARE_METER
+		return BACnetEngineeringUnits_AMPERES_PER_SQUARE_METER, true
 	case "AMPERE_SQUARE_METERS":
-		enum = BACnetEngineeringUnits_AMPERE_SQUARE_METERS
+		return BACnetEngineeringUnits_AMPERE_SQUARE_METERS, true
 	case "KILOJOULES":
-		enum = BACnetEngineeringUnits_KILOJOULES
+		return BACnetEngineeringUnits_KILOJOULES, true
 	case "FARADS":
-		enum = BACnetEngineeringUnits_FARADS
+		return BACnetEngineeringUnits_FARADS, true
 	case "HENRYS":
-		enum = BACnetEngineeringUnits_HENRYS
+		return BACnetEngineeringUnits_HENRYS, true
 	case "OHM_METERS":
-		enum = BACnetEngineeringUnits_OHM_METERS
+		return BACnetEngineeringUnits_OHM_METERS, true
 	case "SIEMENS":
-		enum = BACnetEngineeringUnits_SIEMENS
+		return BACnetEngineeringUnits_SIEMENS, true
 	case "SIEMENS_PER_METER":
-		enum = BACnetEngineeringUnits_SIEMENS_PER_METER
+		return BACnetEngineeringUnits_SIEMENS_PER_METER, true
 	case "TESLAS":
-		enum = BACnetEngineeringUnits_TESLAS
+		return BACnetEngineeringUnits_TESLAS, true
 	case "VOLTS_PER_DEGREE_KELVIN":
-		enum = BACnetEngineeringUnits_VOLTS_PER_DEGREE_KELVIN
+		return BACnetEngineeringUnits_VOLTS_PER_DEGREE_KELVIN, true
 	case "VOLTS_PER_METER":
-		enum = BACnetEngineeringUnits_VOLTS_PER_METER
+		return BACnetEngineeringUnits_VOLTS_PER_METER, true
 	case "WEBERS":
-		enum = BACnetEngineeringUnits_WEBERS
+		return BACnetEngineeringUnits_WEBERS, true
 	case "CANDELAS":
-		enum = BACnetEngineeringUnits_CANDELAS
+		return BACnetEngineeringUnits_CANDELAS, true
 	case "WATT_HOURS":
-		enum = BACnetEngineeringUnits_WATT_HOURS
+		return BACnetEngineeringUnits_WATT_HOURS, true
 	case "CANDELAS_PER_SQUARE_METER":
-		enum = BACnetEngineeringUnits_CANDELAS_PER_SQUARE_METER
+		return BACnetEngineeringUnits_CANDELAS_PER_SQUARE_METER, true
 	case "DEGREES_KELVIN_PER_HOUR":
-		enum = BACnetEngineeringUnits_DEGREES_KELVIN_PER_HOUR
+		return BACnetEngineeringUnits_DEGREES_KELVIN_PER_HOUR, true
 	case "DEGREES_KELVIN_PER_MINUTE":
-		enum = BACnetEngineeringUnits_DEGREES_KELVIN_PER_MINUTE
+		return BACnetEngineeringUnits_DEGREES_KELVIN_PER_MINUTE, true
 	case "JOULE_SECONDS":
-		enum = BACnetEngineeringUnits_JOULE_SECONDS
+		return BACnetEngineeringUnits_JOULE_SECONDS, true
 	case "RADIANS_PER_SECOND":
-		enum = BACnetEngineeringUnits_RADIANS_PER_SECOND
+		return BACnetEngineeringUnits_RADIANS_PER_SECOND, true
 	case "SQUARE_METERS_PER_NEWTON":
-		enum = BACnetEngineeringUnits_SQUARE_METERS_PER_NEWTON
+		return BACnetEngineeringUnits_SQUARE_METERS_PER_NEWTON, true
 	case "KILOGRAMS_PER_CUBIC_METER":
-		enum = BACnetEngineeringUnits_KILOGRAMS_PER_CUBIC_METER
+		return BACnetEngineeringUnits_KILOGRAMS_PER_CUBIC_METER, true
 	case "NEWTON_SECONDS":
-		enum = BACnetEngineeringUnits_NEWTON_SECONDS
+		return BACnetEngineeringUnits_NEWTON_SECONDS, true
 	case "NEWTONS_PER_METER":
-		enum = BACnetEngineeringUnits_NEWTONS_PER_METER
+		return BACnetEngineeringUnits_NEWTONS_PER_METER, true
 	case "WATTS_PER_METER_PER_DEGREE_KELVIN":
-		enum = BACnetEngineeringUnits_WATTS_PER_METER_PER_DEGREE_KELVIN
+		return BACnetEngineeringUnits_WATTS_PER_METER_PER_DEGREE_KELVIN, true
 	case "KILOWATT_HOURS":
-		enum = BACnetEngineeringUnits_KILOWATT_HOURS
+		return BACnetEngineeringUnits_KILOWATT_HOURS, true
 	case "MICROSIEMENS":
-		enum = BACnetEngineeringUnits_MICROSIEMENS
+		return BACnetEngineeringUnits_MICROSIEMENS, true
 	case "CUBIC_FEET_PER_HOUR":
-		enum = BACnetEngineeringUnits_CUBIC_FEET_PER_HOUR
+		return BACnetEngineeringUnits_CUBIC_FEET_PER_HOUR, true
 	case "US_GALLONS_PER_HOUR":
-		enum = BACnetEngineeringUnits_US_GALLONS_PER_HOUR
+		return BACnetEngineeringUnits_US_GALLONS_PER_HOUR, true
 	case "KILOMETERS":
-		enum = BACnetEngineeringUnits_KILOMETERS
+		return BACnetEngineeringUnits_KILOMETERS, true
 	case "MICROMETERS":
-		enum = BACnetEngineeringUnits_MICROMETERS
+		return BACnetEngineeringUnits_MICROMETERS, true
 	case "GRAMS":
-		enum = BACnetEngineeringUnits_GRAMS
+		return BACnetEngineeringUnits_GRAMS, true
 	case "MILLIGRAMS":
-		enum = BACnetEngineeringUnits_MILLIGRAMS
+		return BACnetEngineeringUnits_MILLIGRAMS, true
 	case "MILLILITERS":
-		enum = BACnetEngineeringUnits_MILLILITERS
+		return BACnetEngineeringUnits_MILLILITERS, true
 	case "MILLILITERS_PER_SECOND":
-		enum = BACnetEngineeringUnits_MILLILITERS_PER_SECOND
+		return BACnetEngineeringUnits_MILLILITERS_PER_SECOND, true
 	case "DECIBELS":
-		enum = BACnetEngineeringUnits_DECIBELS
+		return BACnetEngineeringUnits_DECIBELS, true
 	case "MILLIAMPERES":
-		enum = BACnetEngineeringUnits_MILLIAMPERES
+		return BACnetEngineeringUnits_MILLIAMPERES, true
 	case "BTUS":
-		enum = BACnetEngineeringUnits_BTUS
+		return BACnetEngineeringUnits_BTUS, true
 	case "DECIBELS_MILLIVOLT":
-		enum = BACnetEngineeringUnits_DECIBELS_MILLIVOLT
+		return BACnetEngineeringUnits_DECIBELS_MILLIVOLT, true
 	case "DECIBELS_VOLT":
-		enum = BACnetEngineeringUnits_DECIBELS_VOLT
+		return BACnetEngineeringUnits_DECIBELS_VOLT, true
 	case "MILLISIEMENS":
-		enum = BACnetEngineeringUnits_MILLISIEMENS
+		return BACnetEngineeringUnits_MILLISIEMENS, true
 	case "WATT_HOURS_REACTIVE":
-		enum = BACnetEngineeringUnits_WATT_HOURS_REACTIVE
+		return BACnetEngineeringUnits_WATT_HOURS_REACTIVE, true
 	case "KILOWATT_HOURS_REACTIVE":
-		enum = BACnetEngineeringUnits_KILOWATT_HOURS_REACTIVE
+		return BACnetEngineeringUnits_KILOWATT_HOURS_REACTIVE, true
 	case "MEGAWATT_HOURS_REACTIVE":
-		enum = BACnetEngineeringUnits_MEGAWATT_HOURS_REACTIVE
+		return BACnetEngineeringUnits_MEGAWATT_HOURS_REACTIVE, true
 	case "MILLIMETERS_OF_WATER":
-		enum = BACnetEngineeringUnits_MILLIMETERS_OF_WATER
+		return BACnetEngineeringUnits_MILLIMETERS_OF_WATER, true
 	case "PER_MILLE":
-		enum = BACnetEngineeringUnits_PER_MILLE
+		return BACnetEngineeringUnits_PER_MILLE, true
 	case "GRAMS_PER_GRAM":
-		enum = BACnetEngineeringUnits_GRAMS_PER_GRAM
+		return BACnetEngineeringUnits_GRAMS_PER_GRAM, true
 	case "KILOGRAMS_PER_KILOGRAM":
-		enum = BACnetEngineeringUnits_KILOGRAMS_PER_KILOGRAM
+		return BACnetEngineeringUnits_KILOGRAMS_PER_KILOGRAM, true
 	case "THERMS":
-		enum = BACnetEngineeringUnits_THERMS
+		return BACnetEngineeringUnits_THERMS, true
 	case "GRAMS_PER_KILOGRAM":
-		enum = BACnetEngineeringUnits_GRAMS_PER_KILOGRAM
+		return BACnetEngineeringUnits_GRAMS_PER_KILOGRAM, true
 	case "MILLIGRAMS_PER_GRAM":
-		enum = BACnetEngineeringUnits_MILLIGRAMS_PER_GRAM
+		return BACnetEngineeringUnits_MILLIGRAMS_PER_GRAM, true
 	case "MILLIGRAMS_PER_KILOGRAM":
-		enum = BACnetEngineeringUnits_MILLIGRAMS_PER_KILOGRAM
+		return BACnetEngineeringUnits_MILLIGRAMS_PER_KILOGRAM, true
 	case "GRAMS_PER_MILLILITER":
-		enum = BACnetEngineeringUnits_GRAMS_PER_MILLILITER
+		return BACnetEngineeringUnits_GRAMS_PER_MILLILITER, true
 	case "GRAMS_PER_LITER":
-		enum = BACnetEngineeringUnits_GRAMS_PER_LITER
+		return BACnetEngineeringUnits_GRAMS_PER_LITER, true
 	case "MILLIGRAMS_PER_LITER":
-		enum = BACnetEngineeringUnits_MILLIGRAMS_PER_LITER
+		return BACnetEngineeringUnits_MILLIGRAMS_PER_LITER, true
 	case "MICROGRAMS_PER_LITER":
-		enum = BACnetEngineeringUnits_MICROGRAMS_PER_LITER
+		return BACnetEngineeringUnits_MICROGRAMS_PER_LITER, true
 	case "GRAMS_PER_CUBIC_METER":
-		enum = BACnetEngineeringUnits_GRAMS_PER_CUBIC_METER
+		return BACnetEngineeringUnits_GRAMS_PER_CUBIC_METER, true
 	case "MILLIGRAMS_PER_CUBIC_METER":
-		enum = BACnetEngineeringUnits_MILLIGRAMS_PER_CUBIC_METER
+		return BACnetEngineeringUnits_MILLIGRAMS_PER_CUBIC_METER, true
 	case "MICROGRAMS_PER_CUBIC_METER":
-		enum = BACnetEngineeringUnits_MICROGRAMS_PER_CUBIC_METER
+		return BACnetEngineeringUnits_MICROGRAMS_PER_CUBIC_METER, true
 	case "TON_HOURS":
-		enum = BACnetEngineeringUnits_TON_HOURS
+		return BACnetEngineeringUnits_TON_HOURS, true
 	case "NANOGRAMS_PER_CUBIC_METER":
-		enum = BACnetEngineeringUnits_NANOGRAMS_PER_CUBIC_METER
+		return BACnetEngineeringUnits_NANOGRAMS_PER_CUBIC_METER, true
 	case "GRAMS_PER_CUBIC_CENTIMETER":
-		enum = BACnetEngineeringUnits_GRAMS_PER_CUBIC_CENTIMETER
+		return BACnetEngineeringUnits_GRAMS_PER_CUBIC_CENTIMETER, true
 	case "BECQUERELS":
-		enum = BACnetEngineeringUnits_BECQUERELS
+		return BACnetEngineeringUnits_BECQUERELS, true
 	case "KILOBECQUERELS":
-		enum = BACnetEngineeringUnits_KILOBECQUERELS
+		return BACnetEngineeringUnits_KILOBECQUERELS, true
 	case "MEGABECQUERELS":
-		enum = BACnetEngineeringUnits_MEGABECQUERELS
+		return BACnetEngineeringUnits_MEGABECQUERELS, true
 	case "GRAY":
-		enum = BACnetEngineeringUnits_GRAY
+		return BACnetEngineeringUnits_GRAY, true
 	case "MILLIGRAY":
-		enum = BACnetEngineeringUnits_MILLIGRAY
+		return BACnetEngineeringUnits_MILLIGRAY, true
 	case "MICROGRAY":
-		enum = BACnetEngineeringUnits_MICROGRAY
+		return BACnetEngineeringUnits_MICROGRAY, true
 	case "SIEVERTS":
-		enum = BACnetEngineeringUnits_SIEVERTS
+		return BACnetEngineeringUnits_SIEVERTS, true
 	case "MILLISIEVERTS":
-		enum = BACnetEngineeringUnits_MILLISIEVERTS
+		return BACnetEngineeringUnits_MILLISIEVERTS, true
 	case "JOULES_PER_KILOGRAM_DRY_AIR":
-		enum = BACnetEngineeringUnits_JOULES_PER_KILOGRAM_DRY_AIR
+		return BACnetEngineeringUnits_JOULES_PER_KILOGRAM_DRY_AIR, true
 	case "MICROSIEVERTS":
-		enum = BACnetEngineeringUnits_MICROSIEVERTS
+		return BACnetEngineeringUnits_MICROSIEVERTS, true
 	case "MICROSIEVERTS_PER_HOUR":
-		enum = BACnetEngineeringUnits_MICROSIEVERTS_PER_HOUR
+		return BACnetEngineeringUnits_MICROSIEVERTS_PER_HOUR, true
 	case "DECIBELS_A":
-		enum = BACnetEngineeringUnits_DECIBELS_A
+		return BACnetEngineeringUnits_DECIBELS_A, true
 	case "NEPHELOMETRIC_TURBIDITY_UNIT":
-		enum = BACnetEngineeringUnits_NEPHELOMETRIC_TURBIDITY_UNIT
+		return BACnetEngineeringUnits_NEPHELOMETRIC_TURBIDITY_UNIT, true
 	case "P_H":
-		enum = BACnetEngineeringUnits_P_H
+		return BACnetEngineeringUnits_P_H, true
 	case "GRAMS_PER_SQUARE_METER":
-		enum = BACnetEngineeringUnits_GRAMS_PER_SQUARE_METER
+		return BACnetEngineeringUnits_GRAMS_PER_SQUARE_METER, true
 	case "MINUTES_PER_DEGREE_KELVIN":
-		enum = BACnetEngineeringUnits_MINUTES_PER_DEGREE_KELVIN
+		return BACnetEngineeringUnits_MINUTES_PER_DEGREE_KELVIN, true
 	case "OHM_METER_SQUARED_PER_METER":
-		enum = BACnetEngineeringUnits_OHM_METER_SQUARED_PER_METER
+		return BACnetEngineeringUnits_OHM_METER_SQUARED_PER_METER, true
 	case "AMPERE_SECONDS":
-		enum = BACnetEngineeringUnits_AMPERE_SECONDS
+		return BACnetEngineeringUnits_AMPERE_SECONDS, true
 	case "VOLT_AMPERE_HOURS":
-		enum = BACnetEngineeringUnits_VOLT_AMPERE_HOURS
+		return BACnetEngineeringUnits_VOLT_AMPERE_HOURS, true
 	case "BTUS_PER_POUND_DRY_AIR":
-		enum = BACnetEngineeringUnits_BTUS_PER_POUND_DRY_AIR
+		return BACnetEngineeringUnits_BTUS_PER_POUND_DRY_AIR, true
 	case "KILOVOLT_AMPERE_HOURS":
-		enum = BACnetEngineeringUnits_KILOVOLT_AMPERE_HOURS
+		return BACnetEngineeringUnits_KILOVOLT_AMPERE_HOURS, true
 	case "MEGAVOLT_AMPERE_HOURS":
-		enum = BACnetEngineeringUnits_MEGAVOLT_AMPERE_HOURS
+		return BACnetEngineeringUnits_MEGAVOLT_AMPERE_HOURS, true
 	case "VOLT_AMPERE_HOURS_REACTIVE":
-		enum = BACnetEngineeringUnits_VOLT_AMPERE_HOURS_REACTIVE
+		return BACnetEngineeringUnits_VOLT_AMPERE_HOURS_REACTIVE, true
 	case "KILOVOLT_AMPERE_HOURS_REACTIVE":
-		enum = BACnetEngineeringUnits_KILOVOLT_AMPERE_HOURS_REACTIVE
+		return BACnetEngineeringUnits_KILOVOLT_AMPERE_HOURS_REACTIVE, true
 	case "MEGAVOLT_AMPERE_HOURS_REACTIVE":
-		enum = BACnetEngineeringUnits_MEGAVOLT_AMPERE_HOURS_REACTIVE
+		return BACnetEngineeringUnits_MEGAVOLT_AMPERE_HOURS_REACTIVE, true
 	case "VOLT_SQUARE_HOURS":
-		enum = BACnetEngineeringUnits_VOLT_SQUARE_HOURS
+		return BACnetEngineeringUnits_VOLT_SQUARE_HOURS, true
 	case "AMPERE_SQUARE_HOURS":
-		enum = BACnetEngineeringUnits_AMPERE_SQUARE_HOURS
+		return BACnetEngineeringUnits_AMPERE_SQUARE_HOURS, true
 	case "JOULE_PER_HOURS":
-		enum = BACnetEngineeringUnits_JOULE_PER_HOURS
+		return BACnetEngineeringUnits_JOULE_PER_HOURS, true
 	case "CUBIC_FEET_PER_DAY":
-		enum = BACnetEngineeringUnits_CUBIC_FEET_PER_DAY
+		return BACnetEngineeringUnits_CUBIC_FEET_PER_DAY, true
 	case "CUBIC_METERS_PER_DAY":
-		enum = BACnetEngineeringUnits_CUBIC_METERS_PER_DAY
+		return BACnetEngineeringUnits_CUBIC_METERS_PER_DAY, true
 	case "WATT_HOURS_PER_CUBIC_METER":
-		enum = BACnetEngineeringUnits_WATT_HOURS_PER_CUBIC_METER
+		return BACnetEngineeringUnits_WATT_HOURS_PER_CUBIC_METER, true
 	case "JOULES_PER_CUBIC_METER":
-		enum = BACnetEngineeringUnits_JOULES_PER_CUBIC_METER
+		return BACnetEngineeringUnits_JOULES_PER_CUBIC_METER, true
 	case "MOLE_PERCENT":
-		enum = BACnetEngineeringUnits_MOLE_PERCENT
+		return BACnetEngineeringUnits_MOLE_PERCENT, true
 	case "PASCAL_SECONDS":
-		enum = BACnetEngineeringUnits_PASCAL_SECONDS
+		return BACnetEngineeringUnits_PASCAL_SECONDS, true
 	case "MILLION_STANDARD_CUBIC_FEET_PER_MINUTE":
-		enum = BACnetEngineeringUnits_MILLION_STANDARD_CUBIC_FEET_PER_MINUTE
+		return BACnetEngineeringUnits_MILLION_STANDARD_CUBIC_FEET_PER_MINUTE, true
 	case "GRAMS_OF_WATER_PER_KILOGRAM_DRY_AIR":
-		enum = BACnetEngineeringUnits_GRAMS_OF_WATER_PER_KILOGRAM_DRY_AIR
+		return BACnetEngineeringUnits_GRAMS_OF_WATER_PER_KILOGRAM_DRY_AIR, true
 	case "PERCENT_RELATIVE_HUMIDITY":
-		enum = BACnetEngineeringUnits_PERCENT_RELATIVE_HUMIDITY
+		return BACnetEngineeringUnits_PERCENT_RELATIVE_HUMIDITY, true
 	case "AMPERES":
-		enum = BACnetEngineeringUnits_AMPERES
+		return BACnetEngineeringUnits_AMPERES, true
 	case "MILLIMETERS":
-		enum = BACnetEngineeringUnits_MILLIMETERS
+		return BACnetEngineeringUnits_MILLIMETERS, true
 	case "METERS":
-		enum = BACnetEngineeringUnits_METERS
+		return BACnetEngineeringUnits_METERS, true
 	case "INCHES":
-		enum = BACnetEngineeringUnits_INCHES
+		return BACnetEngineeringUnits_INCHES, true
 	case "FEET":
-		enum = BACnetEngineeringUnits_FEET
+		return BACnetEngineeringUnits_FEET, true
 	case "WATTS_PER_SQUARE_FOOT":
-		enum = BACnetEngineeringUnits_WATTS_PER_SQUARE_FOOT
+		return BACnetEngineeringUnits_WATTS_PER_SQUARE_FOOT, true
 	case "WATTS_PER_SQUARE_METER":
-		enum = BACnetEngineeringUnits_WATTS_PER_SQUARE_METER
+		return BACnetEngineeringUnits_WATTS_PER_SQUARE_METER, true
 	case "LUMENS":
-		enum = BACnetEngineeringUnits_LUMENS
+		return BACnetEngineeringUnits_LUMENS, true
 	case "LUXES":
-		enum = BACnetEngineeringUnits_LUXES
+		return BACnetEngineeringUnits_LUXES, true
 	case "FOOT_CANDLES":
-		enum = BACnetEngineeringUnits_FOOT_CANDLES
+		return BACnetEngineeringUnits_FOOT_CANDLES, true
 	case "KILOGRAMS":
-		enum = BACnetEngineeringUnits_KILOGRAMS
+		return BACnetEngineeringUnits_KILOGRAMS, true
 	case "OHMS":
-		enum = BACnetEngineeringUnits_OHMS
+		return BACnetEngineeringUnits_OHMS, true
 	case "POUNDS_MASS":
-		enum = BACnetEngineeringUnits_POUNDS_MASS
+		return BACnetEngineeringUnits_POUNDS_MASS, true
 	case "TONS":
-		enum = BACnetEngineeringUnits_TONS
+		return BACnetEngineeringUnits_TONS, true
 	case "KILOGRAMS_PER_SECOND":
-		enum = BACnetEngineeringUnits_KILOGRAMS_PER_SECOND
+		return BACnetEngineeringUnits_KILOGRAMS_PER_SECOND, true
 	case "KILOGRAMS_PER_MINUTE":
-		enum = BACnetEngineeringUnits_KILOGRAMS_PER_MINUTE
+		return BACnetEngineeringUnits_KILOGRAMS_PER_MINUTE, true
 	case "KILOGRAMS_PER_HOUR":
-		enum = BACnetEngineeringUnits_KILOGRAMS_PER_HOUR
+		return BACnetEngineeringUnits_KILOGRAMS_PER_HOUR, true
 	case "POUNDS_MASS_PER_MINUTE":
-		enum = BACnetEngineeringUnits_POUNDS_MASS_PER_MINUTE
+		return BACnetEngineeringUnits_POUNDS_MASS_PER_MINUTE, true
 	case "POUNDS_MASS_PER_HOUR":
-		enum = BACnetEngineeringUnits_POUNDS_MASS_PER_HOUR
+		return BACnetEngineeringUnits_POUNDS_MASS_PER_HOUR, true
 	case "WATTS":
-		enum = BACnetEngineeringUnits_WATTS
+		return BACnetEngineeringUnits_WATTS, true
 	case "STANDARD_CUBIC_FEET_PER_DAY":
-		enum = BACnetEngineeringUnits_STANDARD_CUBIC_FEET_PER_DAY
+		return BACnetEngineeringUnits_STANDARD_CUBIC_FEET_PER_DAY, true
 	case "MILLION_STANDARD_CUBIC_FEET_PER_DAY":
-		enum = BACnetEngineeringUnits_MILLION_STANDARD_CUBIC_FEET_PER_DAY
+		return BACnetEngineeringUnits_MILLION_STANDARD_CUBIC_FEET_PER_DAY, true
 	case "THOUSAND_CUBIC_FEET_PER_DAY":
-		enum = BACnetEngineeringUnits_THOUSAND_CUBIC_FEET_PER_DAY
+		return BACnetEngineeringUnits_THOUSAND_CUBIC_FEET_PER_DAY, true
 	case "THOUSAND_STANDARD_CUBIC_FEET_PER_DAY":
-		enum = BACnetEngineeringUnits_THOUSAND_STANDARD_CUBIC_FEET_PER_DAY
+		return BACnetEngineeringUnits_THOUSAND_STANDARD_CUBIC_FEET_PER_DAY, true
 	case "POUNDS_MASS_PER_DAY":
-		enum = BACnetEngineeringUnits_POUNDS_MASS_PER_DAY
+		return BACnetEngineeringUnits_POUNDS_MASS_PER_DAY, true
 	case "MILLIREMS":
-		enum = BACnetEngineeringUnits_MILLIREMS
+		return BACnetEngineeringUnits_MILLIREMS, true
 	case "MILLIREMS_PER_HOUR":
-		enum = BACnetEngineeringUnits_MILLIREMS_PER_HOUR
+		return BACnetEngineeringUnits_MILLIREMS_PER_HOUR, true
 	case "KILOWATTS":
-		enum = BACnetEngineeringUnits_KILOWATTS
+		return BACnetEngineeringUnits_KILOWATTS, true
 	case "MEGAWATTS":
-		enum = BACnetEngineeringUnits_MEGAWATTS
+		return BACnetEngineeringUnits_MEGAWATTS, true
 	case "VOLTS":
-		enum = BACnetEngineeringUnits_VOLTS
+		return BACnetEngineeringUnits_VOLTS, true
 	case "BTUS_PER_HOUR":
-		enum = BACnetEngineeringUnits_BTUS_PER_HOUR
+		return BACnetEngineeringUnits_BTUS_PER_HOUR, true
 	case "HORSEPOWER":
-		enum = BACnetEngineeringUnits_HORSEPOWER
+		return BACnetEngineeringUnits_HORSEPOWER, true
 	case "TONS_REFRIGERATION":
-		enum = BACnetEngineeringUnits_TONS_REFRIGERATION
+		return BACnetEngineeringUnits_TONS_REFRIGERATION, true
 	case "PASCALS":
-		enum = BACnetEngineeringUnits_PASCALS
+		return BACnetEngineeringUnits_PASCALS, true
 	case "KILOPASCALS":
-		enum = BACnetEngineeringUnits_KILOPASCALS
+		return BACnetEngineeringUnits_KILOPASCALS, true
 	case "BARS":
-		enum = BACnetEngineeringUnits_BARS
+		return BACnetEngineeringUnits_BARS, true
 	case "POUNDS_FORCE_PER_SQUARE_INCH":
-		enum = BACnetEngineeringUnits_POUNDS_FORCE_PER_SQUARE_INCH
+		return BACnetEngineeringUnits_POUNDS_FORCE_PER_SQUARE_INCH, true
 	case "CENTIMETERS_OF_WATER":
-		enum = BACnetEngineeringUnits_CENTIMETERS_OF_WATER
+		return BACnetEngineeringUnits_CENTIMETERS_OF_WATER, true
 	case "INCHES_OF_WATER":
-		enum = BACnetEngineeringUnits_INCHES_OF_WATER
+		return BACnetEngineeringUnits_INCHES_OF_WATER, true
 	case "MILLIMETERS_OF_MERCURY":
-		enum = BACnetEngineeringUnits_MILLIMETERS_OF_MERCURY
+		return BACnetEngineeringUnits_MILLIMETERS_OF_MERCURY, true
 	case "KILOVOLTS":
-		enum = BACnetEngineeringUnits_KILOVOLTS
+		return BACnetEngineeringUnits_KILOVOLTS, true
 	case "CENTIMETERS_OF_MERCURY":
-		enum = BACnetEngineeringUnits_CENTIMETERS_OF_MERCURY
+		return BACnetEngineeringUnits_CENTIMETERS_OF_MERCURY, true
 	case "INCHES_OF_MERCURY":
-		enum = BACnetEngineeringUnits_INCHES_OF_MERCURY
+		return BACnetEngineeringUnits_INCHES_OF_MERCURY, true
 	case "DEGREES_CELSIUS":
-		enum = BACnetEngineeringUnits_DEGREES_CELSIUS
+		return BACnetEngineeringUnits_DEGREES_CELSIUS, true
 	case "DEGREES_KELVIN":
-		enum = BACnetEngineeringUnits_DEGREES_KELVIN
+		return BACnetEngineeringUnits_DEGREES_KELVIN, true
 	case "DEGREES_FAHRENHEIT":
-		enum = BACnetEngineeringUnits_DEGREES_FAHRENHEIT
+		return BACnetEngineeringUnits_DEGREES_FAHRENHEIT, true
 	case "DEGREE_DAYS_CELSIUS":
-		enum = BACnetEngineeringUnits_DEGREE_DAYS_CELSIUS
+		return BACnetEngineeringUnits_DEGREE_DAYS_CELSIUS, true
 	case "DEGREE_DAYS_FAHRENHEIT":
-		enum = BACnetEngineeringUnits_DEGREE_DAYS_FAHRENHEIT
+		return BACnetEngineeringUnits_DEGREE_DAYS_FAHRENHEIT, true
 	case "YEARS":
-		enum = BACnetEngineeringUnits_YEARS
+		return BACnetEngineeringUnits_YEARS, true
 	case "MONTHS":
-		enum = BACnetEngineeringUnits_MONTHS
+		return BACnetEngineeringUnits_MONTHS, true
 	case "WEEKS":
-		enum = BACnetEngineeringUnits_WEEKS
+		return BACnetEngineeringUnits_WEEKS, true
 	case "MEGAVOLTS":
-		enum = BACnetEngineeringUnits_MEGAVOLTS
+		return BACnetEngineeringUnits_MEGAVOLTS, true
 	case "DAYS":
-		enum = BACnetEngineeringUnits_DAYS
+		return BACnetEngineeringUnits_DAYS, true
 	case "HOURS":
-		enum = BACnetEngineeringUnits_HOURS
+		return BACnetEngineeringUnits_HOURS, true
 	case "MINUTES":
-		enum = BACnetEngineeringUnits_MINUTES
+		return BACnetEngineeringUnits_MINUTES, true
 	case "SECONDS":
-		enum = BACnetEngineeringUnits_SECONDS
+		return BACnetEngineeringUnits_SECONDS, true
 	case "METERS_PER_SECOND":
-		enum = BACnetEngineeringUnits_METERS_PER_SECOND
+		return BACnetEngineeringUnits_METERS_PER_SECOND, true
 	case "KILOMETERS_PER_HOUR":
-		enum = BACnetEngineeringUnits_KILOMETERS_PER_HOUR
+		return BACnetEngineeringUnits_KILOMETERS_PER_HOUR, true
 	case "FEET_PER_SECOND":
-		enum = BACnetEngineeringUnits_FEET_PER_SECOND
+		return BACnetEngineeringUnits_FEET_PER_SECOND, true
 	case "FEET_PER_MINUTE":
-		enum = BACnetEngineeringUnits_FEET_PER_MINUTE
+		return BACnetEngineeringUnits_FEET_PER_MINUTE, true
 	case "MILES_PER_HOUR":
-		enum = BACnetEngineeringUnits_MILES_PER_HOUR
+		return BACnetEngineeringUnits_MILES_PER_HOUR, true
 	case "CUBIC_FEET":
-		enum = BACnetEngineeringUnits_CUBIC_FEET
+		return BACnetEngineeringUnits_CUBIC_FEET, true
 	case "VOLT_AMPERES":
-		enum = BACnetEngineeringUnits_VOLT_AMPERES
+		return BACnetEngineeringUnits_VOLT_AMPERES, true
 	case "CUBIC_METERS":
-		enum = BACnetEngineeringUnits_CUBIC_METERS
+		return BACnetEngineeringUnits_CUBIC_METERS, true
 	case "IMPERIAL_GALLONS":
-		enum = BACnetEngineeringUnits_IMPERIAL_GALLONS
+		return BACnetEngineeringUnits_IMPERIAL_GALLONS, true
 	case "LITERS":
-		enum = BACnetEngineeringUnits_LITERS
+		return BACnetEngineeringUnits_LITERS, true
 	case "US_GALLONS":
-		enum = BACnetEngineeringUnits_US_GALLONS
+		return BACnetEngineeringUnits_US_GALLONS, true
 	case "CUBIC_FEET_PER_MINUTE":
-		enum = BACnetEngineeringUnits_CUBIC_FEET_PER_MINUTE
+		return BACnetEngineeringUnits_CUBIC_FEET_PER_MINUTE, true
 	case "CUBIC_METERS_PER_SECOND":
-		enum = BACnetEngineeringUnits_CUBIC_METERS_PER_SECOND
+		return BACnetEngineeringUnits_CUBIC_METERS_PER_SECOND, true
 	case "IMPERIAL_GALLONS_PER_MINUTE":
-		enum = BACnetEngineeringUnits_IMPERIAL_GALLONS_PER_MINUTE
+		return BACnetEngineeringUnits_IMPERIAL_GALLONS_PER_MINUTE, true
 	case "LITERS_PER_SECOND":
-		enum = BACnetEngineeringUnits_LITERS_PER_SECOND
+		return BACnetEngineeringUnits_LITERS_PER_SECOND, true
 	case "LITERS_PER_MINUTE":
-		enum = BACnetEngineeringUnits_LITERS_PER_MINUTE
+		return BACnetEngineeringUnits_LITERS_PER_MINUTE, true
 	case "US_GALLONS_PER_MINUTE":
-		enum = BACnetEngineeringUnits_US_GALLONS_PER_MINUTE
+		return BACnetEngineeringUnits_US_GALLONS_PER_MINUTE, true
 	case "KILOVOLT_AMPERES":
-		enum = BACnetEngineeringUnits_KILOVOLT_AMPERES
+		return BACnetEngineeringUnits_KILOVOLT_AMPERES, true
 	case "DEGREES_ANGULAR":
-		enum = BACnetEngineeringUnits_DEGREES_ANGULAR
+		return BACnetEngineeringUnits_DEGREES_ANGULAR, true
 	case "DEGREES_CELSIUS_PER_HOUR":
-		enum = BACnetEngineeringUnits_DEGREES_CELSIUS_PER_HOUR
+		return BACnetEngineeringUnits_DEGREES_CELSIUS_PER_HOUR, true
 	case "DEGREES_CELSIUS_PER_MINUTE":
-		enum = BACnetEngineeringUnits_DEGREES_CELSIUS_PER_MINUTE
+		return BACnetEngineeringUnits_DEGREES_CELSIUS_PER_MINUTE, true
 	case "DEGREES_FAHRENHEIT_PER_HOUR":
-		enum = BACnetEngineeringUnits_DEGREES_FAHRENHEIT_PER_HOUR
+		return BACnetEngineeringUnits_DEGREES_FAHRENHEIT_PER_HOUR, true
 	case "DEGREES_FAHRENHEIT_PER_MINUTE":
-		enum = BACnetEngineeringUnits_DEGREES_FAHRENHEIT_PER_MINUTE
+		return BACnetEngineeringUnits_DEGREES_FAHRENHEIT_PER_MINUTE, true
 	case "NO_UNITS":
-		enum = BACnetEngineeringUnits_NO_UNITS
+		return BACnetEngineeringUnits_NO_UNITS, true
 	case "PARTS_PER_MILLION":
-		enum = BACnetEngineeringUnits_PARTS_PER_MILLION
+		return BACnetEngineeringUnits_PARTS_PER_MILLION, true
 	case "PARTS_PER_BILLION":
-		enum = BACnetEngineeringUnits_PARTS_PER_BILLION
+		return BACnetEngineeringUnits_PARTS_PER_BILLION, true
 	case "PERCENT":
-		enum = BACnetEngineeringUnits_PERCENT
+		return BACnetEngineeringUnits_PERCENT, true
 	case "PERCENT_PER_SECOND":
-		enum = BACnetEngineeringUnits_PERCENT_PER_SECOND
-	default:
-		enum = 0
-		ok = false
+		return BACnetEngineeringUnits_PERCENT_PER_SECOND, true
 	}
-	return
+	return 0, false
 }
 
 func BACnetEngineeringUnitsKnows(value uint32) bool {
@@ -1604,7 +1600,11 @@ func BACnetEngineeringUnitsParse(readBuffer utils.ReadBuffer) (BACnetEngineering
 	if err != nil {
 		return 0, errors.Wrap(err, "error reading BACnetEngineeringUnits")
 	}
-	return BACnetEngineeringUnitsByValue(val), nil
+	if enum, ok := BACnetEngineeringUnitsByValue(val); !ok {
+		return 0, errors.Errorf("no value %v found for BACnetEngineeringUnits", val)
+	} else {
+		return enum, nil
+	}
 }
 
 func (e BACnetEngineeringUnits) Serialize(writeBuffer utils.WriteBuffer) error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetEscalatorFault.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetEscalatorFault.go
index dc2663974..51a48e554 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetEscalatorFault.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetEscalatorFault.go
@@ -64,60 +64,56 @@ func init() {
 	}
 }
 
-func BACnetEscalatorFaultByValue(value uint16) BACnetEscalatorFault {
+func BACnetEscalatorFaultByValue(value uint16) (enum BACnetEscalatorFault, ok bool) {
 	switch value {
 	case 0:
-		return BACnetEscalatorFault_CONTROLLER_FAULT
+		return BACnetEscalatorFault_CONTROLLER_FAULT, true
 	case 0xFFFF:
-		return BACnetEscalatorFault_VENDOR_PROPRIETARY_VALUE
+		return BACnetEscalatorFault_VENDOR_PROPRIETARY_VALUE, true
 	case 1:
-		return BACnetEscalatorFault_DRIVE_AND_MOTOR_FAULT
+		return BACnetEscalatorFault_DRIVE_AND_MOTOR_FAULT, true
 	case 2:
-		return BACnetEscalatorFault_MECHANICAL_COMPONENT_FAULT
+		return BACnetEscalatorFault_MECHANICAL_COMPONENT_FAULT, true
 	case 3:
-		return BACnetEscalatorFault_OVERSPEED_FAULT
+		return BACnetEscalatorFault_OVERSPEED_FAULT, true
 	case 4:
-		return BACnetEscalatorFault_POWER_SUPPLY_FAULT
+		return BACnetEscalatorFault_POWER_SUPPLY_FAULT, true
 	case 5:
-		return BACnetEscalatorFault_SAFETY_DEVICE_FAULT
+		return BACnetEscalatorFault_SAFETY_DEVICE_FAULT, true
 	case 6:
-		return BACnetEscalatorFault_CONTROLLER_SUPPLY_FAULT
+		return BACnetEscalatorFault_CONTROLLER_SUPPLY_FAULT, true
 	case 7:
-		return BACnetEscalatorFault_DRIVE_TEMPERATURE_EXCEEDED
+		return BACnetEscalatorFault_DRIVE_TEMPERATURE_EXCEEDED, true
 	case 8:
-		return BACnetEscalatorFault_COMB_PLATE_FAULT
+		return BACnetEscalatorFault_COMB_PLATE_FAULT, true
 	}
-	return 0
+	return 0, false
 }
 
 func BACnetEscalatorFaultByName(value string) (enum BACnetEscalatorFault, ok bool) {
-	ok = true
 	switch value {
 	case "CONTROLLER_FAULT":
-		enum = BACnetEscalatorFault_CONTROLLER_FAULT
+		return BACnetEscalatorFault_CONTROLLER_FAULT, true
 	case "VENDOR_PROPRIETARY_VALUE":
-		enum = BACnetEscalatorFault_VENDOR_PROPRIETARY_VALUE
+		return BACnetEscalatorFault_VENDOR_PROPRIETARY_VALUE, true
 	case "DRIVE_AND_MOTOR_FAULT":
-		enum = BACnetEscalatorFault_DRIVE_AND_MOTOR_FAULT
+		return BACnetEscalatorFault_DRIVE_AND_MOTOR_FAULT, true
 	case "MECHANICAL_COMPONENT_FAULT":
-		enum = BACnetEscalatorFault_MECHANICAL_COMPONENT_FAULT
+		return BACnetEscalatorFault_MECHANICAL_COMPONENT_FAULT, true
 	case "OVERSPEED_FAULT":
-		enum = BACnetEscalatorFault_OVERSPEED_FAULT
+		return BACnetEscalatorFault_OVERSPEED_FAULT, true
 	case "POWER_SUPPLY_FAULT":
-		enum = BACnetEscalatorFault_POWER_SUPPLY_FAULT
+		return BACnetEscalatorFault_POWER_SUPPLY_FAULT, true
 	case "SAFETY_DEVICE_FAULT":
-		enum = BACnetEscalatorFault_SAFETY_DEVICE_FAULT
+		return BACnetEscalatorFault_SAFETY_DEVICE_FAULT, true
 	case "CONTROLLER_SUPPLY_FAULT":
-		enum = BACnetEscalatorFault_CONTROLLER_SUPPLY_FAULT
+		return BACnetEscalatorFault_CONTROLLER_SUPPLY_FAULT, true
 	case "DRIVE_TEMPERATURE_EXCEEDED":
-		enum = BACnetEscalatorFault_DRIVE_TEMPERATURE_EXCEEDED
+		return BACnetEscalatorFault_DRIVE_TEMPERATURE_EXCEEDED, true
 	case "COMB_PLATE_FAULT":
-		enum = BACnetEscalatorFault_COMB_PLATE_FAULT
-	default:
-		enum = 0
-		ok = false
+		return BACnetEscalatorFault_COMB_PLATE_FAULT, true
 	}
-	return
+	return 0, false
 }
 
 func BACnetEscalatorFaultKnows(value uint16) bool {
@@ -152,7 +148,11 @@ func BACnetEscalatorFaultParse(readBuffer utils.ReadBuffer) (BACnetEscalatorFaul
 	if err != nil {
 		return 0, errors.Wrap(err, "error reading BACnetEscalatorFault")
 	}
-	return BACnetEscalatorFaultByValue(val), nil
+	if enum, ok := BACnetEscalatorFaultByValue(val); !ok {
+		return 0, errors.Errorf("no value %v found for BACnetEscalatorFault", val)
+	} else {
+		return enum, nil
+	}
 }
 
 func (e BACnetEscalatorFault) Serialize(writeBuffer utils.WriteBuffer) error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetEscalatorMode.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetEscalatorMode.go
index 52526ec6c..e3741e08a 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetEscalatorMode.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetEscalatorMode.go
@@ -58,48 +58,44 @@ func init() {
 	}
 }
 
-func BACnetEscalatorModeByValue(value uint16) BACnetEscalatorMode {
+func BACnetEscalatorModeByValue(value uint16) (enum BACnetEscalatorMode, ok bool) {
 	switch value {
 	case 0:
-		return BACnetEscalatorMode_UNKNOWN
+		return BACnetEscalatorMode_UNKNOWN, true
 	case 0xFFFF:
-		return BACnetEscalatorMode_VENDOR_PROPRIETARY_VALUE
+		return BACnetEscalatorMode_VENDOR_PROPRIETARY_VALUE, true
 	case 1:
-		return BACnetEscalatorMode_STOP
+		return BACnetEscalatorMode_STOP, true
 	case 2:
-		return BACnetEscalatorMode_UP
+		return BACnetEscalatorMode_UP, true
 	case 3:
-		return BACnetEscalatorMode_DOWN
+		return BACnetEscalatorMode_DOWN, true
 	case 4:
-		return BACnetEscalatorMode_INSPECTION
+		return BACnetEscalatorMode_INSPECTION, true
 	case 5:
-		return BACnetEscalatorMode_OUT_OF_SERVICE
+		return BACnetEscalatorMode_OUT_OF_SERVICE, true
 	}
-	return 0
+	return 0, false
 }
 
 func BACnetEscalatorModeByName(value string) (enum BACnetEscalatorMode, ok bool) {
-	ok = true
 	switch value {
 	case "UNKNOWN":
-		enum = BACnetEscalatorMode_UNKNOWN
+		return BACnetEscalatorMode_UNKNOWN, true
 	case "VENDOR_PROPRIETARY_VALUE":
-		enum = BACnetEscalatorMode_VENDOR_PROPRIETARY_VALUE
+		return BACnetEscalatorMode_VENDOR_PROPRIETARY_VALUE, true
 	case "STOP":
-		enum = BACnetEscalatorMode_STOP
+		return BACnetEscalatorMode_STOP, true
 	case "UP":
-		enum = BACnetEscalatorMode_UP
+		return BACnetEscalatorMode_UP, true
 	case "DOWN":
-		enum = BACnetEscalatorMode_DOWN
+		return BACnetEscalatorMode_DOWN, true
 	case "INSPECTION":
-		enum = BACnetEscalatorMode_INSPECTION
+		return BACnetEscalatorMode_INSPECTION, true
 	case "OUT_OF_SERVICE":
-		enum = BACnetEscalatorMode_OUT_OF_SERVICE
-	default:
-		enum = 0
-		ok = false
+		return BACnetEscalatorMode_OUT_OF_SERVICE, true
 	}
-	return
+	return 0, false
 }
 
 func BACnetEscalatorModeKnows(value uint16) bool {
@@ -134,7 +130,11 @@ func BACnetEscalatorModeParse(readBuffer utils.ReadBuffer) (BACnetEscalatorMode,
 	if err != nil {
 		return 0, errors.Wrap(err, "error reading BACnetEscalatorMode")
 	}
-	return BACnetEscalatorModeByValue(val), nil
+	if enum, ok := BACnetEscalatorModeByValue(val); !ok {
+		return 0, errors.Errorf("no value %v found for BACnetEscalatorMode", val)
+	} else {
+		return enum, nil
+	}
 }
 
 func (e BACnetEscalatorMode) Serialize(writeBuffer utils.WriteBuffer) error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetEscalatorOperationDirection.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetEscalatorOperationDirection.go
index 067c1d9d6..251d8721b 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetEscalatorOperationDirection.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetEscalatorOperationDirection.go
@@ -58,48 +58,44 @@ func init() {
 	}
 }
 
-func BACnetEscalatorOperationDirectionByValue(value uint16) BACnetEscalatorOperationDirection {
+func BACnetEscalatorOperationDirectionByValue(value uint16) (enum BACnetEscalatorOperationDirection, ok bool) {
 	switch value {
 	case 0:
-		return BACnetEscalatorOperationDirection_UNKNOWN
+		return BACnetEscalatorOperationDirection_UNKNOWN, true
 	case 0xFFFF:
-		return BACnetEscalatorOperationDirection_VENDOR_PROPRIETARY_VALUE
+		return BACnetEscalatorOperationDirection_VENDOR_PROPRIETARY_VALUE, true
 	case 1:
-		return BACnetEscalatorOperationDirection_STOPPED
+		return BACnetEscalatorOperationDirection_STOPPED, true
 	case 2:
-		return BACnetEscalatorOperationDirection_UP_RATED_SPEED
+		return BACnetEscalatorOperationDirection_UP_RATED_SPEED, true
 	case 3:
-		return BACnetEscalatorOperationDirection_UP_REDUCED_SPEED
+		return BACnetEscalatorOperationDirection_UP_REDUCED_SPEED, true
 	case 4:
-		return BACnetEscalatorOperationDirection_DOWN_RATED_SPEED
+		return BACnetEscalatorOperationDirection_DOWN_RATED_SPEED, true
 	case 5:
-		return BACnetEscalatorOperationDirection_DOWN_REDUCED_SPEED
+		return BACnetEscalatorOperationDirection_DOWN_REDUCED_SPEED, true
 	}
-	return 0
+	return 0, false
 }
 
 func BACnetEscalatorOperationDirectionByName(value string) (enum BACnetEscalatorOperationDirection, ok bool) {
-	ok = true
 	switch value {
 	case "UNKNOWN":
-		enum = BACnetEscalatorOperationDirection_UNKNOWN
+		return BACnetEscalatorOperationDirection_UNKNOWN, true
 	case "VENDOR_PROPRIETARY_VALUE":
-		enum = BACnetEscalatorOperationDirection_VENDOR_PROPRIETARY_VALUE
+		return BACnetEscalatorOperationDirection_VENDOR_PROPRIETARY_VALUE, true
 	case "STOPPED":
-		enum = BACnetEscalatorOperationDirection_STOPPED
+		return BACnetEscalatorOperationDirection_STOPPED, true
 	case "UP_RATED_SPEED":
-		enum = BACnetEscalatorOperationDirection_UP_RATED_SPEED
+		return BACnetEscalatorOperationDirection_UP_RATED_SPEED, true
 	case "UP_REDUCED_SPEED":
-		enum = BACnetEscalatorOperationDirection_UP_REDUCED_SPEED
+		return BACnetEscalatorOperationDirection_UP_REDUCED_SPEED, true
 	case "DOWN_RATED_SPEED":
-		enum = BACnetEscalatorOperationDirection_DOWN_RATED_SPEED
+		return BACnetEscalatorOperationDirection_DOWN_RATED_SPEED, true
 	case "DOWN_REDUCED_SPEED":
-		enum = BACnetEscalatorOperationDirection_DOWN_REDUCED_SPEED
-	default:
-		enum = 0
-		ok = false
+		return BACnetEscalatorOperationDirection_DOWN_REDUCED_SPEED, true
 	}
-	return
+	return 0, false
 }
 
 func BACnetEscalatorOperationDirectionKnows(value uint16) bool {
@@ -134,7 +130,11 @@ func BACnetEscalatorOperationDirectionParse(readBuffer utils.ReadBuffer) (BACnet
 	if err != nil {
 		return 0, errors.Wrap(err, "error reading BACnetEscalatorOperationDirection")
 	}
-	return BACnetEscalatorOperationDirectionByValue(val), nil
+	if enum, ok := BACnetEscalatorOperationDirectionByValue(val); !ok {
+		return 0, errors.Errorf("no value %v found for BACnetEscalatorOperationDirection", val)
+	} else {
+		return enum, nil
+	}
 }
 
 func (e BACnetEscalatorOperationDirection) Serialize(writeBuffer utils.WriteBuffer) error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetEventState.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetEventState.go
index f05970d0a..45deb39cf 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetEventState.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetEventState.go
@@ -58,48 +58,44 @@ func init() {
 	}
 }
 
-func BACnetEventStateByValue(value uint16) BACnetEventState {
+func BACnetEventStateByValue(value uint16) (enum BACnetEventState, ok bool) {
 	switch value {
 	case 0:
-		return BACnetEventState_NORMAL
+		return BACnetEventState_NORMAL, true
 	case 0xFFFF:
-		return BACnetEventState_VENDOR_PROPRIETARY_VALUE
+		return BACnetEventState_VENDOR_PROPRIETARY_VALUE, true
 	case 1:
-		return BACnetEventState_FAULT
+		return BACnetEventState_FAULT, true
 	case 2:
-		return BACnetEventState_OFFNORMAL
+		return BACnetEventState_OFFNORMAL, true
 	case 3:
-		return BACnetEventState_HIGH_LIMIT
+		return BACnetEventState_HIGH_LIMIT, true
 	case 4:
-		return BACnetEventState_LOW_LIMIT
+		return BACnetEventState_LOW_LIMIT, true
 	case 5:
-		return BACnetEventState_LIFE_SAVETY_ALARM
+		return BACnetEventState_LIFE_SAVETY_ALARM, true
 	}
-	return 0
+	return 0, false
 }
 
 func BACnetEventStateByName(value string) (enum BACnetEventState, ok bool) {
-	ok = true
 	switch value {
 	case "NORMAL":
-		enum = BACnetEventState_NORMAL
+		return BACnetEventState_NORMAL, true
 	case "VENDOR_PROPRIETARY_VALUE":
-		enum = BACnetEventState_VENDOR_PROPRIETARY_VALUE
+		return BACnetEventState_VENDOR_PROPRIETARY_VALUE, true
 	case "FAULT":
-		enum = BACnetEventState_FAULT
+		return BACnetEventState_FAULT, true
 	case "OFFNORMAL":
-		enum = BACnetEventState_OFFNORMAL
+		return BACnetEventState_OFFNORMAL, true
 	case "HIGH_LIMIT":
-		enum = BACnetEventState_HIGH_LIMIT
+		return BACnetEventState_HIGH_LIMIT, true
 	case "LOW_LIMIT":
-		enum = BACnetEventState_LOW_LIMIT
+		return BACnetEventState_LOW_LIMIT, true
 	case "LIFE_SAVETY_ALARM":
-		enum = BACnetEventState_LIFE_SAVETY_ALARM
-	default:
-		enum = 0
-		ok = false
+		return BACnetEventState_LIFE_SAVETY_ALARM, true
 	}
-	return
+	return 0, false
 }
 
 func BACnetEventStateKnows(value uint16) bool {
@@ -134,7 +130,11 @@ func BACnetEventStateParse(readBuffer utils.ReadBuffer) (BACnetEventState, error
 	if err != nil {
 		return 0, errors.Wrap(err, "error reading BACnetEventState")
 	}
-	return BACnetEventStateByValue(val), nil
+	if enum, ok := BACnetEventStateByValue(val); !ok {
+		return 0, errors.Errorf("no value %v found for BACnetEventState", val)
+	} else {
+		return enum, nil
+	}
 }
 
 func (e BACnetEventState) Serialize(writeBuffer utils.WriteBuffer) error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetEventTransitionBits.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetEventTransitionBits.go
index a48dca4de..2a63a05af 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetEventTransitionBits.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetEventTransitionBits.go
@@ -50,32 +50,28 @@ func init() {
 	}
 }
 
-func BACnetEventTransitionBitsByValue(value uint8) BACnetEventTransitionBits {
+func BACnetEventTransitionBitsByValue(value uint8) (enum BACnetEventTransitionBits, ok bool) {
 	switch value {
 	case 0:
-		return BACnetEventTransitionBits_TO_OFFNORMAL
+		return BACnetEventTransitionBits_TO_OFFNORMAL, true
 	case 1:
-		return BACnetEventTransitionBits_TO_FAULT
+		return BACnetEventTransitionBits_TO_FAULT, true
 	case 2:
-		return BACnetEventTransitionBits_TO_NORMAL
+		return BACnetEventTransitionBits_TO_NORMAL, true
 	}
-	return 0
+	return 0, false
 }
 
 func BACnetEventTransitionBitsByName(value string) (enum BACnetEventTransitionBits, ok bool) {
-	ok = true
 	switch value {
 	case "TO_OFFNORMAL":
-		enum = BACnetEventTransitionBits_TO_OFFNORMAL
+		return BACnetEventTransitionBits_TO_OFFNORMAL, true
 	case "TO_FAULT":
-		enum = BACnetEventTransitionBits_TO_FAULT
+		return BACnetEventTransitionBits_TO_FAULT, true
 	case "TO_NORMAL":
-		enum = BACnetEventTransitionBits_TO_NORMAL
-	default:
-		enum = 0
-		ok = false
+		return BACnetEventTransitionBits_TO_NORMAL, true
 	}
-	return
+	return 0, false
 }
 
 func BACnetEventTransitionBitsKnows(value uint8) bool {
@@ -110,7 +106,11 @@ func BACnetEventTransitionBitsParse(readBuffer utils.ReadBuffer) (BACnetEventTra
 	if err != nil {
 		return 0, errors.Wrap(err, "error reading BACnetEventTransitionBits")
 	}
-	return BACnetEventTransitionBitsByValue(val), nil
+	if enum, ok := BACnetEventTransitionBitsByValue(val); !ok {
+		return 0, errors.Errorf("no value %v found for BACnetEventTransitionBits", val)
+	} else {
+		return enum, nil
+	}
 }
 
 func (e BACnetEventTransitionBits) Serialize(writeBuffer utils.WriteBuffer) error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetEventType.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetEventType.go
index 0a75a9bab..6363d5d4b 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetEventType.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetEventType.go
@@ -86,104 +86,100 @@ func init() {
 	}
 }
 
-func BACnetEventTypeByValue(value uint16) BACnetEventType {
+func BACnetEventTypeByValue(value uint16) (enum BACnetEventType, ok bool) {
 	switch value {
 	case 0:
-		return BACnetEventType_CHANGE_OF_BITSTRING
+		return BACnetEventType_CHANGE_OF_BITSTRING, true
 	case 0xFFFF:
-		return BACnetEventType_VENDOR_PROPRIETARY_VALUE
+		return BACnetEventType_VENDOR_PROPRIETARY_VALUE, true
 	case 1:
-		return BACnetEventType_CHANGE_OF_STATE
+		return BACnetEventType_CHANGE_OF_STATE, true
 	case 10:
-		return BACnetEventType_BUFFER_READY
+		return BACnetEventType_BUFFER_READY, true
 	case 11:
-		return BACnetEventType_UNSIGNED_RANGE
+		return BACnetEventType_UNSIGNED_RANGE, true
 	case 13:
-		return BACnetEventType_ACCESS_EVENT
+		return BACnetEventType_ACCESS_EVENT, true
 	case 14:
-		return BACnetEventType_DOUBLE_OUT_OF_RANGE
+		return BACnetEventType_DOUBLE_OUT_OF_RANGE, true
 	case 15:
-		return BACnetEventType_SIGNED_OUT_OF_RANGE
+		return BACnetEventType_SIGNED_OUT_OF_RANGE, true
 	case 16:
-		return BACnetEventType_UNSIGNED_OUT_OF_RANGE
+		return BACnetEventType_UNSIGNED_OUT_OF_RANGE, true
 	case 17:
-		return BACnetEventType_CHANGE_OF_CHARACTERSTRING
+		return BACnetEventType_CHANGE_OF_CHARACTERSTRING, true
 	case 18:
-		return BACnetEventType_CHANGE_OF_STATUS_FLAGS
+		return BACnetEventType_CHANGE_OF_STATUS_FLAGS, true
 	case 19:
-		return BACnetEventType_CHANGE_OF_RELIABILITY
+		return BACnetEventType_CHANGE_OF_RELIABILITY, true
 	case 2:
-		return BACnetEventType_CHANGE_OF_VALUE
+		return BACnetEventType_CHANGE_OF_VALUE, true
 	case 20:
-		return BACnetEventType_NONE
+		return BACnetEventType_NONE, true
 	case 21:
-		return BACnetEventType_CHANGE_OF_DISCRETE_VALUE
+		return BACnetEventType_CHANGE_OF_DISCRETE_VALUE, true
 	case 22:
-		return BACnetEventType_CHANGE_OF_TIMER
+		return BACnetEventType_CHANGE_OF_TIMER, true
 	case 3:
-		return BACnetEventType_COMMAND_FAILURE
+		return BACnetEventType_COMMAND_FAILURE, true
 	case 4:
-		return BACnetEventType_FLOATING_LIMIT
+		return BACnetEventType_FLOATING_LIMIT, true
 	case 5:
-		return BACnetEventType_OUT_OF_RANGE
+		return BACnetEventType_OUT_OF_RANGE, true
 	case 8:
-		return BACnetEventType_CHANGE_OF_LIFE_SAFETY
+		return BACnetEventType_CHANGE_OF_LIFE_SAFETY, true
 	case 9:
-		return BACnetEventType_EXTENDED
+		return BACnetEventType_EXTENDED, true
 	}
-	return 0
+	return 0, false
 }
 
 func BACnetEventTypeByName(value string) (enum BACnetEventType, ok bool) {
-	ok = true
 	switch value {
 	case "CHANGE_OF_BITSTRING":
-		enum = BACnetEventType_CHANGE_OF_BITSTRING
+		return BACnetEventType_CHANGE_OF_BITSTRING, true
 	case "VENDOR_PROPRIETARY_VALUE":
-		enum = BACnetEventType_VENDOR_PROPRIETARY_VALUE
+		return BACnetEventType_VENDOR_PROPRIETARY_VALUE, true
 	case "CHANGE_OF_STATE":
-		enum = BACnetEventType_CHANGE_OF_STATE
+		return BACnetEventType_CHANGE_OF_STATE, true
 	case "BUFFER_READY":
-		enum = BACnetEventType_BUFFER_READY
+		return BACnetEventType_BUFFER_READY, true
 	case "UNSIGNED_RANGE":
-		enum = BACnetEventType_UNSIGNED_RANGE
+		return BACnetEventType_UNSIGNED_RANGE, true
 	case "ACCESS_EVENT":
-		enum = BACnetEventType_ACCESS_EVENT
+		return BACnetEventType_ACCESS_EVENT, true
 	case "DOUBLE_OUT_OF_RANGE":
-		enum = BACnetEventType_DOUBLE_OUT_OF_RANGE
+		return BACnetEventType_DOUBLE_OUT_OF_RANGE, true
 	case "SIGNED_OUT_OF_RANGE":
-		enum = BACnetEventType_SIGNED_OUT_OF_RANGE
+		return BACnetEventType_SIGNED_OUT_OF_RANGE, true
 	case "UNSIGNED_OUT_OF_RANGE":
-		enum = BACnetEventType_UNSIGNED_OUT_OF_RANGE
+		return BACnetEventType_UNSIGNED_OUT_OF_RANGE, true
 	case "CHANGE_OF_CHARACTERSTRING":
-		enum = BACnetEventType_CHANGE_OF_CHARACTERSTRING
+		return BACnetEventType_CHANGE_OF_CHARACTERSTRING, true
 	case "CHANGE_OF_STATUS_FLAGS":
-		enum = BACnetEventType_CHANGE_OF_STATUS_FLAGS
+		return BACnetEventType_CHANGE_OF_STATUS_FLAGS, true
 	case "CHANGE_OF_RELIABILITY":
-		enum = BACnetEventType_CHANGE_OF_RELIABILITY
+		return BACnetEventType_CHANGE_OF_RELIABILITY, true
 	case "CHANGE_OF_VALUE":
-		enum = BACnetEventType_CHANGE_OF_VALUE
+		return BACnetEventType_CHANGE_OF_VALUE, true
 	case "NONE":
-		enum = BACnetEventType_NONE
+		return BACnetEventType_NONE, true
 	case "CHANGE_OF_DISCRETE_VALUE":
-		enum = BACnetEventType_CHANGE_OF_DISCRETE_VALUE
+		return BACnetEventType_CHANGE_OF_DISCRETE_VALUE, true
 	case "CHANGE_OF_TIMER":
-		enum = BACnetEventType_CHANGE_OF_TIMER
+		return BACnetEventType_CHANGE_OF_TIMER, true
 	case "COMMAND_FAILURE":
-		enum = BACnetEventType_COMMAND_FAILURE
+		return BACnetEventType_COMMAND_FAILURE, true
 	case "FLOATING_LIMIT":
-		enum = BACnetEventType_FLOATING_LIMIT
+		return BACnetEventType_FLOATING_LIMIT, true
 	case "OUT_OF_RANGE":
-		enum = BACnetEventType_OUT_OF_RANGE
+		return BACnetEventType_OUT_OF_RANGE, true
 	case "CHANGE_OF_LIFE_SAFETY":
-		enum = BACnetEventType_CHANGE_OF_LIFE_SAFETY
+		return BACnetEventType_CHANGE_OF_LIFE_SAFETY, true
 	case "EXTENDED":
-		enum = BACnetEventType_EXTENDED
-	default:
-		enum = 0
-		ok = false
+		return BACnetEventType_EXTENDED, true
 	}
-	return
+	return 0, false
 }
 
 func BACnetEventTypeKnows(value uint16) bool {
@@ -218,7 +214,11 @@ func BACnetEventTypeParse(readBuffer utils.ReadBuffer) (BACnetEventType, error)
 	if err != nil {
 		return 0, errors.Wrap(err, "error reading BACnetEventType")
 	}
-	return BACnetEventTypeByValue(val), nil
+	if enum, ok := BACnetEventTypeByValue(val); !ok {
+		return 0, errors.Errorf("no value %v found for BACnetEventType", val)
+	} else {
+		return enum, nil
+	}
 }
 
 func (e BACnetEventType) Serialize(writeBuffer utils.WriteBuffer) error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetFaultType.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetFaultType.go
index 5a4bcd65d..b77511030 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetFaultType.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetFaultType.go
@@ -60,52 +60,48 @@ func init() {
 	}
 }
 
-func BACnetFaultTypeByValue(value uint8) BACnetFaultType {
+func BACnetFaultTypeByValue(value uint8) (enum BACnetFaultType, ok bool) {
 	switch value {
 	case 0:
-		return BACnetFaultType_NONE
+		return BACnetFaultType_NONE, true
 	case 1:
-		return BACnetFaultType_FAULT_CHARACTERSTRING
+		return BACnetFaultType_FAULT_CHARACTERSTRING, true
 	case 2:
-		return BACnetFaultType_FAULT_EXTENDED
+		return BACnetFaultType_FAULT_EXTENDED, true
 	case 3:
-		return BACnetFaultType_FAULT_LIFE_SAFETY
+		return BACnetFaultType_FAULT_LIFE_SAFETY, true
 	case 4:
-		return BACnetFaultType_FAULT_STATE
+		return BACnetFaultType_FAULT_STATE, true
 	case 5:
-		return BACnetFaultType_FAULT_STATUS_FLAGS
+		return BACnetFaultType_FAULT_STATUS_FLAGS, true
 	case 6:
-		return BACnetFaultType_FAULT_OUT_OF_RANGE
+		return BACnetFaultType_FAULT_OUT_OF_RANGE, true
 	case 7:
-		return BACnetFaultType_FAULT_LISTED
+		return BACnetFaultType_FAULT_LISTED, true
 	}
-	return 0
+	return 0, false
 }
 
 func BACnetFaultTypeByName(value string) (enum BACnetFaultType, ok bool) {
-	ok = true
 	switch value {
 	case "NONE":
-		enum = BACnetFaultType_NONE
+		return BACnetFaultType_NONE, true
 	case "FAULT_CHARACTERSTRING":
-		enum = BACnetFaultType_FAULT_CHARACTERSTRING
+		return BACnetFaultType_FAULT_CHARACTERSTRING, true
 	case "FAULT_EXTENDED":
-		enum = BACnetFaultType_FAULT_EXTENDED
+		return BACnetFaultType_FAULT_EXTENDED, true
 	case "FAULT_LIFE_SAFETY":
-		enum = BACnetFaultType_FAULT_LIFE_SAFETY
+		return BACnetFaultType_FAULT_LIFE_SAFETY, true
 	case "FAULT_STATE":
-		enum = BACnetFaultType_FAULT_STATE
+		return BACnetFaultType_FAULT_STATE, true
 	case "FAULT_STATUS_FLAGS":
-		enum = BACnetFaultType_FAULT_STATUS_FLAGS
+		return BACnetFaultType_FAULT_STATUS_FLAGS, true
 	case "FAULT_OUT_OF_RANGE":
-		enum = BACnetFaultType_FAULT_OUT_OF_RANGE
+		return BACnetFaultType_FAULT_OUT_OF_RANGE, true
 	case "FAULT_LISTED":
-		enum = BACnetFaultType_FAULT_LISTED
-	default:
-		enum = 0
-		ok = false
+		return BACnetFaultType_FAULT_LISTED, true
 	}
-	return
+	return 0, false
 }
 
 func BACnetFaultTypeKnows(value uint8) bool {
@@ -140,7 +136,11 @@ func BACnetFaultTypeParse(readBuffer utils.ReadBuffer) (BACnetFaultType, error)
 	if err != nil {
 		return 0, errors.Wrap(err, "error reading BACnetFaultType")
 	}
-	return BACnetFaultTypeByValue(val), nil
+	if enum, ok := BACnetFaultTypeByValue(val); !ok {
+		return 0, errors.Errorf("no value %v found for BACnetFaultType", val)
+	} else {
+		return enum, nil
+	}
 }
 
 func (e BACnetFaultType) Serialize(writeBuffer utils.WriteBuffer) error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetFileAccessMethod.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetFileAccessMethod.go
index cdb65d873..1259a8559 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetFileAccessMethod.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetFileAccessMethod.go
@@ -48,28 +48,24 @@ func init() {
 	}
 }
 
-func BACnetFileAccessMethodByValue(value uint8) BACnetFileAccessMethod {
+func BACnetFileAccessMethodByValue(value uint8) (enum BACnetFileAccessMethod, ok bool) {
 	switch value {
 	case 0:
-		return BACnetFileAccessMethod_RECORD_ACCESS
+		return BACnetFileAccessMethod_RECORD_ACCESS, true
 	case 1:
-		return BACnetFileAccessMethod_STREAM_ACCESS
+		return BACnetFileAccessMethod_STREAM_ACCESS, true
 	}
-	return 0
+	return 0, false
 }
 
 func BACnetFileAccessMethodByName(value string) (enum BACnetFileAccessMethod, ok bool) {
-	ok = true
 	switch value {
 	case "RECORD_ACCESS":
-		enum = BACnetFileAccessMethod_RECORD_ACCESS
+		return BACnetFileAccessMethod_RECORD_ACCESS, true
 	case "STREAM_ACCESS":
-		enum = BACnetFileAccessMethod_STREAM_ACCESS
-	default:
-		enum = 0
-		ok = false
+		return BACnetFileAccessMethod_STREAM_ACCESS, true
 	}
-	return
+	return 0, false
 }
 
 func BACnetFileAccessMethodKnows(value uint8) bool {
@@ -104,7 +100,11 @@ func BACnetFileAccessMethodParse(readBuffer utils.ReadBuffer) (BACnetFileAccessM
 	if err != nil {
 		return 0, errors.Wrap(err, "error reading BACnetFileAccessMethod")
 	}
-	return BACnetFileAccessMethodByValue(val), nil
+	if enum, ok := BACnetFileAccessMethodByValue(val); !ok {
+		return 0, errors.Errorf("no value %v found for BACnetFileAccessMethod", val)
+	} else {
+		return enum, nil
+	}
 }
 
 func (e BACnetFileAccessMethod) Serialize(writeBuffer utils.WriteBuffer) error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetIPMode.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetIPMode.go
index 343ce35fa..3234d1502 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetIPMode.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetIPMode.go
@@ -50,32 +50,28 @@ func init() {
 	}
 }
 
-func BACnetIPModeByValue(value uint8) BACnetIPMode {
+func BACnetIPModeByValue(value uint8) (enum BACnetIPMode, ok bool) {
 	switch value {
 	case 0:
-		return BACnetIPMode_NORMAL
+		return BACnetIPMode_NORMAL, true
 	case 1:
-		return BACnetIPMode_FOREIGN
+		return BACnetIPMode_FOREIGN, true
 	case 2:
-		return BACnetIPMode_BBMD
+		return BACnetIPMode_BBMD, true
 	}
-	return 0
+	return 0, false
 }
 
 func BACnetIPModeByName(value string) (enum BACnetIPMode, ok bool) {
-	ok = true
 	switch value {
 	case "NORMAL":
-		enum = BACnetIPMode_NORMAL
+		return BACnetIPMode_NORMAL, true
 	case "FOREIGN":
-		enum = BACnetIPMode_FOREIGN
+		return BACnetIPMode_FOREIGN, true
 	case "BBMD":
-		enum = BACnetIPMode_BBMD
-	default:
-		enum = 0
-		ok = false
+		return BACnetIPMode_BBMD, true
 	}
-	return
+	return 0, false
 }
 
 func BACnetIPModeKnows(value uint8) bool {
@@ -110,7 +106,11 @@ func BACnetIPModeParse(readBuffer utils.ReadBuffer) (BACnetIPMode, error) {
 	if err != nil {
 		return 0, errors.Wrap(err, "error reading BACnetIPMode")
 	}
-	return BACnetIPModeByValue(val), nil
+	if enum, ok := BACnetIPModeByValue(val); !ok {
+		return 0, errors.Errorf("no value %v found for BACnetIPMode", val)
+	} else {
+		return enum, nil
+	}
 }
 
 func (e BACnetIPMode) Serialize(writeBuffer utils.WriteBuffer) error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetLifeSafetyMode.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetLifeSafetyMode.go
index f776419ba..8f435fe9a 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetLifeSafetyMode.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetLifeSafetyMode.go
@@ -76,84 +76,80 @@ func init() {
 	}
 }
 
-func BACnetLifeSafetyModeByValue(value uint16) BACnetLifeSafetyMode {
+func BACnetLifeSafetyModeByValue(value uint16) (enum BACnetLifeSafetyMode, ok bool) {
 	switch value {
 	case 0:
-		return BACnetLifeSafetyMode_OFF
+		return BACnetLifeSafetyMode_OFF, true
 	case 0xFFFF:
-		return BACnetLifeSafetyMode_VENDOR_PROPRIETARY_VALUE
+		return BACnetLifeSafetyMode_VENDOR_PROPRIETARY_VALUE, true
 	case 1:
-		return BACnetLifeSafetyMode_ON
+		return BACnetLifeSafetyMode_ON, true
 	case 10:
-		return BACnetLifeSafetyMode_DISCONNECTED
+		return BACnetLifeSafetyMode_DISCONNECTED, true
 	case 11:
-		return BACnetLifeSafetyMode_ENABLED
+		return BACnetLifeSafetyMode_ENABLED, true
 	case 12:
-		return BACnetLifeSafetyMode_DISABLED
+		return BACnetLifeSafetyMode_DISABLED, true
 	case 13:
-		return BACnetLifeSafetyMode_AUTOMATIC_RELEASE_DISABLED
+		return BACnetLifeSafetyMode_AUTOMATIC_RELEASE_DISABLED, true
 	case 14:
-		return BACnetLifeSafetyMode_DEFAULT
+		return BACnetLifeSafetyMode_DEFAULT, true
 	case 2:
-		return BACnetLifeSafetyMode_TEST
+		return BACnetLifeSafetyMode_TEST, true
 	case 3:
-		return BACnetLifeSafetyMode_MANNED
+		return BACnetLifeSafetyMode_MANNED, true
 	case 4:
-		return BACnetLifeSafetyMode_UNMANNED
+		return BACnetLifeSafetyMode_UNMANNED, true
 	case 5:
-		return BACnetLifeSafetyMode_ARMED
+		return BACnetLifeSafetyMode_ARMED, true
 	case 6:
-		return BACnetLifeSafetyMode_DISARMED
+		return BACnetLifeSafetyMode_DISARMED, true
 	case 7:
-		return BACnetLifeSafetyMode_PREARMED
+		return BACnetLifeSafetyMode_PREARMED, true
 	case 8:
-		return BACnetLifeSafetyMode_SLOW
+		return BACnetLifeSafetyMode_SLOW, true
 	case 9:
-		return BACnetLifeSafetyMode_FAST
+		return BACnetLifeSafetyMode_FAST, true
 	}
-	return 0
+	return 0, false
 }
 
 func BACnetLifeSafetyModeByName(value string) (enum BACnetLifeSafetyMode, ok bool) {
-	ok = true
 	switch value {
 	case "OFF":
-		enum = BACnetLifeSafetyMode_OFF
+		return BACnetLifeSafetyMode_OFF, true
 	case "VENDOR_PROPRIETARY_VALUE":
-		enum = BACnetLifeSafetyMode_VENDOR_PROPRIETARY_VALUE
+		return BACnetLifeSafetyMode_VENDOR_PROPRIETARY_VALUE, true
 	case "ON":
-		enum = BACnetLifeSafetyMode_ON
+		return BACnetLifeSafetyMode_ON, true
 	case "DISCONNECTED":
-		enum = BACnetLifeSafetyMode_DISCONNECTED
+		return BACnetLifeSafetyMode_DISCONNECTED, true
 	case "ENABLED":
-		enum = BACnetLifeSafetyMode_ENABLED
+		return BACnetLifeSafetyMode_ENABLED, true
 	case "DISABLED":
-		enum = BACnetLifeSafetyMode_DISABLED
+		return BACnetLifeSafetyMode_DISABLED, true
 	case "AUTOMATIC_RELEASE_DISABLED":
-		enum = BACnetLifeSafetyMode_AUTOMATIC_RELEASE_DISABLED
+		return BACnetLifeSafetyMode_AUTOMATIC_RELEASE_DISABLED, true
 	case "DEFAULT":
-		enum = BACnetLifeSafetyMode_DEFAULT
+		return BACnetLifeSafetyMode_DEFAULT, true
 	case "TEST":
-		enum = BACnetLifeSafetyMode_TEST
+		return BACnetLifeSafetyMode_TEST, true
 	case "MANNED":
-		enum = BACnetLifeSafetyMode_MANNED
+		return BACnetLifeSafetyMode_MANNED, true
 	case "UNMANNED":
-		enum = BACnetLifeSafetyMode_UNMANNED
+		return BACnetLifeSafetyMode_UNMANNED, true
 	case "ARMED":
-		enum = BACnetLifeSafetyMode_ARMED
+		return BACnetLifeSafetyMode_ARMED, true
 	case "DISARMED":
-		enum = BACnetLifeSafetyMode_DISARMED
+		return BACnetLifeSafetyMode_DISARMED, true
 	case "PREARMED":
-		enum = BACnetLifeSafetyMode_PREARMED
+		return BACnetLifeSafetyMode_PREARMED, true
 	case "SLOW":
-		enum = BACnetLifeSafetyMode_SLOW
+		return BACnetLifeSafetyMode_SLOW, true
 	case "FAST":
-		enum = BACnetLifeSafetyMode_FAST
-	default:
-		enum = 0
-		ok = false
+		return BACnetLifeSafetyMode_FAST, true
 	}
-	return
+	return 0, false
 }
 
 func BACnetLifeSafetyModeKnows(value uint16) bool {
@@ -188,7 +184,11 @@ func BACnetLifeSafetyModeParse(readBuffer utils.ReadBuffer) (BACnetLifeSafetyMod
 	if err != nil {
 		return 0, errors.Wrap(err, "error reading BACnetLifeSafetyMode")
 	}
-	return BACnetLifeSafetyModeByValue(val), nil
+	if enum, ok := BACnetLifeSafetyModeByValue(val); !ok {
+		return 0, errors.Errorf("no value %v found for BACnetLifeSafetyMode", val)
+	} else {
+		return enum, nil
+	}
 }
 
 func (e BACnetLifeSafetyMode) Serialize(writeBuffer utils.WriteBuffer) error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetLifeSafetyOperation.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetLifeSafetyOperation.go
index 9115f768a..7347c710c 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetLifeSafetyOperation.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetLifeSafetyOperation.go
@@ -66,64 +66,60 @@ func init() {
 	}
 }
 
-func BACnetLifeSafetyOperationByValue(value uint16) BACnetLifeSafetyOperation {
+func BACnetLifeSafetyOperationByValue(value uint16) (enum BACnetLifeSafetyOperation, ok bool) {
 	switch value {
 	case 0:
-		return BACnetLifeSafetyOperation_NONE
+		return BACnetLifeSafetyOperation_NONE, true
 	case 0xFFFF:
-		return BACnetLifeSafetyOperation_VENDOR_PROPRIETARY_VALUE
+		return BACnetLifeSafetyOperation_VENDOR_PROPRIETARY_VALUE, true
 	case 1:
-		return BACnetLifeSafetyOperation_SILENCE
+		return BACnetLifeSafetyOperation_SILENCE, true
 	case 2:
-		return BACnetLifeSafetyOperation_SILENCE_AUDIBLE
+		return BACnetLifeSafetyOperation_SILENCE_AUDIBLE, true
 	case 3:
-		return BACnetLifeSafetyOperation_SILENCE_VISUAL
+		return BACnetLifeSafetyOperation_SILENCE_VISUAL, true
 	case 4:
-		return BACnetLifeSafetyOperation_RESET
+		return BACnetLifeSafetyOperation_RESET, true
 	case 5:
-		return BACnetLifeSafetyOperation_RESET_ALARM
+		return BACnetLifeSafetyOperation_RESET_ALARM, true
 	case 6:
-		return BACnetLifeSafetyOperation_RESET_FAULT
+		return BACnetLifeSafetyOperation_RESET_FAULT, true
 	case 7:
-		return BACnetLifeSafetyOperation_UNSILENCE
+		return BACnetLifeSafetyOperation_UNSILENCE, true
 	case 8:
-		return BACnetLifeSafetyOperation_UNSILENCE_AUDIBLE
+		return BACnetLifeSafetyOperation_UNSILENCE_AUDIBLE, true
 	case 9:
-		return BACnetLifeSafetyOperation_UNSILENCE_VISUAL
+		return BACnetLifeSafetyOperation_UNSILENCE_VISUAL, true
 	}
-	return 0
+	return 0, false
 }
 
 func BACnetLifeSafetyOperationByName(value string) (enum BACnetLifeSafetyOperation, ok bool) {
-	ok = true
 	switch value {
 	case "NONE":
-		enum = BACnetLifeSafetyOperation_NONE
+		return BACnetLifeSafetyOperation_NONE, true
 	case "VENDOR_PROPRIETARY_VALUE":
-		enum = BACnetLifeSafetyOperation_VENDOR_PROPRIETARY_VALUE
+		return BACnetLifeSafetyOperation_VENDOR_PROPRIETARY_VALUE, true
 	case "SILENCE":
-		enum = BACnetLifeSafetyOperation_SILENCE
+		return BACnetLifeSafetyOperation_SILENCE, true
 	case "SILENCE_AUDIBLE":
-		enum = BACnetLifeSafetyOperation_SILENCE_AUDIBLE
+		return BACnetLifeSafetyOperation_SILENCE_AUDIBLE, true
 	case "SILENCE_VISUAL":
-		enum = BACnetLifeSafetyOperation_SILENCE_VISUAL
+		return BACnetLifeSafetyOperation_SILENCE_VISUAL, true
 	case "RESET":
-		enum = BACnetLifeSafetyOperation_RESET
+		return BACnetLifeSafetyOperation_RESET, true
 	case "RESET_ALARM":
-		enum = BACnetLifeSafetyOperation_RESET_ALARM
+		return BACnetLifeSafetyOperation_RESET_ALARM, true
 	case "RESET_FAULT":
-		enum = BACnetLifeSafetyOperation_RESET_FAULT
+		return BACnetLifeSafetyOperation_RESET_FAULT, true
 	case "UNSILENCE":
-		enum = BACnetLifeSafetyOperation_UNSILENCE
+		return BACnetLifeSafetyOperation_UNSILENCE, true
 	case "UNSILENCE_AUDIBLE":
-		enum = BACnetLifeSafetyOperation_UNSILENCE_AUDIBLE
+		return BACnetLifeSafetyOperation_UNSILENCE_AUDIBLE, true
 	case "UNSILENCE_VISUAL":
-		enum = BACnetLifeSafetyOperation_UNSILENCE_VISUAL
-	default:
-		enum = 0
-		ok = false
+		return BACnetLifeSafetyOperation_UNSILENCE_VISUAL, true
 	}
-	return
+	return 0, false
 }
 
 func BACnetLifeSafetyOperationKnows(value uint16) bool {
@@ -158,7 +154,11 @@ func BACnetLifeSafetyOperationParse(readBuffer utils.ReadBuffer) (BACnetLifeSafe
 	if err != nil {
 		return 0, errors.Wrap(err, "error reading BACnetLifeSafetyOperation")
 	}
-	return BACnetLifeSafetyOperationByValue(val), nil
+	if enum, ok := BACnetLifeSafetyOperationByValue(val); !ok {
+		return 0, errors.Errorf("no value %v found for BACnetLifeSafetyOperation", val)
+	} else {
+		return enum, nil
+	}
 }
 
 func (e BACnetLifeSafetyOperation) Serialize(writeBuffer utils.WriteBuffer) error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetLifeSafetyState.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetLifeSafetyState.go
index 1a5d3bf76..da0ebab3e 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetLifeSafetyState.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetLifeSafetyState.go
@@ -94,120 +94,116 @@ func init() {
 	}
 }
 
-func BACnetLifeSafetyStateByValue(value uint16) BACnetLifeSafetyState {
+func BACnetLifeSafetyStateByValue(value uint16) (enum BACnetLifeSafetyState, ok bool) {
 	switch value {
 	case 0:
-		return BACnetLifeSafetyState_QUIET
+		return BACnetLifeSafetyState_QUIET, true
 	case 0xFFFF:
-		return BACnetLifeSafetyState_VENDOR_PROPRIETARY_VALUE
+		return BACnetLifeSafetyState_VENDOR_PROPRIETARY_VALUE, true
 	case 1:
-		return BACnetLifeSafetyState_PRE_ALARM
+		return BACnetLifeSafetyState_PRE_ALARM, true
 	case 10:
-		return BACnetLifeSafetyState_TEST_ACTIVE
+		return BACnetLifeSafetyState_TEST_ACTIVE, true
 	case 11:
-		return BACnetLifeSafetyState_TEST_FAULT
+		return BACnetLifeSafetyState_TEST_FAULT, true
 	case 12:
-		return BACnetLifeSafetyState_TEST_FAULT_ALARM
+		return BACnetLifeSafetyState_TEST_FAULT_ALARM, true
 	case 13:
-		return BACnetLifeSafetyState_HOLDUP
+		return BACnetLifeSafetyState_HOLDUP, true
 	case 14:
-		return BACnetLifeSafetyState_DURESS
+		return BACnetLifeSafetyState_DURESS, true
 	case 15:
-		return BACnetLifeSafetyState_TAMPER_ALARM
+		return BACnetLifeSafetyState_TAMPER_ALARM, true
 	case 16:
-		return BACnetLifeSafetyState_ABNORMAL
+		return BACnetLifeSafetyState_ABNORMAL, true
 	case 17:
-		return BACnetLifeSafetyState_EMERGENCY_POWER
+		return BACnetLifeSafetyState_EMERGENCY_POWER, true
 	case 18:
-		return BACnetLifeSafetyState_DELAYED
+		return BACnetLifeSafetyState_DELAYED, true
 	case 19:
-		return BACnetLifeSafetyState_BLOCKED
+		return BACnetLifeSafetyState_BLOCKED, true
 	case 2:
-		return BACnetLifeSafetyState_ALARM
+		return BACnetLifeSafetyState_ALARM, true
 	case 20:
-		return BACnetLifeSafetyState_LOCAL_ALARM
+		return BACnetLifeSafetyState_LOCAL_ALARM, true
 	case 21:
-		return BACnetLifeSafetyState_GENERAL_ALARM
+		return BACnetLifeSafetyState_GENERAL_ALARM, true
 	case 22:
-		return BACnetLifeSafetyState_SUPERVISORY
+		return BACnetLifeSafetyState_SUPERVISORY, true
 	case 23:
-		return BACnetLifeSafetyState_TEST_SUPERVISORY
+		return BACnetLifeSafetyState_TEST_SUPERVISORY, true
 	case 3:
-		return BACnetLifeSafetyState_FAULT
+		return BACnetLifeSafetyState_FAULT, true
 	case 4:
-		return BACnetLifeSafetyState_FAULT_PRE_ALARM
+		return BACnetLifeSafetyState_FAULT_PRE_ALARM, true
 	case 5:
-		return BACnetLifeSafetyState_FAULT_ALARM
+		return BACnetLifeSafetyState_FAULT_ALARM, true
 	case 6:
-		return BACnetLifeSafetyState_NOT_READY
+		return BACnetLifeSafetyState_NOT_READY, true
 	case 7:
-		return BACnetLifeSafetyState_ACTIVE
+		return BACnetLifeSafetyState_ACTIVE, true
 	case 8:
-		return BACnetLifeSafetyState_TAMPER
+		return BACnetLifeSafetyState_TAMPER, true
 	case 9:
-		return BACnetLifeSafetyState_TEST_ALARM
+		return BACnetLifeSafetyState_TEST_ALARM, true
 	}
-	return 0
+	return 0, false
 }
 
 func BACnetLifeSafetyStateByName(value string) (enum BACnetLifeSafetyState, ok bool) {
-	ok = true
 	switch value {
 	case "QUIET":
-		enum = BACnetLifeSafetyState_QUIET
+		return BACnetLifeSafetyState_QUIET, true
 	case "VENDOR_PROPRIETARY_VALUE":
-		enum = BACnetLifeSafetyState_VENDOR_PROPRIETARY_VALUE
+		return BACnetLifeSafetyState_VENDOR_PROPRIETARY_VALUE, true
 	case "PRE_ALARM":
-		enum = BACnetLifeSafetyState_PRE_ALARM
+		return BACnetLifeSafetyState_PRE_ALARM, true
 	case "TEST_ACTIVE":
-		enum = BACnetLifeSafetyState_TEST_ACTIVE
+		return BACnetLifeSafetyState_TEST_ACTIVE, true
 	case "TEST_FAULT":
-		enum = BACnetLifeSafetyState_TEST_FAULT
+		return BACnetLifeSafetyState_TEST_FAULT, true
 	case "TEST_FAULT_ALARM":
-		enum = BACnetLifeSafetyState_TEST_FAULT_ALARM
+		return BACnetLifeSafetyState_TEST_FAULT_ALARM, true
 	case "HOLDUP":
-		enum = BACnetLifeSafetyState_HOLDUP
+		return BACnetLifeSafetyState_HOLDUP, true
 	case "DURESS":
-		enum = BACnetLifeSafetyState_DURESS
+		return BACnetLifeSafetyState_DURESS, true
 	case "TAMPER_ALARM":
-		enum = BACnetLifeSafetyState_TAMPER_ALARM
+		return BACnetLifeSafetyState_TAMPER_ALARM, true
 	case "ABNORMAL":
-		enum = BACnetLifeSafetyState_ABNORMAL
+		return BACnetLifeSafetyState_ABNORMAL, true
 	case "EMERGENCY_POWER":
-		enum = BACnetLifeSafetyState_EMERGENCY_POWER
+		return BACnetLifeSafetyState_EMERGENCY_POWER, true
 	case "DELAYED":
-		enum = BACnetLifeSafetyState_DELAYED
+		return BACnetLifeSafetyState_DELAYED, true
 	case "BLOCKED":
-		enum = BACnetLifeSafetyState_BLOCKED
+		return BACnetLifeSafetyState_BLOCKED, true
 	case "ALARM":
-		enum = BACnetLifeSafetyState_ALARM
+		return BACnetLifeSafetyState_ALARM, true
 	case "LOCAL_ALARM":
-		enum = BACnetLifeSafetyState_LOCAL_ALARM
+		return BACnetLifeSafetyState_LOCAL_ALARM, true
 	case "GENERAL_ALARM":
-		enum = BACnetLifeSafetyState_GENERAL_ALARM
+		return BACnetLifeSafetyState_GENERAL_ALARM, true
 	case "SUPERVISORY":
-		enum = BACnetLifeSafetyState_SUPERVISORY
+		return BACnetLifeSafetyState_SUPERVISORY, true
 	case "TEST_SUPERVISORY":
-		enum = BACnetLifeSafetyState_TEST_SUPERVISORY
+		return BACnetLifeSafetyState_TEST_SUPERVISORY, true
 	case "FAULT":
-		enum = BACnetLifeSafetyState_FAULT
+		return BACnetLifeSafetyState_FAULT, true
 	case "FAULT_PRE_ALARM":
-		enum = BACnetLifeSafetyState_FAULT_PRE_ALARM
+		return BACnetLifeSafetyState_FAULT_PRE_ALARM, true
 	case "FAULT_ALARM":
-		enum = BACnetLifeSafetyState_FAULT_ALARM
+		return BACnetLifeSafetyState_FAULT_ALARM, true
 	case "NOT_READY":
-		enum = BACnetLifeSafetyState_NOT_READY
+		return BACnetLifeSafetyState_NOT_READY, true
 	case "ACTIVE":
-		enum = BACnetLifeSafetyState_ACTIVE
+		return BACnetLifeSafetyState_ACTIVE, true
 	case "TAMPER":
-		enum = BACnetLifeSafetyState_TAMPER
+		return BACnetLifeSafetyState_TAMPER, true
 	case "TEST_ALARM":
-		enum = BACnetLifeSafetyState_TEST_ALARM
-	default:
-		enum = 0
-		ok = false
+		return BACnetLifeSafetyState_TEST_ALARM, true
 	}
-	return
+	return 0, false
 }
 
 func BACnetLifeSafetyStateKnows(value uint16) bool {
@@ -242,7 +238,11 @@ func BACnetLifeSafetyStateParse(readBuffer utils.ReadBuffer) (BACnetLifeSafetySt
 	if err != nil {
 		return 0, errors.Wrap(err, "error reading BACnetLifeSafetyState")
 	}
-	return BACnetLifeSafetyStateByValue(val), nil
+	if enum, ok := BACnetLifeSafetyStateByValue(val); !ok {
+		return 0, errors.Errorf("no value %v found for BACnetLifeSafetyState", val)
+	} else {
+		return enum, nil
+	}
 }
 
 func (e BACnetLifeSafetyState) Serialize(writeBuffer utils.WriteBuffer) error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetLiftCarDirection.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetLiftCarDirection.go
index a9e39638e..fb2eeedeb 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetLiftCarDirection.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetLiftCarDirection.go
@@ -58,48 +58,44 @@ func init() {
 	}
 }
 
-func BACnetLiftCarDirectionByValue(value uint16) BACnetLiftCarDirection {
+func BACnetLiftCarDirectionByValue(value uint16) (enum BACnetLiftCarDirection, ok bool) {
 	switch value {
 	case 0:
-		return BACnetLiftCarDirection_UNKNOWN
+		return BACnetLiftCarDirection_UNKNOWN, true
 	case 0xFFFF:
-		return BACnetLiftCarDirection_VENDOR_PROPRIETARY_VALUE
+		return BACnetLiftCarDirection_VENDOR_PROPRIETARY_VALUE, true
 	case 1:
-		return BACnetLiftCarDirection_NONE
+		return BACnetLiftCarDirection_NONE, true
 	case 2:
-		return BACnetLiftCarDirection_STOPPED
+		return BACnetLiftCarDirection_STOPPED, true
 	case 3:
-		return BACnetLiftCarDirection_UP
+		return BACnetLiftCarDirection_UP, true
 	case 4:
-		return BACnetLiftCarDirection_DOWN
+		return BACnetLiftCarDirection_DOWN, true
 	case 5:
-		return BACnetLiftCarDirection_UP_AND_DOWN
+		return BACnetLiftCarDirection_UP_AND_DOWN, true
 	}
-	return 0
+	return 0, false
 }
 
 func BACnetLiftCarDirectionByName(value string) (enum BACnetLiftCarDirection, ok bool) {
-	ok = true
 	switch value {
 	case "UNKNOWN":
-		enum = BACnetLiftCarDirection_UNKNOWN
+		return BACnetLiftCarDirection_UNKNOWN, true
 	case "VENDOR_PROPRIETARY_VALUE":
-		enum = BACnetLiftCarDirection_VENDOR_PROPRIETARY_VALUE
+		return BACnetLiftCarDirection_VENDOR_PROPRIETARY_VALUE, true
 	case "NONE":
-		enum = BACnetLiftCarDirection_NONE
+		return BACnetLiftCarDirection_NONE, true
 	case "STOPPED":
-		enum = BACnetLiftCarDirection_STOPPED
+		return BACnetLiftCarDirection_STOPPED, true
 	case "UP":
-		enum = BACnetLiftCarDirection_UP
+		return BACnetLiftCarDirection_UP, true
 	case "DOWN":
-		enum = BACnetLiftCarDirection_DOWN
+		return BACnetLiftCarDirection_DOWN, true
 	case "UP_AND_DOWN":
-		enum = BACnetLiftCarDirection_UP_AND_DOWN
-	default:
-		enum = 0
-		ok = false
+		return BACnetLiftCarDirection_UP_AND_DOWN, true
 	}
-	return
+	return 0, false
 }
 
 func BACnetLiftCarDirectionKnows(value uint16) bool {
@@ -134,7 +130,11 @@ func BACnetLiftCarDirectionParse(readBuffer utils.ReadBuffer) (BACnetLiftCarDire
 	if err != nil {
 		return 0, errors.Wrap(err, "error reading BACnetLiftCarDirection")
 	}
-	return BACnetLiftCarDirectionByValue(val), nil
+	if enum, ok := BACnetLiftCarDirectionByValue(val); !ok {
+		return 0, errors.Errorf("no value %v found for BACnetLiftCarDirection", val)
+	} else {
+		return enum, nil
+	}
 }
 
 func (e BACnetLiftCarDirection) Serialize(writeBuffer utils.WriteBuffer) error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetLiftCarDoorCommand.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetLiftCarDoorCommand.go
index 95b439fcb..be035912b 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetLiftCarDoorCommand.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetLiftCarDoorCommand.go
@@ -50,32 +50,28 @@ func init() {
 	}
 }
 
-func BACnetLiftCarDoorCommandByValue(value uint8) BACnetLiftCarDoorCommand {
+func BACnetLiftCarDoorCommandByValue(value uint8) (enum BACnetLiftCarDoorCommand, ok bool) {
 	switch value {
 	case 0:
-		return BACnetLiftCarDoorCommand_NONE
+		return BACnetLiftCarDoorCommand_NONE, true
 	case 1:
-		return BACnetLiftCarDoorCommand_OPEN
+		return BACnetLiftCarDoorCommand_OPEN, true
 	case 2:
-		return BACnetLiftCarDoorCommand_CLOSE
+		return BACnetLiftCarDoorCommand_CLOSE, true
 	}
-	return 0
+	return 0, false
 }
 
 func BACnetLiftCarDoorCommandByName(value string) (enum BACnetLiftCarDoorCommand, ok bool) {
-	ok = true
 	switch value {
 	case "NONE":
-		enum = BACnetLiftCarDoorCommand_NONE
+		return BACnetLiftCarDoorCommand_NONE, true
 	case "OPEN":
-		enum = BACnetLiftCarDoorCommand_OPEN
+		return BACnetLiftCarDoorCommand_OPEN, true
 	case "CLOSE":
-		enum = BACnetLiftCarDoorCommand_CLOSE
-	default:
-		enum = 0
-		ok = false
+		return BACnetLiftCarDoorCommand_CLOSE, true
 	}
-	return
+	return 0, false
 }
 
 func BACnetLiftCarDoorCommandKnows(value uint8) bool {
@@ -110,7 +106,11 @@ func BACnetLiftCarDoorCommandParse(readBuffer utils.ReadBuffer) (BACnetLiftCarDo
 	if err != nil {
 		return 0, errors.Wrap(err, "error reading BACnetLiftCarDoorCommand")
 	}
-	return BACnetLiftCarDoorCommandByValue(val), nil
+	if enum, ok := BACnetLiftCarDoorCommandByValue(val); !ok {
+		return 0, errors.Errorf("no value %v found for BACnetLiftCarDoorCommand", val)
+	} else {
+		return enum, nil
+	}
 }
 
 func (e BACnetLiftCarDoorCommand) Serialize(writeBuffer utils.WriteBuffer) error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetLiftCarDriveStatus.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetLiftCarDriveStatus.go
index f14af512a..5e2221855 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetLiftCarDriveStatus.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetLiftCarDriveStatus.go
@@ -66,64 +66,60 @@ func init() {
 	}
 }
 
-func BACnetLiftCarDriveStatusByValue(value uint16) BACnetLiftCarDriveStatus {
+func BACnetLiftCarDriveStatusByValue(value uint16) (enum BACnetLiftCarDriveStatus, ok bool) {
 	switch value {
 	case 0:
-		return BACnetLiftCarDriveStatus_UNKNOWN
+		return BACnetLiftCarDriveStatus_UNKNOWN, true
 	case 0xFFFF:
-		return BACnetLiftCarDriveStatus_VENDOR_PROPRIETARY_VALUE
+		return BACnetLiftCarDriveStatus_VENDOR_PROPRIETARY_VALUE, true
 	case 1:
-		return BACnetLiftCarDriveStatus_STATIONARY
+		return BACnetLiftCarDriveStatus_STATIONARY, true
 	case 2:
-		return BACnetLiftCarDriveStatus_BRAKING
+		return BACnetLiftCarDriveStatus_BRAKING, true
 	case 3:
-		return BACnetLiftCarDriveStatus_ACCELERATE
+		return BACnetLiftCarDriveStatus_ACCELERATE, true
 	case 4:
-		return BACnetLiftCarDriveStatus_DECELERATE
+		return BACnetLiftCarDriveStatus_DECELERATE, true
 	case 5:
-		return BACnetLiftCarDriveStatus_RATED_SPEED
+		return BACnetLiftCarDriveStatus_RATED_SPEED, true
 	case 6:
-		return BACnetLiftCarDriveStatus_SINGLE_FLOOR_JUMP
+		return BACnetLiftCarDriveStatus_SINGLE_FLOOR_JUMP, true
 	case 7:
-		return BACnetLiftCarDriveStatus_TWO_FLOOR_JUMP
+		return BACnetLiftCarDriveStatus_TWO_FLOOR_JUMP, true
 	case 8:
-		return BACnetLiftCarDriveStatus_THREE_FLOOR_JUMP
+		return BACnetLiftCarDriveStatus_THREE_FLOOR_JUMP, true
 	case 9:
-		return BACnetLiftCarDriveStatus_MULTI_FLOOR_JUMP
+		return BACnetLiftCarDriveStatus_MULTI_FLOOR_JUMP, true
 	}
-	return 0
+	return 0, false
 }
 
 func BACnetLiftCarDriveStatusByName(value string) (enum BACnetLiftCarDriveStatus, ok bool) {
-	ok = true
 	switch value {
 	case "UNKNOWN":
-		enum = BACnetLiftCarDriveStatus_UNKNOWN
+		return BACnetLiftCarDriveStatus_UNKNOWN, true
 	case "VENDOR_PROPRIETARY_VALUE":
-		enum = BACnetLiftCarDriveStatus_VENDOR_PROPRIETARY_VALUE
+		return BACnetLiftCarDriveStatus_VENDOR_PROPRIETARY_VALUE, true
 	case "STATIONARY":
-		enum = BACnetLiftCarDriveStatus_STATIONARY
+		return BACnetLiftCarDriveStatus_STATIONARY, true
 	case "BRAKING":
-		enum = BACnetLiftCarDriveStatus_BRAKING
+		return BACnetLiftCarDriveStatus_BRAKING, true
 	case "ACCELERATE":
-		enum = BACnetLiftCarDriveStatus_ACCELERATE
+		return BACnetLiftCarDriveStatus_ACCELERATE, true
 	case "DECELERATE":
-		enum = BACnetLiftCarDriveStatus_DECELERATE
+		return BACnetLiftCarDriveStatus_DECELERATE, true
 	case "RATED_SPEED":
-		enum = BACnetLiftCarDriveStatus_RATED_SPEED
+		return BACnetLiftCarDriveStatus_RATED_SPEED, true
 	case "SINGLE_FLOOR_JUMP":
-		enum = BACnetLiftCarDriveStatus_SINGLE_FLOOR_JUMP
+		return BACnetLiftCarDriveStatus_SINGLE_FLOOR_JUMP, true
 	case "TWO_FLOOR_JUMP":
-		enum = BACnetLiftCarDriveStatus_TWO_FLOOR_JUMP
+		return BACnetLiftCarDriveStatus_TWO_FLOOR_JUMP, true
 	case "THREE_FLOOR_JUMP":
-		enum = BACnetLiftCarDriveStatus_THREE_FLOOR_JUMP
+		return BACnetLiftCarDriveStatus_THREE_FLOOR_JUMP, true
 	case "MULTI_FLOOR_JUMP":
-		enum = BACnetLiftCarDriveStatus_MULTI_FLOOR_JUMP
-	default:
-		enum = 0
-		ok = false
+		return BACnetLiftCarDriveStatus_MULTI_FLOOR_JUMP, true
 	}
-	return
+	return 0, false
 }
 
 func BACnetLiftCarDriveStatusKnows(value uint16) bool {
@@ -158,7 +154,11 @@ func BACnetLiftCarDriveStatusParse(readBuffer utils.ReadBuffer) (BACnetLiftCarDr
 	if err != nil {
 		return 0, errors.Wrap(err, "error reading BACnetLiftCarDriveStatus")
 	}
-	return BACnetLiftCarDriveStatusByValue(val), nil
+	if enum, ok := BACnetLiftCarDriveStatusByValue(val); !ok {
+		return 0, errors.Errorf("no value %v found for BACnetLiftCarDriveStatus", val)
+	} else {
+		return enum, nil
+	}
 }
 
 func (e BACnetLiftCarDriveStatus) Serialize(writeBuffer utils.WriteBuffer) error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetLiftCarMode.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetLiftCarMode.go
index 1232351f7..cf8656caf 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetLiftCarMode.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetLiftCarMode.go
@@ -74,80 +74,76 @@ func init() {
 	}
 }
 
-func BACnetLiftCarModeByValue(value uint16) BACnetLiftCarMode {
+func BACnetLiftCarModeByValue(value uint16) (enum BACnetLiftCarMode, ok bool) {
 	switch value {
 	case 0:
-		return BACnetLiftCarMode_UNKNOWN
+		return BACnetLiftCarMode_UNKNOWN, true
 	case 0xFFFF:
-		return BACnetLiftCarMode_VENDOR_PROPRIETARY_VALUE
+		return BACnetLiftCarMode_VENDOR_PROPRIETARY_VALUE, true
 	case 1:
-		return BACnetLiftCarMode_NORMAL
+		return BACnetLiftCarMode_NORMAL, true
 	case 10:
-		return BACnetLiftCarMode_EARTHQUAKE_OPERATION
+		return BACnetLiftCarMode_EARTHQUAKE_OPERATION, true
 	case 11:
-		return BACnetLiftCarMode_FIRE_OPERATION
+		return BACnetLiftCarMode_FIRE_OPERATION, true
 	case 12:
-		return BACnetLiftCarMode_OUT_OF_SERVICE
+		return BACnetLiftCarMode_OUT_OF_SERVICE, true
 	case 13:
-		return BACnetLiftCarMode_OCCUPANT_EVACUATION
+		return BACnetLiftCarMode_OCCUPANT_EVACUATION, true
 	case 2:
-		return BACnetLiftCarMode_VIP
+		return BACnetLiftCarMode_VIP, true
 	case 3:
-		return BACnetLiftCarMode_HOMING
+		return BACnetLiftCarMode_HOMING, true
 	case 4:
-		return BACnetLiftCarMode_PARKING
+		return BACnetLiftCarMode_PARKING, true
 	case 5:
-		return BACnetLiftCarMode_ATTENDANT_CONTROL
+		return BACnetLiftCarMode_ATTENDANT_CONTROL, true
 	case 6:
-		return BACnetLiftCarMode_FIREFIGHTER_CONTROL
+		return BACnetLiftCarMode_FIREFIGHTER_CONTROL, true
 	case 7:
-		return BACnetLiftCarMode_EMERGENCY_POWER
+		return BACnetLiftCarMode_EMERGENCY_POWER, true
 	case 8:
-		return BACnetLiftCarMode_INSPECTION
+		return BACnetLiftCarMode_INSPECTION, true
 	case 9:
-		return BACnetLiftCarMode_CABINET_RECALL
+		return BACnetLiftCarMode_CABINET_RECALL, true
 	}
-	return 0
+	return 0, false
 }
 
 func BACnetLiftCarModeByName(value string) (enum BACnetLiftCarMode, ok bool) {
-	ok = true
 	switch value {
 	case "UNKNOWN":
-		enum = BACnetLiftCarMode_UNKNOWN
+		return BACnetLiftCarMode_UNKNOWN, true
 	case "VENDOR_PROPRIETARY_VALUE":
-		enum = BACnetLiftCarMode_VENDOR_PROPRIETARY_VALUE
+		return BACnetLiftCarMode_VENDOR_PROPRIETARY_VALUE, true
 	case "NORMAL":
-		enum = BACnetLiftCarMode_NORMAL
+		return BACnetLiftCarMode_NORMAL, true
 	case "EARTHQUAKE_OPERATION":
-		enum = BACnetLiftCarMode_EARTHQUAKE_OPERATION
+		return BACnetLiftCarMode_EARTHQUAKE_OPERATION, true
 	case "FIRE_OPERATION":
-		enum = BACnetLiftCarMode_FIRE_OPERATION
+		return BACnetLiftCarMode_FIRE_OPERATION, true
 	case "OUT_OF_SERVICE":
-		enum = BACnetLiftCarMode_OUT_OF_SERVICE
+		return BACnetLiftCarMode_OUT_OF_SERVICE, true
 	case "OCCUPANT_EVACUATION":
-		enum = BACnetLiftCarMode_OCCUPANT_EVACUATION
+		return BACnetLiftCarMode_OCCUPANT_EVACUATION, true
 	case "VIP":
-		enum = BACnetLiftCarMode_VIP
+		return BACnetLiftCarMode_VIP, true
 	case "HOMING":
-		enum = BACnetLiftCarMode_HOMING
+		return BACnetLiftCarMode_HOMING, true
 	case "PARKING":
-		enum = BACnetLiftCarMode_PARKING
+		return BACnetLiftCarMode_PARKING, true
 	case "ATTENDANT_CONTROL":
-		enum = BACnetLiftCarMode_ATTENDANT_CONTROL
+		return BACnetLiftCarMode_ATTENDANT_CONTROL, true
 	case "FIREFIGHTER_CONTROL":
-		enum = BACnetLiftCarMode_FIREFIGHTER_CONTROL
+		return BACnetLiftCarMode_FIREFIGHTER_CONTROL, true
 	case "EMERGENCY_POWER":
-		enum = BACnetLiftCarMode_EMERGENCY_POWER
+		return BACnetLiftCarMode_EMERGENCY_POWER, true
 	case "INSPECTION":
-		enum = BACnetLiftCarMode_INSPECTION
+		return BACnetLiftCarMode_INSPECTION, true
 	case "CABINET_RECALL":
-		enum = BACnetLiftCarMode_CABINET_RECALL
-	default:
-		enum = 0
-		ok = false
+		return BACnetLiftCarMode_CABINET_RECALL, true
 	}
-	return
+	return 0, false
 }
 
 func BACnetLiftCarModeKnows(value uint16) bool {
@@ -182,7 +178,11 @@ func BACnetLiftCarModeParse(readBuffer utils.ReadBuffer) (BACnetLiftCarMode, err
 	if err != nil {
 		return 0, errors.Wrap(err, "error reading BACnetLiftCarMode")
 	}
-	return BACnetLiftCarModeByValue(val), nil
+	if enum, ok := BACnetLiftCarModeByValue(val); !ok {
+		return 0, errors.Errorf("no value %v found for BACnetLiftCarMode", val)
+	} else {
+		return enum, nil
+	}
 }
 
 func (e BACnetLiftCarMode) Serialize(writeBuffer utils.WriteBuffer) error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetLiftFault.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetLiftFault.go
index 67518a270..cdc3be965 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetLiftFault.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetLiftFault.go
@@ -80,92 +80,88 @@ func init() {
 	}
 }
 
-func BACnetLiftFaultByValue(value uint16) BACnetLiftFault {
+func BACnetLiftFaultByValue(value uint16) (enum BACnetLiftFault, ok bool) {
 	switch value {
 	case 0:
-		return BACnetLiftFault_CONTROLLER_FAULT
+		return BACnetLiftFault_CONTROLLER_FAULT, true
 	case 0xFFFF:
-		return BACnetLiftFault_VENDOR_PROPRIETARY_VALUE
+		return BACnetLiftFault_VENDOR_PROPRIETARY_VALUE, true
 	case 1:
-		return BACnetLiftFault_DRIVE_AND_MOTOR_FAULT
+		return BACnetLiftFault_DRIVE_AND_MOTOR_FAULT, true
 	case 10:
-		return BACnetLiftFault_START_FAILURE
+		return BACnetLiftFault_START_FAILURE, true
 	case 11:
-		return BACnetLiftFault_CONTROLLER_SUPPLY_FAULT
+		return BACnetLiftFault_CONTROLLER_SUPPLY_FAULT, true
 	case 12:
-		return BACnetLiftFault_SELF_TEST_FAILURE
+		return BACnetLiftFault_SELF_TEST_FAILURE, true
 	case 13:
-		return BACnetLiftFault_RUNTIME_LIMIT_EXCEEDED
+		return BACnetLiftFault_RUNTIME_LIMIT_EXCEEDED, true
 	case 14:
-		return BACnetLiftFault_POSITION_LOST
+		return BACnetLiftFault_POSITION_LOST, true
 	case 15:
-		return BACnetLiftFault_DRIVE_TEMPERATURE_EXCEEDED
+		return BACnetLiftFault_DRIVE_TEMPERATURE_EXCEEDED, true
 	case 16:
-		return BACnetLiftFault_LOAD_MEASUREMENT_FAULT
+		return BACnetLiftFault_LOAD_MEASUREMENT_FAULT, true
 	case 2:
-		return BACnetLiftFault_GOVERNOR_AND_SAFETY_GEAR_FAULT
+		return BACnetLiftFault_GOVERNOR_AND_SAFETY_GEAR_FAULT, true
 	case 3:
-		return BACnetLiftFault_LIFT_SHAFT_DEVICE_FAULT
+		return BACnetLiftFault_LIFT_SHAFT_DEVICE_FAULT, true
 	case 4:
-		return BACnetLiftFault_POWER_SUPPLY_FAULT
+		return BACnetLiftFault_POWER_SUPPLY_FAULT, true
 	case 5:
-		return BACnetLiftFault_SAFETY_INTERLOCK_FAULT
+		return BACnetLiftFault_SAFETY_INTERLOCK_FAULT, true
 	case 6:
-		return BACnetLiftFault_DOOR_CLOSING_FAULT
+		return BACnetLiftFault_DOOR_CLOSING_FAULT, true
 	case 7:
-		return BACnetLiftFault_DOOR_OPENING_FAULT
+		return BACnetLiftFault_DOOR_OPENING_FAULT, true
 	case 8:
-		return BACnetLiftFault_CAR_STOPPED_OUTSIDE_LANDING_ZONE
+		return BACnetLiftFault_CAR_STOPPED_OUTSIDE_LANDING_ZONE, true
 	case 9:
-		return BACnetLiftFault_CALL_BUTTON_STUCK
+		return BACnetLiftFault_CALL_BUTTON_STUCK, true
 	}
-	return 0
+	return 0, false
 }
 
 func BACnetLiftFaultByName(value string) (enum BACnetLiftFault, ok bool) {
-	ok = true
 	switch value {
 	case "CONTROLLER_FAULT":
-		enum = BACnetLiftFault_CONTROLLER_FAULT
+		return BACnetLiftFault_CONTROLLER_FAULT, true
 	case "VENDOR_PROPRIETARY_VALUE":
-		enum = BACnetLiftFault_VENDOR_PROPRIETARY_VALUE
+		return BACnetLiftFault_VENDOR_PROPRIETARY_VALUE, true
 	case "DRIVE_AND_MOTOR_FAULT":
-		enum = BACnetLiftFault_DRIVE_AND_MOTOR_FAULT
+		return BACnetLiftFault_DRIVE_AND_MOTOR_FAULT, true
 	case "START_FAILURE":
-		enum = BACnetLiftFault_START_FAILURE
+		return BACnetLiftFault_START_FAILURE, true
 	case "CONTROLLER_SUPPLY_FAULT":
-		enum = BACnetLiftFault_CONTROLLER_SUPPLY_FAULT
+		return BACnetLiftFault_CONTROLLER_SUPPLY_FAULT, true
 	case "SELF_TEST_FAILURE":
-		enum = BACnetLiftFault_SELF_TEST_FAILURE
+		return BACnetLiftFault_SELF_TEST_FAILURE, true
 	case "RUNTIME_LIMIT_EXCEEDED":
-		enum = BACnetLiftFault_RUNTIME_LIMIT_EXCEEDED
+		return BACnetLiftFault_RUNTIME_LIMIT_EXCEEDED, true
 	case "POSITION_LOST":
-		enum = BACnetLiftFault_POSITION_LOST
+		return BACnetLiftFault_POSITION_LOST, true
 	case "DRIVE_TEMPERATURE_EXCEEDED":
-		enum = BACnetLiftFault_DRIVE_TEMPERATURE_EXCEEDED
+		return BACnetLiftFault_DRIVE_TEMPERATURE_EXCEEDED, true
 	case "LOAD_MEASUREMENT_FAULT":
-		enum = BACnetLiftFault_LOAD_MEASUREMENT_FAULT
+		return BACnetLiftFault_LOAD_MEASUREMENT_FAULT, true
 	case "GOVERNOR_AND_SAFETY_GEAR_FAULT":
-		enum = BACnetLiftFault_GOVERNOR_AND_SAFETY_GEAR_FAULT
+		return BACnetLiftFault_GOVERNOR_AND_SAFETY_GEAR_FAULT, true
 	case "LIFT_SHAFT_DEVICE_FAULT":
-		enum = BACnetLiftFault_LIFT_SHAFT_DEVICE_FAULT
+		return BACnetLiftFault_LIFT_SHAFT_DEVICE_FAULT, true
 	case "POWER_SUPPLY_FAULT":
-		enum = BACnetLiftFault_POWER_SUPPLY_FAULT
+		return BACnetLiftFault_POWER_SUPPLY_FAULT, true
 	case "SAFETY_INTERLOCK_FAULT":
-		enum = BACnetLiftFault_SAFETY_INTERLOCK_FAULT
+		return BACnetLiftFault_SAFETY_INTERLOCK_FAULT, true
 	case "DOOR_CLOSING_FAULT":
-		enum = BACnetLiftFault_DOOR_CLOSING_FAULT
+		return BACnetLiftFault_DOOR_CLOSING_FAULT, true
 	case "DOOR_OPENING_FAULT":
-		enum = BACnetLiftFault_DOOR_OPENING_FAULT
+		return BACnetLiftFault_DOOR_OPENING_FAULT, true
 	case "CAR_STOPPED_OUTSIDE_LANDING_ZONE":
-		enum = BACnetLiftFault_CAR_STOPPED_OUTSIDE_LANDING_ZONE
+		return BACnetLiftFault_CAR_STOPPED_OUTSIDE_LANDING_ZONE, true
 	case "CALL_BUTTON_STUCK":
-		enum = BACnetLiftFault_CALL_BUTTON_STUCK
-	default:
-		enum = 0
-		ok = false
+		return BACnetLiftFault_CALL_BUTTON_STUCK, true
 	}
-	return
+	return 0, false
 }
 
 func BACnetLiftFaultKnows(value uint16) bool {
@@ -200,7 +196,11 @@ func BACnetLiftFaultParse(readBuffer utils.ReadBuffer) (BACnetLiftFault, error)
 	if err != nil {
 		return 0, errors.Wrap(err, "error reading BACnetLiftFault")
 	}
-	return BACnetLiftFaultByValue(val), nil
+	if enum, ok := BACnetLiftFaultByValue(val); !ok {
+		return 0, errors.Errorf("no value %v found for BACnetLiftFault", val)
+	} else {
+		return enum, nil
+	}
 }
 
 func (e BACnetLiftFault) Serialize(writeBuffer utils.WriteBuffer) error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetLiftGroupMode.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetLiftGroupMode.go
index 4ca46f41f..8ae6189f7 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetLiftGroupMode.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetLiftGroupMode.go
@@ -58,48 +58,44 @@ func init() {
 	}
 }
 
-func BACnetLiftGroupModeByValue(value uint8) BACnetLiftGroupMode {
+func BACnetLiftGroupModeByValue(value uint8) (enum BACnetLiftGroupMode, ok bool) {
 	switch value {
 	case 0:
-		return BACnetLiftGroupMode_UNKNOWN
+		return BACnetLiftGroupMode_UNKNOWN, true
 	case 1:
-		return BACnetLiftGroupMode_NORMAL
+		return BACnetLiftGroupMode_NORMAL, true
 	case 2:
-		return BACnetLiftGroupMode_DOWN_PEAK
+		return BACnetLiftGroupMode_DOWN_PEAK, true
 	case 3:
-		return BACnetLiftGroupMode_TWO_WAY
+		return BACnetLiftGroupMode_TWO_WAY, true
 	case 4:
-		return BACnetLiftGroupMode_FOUR_WAY
+		return BACnetLiftGroupMode_FOUR_WAY, true
 	case 5:
-		return BACnetLiftGroupMode_EMERGENCY_POWER
+		return BACnetLiftGroupMode_EMERGENCY_POWER, true
 	case 6:
-		return BACnetLiftGroupMode_UP_PEAK
+		return BACnetLiftGroupMode_UP_PEAK, true
 	}
-	return 0
+	return 0, false
 }
 
 func BACnetLiftGroupModeByName(value string) (enum BACnetLiftGroupMode, ok bool) {
-	ok = true
 	switch value {
 	case "UNKNOWN":
-		enum = BACnetLiftGroupMode_UNKNOWN
+		return BACnetLiftGroupMode_UNKNOWN, true
 	case "NORMAL":
-		enum = BACnetLiftGroupMode_NORMAL
+		return BACnetLiftGroupMode_NORMAL, true
 	case "DOWN_PEAK":
-		enum = BACnetLiftGroupMode_DOWN_PEAK
+		return BACnetLiftGroupMode_DOWN_PEAK, true
 	case "TWO_WAY":
-		enum = BACnetLiftGroupMode_TWO_WAY
+		return BACnetLiftGroupMode_TWO_WAY, true
 	case "FOUR_WAY":
-		enum = BACnetLiftGroupMode_FOUR_WAY
+		return BACnetLiftGroupMode_FOUR_WAY, true
 	case "EMERGENCY_POWER":
-		enum = BACnetLiftGroupMode_EMERGENCY_POWER
+		return BACnetLiftGroupMode_EMERGENCY_POWER, true
 	case "UP_PEAK":
-		enum = BACnetLiftGroupMode_UP_PEAK
-	default:
-		enum = 0
-		ok = false
+		return BACnetLiftGroupMode_UP_PEAK, true
 	}
-	return
+	return 0, false
 }
 
 func BACnetLiftGroupModeKnows(value uint8) bool {
@@ -134,7 +130,11 @@ func BACnetLiftGroupModeParse(readBuffer utils.ReadBuffer) (BACnetLiftGroupMode,
 	if err != nil {
 		return 0, errors.Wrap(err, "error reading BACnetLiftGroupMode")
 	}
-	return BACnetLiftGroupModeByValue(val), nil
+	if enum, ok := BACnetLiftGroupModeByValue(val); !ok {
+		return 0, errors.Errorf("no value %v found for BACnetLiftGroupMode", val)
+	} else {
+		return enum, nil
+	}
 }
 
 func (e BACnetLiftGroupMode) Serialize(writeBuffer utils.WriteBuffer) error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetLightingInProgress.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetLightingInProgress.go
index 68c31cde9..67de6c6cb 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetLightingInProgress.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetLightingInProgress.go
@@ -54,40 +54,36 @@ func init() {
 	}
 }
 
-func BACnetLightingInProgressByValue(value uint8) BACnetLightingInProgress {
+func BACnetLightingInProgressByValue(value uint8) (enum BACnetLightingInProgress, ok bool) {
 	switch value {
 	case 0:
-		return BACnetLightingInProgress_IDLE
+		return BACnetLightingInProgress_IDLE, true
 	case 1:
-		return BACnetLightingInProgress_FADE_ACTIVE
+		return BACnetLightingInProgress_FADE_ACTIVE, true
 	case 2:
-		return BACnetLightingInProgress_RAMP_ACTIVE
+		return BACnetLightingInProgress_RAMP_ACTIVE, true
 	case 3:
-		return BACnetLightingInProgress_NOT_CONTROLLED
+		return BACnetLightingInProgress_NOT_CONTROLLED, true
 	case 4:
-		return BACnetLightingInProgress_OTHER
+		return BACnetLightingInProgress_OTHER, true
 	}
-	return 0
+	return 0, false
 }
 
 func BACnetLightingInProgressByName(value string) (enum BACnetLightingInProgress, ok bool) {
-	ok = true
 	switch value {
 	case "IDLE":
-		enum = BACnetLightingInProgress_IDLE
+		return BACnetLightingInProgress_IDLE, true
 	case "FADE_ACTIVE":
-		enum = BACnetLightingInProgress_FADE_ACTIVE
+		return BACnetLightingInProgress_FADE_ACTIVE, true
 	case "RAMP_ACTIVE":
-		enum = BACnetLightingInProgress_RAMP_ACTIVE
+		return BACnetLightingInProgress_RAMP_ACTIVE, true
 	case "NOT_CONTROLLED":
-		enum = BACnetLightingInProgress_NOT_CONTROLLED
+		return BACnetLightingInProgress_NOT_CONTROLLED, true
 	case "OTHER":
-		enum = BACnetLightingInProgress_OTHER
-	default:
-		enum = 0
-		ok = false
+		return BACnetLightingInProgress_OTHER, true
 	}
-	return
+	return 0, false
 }
 
 func BACnetLightingInProgressKnows(value uint8) bool {
@@ -122,7 +118,11 @@ func BACnetLightingInProgressParse(readBuffer utils.ReadBuffer) (BACnetLightingI
 	if err != nil {
 		return 0, errors.Wrap(err, "error reading BACnetLightingInProgress")
 	}
-	return BACnetLightingInProgressByValue(val), nil
+	if enum, ok := BACnetLightingInProgressByValue(val); !ok {
+		return 0, errors.Errorf("no value %v found for BACnetLightingInProgress", val)
+	} else {
+		return enum, nil
+	}
 }
 
 func (e BACnetLightingInProgress) Serialize(writeBuffer utils.WriteBuffer) error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetLightingOperation.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetLightingOperation.go
index 302a823d6..872eaaafd 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetLightingOperation.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetLightingOperation.go
@@ -68,68 +68,64 @@ func init() {
 	}
 }
 
-func BACnetLightingOperationByValue(value uint16) BACnetLightingOperation {
+func BACnetLightingOperationByValue(value uint16) (enum BACnetLightingOperation, ok bool) {
 	switch value {
 	case 0:
-		return BACnetLightingOperation_NONE
+		return BACnetLightingOperation_NONE, true
 	case 0xFFFF:
-		return BACnetLightingOperation_VENDOR_PROPRIETARY_VALUE
+		return BACnetLightingOperation_VENDOR_PROPRIETARY_VALUE, true
 	case 1:
-		return BACnetLightingOperation_FADE_TO
+		return BACnetLightingOperation_FADE_TO, true
 	case 10:
-		return BACnetLightingOperation_STOP
+		return BACnetLightingOperation_STOP, true
 	case 2:
-		return BACnetLightingOperation_RAMP_TO
+		return BACnetLightingOperation_RAMP_TO, true
 	case 3:
-		return BACnetLightingOperation_STEP_UP
+		return BACnetLightingOperation_STEP_UP, true
 	case 4:
-		return BACnetLightingOperation_STEP_DOWN
+		return BACnetLightingOperation_STEP_DOWN, true
 	case 5:
-		return BACnetLightingOperation_STEP_ON
+		return BACnetLightingOperation_STEP_ON, true
 	case 6:
-		return BACnetLightingOperation_STEP_OFF
+		return BACnetLightingOperation_STEP_OFF, true
 	case 7:
-		return BACnetLightingOperation_WARN
+		return BACnetLightingOperation_WARN, true
 	case 8:
-		return BACnetLightingOperation_WARN_OFF
+		return BACnetLightingOperation_WARN_OFF, true
 	case 9:
-		return BACnetLightingOperation_WARN_RELINQUISH
+		return BACnetLightingOperation_WARN_RELINQUISH, true
 	}
-	return 0
+	return 0, false
 }
 
 func BACnetLightingOperationByName(value string) (enum BACnetLightingOperation, ok bool) {
-	ok = true
 	switch value {
 	case "NONE":
-		enum = BACnetLightingOperation_NONE
+		return BACnetLightingOperation_NONE, true
 	case "VENDOR_PROPRIETARY_VALUE":
-		enum = BACnetLightingOperation_VENDOR_PROPRIETARY_VALUE
+		return BACnetLightingOperation_VENDOR_PROPRIETARY_VALUE, true
 	case "FADE_TO":
-		enum = BACnetLightingOperation_FADE_TO
+		return BACnetLightingOperation_FADE_TO, true
 	case "STOP":
-		enum = BACnetLightingOperation_STOP
+		return BACnetLightingOperation_STOP, true
 	case "RAMP_TO":
-		enum = BACnetLightingOperation_RAMP_TO
+		return BACnetLightingOperation_RAMP_TO, true
 	case "STEP_UP":
-		enum = BACnetLightingOperation_STEP_UP
+		return BACnetLightingOperation_STEP_UP, true
 	case "STEP_DOWN":
-		enum = BACnetLightingOperation_STEP_DOWN
+		return BACnetLightingOperation_STEP_DOWN, true
 	case "STEP_ON":
-		enum = BACnetLightingOperation_STEP_ON
+		return BACnetLightingOperation_STEP_ON, true
 	case "STEP_OFF":
-		enum = BACnetLightingOperation_STEP_OFF
+		return BACnetLightingOperation_STEP_OFF, true
 	case "WARN":
-		enum = BACnetLightingOperation_WARN
+		return BACnetLightingOperation_WARN, true
 	case "WARN_OFF":
-		enum = BACnetLightingOperation_WARN_OFF
+		return BACnetLightingOperation_WARN_OFF, true
 	case "WARN_RELINQUISH":
-		enum = BACnetLightingOperation_WARN_RELINQUISH
-	default:
-		enum = 0
-		ok = false
+		return BACnetLightingOperation_WARN_RELINQUISH, true
 	}
-	return
+	return 0, false
 }
 
 func BACnetLightingOperationKnows(value uint16) bool {
@@ -164,7 +160,11 @@ func BACnetLightingOperationParse(readBuffer utils.ReadBuffer) (BACnetLightingOp
 	if err != nil {
 		return 0, errors.Wrap(err, "error reading BACnetLightingOperation")
 	}
-	return BACnetLightingOperationByValue(val), nil
+	if enum, ok := BACnetLightingOperationByValue(val); !ok {
+		return 0, errors.Errorf("no value %v found for BACnetLightingOperation", val)
+	} else {
+		return enum, nil
+	}
 }
 
 func (e BACnetLightingOperation) Serialize(writeBuffer utils.WriteBuffer) error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetLightingTransition.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetLightingTransition.go
index c2032a982..c108bf169 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetLightingTransition.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetLightingTransition.go
@@ -52,36 +52,32 @@ func init() {
 	}
 }
 
-func BACnetLightingTransitionByValue(value uint8) BACnetLightingTransition {
+func BACnetLightingTransitionByValue(value uint8) (enum BACnetLightingTransition, ok bool) {
 	switch value {
 	case 0:
-		return BACnetLightingTransition_NONE
+		return BACnetLightingTransition_NONE, true
 	case 0xFF:
-		return BACnetLightingTransition_VENDOR_PROPRIETARY_VALUE
+		return BACnetLightingTransition_VENDOR_PROPRIETARY_VALUE, true
 	case 1:
-		return BACnetLightingTransition_FADE
+		return BACnetLightingTransition_FADE, true
 	case 2:
-		return BACnetLightingTransition_RAMP
+		return BACnetLightingTransition_RAMP, true
 	}
-	return 0
+	return 0, false
 }
 
 func BACnetLightingTransitionByName(value string) (enum BACnetLightingTransition, ok bool) {
-	ok = true
 	switch value {
 	case "NONE":
-		enum = BACnetLightingTransition_NONE
+		return BACnetLightingTransition_NONE, true
 	case "VENDOR_PROPRIETARY_VALUE":
-		enum = BACnetLightingTransition_VENDOR_PROPRIETARY_VALUE
+		return BACnetLightingTransition_VENDOR_PROPRIETARY_VALUE, true
 	case "FADE":
-		enum = BACnetLightingTransition_FADE
+		return BACnetLightingTransition_FADE, true
 	case "RAMP":
-		enum = BACnetLightingTransition_RAMP
-	default:
-		enum = 0
-		ok = false
+		return BACnetLightingTransition_RAMP, true
 	}
-	return
+	return 0, false
 }
 
 func BACnetLightingTransitionKnows(value uint8) bool {
@@ -116,7 +112,11 @@ func BACnetLightingTransitionParse(readBuffer utils.ReadBuffer) (BACnetLightingT
 	if err != nil {
 		return 0, errors.Wrap(err, "error reading BACnetLightingTransition")
 	}
-	return BACnetLightingTransitionByValue(val), nil
+	if enum, ok := BACnetLightingTransitionByValue(val); !ok {
+		return 0, errors.Errorf("no value %v found for BACnetLightingTransition", val)
+	} else {
+		return enum, nil
+	}
 }
 
 func (e BACnetLightingTransition) Serialize(writeBuffer utils.WriteBuffer) error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetLimitEnable.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetLimitEnable.go
index 2b508ce2d..4b5e208a1 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetLimitEnable.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetLimitEnable.go
@@ -48,28 +48,24 @@ func init() {
 	}
 }
 
-func BACnetLimitEnableByValue(value uint8) BACnetLimitEnable {
+func BACnetLimitEnableByValue(value uint8) (enum BACnetLimitEnable, ok bool) {
 	switch value {
 	case 0:
-		return BACnetLimitEnable_LOW_LIMIT_ENABLE
+		return BACnetLimitEnable_LOW_LIMIT_ENABLE, true
 	case 1:
-		return BACnetLimitEnable_HIGH_LIMIT_ENABLE
+		return BACnetLimitEnable_HIGH_LIMIT_ENABLE, true
 	}
-	return 0
+	return 0, false
 }
 
 func BACnetLimitEnableByName(value string) (enum BACnetLimitEnable, ok bool) {
-	ok = true
 	switch value {
 	case "LOW_LIMIT_ENABLE":
-		enum = BACnetLimitEnable_LOW_LIMIT_ENABLE
+		return BACnetLimitEnable_LOW_LIMIT_ENABLE, true
 	case "HIGH_LIMIT_ENABLE":
-		enum = BACnetLimitEnable_HIGH_LIMIT_ENABLE
-	default:
-		enum = 0
-		ok = false
+		return BACnetLimitEnable_HIGH_LIMIT_ENABLE, true
 	}
-	return
+	return 0, false
 }
 
 func BACnetLimitEnableKnows(value uint8) bool {
@@ -104,7 +100,11 @@ func BACnetLimitEnableParse(readBuffer utils.ReadBuffer) (BACnetLimitEnable, err
 	if err != nil {
 		return 0, errors.Wrap(err, "error reading BACnetLimitEnable")
 	}
-	return BACnetLimitEnableByValue(val), nil
+	if enum, ok := BACnetLimitEnableByValue(val); !ok {
+		return 0, errors.Errorf("no value %v found for BACnetLimitEnable", val)
+	} else {
+		return enum, nil
+	}
 }
 
 func (e BACnetLimitEnable) Serialize(writeBuffer utils.WriteBuffer) error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetLockStatus.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetLockStatus.go
index 8cad1e23b..9d642ad2a 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetLockStatus.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetLockStatus.go
@@ -54,40 +54,36 @@ func init() {
 	}
 }
 
-func BACnetLockStatusByValue(value uint8) BACnetLockStatus {
+func BACnetLockStatusByValue(value uint8) (enum BACnetLockStatus, ok bool) {
 	switch value {
 	case 0:
-		return BACnetLockStatus_LOCKED
+		return BACnetLockStatus_LOCKED, true
 	case 1:
-		return BACnetLockStatus_UNLOCKED
+		return BACnetLockStatus_UNLOCKED, true
 	case 2:
-		return BACnetLockStatus_LOCK_FAULT
+		return BACnetLockStatus_LOCK_FAULT, true
 	case 3:
-		return BACnetLockStatus_UNUSED
+		return BACnetLockStatus_UNUSED, true
 	case 4:
-		return BACnetLockStatus_UNKNOWN
+		return BACnetLockStatus_UNKNOWN, true
 	}
-	return 0
+	return 0, false
 }
 
 func BACnetLockStatusByName(value string) (enum BACnetLockStatus, ok bool) {
-	ok = true
 	switch value {
 	case "LOCKED":
-		enum = BACnetLockStatus_LOCKED
+		return BACnetLockStatus_LOCKED, true
 	case "UNLOCKED":
-		enum = BACnetLockStatus_UNLOCKED
+		return BACnetLockStatus_UNLOCKED, true
 	case "LOCK_FAULT":
-		enum = BACnetLockStatus_LOCK_FAULT
+		return BACnetLockStatus_LOCK_FAULT, true
 	case "UNUSED":
-		enum = BACnetLockStatus_UNUSED
+		return BACnetLockStatus_UNUSED, true
 	case "UNKNOWN":
-		enum = BACnetLockStatus_UNKNOWN
-	default:
-		enum = 0
-		ok = false
+		return BACnetLockStatus_UNKNOWN, true
 	}
-	return
+	return 0, false
 }
 
 func BACnetLockStatusKnows(value uint8) bool {
@@ -122,7 +118,11 @@ func BACnetLockStatusParse(readBuffer utils.ReadBuffer) (BACnetLockStatus, error
 	if err != nil {
 		return 0, errors.Wrap(err, "error reading BACnetLockStatus")
 	}
-	return BACnetLockStatusByValue(val), nil
+	if enum, ok := BACnetLockStatusByValue(val); !ok {
+		return 0, errors.Errorf("no value %v found for BACnetLockStatus", val)
+	} else {
+		return enum, nil
+	}
 }
 
 func (e BACnetLockStatus) Serialize(writeBuffer utils.WriteBuffer) error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetLogStatus.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetLogStatus.go
index 93f8df71b..9126bcc98 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetLogStatus.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetLogStatus.go
@@ -50,32 +50,28 @@ func init() {
 	}
 }
 
-func BACnetLogStatusByValue(value uint8) BACnetLogStatus {
+func BACnetLogStatusByValue(value uint8) (enum BACnetLogStatus, ok bool) {
 	switch value {
 	case 0:
-		return BACnetLogStatus_LOG_DISABLED
+		return BACnetLogStatus_LOG_DISABLED, true
 	case 1:
-		return BACnetLogStatus_BUFFER_PURGED
+		return BACnetLogStatus_BUFFER_PURGED, true
 	case 2:
-		return BACnetLogStatus_LOG_INTERRUPTED
+		return BACnetLogStatus_LOG_INTERRUPTED, true
 	}
-	return 0
+	return 0, false
 }
 
 func BACnetLogStatusByName(value string) (enum BACnetLogStatus, ok bool) {
-	ok = true
 	switch value {
 	case "LOG_DISABLED":
-		enum = BACnetLogStatus_LOG_DISABLED
+		return BACnetLogStatus_LOG_DISABLED, true
 	case "BUFFER_PURGED":
-		enum = BACnetLogStatus_BUFFER_PURGED
+		return BACnetLogStatus_BUFFER_PURGED, true
 	case "LOG_INTERRUPTED":
-		enum = BACnetLogStatus_LOG_INTERRUPTED
-	default:
-		enum = 0
-		ok = false
+		return BACnetLogStatus_LOG_INTERRUPTED, true
 	}
-	return
+	return 0, false
 }
 
 func BACnetLogStatusKnows(value uint8) bool {
@@ -110,7 +106,11 @@ func BACnetLogStatusParse(readBuffer utils.ReadBuffer) (BACnetLogStatus, error)
 	if err != nil {
 		return 0, errors.Wrap(err, "error reading BACnetLogStatus")
 	}
-	return BACnetLogStatusByValue(val), nil
+	if enum, ok := BACnetLogStatusByValue(val); !ok {
+		return 0, errors.Errorf("no value %v found for BACnetLogStatus", val)
+	} else {
+		return enum, nil
+	}
 }
 
 func (e BACnetLogStatus) Serialize(writeBuffer utils.WriteBuffer) error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetLoggingType.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetLoggingType.go
index a6867368a..49c1c72db 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetLoggingType.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetLoggingType.go
@@ -52,36 +52,32 @@ func init() {
 	}
 }
 
-func BACnetLoggingTypeByValue(value uint8) BACnetLoggingType {
+func BACnetLoggingTypeByValue(value uint8) (enum BACnetLoggingType, ok bool) {
 	switch value {
 	case 0:
-		return BACnetLoggingType_POLLED
+		return BACnetLoggingType_POLLED, true
 	case 0xFF:
-		return BACnetLoggingType_VENDOR_PROPRIETARY_VALUE
+		return BACnetLoggingType_VENDOR_PROPRIETARY_VALUE, true
 	case 1:
-		return BACnetLoggingType_COV
+		return BACnetLoggingType_COV, true
 	case 2:
-		return BACnetLoggingType_TRIGGERED
+		return BACnetLoggingType_TRIGGERED, true
 	}
-	return 0
+	return 0, false
 }
 
 func BACnetLoggingTypeByName(value string) (enum BACnetLoggingType, ok bool) {
-	ok = true
 	switch value {
 	case "POLLED":
-		enum = BACnetLoggingType_POLLED
+		return BACnetLoggingType_POLLED, true
 	case "VENDOR_PROPRIETARY_VALUE":
-		enum = BACnetLoggingType_VENDOR_PROPRIETARY_VALUE
+		return BACnetLoggingType_VENDOR_PROPRIETARY_VALUE, true
 	case "COV":
-		enum = BACnetLoggingType_COV
+		return BACnetLoggingType_COV, true
 	case "TRIGGERED":
-		enum = BACnetLoggingType_TRIGGERED
-	default:
-		enum = 0
-		ok = false
+		return BACnetLoggingType_TRIGGERED, true
 	}
-	return
+	return 0, false
 }
 
 func BACnetLoggingTypeKnows(value uint8) bool {
@@ -116,7 +112,11 @@ func BACnetLoggingTypeParse(readBuffer utils.ReadBuffer) (BACnetLoggingType, err
 	if err != nil {
 		return 0, errors.Wrap(err, "error reading BACnetLoggingType")
 	}
-	return BACnetLoggingTypeByValue(val), nil
+	if enum, ok := BACnetLoggingTypeByValue(val); !ok {
+		return 0, errors.Errorf("no value %v found for BACnetLoggingType", val)
+	} else {
+		return enum, nil
+	}
 }
 
 func (e BACnetLoggingType) Serialize(writeBuffer utils.WriteBuffer) error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetMaintenance.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetMaintenance.go
index d52826f0d..1ecf96f7a 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetMaintenance.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetMaintenance.go
@@ -54,40 +54,36 @@ func init() {
 	}
 }
 
-func BACnetMaintenanceByValue(value uint8) BACnetMaintenance {
+func BACnetMaintenanceByValue(value uint8) (enum BACnetMaintenance, ok bool) {
 	switch value {
 	case 0:
-		return BACnetMaintenance_NONE
+		return BACnetMaintenance_NONE, true
 	case 0xFF:
-		return BACnetMaintenance_VENDOR_PROPRIETARY_VALUE
+		return BACnetMaintenance_VENDOR_PROPRIETARY_VALUE, true
 	case 1:
-		return BACnetMaintenance_PERIODIC_TEST
+		return BACnetMaintenance_PERIODIC_TEST, true
 	case 2:
-		return BACnetMaintenance_NEED_SERVICE_OPERATIONAL
+		return BACnetMaintenance_NEED_SERVICE_OPERATIONAL, true
 	case 3:
-		return BACnetMaintenance_NEED_SERVICE_INOPERATIVE
+		return BACnetMaintenance_NEED_SERVICE_INOPERATIVE, true
 	}
-	return 0
+	return 0, false
 }
 
 func BACnetMaintenanceByName(value string) (enum BACnetMaintenance, ok bool) {
-	ok = true
 	switch value {
 	case "NONE":
-		enum = BACnetMaintenance_NONE
+		return BACnetMaintenance_NONE, true
 	case "VENDOR_PROPRIETARY_VALUE":
-		enum = BACnetMaintenance_VENDOR_PROPRIETARY_VALUE
+		return BACnetMaintenance_VENDOR_PROPRIETARY_VALUE, true
 	case "PERIODIC_TEST":
-		enum = BACnetMaintenance_PERIODIC_TEST
+		return BACnetMaintenance_PERIODIC_TEST, true
 	case "NEED_SERVICE_OPERATIONAL":
-		enum = BACnetMaintenance_NEED_SERVICE_OPERATIONAL
+		return BACnetMaintenance_NEED_SERVICE_OPERATIONAL, true
 	case "NEED_SERVICE_INOPERATIVE":
-		enum = BACnetMaintenance_NEED_SERVICE_INOPERATIVE
-	default:
-		enum = 0
-		ok = false
+		return BACnetMaintenance_NEED_SERVICE_INOPERATIVE, true
 	}
-	return
+	return 0, false
 }
 
 func BACnetMaintenanceKnows(value uint8) bool {
@@ -122,7 +118,11 @@ func BACnetMaintenanceParse(readBuffer utils.ReadBuffer) (BACnetMaintenance, err
 	if err != nil {
 		return 0, errors.Wrap(err, "error reading BACnetMaintenance")
 	}
-	return BACnetMaintenanceByValue(val), nil
+	if enum, ok := BACnetMaintenanceByValue(val); !ok {
+		return 0, errors.Errorf("no value %v found for BACnetMaintenance", val)
+	} else {
+		return enum, nil
+	}
 }
 
 func (e BACnetMaintenance) Serialize(writeBuffer utils.WriteBuffer) error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetNetworkNumberQuality.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetNetworkNumberQuality.go
index da9b32d40..49149343b 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetNetworkNumberQuality.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetNetworkNumberQuality.go
@@ -52,36 +52,32 @@ func init() {
 	}
 }
 
-func BACnetNetworkNumberQualityByValue(value uint8) BACnetNetworkNumberQuality {
+func BACnetNetworkNumberQualityByValue(value uint8) (enum BACnetNetworkNumberQuality, ok bool) {
 	switch value {
 	case 0:
-		return BACnetNetworkNumberQuality_UNKNOWN
+		return BACnetNetworkNumberQuality_UNKNOWN, true
 	case 1:
-		return BACnetNetworkNumberQuality_LEARNED
+		return BACnetNetworkNumberQuality_LEARNED, true
 	case 2:
-		return BACnetNetworkNumberQuality_LEARNED_CONFIGURED
+		return BACnetNetworkNumberQuality_LEARNED_CONFIGURED, true
 	case 3:
-		return BACnetNetworkNumberQuality_CONFIGURED
+		return BACnetNetworkNumberQuality_CONFIGURED, true
 	}
-	return 0
+	return 0, false
 }
 
 func BACnetNetworkNumberQualityByName(value string) (enum BACnetNetworkNumberQuality, ok bool) {
-	ok = true
 	switch value {
 	case "UNKNOWN":
-		enum = BACnetNetworkNumberQuality_UNKNOWN
+		return BACnetNetworkNumberQuality_UNKNOWN, true
 	case "LEARNED":
-		enum = BACnetNetworkNumberQuality_LEARNED
+		return BACnetNetworkNumberQuality_LEARNED, true
 	case "LEARNED_CONFIGURED":
-		enum = BACnetNetworkNumberQuality_LEARNED_CONFIGURED
+		return BACnetNetworkNumberQuality_LEARNED_CONFIGURED, true
 	case "CONFIGURED":
-		enum = BACnetNetworkNumberQuality_CONFIGURED
-	default:
-		enum = 0
-		ok = false
+		return BACnetNetworkNumberQuality_CONFIGURED, true
 	}
-	return
+	return 0, false
 }
 
 func BACnetNetworkNumberQualityKnows(value uint8) bool {
@@ -116,7 +112,11 @@ func BACnetNetworkNumberQualityParse(readBuffer utils.ReadBuffer) (BACnetNetwork
 	if err != nil {
 		return 0, errors.Wrap(err, "error reading BACnetNetworkNumberQuality")
 	}
-	return BACnetNetworkNumberQualityByValue(val), nil
+	if enum, ok := BACnetNetworkNumberQualityByValue(val); !ok {
+		return 0, errors.Errorf("no value %v found for BACnetNetworkNumberQuality", val)
+	} else {
+		return enum, nil
+	}
 }
 
 func (e BACnetNetworkNumberQuality) Serialize(writeBuffer utils.WriteBuffer) error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetNetworkPortCommand.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetNetworkPortCommand.go
index b1b840e53..f768d1c82 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetNetworkPortCommand.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetNetworkPortCommand.go
@@ -62,56 +62,52 @@ func init() {
 	}
 }
 
-func BACnetNetworkPortCommandByValue(value uint8) BACnetNetworkPortCommand {
+func BACnetNetworkPortCommandByValue(value uint8) (enum BACnetNetworkPortCommand, ok bool) {
 	switch value {
 	case 0:
-		return BACnetNetworkPortCommand_IDLE
+		return BACnetNetworkPortCommand_IDLE, true
 	case 0xFF:
-		return BACnetNetworkPortCommand_VENDOR_PROPRIETARY_VALUE
+		return BACnetNetworkPortCommand_VENDOR_PROPRIETARY_VALUE, true
 	case 1:
-		return BACnetNetworkPortCommand_DISCARD_CHANGES
+		return BACnetNetworkPortCommand_DISCARD_CHANGES, true
 	case 2:
-		return BACnetNetworkPortCommand_RENEW_FD_REGISTRATION
+		return BACnetNetworkPortCommand_RENEW_FD_REGISTRATION, true
 	case 3:
-		return BACnetNetworkPortCommand_RESTART_SLAVE_DISCOVERY
+		return BACnetNetworkPortCommand_RESTART_SLAVE_DISCOVERY, true
 	case 4:
-		return BACnetNetworkPortCommand_RENEW_DHCP
+		return BACnetNetworkPortCommand_RENEW_DHCP, true
 	case 5:
-		return BACnetNetworkPortCommand_RESTART_AUTONEGOTIATION
+		return BACnetNetworkPortCommand_RESTART_AUTONEGOTIATION, true
 	case 6:
-		return BACnetNetworkPortCommand_DISCONNECT
+		return BACnetNetworkPortCommand_DISCONNECT, true
 	case 7:
-		return BACnetNetworkPortCommand_RESTART_PORT
+		return BACnetNetworkPortCommand_RESTART_PORT, true
 	}
-	return 0
+	return 0, false
 }
 
 func BACnetNetworkPortCommandByName(value string) (enum BACnetNetworkPortCommand, ok bool) {
-	ok = true
 	switch value {
 	case "IDLE":
-		enum = BACnetNetworkPortCommand_IDLE
+		return BACnetNetworkPortCommand_IDLE, true
 	case "VENDOR_PROPRIETARY_VALUE":
-		enum = BACnetNetworkPortCommand_VENDOR_PROPRIETARY_VALUE
+		return BACnetNetworkPortCommand_VENDOR_PROPRIETARY_VALUE, true
 	case "DISCARD_CHANGES":
-		enum = BACnetNetworkPortCommand_DISCARD_CHANGES
+		return BACnetNetworkPortCommand_DISCARD_CHANGES, true
 	case "RENEW_FD_REGISTRATION":
-		enum = BACnetNetworkPortCommand_RENEW_FD_REGISTRATION
+		return BACnetNetworkPortCommand_RENEW_FD_REGISTRATION, true
 	case "RESTART_SLAVE_DISCOVERY":
-		enum = BACnetNetworkPortCommand_RESTART_SLAVE_DISCOVERY
+		return BACnetNetworkPortCommand_RESTART_SLAVE_DISCOVERY, true
 	case "RENEW_DHCP":
-		enum = BACnetNetworkPortCommand_RENEW_DHCP
+		return BACnetNetworkPortCommand_RENEW_DHCP, true
 	case "RESTART_AUTONEGOTIATION":
-		enum = BACnetNetworkPortCommand_RESTART_AUTONEGOTIATION
+		return BACnetNetworkPortCommand_RESTART_AUTONEGOTIATION, true
 	case "DISCONNECT":
-		enum = BACnetNetworkPortCommand_DISCONNECT
+		return BACnetNetworkPortCommand_DISCONNECT, true
 	case "RESTART_PORT":
-		enum = BACnetNetworkPortCommand_RESTART_PORT
-	default:
-		enum = 0
-		ok = false
+		return BACnetNetworkPortCommand_RESTART_PORT, true
 	}
-	return
+	return 0, false
 }
 
 func BACnetNetworkPortCommandKnows(value uint8) bool {
@@ -146,7 +142,11 @@ func BACnetNetworkPortCommandParse(readBuffer utils.ReadBuffer) (BACnetNetworkPo
 	if err != nil {
 		return 0, errors.Wrap(err, "error reading BACnetNetworkPortCommand")
 	}
-	return BACnetNetworkPortCommandByValue(val), nil
+	if enum, ok := BACnetNetworkPortCommandByValue(val); !ok {
+		return 0, errors.Errorf("no value %v found for BACnetNetworkPortCommand", val)
+	} else {
+		return enum, nil
+	}
 }
 
 func (e BACnetNetworkPortCommand) Serialize(writeBuffer utils.WriteBuffer) error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetNetworkType.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetNetworkType.go
index 22b33ceb4..de21bc75d 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetNetworkType.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetNetworkType.go
@@ -68,68 +68,64 @@ func init() {
 	}
 }
 
-func BACnetNetworkTypeByValue(value uint8) BACnetNetworkType {
+func BACnetNetworkTypeByValue(value uint8) (enum BACnetNetworkType, ok bool) {
 	switch value {
 	case 0xFF:
-		return BACnetNetworkType_VENDOR_PROPRIETARY_VALUE
+		return BACnetNetworkType_VENDOR_PROPRIETARY_VALUE, true
 	case 0x0:
-		return BACnetNetworkType_ETHERNET
+		return BACnetNetworkType_ETHERNET, true
 	case 0x1:
-		return BACnetNetworkType_ARCNET
+		return BACnetNetworkType_ARCNET, true
 	case 0x2:
-		return BACnetNetworkType_MSTP
+		return BACnetNetworkType_MSTP, true
 	case 0x3:
-		return BACnetNetworkType_PTP
+		return BACnetNetworkType_PTP, true
 	case 0x4:
-		return BACnetNetworkType_LONTALK
+		return BACnetNetworkType_LONTALK, true
 	case 0x5:
-		return BACnetNetworkType_IPV4
+		return BACnetNetworkType_IPV4, true
 	case 0x6:
-		return BACnetNetworkType_ZIGBEE
+		return BACnetNetworkType_ZIGBEE, true
 	case 0x7:
-		return BACnetNetworkType_VIRTUAL
+		return BACnetNetworkType_VIRTUAL, true
 	case 0x8:
-		return BACnetNetworkType_REMOVED_NON_BACNET
+		return BACnetNetworkType_REMOVED_NON_BACNET, true
 	case 0x9:
-		return BACnetNetworkType_IPV6
+		return BACnetNetworkType_IPV6, true
 	case 0xA:
-		return BACnetNetworkType_SERIAL
+		return BACnetNetworkType_SERIAL, true
 	}
-	return 0
+	return 0, false
 }
 
 func BACnetNetworkTypeByName(value string) (enum BACnetNetworkType, ok bool) {
-	ok = true
 	switch value {
 	case "VENDOR_PROPRIETARY_VALUE":
-		enum = BACnetNetworkType_VENDOR_PROPRIETARY_VALUE
+		return BACnetNetworkType_VENDOR_PROPRIETARY_VALUE, true
 	case "ETHERNET":
-		enum = BACnetNetworkType_ETHERNET
+		return BACnetNetworkType_ETHERNET, true
 	case "ARCNET":
-		enum = BACnetNetworkType_ARCNET
+		return BACnetNetworkType_ARCNET, true
 	case "MSTP":
-		enum = BACnetNetworkType_MSTP
+		return BACnetNetworkType_MSTP, true
 	case "PTP":
-		enum = BACnetNetworkType_PTP
+		return BACnetNetworkType_PTP, true
 	case "LONTALK":
-		enum = BACnetNetworkType_LONTALK
+		return BACnetNetworkType_LONTALK, true
 	case "IPV4":
-		enum = BACnetNetworkType_IPV4
+		return BACnetNetworkType_IPV4, true
 	case "ZIGBEE":
-		enum = BACnetNetworkType_ZIGBEE
+		return BACnetNetworkType_ZIGBEE, true
 	case "VIRTUAL":
-		enum = BACnetNetworkType_VIRTUAL
+		return BACnetNetworkType_VIRTUAL, true
 	case "REMOVED_NON_BACNET":
-		enum = BACnetNetworkType_REMOVED_NON_BACNET
+		return BACnetNetworkType_REMOVED_NON_BACNET, true
 	case "IPV6":
-		enum = BACnetNetworkType_IPV6
+		return BACnetNetworkType_IPV6, true
 	case "SERIAL":
-		enum = BACnetNetworkType_SERIAL
-	default:
-		enum = 0
-		ok = false
+		return BACnetNetworkType_SERIAL, true
 	}
-	return
+	return 0, false
 }
 
 func BACnetNetworkTypeKnows(value uint8) bool {
@@ -164,7 +160,11 @@ func BACnetNetworkTypeParse(readBuffer utils.ReadBuffer) (BACnetNetworkType, err
 	if err != nil {
 		return 0, errors.Wrap(err, "error reading BACnetNetworkType")
 	}
-	return BACnetNetworkTypeByValue(val), nil
+	if enum, ok := BACnetNetworkTypeByValue(val); !ok {
+		return 0, errors.Errorf("no value %v found for BACnetNetworkType", val)
+	} else {
+		return enum, nil
+	}
 }
 
 func (e BACnetNetworkType) Serialize(writeBuffer utils.WriteBuffer) error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetNodeType.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetNodeType.go
index 506eca82e..e4f55efd3 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetNodeType.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetNodeType.go
@@ -88,108 +88,104 @@ func init() {
 	}
 }
 
-func BACnetNodeTypeByValue(value uint8) BACnetNodeType {
+func BACnetNodeTypeByValue(value uint8) (enum BACnetNodeType, ok bool) {
 	switch value {
 	case 0x00:
-		return BACnetNodeType_UNKNOWN
+		return BACnetNodeType_UNKNOWN, true
 	case 0x01:
-		return BACnetNodeType_SYSTEM
+		return BACnetNodeType_SYSTEM, true
 	case 0x02:
-		return BACnetNodeType_NETWORK
+		return BACnetNodeType_NETWORK, true
 	case 0x03:
-		return BACnetNodeType_DEVICE
+		return BACnetNodeType_DEVICE, true
 	case 0x04:
-		return BACnetNodeType_ORGANIZATIONAL
+		return BACnetNodeType_ORGANIZATIONAL, true
 	case 0x05:
-		return BACnetNodeType_AREA
+		return BACnetNodeType_AREA, true
 	case 0x06:
-		return BACnetNodeType_EQUIPMENT
+		return BACnetNodeType_EQUIPMENT, true
 	case 0x07:
-		return BACnetNodeType_POINT
+		return BACnetNodeType_POINT, true
 	case 0x08:
-		return BACnetNodeType_COLLECTION
+		return BACnetNodeType_COLLECTION, true
 	case 0x09:
-		return BACnetNodeType_PROPERTY
+		return BACnetNodeType_PROPERTY, true
 	case 0x0A:
-		return BACnetNodeType_FUNCTIONAL
+		return BACnetNodeType_FUNCTIONAL, true
 	case 0x0B:
-		return BACnetNodeType_OTHER
+		return BACnetNodeType_OTHER, true
 	case 0x0C:
-		return BACnetNodeType_SUBSYSTEM
+		return BACnetNodeType_SUBSYSTEM, true
 	case 0x0D:
-		return BACnetNodeType_BUILDING
+		return BACnetNodeType_BUILDING, true
 	case 0x0E:
-		return BACnetNodeType_FLOOR
+		return BACnetNodeType_FLOOR, true
 	case 0x0F:
-		return BACnetNodeType_SECTION
+		return BACnetNodeType_SECTION, true
 	case 0x10:
-		return BACnetNodeType_MODULE
+		return BACnetNodeType_MODULE, true
 	case 0x11:
-		return BACnetNodeType_TREE
+		return BACnetNodeType_TREE, true
 	case 0x12:
-		return BACnetNodeType_MEMBER
+		return BACnetNodeType_MEMBER, true
 	case 0x13:
-		return BACnetNodeType_PROTOCOL
+		return BACnetNodeType_PROTOCOL, true
 	case 0x14:
-		return BACnetNodeType_ROOM
+		return BACnetNodeType_ROOM, true
 	case 0x15:
-		return BACnetNodeType_ZONE
+		return BACnetNodeType_ZONE, true
 	}
-	return 0
+	return 0, false
 }
 
 func BACnetNodeTypeByName(value string) (enum BACnetNodeType, ok bool) {
-	ok = true
 	switch value {
 	case "UNKNOWN":
-		enum = BACnetNodeType_UNKNOWN
+		return BACnetNodeType_UNKNOWN, true
 	case "SYSTEM":
-		enum = BACnetNodeType_SYSTEM
+		return BACnetNodeType_SYSTEM, true
 	case "NETWORK":
-		enum = BACnetNodeType_NETWORK
+		return BACnetNodeType_NETWORK, true
 	case "DEVICE":
-		enum = BACnetNodeType_DEVICE
+		return BACnetNodeType_DEVICE, true
 	case "ORGANIZATIONAL":
-		enum = BACnetNodeType_ORGANIZATIONAL
+		return BACnetNodeType_ORGANIZATIONAL, true
 	case "AREA":
-		enum = BACnetNodeType_AREA
+		return BACnetNodeType_AREA, true
 	case "EQUIPMENT":
-		enum = BACnetNodeType_EQUIPMENT
+		return BACnetNodeType_EQUIPMENT, true
 	case "POINT":
-		enum = BACnetNodeType_POINT
+		return BACnetNodeType_POINT, true
 	case "COLLECTION":
-		enum = BACnetNodeType_COLLECTION
+		return BACnetNodeType_COLLECTION, true
 	case "PROPERTY":
-		enum = BACnetNodeType_PROPERTY
+		return BACnetNodeType_PROPERTY, true
 	case "FUNCTIONAL":
-		enum = BACnetNodeType_FUNCTIONAL
+		return BACnetNodeType_FUNCTIONAL, true
 	case "OTHER":
-		enum = BACnetNodeType_OTHER
+		return BACnetNodeType_OTHER, true
 	case "SUBSYSTEM":
-		enum = BACnetNodeType_SUBSYSTEM
+		return BACnetNodeType_SUBSYSTEM, true
 	case "BUILDING":
-		enum = BACnetNodeType_BUILDING
+		return BACnetNodeType_BUILDING, true
 	case "FLOOR":
-		enum = BACnetNodeType_FLOOR
+		return BACnetNodeType_FLOOR, true
 	case "SECTION":
-		enum = BACnetNodeType_SECTION
+		return BACnetNodeType_SECTION, true
 	case "MODULE":
-		enum = BACnetNodeType_MODULE
+		return BACnetNodeType_MODULE, true
 	case "TREE":
-		enum = BACnetNodeType_TREE
+		return BACnetNodeType_TREE, true
 	case "MEMBER":
-		enum = BACnetNodeType_MEMBER
+		return BACnetNodeType_MEMBER, true
 	case "PROTOCOL":
-		enum = BACnetNodeType_PROTOCOL
+		return BACnetNodeType_PROTOCOL, true
 	case "ROOM":
-		enum = BACnetNodeType_ROOM
+		return BACnetNodeType_ROOM, true
 	case "ZONE":
-		enum = BACnetNodeType_ZONE
-	default:
-		enum = 0
-		ok = false
+		return BACnetNodeType_ZONE, true
 	}
-	return
+	return 0, false
 }
 
 func BACnetNodeTypeKnows(value uint8) bool {
@@ -224,7 +220,11 @@ func BACnetNodeTypeParse(readBuffer utils.ReadBuffer) (BACnetNodeType, error) {
 	if err != nil {
 		return 0, errors.Wrap(err, "error reading BACnetNodeType")
 	}
-	return BACnetNodeTypeByValue(val), nil
+	if enum, ok := BACnetNodeTypeByValue(val); !ok {
+		return 0, errors.Errorf("no value %v found for BACnetNodeType", val)
+	} else {
+		return enum, nil
+	}
 }
 
 func (e BACnetNodeType) Serialize(writeBuffer utils.WriteBuffer) error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetNotifyType.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetNotifyType.go
index 239c1a860..159333d5d 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetNotifyType.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetNotifyType.go
@@ -50,32 +50,28 @@ func init() {
 	}
 }
 
-func BACnetNotifyTypeByValue(value uint8) BACnetNotifyType {
+func BACnetNotifyTypeByValue(value uint8) (enum BACnetNotifyType, ok bool) {
 	switch value {
 	case 0x0:
-		return BACnetNotifyType_ALARM
+		return BACnetNotifyType_ALARM, true
 	case 0x1:
-		return BACnetNotifyType_EVENT
+		return BACnetNotifyType_EVENT, true
 	case 0x2:
-		return BACnetNotifyType_ACK_NOTIFICATION
+		return BACnetNotifyType_ACK_NOTIFICATION, true
 	}
-	return 0
+	return 0, false
 }
 
 func BACnetNotifyTypeByName(value string) (enum BACnetNotifyType, ok bool) {
-	ok = true
 	switch value {
 	case "ALARM":
-		enum = BACnetNotifyType_ALARM
+		return BACnetNotifyType_ALARM, true
 	case "EVENT":
-		enum = BACnetNotifyType_EVENT
+		return BACnetNotifyType_EVENT, true
 	case "ACK_NOTIFICATION":
-		enum = BACnetNotifyType_ACK_NOTIFICATION
-	default:
-		enum = 0
-		ok = false
+		return BACnetNotifyType_ACK_NOTIFICATION, true
 	}
-	return
+	return 0, false
 }
 
 func BACnetNotifyTypeKnows(value uint8) bool {
@@ -110,7 +106,11 @@ func BACnetNotifyTypeParse(readBuffer utils.ReadBuffer) (BACnetNotifyType, error
 	if err != nil {
 		return 0, errors.Wrap(err, "error reading BACnetNotifyType")
 	}
-	return BACnetNotifyTypeByValue(val), nil
+	if enum, ok := BACnetNotifyTypeByValue(val); !ok {
+		return 0, errors.Errorf("no value %v found for BACnetNotifyType", val)
+	} else {
+		return enum, nil
+	}
 }
 
 func (e BACnetNotifyType) Serialize(writeBuffer utils.WriteBuffer) error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetObjectType.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetObjectType.go
index d4d77efa7..691b51f47 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetObjectType.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetObjectType.go
@@ -166,264 +166,260 @@ func init() {
 	}
 }
 
-func BACnetObjectTypeByValue(value uint16) BACnetObjectType {
+func BACnetObjectTypeByValue(value uint16) (enum BACnetObjectType, ok bool) {
 	switch value {
 	case 0:
-		return BACnetObjectType_ANALOG_INPUT
+		return BACnetObjectType_ANALOG_INPUT, true
 	case 0x3FF:
-		return BACnetObjectType_VENDOR_PROPRIETARY_VALUE
+		return BACnetObjectType_VENDOR_PROPRIETARY_VALUE, true
 	case 1:
-		return BACnetObjectType_ANALOG_OUTPUT
+		return BACnetObjectType_ANALOG_OUTPUT, true
 	case 10:
-		return BACnetObjectType_FILE
+		return BACnetObjectType_FILE, true
 	case 11:
-		return BACnetObjectType_GROUP
+		return BACnetObjectType_GROUP, true
 	case 12:
-		return BACnetObjectType_LOOP
+		return BACnetObjectType_LOOP, true
 	case 13:
-		return BACnetObjectType_MULTI_STATE_INPUT
+		return BACnetObjectType_MULTI_STATE_INPUT, true
 	case 14:
-		return BACnetObjectType_MULTI_STATE_OUTPUT
+		return BACnetObjectType_MULTI_STATE_OUTPUT, true
 	case 15:
-		return BACnetObjectType_NOTIFICATION_CLASS
+		return BACnetObjectType_NOTIFICATION_CLASS, true
 	case 16:
-		return BACnetObjectType_PROGRAM
+		return BACnetObjectType_PROGRAM, true
 	case 17:
-		return BACnetObjectType_SCHEDULE
+		return BACnetObjectType_SCHEDULE, true
 	case 18:
-		return BACnetObjectType_AVERAGING
+		return BACnetObjectType_AVERAGING, true
 	case 19:
-		return BACnetObjectType_MULTI_STATE_VALUE
+		return BACnetObjectType_MULTI_STATE_VALUE, true
 	case 2:
-		return BACnetObjectType_ANALOG_VALUE
+		return BACnetObjectType_ANALOG_VALUE, true
 	case 20:
-		return BACnetObjectType_TREND_LOG
+		return BACnetObjectType_TREND_LOG, true
 	case 21:
-		return BACnetObjectType_LIFE_SAFETY_POINT
+		return BACnetObjectType_LIFE_SAFETY_POINT, true
 	case 22:
-		return BACnetObjectType_LIFE_SAFETY_ZONE
+		return BACnetObjectType_LIFE_SAFETY_ZONE, true
 	case 23:
-		return BACnetObjectType_ACCUMULATOR
+		return BACnetObjectType_ACCUMULATOR, true
 	case 24:
-		return BACnetObjectType_PULSE_CONVERTER
+		return BACnetObjectType_PULSE_CONVERTER, true
 	case 25:
-		return BACnetObjectType_EVENT_LOG
+		return BACnetObjectType_EVENT_LOG, true
 	case 26:
-		return BACnetObjectType_GLOBAL_GROUP
+		return BACnetObjectType_GLOBAL_GROUP, true
 	case 27:
-		return BACnetObjectType_TREND_LOG_MULTIPLE
+		return BACnetObjectType_TREND_LOG_MULTIPLE, true
 	case 28:
-		return BACnetObjectType_LOAD_CONTROL
+		return BACnetObjectType_LOAD_CONTROL, true
 	case 29:
-		return BACnetObjectType_STRUCTURED_VIEW
+		return BACnetObjectType_STRUCTURED_VIEW, true
 	case 3:
-		return BACnetObjectType_BINARY_INPUT
+		return BACnetObjectType_BINARY_INPUT, true
 	case 30:
-		return BACnetObjectType_ACCESS_DOOR
+		return BACnetObjectType_ACCESS_DOOR, true
 	case 31:
-		return BACnetObjectType_TIMER
+		return BACnetObjectType_TIMER, true
 	case 32:
-		return BACnetObjectType_ACCESS_CREDENTIAL
+		return BACnetObjectType_ACCESS_CREDENTIAL, true
 	case 33:
-		return BACnetObjectType_ACCESS_POINT
+		return BACnetObjectType_ACCESS_POINT, true
 	case 34:
-		return BACnetObjectType_ACCESS_RIGHTS
+		return BACnetObjectType_ACCESS_RIGHTS, true
 	case 35:
-		return BACnetObjectType_ACCESS_USER
+		return BACnetObjectType_ACCESS_USER, true
 	case 36:
-		return BACnetObjectType_ACCESS_ZONE
+		return BACnetObjectType_ACCESS_ZONE, true
 	case 37:
-		return BACnetObjectType_CREDENTIAL_DATA_INPUT
+		return BACnetObjectType_CREDENTIAL_DATA_INPUT, true
 	case 38:
-		return BACnetObjectType_NETWORK_SECURITY
+		return BACnetObjectType_NETWORK_SECURITY, true
 	case 39:
-		return BACnetObjectType_BITSTRING_VALUE
+		return BACnetObjectType_BITSTRING_VALUE, true
 	case 4:
-		return BACnetObjectType_BINARY_OUTPUT
+		return BACnetObjectType_BINARY_OUTPUT, true
 	case 40:
-		return BACnetObjectType_CHARACTERSTRING_VALUE
+		return BACnetObjectType_CHARACTERSTRING_VALUE, true
 	case 41:
-		return BACnetObjectType_DATEPATTERN_VALUE
+		return BACnetObjectType_DATEPATTERN_VALUE, true
 	case 42:
-		return BACnetObjectType_DATE_VALUE
+		return BACnetObjectType_DATE_VALUE, true
 	case 43:
-		return BACnetObjectType_DATETIMEPATTERN_VALUE
+		return BACnetObjectType_DATETIMEPATTERN_VALUE, true
 	case 44:
-		return BACnetObjectType_DATETIME_VALUE
+		return BACnetObjectType_DATETIME_VALUE, true
 	case 45:
-		return BACnetObjectType_INTEGER_VALUE
+		return BACnetObjectType_INTEGER_VALUE, true
 	case 46:
-		return BACnetObjectType_LARGE_ANALOG_VALUE
+		return BACnetObjectType_LARGE_ANALOG_VALUE, true
 	case 47:
-		return BACnetObjectType_OCTETSTRING_VALUE
+		return BACnetObjectType_OCTETSTRING_VALUE, true
 	case 48:
-		return BACnetObjectType_POSITIVE_INTEGER_VALUE
+		return BACnetObjectType_POSITIVE_INTEGER_VALUE, true
 	case 49:
-		return BACnetObjectType_TIMEPATTERN_VALUE
+		return BACnetObjectType_TIMEPATTERN_VALUE, true
 	case 5:
-		return BACnetObjectType_BINARY_VALUE
+		return BACnetObjectType_BINARY_VALUE, true
 	case 50:
-		return BACnetObjectType_TIME_VALUE
+		return BACnetObjectType_TIME_VALUE, true
 	case 51:
-		return BACnetObjectType_NOTIFICATION_FORWARDER
+		return BACnetObjectType_NOTIFICATION_FORWARDER, true
 	case 52:
-		return BACnetObjectType_ALERT_ENROLLMENT
+		return BACnetObjectType_ALERT_ENROLLMENT, true
 	case 53:
-		return BACnetObjectType_CHANNEL
+		return BACnetObjectType_CHANNEL, true
 	case 54:
-		return BACnetObjectType_LIGHTING_OUTPUT
+		return BACnetObjectType_LIGHTING_OUTPUT, true
 	case 55:
-		return BACnetObjectType_BINARY_LIGHTING_OUTPUT
+		return BACnetObjectType_BINARY_LIGHTING_OUTPUT, true
 	case 56:
-		return BACnetObjectType_NETWORK_PORT
+		return BACnetObjectType_NETWORK_PORT, true
 	case 57:
-		return BACnetObjectType_ELEVATOR_GROUP
+		return BACnetObjectType_ELEVATOR_GROUP, true
 	case 58:
-		return BACnetObjectType_ESCALATOR
+		return BACnetObjectType_ESCALATOR, true
 	case 59:
-		return BACnetObjectType_LIFT
+		return BACnetObjectType_LIFT, true
 	case 6:
-		return BACnetObjectType_CALENDAR
+		return BACnetObjectType_CALENDAR, true
 	case 7:
-		return BACnetObjectType_COMMAND
+		return BACnetObjectType_COMMAND, true
 	case 8:
-		return BACnetObjectType_DEVICE
+		return BACnetObjectType_DEVICE, true
 	case 9:
-		return BACnetObjectType_EVENT_ENROLLMENT
+		return BACnetObjectType_EVENT_ENROLLMENT, true
 	}
-	return 0
+	return 0, false
 }
 
 func BACnetObjectTypeByName(value string) (enum BACnetObjectType, ok bool) {
-	ok = true
 	switch value {
 	case "ANALOG_INPUT":
-		enum = BACnetObjectType_ANALOG_INPUT
+		return BACnetObjectType_ANALOG_INPUT, true
 	case "VENDOR_PROPRIETARY_VALUE":
-		enum = BACnetObjectType_VENDOR_PROPRIETARY_VALUE
+		return BACnetObjectType_VENDOR_PROPRIETARY_VALUE, true
 	case "ANALOG_OUTPUT":
-		enum = BACnetObjectType_ANALOG_OUTPUT
+		return BACnetObjectType_ANALOG_OUTPUT, true
 	case "FILE":
-		enum = BACnetObjectType_FILE
+		return BACnetObjectType_FILE, true
 	case "GROUP":
-		enum = BACnetObjectType_GROUP
+		return BACnetObjectType_GROUP, true
 	case "LOOP":
-		enum = BACnetObjectType_LOOP
+		return BACnetObjectType_LOOP, true
 	case "MULTI_STATE_INPUT":
-		enum = BACnetObjectType_MULTI_STATE_INPUT
+		return BACnetObjectType_MULTI_STATE_INPUT, true
 	case "MULTI_STATE_OUTPUT":
-		enum = BACnetObjectType_MULTI_STATE_OUTPUT
+		return BACnetObjectType_MULTI_STATE_OUTPUT, true
 	case "NOTIFICATION_CLASS":
-		enum = BACnetObjectType_NOTIFICATION_CLASS
+		return BACnetObjectType_NOTIFICATION_CLASS, true
 	case "PROGRAM":
-		enum = BACnetObjectType_PROGRAM
+		return BACnetObjectType_PROGRAM, true
 	case "SCHEDULE":
-		enum = BACnetObjectType_SCHEDULE
+		return BACnetObjectType_SCHEDULE, true
 	case "AVERAGING":
-		enum = BACnetObjectType_AVERAGING
+		return BACnetObjectType_AVERAGING, true
 	case "MULTI_STATE_VALUE":
-		enum = BACnetObjectType_MULTI_STATE_VALUE
+		return BACnetObjectType_MULTI_STATE_VALUE, true
 	case "ANALOG_VALUE":
-		enum = BACnetObjectType_ANALOG_VALUE
+		return BACnetObjectType_ANALOG_VALUE, true
 	case "TREND_LOG":
-		enum = BACnetObjectType_TREND_LOG
+		return BACnetObjectType_TREND_LOG, true
 	case "LIFE_SAFETY_POINT":
-		enum = BACnetObjectType_LIFE_SAFETY_POINT
+		return BACnetObjectType_LIFE_SAFETY_POINT, true
 	case "LIFE_SAFETY_ZONE":
-		enum = BACnetObjectType_LIFE_SAFETY_ZONE
+		return BACnetObjectType_LIFE_SAFETY_ZONE, true
 	case "ACCUMULATOR":
-		enum = BACnetObjectType_ACCUMULATOR
+		return BACnetObjectType_ACCUMULATOR, true
 	case "PULSE_CONVERTER":
-		enum = BACnetObjectType_PULSE_CONVERTER
+		return BACnetObjectType_PULSE_CONVERTER, true
 	case "EVENT_LOG":
-		enum = BACnetObjectType_EVENT_LOG
+		return BACnetObjectType_EVENT_LOG, true
 	case "GLOBAL_GROUP":
-		enum = BACnetObjectType_GLOBAL_GROUP
+		return BACnetObjectType_GLOBAL_GROUP, true
 	case "TREND_LOG_MULTIPLE":
-		enum = BACnetObjectType_TREND_LOG_MULTIPLE
+		return BACnetObjectType_TREND_LOG_MULTIPLE, true
 	case "LOAD_CONTROL":
-		enum = BACnetObjectType_LOAD_CONTROL
+		return BACnetObjectType_LOAD_CONTROL, true
 	case "STRUCTURED_VIEW":
-		enum = BACnetObjectType_STRUCTURED_VIEW
+		return BACnetObjectType_STRUCTURED_VIEW, true
 	case "BINARY_INPUT":
-		enum = BACnetObjectType_BINARY_INPUT
+		return BACnetObjectType_BINARY_INPUT, true
 	case "ACCESS_DOOR":
-		enum = BACnetObjectType_ACCESS_DOOR
+		return BACnetObjectType_ACCESS_DOOR, true
 	case "TIMER":
-		enum = BACnetObjectType_TIMER
+		return BACnetObjectType_TIMER, true
 	case "ACCESS_CREDENTIAL":
-		enum = BACnetObjectType_ACCESS_CREDENTIAL
+		return BACnetObjectType_ACCESS_CREDENTIAL, true
 	case "ACCESS_POINT":
-		enum = BACnetObjectType_ACCESS_POINT
+		return BACnetObjectType_ACCESS_POINT, true
 	case "ACCESS_RIGHTS":
-		enum = BACnetObjectType_ACCESS_RIGHTS
+		return BACnetObjectType_ACCESS_RIGHTS, true
 	case "ACCESS_USER":
-		enum = BACnetObjectType_ACCESS_USER
+		return BACnetObjectType_ACCESS_USER, true
 	case "ACCESS_ZONE":
-		enum = BACnetObjectType_ACCESS_ZONE
+		return BACnetObjectType_ACCESS_ZONE, true
 	case "CREDENTIAL_DATA_INPUT":
-		enum = BACnetObjectType_CREDENTIAL_DATA_INPUT
+		return BACnetObjectType_CREDENTIAL_DATA_INPUT, true
 	case "NETWORK_SECURITY":
-		enum = BACnetObjectType_NETWORK_SECURITY
+		return BACnetObjectType_NETWORK_SECURITY, true
 	case "BITSTRING_VALUE":
-		enum = BACnetObjectType_BITSTRING_VALUE
+		return BACnetObjectType_BITSTRING_VALUE, true
 	case "BINARY_OUTPUT":
-		enum = BACnetObjectType_BINARY_OUTPUT
+		return BACnetObjectType_BINARY_OUTPUT, true
 	case "CHARACTERSTRING_VALUE":
-		enum = BACnetObjectType_CHARACTERSTRING_VALUE
+		return BACnetObjectType_CHARACTERSTRING_VALUE, true
 	case "DATEPATTERN_VALUE":
-		enum = BACnetObjectType_DATEPATTERN_VALUE
+		return BACnetObjectType_DATEPATTERN_VALUE, true
 	case "DATE_VALUE":
-		enum = BACnetObjectType_DATE_VALUE
+		return BACnetObjectType_DATE_VALUE, true
 	case "DATETIMEPATTERN_VALUE":
-		enum = BACnetObjectType_DATETIMEPATTERN_VALUE
+		return BACnetObjectType_DATETIMEPATTERN_VALUE, true
 	case "DATETIME_VALUE":
-		enum = BACnetObjectType_DATETIME_VALUE
+		return BACnetObjectType_DATETIME_VALUE, true
 	case "INTEGER_VALUE":
-		enum = BACnetObjectType_INTEGER_VALUE
+		return BACnetObjectType_INTEGER_VALUE, true
 	case "LARGE_ANALOG_VALUE":
-		enum = BACnetObjectType_LARGE_ANALOG_VALUE
+		return BACnetObjectType_LARGE_ANALOG_VALUE, true
 	case "OCTETSTRING_VALUE":
-		enum = BACnetObjectType_OCTETSTRING_VALUE
+		return BACnetObjectType_OCTETSTRING_VALUE, true
 	case "POSITIVE_INTEGER_VALUE":
-		enum = BACnetObjectType_POSITIVE_INTEGER_VALUE
+		return BACnetObjectType_POSITIVE_INTEGER_VALUE, true
 	case "TIMEPATTERN_VALUE":
-		enum = BACnetObjectType_TIMEPATTERN_VALUE
+		return BACnetObjectType_TIMEPATTERN_VALUE, true
 	case "BINARY_VALUE":
-		enum = BACnetObjectType_BINARY_VALUE
+		return BACnetObjectType_BINARY_VALUE, true
 	case "TIME_VALUE":
-		enum = BACnetObjectType_TIME_VALUE
+		return BACnetObjectType_TIME_VALUE, true
 	case "NOTIFICATION_FORWARDER":
-		enum = BACnetObjectType_NOTIFICATION_FORWARDER
+		return BACnetObjectType_NOTIFICATION_FORWARDER, true
 	case "ALERT_ENROLLMENT":
-		enum = BACnetObjectType_ALERT_ENROLLMENT
+		return BACnetObjectType_ALERT_ENROLLMENT, true
 	case "CHANNEL":
-		enum = BACnetObjectType_CHANNEL
+		return BACnetObjectType_CHANNEL, true
 	case "LIGHTING_OUTPUT":
-		enum = BACnetObjectType_LIGHTING_OUTPUT
+		return BACnetObjectType_LIGHTING_OUTPUT, true
 	case "BINARY_LIGHTING_OUTPUT":
-		enum = BACnetObjectType_BINARY_LIGHTING_OUTPUT
+		return BACnetObjectType_BINARY_LIGHTING_OUTPUT, true
 	case "NETWORK_PORT":
-		enum = BACnetObjectType_NETWORK_PORT
+		return BACnetObjectType_NETWORK_PORT, true
 	case "ELEVATOR_GROUP":
-		enum = BACnetObjectType_ELEVATOR_GROUP
+		return BACnetObjectType_ELEVATOR_GROUP, true
 	case "ESCALATOR":
-		enum = BACnetObjectType_ESCALATOR
+		return BACnetObjectType_ESCALATOR, true
 	case "LIFT":
-		enum = BACnetObjectType_LIFT
+		return BACnetObjectType_LIFT, true
 	case "CALENDAR":
-		enum = BACnetObjectType_CALENDAR
+		return BACnetObjectType_CALENDAR, true
 	case "COMMAND":
-		enum = BACnetObjectType_COMMAND
+		return BACnetObjectType_COMMAND, true
 	case "DEVICE":
-		enum = BACnetObjectType_DEVICE
+		return BACnetObjectType_DEVICE, true
 	case "EVENT_ENROLLMENT":
-		enum = BACnetObjectType_EVENT_ENROLLMENT
-	default:
-		enum = 0
-		ok = false
+		return BACnetObjectType_EVENT_ENROLLMENT, true
 	}
-	return
+	return 0, false
 }
 
 func BACnetObjectTypeKnows(value uint16) bool {
@@ -458,7 +454,11 @@ func BACnetObjectTypeParse(readBuffer utils.ReadBuffer) (BACnetObjectType, error
 	if err != nil {
 		return 0, errors.Wrap(err, "error reading BACnetObjectType")
 	}
-	return BACnetObjectTypeByValue(val), nil
+	if enum, ok := BACnetObjectTypeByValue(val); !ok {
+		return 0, errors.Errorf("no value %v found for BACnetObjectType", val)
+	} else {
+		return enum, nil
+	}
 }
 
 func (e BACnetObjectType) Serialize(writeBuffer utils.WriteBuffer) error {
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetObjectTypesSupported.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetObjectTypesSupported.go
index ea1442a4a..2ecf28e80 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetObjectTypesSupported.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetObjectTypesSupported.go
@@ -164,260 +164,256 @@ func init() {
 	}
 }
 
-func BACnetObjectTypesSupportedByValue(value uint8) BACnetObjectTypesSupported {
+func BACnetObjectTypesSupportedByValue(value uint8) (enum BACnetObjectTypesSupported, ok bool) {
 	switch value {
 	case 0:
-		return BACnetObjectTypesSupported_ANALOG_INPUT
+		return BACnetObjectTypesSupported_ANALOG_INPUT, true
 	case 1:
-		return BACnetObjectTypesSupported_ANALOG_OUTPUT
+		return BACnetObjectTypesSupported_ANALOG_OUTPUT, true
 	case 10:
-		return BACnetObjectTypesSupported_FILE
+		return BACnetObjectTypesSupported_FILE, true
 	case 11:
-		return BACnetObjectTypesSupported_GROUP
+		return BACnetObjectTypesSupported_GROUP, true
 	case 12:
-		return BACnetObjectTypesSupported_LOOP
+		return BACnetObjectTypesSupported_LOOP, true
 	case 13:
-		return BACnetObjectTypesSupported_MULTI_STATE_INPUT
+		return BACnetObjectTypesSupported_MULTI_STATE_INPUT, true
 	case 14:
-		return BACnetObjectTypesSupported_MULTI_STATE_OUTPUT
+		return BACnetObjectTypesSupported_MULTI_STATE_OUTPUT, true
 	case 15:
-		return BACnetObjectTypesSupported_NOTIFICATION_CLASS
+		return BACnetObjectTypesSupported_NOTIFICATION_CLASS, true
 	case 16:
-		return BACnetObjectTypesSupported_PROGRAM
+		return BACnetObjectTypesSupported_PROGRAM, true
 	case 17:
-		return BACnetObjectTypesSupported_SCHEDULE
+		return BACnetObjectTypesSupported_SCHEDULE, true
 	case 18:
-		return BACnetObjectTypesSupported_AVERAGING
+		return BACnetObjectTypesSupported_AVERAGING, true
 	case 19:
-		return BACnetObjectTypesSupported_MULTI_STATE_VALUE
+		return BACnetObjectTypesSupported_MULTI_STATE_VALUE, true
 	case 2:
-		return BACnetObjectTypesSupported_ANALOG_VALUE
+		return BACnetObjectTypesSupported_ANALOG_VALUE, true
 	case 20:
-		return BACnetObjectTypesSupported_TREND_LOG
+		return BACnetObjectTypesSupported_TREND_LOG, true
 	case 21:
-		return BACnetObjectTypesSupported_LIFE_SAFETY_POINT
+		return BACnetObjectTypesSupported_LIFE_SAFETY_POINT, true
 	case 22:
-		return BACnetObjectTypesSupported_LIFE_SAFETY_ZONE
+		return BACnetObjectTypesSupported_LIFE_SAFETY_ZONE, true
 	case 23:
-		return BACnetObjectTypesSupported_ACCUMULATOR
+		return BACnetObjectTypesSupported_ACCUMULATOR, true
 	case 24:
-		return BACnetObjectTypesSupported_PULSE_CONVERTER
+		return BACnetObjectTypesSupported_PULSE_CONVERTER, true
 	case 25:
-		return BACnetObjectTypesSupported_EVENT_LOG
+		return BACnetObjectTypesSupported_EVENT_LOG, true
 	case 26:
-		return BACnetObjectTypesSupported_GLOBAL_GROUP
+		return BACnetObjectTypesSupported_GLOBAL_GROUP, true
 	case 27:
-		return BACnetObjectTypesSupported_TREND_LOG_MULTIPLE
+		return BACnetObjectTypesSupported_TREND_LOG_MULTIPLE, true
 	case 28:
-		return BACnetObjectTypesSupported_LOAD_CONTROL
+		return BACnetObjectTypesSupported_LOAD_CONTROL, true
 	case 29:
-		return BACnetObjectTypesSupported_STRUCTURED_VIEW
+		return BACnetObjectTypesSupported_STRUCTURED_VIEW, true
 	case 3:
-		return BACnetObjectTypesSupported_BINARY_INPUT
+		return BACnetObjectTypesSupported_BINARY_INPUT, true
 	case 30:
-		return BACnetObjectTypesSupported_ACCESS_DOOR
+		return BACnetObjectTypesSupported_ACCESS_DOOR, true
 	case 31:
-		return BACnetObjectTypesSupported_TIMER
+		return BACnetObjectTypesSupported_TIMER, true
 	case 32:
-		return BACnetObjectTypesSupported_ACCESS_CREDENTIAL
+		return BACnetObjectTypesSupported_ACCESS_CREDENTIAL, true
 	case 33:
-		return BACnetObjectTypesSupported_ACCESS_POINT
+		return BACnetObjectTypesSupported_ACCESS_POINT, true
 	case 34:
-		return BACnetObjectTypesSupported_ACCESS_RIGHTS
+		return BACnetObjectTypesSupported_ACCESS_RIGHTS, true
 	case 35:
-		return BACnetObjectTypesSupported_ACCESS_USER
+		return BACnetObjectTypesSupported_ACCESS_USER, true
 	case 36:
-		return BACnetObjectTypesSupported_ACCESS_ZONE
+		return BACnetObjectTypesSupported_ACCESS_ZONE, true
 	case 37:
-		return BACnetObjectTypesSupported_CREDENTIAL_DATA_INPUT
+		return BACnetObjectTypesSupported_CREDENTIAL_DATA_INPUT, true
 	case 38:
-		return BACnetObjectTypesSupported_NETWORK_SECURITY
+		return BACnetObjectTypesSupported_NETWORK_SECURITY, true
 	case 39:
-		return BACnetObjectTypesSupported_BITSTRING_VALUE
+		return BACnetObjectTypesSupported_BITSTRING_VALUE, true
 	case 4:
-		return BACnetObjectTypesSupported_BINARY_OUTPUT
+		return BACnetObjectTypesSupported_BINARY_OUTPUT, true
 	case 40:
-		return BACnetObjectTypesSupported_CHARACTERSTRING_VALUE
+		return BACnetObjectTypesSupported_CHARACTERSTRING_VALUE, true
 	case 41:
-		return BACnetObjectTypesSupported_DATEPATTERN_VALUE
+		return BACnetObjectTypesSupported_DATEPATTERN_VALUE, true
 	case 42:
-		return BACnetObjectTypesSupported_DATE_VALUE
+		return BACnetObjectTypesSupported_DATE_VALUE, true
 	case 43:
-		return BACnetObjectTypesSupported_DATETIMEPATTERN_VALUE
+		return BACnetObjectTypesSupported_DATETIMEPATTERN_VALUE, true
 	case 44:
-		return BACnetObjectTypesSupported_DATETIME_VALUE
+		return BACnetObjectTypesSupported_DATETIME_VALUE, true
 	case 45:
-		return BACnetObjectTypesSupported_INTEGER_VALUE
+		return BACnetObjectTypesSupported_INTEGER_VALUE, true
 	case 46:
-		return BACnetObjectTypesSupported_LARGE_ANALOG_VALUE
+		return BACnetObjectTypesSupported_LARGE_ANALOG_VALUE, true
 	case 47:
-		return BACnetObjectTypesSupported_OCTETSTRING_VALUE
+		return BACnetObjectTypesSupported_OCTETSTRING_VALUE, true
 	case 48:
-		return BACnetObjectTypesSupported_POSITIVE_INTEGER_VALUE
+		return BACnetObjectTypesSupported_POSITIVE_INTEGER_VALUE, true
 	case 49:
-		return BACnetObjectTypesSupported_TIMEPATTERN_VALUE
+		return BACnetObjectTypesSupported_TIMEPATTERN_VALUE, true
 	case 5:
-		return BACnetObjectTypesSupported_BINARY_VALUE
+		return BACnetObjectTypesSupported_BINARY_VALUE, true
 	case 50:
-		return BACnetObjectTypesSupported_TIME_VALUE
+		return BACnetObjectTypesSupported_TIME_VALUE, true
 	case 51:
-		return BACnetObjectTypesSupported_NOTIFICATION_FORWARDER
+		return BACnetObjectTypesSupported_NOTIFICATION_FORWARDER, true
 	case 52:
-		return BACnetObjectTypesSupported_ALERT_ENROLLMENT
+		return BACnetObjectTypesSupported_ALERT_ENROLLMENT, true
 	case 53:
-		return BACnetObjectTypesSupported_CHANNEL
+		return BACnetObjectTypesSupported_CHANNEL, true
 	case 54:
-		return BACnetObjectTypesSupported_LIGHTING_OUTPUT
+		return BACnetObjectTypesSupported_LIGHTING_OUTPUT, true
 	case 55:
-		return BACnetObjectTypesSupported_BINARY_LIGHTING_OUTPUT
+		return BACnetObjectTypesSupported_BINARY_LIGHTING_OUTPUT, true
 	case 56:
-		return BACnetObjectTypesSupported_NETWORK_PORT
+		return BACnetObjectTypesSupported_NETWORK_PORT, true
 	case 57:
-		return BACnetObjectTypesSupported_ELEVATOR_GROUP
+		return BACnetObjectTypesSupported_ELEVATOR_GROUP, true
 	case 58:
-		return BACnetObjectTypesSupported_ESCALATOR
+		return BACnetObjectTypesSupported_ESCALATOR, true
 	case 59:
-		return BACnetObjectTypesSupported_LIFT
+		return BACnetObjectTypesSupported_LIFT, true
 	case 6:
-		return BACnetObjectTypesSupported_CALENDAR
+		return BACnetObjectTypesSupported_CALENDAR, true
 	case 7:
-		return BACnetObjectTypesSupported_COMMAND
+		return BACnetObjectTypesSupported_COMMAND, true
 	case 8:
-		return BACnetObjectTypesSupported_DEVICE
+		return BACnetObjectTypesSupported_DEVICE, true
 	case 9:
-		return BACnetObjectTypesSupported_EVENT_ENROLLMENT
+		return BACnetObjectTypesSupported_EVENT_ENROLLMENT, true
 	}
-	return 0
+	return 0, false
 }
 
 func BACnetObjectTypesSupportedByName(value string) (enum BACnetObjectTypesSupported, ok bool) {
-	ok = true
 	switch value {
 	case "ANALOG_INPUT":
-		enum = BACnetObjectTypesSupported_ANALOG_INPUT
+		return BACnetObjectTypesSupported_ANALOG_INPUT, true
 	case "ANALOG_OUTPUT":
-		enum = BACnetObjectTypesSupported_ANALOG_OUTPUT
+		return BACnetObjectTypesSupported_ANALOG_OUTPUT, true
 	case "FILE":
-		enum = BACnetObjectTypesSupported_FILE
+		return BACnetObjectTypesSupported_FILE, true
 	case "GROUP":
-		enum = BACnetObjectTypesSupported_GROUP
+		return BACnetObjectTypesSupported_GROUP, true
 	case "LOOP":
-		enum = BACnetObjectTypesSupported_LOOP
+		return BACnetObjectTypesSupported_LOOP, true
 	case "MULTI_STATE_INPUT":
-		enum = BACnetObjectTypesSupported_MULTI_STATE_INPUT
+		return BACnetObjectTypesSupported_MULTI_STATE_INPUT, true
 	case "MULTI_STATE_OUTPUT":
-		enum = BACnetObjectTypesSupported_MULTI_STATE_OUTPUT
+		return BACnetObjectTypesSupported_MULTI_STATE_OUTPUT, true
 	case "NOTIFICATION_CLASS":
-		enum = BACnetObjectTypesSupported_NOTIFICATION_CLASS
+		return BACnetObjectTypesSupported_NOTIFICATION_CLASS, true
 	case "PROGRAM":
-		enum = BACnetObjectTypesSupported_PROGRAM
+		return BACnetObjectTypesSupported_PROGRAM, true
 	case "SCHEDULE":
-		enum = BACnetObjectTypesSupported_SCHEDULE
+		return BACnetObjectTypesSupported_SCHEDULE, true
 	case "AVERAGING":
-		enum = BACnetObjectTypesSupported_AVERAGING
+		return BACnetObjectTypesSupported_AVERAGING, true
 	case "MULTI_STATE_VALUE":
... 41321 lines suppressed ...