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 2020/11/14 13:12:35 UTC

[plc4x] 01/02: Merge branch 'feature/plc4go' into bug/simulated_device_data_types

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

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

commit 3c79e6cab7de315a7fccdcf9400965617e7c1ea2
Merge: 7627f38 1d3fc22
Author: hutcheb <be...@gmail.com>
AuthorDate: Sat Nov 14 06:45:24 2020 -0500

    Merge branch 'feature/plc4go' into bug/simulated_device_data_types

 .gitignore                                         |    3 +
 .../BaseFreemarkerLanguageTemplateHelper.java      |   89 +-
 .../resources/templates/c/data-io-template-c.ftlh  |    3 +-
 .../resources/templates/c/enum-template-c.ftlh     |    6 +-
 .../resources/templates/c/enum-template-h.ftlh     |    2 +-
 build-utils/language-go/pom.xml                    |   58 +
 .../apache/plc4x/language/go/GoLanguageOutput.java |   72 +
 .../language/go/GoLanguageTemplateHelper.java      | 1061 ++++
 .../go/hack/DefaultBooleanTypeReference.java       |   16 +-
 .../go/hack/DefaultFloatTypeReference.java         |   28 +-
 .../go/hack/DefaultIntegerTypeReference.java       |   24 +-
 .../apache/plc4x/language/go/utils/FieldUtils.java |  103 +
 ...x.plugins.codegenerator.language.LanguageOutput |   24 +-
 .../resources/templates/go/data-io-template.ftlh   |  222 +
 .../main/resources/templates/go/enum-template.ftlh |  139 +
 .../resources/templates/go/model-template.ftlh     | 1029 ++++
 .../templates/go/parser-factory-template.ftlh      |   96 +
 .../templates/go/xml-parser-factory-template.ftlh  |   89 +
 .../language/java/JavaLanguageTemplateHelper.java  |   74 +-
 .../resources/templates/java/data-io-template.ftlh |  142 +-
 .../resources/templates/java/enum-template.ftlh    |    4 +-
 .../main/resources/templates/java/io-template.ftlh |   16 +-
 build-utils/pom.xml                                |    1 +
 .../plugins/codegenerator/language/mspec/MSpec.g4  |    6 +-
 .../references/DefaultBooleanTypeReference.java    |   10 +-
 .../mspec/parser/MessageFormatListener.java        |    7 +-
 .../knxnetip/ParserSerializerTestsuite.xml         |   48 +-
 .../testing/protocols/modbus/DriverTestsuite.xml   |  382 ++
 .../protocols/modbus/ParserSerializerTestsuite.xml |   44 +-
 .../testing/protocols/s7/DriverTestsuite.xml       |   70 +-
 .../protocols/s7/ParserSerializerTestsuite.xml     |    0
 plc4go/cmd/main/drivers/bacnetip_test.go           |   43 +
 plc4go/cmd/main/drivers/knxnetip_test.go           |  167 +
 plc4go/cmd/main/drivers/modbus_test.go             |  208 +
 plc4go/cmd/main/drivers/s7_test.go                 |   42 +
 .../cmd/main/drivers/tests/modbus_driver_test.go   |   29 +
 .../drivers/tests/modbus_parser_serializer_test.go |   28 +
 plc4go/cmd/main/main.go                            |   22 +
 plc4go/examples/read/hello_world_plc4go_read.go    |   70 +
 plc4go/examples/write/hello_world_plc4go_write.go  |   71 +
 plc4go/go.mod                                      |   29 +
 plc4go/go.sum                                      |   22 +
 plc4go/internal/plc4go/bacnetip/BacnetIpDriver.go  |   25 +
 .../plc4go/bacnetip/readwrite/ParserHelper.go      |   79 +
 .../plc4go/bacnetip/readwrite/XmlParserHelper.go   |  119 +
 .../plc4go/bacnetip/readwrite/model/APDU.go        |  286 +
 .../plc4go/bacnetip/readwrite/model/APDUAbort.go   |  242 +
 .../bacnetip/readwrite/model/APDUComplexAck.go     |  345 ++
 .../readwrite/model/APDUConfirmedRequest.go        |  429 ++
 .../plc4go/bacnetip/readwrite/model/APDUError.go   |  213 +
 .../plc4go/bacnetip/readwrite/model/APDUReject.go  |  214 +
 .../bacnetip/readwrite/model/APDUSegmentAck.go     |  298 +
 .../bacnetip/readwrite/model/APDUSimpleAck.go      |  214 +
 .../readwrite/model/APDUUnconfirmedRequest.go      |  185 +
 .../bacnetip/readwrite/model/ApplicationTag.go     |  108 +
 .../bacnetip/readwrite/model/BACnetAddress.go      |  179 +
 .../readwrite/model/BACnetConfirmedServiceACK.go   |  370 ++
 .../BACnetConfirmedServiceACKAtomicReadFile.go     |  131 +
 .../BACnetConfirmedServiceACKAtomicWriteFile.go    |  131 +
 ...tConfirmedServiceACKConfirmedPrivateTransfer.go |  131 +
 .../model/BACnetConfirmedServiceACKCreateObject.go |  131 +
 .../BACnetConfirmedServiceACKGetAlarmSummary.go    |  131 +
 ...ACnetConfirmedServiceACKGetEnrollmentSummary.go |  131 +
 ...BACnetConfirmedServiceACKGetEventInformation.go |  131 +
 .../model/BACnetConfirmedServiceACKReadProperty.go |  131 +
 ...ACnetConfirmedServiceACKReadPropertyMultiple.go |  131 +
 .../model/BACnetConfirmedServiceACKReadRange.go    |  131 +
 ...BACnetConfirmedServiceACKRemovedAuthenticate.go |  131 +
 ...rmedServiceACKRemovedReadPropertyConditional.go |  131 +
 .../model/BACnetConfirmedServiceACKVTData.go       |  131 +
 .../model/BACnetConfirmedServiceACKVTOpen.go       |  131 +
 .../model/BACnetConfirmedServiceRequest.go         |  608 +++
 ...ACnetConfirmedServiceRequestAcknowledgeAlarm.go |  131 +
 .../BACnetConfirmedServiceRequestAddListElement.go |  131 +
 .../BACnetConfirmedServiceRequestAtomicReadFile.go |  131 +
 ...BACnetConfirmedServiceRequestAtomicWriteFile.go |  131 +
 ...firmedServiceRequestConfirmedCOVNotification.go |  511 ++
 ...rviceRequestConfirmedCOVNotificationMultiple.go |  131 +
 ...rmedServiceRequestConfirmedEventNotification.go |  131 +
 ...firmedServiceRequestConfirmedPrivateTransfer.go |  131 +
 ...tConfirmedServiceRequestConfirmedTextMessage.go |  131 +
 .../BACnetConfirmedServiceRequestCreateObject.go   |  131 +
 .../BACnetConfirmedServiceRequestDeleteObject.go   |  131 +
 ...rmedServiceRequestDeviceCommunicationControl.go |  131 +
 ...tConfirmedServiceRequestGetEnrollmentSummary.go |  131 +
 ...etConfirmedServiceRequestGetEventInformation.go |  131 +
 ...etConfirmedServiceRequestLifeSafetyOperation.go |  131 +
 .../BACnetConfirmedServiceRequestReadProperty.go   |  303 +
 ...tConfirmedServiceRequestReadPropertyMultiple.go |  131 +
 .../BACnetConfirmedServiceRequestReadRange.go      |  131 +
 ...netConfirmedServiceRequestReinitializeDevice.go |  131 +
 ...CnetConfirmedServiceRequestRemoveListElement.go |  131 +
 ...etConfirmedServiceRequestRemovedAuthenticate.go |  131 +
 ...ServiceRequestRemovedReadPropertyConditional.go |  131 +
 ...CnetConfirmedServiceRequestRemovedRequestKey.go |  131 +
 .../BACnetConfirmedServiceRequestSubscribeCOV.go   |  416 ++
 ...tConfirmedServiceRequestSubscribeCOVProperty.go |  131 +
 ...edServiceRequestSubscribeCOVPropertyMultiple.go |  131 +
 .../model/BACnetConfirmedServiceRequestVTClose.go  |  131 +
 .../model/BACnetConfirmedServiceRequestVTData.go   |  131 +
 .../model/BACnetConfirmedServiceRequestVTOpen.go   |  131 +
 .../BACnetConfirmedServiceRequestWriteProperty.go  |  408 ++
 ...ConfirmedServiceRequestWritePropertyMultiple.go |  131 +
 .../plc4go/bacnetip/readwrite/model/BACnetError.go |  370 ++
 .../readwrite/model/BACnetErrorAtomicReadFile.go   |  131 +
 .../readwrite/model/BACnetErrorAtomicWriteFile.go  |  131 +
 .../model/BACnetErrorConfirmedPrivateTransfer.go   |  131 +
 .../readwrite/model/BACnetErrorCreateObject.go     |  131 +
 .../readwrite/model/BACnetErrorGetAlarmSummary.go  |  131 +
 .../model/BACnetErrorGetEnrollmentSummary.go       |  131 +
 .../model/BACnetErrorGetEventInformation.go        |  131 +
 .../readwrite/model/BACnetErrorReadProperty.go     |  320 ++
 .../model/BACnetErrorReadPropertyMultiple.go       |  131 +
 .../readwrite/model/BACnetErrorReadRange.go        |  131 +
 .../model/BACnetErrorRemovedAuthenticate.go        |  131 +
 .../BACnetErrorRemovedReadPropertyConditional.go   |  131 +
 .../bacnetip/readwrite/model/BACnetErrorVTData.go  |  131 +
 .../bacnetip/readwrite/model/BACnetErrorVTOpen.go  |  131 +
 .../bacnetip/readwrite/model/BACnetNetworkType.go  |  102 +
 .../bacnetip/readwrite/model/BACnetNodeType.go     |  135 +
 .../bacnetip/readwrite/model/BACnetNotifyType.go   |   78 +
 .../bacnetip/readwrite/model/BACnetObjectType.go   |  246 +
 .../bacnetip/readwrite/model/BACnetServiceAck.go   |  370 ++
 .../model/BACnetServiceAckAtomicReadFile.go        |  131 +
 .../model/BACnetServiceAckAtomicWriteFile.go       |  131 +
 .../BACnetServiceAckConfirmedPrivateTransfer.go    |  131 +
 .../model/BACnetServiceAckCreateObject.go          |  131 +
 .../model/BACnetServiceAckGetAlarmSummary.go       |  131 +
 .../model/BACnetServiceAckGetEnrollmentSummary.go  |  131 +
 .../model/BACnetServiceAckGetEventInformation.go   |  131 +
 .../model/BACnetServiceAckReadProperty.go          |  368 ++
 .../model/BACnetServiceAckReadPropertyMultiple.go  |  131 +
 .../readwrite/model/BACnetServiceAckReadRange.go   |  131 +
 .../model/BACnetServiceAckRemovedAuthenticate.go   |  131 +
 ...CnetServiceAckRemovedReadPropertyConditional.go |  131 +
 .../readwrite/model/BACnetServiceAckVTData.go      |  131 +
 .../readwrite/model/BACnetServiceAckVTOpen.go      |  131 +
 .../plc4go/bacnetip/readwrite/model/BACnetTag.go   |  494 ++
 .../model/BACnetTagApplicationBitString.go         |  212 +
 .../readwrite/model/BACnetTagApplicationBoolean.go |  135 +
 .../model/BACnetTagApplicationCharacterString.go   |  135 +
 .../readwrite/model/BACnetTagApplicationDate.go    |  135 +
 .../readwrite/model/BACnetTagApplicationDouble.go  |  164 +
 .../model/BACnetTagApplicationEnumerated.go        |  184 +
 .../readwrite/model/BACnetTagApplicationNull.go    |  135 +
 .../model/BACnetTagApplicationObjectIdentifier.go  |  135 +
 .../model/BACnetTagApplicationOctetString.go       |  135 +
 .../readwrite/model/BACnetTagApplicationReal.go    |  164 +
 .../model/BACnetTagApplicationSignedInteger.go     |  184 +
 .../readwrite/model/BACnetTagApplicationTime.go    |  135 +
 .../model/BACnetTagApplicationUnsignedInteger.go   |  184 +
 .../bacnetip/readwrite/model/BACnetTagContext.go   |  184 +
 .../readwrite/model/BACnetTagWithContent.go        |  371 ++
 .../model/BACnetUnconfirmedServiceRequest.go       |  342 ++
 .../model/BACnetUnconfirmedServiceRequestIAm.go    |  397 ++
 .../model/BACnetUnconfirmedServiceRequestIHave.go  |  131 +
 ...UnconfirmedServiceRequestTimeSynchronization.go |  131 +
 ...onfirmedServiceRequestUTCTimeSynchronization.go |  131 +
 ...rmedServiceRequestUnconfirmedCOVNotification.go |  131 +
 ...iceRequestUnconfirmedCOVNotificationMultiple.go |  131 +
 ...edServiceRequestUnconfirmedEventNotification.go |  131 +
 ...rmedServiceRequestUnconfirmedPrivateTransfer.go |  315 ++
 ...onfirmedServiceRequestUnconfirmedTextMessage.go |  131 +
 .../model/BACnetUnconfirmedServiceRequestWhoHas.go |  340 ++
 .../model/BACnetUnconfirmedServiceRequestWhoIs.go  |  320 ++
 .../BACnetUnconfirmedServiceRequestWriteGroup.go   |  131 +
 .../plc4go/bacnetip/readwrite/model/BVLC.go        |  394 ++
 .../model/BVLCDeleteForeignDeviceTableEntry.go     |  131 +
 .../model/BVLCDistributeBroadcastToNetwork.go      |  131 +
 .../bacnetip/readwrite/model/BVLCForwardedNPDU.go  |  231 +
 .../readwrite/model/BVLCOriginalBroadcastNPDU.go   |  159 +
 .../readwrite/model/BVLCOriginalUnicastNPDU.go     |  159 +
 .../model/BVLCReadBroadcastDistributionTable.go    |  131 +
 .../model/BVLCReadBroadcastDistributionTableAck.go |  131 +
 .../readwrite/model/BVLCReadForeignDeviceTable.go  |  131 +
 .../model/BVLCReadForeignDeviceTableAck.go         |  131 +
 .../readwrite/model/BVLCRegisterForeignDevice.go   |  131 +
 .../plc4go/bacnetip/readwrite/model/BVLCResult.go  |  131 +
 .../bacnetip/readwrite/model/BVLCSecureBVLL.go     |  131 +
 .../model/BVLCWideBroadcastDistributionTable.go    |  131 +
 .../plc4go/bacnetip/readwrite/model/NLM.go         |  238 +
 .../readwrite/model/NLMIAmRouterToNetwork.go       |  179 +
 .../readwrite/model/NLMWhoIsRouterToNetwork.go     |  179 +
 .../plc4go/bacnetip/readwrite/model/NPDU.go        |  652 +++
 .../internal/plc4go/knxnetip/KncNetIpConnection.go |  449 ++
 plc4go/internal/plc4go/knxnetip/KnxNetIpDriver.go  |  107 +
 plc4go/internal/plc4go/knxnetip/KnxNetIpField.go   |  295 +
 .../plc4go/knxnetip/KnxNetIpFieldHandler.go        |   83 +
 .../plc4go/knxnetip/KnxNetIpMessageCodec.go        |  162 +
 plc4go/internal/plc4go/knxnetip/KnxNetIpReader.go  |  159 +
 .../internal/plc4go/knxnetip/KnxNetIpSubscriber.go |  139 +
 .../plc4go/knxnetip/KnxNetIpSubscriptionEvent.go   |   84 +
 .../plc4go/knxnetip/KnxNetIpValueHandler.go        |   40 +
 plc4go/internal/plc4go/knxnetip/KnxNetIpWriter.go  |   72 +
 .../plc4go/knxnetip/readwrite/ParserHelper.go      |   91 +
 .../plc4go/knxnetip/readwrite/XmlParserHelper.go   |  203 +
 .../plc4go/knxnetip/readwrite/model/APCI.go        |  117 +
 .../plc4go/knxnetip/readwrite/model/CEMI.go        |  328 ++
 .../readwrite/model/CEMIAdditionalInformation.go   |  202 +
 .../CEMIAdditionalInformationBusmonitorInfo.go     |  322 ++
 .../CEMIAdditionalInformationRelativeTimestamp.go  |  181 +
 .../knxnetip/readwrite/model/CEMIBusmonInd.go      |  237 +
 .../plc4go/knxnetip/readwrite/model/CEMIDataCon.go |  237 +
 .../knxnetip/readwrite/model/CEMIDataFrame.go      |  613 +++
 .../plc4go/knxnetip/readwrite/model/CEMIDataInd.go |  237 +
 .../plc4go/knxnetip/readwrite/model/CEMIDataReq.go |  237 +
 .../plc4go/knxnetip/readwrite/model/CEMIFrame.go   |  382 ++
 .../knxnetip/readwrite/model/CEMIFrameAck.go       |  143 +
 .../knxnetip/readwrite/model/CEMIFrameData.go      |  486 ++
 .../knxnetip/readwrite/model/CEMIFrameDataExt.go   |  514 ++
 .../readwrite/model/CEMIFramePollingData.go        |  143 +
 .../readwrite/model/CEMIFramePollingDataExt.go     |  143 +
 .../knxnetip/readwrite/model/CEMIMPropReadCon.go   |  300 +
 .../knxnetip/readwrite/model/CEMIMPropReadReq.go   |  272 +
 .../knxnetip/readwrite/model/CEMIPollDataCon.go    |  131 +
 .../knxnetip/readwrite/model/CEMIPollDataReq.go    |  131 +
 .../knxnetip/readwrite/model/CEMIPriority.go       |   81 +
 .../plc4go/knxnetip/readwrite/model/CEMIRawCon.go  |  131 +
 .../plc4go/knxnetip/readwrite/model/CEMIRawInd.go  |  131 +
 .../plc4go/knxnetip/readwrite/model/CEMIRawReq.go  |  131 +
 .../knxnetip/readwrite/model/ConnectionRequest.go  |  213 +
 .../model/ConnectionRequestInformation.go          |  218 +
 ...ConnectionRequestInformationDeviceManagement.go |  131 +
 ...ConnectionRequestInformationTunnelConnection.go |  186 +
 .../knxnetip/readwrite/model/ConnectionResponse.go |  262 +
 .../readwrite/model/ConnectionResponseDataBlock.go |  218 +
 .../ConnectionResponseDataBlockDeviceManagement.go |  131 +
 .../ConnectionResponseDataBlockTunnelConnection.go |  159 +
 .../readwrite/model/ConnectionStateRequest.go      |  213 +
 .../readwrite/model/ConnectionStateResponse.go     |  188 +
 .../knxnetip/readwrite/model/DIBDeviceInfo.go      |  391 ++
 .../knxnetip/readwrite/model/DIBSuppSvcFamilies.go |  199 +
 .../knxnetip/readwrite/model/DescriptionRequest.go |  159 +
 .../readwrite/model/DescriptionResponse.go         |  186 +
 .../readwrite/model/DeviceConfigurationAck.go      |  159 +
 .../model/DeviceConfigurationAckDataBlock.go       |  205 +
 .../readwrite/model/DeviceConfigurationRequest.go  |  186 +
 .../model/DeviceConfigurationRequestDataBlock.go   |  205 +
 .../knxnetip/readwrite/model/DeviceStatus.go       |  163 +
 .../knxnetip/readwrite/model/DisconnectRequest.go  |  213 +
 .../knxnetip/readwrite/model/DisconnectResponse.go |  188 +
 .../readwrite/model/HPAIControlEndpoint.go         |  204 +
 .../knxnetip/readwrite/model/HPAIDataEndpoint.go   |  204 +
 .../readwrite/model/HPAIDiscoveryEndpoint.go       |  204 +
 .../knxnetip/readwrite/model/HostProtocolCode.go   |   75 +
 .../plc4go/knxnetip/readwrite/model/IPAddress.go   |  155 +
 .../plc4go/knxnetip/readwrite/model/KnxAddress.go  |  189 +
 .../knxnetip/readwrite/model/KnxDatapoint.go       | 5761 ++++++++++++++++++++
 .../knxnetip/readwrite/model/KnxDatapointType.go   | 4368 +++++++++++++++
 .../knxnetip/readwrite/model/KnxGroupAddress.go    |  200 +
 .../readwrite/model/KnxGroupAddress2Level.go       |  188 +
 .../readwrite/model/KnxGroupAddress3Level.go       |  216 +
 .../readwrite/model/KnxGroupAddressFreeLevel.go    |  160 +
 .../plc4go/knxnetip/readwrite/model/KnxLayer.go    |   78 +
 .../knxnetip/readwrite/model/KnxNetIpCore.go       |  160 +
 .../readwrite/model/KnxNetIpDeviceManagement.go    |  160 +
 .../knxnetip/readwrite/model/KnxNetIpMessage.go    |  452 ++
 .../knxnetip/readwrite/model/KnxNetIpTunneling.go  |  160 +
 .../knxnetip/readwrite/model/KnxNetObjectServer.go |  160 +
 .../model/KnxNetRemoteConfigurationAndDiagnosis.go |  160 +
 .../readwrite/model/KnxNetRemoteLogging.go         |  160 +
 .../plc4go/knxnetip/readwrite/model/MACAddress.go  |  155 +
 .../model/ProjectInstallationIdentifier.go         |  163 +
 .../knxnetip/readwrite/model/RelativeTimestamp.go  |  137 +
 .../knxnetip/readwrite/model/RoutingIndication.go  |  131 +
 .../knxnetip/readwrite/model/SearchRequest.go      |  159 +
 .../knxnetip/readwrite/model/SearchResponse.go     |  213 +
 .../plc4go/knxnetip/readwrite/model/ServiceId.go   |  258 +
 .../plc4go/knxnetip/readwrite/model/Status.go      |  105 +
 .../plc4go/knxnetip/readwrite/model/TPCI.go        |   81 +
 .../knxnetip/readwrite/model/TunnelingRequest.go   |  186 +
 .../readwrite/model/TunnelingRequestDataBlock.go   |  205 +
 .../knxnetip/readwrite/model/TunnelingResponse.go  |  159 +
 .../readwrite/model/TunnelingResponseDataBlock.go  |  205 +
 .../knxnetip/readwrite/model/UnknownMessage.go     |  178 +
 plc4go/internal/plc4go/modbus/ModbusConnection.go  |  161 +
 plc4go/internal/plc4go/modbus/ModbusDriver.go      |   97 +
 plc4go/internal/plc4go/modbus/ModbusField.go       |   94 +
 .../internal/plc4go/modbus/ModbusFieldHandler.go   |  109 +
 .../internal/plc4go/modbus/ModbusMessageCodec.go   |  161 +
 plc4go/internal/plc4go/modbus/ModbusReader.go      |  195 +
 .../internal/plc4go/modbus/ModbusValueHandler.go   |   31 +
 plc4go/internal/plc4go/modbus/ModbusWriter.go      |  218 +
 .../plc4go/modbus/readwrite/ParserHelper.go        |   63 +
 .../plc4go/modbus/readwrite/XmlParserHelper.go     |   91 +
 .../plc4go/modbus/readwrite/model/DataItem.go      |  647 +++
 .../modbus/readwrite/model/ModbusConstants.go      |  133 +
 .../modbus/readwrite/model/ModbusDataTypeSizes.go  |  228 +
 .../modbus/readwrite/model/ModbusErrorCode.go      |   99 +
 .../plc4go/modbus/readwrite/model/ModbusPDU.go     |  738 +++
 .../readwrite/model/ModbusPDUDiagnosticRequest.go  |  196 +
 .../readwrite/model/ModbusPDUDiagnosticResponse.go |  196 +
 .../modbus/readwrite/model/ModbusPDUError.go       |  168 +
 .../model/ModbusPDUGetComEventCounterRequest.go    |  139 +
 .../model/ModbusPDUGetComEventCounterResponse.go   |  196 +
 .../model/ModbusPDUGetComEventLogRequest.go        |  139 +
 .../model/ModbusPDUGetComEventLogResponse.go       |  286 +
 .../ModbusPDUMaskWriteHoldingRegisterRequest.go    |  224 +
 .../ModbusPDUMaskWriteHoldingRegisterResponse.go   |  224 +
 .../readwrite/model/ModbusPDUReadCoilsRequest.go   |  196 +
 .../readwrite/model/ModbusPDUReadCoilsResponse.go  |  202 +
 .../ModbusPDUReadDeviceIdentificationRequest.go    |  139 +
 .../ModbusPDUReadDeviceIdentificationResponse.go   |  139 +
 .../model/ModbusPDUReadDiscreteInputsRequest.go    |  196 +
 .../model/ModbusPDUReadDiscreteInputsResponse.go   |  202 +
 .../model/ModbusPDUReadExceptionStatusRequest.go   |  139 +
 .../model/ModbusPDUReadExceptionStatusResponse.go  |  168 +
 .../model/ModbusPDUReadFifoQueueRequest.go         |  168 +
 .../model/ModbusPDUReadFifoQueueResponse.go        |  216 +
 .../model/ModbusPDUReadFileRecordRequest.go        |  211 +
 .../model/ModbusPDUReadFileRecordRequestItem.go    |  215 +
 .../model/ModbusPDUReadFileRecordResponse.go       |  211 +
 .../model/ModbusPDUReadFileRecordResponseItem.go   |  199 +
 .../model/ModbusPDUReadHoldingRegistersRequest.go  |  196 +
 .../model/ModbusPDUReadHoldingRegistersResponse.go |  202 +
 .../model/ModbusPDUReadInputRegistersRequest.go    |  196 +
 .../model/ModbusPDUReadInputRegistersResponse.go   |  202 +
 ...sPDUReadWriteMultipleHoldingRegistersRequest.go |  314 ++
 ...PDUReadWriteMultipleHoldingRegistersResponse.go |  202 +
 .../model/ModbusPDUReportServerIdRequest.go        |  139 +
 .../model/ModbusPDUReportServerIdResponse.go       |  202 +
 .../model/ModbusPDUWriteFileRecordRequest.go       |  211 +
 .../model/ModbusPDUWriteFileRecordRequestItem.go   |  251 +
 .../model/ModbusPDUWriteFileRecordResponse.go      |  211 +
 .../model/ModbusPDUWriteFileRecordResponseItem.go  |  251 +
 .../model/ModbusPDUWriteMultipleCoilsRequest.go    |  258 +
 .../model/ModbusPDUWriteMultipleCoilsResponse.go   |  196 +
 ...odbusPDUWriteMultipleHoldingRegistersRequest.go |  258 +
 ...dbusPDUWriteMultipleHoldingRegistersResponse.go |  196 +
 .../model/ModbusPDUWriteSingleCoilRequest.go       |  196 +
 .../model/ModbusPDUWriteSingleCoilResponse.go      |  196 +
 .../model/ModbusPDUWriteSingleRegisterRequest.go   |  196 +
 .../model/ModbusPDUWriteSingleRegisterResponse.go  |  196 +
 .../modbus/readwrite/model/ModbusSerialADU.go      |  240 +
 .../plc4go/modbus/readwrite/model/ModbusTcpADU.go  |  226 +
 .../internal/plc4go/model/DefaultPlcReadRequest.go |  169 +
 .../plc4go/model/DefaultPlcReadResponse.go         |   96 +
 .../plc4go/model/DefaultPlcSubscriptionEvent.go    |  108 +
 .../plc4go/model/DefaultPlcSubscriptionRequest.go  |  160 +
 .../plc4go/model/DefaultPlcSubscriptionResponse.go |   89 +
 .../plc4go/model/DefaultPlcWriteRequest.go         |  160 +
 .../plc4go/model/DefaultPlcWriteResponse.go        |   86 +
 plc4go/internal/plc4go/model/RequestInterceptor.go |   38 +
 plc4go/internal/plc4go/model/values/BOOL.go        |   76 +
 plc4go/internal/plc4go/model/values/BYTE.go        |   84 +
 plc4go/internal/plc4go/model/values/CHAR.go        |   47 +
 plc4go/internal/plc4go/model/values/DATE.go        |   50 +
 .../internal/plc4go/model/values/DATE_AND_TIME.go  |   50 +
 plc4go/internal/plc4go/model/values/DINT.go        |  138 +
 plc4go/internal/plc4go/model/values/DWORD.go       |   96 +
 .../plc4go/model/values/IEC61131ValueHandler.go    |  409 ++
 plc4go/internal/plc4go/model/values/INT.go         |  131 +
 plc4go/internal/plc4go/model/values/LINT.go        |  145 +
 plc4go/internal/plc4go/model/values/LREAL.go       |  161 +
 plc4go/internal/plc4go/model/values/LTIME.go       |   50 +
 plc4go/internal/plc4go/model/values/LWORD.go       |  112 +
 plc4go/internal/plc4go/model/values/NULL.go        |   39 +
 plc4go/internal/plc4go/model/values/PlcList.go     |   68 +
 .../plc4go/model/values/PlcSimpleValueAdapter.go   |   83 +
 plc4go/internal/plc4go/model/values/PlcStruct.go   |   97 +
 .../plc4go/model/values/PlcValueAdapter.go         |  182 +
 plc4go/internal/plc4go/model/values/REAL.go        |  155 +
 plc4go/internal/plc4go/model/values/SINT.go        |  123 +
 plc4go/internal/plc4go/model/values/STRING.go      |   47 +
 plc4go/internal/plc4go/model/values/TIME.go        |   50 +
 plc4go/internal/plc4go/model/values/TIME_OF_DAY.go |   51 +
 plc4go/internal/plc4go/model/values/UDINT.go       |  131 +
 plc4go/internal/plc4go/model/values/UINT.go        |  117 +
 plc4go/internal/plc4go/model/values/ULINT.go       |  145 +
 plc4go/internal/plc4go/model/values/USINT.go       |  103 +
 plc4go/internal/plc4go/model/values/WCHAR.go       |   50 +
 plc4go/internal/plc4go/model/values/WORD.go        |   88 +
 plc4go/internal/plc4go/model/values/WSTRING.go     |   50 +
 plc4go/internal/plc4go/s7/S7Driver.go              |   25 +
 .../internal/plc4go/s7/readwrite/ParserHelper.go   |   88 +
 .../plc4go/s7/readwrite/XmlParserHelper.go         |  133 +
 .../plc4go/s7/readwrite/model/COTPPacket.go        |  362 ++
 .../readwrite/model/COTPPacketConnectionRequest.go |  218 +
 .../model/COTPPacketConnectionResponse.go          |  218 +
 .../plc4go/s7/readwrite/model/COTPPacketData.go    |  190 +
 .../readwrite/model/COTPPacketDisconnectRequest.go |  218 +
 .../model/COTPPacketDisconnectResponse.go          |  190 +
 .../s7/readwrite/model/COTPPacketTpduError.go      |  190 +
 .../plc4go/s7/readwrite/model/COTPParameter.go     |  260 +
 .../s7/readwrite/model/COTPParameterCalledTsap.go  |  160 +
 .../s7/readwrite/model/COTPParameterCallingTsap.go |  160 +
 .../s7/readwrite/model/COTPParameterChecksum.go    |  160 +
 ...COTPParameterDisconnectAdditionalInformation.go |  176 +
 .../s7/readwrite/model/COTPParameterTpduSize.go    |  160 +
 .../plc4go/s7/readwrite/model/COTPProtocolClass.go |   84 +
 .../plc4go/s7/readwrite/model/COTPTpduSize.go      |  120 +
 .../internal/plc4go/s7/readwrite/model/DataItem.go |  362 ++
 .../s7/readwrite/model/DataTransportErrorCode.go   |   87 +
 .../plc4go/s7/readwrite/model/DataTransportSize.go |  120 +
 .../plc4go/s7/readwrite/model/DeviceGroup.go       |   78 +
 .../plc4go/s7/readwrite/model/MemoryArea.go        |  132 +
 .../plc4go/s7/readwrite/model/S7Address.go         |  188 +
 .../plc4go/s7/readwrite/model/S7AddressAny.go      |  326 ++
 .../plc4go/s7/readwrite/model/S7Message.go         |  406 ++
 .../plc4go/s7/readwrite/model/S7MessageRequest.go  |  134 +
 .../plc4go/s7/readwrite/model/S7MessageResponse.go |  191 +
 .../s7/readwrite/model/S7MessageResponseData.go    |  191 +
 .../plc4go/s7/readwrite/model/S7MessageUserData.go |  134 +
 .../plc4go/s7/readwrite/model/S7Parameter.go       |  259 +
 .../readwrite/model/S7ParameterReadVarRequest.go   |  200 +
 .../readwrite/model/S7ParameterReadVarResponse.go  |  164 +
 .../model/S7ParameterSetupCommunication.go         |  246 +
 .../s7/readwrite/model/S7ParameterUserData.go      |  200 +
 .../s7/readwrite/model/S7ParameterUserDataItem.go  |  188 +
 .../model/S7ParameterUserDataItemCPUFunctions.go   |  402 ++
 .../readwrite/model/S7ParameterWriteVarRequest.go  |  200 +
 .../readwrite/model/S7ParameterWriteVarResponse.go |  164 +
 .../plc4go/s7/readwrite/model/S7Payload.go         |  215 +
 .../s7/readwrite/model/S7PayloadReadVarResponse.go |  187 +
 .../plc4go/s7/readwrite/model/S7PayloadUserData.go |  184 +
 .../s7/readwrite/model/S7PayloadUserDataItem.go    |  305 ++
 ...PayloadUserDataItemCpuFunctionReadSzlRequest.go |  135 +
 ...ayloadUserDataItemCpuFunctionReadSzlResponse.go |  220 +
 .../s7/readwrite/model/S7PayloadWriteVarRequest.go |  187 +
 .../readwrite/model/S7PayloadWriteVarResponse.go   |  182 +
 .../plc4go/s7/readwrite/model/S7StaticHelper.go    |  150 +
 .../s7/readwrite/model/S7VarPayloadDataItem.go     |  254 +
 .../s7/readwrite/model/S7VarPayloadStatusItem.go   |  137 +
 .../readwrite/model/S7VarRequestParameterItem.go   |  188 +
 .../model/S7VarRequestParameterItemAddress.go      |  175 +
 .../plc4go/s7/readwrite/model/SzlDataTreeItem.go   |  259 +
 plc4go/internal/plc4go/s7/readwrite/model/SzlId.go |  189 +
 .../s7/readwrite/model/SzlModuleTypeClass.go       |   81 +
 .../plc4go/s7/readwrite/model/SzlSublist.go        |  126 +
 .../plc4go/s7/readwrite/model/TPKTPacket.go        |  200 +
 .../plc4go/s7/readwrite/model/TransportSize.go     |  696 +++
 plc4go/internal/plc4go/spi/HandlerExposer.go       |   24 +
 plc4go/internal/plc4go/spi/Message.go              |   27 +
 plc4go/internal/plc4go/spi/MessageCodec.go         |   30 +
 plc4go/internal/plc4go/spi/PlcFieldHandler.go      |   27 +
 plc4go/internal/plc4go/spi/PlcReader.go            |   25 +
 plc4go/internal/plc4go/spi/PlcSubscriber.go        |   26 +
 plc4go/internal/plc4go/spi/PlcValueHandler.go      |   28 +
 plc4go/internal/plc4go/spi/PlcWriter.go            |   25 +
 .../plc4go/spi/TransportInstanceExposer.go         |   25 +
 .../interceptors/SingleItemRequestInterceptor.go   |   85 +
 .../internal/plc4go/testutils/DriverTestRunner.go  |  497 ++
 .../plc4go/testutils/ParserSerializerTestRunner.go |  174 +
 plc4go/internal/plc4go/testutils/TestUtils.go      |   52 +
 plc4go/internal/plc4go/transports/Transport.go     |   30 +
 .../plc4go/transports/TransportInstance.go         |   37 +
 .../internal/plc4go/transports/tcp/TcpTransport.go |  188 +
 .../plc4go/transports/test/TestTransport.go        |  109 +
 .../internal/plc4go/transports/udp/UdpTransport.go |  190 +
 plc4go/internal/plc4go/utils/CastUtils.go          |   77 +
 plc4go/internal/plc4go/utils/ReadBuffer.go         |  202 +
 plc4go/internal/plc4go/utils/Regexp.go             |   35 +
 plc4go/internal/plc4go/utils/Serializable.go       |   23 +
 plc4go/internal/plc4go/utils/Utils.go              |   27 +
 plc4go/internal/plc4go/utils/WriteBuffer.go        |  102 +
 plc4go/pkg/plc4go/connection.go                    |   79 +
 plc4go/pkg/plc4go/driver.go                        |   53 +
 plc4go/pkg/plc4go/driverManager.go                 |  151 +
 plc4go/pkg/plc4go/model/plc_connection_metadata.go |   30 +
 plc4go/pkg/plc4go/model/plc_field.go               |   24 +
 plc4go/pkg/plc4go/model/plc_message.go             |   22 +
 plc4go/pkg/plc4go/model/plc_read_request.go        |   37 +
 plc4go/pkg/plc4go/model/plc_read_response.go       |   29 +
 plc4go/pkg/plc4go/model/plc_request.go             |   23 +
 plc4go/pkg/plc4go/model/plc_response.go            |   23 +
 plc4go/pkg/plc4go/model/plc_response_code.go       |   63 +
 plc4go/pkg/plc4go/model/plc_subscription_event.go  |   31 +
 .../pkg/plc4go/model/plc_subscription_request.go   |   45 +
 .../pkg/plc4go/model/plc_subscription_response.go  |   25 +
 .../pkg/plc4go/model/plc_unsubscription_request.go |   34 +
 .../plc4go/model/plc_unsubscription_response.go    |   22 +
 plc4go/pkg/plc4go/model/plc_write_request.go       |   40 +
 plc4go/pkg/plc4go/model/plc_write_response.go      |   22 +
 plc4go/pkg/plc4go/values/plc_value.go              |   88 +
 plc4go/pom.xml                                     |  233 +
 .../api/messages/PlcSubscriptionFieldRequest.java} |   23 +-
 .../messages/PlcSubscriptionFieldResponse.java}    |   25 +-
 .../java/api/messages/PlcSubscriptionRequest.java  |    3 +-
 .../java/api/messages/PlcSubscriptionResponse.java |    2 +-
 .../api/messages/PlcUnsubscriptionRequest.java     |    3 +
 .../plc4x/java/api/messages/PlcWriteRequest.java   |   50 +-
 .../java/api/model/PlcConsumerRegistration.java    |   12 +
 .../org/apache/plc4x/java/api/model/PlcField.java  |    2 +-
 .../java/api/model/PlcSubscriptionField.java}      |   15 +-
 .../java/api/model/PlcSubscriptionHandle.java      |    8 +-
 .../org/apache/plc4x/java/api/value/PlcValue.java  |    5 +
 .../plc4x/java/api/value/PlcValueHandler.java}     |   28 +-
 .../org/apache/plc4x/java/api/value/PlcValues.java |  467 --
 .../apache/plc4x/java/api/types/PlcValueTest.java  |   53 -
 .../apache/plc4x/java/api/value/PlcValuesTest.java |   51 -
 plc4j/drivers/ab-eth/pom.xml                       |    8 +
 .../org/apache/plc4x/java/abeth/AbEthDriver.java   |    7 +
 .../plc4x/java/abeth/field/AbEthFieldHandler.java  |    4 +-
 .../java/abeth/protocol/AbEthProtocolLogic.java    |   20 +-
 .../java/abeth/protocol/Plc4xAbEthProtocol.java    |   19 +-
 .../org/apache/plc4x/protocol/abeth/AbEthTest.java |    2 +-
 plc4j/drivers/ads/pom.xml                          |   33 +-
 .../org/apache/plc4x/java/ads/ADSPlcDriver.java    |    7 +
 .../java/ads/configuration/AdsConfiguration.java   |    4 +-
 .../org/apache/plc4x/java/ads/field/AdsField.java  |    3 +-
 .../plc4x/java/ads/field/AdsFieldHandler.java      |   17 +-
 .../plc4x/java/ads/field/DirectAdsField.java       |   25 +
 .../plc4x/java/ads/field/SymbolicAdsField.java     |   21 +
 .../plc4x/java/ads/protocol/AdsProtocolLogic.java  |   23 +-
 .../attic/connection/AdsAbstractPlcConnection.java |  232 -
 .../attic/connection/AdsConnectionFactory.java     |   58 -
 .../attic/connection/AdsSerialPlcConnection.java   |   60 -
 .../attic/connection/AdsTcpPlcConnection.java      |  370 --
 .../amsads/attic/protocol/Ads2PayloadProtocol.java |   93 -
 .../attic/protocol/Payload2SerialProtocol.java     |  114 -
 .../amsads/attic/protocol/Payload2TcpProtocol.java |   93 -
 .../amsads/attic/protocol/Plc4x2AdsProtocol.java   |  334 --
 .../attic/protocol/exception/AdsException.java     |   56 -
 .../exception/AdsProtocolOverflowException.java    |   32 -
 .../amsads/attic/protocol/util/DigestUtil.java     |   46 -
 .../attic/protocol/util/LittleEndianDecoder.java   |  495 --
 .../attic/protocol/util/LittleEndianEncoder.java   |  285 -
 .../protocol/util/SingleMessageRateLimiter.java    |  124 -
 .../plc4x/java/amsads/attic/types/AdsDataType.java |  578 --
 .../ads/AdsDiscoverySerializerParserTest.java      |    2 +-
 .../org/apache/plc4x/protocol/ads/AdsDriverIT.java |    2 +-
 .../protocol/ads/AdsSerializerParserTest.java      |    2 +-
 plc4j/drivers/eip/pom.xml                          |    8 +
 .../apache/plc4x/java/eip/readwrite/EIPDriver.java |    7 +
 .../java/eip/readwrite/field/EipFieldHandler.java  |   14 +-
 .../eip/readwrite/protocol/EipProtocolLogic.java   |   13 +-
 .../java/eip/readwrite/EIPDriverTestsuite.java     |    2 +-
 .../readwrite/EIPParserSerializerTestsuite.java    |    2 +-
 plc4j/drivers/firmata/pom.xml                      |    8 +
 .../java/firmata/readwrite/FirmataDriver.java      |    7 +
 .../readwrite/context/FirmataDriverContext.java    |    6 +-
 .../readwrite/field/FirmataFieldHandler.java       |   11 +-
 .../readwrite/protocol/FirmataProtocolLogic.java   |   14 +-
 .../readwrite/FirmataParserSerializerTest.java     |    2 +-
 plc4j/drivers/knxnetip/pom.xml                     |    8 +
 .../apache/plc4x/java/knxnetip/KnxNetIpDriver.java |   17 +-
 .../configuration/KnxNetIpConfiguration.java       |   14 +-
 .../knxnetip/context/KnxNetIpDriverContext.java    |   16 +-
 .../plc4x/java/knxnetip/ets5/Ets5Parser.java       |   14 +-
 .../plc4x/java/knxnetip/ets5/model/Ets5Model.java  |    2 +-
 .../java/knxnetip/ets5/model/GroupAddress.java     |    7 +-
 .../java/knxnetip/field/KnxNetIpFieldHandler.java  |    9 +-
 .../knxnetip/protocol/KnxNetIpProtocolLogic.java   |   98 +-
 .../org/apache/plc4x/java/knxnetip/IOTest.java     |   20 +-
 .../{KNXNetIpTest.java => KnxNetIpTest.java}       |    6 +-
 .../plc4x/java/mock/connection/MockConnection.java |    3 +-
 .../plc4x/java/mock/field/MockFieldHandler.java    |   70 +-
 .../apache/plc4x/java/mock/field/MockPlcValue.java |    9 +-
 .../plc4x/java/mock/field/MockValueHandler.java}   |   33 +-
 plc4j/drivers/modbus/pom.xml                       |    8 +
 .../org/apache/plc4x/java/modbus/ModbusDriver.java |    7 +
 .../java/modbus/config/ModbusConfiguration.java    |    2 +-
 .../java/modbus/field/ModbusExtendedRegister.java  |    3 +-
 .../plc4x/java/modbus/field/ModbusField.java       |   37 +-
 .../plc4x/java/modbus/field/ModbusFieldCoil.java   |    3 +-
 .../modbus/field/ModbusFieldDiscreteInput.java     |    3 +-
 .../java/modbus/field/ModbusFieldHandler.java      |   15 +-
 .../modbus/field/ModbusFieldHoldingRegister.java   |    3 +-
 .../modbus/field/ModbusFieldInputRegister.java     |    3 +-
 .../java/modbus/protocol/ModbusProtocolLogic.java  |  133 +-
 .../apache/plc4x/java/modbus/ModbusDriverIT.java}  |    8 +-
 .../apache/plc4x/java/modbus/ModbusEncodeTest.java |   38 +-
 .../plc4x/java/modbus/ModbusFieldDataTypeTest.java |   10 +-
 ...IOTest.java => ModbusParserSerializerTest.java} |    6 +-
 .../opcua/connection/BaseOpcuaPlcConnection.java   |    3 +-
 .../opcua/connection/OpcuaTcpPlcConnection.java    |  160 +-
 .../java/opcua/protocol/OpcuaPlcFieldHandler.java  |   22 +-
 .../opcua/protocol/OpcuaSubsriptionHandle.java     |    5 +-
 .../apache/plc4x/java/opcua/ManualPLC4XOpcua.java  |    4 +-
 .../plc4x/java/opcua/OpcuaPlcDriverTest.java       |    2 +-
 plc4j/drivers/s7/pom.xml                           |    8 +
 .../apache/plc4x/java/s7/readwrite/S7Driver.java   |    7 +
 .../plc4x/java/s7/readwrite/field/S7Field.java     |   94 +-
 .../java/s7/readwrite/field/S7PlcFieldHandler.java |   68 +-
 .../java/s7/readwrite/field/S7StringField.java     |   12 +
 .../s7/readwrite/protocol/S7ProtocolLogic.java     |   26 +-
 .../java/s7/readwrite/utils/S7TsapIdEncoder.java   |    2 +-
 .../apache/plc4x/java/s7/utils/StaticHelper.java   |   14 +-
 .../plc4x/java/s7/readwrite/DatatypesTest.java     |   79 +
 .../apache/plc4x/java/s7/readwrite/S7DriverIT.java |    2 +-
 .../java/s7/readwrite/S7ParserSerializerTest.java  |    2 +-
 .../simulated/connection/SimulatedConnection.java  |   78 +-
 .../java/simulated/connection/SimulatedDevice.java |   18 +-
 .../simulated/field/SimulatedFieldHandler.java     |    4 +-
 .../connection/SimulatedConnectionTest.java        |   30 +-
 .../simulated/connection/SimulatedDeviceTest.java  |    2 +-
 .../simulated/field/SimularedFieldHandlerTest.java |    4 +-
 .../dummydriver/connection/DummyConnection.java    |    2 -
 .../hello-connectivity-mqtt/mqtt-connector.yml     |    2 +-
 .../watertank/service/WaterTankService.java        |    2 +-
 .../examples/hellowebservice/HelloWebservice.java  |    4 +-
 .../examples/helloplc4x/write/HelloPlc4xWrite.java |    1 -
 .../plc4x/java/examples/helloplc4x/HelloPlc4x.java |    2 +-
 plc4j/examples/replay-test/pom.xml                 |   80 +
 .../java/org/apache/plc4x/camel/MockDriver.java    |    3 +-
 plc4j/pom.xml                                      |    1 +
 .../apache/plc4x/java/spi/Plc4xNettyWrapper.java   |    6 +-
 .../java/spi/connection/AbstractPlcConnection.java |   41 +-
 .../plc4x/java/spi/connection/ChannelFactory.java  |    2 -
 .../spi/connection/DefaultNettyPlcConnection.java  |   20 +-
 .../spi/connection/DefaultPlcFieldHandler.java     | 2058 -------
 .../java/spi/connection/GeneratedDriverBase.java   |    4 +
 .../java/spi/connection/NettyChannelFactory.java   |   44 -
 .../plc4x/java/spi/connection/PlcFieldHandler.java |   30 +-
 .../connection/SingleProtocolStackConfigurer.java  |    3 +-
 .../exceptions/InternalPlcRuntimeException.java    |   41 -
 .../java/spi/generation/EvaluationHelper.java      |    5 +
 .../spi/internal/DefaultExpectRequestContext.java  |    2 +-
 .../spi/internal/DefaultSendRequestContext.java    |    5 +-
 .../java/spi/internal/HandlerRegistration.java     |   13 +-
 .../spi/messages/DefaultPlcProprietaryRequest.java |   50 -
 .../messages/DefaultPlcProprietaryResponse.java    |   49 -
 .../java/spi/messages/DefaultPlcReadRequest.java   |   26 +-
 .../java/spi/messages/DefaultPlcReadResponse.java  |   37 +-
 .../spi/messages/DefaultPlcSubscriptionEvent.java  |    5 +-
 .../messages/DefaultPlcSubscriptionRequest.java    |   55 +-
 .../messages/DefaultPlcSubscriptionResponse.java   |   20 +-
 .../messages/DefaultPlcUnsubscriptionRequest.java  |   35 +-
 .../messages/DefaultPlcUnsubscriptionResponse.java |   15 +-
 .../java/spi/messages/DefaultPlcWriteRequest.java  |  276 +-
 .../java/spi/messages/DefaultPlcWriteResponse.java |   39 +-
 .../java/spi/messages/InternalPlcFieldRequest.java |   33 -
 .../spi/messages/InternalPlcFieldResponse.java     |   28 -
 .../java/spi/messages/InternalPlcMessage.java      |   26 -
 .../messages/InternalPlcProprietaryRequest.java    |   25 -
 .../messages/InternalPlcProprietaryResponse.java   |   25 -
 .../java/spi/messages/InternalPlcReadRequest.java  |   28 -
 .../java/spi/messages/InternalPlcReadResponse.java |   33 -
 .../java/spi/messages/InternalPlcRequest.java      |   26 -
 .../java/spi/messages/InternalPlcResponse.java     |   27 -
 .../spi/messages/InternalPlcSubscriptionEvent.java |   27 -
 .../messages/InternalPlcSubscriptionRequest.java   |   38 -
 .../messages/InternalPlcSubscriptionResponse.java  |   31 -
 .../messages/InternalPlcUnsubscriptionRequest.java |   31 -
 .../plc4x/java/spi/messages/PlcRawMessage.java     |   48 -
 .../java/spi/messages/PlcRequestContainer.java     |    5 +-
 .../java/spi/messages/utils/ResponseItem.java      |   15 +-
 .../spi/model/DefaultPlcConsumerRegistration.java  |   14 +-
 ...Field.java => DefaultPlcSubscriptionField.java} |    5 +-
 .../spi/model/DefaultPlcSubscriptionHandle.java    |    3 +-
 .../spi/model/InternalPlcConsumerRegistration.java |   32 -
 .../spi/model/InternalPlcSubscriptionHandle.java   |   25 -
 .../plc4x/java/spi/optimizer/BaseOptimizer.java    |    6 +-
 .../java/spi/optimizer/SingleFieldOptimizer.java   |    5 +-
 .../SingleItemToSingleRequestProtocol.java         |  672 ---
 .../apache/plc4x/java/spi/request/PlcRequest.java  |   28 -
 .../org/apache/plc4x/java/spi/types/FieldType.java |   47 -
 .../plc4x/java/spi/utils/XmlSerializable.java}     |   10 +-
 .../java/spi/values/IEC61131ValueHandler.java      |  189 +
 .../org/apache/plc4x/java/spi/values}/PlcBOOL.java |   26 +-
 .../org/apache/plc4x/java/spi/values}/PlcBYTE.java |   26 +-
 .../plc4x/java/spi/values}/PlcBigDecimal.java      |    8 +-
 .../plc4x/java/spi/values}/PlcBigInteger.java      |    8 +-
 .../org/apache/plc4x/java/spi/values}/PlcCHAR.java |   56 +-
 .../org/apache/plc4x/java/spi/values/PlcDATE.java} |   20 +-
 .../plc4x/java/spi/values/PlcDATE_AND_TIME.java}   |   20 +-
 .../org/apache/plc4x/java/spi/values}/PlcDINT.java |   26 +-
 .../apache/plc4x/java/spi/values}/PlcDWORD.java    |   26 +-
 .../apache/plc4x/java/spi/values}/PlcIECValue.java |   14 +-
 .../org/apache/plc4x/java/spi/values}/PlcINT.java  |   26 +-
 .../org/apache/plc4x/java/spi/values}/PlcLINT.java |   26 +-
 .../apache/plc4x/java/spi/values}/PlcLREAL.java    |   26 +-
 .../apache/plc4x/java/spi/values}/PlcLWORD.java    |   26 +-
 .../org/apache/plc4x/java/spi/values}/PlcList.java |   48 +-
 .../org/apache/plc4x/java/spi/values}/PlcNull.java |   15 +-
 .../org/apache/plc4x/java/spi/values}/PlcREAL.java |   33 +-
 .../org/apache/plc4x/java/spi/values}/PlcSINT.java |   26 +-
 .../apache/plc4x/java/spi/values/PlcSTRING.java}   |   20 +-
 .../plc4x/java/spi/values}/PlcSimpleValue.java     |    3 +-
 .../apache/plc4x/java/spi/values}/PlcStruct.java   |   23 +-
 .../org/apache/plc4x/java/spi/values/PlcTIME.java  |   80 +
 .../plc4x/java/spi/values/PlcTIME_OF_DAY.java}     |   21 +-
 .../apache/plc4x/java/spi/values}/PlcUDINT.java    |   26 +-
 .../org/apache/plc4x/java/spi/values}/PlcUINT.java |   26 +-
 .../apache/plc4x/java/spi/values}/PlcULINT.java    |   26 +-
 .../apache/plc4x/java/spi/values}/PlcUSINT.java    |   26 +-
 .../plc4x/java/spi/values}/PlcValueAdapter.java    |   19 +-
 .../apache/plc4x/java/spi/values/PlcValues.java    |   87 +
 .../apache/plc4x/java/spi/values}/PlcWCHAR.java    |   26 +-
 .../org/apache/plc4x/java/spi/values}/PlcWORD.java |   28 +-
 .../apache/plc4x/java/opm/ConnectedEntityTest.java |    4 +-
 .../java/opm/PlcEntityManagerComplexTest.java      |  121 +-
 .../plc4x/java/opm/PlcEntityManagerTest.java       |   12 +-
 .../apache/plc4x/java/scraper/ScraperTaskTest.java |    6 +-
 .../org/apache/plc4x/java/scraper/ScraperTest.java |    2 +-
 .../triggeredscraper/TriggeredScraperImplTest.java |    4 +-
 .../plc4x/java/transport/tcp/TcpTransport.java     |    2 +-
 .../plc4x/java/transport/udp/UdpTransport.java     |    4 +-
 .../utils/pcapreplay/netty/PcapReplayChannel.java  |    6 +-
 .../plc4x/test/driver/DriverTestsuiteRunner.java   |  145 +-
 .../apache/plc4x/test/driver/model/TestStep.java   |   10 +-
 .../plc4x/test/driver/model/api/TestField.java     |    8 +-
 .../test/driver/model/api/TestValueField.java}     |   15 +-
 .../ParserSerializerTestsuiteRunner.java           |    3 +
 pom.xml                                            |   38 +-
 .../protocols/abeth/ParserSerializerTestsuite.xml  |    0
 .../ads/src/main/resources/protocols/ads/ads.mspec |   14 +-
 .../protocols/ads}/AdsDiscoverySerializerTest.xml  |    0
 .../resources/protocols/ads/DriverTestsuite.xml    |  174 +-
 .../protocols/ads/ParserSerializerTestsuite.xml    |    0
 .../resources/protocols/bacnetip/bacnetip.mspec    |   12 -
 .../protocols/df1/ParserSerializerTestsuite.xml    |    0
 .../resources/protocols/eip/DriverTestsuite.xml    |    0
 .../protocols/eip/ParserSerializerTestsuite.xml    |    0
 .../firmata/ParserSerializerTestsuite.xml          |    0
 .../resources/protocols/knxnetip/knxnetip.mspec    | 1154 +++-
 .../apache/plc4x/protocols/knxnetip/protocol.tdml  |  112 +-
 .../knxnetip/ParserSerializerTestsuite.xml         |   48 +-
 .../main/resources/protocols/modbus/modbus.mspec   |  154 +-
 .../resources/protocols/modbus/DriverTestsuite.xml |  382 ++
 .../protocols/modbus/ParserSerializerTestsuite.xml |   44 +-
 protocols/pom.xml                                  |   22 +-
 .../s7/src/main/resources/protocols/s7/s7.mspec    |  123 +-
 .../resources/protocols/s7/DriverTestsuite.xml     |   70 +-
 .../protocols/s7/ParserSerializerTestsuite.xml     |    0
 .../java/discovery/DiscoveryFieldHandler.java      |    4 +-
 .../java/examples/helloinflux/HelloInflux.java     |    3 +-
 .../apache/plc4x/java/s7/utils/StaticHelper.java   |   10 +
 sandbox/plc4c/drivers/s7/include/plc4c/driver_s7.h |    2 +
 sandbox/plc4c/drivers/s7/src/driver_s7.c           |    5 +
 .../generated-sources/modbus/include/data_item.h   |    2 +-
 .../modbus/include/modbus_data_type.h              |   77 +
 .../modbus/include/modbus_data_type_sizes.h        |   76 +
 .../modbus/include/modbus_error_code.h             |   57 +
 .../generated-sources/modbus/include/modbus_pdu.h  |   36 +-
 .../plc4c/generated-sources/modbus/src/data_item.c |   71 +-
 .../modbus/src/modbus_data_type.c                  |  305 ++
 .../modbus/src/modbus_data_type_sizes.c            |  296 +
 .../modbus/src/modbus_error_code.c                 |  105 +
 .../generated-sources/modbus/src/modbus_pdu.c      |  299 +-
 .../plc4c/generated-sources/s7/include/data_item.h |    2 +-
 .../generated-sources/s7/include/transport_size.h  |    2 +-
 .../generated-sources/s7/src/cotp_protocol_class.c |   20 +-
 .../generated-sources/s7/src/cotp_tpdu_size.c      |   42 +-
 sandbox/plc4c/generated-sources/s7/src/data_item.c |   77 +-
 .../s7/src/data_transport_error_code.c             |   24 +-
 .../generated-sources/s7/src/data_transport_size.c |   42 +-
 .../plc4c/generated-sources/s7/src/device_group.c  |   12 +-
 .../plc4c/generated-sources/s7/src/memory_area.c   |   54 +-
 .../plc4c/generated-sources/s7/src/s7_address.c    |    4 +-
 .../s7/src/s7_payload_user_data_item.c             |    8 +-
 .../s7/src/s7_var_payload_data_item.c              |    8 +-
 .../s7/src/s7_var_payload_status_item.c            |    4 +-
 sandbox/plc4c/generated-sources/s7/src/szl_id.c    |    8 +-
 .../s7/src/szl_module_type_class.c                 |   16 +-
 .../plc4c/generated-sources/s7/src/szl_sublist.c   |   76 +-
 .../generated-sources/s7/src/transport_size.c      |  418 +-
 .../apache/plc4x/java/bacnetip/BacNetIpDriver.java |    7 +
 .../plc4x/java/bacnetip/ede/model/Datapoint.java   |   12 +-
 .../java/bacnetip/field/BacNetIpFieldHandler.java  |    4 +-
 .../bacnetip/protocol/BacNetIpProtocolLogic.java   |   21 +-
 .../java/bacnetip/PassiveBacNetIpDriverManual.java |    2 +-
 sandbox/test-java-df1-driver/pom.xml               |   42 +-
 .../org/apache/plc4x/java/df1/DF1PlcDriver.java    |    7 +
 .../plc4x/java/df1/field/Df1FieldHandler.java      |   11 +-
 .../plc4x/java/df1/protocol/Plc4XDf1Protocol.java  |    8 +-
 .../protocol/df1/Df1ParserSerializerTest.java      |    2 +-
 .../adapters/source/knxnetip/KnxNetIpAdapter.java  |    4 +-
 .../enrich/knxnetip/ets5/Ets5DataEnrichment.java   |    2 +-
 src/site/asciidoc/plc4go/index.adoc                |  147 +
 .../general-concepts.adoc                          |    0
 .../plc4go.adoc}                                   |    8 +-
 .../plc4j.adoc}                                    |    4 +-
 .../{plc4j => getting-started}/virtual-modbus.adoc |    0
 src/site/asciidoc/users/gettingstarted.adoc        |    6 +-
 src/site/asciidoc/users/protocols/knxnetip.adoc    |    3 +-
 src/site/site.xml                                  |    7 +-
 767 files changed, 94800 insertions(+), 9737 deletions(-)

diff --cc plc4j/drivers/simulated/src/main/java/org/apache/plc4x/java/simulated/connection/SimulatedDevice.java
index 699abd1,4d2ccda..194b617
--- a/plc4j/drivers/simulated/src/main/java/org/apache/plc4x/java/simulated/connection/SimulatedDevice.java
+++ b/plc4j/drivers/simulated/src/main/java/org/apache/plc4x/java/simulated/connection/SimulatedDevice.java
@@@ -19,16 -19,13 +19,20 @@@
  package org.apache.plc4x.java.simulated.connection;
  
  import org.apache.commons.lang3.tuple.Pair;
+ import org.apache.plc4x.java.api.model.PlcSubscriptionField;
  import org.apache.plc4x.java.api.model.PlcSubscriptionHandle;
 -import org.apache.plc4x.java.api.value.PlcValue;
 +import org.apache.plc4x.java.api.value.*;
 +import org.apache.plc4x.java.simulated.field.SimulatedField;
 +import org.apache.plc4x.java.simulated.readwrite.io.DataItemIO;
 +import org.apache.plc4x.java.simulated.readwrite.types.SimulatedDataType;
 +import org.apache.plc4x.java.spi.generation.ParseException;
 +import org.apache.plc4x.java.spi.generation.ReadBuffer;
 +import org.apache.plc4x.java.spi.model.InternalPlcSubscriptionHandle;
+ import org.apache.plc4x.java.spi.model.DefaultPlcSubscriptionField;
+ import org.apache.plc4x.java.spi.values.IEC61131ValueHandler;
+ import org.apache.plc4x.java.simulated.field.SimulatedField;
  
 +import java.nio.charset.StandardCharsets;
  import java.time.Duration;
  import java.util.*;
  import java.util.concurrent.*;
diff --cc plc4j/drivers/simulated/src/main/java/org/apache/plc4x/java/simulated/field/SimulatedFieldHandler.java
index d3b2f1d,2d42a4a..b415487
--- a/plc4j/drivers/simulated/src/main/java/org/apache/plc4x/java/simulated/field/SimulatedFieldHandler.java
+++ b/plc4j/drivers/simulated/src/main/java/org/apache/plc4x/java/simulated/field/SimulatedFieldHandler.java
@@@ -20,21 -20,10 +20,19 @@@
  package org.apache.plc4x.java.simulated.field;
  
  import org.apache.plc4x.java.api.exceptions.PlcInvalidFieldException;
- import org.apache.plc4x.java.api.exceptions.PlcRuntimeException;
  import org.apache.plc4x.java.api.model.PlcField;
- import org.apache.plc4x.java.api.value.*;
- import org.apache.plc4x.java.spi.connection.DefaultPlcFieldHandler;
+ import org.apache.plc4x.java.spi.connection.PlcFieldHandler;
  
 -public class SimulatedFieldHandler implements PlcFieldHandler {
 +import java.math.BigDecimal;
 +import java.math.BigInteger;
 +import java.time.LocalDate;
 +import java.time.LocalDateTime;
 +import java.time.LocalTime;
 +import java.util.Arrays;
 +import java.util.LinkedList;
 +import java.util.List;
 +
 +public class SimulatedFieldHandler extends DefaultPlcFieldHandler {
  
      @Override
      public PlcField createField(String fieldQuery) {
diff --cc plc4j/drivers/simulated/src/test/java/org/apache/plc4x/java/simulated/field/SimularedFieldHandlerTest.java
index 1587c84,75a4716..dd0a27d
--- a/plc4j/drivers/simulated/src/test/java/org/apache/plc4x/java/simulated/field/SimularedFieldHandlerTest.java
+++ b/plc4j/drivers/simulated/src/test/java/org/apache/plc4x/java/simulated/field/SimularedFieldHandlerTest.java
@@@ -44,10 -44,10 +44,10 @@@ class SimularedFieldHandlerTest impleme
  
      @Test
      void createField() {
 -        assertThat(SUT.createField("STATE/bar:INTEGER")).isNotNull();
 +        assertThat(SUT.createField("STATE/bar:INT")).isNotNull();
      }
  
-     @Test
+     /*@Test
      void encodeBoolean() {
          assertThat(SUT.encodeBoolean(plcField, new Boolean[0])).isNotNull();
      }
@@@ -120,8 -120,8 +120,8 @@@
  
      @Test
      void encodeDateTime() {
 -        when(plcField.getDataType()).thenReturn((Class) LocalDateTime.class);
 +        when(plcField.getPlcDataType()).thenReturn("LocalDateTime");
          assertThat(SUT.encodeDateTime(plcField, new LocalDateTime[0])).isNotNull();
-     }
+     }*/
  
  }