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:53 UTC
[plc4x] branch feature/native_opua_client updated (11b9d51 ->
d8e54a0)
This is an automated email from the ASF dual-hosted git repository.
hutcheb pushed a change to branch feature/native_opua_client
in repository https://gitbox.apache.org/repos/asf/plc4x.git.
from 11b9d51 Add Certificategenerator and connection string param for Security
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.
add 3ea8e6c PLC4X-270 Ads driver does not accept double-digit array indexes
add da4eeb4 Add future to DisconnectedEvent
add f729ca6 Merge branch 'develop' into bug/close_connection
add ba961c5 Tidied up disconnect logic
add 8bf6c45 Added some logging
add f19ca3f Merge pull request #221 from apache/bug/close_connection
add 747868a Add confluent package to deployment so it appears in Nexus.
add dc88603 Merge pull request #222 from apache/add_confluent_package_nexus
add 56bae6f - Added the missing drivers
add da43590 - Try to fix the deployment issue.
add eead488 Updated Notice and License files.
add d1231c5 Merge pull request #223 from apache/update_notice_file
add 2733964 - Added the extensions to the LICENSE and NOTICE files which maven will generate in the Kafka connector archives
add d66c60d - Minor updates (Generally the order of imports so a reformat doesn't change the files too much)
add 3ce506f - Minor updates (Generally the order of imports so a reformat doesn't change the files too much)
add 6d8f73f PLC4X-272 When splitting up large requests, too big sub-requests are generated (S7) - When splitting up into more than one request, the new request was correctly initialized with the empty-request size, however the current element wasn't added. This should now be fixed
add aa172ac Add Encryption handler for opcua server
add cb1f190 Re-Wrote OPC UA server -> Milo Interface
add 184fafb Finialized OPCUA server and updated Kafka connector
add cca4a9f Updated based on Ottos and Matthias' comments.
add 3101ec1 Merge pull request #225 from apache/add_encryption_handler_opcua
add e1560ad - Made the Reader detect the case of a property not existing or not having the permission to read.
add b5ed562 - Fixed some package errors
add 7919d5d - Adjusted the "TestKnxNetIpPlc4goDiscovery" test to work with the updated Browse functionality.
add c87455a - Made the Udp and Tcp transport not log an error in GetNumReadableBytes
add 0baecae - Removed an unneeded log output
new a6e41a9 Merge branch 'develop' into feature/native_opua_client
new d8e54a0 Cleaned up parameter parsing and key store generator.
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:
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 +-
.../knxmasterdata/readwrite/XmlParserHelper.go | 35 -
.../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 +-
.../plc4go/spi/{PlcWriter.go => PlcBrowser.go} | 4 +-
.../plc4go/spi/{PlcReader.go => PlcDiscoverer.go} | 4 +-
plc4go/internal/plc4go/spi/PlcSubscriber.go | 2 +-
.../plc4go/spi/TransportInstanceExposer.go | 4 +-
.../interceptors/SingleItemRequestInterceptor.go | 2 +-
.../plc4go/spi/model/DefaultBrowseRequest.go | 102 +
.../plc4go/spi/model/DefaultPlcDiscoveryEvent.go} | 33 +-
.../{ => 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/opcua/OpcuaPlcDriver.java | 36 +-
.../java/opcua/config/OpcuaConfiguration.java | 24 +-
.../apache/plc4x/java/s7/readwrite/S7Driver.java | 9 +
.../java/s7/readwrite/optimizer/S7Optimizer.java | 4 +-
.../plc4x/java/s7/readwrite/issues/PLC4X272.java} | 8 +-
.../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 | 2 +-
plc4j/integrations/opcua-server/pom.xml | 22 +-
.../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 | 8 +-
.../opcuaserver}/context/CertificateKeyPair.java | 2 +-
.../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 | 27 +-
.../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 | 173 +-
.../enrich/knxnetip/ets5/Ets5DataEnrichment.java | 8 +-
516 files changed, 27516 insertions(+), 15269 deletions(-)
delete mode 100644 plc4go/internal/plc4go/knxmasterdata/readwrite/XmlParserHelper.go
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
delete mode 100644 plc4go/internal/plc4go/model/DefaultPlcSubscriptionEvent.go
delete mode 100644 plc4go/internal/plc4go/model/DefaultPlcSubscriptionRequest.go
delete mode 100644 plc4go/internal/plc4go/model/values/PlcBitString.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/{pkg/plc4go/model/plc_unsubscription_response.go => internal/plc4go/spi/model/DefaultPlcDiscoveryEvent.go} (55%)
rename plc4go/internal/plc4go/{ => spi}/model/DefaultPlcReadRequest.go (100%)
copy plc4go/internal/plc4go/{ => spi}/model/DefaultPlcReadResponse.go (100%)
rename plc4go/internal/plc4go/{model/DefaultPlcReadResponse.go => spi/model/DefaultPlcSubscriptionEvent.go} (50%)
create mode 100644 plc4go/internal/plc4go/spi/model/DefaultPlcSubscriptionRequest.go
rename plc4go/internal/plc4go/{ => spi}/model/DefaultPlcSubscriptionResponse.go (98%)
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 (100%)
rename plc4go/internal/plc4go/{ => spi}/transports/Transport.go (73%)
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 (88%)
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 (95%)
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 (100%)
rename plc4go/internal/plc4go/{model => spi}/values/BYTE.go (100%)
rename plc4go/internal/plc4go/{model => spi}/values/CHAR.go (100%)
rename plc4go/internal/plc4go/{model => spi}/values/DATE.go (71%)
rename plc4go/internal/plc4go/{model => spi}/values/DATE_AND_TIME.go (100%)
rename plc4go/internal/plc4go/{model => spi}/values/DINT.go (100%)
rename plc4go/internal/plc4go/{model => spi}/values/DWORD.go (100%)
rename plc4go/internal/plc4go/{model => spi}/values/IEC61131ValueHandler.go (100%)
rename plc4go/internal/plc4go/{model => spi}/values/INT.go (100%)
rename plc4go/internal/plc4go/{model => spi}/values/LINT.go (100%)
rename plc4go/internal/plc4go/{model => spi}/values/LREAL.go (100%)
rename plc4go/internal/plc4go/{model => spi}/values/LTIME.go (100%)
rename plc4go/internal/plc4go/{model => spi}/values/LWORD.go (100%)
rename plc4go/internal/plc4go/{model => spi}/values/NULL.go (100%)
copy plc4go/internal/plc4go/{model/values/PlcList.go => spi/values/PlcBitString.go} (55%)
rename plc4go/internal/plc4go/{model => spi}/values/PlcByteArray.go (100%)
rename plc4go/internal/plc4go/{model => spi}/values/PlcList.go (100%)
rename plc4go/internal/plc4go/{model => spi}/values/PlcSimpleValueAdapter.go (100%)
rename plc4go/internal/plc4go/{model => spi}/values/PlcStruct.go (85%)
rename plc4go/internal/plc4go/{model => spi}/values/PlcValueAdapter.go (100%)
rename plc4go/internal/plc4go/{model => spi}/values/REAL.go (100%)
rename plc4go/internal/plc4go/{model => spi}/values/SINT.go (100%)
rename plc4go/internal/plc4go/{model => spi}/values/STRING.go (100%)
rename plc4go/internal/plc4go/{model => spi}/values/TIME.go (100%)
rename plc4go/internal/plc4go/{model => spi}/values/TIME_OF_DAY.go (66%)
rename plc4go/internal/plc4go/{model => spi}/values/UDINT.go (100%)
rename plc4go/internal/plc4go/{model => spi}/values/UINT.go (100%)
rename plc4go/internal/plc4go/{model => spi}/values/ULINT.go (100%)
rename plc4go/internal/plc4go/{model => spi}/values/USINT.go (100%)
rename plc4go/internal/plc4go/{model => spi}/values/WCHAR.go (100%)
rename plc4go/internal/plc4go/{model => spi}/values/WORD.go (100%)
rename plc4go/internal/plc4go/{model => spi}/values/WSTRING.go (100%)
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
copy plc4go/pkg/plc4go/model/{plc_read_request.go => plc_browse.go} (53%)
rename plc4go/{internal/plc4go/knxmasterdata/readwrite/ParserHelper.go => pkg/plc4go/model/plc_discovery.go} (62%)
rename plc4go/pkg/plc4go/model/{plc_read_request.go => plc_read.go} (80%)
delete mode 100644 plc4go/pkg/plc4go/model/plc_read_response.go
rename plc4go/pkg/plc4go/model/{plc_subscription_request.go => plc_subscription.go} (51%)
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%)
rename plc4go/pkg/plc4go/model/{plc_write_request.go => plc_write.go} (97%)
delete mode 100644 plc4go/pkg/plc4go/model/plc_write_response.go
copy plc4j/drivers/{ads/src/test/java/org/apache/plc4x/protocol/ads/AdsDriverIT.java => s7/src/test/java/org/apache/plc4x/java/s7/readwrite/issues/PLC4X272.java} (82%)
create mode 100644 plc4j/drivers/s7/src/test/resources/tests/PLC4X-272.xml
create mode 100644 plc4j/integrations/apache-kafka/src/remote-resources/LICENSE
copy plc4j/{utils/raw-sockets/src/remote-resources/META-INF => integrations/apache-kafka/src/remote-resources}/NOTICE (55%)
delete mode 100644 plc4j/integrations/opcua-server/src/main/java/org/apache/plc4x/java/opcuaserver/AttributeLoggingFilter.java
delete mode 100644 plc4j/integrations/opcua-server/src/main/java/org/apache/plc4x/java/opcuaserver/KeyStoreLoader.java
copy plc4j/{drivers/opcua/src/main/java/org/apache/plc4x/java/opcua => integrations/opcua-server/src/main/java/org/apache/plc4x/java/opcuaserver}/context/CertificateGenerator.java (96%)
copy plc4j/{drivers/opcua/src/main/java/org/apache/plc4x/java/opcua => integrations/opcua-server/src/main/java/org/apache/plc4x/java/opcuaserver}/context/CertificateKeyPair.java (96%)
create mode 100644 plc4j/integrations/opcua-server/src/test/java/org/apache/plc4x/java/opcuaserver/OpcuaPlcDriverTest.java
[plc4x] 02/02: Cleaned up parameter parsing and key store generator.
Posted by hu...@apache.org.
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 d8e54a013a4959d4a4b9e60e8bc976bc925abd48
Author: hutcheb <be...@gmail.com>
AuthorDate: Sat Jan 23 07:06:37 2021 -0500
Cleaned up parameter parsing and key store generator.
---
.../apache/plc4x/java/opcua/OpcuaPlcDriver.java | 36 ++++++++++++++++------
.../java/opcua/config/OpcuaConfiguration.java | 24 ++++++---------
plc4j/integrations/opcua-server/pom.xml | 5 +--
.../spi/connection/DefaultNettyPlcConnection.java | 14 ---------
protocols/knxnetip/src/main/xslt/knx-types.xsl | 26 ++++------------
5 files changed, 43 insertions(+), 62 deletions(-)
diff --git a/plc4j/drivers/opcua/src/main/java/org/apache/plc4x/java/opcua/OpcuaPlcDriver.java b/plc4j/drivers/opcua/src/main/java/org/apache/plc4x/java/opcua/OpcuaPlcDriver.java
index 1a391f5..8ee6981 100644
--- a/plc4j/drivers/opcua/src/main/java/org/apache/plc4x/java/opcua/OpcuaPlcDriver.java
+++ b/plc4j/drivers/opcua/src/main/java/org/apache/plc4x/java/opcua/OpcuaPlcDriver.java
@@ -33,9 +33,9 @@ import org.apache.plc4x.java.spi.values.IEC61131ValueHandler;
import org.apache.plc4x.java.api.value.PlcValueHandler;
import org.apache.plc4x.java.spi.configuration.Configuration;
import org.apache.plc4x.java.spi.connection.GeneratedDriverBase;
-import org.apache.plc4x.java.spi.optimizer.BaseOptimizer;
-import org.apache.plc4x.java.spi.optimizer.SingleFieldOptimizer;
import io.netty.buffer.ByteBuf;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import java.util.ServiceLoader;
import java.util.regex.Matcher;
@@ -45,14 +45,9 @@ import java.util.function.ToIntFunction;
import static org.apache.plc4x.java.spi.configuration.ConfigurationFactory.configure;
-/**
- * Implementation of the OPC UA protocol, based on:
- * - Eclipse Milo (https://github.com/eclipse/milo)
- *
- * Created by Matthias Milan Strljic on 10.05.2019
- */
public class OpcuaPlcDriver extends GeneratedDriverBase<OpcuaAPU> {
+ private static final Logger LOGGER = LoggerFactory.getLogger(OpcuaPlcDriver.class);
public static final Pattern OPCUA_URI_PARAM_PATTERN = Pattern.compile("(?<param>[(\\?|\\&)([^=]+)\\=([^&]+)]+)?"); //later used for regex filtering of the params
@@ -65,7 +60,7 @@ public class OpcuaPlcDriver extends GeneratedDriverBase<OpcuaAPU> {
public static final Pattern URI_PATTERN = Pattern.compile("^(?<protocolCode>opcua)" +
INET_ADDRESS_PATTERN +
"(?<transportEndpoint>[\\w/=]*)[\\?]?" +
- "(?<paramString>[\\&\\w=]+\\=[\\w&]+)*"
+ "(?<paramString>([^\\=]+\\=[^\\=&]+[&]?)*)"
);
@@ -125,6 +120,10 @@ public class OpcuaPlcDriver extends GeneratedDriverBase<OpcuaAPU> {
return new IEC61131ValueHandler();
}
+ protected boolean awaitDisconnectComplete() {
+ return true;
+ }
+
@Override
protected ProtocolStackConfigurer<OpcuaAPU> getStackConfigurer() {
return SingleProtocolStackConfigurer.builder(OpcuaAPU.class, OpcuaAPUIO.class)
@@ -190,6 +189,7 @@ public class OpcuaPlcDriver extends GeneratedDriverBase<OpcuaAPU> {
configure(configuration, transport);
// Create an instance of the communication channel which the driver should use.
+ System.out.println(transportHost + ":" + transportPort);
ChannelFactory channelFactory = transport.createChannelFactory(transportHost + ":" + transportPort);
if(channelFactory == null) {
throw new PlcConnectionException("Unable to get channel factory from url " + transportHost + ":" + transportPort);
@@ -205,6 +205,23 @@ public class OpcuaPlcDriver extends GeneratedDriverBase<OpcuaAPU> {
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));
+ }
+
+ if (!(configuration.getSecurityPolicy().equals("None"))) {
+ try {
+ LOGGER.info(configuration.getKeyStoreFile());
+ LOGGER.info(configuration.getCertDirectory());
+ LOGGER.info(configuration.getKeyStorePassword());
+ configuration.openKeyStore();
+ } catch (Exception e) {
+ throw new PlcConnectionException("Unable to open keystore, please confirm you have the correct permissions");
+ }
+ }
+
return new DefaultNettyPlcConnection(
canRead(), canWrite(), canSubscribe(),
getFieldHandler(),
@@ -212,6 +229,7 @@ public class OpcuaPlcDriver extends GeneratedDriverBase<OpcuaAPU> {
configuration,
channelFactory,
awaitSetupComplete,
+ awaitDisconnectComplete,
getStackConfigurer(),
getOptimizer());
}
diff --git a/plc4j/drivers/opcua/src/main/java/org/apache/plc4x/java/opcua/config/OpcuaConfiguration.java b/plc4j/drivers/opcua/src/main/java/org/apache/plc4x/java/opcua/config/OpcuaConfiguration.java
index c9ff79f..0b6b86d 100644
--- a/plc4j/drivers/opcua/src/main/java/org/apache/plc4x/java/opcua/config/OpcuaConfiguration.java
+++ b/plc4j/drivers/opcua/src/main/java/org/apache/plc4x/java/opcua/config/OpcuaConfiguration.java
@@ -29,6 +29,7 @@ import org.apache.plc4x.java.spi.configuration.annotations.defaults.BooleanDefau
import org.apache.plc4x.java.spi.configuration.annotations.defaults.IntDefaultValue;
import org.apache.plc4x.java.spi.configuration.annotations.defaults.StringDefaultValue;
import org.apache.plc4x.java.transport.tcp.TcpTransportConfiguration;
+import org.bouncycastle.jce.provider.BouncyCastleProvider;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -44,6 +45,11 @@ import java.security.cert.X509Certificate;
public class OpcuaConfiguration implements Configuration, TcpTransportConfiguration {
+ static {
+ // Required for SecurityPolicy.Aes256_Sha256_RsaPss
+ Security.addProvider(new BouncyCastleProvider());
+ }
+
private static final Logger LOGGER = LoggerFactory.getLogger(OpcuaConfiguration.class);
private String code;
@@ -52,18 +58,6 @@ public class OpcuaConfiguration implements Configuration, TcpTransportConfigurat
private String endpoint;
private String params;
- public OpcuaConfiguration() {
- if (!(securityPolicy == "None")) {
- try {
- if (!(keyStoreFile == null) & !(certDirectory == null) & !(keyStorePassword == null)) {
- openKeyStore();
- }
- } catch (Exception e) {
- LOGGER.info("Unable to open keystore, please confirm you have the correct permissions");
- }
- }
- }
-
@ConfigurationParameter("discovery")
@BooleanDefaultValue(true)
private boolean discovery;
@@ -133,8 +127,8 @@ public class OpcuaConfiguration implements Configuration, TcpTransportConfigurat
this.password = password;
}
- public void setCertFile(String certFile) {
- this.certDirectory = certFile;
+ public void setCertDirectory(String certDirectory) {
+ this.certDirectory = certDirectory;
}
public void setSecurityPolicy(String securityPolicy) {
@@ -181,7 +175,7 @@ public class OpcuaConfiguration implements Configuration, TcpTransportConfigurat
this.endpoint = endpoint;
}
- private void openKeyStore() throws KeyStoreException, PlcConnectionException, CertificateException, NoSuchAlgorithmException, IOException, UnrecoverableKeyException {
+ public void openKeyStore() throws KeyStoreException, PlcConnectionException, CertificateException, NoSuchAlgorithmException, IOException, UnrecoverableKeyException {
File securityTempDir = new File(certDirectory, "security");
if (!securityTempDir.exists() && !securityTempDir.mkdirs()) {
throw new PlcConnectionException("Unable to create directory please confirm folder permissions on " + certDirectory);
diff --git a/plc4j/integrations/opcua-server/pom.xml b/plc4j/integrations/opcua-server/pom.xml
index 21fcc24..aa3b66a 100644
--- a/plc4j/integrations/opcua-server/pom.xml
+++ b/plc4j/integrations/opcua-server/pom.xml
@@ -203,10 +203,7 @@
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
</dependency>
-<<<<<<< HEAD
-
-=======
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
@@ -216,7 +213,7 @@
<groupId>io.vavr</groupId>
<artifactId>vavr</artifactId>
</dependency>
->>>>>>> develop
+
<dependency>
<groupId>org.apache.commons</groupId>
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 2343d11..177ef71 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
@@ -50,11 +50,7 @@ public class DefaultNettyPlcConnection extends AbstractPlcConnection implements
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;
@@ -122,15 +118,6 @@ public class DefaultNettyPlcConnection extends AbstractPlcConnection implements
*/
@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);
@@ -141,7 +128,6 @@ public class DefaultNettyPlcConnection extends AbstractPlcConnection implements
}
} catch (Exception e) {
logger.error("Timeout while trying to close connection");
->>>>>>> develop
}
channel.pipeline().fireUserEventTriggered(new CloseConnectionEvent());
diff --git a/protocols/knxnetip/src/main/xslt/knx-types.xsl b/protocols/knxnetip/src/main/xslt/knx-types.xsl
index 6590625..4e3a6de 100644
--- a/protocols/knxnetip/src/main/xslt/knx-types.xsl
+++ b/protocols/knxnetip/src/main/xslt/knx-types.xsl
@@ -47,45 +47,35 @@
// specific language governing permissions and limitations
// under the License.
//
-[enum uint 16 'KnxDatapointType' [uint 16 'number', uint 8 'sizeInBits', string 'name']
+[enum uint 16 'KnxDatapointType' [uint 16 'number', uint 8 'sizeInBits', string '-1' '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']
+[enum uint 32 'KnxDatapointSubtype' [uint 16 'number', KnxDatapointType 'datapointType', string '-1' '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']
+[enum uint 16 'KnxInterfaceObjectType' [string '-1' 'code', string '-1' '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']
+[enum uint 32 'KnxInterfaceObjectProperty' [uint 8 'propertyId', KnxInterfaceObjectType 'objectType', KnxPropertyDataType 'propertyDataType', string '-1' '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']
+[enum uint 8 'KnxPropertyDataType' [uint 8 'number', uint 8 'sizeInBytes', string '-1' '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']
+[enum uint 16 'KnxManufacturer' [uint 16 'number', string '-1' 'name']
['0' M_UNKNOWN ['0', '"Unknown Manufacturer"']]
<xsl:apply-templates select="knx:KNX/knx:MasterData/knx:Manufacturers/knx:Manufacturer"/>
->>>>>>> develop
]
</xsl:template>
@@ -188,9 +178,6 @@
</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), '/', ''), '\(', ''), '\)', ''), '–', '_')"/>
@@ -199,4 +186,3 @@
</xsl:template>
</xsl:stylesheet>
->>>>>>> develop
[plc4x] 01/02: Merge branch 'develop' into
feature/native_opua_client
Posted by hu...@apache.org.
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, '\[', '_'), '\]', ''), '³', '_3'), 'µ', '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), '/', ''), '\(', ''), '\)', ''), '–', '_')"/>
+ <xsl:variable name="cleanedText2" select="fn:replace(fn:replace($cleanedText, '³', '_3'), 'É', '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),' ', '_'), '&', 'AND'), '-', '_'), ' ', '_'), '\.', '_'), ',', '_'), '\+', 'Plus'), '/', '_'), 'Ä', 'AE'), 'Ö', 'OE'), 'Ü', 'UE'), 'ß', 'SS'), ':', '_')"/>
+ </xsl:template>
+
-</xsl:stylesheet>
+</xsl:stylesheet>
++>>>>>>> develop