You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@plc4x.apache.org by hu...@apache.org on 2021/01/23 12:07:54 UTC

[plc4x] 01/02: Merge branch 'develop' into feature/native_opua_client

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

hutcheb pushed a commit to branch feature/native_opua_client
in repository https://gitbox.apache.org/repos/asf/plc4x.git

commit a6e41a9f0691aa33cf4c612b71c7482f6fe898ba
Merge: 11b9d51 0baecae
Author: hutcheb <be...@gmail.com>
AuthorDate: Fri Jan 22 07:04:00 2021 -0500

    Merge branch 'develop' into feature/native_opua_client

 LICENSE                                            |    1 +
 NOTICE                                             |    5 +-
 RELEASE_NOTES                                      |    2 +
 .../language/go/GoLanguageTemplateHelper.java      |   25 +-
 .../main/resources/templates/go/enum-template.ftlh |   16 +-
 .../templates/go/parser-factory-template.ftlh      |    2 +-
 plc4go/cmd/main/drivers/bacnetip_test.go           |    2 +-
 plc4go/cmd/main/drivers/knxnetip_test.go           |  433 +-
 plc4go/cmd/main/drivers/modbus_test.go             |    8 +-
 plc4go/cmd/main/drivers/s7_test.go                 |    2 +-
 .../cmd/main/drivers/tests/knx_discovery_test.go   | 1224 ++--
 .../cmd/main/drivers/tests/modbus_driver_test.go   |    2 +-
 .../drivers/tests/modbus_parser_serializer_test.go |    2 +-
 plc4go/go.sum                                      |    1 +
 .../plc4go/bacnetip/readwrite/ParserHelper.go      |    2 +-
 .../plc4go/bacnetip/readwrite/model/APDU.go        |    2 +-
 .../plc4go/bacnetip/readwrite/model/APDUAbort.go   |    4 +-
 .../bacnetip/readwrite/model/APDUComplexAck.go     |    4 +-
 .../readwrite/model/APDUConfirmedRequest.go        |    4 +-
 .../plc4go/bacnetip/readwrite/model/APDUError.go   |    4 +-
 .../plc4go/bacnetip/readwrite/model/APDUReject.go  |    4 +-
 .../bacnetip/readwrite/model/APDUSegmentAck.go     |    4 +-
 .../bacnetip/readwrite/model/APDUSimpleAck.go      |    4 +-
 .../readwrite/model/APDUUnconfirmedRequest.go      |    4 +-
 .../bacnetip/readwrite/model/ApplicationTag.go     |   38 +-
 .../bacnetip/readwrite/model/BACnetAddress.go      |    2 +-
 .../readwrite/model/BACnetConfirmedServiceACK.go   |    2 +-
 .../BACnetConfirmedServiceACKAtomicReadFile.go     |    2 +-
 .../BACnetConfirmedServiceACKAtomicWriteFile.go    |    2 +-
 ...tConfirmedServiceACKConfirmedPrivateTransfer.go |    2 +-
 .../model/BACnetConfirmedServiceACKCreateObject.go |    2 +-
 .../BACnetConfirmedServiceACKGetAlarmSummary.go    |    2 +-
 ...ACnetConfirmedServiceACKGetEnrollmentSummary.go |    2 +-
 ...BACnetConfirmedServiceACKGetEventInformation.go |    2 +-
 .../model/BACnetConfirmedServiceACKReadProperty.go |    2 +-
 ...ACnetConfirmedServiceACKReadPropertyMultiple.go |    2 +-
 .../model/BACnetConfirmedServiceACKReadRange.go    |    2 +-
 ...BACnetConfirmedServiceACKRemovedAuthenticate.go |    2 +-
 ...rmedServiceACKRemovedReadPropertyConditional.go |    2 +-
 .../model/BACnetConfirmedServiceACKVTData.go       |    2 +-
 .../model/BACnetConfirmedServiceACKVTOpen.go       |    2 +-
 .../model/BACnetConfirmedServiceRequest.go         |    2 +-
 ...ACnetConfirmedServiceRequestAcknowledgeAlarm.go |    2 +-
 .../BACnetConfirmedServiceRequestAddListElement.go |    2 +-
 .../BACnetConfirmedServiceRequestAtomicReadFile.go |    2 +-
 ...BACnetConfirmedServiceRequestAtomicWriteFile.go |    2 +-
 ...firmedServiceRequestConfirmedCOVNotification.go |    2 +-
 ...rviceRequestConfirmedCOVNotificationMultiple.go |    2 +-
 ...rmedServiceRequestConfirmedEventNotification.go |    2 +-
 ...firmedServiceRequestConfirmedPrivateTransfer.go |    2 +-
 ...tConfirmedServiceRequestConfirmedTextMessage.go |    2 +-
 .../BACnetConfirmedServiceRequestCreateObject.go   |    2 +-
 .../BACnetConfirmedServiceRequestDeleteObject.go   |    2 +-
 ...rmedServiceRequestDeviceCommunicationControl.go |    2 +-
 ...tConfirmedServiceRequestGetEnrollmentSummary.go |    2 +-
 ...etConfirmedServiceRequestGetEventInformation.go |    2 +-
 ...etConfirmedServiceRequestLifeSafetyOperation.go |    2 +-
 .../BACnetConfirmedServiceRequestReadProperty.go   |    2 +-
 ...tConfirmedServiceRequestReadPropertyMultiple.go |    2 +-
 .../BACnetConfirmedServiceRequestReadRange.go      |    2 +-
 ...netConfirmedServiceRequestReinitializeDevice.go |    2 +-
 ...CnetConfirmedServiceRequestRemoveListElement.go |    2 +-
 ...etConfirmedServiceRequestRemovedAuthenticate.go |    2 +-
 ...ServiceRequestRemovedReadPropertyConditional.go |    2 +-
 ...CnetConfirmedServiceRequestRemovedRequestKey.go |    2 +-
 .../BACnetConfirmedServiceRequestSubscribeCOV.go   |    2 +-
 ...tConfirmedServiceRequestSubscribeCOVProperty.go |    2 +-
 ...edServiceRequestSubscribeCOVPropertyMultiple.go |    2 +-
 .../model/BACnetConfirmedServiceRequestVTClose.go  |    2 +-
 .../model/BACnetConfirmedServiceRequestVTData.go   |    2 +-
 .../model/BACnetConfirmedServiceRequestVTOpen.go   |    2 +-
 .../BACnetConfirmedServiceRequestWriteProperty.go  |    2 +-
 ...ConfirmedServiceRequestWritePropertyMultiple.go |    2 +-
 .../plc4go/bacnetip/readwrite/model/BACnetError.go |    2 +-
 .../readwrite/model/BACnetErrorAtomicReadFile.go   |    2 +-
 .../readwrite/model/BACnetErrorAtomicWriteFile.go  |    2 +-
 .../model/BACnetErrorConfirmedPrivateTransfer.go   |    2 +-
 .../readwrite/model/BACnetErrorCreateObject.go     |    2 +-
 .../readwrite/model/BACnetErrorGetAlarmSummary.go  |    2 +-
 .../model/BACnetErrorGetEnrollmentSummary.go       |    2 +-
 .../model/BACnetErrorGetEventInformation.go        |    2 +-
 .../readwrite/model/BACnetErrorReadProperty.go     |    2 +-
 .../model/BACnetErrorReadPropertyMultiple.go       |    2 +-
 .../readwrite/model/BACnetErrorReadRange.go        |    2 +-
 .../model/BACnetErrorRemovedAuthenticate.go        |    2 +-
 .../BACnetErrorRemovedReadPropertyConditional.go   |    2 +-
 .../bacnetip/readwrite/model/BACnetErrorVTData.go  |    2 +-
 .../bacnetip/readwrite/model/BACnetErrorVTOpen.go  |    2 +-
 .../bacnetip/readwrite/model/BACnetNetworkType.go  |   34 +-
 .../bacnetip/readwrite/model/BACnetNodeType.go     |   56 +-
 .../bacnetip/readwrite/model/BACnetNotifyType.go   |   18 +-
 .../bacnetip/readwrite/model/BACnetObjectType.go   |  130 +-
 .../bacnetip/readwrite/model/BACnetServiceAck.go   |    2 +-
 .../model/BACnetServiceAckAtomicReadFile.go        |    2 +-
 .../model/BACnetServiceAckAtomicWriteFile.go       |    2 +-
 .../BACnetServiceAckConfirmedPrivateTransfer.go    |    2 +-
 .../model/BACnetServiceAckCreateObject.go          |    2 +-
 .../model/BACnetServiceAckGetAlarmSummary.go       |    2 +-
 .../model/BACnetServiceAckGetEnrollmentSummary.go  |    2 +-
 .../model/BACnetServiceAckGetEventInformation.go   |    2 +-
 .../model/BACnetServiceAckReadProperty.go          |    2 +-
 .../model/BACnetServiceAckReadPropertyMultiple.go  |    2 +-
 .../readwrite/model/BACnetServiceAckReadRange.go   |    2 +-
 .../model/BACnetServiceAckRemovedAuthenticate.go   |    2 +-
 ...CnetServiceAckRemovedReadPropertyConditional.go |    2 +-
 .../readwrite/model/BACnetServiceAckVTData.go      |    2 +-
 .../readwrite/model/BACnetServiceAckVTOpen.go      |    2 +-
 .../plc4go/bacnetip/readwrite/model/BACnetTag.go   |    2 +-
 .../model/BACnetTagApplicationBitString.go         |    2 +-
 .../readwrite/model/BACnetTagApplicationBoolean.go |    2 +-
 .../model/BACnetTagApplicationCharacterString.go   |    2 +-
 .../readwrite/model/BACnetTagApplicationDate.go    |    2 +-
 .../readwrite/model/BACnetTagApplicationDouble.go  |    2 +-
 .../model/BACnetTagApplicationEnumerated.go        |    2 +-
 .../readwrite/model/BACnetTagApplicationNull.go    |    2 +-
 .../model/BACnetTagApplicationObjectIdentifier.go  |    2 +-
 .../model/BACnetTagApplicationOctetString.go       |    2 +-
 .../readwrite/model/BACnetTagApplicationReal.go    |    2 +-
 .../model/BACnetTagApplicationSignedInteger.go     |    2 +-
 .../readwrite/model/BACnetTagApplicationTime.go    |    2 +-
 .../model/BACnetTagApplicationUnsignedInteger.go   |    2 +-
 .../bacnetip/readwrite/model/BACnetTagContext.go   |    2 +-
 .../readwrite/model/BACnetTagWithContent.go        |    2 +-
 .../model/BACnetUnconfirmedServiceRequest.go       |    2 +-
 .../model/BACnetUnconfirmedServiceRequestIAm.go    |    2 +-
 .../model/BACnetUnconfirmedServiceRequestIHave.go  |    2 +-
 ...UnconfirmedServiceRequestTimeSynchronization.go |    2 +-
 ...onfirmedServiceRequestUTCTimeSynchronization.go |    2 +-
 ...rmedServiceRequestUnconfirmedCOVNotification.go |    2 +-
 ...iceRequestUnconfirmedCOVNotificationMultiple.go |    2 +-
 ...edServiceRequestUnconfirmedEventNotification.go |    2 +-
 ...rmedServiceRequestUnconfirmedPrivateTransfer.go |    2 +-
 ...onfirmedServiceRequestUnconfirmedTextMessage.go |    2 +-
 .../model/BACnetUnconfirmedServiceRequestWhoHas.go |    2 +-
 .../model/BACnetUnconfirmedServiceRequestWhoIs.go  |    2 +-
 .../BACnetUnconfirmedServiceRequestWriteGroup.go   |    2 +-
 .../plc4go/bacnetip/readwrite/model/BVLC.go        |    2 +-
 .../model/BVLCDeleteForeignDeviceTableEntry.go     |    2 +-
 .../model/BVLCDistributeBroadcastToNetwork.go      |    2 +-
 .../bacnetip/readwrite/model/BVLCForwardedNPDU.go  |    2 +-
 .../readwrite/model/BVLCOriginalBroadcastNPDU.go   |    2 +-
 .../readwrite/model/BVLCOriginalUnicastNPDU.go     |    2 +-
 .../model/BVLCReadBroadcastDistributionTable.go    |    2 +-
 .../model/BVLCReadBroadcastDistributionTableAck.go |    2 +-
 .../readwrite/model/BVLCReadForeignDeviceTable.go  |    2 +-
 .../model/BVLCReadForeignDeviceTableAck.go         |    2 +-
 .../readwrite/model/BVLCRegisterForeignDevice.go   |    2 +-
 .../plc4go/bacnetip/readwrite/model/BVLCResult.go  |    2 +-
 .../bacnetip/readwrite/model/BVLCSecureBVLL.go     |    2 +-
 .../model/BVLCWideBroadcastDistributionTable.go    |    2 +-
 .../plc4go/bacnetip/readwrite/model/NLM.go         |    2 +-
 .../readwrite/model/NLMIAmRouterToNetwork.go       |    2 +-
 .../readwrite/model/NLMWhoIsRouterToNetwork.go     |    2 +-
 .../plc4go/bacnetip/readwrite/model/NPDU.go        |    4 +-
 .../readwrite/model/KnxManufacturers.go            | 4380 ------------
 .../readwrite/model/KnxObjectProperties.go         | 1378 ----
 .../knxmasterdata/readwrite/model/KnxObjectType.go |  268 -
 plc4go/internal/plc4go/knxnetip/KnxNetIpBrowser.go |  241 +
 .../internal/plc4go/knxnetip/KnxNetIpConnection.go |  978 +--
 .../internal/plc4go/knxnetip/KnxNetIpDiscoverer.go |  148 +
 plc4go/internal/plc4go/knxnetip/KnxNetIpDriver.go  |   99 +-
 plc4go/internal/plc4go/knxnetip/KnxNetIpField.go   |  101 +-
 .../plc4go/knxnetip/KnxNetIpFieldHandler.go        |  101 +-
 .../plc4go/knxnetip/KnxNetIpMessageCodec.go        |  154 +-
 plc4go/internal/plc4go/knxnetip/KnxNetIpReader.go  |  554 +-
 .../internal/plc4go/knxnetip/KnxNetIpSubscriber.go |  220 +-
 .../plc4go/knxnetip/KnxNetIpSubscriptionEvent.go   |    4 +-
 .../plc4go/knxnetip/KnxNetIpValueHandler.go        |   15 +-
 plc4go/internal/plc4go/knxnetip/KnxNetIpWriter.go  |   54 +-
 plc4go/internal/plc4go/knxnetip/Utils.go           |   42 +
 .../plc4go/knxnetip/readwrite/ParserHelper.go      |  124 +-
 .../knxnetip/readwrite/PropertyDataTypeIO.go       |  156 +
 .../plc4go/knxnetip/readwrite/XmlParserHelper.go   |  338 +-
 .../plc4go/knxnetip/readwrite/model/APCI.go        |   44 +-
 .../plc4go/knxnetip/readwrite/model/CEMI.go        |    2 +-
 .../readwrite/model/CEMIAdditionalInformation.go   |    2 +-
 .../CEMIAdditionalInformationBusmonitorInfo.go     |    2 +-
 .../CEMIAdditionalInformationRelativeTimestamp.go  |    2 +-
 .../knxnetip/readwrite/model/CEMIPriority.go       |   20 +-
 .../knxnetip/readwrite/model/ConnectionRequest.go  |    2 +-
 .../model/ConnectionRequestInformation.go          |    2 +-
 ...ConnectionRequestInformationDeviceManagement.go |    2 +-
 ...ConnectionRequestInformationTunnelConnection.go |    4 +-
 .../knxnetip/readwrite/model/ConnectionResponse.go |    2 +-
 .../readwrite/model/ConnectionResponseDataBlock.go |    2 +-
 .../ConnectionResponseDataBlockDeviceManagement.go |    2 +-
 .../ConnectionResponseDataBlockTunnelConnection.go |    2 +-
 .../readwrite/model/ConnectionStateRequest.go      |    4 +-
 .../readwrite/model/ConnectionStateResponse.go     |    2 +-
 .../plc4go/knxnetip/readwrite/model/ControlType.go |   20 +-
 .../knxnetip/readwrite/model/DIBDeviceInfo.go      |    2 +-
 .../knxnetip/readwrite/model/DIBSuppSvcFamilies.go |    2 +-
 .../knxnetip/readwrite/model/DescriptionRequest.go |    2 +-
 .../readwrite/model/DescriptionResponse.go         |    2 +-
 .../readwrite/model/DeviceConfigurationAck.go      |    2 +-
 .../model/DeviceConfigurationAckDataBlock.go       |    2 +-
 .../readwrite/model/DeviceConfigurationRequest.go  |    2 +-
 .../model/DeviceConfigurationRequestDataBlock.go   |    4 +-
 .../knxnetip/readwrite/model/DeviceStatus.go       |    4 +-
 .../knxnetip/readwrite/model/DisconnectRequest.go  |    4 +-
 .../knxnetip/readwrite/model/DisconnectResponse.go |    2 +-
 .../knxnetip/readwrite/model/ExtendedAPCI.go       |   94 +-
 .../readwrite/model/HPAIControlEndpoint.go         |    2 +-
 .../knxnetip/readwrite/model/HPAIDataEndpoint.go   |    2 +-
 .../readwrite/model/HPAIDiscoveryEndpoint.go       |    2 +-
 .../knxnetip/readwrite/model/HostProtocolCode.go   |   16 +-
 .../plc4go/knxnetip/readwrite/model/IPAddress.go   |    2 +-
 .../plc4go/knxnetip/readwrite/model/KnxAddress.go  |    2 +-
 .../knxnetip/readwrite/model/KnxDatapoint.go       |    4 +-
 .../readwrite/model/KnxDatapointSubtype.go         | 5260 +++++++++++++++
 .../knxnetip/readwrite/model/KnxDatapointType.go   | 5596 +++------------
 .../knxnetip/readwrite/model/KnxGroupAddress.go    |    2 +-
 .../readwrite/model/KnxGroupAddress2Level.go       |    2 +-
 .../readwrite/model/KnxGroupAddress3Level.go       |    2 +-
 .../readwrite/model/KnxGroupAddressFreeLevel.go    |    2 +-
 .../readwrite/model/KnxInterfaceObjectProperty.go  | 4221 ++++++++++++
 .../readwrite/model/KnxInterfaceObjectType.go      |  424 ++
 .../plc4go/knxnetip/readwrite/model/KnxLayer.go    |   18 +-
 .../knxnetip/readwrite/model/KnxManufacturer.go    | 7093 ++++++++++++++++++++
 .../plc4go/knxnetip/readwrite/model/KnxMedium.go   |   24 +-
 .../knxnetip/readwrite/model/KnxNetIpCore.go       |    2 +-
 .../readwrite/model/KnxNetIpDeviceManagement.go    |    2 +-
 .../knxnetip/readwrite/model/KnxNetIpMessage.go    |    2 +-
 .../knxnetip/readwrite/model/KnxNetIpTunneling.go  |    2 +-
 .../knxnetip/readwrite/model/KnxNetObjectServer.go |    2 +-
 .../model/KnxNetRemoteConfigurationAndDiagnosis.go |    2 +-
 .../readwrite/model/KnxNetRemoteLogging.go         |    2 +-
 .../readwrite/model/KnxPropertyDataType.go         |  908 +++
 .../plc4go/knxnetip/readwrite/model/LBusmonInd.go  |    2 +-
 .../plc4go/knxnetip/readwrite/model/LDataCon.go    |    2 +-
 .../plc4go/knxnetip/readwrite/model/LDataFrame.go  |    2 +-
 .../knxnetip/readwrite/model/LDataFrameAck.go      |    2 +-
 .../knxnetip/readwrite/model/LDataFrameData.go     |    2 +-
 .../knxnetip/readwrite/model/LDataFrameDataExt.go  |    2 +-
 .../readwrite/model/LDataFramePollingData.go       |    4 +-
 .../plc4go/knxnetip/readwrite/model/LDataInd.go    |    2 +-
 .../plc4go/knxnetip/readwrite/model/LDataReq.go    |    2 +-
 .../knxnetip/readwrite/model/LPollDataCon.go       |    2 +-
 .../knxnetip/readwrite/model/LPollDataReq.go       |    2 +-
 .../plc4go/knxnetip/readwrite/model/LRawCon.go     |    2 +-
 .../plc4go/knxnetip/readwrite/model/LRawInd.go     |    2 +-
 .../plc4go/knxnetip/readwrite/model/LRawReq.go     |    2 +-
 .../plc4go/knxnetip/readwrite/model/MACAddress.go  |    2 +-
 .../readwrite/model/MFuncPropCommandReq.go         |    2 +-
 .../knxnetip/readwrite/model/MFuncPropCon.go       |    2 +-
 .../readwrite/model/MFuncPropStateReadReq.go       |    2 +-
 .../knxnetip/readwrite/model/MPropInfoInd.go       |    2 +-
 .../knxnetip/readwrite/model/MPropReadCon.go       |    2 +-
 .../knxnetip/readwrite/model/MPropReadReq.go       |    2 +-
 .../knxnetip/readwrite/model/MPropWriteCon.go      |    2 +-
 .../knxnetip/readwrite/model/MPropWriteReq.go      |    2 +-
 .../plc4go/knxnetip/readwrite/model/MResetInd.go   |    2 +-
 .../plc4go/knxnetip/readwrite/model/MResetReq.go   |    2 +-
 .../model/ProjectInstallationIdentifier.go         |    2 +-
 .../knxnetip/readwrite/model/RelativeTimestamp.go  |    2 +-
 .../knxnetip/readwrite/model/RoutingIndication.go  |    2 +-
 .../knxnetip/readwrite/model/SearchRequest.go      |    2 +-
 .../knxnetip/readwrite/model/SearchResponse.go     |    2 +-
 .../plc4go/knxnetip/readwrite/model/ServiceId.go   |    2 +-
 .../plc4go/knxnetip/readwrite/model/Status.go      |   36 +-
 .../readwrite/model/SupportedPhysicalMedia.go      |   54 +-
 .../knxnetip/readwrite/model/TDataConnectedInd.go  |    2 +-
 .../knxnetip/readwrite/model/TDataConnectedReq.go  |    2 +-
 .../knxnetip/readwrite/model/TDataIndividualInd.go |    2 +-
 .../knxnetip/readwrite/model/TDataIndividualReq.go |    2 +-
 .../knxnetip/readwrite/model/TunnelingRequest.go   |    2 +-
 .../readwrite/model/TunnelingRequestDataBlock.go   |    4 +-
 .../knxnetip/readwrite/model/TunnelingResponse.go  |    2 +-
 .../readwrite/model/TunnelingResponseDataBlock.go  |    2 +-
 .../knxnetip/readwrite/model/UnknownMessage.go     |    2 +-
 plc4go/internal/plc4go/modbus/ModbusConnection.go  |   53 +-
 plc4go/internal/plc4go/modbus/ModbusDriver.go      |   29 +-
 .../internal/plc4go/modbus/ModbusFieldHandler.go   |   22 +-
 .../internal/plc4go/modbus/ModbusMessageCodec.go   |   87 +-
 plc4go/internal/plc4go/modbus/ModbusReader.go      |   67 +-
 .../internal/plc4go/modbus/ModbusValueHandler.go   |    2 +-
 plc4go/internal/plc4go/modbus/ModbusWriter.go      |   74 +-
 .../plc4go/modbus/readwrite/ParserHelper.go        |    2 +-
 .../plc4go/modbus/readwrite/model/DataItem.go      |    4 +-
 .../modbus/readwrite/model/ModbusConstants.go      |    2 +-
 .../modbus/readwrite/model/ModbusDataTypeSizes.go  |   64 +-
 .../modbus/readwrite/model/ModbusErrorCode.go      |   32 +-
 .../plc4go/modbus/readwrite/model/ModbusPDU.go     |    2 +-
 .../readwrite/model/ModbusPDUDiagnosticRequest.go  |    2 +-
 .../readwrite/model/ModbusPDUDiagnosticResponse.go |    2 +-
 .../modbus/readwrite/model/ModbusPDUError.go       |    2 +-
 .../model/ModbusPDUGetComEventCounterRequest.go    |    2 +-
 .../model/ModbusPDUGetComEventCounterResponse.go   |    2 +-
 .../model/ModbusPDUGetComEventLogRequest.go        |    2 +-
 .../model/ModbusPDUGetComEventLogResponse.go       |    2 +-
 .../ModbusPDUMaskWriteHoldingRegisterRequest.go    |    2 +-
 .../ModbusPDUMaskWriteHoldingRegisterResponse.go   |    2 +-
 .../readwrite/model/ModbusPDUReadCoilsRequest.go   |    2 +-
 .../readwrite/model/ModbusPDUReadCoilsResponse.go  |    2 +-
 .../ModbusPDUReadDeviceIdentificationRequest.go    |    2 +-
 .../ModbusPDUReadDeviceIdentificationResponse.go   |    2 +-
 .../model/ModbusPDUReadDiscreteInputsRequest.go    |    2 +-
 .../model/ModbusPDUReadDiscreteInputsResponse.go   |    2 +-
 .../model/ModbusPDUReadExceptionStatusRequest.go   |    2 +-
 .../model/ModbusPDUReadExceptionStatusResponse.go  |    2 +-
 .../model/ModbusPDUReadFifoQueueRequest.go         |    2 +-
 .../model/ModbusPDUReadFifoQueueResponse.go        |    2 +-
 .../model/ModbusPDUReadFileRecordRequest.go        |    2 +-
 .../model/ModbusPDUReadFileRecordRequestItem.go    |    2 +-
 .../model/ModbusPDUReadFileRecordResponse.go       |    2 +-
 .../model/ModbusPDUReadFileRecordResponseItem.go   |    2 +-
 .../model/ModbusPDUReadHoldingRegistersRequest.go  |    2 +-
 .../model/ModbusPDUReadHoldingRegistersResponse.go |    2 +-
 .../model/ModbusPDUReadInputRegistersRequest.go    |    2 +-
 .../model/ModbusPDUReadInputRegistersResponse.go   |    2 +-
 ...sPDUReadWriteMultipleHoldingRegistersRequest.go |    2 +-
 ...PDUReadWriteMultipleHoldingRegistersResponse.go |    2 +-
 .../model/ModbusPDUReportServerIdRequest.go        |    2 +-
 .../model/ModbusPDUReportServerIdResponse.go       |    2 +-
 .../model/ModbusPDUWriteFileRecordRequest.go       |    2 +-
 .../model/ModbusPDUWriteFileRecordRequestItem.go   |    2 +-
 .../model/ModbusPDUWriteFileRecordResponse.go      |    2 +-
 .../model/ModbusPDUWriteFileRecordResponseItem.go  |    2 +-
 .../model/ModbusPDUWriteMultipleCoilsRequest.go    |    2 +-
 .../model/ModbusPDUWriteMultipleCoilsResponse.go   |    2 +-
 ...odbusPDUWriteMultipleHoldingRegistersRequest.go |    2 +-
 ...dbusPDUWriteMultipleHoldingRegistersResponse.go |    2 +-
 .../model/ModbusPDUWriteSingleCoilRequest.go       |    2 +-
 .../model/ModbusPDUWriteSingleCoilResponse.go      |    2 +-
 .../model/ModbusPDUWriteSingleRegisterRequest.go   |    2 +-
 .../model/ModbusPDUWriteSingleRegisterResponse.go  |    2 +-
 .../modbus/readwrite/model/ModbusSerialADU.go      |    4 +-
 .../plc4go/modbus/readwrite/model/ModbusTcpADU.go  |    2 +-
 .../plc4go/model/DefaultPlcSubscriptionEvent.go    |  108 -
 .../plc4go/model/DefaultPlcSubscriptionRequest.go  |  160 -
 .../internal/plc4go/model/values/PlcBitString.go   |   93 -
 .../internal/plc4go/s7/readwrite/ParserHelper.go   |    2 +-
 .../plc4go/s7/readwrite/model/COTPPacket.go        |    2 +-
 .../readwrite/model/COTPPacketConnectionRequest.go |    2 +-
 .../model/COTPPacketConnectionResponse.go          |    2 +-
 .../plc4go/s7/readwrite/model/COTPPacketData.go    |    2 +-
 .../readwrite/model/COTPPacketDisconnectRequest.go |    2 +-
 .../model/COTPPacketDisconnectResponse.go          |    2 +-
 .../s7/readwrite/model/COTPPacketTpduError.go      |    2 +-
 .../plc4go/s7/readwrite/model/COTPParameter.go     |    2 +-
 .../s7/readwrite/model/COTPParameterCalledTsap.go  |    2 +-
 .../s7/readwrite/model/COTPParameterCallingTsap.go |    2 +-
 .../s7/readwrite/model/COTPParameterChecksum.go    |    2 +-
 ...COTPParameterDisconnectAdditionalInformation.go |    2 +-
 .../s7/readwrite/model/COTPParameterTpduSize.go    |    2 +-
 .../plc4go/s7/readwrite/model/COTPProtocolClass.go |   22 +-
 .../plc4go/s7/readwrite/model/COTPTpduSize.go      |   26 +-
 .../internal/plc4go/s7/readwrite/model/DataItem.go |    4 +-
 .../s7/readwrite/model/DataTransportErrorCode.go   |   24 +-
 .../plc4go/s7/readwrite/model/DataTransportSize.go |   26 +-
 .../plc4go/s7/readwrite/model/DeviceGroup.go       |   18 +-
 .../plc4go/s7/readwrite/model/MemoryArea.go        |   30 +-
 .../plc4go/s7/readwrite/model/S7Address.go         |    2 +-
 .../plc4go/s7/readwrite/model/S7AddressAny.go      |    4 +-
 .../plc4go/s7/readwrite/model/S7Message.go         |    6 +-
 .../plc4go/s7/readwrite/model/S7MessageRequest.go  |    2 +-
 .../plc4go/s7/readwrite/model/S7MessageResponse.go |    2 +-
 .../s7/readwrite/model/S7MessageResponseData.go    |    2 +-
 .../plc4go/s7/readwrite/model/S7MessageUserData.go |    2 +-
 .../plc4go/s7/readwrite/model/S7Parameter.go       |    2 +-
 .../readwrite/model/S7ParameterReadVarRequest.go   |    2 +-
 .../readwrite/model/S7ParameterReadVarResponse.go  |    2 +-
 .../model/S7ParameterSetupCommunication.go         |    4 +-
 .../s7/readwrite/model/S7ParameterUserData.go      |    2 +-
 .../s7/readwrite/model/S7ParameterUserDataItem.go  |    2 +-
 .../model/S7ParameterUserDataItemCPUFunctions.go   |    2 +-
 .../readwrite/model/S7ParameterWriteVarRequest.go  |    2 +-
 .../readwrite/model/S7ParameterWriteVarResponse.go |    2 +-
 .../plc4go/s7/readwrite/model/S7Payload.go         |    2 +-
 .../s7/readwrite/model/S7PayloadReadVarResponse.go |    2 +-
 .../plc4go/s7/readwrite/model/S7PayloadUserData.go |    2 +-
 .../s7/readwrite/model/S7PayloadUserDataItem.go    |    2 +-
 ...PayloadUserDataItemCpuFunctionReadSzlRequest.go |    2 +-
 ...ayloadUserDataItemCpuFunctionReadSzlResponse.go |    2 +-
 .../s7/readwrite/model/S7PayloadWriteVarRequest.go |    2 +-
 .../readwrite/model/S7PayloadWriteVarResponse.go   |    2 +-
 .../plc4go/s7/readwrite/model/S7StaticHelper.go    |    4 +-
 .../s7/readwrite/model/S7VarPayloadDataItem.go     |    2 +-
 .../s7/readwrite/model/S7VarPayloadStatusItem.go   |    2 +-
 .../readwrite/model/S7VarRequestParameterItem.go   |    2 +-
 .../model/S7VarRequestParameterItemAddress.go      |    2 +-
 .../plc4go/s7/readwrite/model/SzlDataTreeItem.go   |    2 +-
 plc4go/internal/plc4go/s7/readwrite/model/SzlId.go |    2 +-
 .../s7/readwrite/model/SzlModuleTypeClass.go       |   20 +-
 .../plc4go/s7/readwrite/model/SzlSublist.go        |   50 +-
 .../plc4go/s7/readwrite/model/TPKTPacket.go        |    4 +-
 .../plc4go/s7/readwrite/model/TransportSize.go     |   40 +-
 plc4go/internal/plc4go/spi/Message.go              |    4 +-
 plc4go/internal/plc4go/spi/MessageCodec.go         |   24 +-
 .../{TransportInstanceExposer.go => PlcBrowser.go} |    6 +-
 .../plc4go/spi/PlcDiscoverer.go}                   |    7 +-
 plc4go/internal/plc4go/spi/PlcSubscriber.go        |    2 +-
 .../plc4go/spi/TransportInstanceExposer.go         |    4 +-
 .../interceptors/SingleItemRequestInterceptor.go   |    2 +-
 .../plc4go/spi/model/DefaultBrowseRequest.go       |  102 +
 .../model/DefaultPlcDiscoveryEvent.go}             |   36 +-
 .../{ => spi}/model/DefaultPlcReadRequest.go       |    0
 .../{ => spi}/model/DefaultPlcReadResponse.go      |    0
 .../model/DefaultPlcSubscriptionEvent.go}          |   66 +-
 .../spi/model/DefaultPlcSubscriptionRequest.go     |  160 +
 .../model/DefaultPlcSubscriptionResponse.go        |    4 +-
 .../{ => spi}/model/DefaultPlcWriteRequest.go      |    2 +-
 .../{ => spi}/model/DefaultPlcWriteResponse.go     |    0
 .../plc4go/{ => spi}/model/RequestInterceptor.go   |    0
 .../plc4go/{ => spi}/testutils/DriverTestRunner.go |   32 +-
 .../testutils/ParserSerializerTestRunner.go        |   20 +-
 .../plc4go/{ => spi}/testutils/TestUtils.go        |    0
 .../plc4go/{ => spi}/transports/Transport.go       |   10 +-
 .../{ => spi}/transports/TransportInstance.go      |    0
 .../plc4go/spi/transports/tcp/TcpTransport.go      |  188 +
 .../{ => spi}/transports/test/TestTransport.go     |    2 +-
 .../plc4go/spi/transports/udp/UdpTransport.go      |  217 +
 .../internal/plc4go/{ => spi}/utils/CastUtils.go   |   20 +-
 .../internal/plc4go/{ => spi}/utils/ReadBuffer.go  |    0
 .../plc4go/{utils/Utils.go => spi/utils/Regexp.go} |   18 +-
 .../plc4go/{ => spi}/utils/Serializable.go         |    2 +-
 plc4go/internal/plc4go/{ => spi}/utils/Utils.go    |    0
 .../internal/plc4go/{ => spi}/utils/WriteBuffer.go |    0
 .../internal/plc4go/{model => spi}/values/BOOL.go  |    0
 .../internal/plc4go/{model => spi}/values/BYTE.go  |    0
 .../internal/plc4go/{model => spi}/values/CHAR.go  |    0
 .../internal/plc4go/{model => spi}/values/DATE.go  |   26 +-
 .../plc4go/{model => spi}/values/DATE_AND_TIME.go  |    0
 .../internal/plc4go/{model => spi}/values/DINT.go  |    0
 .../internal/plc4go/{model => spi}/values/DWORD.go |    0
 .../{model => spi}/values/IEC61131ValueHandler.go  |    0
 .../internal/plc4go/{model => spi}/values/INT.go   |    0
 .../internal/plc4go/{model => spi}/values/LINT.go  |    0
 .../internal/plc4go/{model => spi}/values/LREAL.go |    0
 .../internal/plc4go/{model => spi}/values/LTIME.go |    0
 .../internal/plc4go/{model => spi}/values/LWORD.go |    0
 .../internal/plc4go/{model => spi}/values/NULL.go  |    0
 .../PlcList.go => spi/values/PlcBitString.go}      |   47 +-
 .../plc4go/{model => spi}/values/PlcByteArray.go   |    0
 .../plc4go/{model => spi}/values/PlcList.go        |    0
 .../{model => spi}/values/PlcSimpleValueAdapter.go |    0
 .../plc4go/{model => spi}/values/PlcStruct.go      |   24 +-
 .../{model => spi}/values/PlcValueAdapter.go       |    0
 .../internal/plc4go/{model => spi}/values/REAL.go  |    0
 .../internal/plc4go/{model => spi}/values/SINT.go  |    0
 .../plc4go/{model => spi}/values/STRING.go         |    0
 .../internal/plc4go/{model => spi}/values/TIME.go  |    0
 .../plc4go/{model => spi}/values/TIME_OF_DAY.go    |   30 +-
 .../internal/plc4go/{model => spi}/values/UDINT.go |    0
 .../internal/plc4go/{model => spi}/values/UINT.go  |    0
 .../internal/plc4go/{model => spi}/values/ULINT.go |    0
 .../internal/plc4go/{model => spi}/values/USINT.go |    0
 .../internal/plc4go/{model => spi}/values/WCHAR.go |    0
 .../internal/plc4go/{model => spi}/values/WORD.go  |    0
 .../plc4go/{model => spi}/values/WSTRING.go        |    0
 .../internal/plc4go/transports/tcp/TcpTransport.go |  188 -
 .../internal/plc4go/transports/udp/UdpTransport.go |  190 -
 plc4go/internal/plc4go/utils/Regexp.go             |   35 -
 plc4go/pkg/plc4go/connection.go                    |    2 +
 plc4go/pkg/plc4go/driver.go                        |   21 +-
 plc4go/pkg/plc4go/driverManager.go                 |  238 +-
 .../model/{plc_read_request.go => plc_browse.go}   |   35 +-
 plc4go/pkg/plc4go/model/plc_connection_metadata.go |    7 +-
 .../plc4go/model/plc_discovery.go}                 |   26 +-
 .../model/{plc_read_request.go => plc_read.go}     |   12 +-
 plc4go/pkg/plc4go/model/plc_read_response.go       |   29 -
 ...subscription_request.go => plc_subscription.go} |   46 +-
 plc4go/pkg/plc4go/model/plc_subscription_event.go  |   31 -
 .../pkg/plc4go/model/plc_subscription_response.go  |   25 -
 ...bscription_request.go => plc_unsubscription.go} |    3 +
 .../model/{plc_write_request.go => plc_write.go}   |    3 +
 plc4go/pkg/plc4go/model/plc_write_response.go      |   22 -
 plc4go/pkg/plc4go/transports/transports.go         |    4 +-
 plc4go/pom.xml                                     |    2 +-
 .../org/apache/plc4x/java/abeth/AbEthDriver.java   |    9 +
 .../org/apache/plc4x/java/ads/ADSPlcDriver.java    |    9 +
 .../plc4x/java/ads/field/DirectAdsField.java       |    2 +-
 .../plc4x/java/ads/field/DirectAdsStringField.java |    2 +-
 .../plc4x/java/ads/field/SymbolicAdsField.java     |    2 +-
 .../java/ads/field/SymbolicAdsStringField.java     |    2 +-
 .../plc4x/java/canopen/CANOpenPlcDriver.java       |    9 +
 .../apache/plc4x/java/eip/readwrite/EIPDriver.java |    9 +
 .../java/firmata/readwrite/FirmataDriver.java      |    9 +
 .../apache/plc4x/java/knxnetip/KnxNetIpDriver.java |    3 +
 .../plc4x/java/knxnetip/ets5/Ets5Parser.java       |   10 +-
 .../java/knxnetip/ets5/model/GroupAddress.java     |    8 +-
 .../knxnetip/protocol/KnxNetIpProtocolLogic.java   |    9 +-
 .../org/apache/plc4x/java/modbus/ModbusDriver.java |    9 +
 .../apache/plc4x/java/s7/readwrite/S7Driver.java   |    9 +
 .../java/s7/readwrite/optimizer/S7Optimizer.java   |    4 +-
 .../plc4x/java/s7/readwrite/issues/PLC4X272.java   |   29 +
 .../s7/src/test/resources/tests/PLC4X-272.xml      | 2282 +++++++
 plc4j/integrations/apache-kafka/pom.xml            |   48 +-
 .../org/apache/plc4x/kafka/Plc4xSinkConnector.java |    1 -
 .../java/org/apache/plc4x/kafka/Plc4xSinkTask.java |    2 -
 .../apache/plc4x/kafka/Plc4xSourceConnector.java   |    3 -
 .../org/apache/plc4x/kafka/Plc4xSourceTask.java    |    5 +-
 .../apache-kafka/src/remote-resources/LICENSE      |    7 +
 .../apache-kafka/src/remote-resources/NOTICE       |    4 +
 plc4j/integrations/opcua-server/pom.xml            |   23 +-
 .../java/opcuaserver/AttributeLoggingFilter.java   |   73 -
 .../plc4x/java/opcuaserver/KeyStoreLoader.java     |  163 -
 .../apache/plc4x/java/opcuaserver/OPCUAServer.java |  244 +-
 .../opcuaserver/backend/Plc4xCommunication.java    |  238 +-
 .../java/opcuaserver/backend/Plc4xNamespace.java   |  110 +-
 .../opcuaserver/configuration/Configuration.java   |    7 -
 .../opcuaserver/context/CertificateGenerator.java  |  122 +
 .../opcuaserver/context/CertificateKeyPair.java    |   38 +
 .../plc4x/java/opcuaserver/OpcuaPlcDriverTest.java |  245 +
 .../opcua-server/src/test/resources/config.yml     |    1 -
 .../apache/plc4x/java/spi/Plc4xNettyWrapper.java   |    1 +
 .../spi/connection/DefaultNettyPlcConnection.java  |   33 +-
 .../java/spi/connection/GeneratedDriverBase.java   |   13 +
 .../plc4x/test/driver/DriverTestsuiteRunner.java   |    3 +
 pom.xml                                            |    7 +-
 protocols/knxnetip/pom.xml                         |    7 +
 protocols/knxnetip/src/main/xslt/knx-types.xsl     |  181 +-
 .../enrich/knxnetip/ets5/Ets5DataEnrichment.java   |    8 +-
 513 files changed, 27686 insertions(+), 15200 deletions(-)

diff --cc plc4j/integrations/opcua-server/pom.xml
index f920410,3313a16..21fcc24
--- a/plc4j/integrations/opcua-server/pom.xml
+++ b/plc4j/integrations/opcua-server/pom.xml
@@@ -208,8 -203,20 +203,25 @@@
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-simple</artifactId>
      </dependency>
++<<<<<<< HEAD
 +
 +    
++=======
+     <dependency>
+ 	    <groupId>commons-io</groupId>
+ 	    <artifactId>commons-io</artifactId>
+ 	</dependency>
+ 
+     <dependency>
+       <groupId>io.vavr</groupId>
+       <artifactId>vavr</artifactId>
+     </dependency>
++>>>>>>> develop
+ 
+     <dependency>
+       <groupId>org.apache.commons</groupId>
+       <artifactId>commons-lang3</artifactId>
+     </dependency>
  
    </dependencies>
  
diff --cc plc4j/spi/src/main/java/org/apache/plc4x/java/spi/connection/DefaultNettyPlcConnection.java
index 1fc70ad,177ef71..2343d11
--- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/connection/DefaultNettyPlcConnection.java
+++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/connection/DefaultNettyPlcConnection.java
@@@ -47,8 -48,9 +48,13 @@@ public class DefaultNettyPlcConnection 
      protected final Configuration configuration;
      protected final ChannelFactory channelFactory;
      protected final boolean awaitSessionSetupComplete;
+     protected final boolean awaitSessionDisconnectComplete;
      protected final ProtocolStackConfigurer stackConfigurer;
++<<<<<<< HEAD
 +    private final CompletableFuture<Void> sessionDisconnectCompleteFuture = new CompletableFuture<>();
++=======
+     protected final CompletableFuture<Void> sessionDisconnectCompleteFuture = new CompletableFuture<>();
++>>>>>>> develop
  
      protected Channel channel;
      protected boolean connected;
@@@ -107,15 -111,23 +115,33 @@@
          }
      }
  
+     /**
+      * Close the connection by firstly calling disconnect and waiting for a DisconnectedEvent occurs and then calling
+      * Close() to finish up any other clean up.
+      * @throws PlcConnectionException
+      */
      @Override
      public void close() throws PlcConnectionException {
++<<<<<<< HEAD
 +        // TODO call protocols close method
 +
 +        channel.pipeline().fireUserEventTriggered(new DisconnectEvent());
 +        try {
 +            sessionDisconnectCompleteFuture.get(10000L, TimeUnit.MILLISECONDS);
 +        } catch (Exception e) {
 +            //Do Nothing
++=======
+ 
+         logger.debug("Closing connection to PLC, await for disconnect = {}", awaitSessionDisconnectComplete);
+ 
+         channel.pipeline().fireUserEventTriggered(new DisconnectEvent());
+         try {
+             if (awaitSessionDisconnectComplete) {
+                 sessionDisconnectCompleteFuture.get(DEFAULT_DISCONNECT_WAIT_TIME, TimeUnit.MILLISECONDS);
+             }
+         } catch (Exception e) {
+             logger.error("Timeout while trying to close connection");
++>>>>>>> develop
          }
          channel.pipeline().fireUserEventTriggered(new CloseConnectionEvent());
  
diff --cc protocols/knxnetip/src/main/xslt/knx-types.xsl
index 3ae4e56,65a43f4..6590625
--- a/protocols/knxnetip/src/main/xslt/knx-types.xsl
+++ b/protocols/knxnetip/src/main/xslt/knx-types.xsl
@@@ -46,15 -47,58 +47,68 @@@
  // specific language governing permissions and limitations
  // under the License.
  //
+ [enum uint 16 'KnxDatapointType' [uint 16 'number', uint 8 'sizeInBits', string 'name']
+     ['0' DPT_UNKNOWN ['0', '0', '"Unknown Datapoint Type"']]
+     <xsl:apply-templates select="knx:KNX/knx:MasterData/knx:DatapointTypes/knx:DatapointType"/>
+ ]
+ 
+ [enum uint 32 'KnxDatapointSubtype' [uint 16 'number', KnxDatapointType 'datapointType', string 'name']
+     ['0' DPST_UNKNOWN ['0', 'KnxDatapointType.DPT_UNKNOWN', '"Unknown Datapoint Subtype"']]
+     <xsl:apply-templates select="knx:KNX/knx:MasterData/knx:DatapointTypes/knx:DatapointType/knx:DatapointSubtypes/knx:DatapointSubtype"/>
+ ]
  
+ [enum uint 16 'KnxInterfaceObjectType' [string 'code', string 'name']
+     ['0' OT_UNKNOWN ['U', '"Unknown Interface Object Type"']]
+     ['1' OT_GENERAL ['G', '"General Interface Object Type"']]
+     <xsl:apply-templates select="knx:KNX/knx:MasterData/knx:InterfaceObjectTypes/knx:InterfaceObjectType"/>
+ ]
+ 
++<<<<<<< HEAD
 +[enum uint 8 'KnxObjectType' [string '-1' 'text']<xsl:apply-templates select="knx:KNX/knx:MasterData/knx:InterfaceObjectTypes/knx:InterfaceObjectType"/>
 +]
 +
 +[enum uint 8 'KnxObjectProperties' [string '-1' 'name', string '-1' 'dataTypeId', string '-1' 'text']<xsl:apply-templates select="knx:KNX/knx:MasterData/knx:InterfaceObjectProperties/knx:InterfaceObjectProperty"/>
 +]
 +
 +[enum uint 16 'KnxManufacturers' [string '-1' 'text']<xsl:apply-templates select="knx:KNX/knx:MasterData/knx:Manufacturers/knx:Manufacturer"/>
++=======
+ [enum uint 32 'KnxInterfaceObjectProperty' [uint 8 'propertyId', KnxInterfaceObjectType 'objectType', KnxPropertyDataType 'propertyDataType', string 'name']
+     ['0' PID_UNKNOWN ['0', 'KnxInterfaceObjectType.OT_UNKNOWN', 'KnxPropertyDataType.PDT_UNKNOWN', '"Unknown Interface Object Property"']]
+     <xsl:apply-templates select="knx:KNX/knx:MasterData/knx:InterfaceObjectProperties/knx:InterfaceObjectProperty"/>
  ]
+ 
+ [enum uint 8 'KnxPropertyDataType' [uint 8 'number', uint 8 'sizeInBytes', string 'name']
+     ['0' PDT_UNKNOWN ['0', '0', '"Unknown Property Data Type"']]
+     <xsl:apply-templates select="knx:KNX/knx:MasterData/knx:PropertyDataTypes/knx:PropertyDataType"/>
+ ]
+ 
+ [enum uint 16 'KnxManufacturer' [uint 16 'number', string 'name']
+     ['0' M_UNKNOWN ['0', '"Unknown Manufacturer"']]
+     <xsl:apply-templates select="knx:KNX/knx:MasterData/knx:Manufacturers/knx:Manufacturer"/>
++>>>>>>> develop
+ ]
+     </xsl:template>
+ 
+     <xsl:template match="knx:DatapointType">
+         <xsl:variable name="datapointTypeId">
+             <xsl:call-template name="getDatapointTypeId">
+                 <xsl:with-param name="contextNode" select="."/>
+             </xsl:call-template>
+         </xsl:variable>['<xsl:value-of select="position()"/>' <xsl:value-of select="$datapointTypeId"/> ['<xsl:value-of select="@Number"/>', '<xsl:value-of select="@SizeInBit"/>', '"<xsl:value-of select="@Text"/>"']]
+     </xsl:template>
+ 
+     <xsl:template match="knx:DatapointSubtype">
+         <xsl:variable name="datapointSubtypeId">
+             <xsl:choose>
+                 <xsl:when test="fn:starts-with(@Name, 'DPT')">DPST_<xsl:value-of select="fn:substring-after(fn:replace(fn:replace(fn:replace(fn:replace(fn:replace(fn:replace(@Name, '\[', '_'), '\]', ''), '&#x00B3;', '_3'), '&#xB5;', 'y'), '/', ''), '-', '_'), 'DPT_')"/></xsl:when>
+                 <xsl:otherwise>DPST_<xsl:for-each select="tokenize(@Name, ' ')"><xsl:value-of select="concat(upper-case(substring(.,1,1)), substring(., 2))"/><xsl:if test="position()!=last()">_</xsl:if></xsl:for-each></xsl:otherwise>
+             </xsl:choose>
+         </xsl:variable>
+         <xsl:variable name="datapointTypeId">
+             <xsl:call-template name="getDatapointTypeId">
+                 <xsl:with-param name="contextNode" select="../.."/>
+             </xsl:call-template>
+         </xsl:variable>['<xsl:value-of select="position()"/>' <xsl:value-of select="$datapointSubtypeId"/> ['<xsl:value-of select="@Number"/>', 'KnxDatapointType.<xsl:value-of select="$datapointTypeId"/>', '"<xsl:value-of select="@Text"/>"']]
      </xsl:template>
  
      <xsl:template match="knx:InterfaceObjectType">
@@@ -140,4 -178,11 +188,15 @@@
          </xsl:choose>
      </xsl:template>
  
++<<<<<<< HEAD
++</xsl:stylesheet>
++=======
+     <xsl:template name="getIdFromText">
+         <xsl:param name="text"/>
+         <xsl:variable name="cleanedText" select="fn:replace(fn:replace(fn:replace(fn:replace(fn:upper-case($text), '/', ''), '\(', ''), '\)', ''), '&#x2013;', '_')"/>
+         <xsl:variable name="cleanedText2" select="fn:replace(fn:replace($cleanedText, '&#x00B3;', '_3'), '&#xC9;', 'E')"/>
+         <xsl:value-of select="fn:replace(fn:replace(fn:replace(fn:replace(fn:replace(fn:replace(fn:replace(fn:replace(fn:replace(fn:replace(fn:replace(fn:replace(fn:replace(normalize-space($cleanedText2),'&#xa0;', '_'), '&amp;', 'AND'), '-', '_'), ' ', '_'), '\.', '_'), ',', '_'), '\+', 'Plus'), '/', '_'), 'Ä', 'AE'), 'Ö', 'OE'), 'Ü', 'UE'), 'ß', 'SS'), ':', '_')"/>
+     </xsl:template>
+ 
 -</xsl:stylesheet>
 +</xsl:stylesheet>
++>>>>>>> develop