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/10 10:17:46 UTC

[plc4x] branch bug/close_connection updated (da4eeb4 -> ba961c5)

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

hutcheb pushed a change to branch bug/close_connection
in repository https://gitbox.apache.org/repos/asf/plc4x.git.


    from da4eeb4  Add future to DisconnectedEvent
     add 7bd2c16  - Increased the type for the auto-generated enums to avoid overflow errors
     add cc4f0c7  - Implemented a first version of a KNX auto-discovery
     add 8fb992f  - Refactored the structure of the "internal" part of plc4go to match the structure of the API - Fixed an issue in the go code generation adding a pointer access where it caused problems compiling
     add 1df8f4d  - Implemented a Browse API implementation which scans the KNX bus for KNX devices - Fine-tuned the SPI
     add ad382db  - Fixed the problem with the KNX Ping operation.
     add 380b471  - Made the existing API safe against problems related to result-channels not being requested - Removed some debug output - Finished implementing the Browse functionality so it actually returns something instead of just printing it on the console
     add 5d9f8ac  - Added the "CanBrowse" to the connection metadata
     add 4a8c91a  - Implemented a first mostly working version of active property reading in KNX
     add 392c2b5  - Updated the XSLT to create more detailed Enums out of the KNX master data.
     add 628898e  - Explicitly added two factory methods to the enum generation in go "ByName" and "ByValue"
     add c0bbc1d  - Adjusted the Java KNX client to the latest changes in code-generation.
     add 2d00ab4  - Commented ut the last line in that adapter.
     add 802c088  - Commented ut the last line in that adapter.
     add b14d524  - Fixed some commented out code.
     add a5321b9  - Implemented the logic to decode properties.
     new f729ca6  Merge branch 'develop' into bug/close_connection
     new ba961c5  Tidied up disconnect logic

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


Summary of changes:
 .../language/go/GoLanguageTemplateHelper.java      |   21 +-
 .../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           |  421 +-
 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   |    2 +-
 .../bacnetip/readwrite/model/APDUComplexAck.go     |    2 +-
 .../readwrite/model/APDUConfirmedRequest.go        |    2 +-
 .../plc4go/bacnetip/readwrite/model/APDUError.go   |    2 +-
 .../plc4go/bacnetip/readwrite/model/APDUReject.go  |    2 +-
 .../bacnetip/readwrite/model/APDUSegmentAck.go     |    2 +-
 .../bacnetip/readwrite/model/APDUSimpleAck.go      |    2 +-
 .../readwrite/model/APDUUnconfirmedRequest.go      |    2 +-
 .../bacnetip/readwrite/model/ApplicationTag.go     |  214 +-
 .../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  |  190 +-
 .../bacnetip/readwrite/model/BACnetNodeType.go     |  322 +-
 .../bacnetip/readwrite/model/BACnetNotifyType.go   |   94 +-
 .../bacnetip/readwrite/model/BACnetObjectType.go   |  766 +-
 .../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        |    2 +-
 .../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  |   45 +-
 plc4go/internal/plc4go/knxnetip/KnxNetIpField.go   |  101 +-
 .../plc4go/knxnetip/KnxNetIpFieldHandler.go        |  101 +-
 .../plc4go/knxnetip/KnxNetIpMessageCodec.go        |  156 +-
 plc4go/internal/plc4go/knxnetip/KnxNetIpReader.go  |  536 +-
 .../internal/plc4go/knxnetip/KnxNetIpSubscriber.go |   14 +-
 .../plc4go/knxnetip/KnxNetIpSubscriptionEvent.go   |    4 +-
 plc4go/internal/plc4go/knxnetip/KnxNetIpWriter.go  |    2 +-
 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        |  250 +-
 .../plc4go/knxnetip/readwrite/model/CEMI.go        |    2 +-
 .../readwrite/model/CEMIAdditionalInformation.go   |    2 +-
 .../CEMIAdditionalInformationBusmonitorInfo.go     |    2 +-
 .../CEMIAdditionalInformationRelativeTimestamp.go  |    2 +-
 .../knxnetip/readwrite/model/CEMIPriority.go       |  106 +-
 .../knxnetip/readwrite/model/ConnectionRequest.go  |    2 +-
 .../model/ConnectionRequestInformation.go          |    2 +-
 ...ConnectionRequestInformationDeviceManagement.go |    2 +-
 ...ConnectionRequestInformationTunnelConnection.go |    2 +-
 .../knxnetip/readwrite/model/ConnectionResponse.go |    2 +-
 .../readwrite/model/ConnectionResponseDataBlock.go |    2 +-
 .../ConnectionResponseDataBlockDeviceManagement.go |    2 +-
 .../ConnectionResponseDataBlockTunnelConnection.go |    2 +-
 .../readwrite/model/ConnectionStateRequest.go      |    2 +-
 .../readwrite/model/ConnectionStateResponse.go     |    2 +-
 .../plc4go/knxnetip/readwrite/model/ControlType.go |  106 +-
 .../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   |    2 +-
 .../knxnetip/readwrite/model/DeviceStatus.go       |    2 +-
 .../knxnetip/readwrite/model/DisconnectRequest.go  |    2 +-
 .../knxnetip/readwrite/model/DisconnectResponse.go |    2 +-
 .../knxnetip/readwrite/model/ExtendedAPCI.go       |  550 +-
 .../readwrite/model/HPAIControlEndpoint.go         |    2 +-
 .../knxnetip/readwrite/model/HPAIDataEndpoint.go   |    2 +-
 .../readwrite/model/HPAIDiscoveryEndpoint.go       |    2 +-
 .../knxnetip/readwrite/model/HostProtocolCode.go   |   82 +-
 .../plc4go/knxnetip/readwrite/model/IPAddress.go   |    2 +-
 .../plc4go/knxnetip/readwrite/model/KnxAddress.go  |    2 +-
 .../knxnetip/readwrite/model/KnxDatapoint.go       |    4 +-
 .../readwrite/model/KnxDatapointSubtype.go         | 6228 +++++++++++++++
 .../knxnetip/readwrite/model/KnxDatapointType.go   | 6147 +++------------
 .../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  | 5089 ++++++++++++
 .../readwrite/model/KnxInterfaceObjectType.go      |  475 ++
 .../plc4go/knxnetip/readwrite/model/KnxLayer.go    |   94 +-
 .../knxnetip/readwrite/model/KnxManufacturer.go    | 8170 ++++++++++++++++++++
 .../plc4go/knxnetip/readwrite/model/KnxMedium.go   |  130 +-
 .../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         | 1060 +++
 .../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       |    2 +-
 .../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      |  202 +-
 .../readwrite/model/SupportedPhysicalMedia.go      |  631 +-
 .../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   |    2 +-
 .../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      |  119 +-
 .../internal/plc4go/modbus/ModbusFieldHandler.go   |   22 +-
 .../internal/plc4go/modbus/ModbusMessageCodec.go   |  135 +-
 plc4go/internal/plc4go/modbus/ModbusReader.go      |   67 +-
 .../internal/plc4go/modbus/ModbusValueHandler.go   |    4 +-
 plc4go/internal/plc4go/modbus/ModbusWriter.go      |   70 +-
 .../plc4go/modbus/readwrite/ParserHelper.go        |    2 +-
 .../plc4go/modbus/readwrite/model/DataItem.go      |    4 +-
 .../modbus/readwrite/model/ModbusConstants.go      |    2 +-
 .../modbus/readwrite/model/ModbusDataTypeSizes.go  |  572 +-
 .../modbus/readwrite/model/ModbusErrorCode.go      |  178 +-
 .../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      |    2 +-
 .../plc4go/modbus/readwrite/model/ModbusTcpADU.go  |    2 +-
 .../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 |  118 +-
 .../plc4go/s7/readwrite/model/COTPTpduSize.go      |  205 +-
 .../internal/plc4go/s7/readwrite/model/DataItem.go |    4 +-
 .../s7/readwrite/model/DataTransportErrorCode.go   |  130 +-
 .../plc4go/s7/readwrite/model/DataTransportSize.go |  205 +-
 .../plc4go/s7/readwrite/model/DeviceGroup.go       |   94 +-
 .../plc4go/s7/readwrite/model/MemoryArea.go        |  243 +-
 .../plc4go/s7/readwrite/model/S7Address.go         |    2 +-
 .../plc4go/s7/readwrite/model/S7AddressAny.go      |    2 +-
 .../plc4go/s7/readwrite/model/S7Message.go         |    4 +-
 .../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         |    2 +-
 .../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    |    2 +-
 .../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       |  106 +-
 .../plc4go/s7/readwrite/model/SzlSublist.go        |  286 +-
 .../plc4go/s7/readwrite/model/TPKTPacket.go        |    2 +-
 .../plc4go/s7/readwrite/model/TransportSize.go     | 1361 ++--
 plc4go/internal/plc4go/spi/Message.go              |    2 +-
 plc4go/internal/plc4go/spi/MessageCodec.go         |   17 +-
 .../plc4go/spi/{PlcWriter.go => PlcBrowser.go}     |    4 +-
 .../plc4go/spi/{PlcReader.go => PlcDiscoverer.go}  |    4 +-
 .../plc4go/spi/TransportInstanceExposer.go         |    2 +-
 .../interceptors/SingleItemRequestInterceptor.go   |    2 +-
 .../plc4go/spi/model/DefaultBrowseRequest.go       |  102 +
 .../model/DefaultPlcDiscoveryEvent.go}             |   39 +-
 .../{ => spi}/model/DefaultPlcReadRequest.go       |    0
 .../{ => spi}/model/DefaultPlcReadResponse.go      |    0
 .../{ => spi}/model/DefaultPlcSubscriptionEvent.go |    2 +-
 .../model/DefaultPlcSubscriptionRequest.go         |    2 +-
 .../model/DefaultPlcSubscriptionResponse.go        |    2 +-
 .../{ => spi}/model/DefaultPlcWriteRequest.go      |    2 +-
 .../{ => spi}/model/DefaultPlcWriteResponse.go     |    0
 .../plc4go/{ => spi}/model/RequestInterceptor.go   |    0
 .../plc4go/{ => spi}/testutils/DriverTestRunner.go |   30 +-
 .../testutils/ParserSerializerTestRunner.go        |   18 +-
 .../plc4go/{ => spi}/testutils/TestUtils.go        |    2 +-
 .../plc4go/{ => spi}/transports/Transport.go       |    0
 .../{ => 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   |    2 +-
 .../internal/plc4go/{ => spi}/utils/ReadBuffer.go  |    0
 .../plc4go/{utils/Utils.go => spi/utils/Regexp.go} |   18 +-
 .../plc4go/{ => spi}/utils/Serializable.go         |    0
 plc4go/internal/plc4go/{ => spi}/utils/Utils.go    |    0
 .../internal/plc4go/{ => spi}/utils/WriteBuffer.go |    0
 .../internal/plc4go/{model => spi}/values/BOOL.go  |    4 +-
 .../internal/plc4go/{model => spi}/values/BYTE.go  |    2 +-
 .../internal/plc4go/{model => spi}/values/CHAR.go  |    2 +-
 .../internal/plc4go/{model => spi}/values/DATE.go  |    4 +-
 .../plc4go/{model => spi}/values/DATE_AND_TIME.go  |    4 +-
 .../internal/plc4go/{model => spi}/values/DINT.go  |    4 +-
 .../internal/plc4go/{model => spi}/values/DWORD.go |    2 +-
 .../{model => spi}/values/IEC61131ValueHandler.go  |    2 +-
 .../internal/plc4go/{model => spi}/values/INT.go   |    4 +-
 .../internal/plc4go/{model => spi}/values/LINT.go  |    4 +-
 .../internal/plc4go/{model => spi}/values/LREAL.go |    4 +-
 .../internal/plc4go/{model => spi}/values/LTIME.go |    4 +-
 .../internal/plc4go/{model => spi}/values/LWORD.go |    2 +-
 .../internal/plc4go/{model => spi}/values/NULL.go  |    2 +-
 .../plc4go/{model => spi}/values/PlcBitString.go   |    0
 .../plc4go/{model => spi}/values/PlcByteArray.go   |    4 +-
 .../plc4go/{model => spi}/values/PlcList.go        |    4 +-
 .../{model => spi}/values/PlcSimpleValueAdapter.go |    4 +-
 .../plc4go/{model => spi}/values/PlcStruct.go      |    4 +-
 .../{model => spi}/values/PlcValueAdapter.go       |    2 +-
 .../internal/plc4go/{model => spi}/values/REAL.go  |    4 +-
 .../internal/plc4go/{model => spi}/values/SINT.go  |    4 +-
 .../plc4go/{model => spi}/values/STRING.go         |    2 +-
 .../internal/plc4go/{model => spi}/values/TIME.go  |    4 +-
 .../plc4go/{model => spi}/values/TIME_OF_DAY.go    |    4 +-
 .../internal/plc4go/{model => spi}/values/UDINT.go |    4 +-
 .../internal/plc4go/{model => spi}/values/UINT.go  |    4 +-
 .../internal/plc4go/{model => spi}/values/ULINT.go |    4 +-
 .../internal/plc4go/{model => spi}/values/USINT.go |    4 +-
 .../internal/plc4go/{model => spi}/values/WCHAR.go |    4 +-
 .../internal/plc4go/{model => spi}/values/WORD.go  |    2 +-
 .../plc4go/{model => spi}/values/WSTRING.go        |    4 +-
 .../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                        |   19 +-
 plc4go/pkg/plc4go/driverManager.go                 |   26 +-
 plc4go/pkg/plc4go/model/plc_browse.go              |   52 +
 plc4go/pkg/plc4go/model/plc_connection_metadata.go |    7 +-
 .../plc4go/model/plc_discovery.go}                 |   24 +-
 .../model/{plc_read_request.go => plc_read.go}     |   11 +
 plc4go/pkg/plc4go/model/plc_read_response.go       |   29 -
 ...subscription_request.go => plc_subscription.go} |   20 +-
 plc4go/pkg/plc4go/model/plc_subscription_event.go  |   31 -
 .../pkg/plc4go/model/plc_subscription_response.go  |   25 -
 ...bscription_request.go => plc_unsubscription.go} |    3 +
 .../plc4go/model/plc_unsubscription_response.go    |   22 -
 .../model/{plc_write_request.go => plc_write.go}   |    4 +
 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/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   |    6 +-
 .../org/apache/plc4x/java/modbus/ModbusDriver.java |    9 +
 .../apache/plc4x/java/s7/readwrite/S7Driver.java   |    9 +
 .../spi/connection/DefaultNettyPlcConnection.java  |   19 +-
 .../java/spi/connection/GeneratedDriverBase.java   |   13 +
 .../plc4x/test/driver/DriverTestsuiteRunner.java   |    3 +
 protocols/knxnetip/pom.xml                         |    7 +
 protocols/knxnetip/src/main/xslt/knx-types.xsl     |  173 +-
 .../enrich/knxnetip/ets5/Ets5DataEnrichment.java   |    8 +-
 479 files changed, 30837 insertions(+), 17176 deletions(-)
 delete mode 100644 plc4go/internal/plc4go/knxmasterdata/readwrite/model/KnxManufacturers.go
 delete mode 100644 plc4go/internal/plc4go/knxmasterdata/readwrite/model/KnxObjectProperties.go
 delete mode 100644 plc4go/internal/plc4go/knxmasterdata/readwrite/model/KnxObjectType.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/KnxNetIpBrowser.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/KnxNetIpDiscoverer.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/PropertyDataTypeIO.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/KnxDatapointSubtype.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/KnxInterfaceObjectProperty.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/KnxInterfaceObjectType.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/KnxManufacturer.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/KnxPropertyDataType.go
 copy plc4go/internal/plc4go/spi/{PlcWriter.go => PlcBrowser.go} (88%)
 copy plc4go/internal/plc4go/spi/{PlcReader.go => PlcDiscoverer.go} (89%)
 create mode 100644 plc4go/internal/plc4go/spi/model/DefaultBrowseRequest.go
 rename plc4go/internal/plc4go/{knxmasterdata/readwrite/ParserHelper.go => spi/model/DefaultPlcDiscoveryEvent.go} (53%)
 rename plc4go/internal/plc4go/{ => spi}/model/DefaultPlcReadRequest.go (100%)
 rename plc4go/internal/plc4go/{ => spi}/model/DefaultPlcReadResponse.go (100%)
 rename plc4go/internal/plc4go/{ => spi}/model/DefaultPlcSubscriptionEvent.go (99%)
 rename plc4go/internal/plc4go/{ => spi}/model/DefaultPlcSubscriptionRequest.go (99%)
 rename plc4go/internal/plc4go/{ => spi}/model/DefaultPlcSubscriptionResponse.go (99%)
 rename plc4go/internal/plc4go/{ => spi}/model/DefaultPlcWriteRequest.go (98%)
 rename plc4go/internal/plc4go/{ => spi}/model/DefaultPlcWriteResponse.go (100%)
 rename plc4go/internal/plc4go/{ => spi}/model/RequestInterceptor.go (100%)
 rename plc4go/internal/plc4go/{ => spi}/testutils/DriverTestRunner.go (96%)
 rename plc4go/internal/plc4go/{ => spi}/testutils/ParserSerializerTestRunner.go (94%)
 rename plc4go/internal/plc4go/{ => spi}/testutils/TestUtils.go (99%)
 rename plc4go/internal/plc4go/{ => spi}/transports/Transport.go (100%)
 rename plc4go/internal/plc4go/{ => spi}/transports/TransportInstance.go (100%)
 create mode 100644 plc4go/internal/plc4go/spi/transports/tcp/TcpTransport.go
 rename plc4go/internal/plc4go/{ => spi}/transports/test/TestTransport.go (97%)
 create mode 100644 plc4go/internal/plc4go/spi/transports/udp/UdpTransport.go
 rename plc4go/internal/plc4go/{ => spi}/utils/CastUtils.go (99%)
 rename plc4go/internal/plc4go/{ => spi}/utils/ReadBuffer.go (100%)
 copy plc4go/internal/plc4go/{utils/Utils.go => spi/utils/Regexp.go} (72%)
 rename plc4go/internal/plc4go/{ => spi}/utils/Serializable.go (100%)
 rename plc4go/internal/plc4go/{ => spi}/utils/Utils.go (100%)
 rename plc4go/internal/plc4go/{ => spi}/utils/WriteBuffer.go (100%)
 rename plc4go/internal/plc4go/{model => spi}/values/BOOL.go (97%)
 rename plc4go/internal/plc4go/{model => spi}/values/BYTE.go (98%)
 rename plc4go/internal/plc4go/{model => spi}/values/CHAR.go (98%)
 rename plc4go/internal/plc4go/{model => spi}/values/DATE.go (98%)
 rename plc4go/internal/plc4go/{model => spi}/values/DATE_AND_TIME.go (97%)
 rename plc4go/internal/plc4go/{model => spi}/values/DINT.go (98%)
 rename plc4go/internal/plc4go/{model => spi}/values/DWORD.go (98%)
 rename plc4go/internal/plc4go/{model => spi}/values/IEC61131ValueHandler.go (99%)
 rename plc4go/internal/plc4go/{model => spi}/values/INT.go (98%)
 rename plc4go/internal/plc4go/{model => spi}/values/LINT.go (98%)
 rename plc4go/internal/plc4go/{model => spi}/values/LREAL.go (98%)
 rename plc4go/internal/plc4go/{model => spi}/values/LTIME.go (96%)
 rename plc4go/internal/plc4go/{model => spi}/values/LWORD.go (99%)
 rename plc4go/internal/plc4go/{model => spi}/values/NULL.go (98%)
 rename plc4go/internal/plc4go/{model => spi}/values/PlcBitString.go (100%)
 rename plc4go/internal/plc4go/{model => spi}/values/PlcByteArray.go (97%)
 rename plc4go/internal/plc4go/{model => spi}/values/PlcList.go (97%)
 rename plc4go/internal/plc4go/{model => spi}/values/PlcSimpleValueAdapter.go (97%)
 rename plc4go/internal/plc4go/{model => spi}/values/PlcStruct.go (98%)
 rename plc4go/internal/plc4go/{model => spi}/values/PlcValueAdapter.go (98%)
 rename plc4go/internal/plc4go/{model => spi}/values/REAL.go (98%)
 rename plc4go/internal/plc4go/{model => spi}/values/SINT.go (97%)
 rename plc4go/internal/plc4go/{model => spi}/values/STRING.go (98%)
 rename plc4go/internal/plc4go/{model => spi}/values/TIME.go (96%)
 rename plc4go/internal/plc4go/{model => spi}/values/TIME_OF_DAY.go (97%)
 rename plc4go/internal/plc4go/{model => spi}/values/UDINT.go (98%)
 rename plc4go/internal/plc4go/{model => spi}/values/UINT.go (97%)
 rename plc4go/internal/plc4go/{model => spi}/values/ULINT.go (98%)
 rename plc4go/internal/plc4go/{model => spi}/values/USINT.go (97%)
 rename plc4go/internal/plc4go/{model => spi}/values/WCHAR.go (96%)
 rename plc4go/internal/plc4go/{model => spi}/values/WORD.go (98%)
 rename plc4go/internal/plc4go/{model => spi}/values/WSTRING.go (96%)
 delete mode 100644 plc4go/internal/plc4go/transports/tcp/TcpTransport.go
 delete mode 100644 plc4go/internal/plc4go/transports/udp/UdpTransport.go
 delete mode 100644 plc4go/internal/plc4go/utils/Regexp.go
 create mode 100644 plc4go/pkg/plc4go/model/plc_browse.go
 rename plc4go/{internal/plc4go/knxmasterdata/readwrite/XmlParserHelper.go => pkg/plc4go/model/plc_discovery.go} (60%)
 rename plc4go/pkg/plc4go/model/{plc_read_request.go => plc_read.go} (81%)
 delete mode 100644 plc4go/pkg/plc4go/model/plc_read_response.go
 rename plc4go/pkg/plc4go/model/{plc_subscription_request.go => plc_subscription.go} (76%)
 delete mode 100644 plc4go/pkg/plc4go/model/plc_subscription_event.go
 delete mode 100644 plc4go/pkg/plc4go/model/plc_subscription_response.go
 rename plc4go/pkg/plc4go/model/{plc_unsubscription_request.go => plc_unsubscription.go} (96%)
 delete mode 100644 plc4go/pkg/plc4go/model/plc_unsubscription_response.go
 rename plc4go/pkg/plc4go/model/{plc_write_request.go => plc_write.go} (97%)
 delete mode 100644 plc4go/pkg/plc4go/model/plc_write_response.go


[plc4x] 02/02: Tidied up disconnect logic

Posted by hu...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit ba961c509868d0b1d9a572d4e3a18598af613bdc
Author: hutcheb <be...@gmail.com>
AuthorDate: Sun Jan 10 05:14:32 2021 -0500

    Tidied up disconnect logic
    
    Added system property to override option to wait for disconnection to occur.
    Added reminder methods for each driver to explicitly override await disconnect option.
---
 .../java/org/apache/plc4x/java/abeth/AbEthDriver.java |  9 +++++++++
 .../java/org/apache/plc4x/java/ads/ADSPlcDriver.java  |  9 +++++++++
 .../apache/plc4x/java/canopen/CANOpenPlcDriver.java   |  9 +++++++++
 .../apache/plc4x/java/eip/readwrite/EIPDriver.java    |  9 +++++++++
 .../plc4x/java/firmata/readwrite/FirmataDriver.java   |  9 +++++++++
 .../apache/plc4x/java/knxnetip/KnxNetIpDriver.java    |  3 +++
 .../org/apache/plc4x/java/modbus/ModbusDriver.java    |  9 +++++++++
 .../org/apache/plc4x/java/s7/readwrite/S7Driver.java  |  9 +++++++++
 .../spi/connection/DefaultNettyPlcConnection.java     | 19 ++++++++++++++-----
 .../java/spi/connection/GeneratedDriverBase.java      | 13 +++++++++++++
 .../plc4x/test/driver/DriverTestsuiteRunner.java      |  3 +++
 11 files changed, 96 insertions(+), 5 deletions(-)

diff --git a/plc4j/drivers/ab-eth/src/main/java/org/apache/plc4x/java/abeth/AbEthDriver.java b/plc4j/drivers/ab-eth/src/main/java/org/apache/plc4x/java/abeth/AbEthDriver.java
index 0a98a0b..d12b791 100644
--- a/plc4j/drivers/ab-eth/src/main/java/org/apache/plc4x/java/abeth/AbEthDriver.java
+++ b/plc4j/drivers/ab-eth/src/main/java/org/apache/plc4x/java/abeth/AbEthDriver.java
@@ -70,6 +70,15 @@ public class AbEthDriver extends GeneratedDriverBase<CIPEncapsulationPacket> {
         return new IEC61131ValueHandler();
     }
 
+    /**
+     * This protocol doesn't have a disconnect procedure, so there is no need to wait for a login to finish.
+     * @return false
+     */
+    @Override
+    protected boolean awaitDisconnectComplete() {
+        return false;
+    }
+
     @Override
     protected ProtocolStackConfigurer<CIPEncapsulationPacket> getStackConfigurer() {
         return SingleProtocolStackConfigurer.builder(CIPEncapsulationPacket.class, CIPEncapsulationPacketIO.class)
diff --git a/plc4j/drivers/ads/src/main/java/org/apache/plc4x/java/ads/ADSPlcDriver.java b/plc4j/drivers/ads/src/main/java/org/apache/plc4x/java/ads/ADSPlcDriver.java
index fd5f25c..9161ce4 100644
--- a/plc4j/drivers/ads/src/main/java/org/apache/plc4x/java/ads/ADSPlcDriver.java
+++ b/plc4j/drivers/ads/src/main/java/org/apache/plc4x/java/ads/ADSPlcDriver.java
@@ -83,6 +83,15 @@ public class ADSPlcDriver extends GeneratedDriverBase<AmsTCPPacket> {
         return new IEC61131ValueHandler();
     }
 
+    /**
+     * This protocol doesn't have a disconnect procedure, so there is no need to wait for a login to finish.
+     * @return false
+     */
+    @Override
+    protected boolean awaitDisconnectComplete() {
+        return false;
+    }
+
     @Override
     protected ProtocolStackConfigurer<AmsTCPPacket> getStackConfigurer() {
         return SingleProtocolStackConfigurer.builder(AmsTCPPacket.class, AmsTCPPacketIO.class)
diff --git a/plc4j/drivers/canopen/src/main/java/org/apache/plc4x/java/canopen/CANOpenPlcDriver.java b/plc4j/drivers/canopen/src/main/java/org/apache/plc4x/java/canopen/CANOpenPlcDriver.java
index 6db7d94..c82d8f2 100644
--- a/plc4j/drivers/canopen/src/main/java/org/apache/plc4x/java/canopen/CANOpenPlcDriver.java
+++ b/plc4j/drivers/canopen/src/main/java/org/apache/plc4x/java/canopen/CANOpenPlcDriver.java
@@ -96,6 +96,15 @@ public class CANOpenPlcDriver extends GeneratedDriverBase<CANOpenFrame> {
         };
     }
 
+    /**
+     * This protocol doesn't have a disconnect procedure, so there is no need to wait for a login to finish.
+     * @return false
+     */
+    @Override
+    protected boolean awaitDisconnectComplete() {
+        return false;
+    }
+
     @Override
     protected BaseOptimizer getOptimizer() {
         return new SingleFieldOptimizer();
diff --git a/plc4j/drivers/eip/src/main/java/org/apache/plc4x/java/eip/readwrite/EIPDriver.java b/plc4j/drivers/eip/src/main/java/org/apache/plc4x/java/eip/readwrite/EIPDriver.java
index 799f332..3fcb65d 100644
--- a/plc4j/drivers/eip/src/main/java/org/apache/plc4x/java/eip/readwrite/EIPDriver.java
+++ b/plc4j/drivers/eip/src/main/java/org/apache/plc4x/java/eip/readwrite/EIPDriver.java
@@ -62,6 +62,15 @@ public class EIPDriver extends GeneratedDriverBase<EipPacket> {
         return new IEC61131ValueHandler();
     }
 
+    /**
+     * This protocol doesn't have a disconnect procedure, so there is no need to wait for a login to finish.
+     * @return false
+     */
+    @Override
+    protected boolean awaitDisconnectComplete() {
+        return false;
+    }
+
     @Override
     protected String getDefaultTransport() {
         return "tcp";
diff --git a/plc4j/drivers/firmata/src/main/java/org/apache/plc4x/java/firmata/readwrite/FirmataDriver.java b/plc4j/drivers/firmata/src/main/java/org/apache/plc4x/java/firmata/readwrite/FirmataDriver.java
index f5a396a..923d7cc 100644
--- a/plc4j/drivers/firmata/src/main/java/org/apache/plc4x/java/firmata/readwrite/FirmataDriver.java
+++ b/plc4j/drivers/firmata/src/main/java/org/apache/plc4x/java/firmata/readwrite/FirmataDriver.java
@@ -79,6 +79,15 @@ public class FirmataDriver extends GeneratedDriverBase<FirmataMessage> {
         return new IEC61131ValueHandler();
     }
 
+    /**
+     * This protocol doesn't have a disconnect procedure, so there is no need to wait for a login to finish.
+     * @return false
+     */
+    @Override
+    protected boolean awaitDisconnectComplete() {
+        return false;
+    }
+
     @Override
     protected ProtocolStackConfigurer<FirmataMessage> getStackConfigurer() {
         return SingleProtocolStackConfigurer.builder(FirmataMessage.class, FirmataMessageIO.class)
diff --git a/plc4j/drivers/knxnetip/src/main/java/org/apache/plc4x/java/knxnetip/KnxNetIpDriver.java b/plc4j/drivers/knxnetip/src/main/java/org/apache/plc4x/java/knxnetip/KnxNetIpDriver.java
index d0c8994..e1a5348 100644
--- a/plc4j/drivers/knxnetip/src/main/java/org/apache/plc4x/java/knxnetip/KnxNetIpDriver.java
+++ b/plc4j/drivers/knxnetip/src/main/java/org/apache/plc4x/java/knxnetip/KnxNetIpDriver.java
@@ -93,6 +93,9 @@ public class KnxNetIpDriver extends GeneratedDriverBase<KnxNetIpMessage> {
     }
 
     @Override
+    protected boolean awaitDisconnectComplete() { return true; }
+
+    @Override
     protected ProtocolStackConfigurer<KnxNetIpMessage> getStackConfigurer() {
         return SingleProtocolStackConfigurer.builder(KnxNetIpMessage.class, KnxNetIpMessageIO.class)
             .withProtocol(KnxNetIpProtocolLogic.class)
diff --git a/plc4j/drivers/modbus/src/main/java/org/apache/plc4x/java/modbus/ModbusDriver.java b/plc4j/drivers/modbus/src/main/java/org/apache/plc4x/java/modbus/ModbusDriver.java
index d833543..673ca18 100644
--- a/plc4j/drivers/modbus/src/main/java/org/apache/plc4x/java/modbus/ModbusDriver.java
+++ b/plc4j/drivers/modbus/src/main/java/org/apache/plc4x/java/modbus/ModbusDriver.java
@@ -67,6 +67,15 @@ public class ModbusDriver extends GeneratedDriverBase<ModbusTcpADU> {
         return false;
     }
 
+    /**
+     * This protocol doesn't have a disconnect procedure, so there is no need to wait for a login to finish.
+     * @return false
+     */
+    @Override
+    protected boolean awaitDisconnectComplete() {
+        return false;
+    }
+
     @Override
     protected boolean canRead() {
         return true;
diff --git a/plc4j/drivers/s7/src/main/java/org/apache/plc4x/java/s7/readwrite/S7Driver.java b/plc4j/drivers/s7/src/main/java/org/apache/plc4x/java/s7/readwrite/S7Driver.java
index 26b39c6..dd90664 100644
--- a/plc4j/drivers/s7/src/main/java/org/apache/plc4x/java/s7/readwrite/S7Driver.java
+++ b/plc4j/drivers/s7/src/main/java/org/apache/plc4x/java/s7/readwrite/S7Driver.java
@@ -86,6 +86,15 @@ public class S7Driver extends GeneratedDriverBase<TPKTPacket> {
         return new IEC61131ValueHandler();
     }
 
+    /**
+     * This protocol doesn't have a disconnect procedure, so there is no need to wait for a login to finish.
+     * @return false
+     */
+    @Override
+    protected boolean awaitDisconnectComplete() {
+        return false;
+    }
+
     @Override
     protected ProtocolStackConfigurer<TPKTPacket> getStackConfigurer() {
         return SingleProtocolStackConfigurer.builder(TPKTPacket.class, TPKTPacketIO.class)
diff --git 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
index 1fc70ad..ce8d355 100644
--- 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
@@ -42,13 +42,15 @@ public class DefaultNettyPlcConnection extends AbstractPlcConnection implements
      */
     // TODO: maybe find a way to make this configurable per jvm
     protected final static Timer timer = new HashedWheelTimer();
+    protected final static long DEFAULT_DISCONNECT_WAIT_TIME = 10000L;
     private static final Logger logger = LoggerFactory.getLogger(DefaultNettyPlcConnection.class);
 
     protected final Configuration configuration;
     protected final ChannelFactory channelFactory;
     protected final boolean awaitSessionSetupComplete;
+    protected final boolean awaitSessionDisconnectComplete;
     protected final ProtocolStackConfigurer stackConfigurer;
-    private final CompletableFuture<Void> sessionDisconnectCompleteFuture = new CompletableFuture<>();
+    protected final CompletableFuture<Void> sessionDisconnectCompleteFuture = new CompletableFuture<>();
 
     protected Channel channel;
     protected boolean connected;
@@ -56,11 +58,12 @@ public class DefaultNettyPlcConnection extends AbstractPlcConnection implements
     public DefaultNettyPlcConnection(boolean canRead, boolean canWrite, boolean canSubscribe,
                                      PlcFieldHandler fieldHandler, PlcValueHandler valueHandler, Configuration configuration,
                                      ChannelFactory channelFactory, boolean awaitSessionSetupComplete,
-                                     ProtocolStackConfigurer stackConfigurer, BaseOptimizer optimizer) {
+                                     boolean awaitSessionDisconnectComplete, ProtocolStackConfigurer stackConfigurer, BaseOptimizer optimizer) {
         super(canRead, canWrite, canSubscribe, fieldHandler, valueHandler, optimizer);
         this.configuration = configuration;
         this.channelFactory = channelFactory;
         this.awaitSessionSetupComplete = awaitSessionSetupComplete;
+        this.awaitSessionDisconnectComplete = awaitSessionDisconnectComplete;
         this.stackConfigurer = stackConfigurer;
 
         this.connected = false;
@@ -109,17 +112,23 @@ public class DefaultNettyPlcConnection extends AbstractPlcConnection implements
 
     @Override
     public void close() throws PlcConnectionException {
-        // TODO call protocols close method
 
         channel.pipeline().fireUserEventTriggered(new DisconnectEvent());
         try {
-            sessionDisconnectCompleteFuture.get(10000L, TimeUnit.MILLISECONDS);
+            if (awaitSessionDisconnectComplete) {
+                sessionDisconnectCompleteFuture.get(DEFAULT_DISCONNECT_WAIT_TIME, TimeUnit.MILLISECONDS);
+            }
         } catch (Exception e) {
-            //Do Nothing
+            logger.error("Timeout while trying to close connection");
         }
         channel.pipeline().fireUserEventTriggered(new CloseConnectionEvent());
 
         channel.close().awaitUninterruptibly();
+
+        if (!sessionDisconnectCompleteFuture.isDone()) {
+            sessionDisconnectCompleteFuture.complete(null );
+        }
+
         channel = null;
         connected = false;
     }
diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/connection/GeneratedDriverBase.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/connection/GeneratedDriverBase.java
index fe43179..6c58d71 100644
--- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/connection/GeneratedDriverBase.java
+++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/connection/GeneratedDriverBase.java
@@ -40,6 +40,8 @@ public abstract class GeneratedDriverBase<BASE_PACKET extends Message> implement
 
     public static final String PROPERTY_PLC4X_FORCE_AWAIT_SETUP_COMPLETE = "PLC4X_FORCE_AWAIT_SETUP_COMPLETE";
 
+    public static final String PROPERTY_PLC4X_FORCE_AWAIT_DISCONNECT_COMPLETE = "PLC4X_FORCE_AWAIT_DISCONNECT_COMPLETE";
+
     private static final Pattern URI_PATTERN = Pattern.compile(
         "^(?<protocolCode>[a-z0-9\\-]*)(:(?<transportCode>[a-z0-9]*))?://(?<transportConfig>[^?]*)(\\?(?<paramString>.*))?");
 
@@ -61,6 +63,10 @@ public abstract class GeneratedDriverBase<BASE_PACKET extends Message> implement
         return true;
     }
 
+    protected boolean awaitDisconnectComplete() {
+        return false;
+    }
+
     protected BaseOptimizer getOptimizer() {
         return null;
     }
@@ -138,6 +144,12 @@ public abstract class GeneratedDriverBase<BASE_PACKET extends Message> implement
             awaitSetupComplete = Boolean.parseBoolean(System.getProperty(PROPERTY_PLC4X_FORCE_AWAIT_SETUP_COMPLETE));
         }
 
+        // Make the "await disconnect complete" overridable via system property.
+        boolean awaitDisconnectComplete = awaitDisconnectComplete();
+        if(System.getProperty(PROPERTY_PLC4X_FORCE_AWAIT_DISCONNECT_COMPLETE) != null) {
+            awaitDisconnectComplete = Boolean.parseBoolean(System.getProperty(PROPERTY_PLC4X_FORCE_AWAIT_DISCONNECT_COMPLETE));
+        }
+
         return new DefaultNettyPlcConnection(
             canRead(), canWrite(), canSubscribe(),
             getFieldHandler(),
@@ -145,6 +157,7 @@ public abstract class GeneratedDriverBase<BASE_PACKET extends Message> implement
             configuration,
             channelFactory,
             awaitSetupComplete,
+            awaitDisconnectComplete,
             getStackConfigurer(),
             getOptimizer());
     }
diff --git a/plc4j/utils/test-utils/src/main/java/org/apache/plc4x/test/driver/DriverTestsuiteRunner.java b/plc4j/utils/test-utils/src/main/java/org/apache/plc4x/test/driver/DriverTestsuiteRunner.java
index 3638517..5258718 100644
--- a/plc4j/utils/test-utils/src/main/java/org/apache/plc4x/test/driver/DriverTestsuiteRunner.java
+++ b/plc4j/utils/test-utils/src/main/java/org/apache/plc4x/test/driver/DriverTestsuiteRunner.java
@@ -154,6 +154,9 @@ public class DriverTestsuiteRunner {
             // Force the driver to not wait for the connection before returning the connection.
             System.setProperty(GeneratedDriverBase.PROPERTY_PLC4X_FORCE_AWAIT_SETUP_COMPLETE, "false");
 
+            // Force the driver to not wait for the disconnection before returning closing the channel.
+            System.setProperty(GeneratedDriverBase.PROPERTY_PLC4X_FORCE_AWAIT_DISCONNECT_COMPLETE, "false");
+
             TimeUnit.MILLISECONDS.sleep(200);
 
             return new DriverTestsuite(testsuiteName, driverName, driverParameters, setupSteps, teardownSteps, testcases, bigEndian);


[plc4x] 01/02: Merge branch 'develop' into bug/close_connection

Posted by hu...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit f729ca6813e70acc7a67a9b4ee3951a1f87c1396
Merge: da4eeb4 a5321b9
Author: hutcheb <be...@gmail.com>
AuthorDate: Sun Jan 10 04:09:38 2021 -0500

    Merge branch 'develop' into bug/close_connection

 .../language/go/GoLanguageTemplateHelper.java      |   21 +-
 .../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           |  421 +-
 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   |    2 +-
 .../bacnetip/readwrite/model/APDUComplexAck.go     |    2 +-
 .../readwrite/model/APDUConfirmedRequest.go        |    2 +-
 .../plc4go/bacnetip/readwrite/model/APDUError.go   |    2 +-
 .../plc4go/bacnetip/readwrite/model/APDUReject.go  |    2 +-
 .../bacnetip/readwrite/model/APDUSegmentAck.go     |    2 +-
 .../bacnetip/readwrite/model/APDUSimpleAck.go      |    2 +-
 .../readwrite/model/APDUUnconfirmedRequest.go      |    2 +-
 .../bacnetip/readwrite/model/ApplicationTag.go     |  214 +-
 .../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  |  190 +-
 .../bacnetip/readwrite/model/BACnetNodeType.go     |  322 +-
 .../bacnetip/readwrite/model/BACnetNotifyType.go   |   94 +-
 .../bacnetip/readwrite/model/BACnetObjectType.go   |  766 +-
 .../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        |    2 +-
 .../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  |   45 +-
 plc4go/internal/plc4go/knxnetip/KnxNetIpField.go   |  101 +-
 .../plc4go/knxnetip/KnxNetIpFieldHandler.go        |  101 +-
 .../plc4go/knxnetip/KnxNetIpMessageCodec.go        |  156 +-
 plc4go/internal/plc4go/knxnetip/KnxNetIpReader.go  |  536 +-
 .../internal/plc4go/knxnetip/KnxNetIpSubscriber.go |   14 +-
 .../plc4go/knxnetip/KnxNetIpSubscriptionEvent.go   |    4 +-
 plc4go/internal/plc4go/knxnetip/KnxNetIpWriter.go  |    2 +-
 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        |  250 +-
 .../plc4go/knxnetip/readwrite/model/CEMI.go        |    2 +-
 .../readwrite/model/CEMIAdditionalInformation.go   |    2 +-
 .../CEMIAdditionalInformationBusmonitorInfo.go     |    2 +-
 .../CEMIAdditionalInformationRelativeTimestamp.go  |    2 +-
 .../knxnetip/readwrite/model/CEMIPriority.go       |  106 +-
 .../knxnetip/readwrite/model/ConnectionRequest.go  |    2 +-
 .../model/ConnectionRequestInformation.go          |    2 +-
 ...ConnectionRequestInformationDeviceManagement.go |    2 +-
 ...ConnectionRequestInformationTunnelConnection.go |    2 +-
 .../knxnetip/readwrite/model/ConnectionResponse.go |    2 +-
 .../readwrite/model/ConnectionResponseDataBlock.go |    2 +-
 .../ConnectionResponseDataBlockDeviceManagement.go |    2 +-
 .../ConnectionResponseDataBlockTunnelConnection.go |    2 +-
 .../readwrite/model/ConnectionStateRequest.go      |    2 +-
 .../readwrite/model/ConnectionStateResponse.go     |    2 +-
 .../plc4go/knxnetip/readwrite/model/ControlType.go |  106 +-
 .../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   |    2 +-
 .../knxnetip/readwrite/model/DeviceStatus.go       |    2 +-
 .../knxnetip/readwrite/model/DisconnectRequest.go  |    2 +-
 .../knxnetip/readwrite/model/DisconnectResponse.go |    2 +-
 .../knxnetip/readwrite/model/ExtendedAPCI.go       |  550 +-
 .../readwrite/model/HPAIControlEndpoint.go         |    2 +-
 .../knxnetip/readwrite/model/HPAIDataEndpoint.go   |    2 +-
 .../readwrite/model/HPAIDiscoveryEndpoint.go       |    2 +-
 .../knxnetip/readwrite/model/HostProtocolCode.go   |   82 +-
 .../plc4go/knxnetip/readwrite/model/IPAddress.go   |    2 +-
 .../plc4go/knxnetip/readwrite/model/KnxAddress.go  |    2 +-
 .../knxnetip/readwrite/model/KnxDatapoint.go       |    4 +-
 .../readwrite/model/KnxDatapointSubtype.go         | 6228 +++++++++++++++
 .../knxnetip/readwrite/model/KnxDatapointType.go   | 6147 +++------------
 .../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  | 5089 ++++++++++++
 .../readwrite/model/KnxInterfaceObjectType.go      |  475 ++
 .../plc4go/knxnetip/readwrite/model/KnxLayer.go    |   94 +-
 .../knxnetip/readwrite/model/KnxManufacturer.go    | 8170 ++++++++++++++++++++
 .../plc4go/knxnetip/readwrite/model/KnxMedium.go   |  130 +-
 .../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         | 1060 +++
 .../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       |    2 +-
 .../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      |  202 +-
 .../readwrite/model/SupportedPhysicalMedia.go      |  631 +-
 .../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   |    2 +-
 .../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      |  119 +-
 .../internal/plc4go/modbus/ModbusFieldHandler.go   |   22 +-
 .../internal/plc4go/modbus/ModbusMessageCodec.go   |  135 +-
 plc4go/internal/plc4go/modbus/ModbusReader.go      |   67 +-
 .../internal/plc4go/modbus/ModbusValueHandler.go   |    4 +-
 plc4go/internal/plc4go/modbus/ModbusWriter.go      |   70 +-
 .../plc4go/modbus/readwrite/ParserHelper.go        |    2 +-
 .../plc4go/modbus/readwrite/model/DataItem.go      |    4 +-
 .../modbus/readwrite/model/ModbusConstants.go      |    2 +-
 .../modbus/readwrite/model/ModbusDataTypeSizes.go  |  572 +-
 .../modbus/readwrite/model/ModbusErrorCode.go      |  178 +-
 .../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      |    2 +-
 .../plc4go/modbus/readwrite/model/ModbusTcpADU.go  |    2 +-
 .../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 |  118 +-
 .../plc4go/s7/readwrite/model/COTPTpduSize.go      |  205 +-
 .../internal/plc4go/s7/readwrite/model/DataItem.go |    4 +-
 .../s7/readwrite/model/DataTransportErrorCode.go   |  130 +-
 .../plc4go/s7/readwrite/model/DataTransportSize.go |  205 +-
 .../plc4go/s7/readwrite/model/DeviceGroup.go       |   94 +-
 .../plc4go/s7/readwrite/model/MemoryArea.go        |  243 +-
 .../plc4go/s7/readwrite/model/S7Address.go         |    2 +-
 .../plc4go/s7/readwrite/model/S7AddressAny.go      |    2 +-
 .../plc4go/s7/readwrite/model/S7Message.go         |    4 +-
 .../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         |    2 +-
 .../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    |    2 +-
 .../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       |  106 +-
 .../plc4go/s7/readwrite/model/SzlSublist.go        |  286 +-
 .../plc4go/s7/readwrite/model/TPKTPacket.go        |    2 +-
 .../plc4go/s7/readwrite/model/TransportSize.go     | 1361 ++--
 plc4go/internal/plc4go/spi/Message.go              |    2 +-
 plc4go/internal/plc4go/spi/MessageCodec.go         |   17 +-
 .../{TransportInstanceExposer.go => PlcBrowser.go} |    6 +-
 .../plc4go/spi/PlcDiscoverer.go}                   |    7 +-
 .../plc4go/spi/TransportInstanceExposer.go         |    2 +-
 .../interceptors/SingleItemRequestInterceptor.go   |    2 +-
 .../plc4go/spi/model/DefaultBrowseRequest.go       |  102 +
 .../model/DefaultPlcDiscoveryEvent.go}             |   39 +-
 .../{ => spi}/model/DefaultPlcReadRequest.go       |    0
 .../{ => spi}/model/DefaultPlcReadResponse.go      |    0
 .../{ => spi}/model/DefaultPlcSubscriptionEvent.go |    2 +-
 .../model/DefaultPlcSubscriptionRequest.go         |    2 +-
 .../model/DefaultPlcSubscriptionResponse.go        |    2 +-
 .../{ => spi}/model/DefaultPlcWriteRequest.go      |    2 +-
 .../{ => spi}/model/DefaultPlcWriteResponse.go     |    0
 .../plc4go/{ => spi}/model/RequestInterceptor.go   |    0
 .../plc4go/{ => spi}/testutils/DriverTestRunner.go |   30 +-
 .../testutils/ParserSerializerTestRunner.go        |   18 +-
 .../plc4go/{ => spi}/testutils/TestUtils.go        |    2 +-
 .../plc4go/{ => spi}/transports/Transport.go       |    0
 .../{ => 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   |    2 +-
 .../internal/plc4go/{ => spi}/utils/ReadBuffer.go  |    0
 .../plc4go/{utils/Utils.go => spi/utils/Regexp.go} |   18 +-
 .../plc4go/{ => spi}/utils/Serializable.go         |    0
 plc4go/internal/plc4go/{ => spi}/utils/Utils.go    |    0
 .../internal/plc4go/{ => spi}/utils/WriteBuffer.go |    0
 .../internal/plc4go/{model => spi}/values/BOOL.go  |    4 +-
 .../internal/plc4go/{model => spi}/values/BYTE.go  |    2 +-
 .../internal/plc4go/{model => spi}/values/CHAR.go  |    2 +-
 .../internal/plc4go/{model => spi}/values/DATE.go  |    4 +-
 .../plc4go/{model => spi}/values/DATE_AND_TIME.go  |    4 +-
 .../internal/plc4go/{model => spi}/values/DINT.go  |    4 +-
 .../internal/plc4go/{model => spi}/values/DWORD.go |    2 +-
 .../{model => spi}/values/IEC61131ValueHandler.go  |    2 +-
 .../internal/plc4go/{model => spi}/values/INT.go   |    4 +-
 .../internal/plc4go/{model => spi}/values/LINT.go  |    4 +-
 .../internal/plc4go/{model => spi}/values/LREAL.go |    4 +-
 .../internal/plc4go/{model => spi}/values/LTIME.go |    4 +-
 .../internal/plc4go/{model => spi}/values/LWORD.go |    2 +-
 .../internal/plc4go/{model => spi}/values/NULL.go  |    2 +-
 .../plc4go/{model => spi}/values/PlcBitString.go   |    0
 .../plc4go/{model => spi}/values/PlcByteArray.go   |    4 +-
 .../plc4go/{model => spi}/values/PlcList.go        |    4 +-
 .../{model => spi}/values/PlcSimpleValueAdapter.go |    4 +-
 .../plc4go/{model => spi}/values/PlcStruct.go      |    4 +-
 .../{model => spi}/values/PlcValueAdapter.go       |    2 +-
 .../internal/plc4go/{model => spi}/values/REAL.go  |    4 +-
 .../internal/plc4go/{model => spi}/values/SINT.go  |    4 +-
 .../plc4go/{model => spi}/values/STRING.go         |    2 +-
 .../internal/plc4go/{model => spi}/values/TIME.go  |    4 +-
 .../plc4go/{model => spi}/values/TIME_OF_DAY.go    |    4 +-
 .../internal/plc4go/{model => spi}/values/UDINT.go |    4 +-
 .../internal/plc4go/{model => spi}/values/UINT.go  |    4 +-
 .../internal/plc4go/{model => spi}/values/ULINT.go |    4 +-
 .../internal/plc4go/{model => spi}/values/USINT.go |    4 +-
 .../internal/plc4go/{model => spi}/values/WCHAR.go |    4 +-
 .../internal/plc4go/{model => spi}/values/WORD.go  |    2 +-
 .../plc4go/{model => spi}/values/WSTRING.go        |    4 +-
 .../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                        |   19 +-
 plc4go/pkg/plc4go/driverManager.go                 |   26 +-
 plc4go/pkg/plc4go/model/plc_browse.go              |   52 +
 plc4go/pkg/plc4go/model/plc_connection_metadata.go |    7 +-
 .../plc4go/model/plc_discovery.go}                 |   24 +-
 .../model/{plc_read_request.go => plc_read.go}     |   11 +
 plc4go/pkg/plc4go/model/plc_read_response.go       |   29 -
 ...subscription_request.go => plc_subscription.go} |   20 +-
 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}   |    4 +
 plc4go/pkg/plc4go/model/plc_write_response.go      |   22 -
 plc4go/pkg/plc4go/transports/transports.go         |    4 +-
 plc4go/pom.xml                                     |    2 +-
 .../plc4x/java/knxnetip/ets5/Ets5Parser.java       |   10 +-
 .../java/knxnetip/ets5/model/GroupAddress.java     |    8 +-
 .../knxnetip/protocol/KnxNetIpProtocolLogic.java   |    6 +-
 protocols/knxnetip/pom.xml                         |    7 +
 protocols/knxnetip/src/main/xslt/knx-types.xsl     |  173 +-
 .../enrich/knxnetip/ets5/Ets5DataEnrichment.java   |    8 +-
 467 files changed, 30745 insertions(+), 17150 deletions(-)