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:34 UTC

[plc4x] branch bug/simulated_device_data_types updated (7627f38 -> ddc5776)

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

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


    from 7627f38  Fixed a couple of things
     add c897eed  - Kickoff
     add 07c1ab3  - Kickoff
     add 2e5003b  Merge branch 'develop' of https://gitbox.apache.org/repos/asf/plc4x into feature/plc4go
     add 1c0fac8  - Added some initial generated code together with the project files for running it in GoLand
     add a9eb9c6  - Added Enum types
     add b1bc946  - Added parsers and serializers to the code-generation
     add 9bee54d  Continued working on the templates for the parsers
     add 65f34e3  - Made the Parse-functions return Message types - Implemented parsing of const, reserved and complex typed simple fields
     add 7aecbf4  - Renamed the "error" field "errorFlag" as "error" is a type in Go
     add 6d31075  - Got the Go code generation allmost finished ...
     add 38b2552  - Fixed the last modbus-related issue in the code generation
     add 76335f8  - Implemented the serialization (Note: there is still a problem with the typeSwitch serialization)
     add caed258  - Fixed the Go typeSwitch issue
     add 7a8e809  - Removed some of the hacks from the generated code - Refactored the directory structure to be more in line with the default go project/module structure
     add 64452e5  - Slightly changed the directory structure to generate all files into a "model" package
     add 64ffd85  - Made go vet run in the build
     add 1336386  - Added some first S7 driver code ...
     add 7d953dd  - Added some first BACnet/IP and KNXNet/IP driver code ...
     add dd6ef17  - Cleaned up the PLC4Go pom
     add 6a45b12  - Big refactoring ot the expression generation to enable more drivers to be generated
     add cdc1484  - Manually made the S7 driver compile
     add bb6852d  - Finshed the last little quirks in the code-generation
     add c2246c8  - Finished the last little quirks in the code-generation
     add 30bcfad  - Finshed the last little quirks in the code-generation
     add 6ccc466  - Implemented the ReadBuffer - Updated the code generation to actually work for parsing
     add 4b60c0d  - Implemented the WriteBuffer - Fixed the Serialization issues
     add 3f83fa1  - Fixed issues that were causing failures in the parser/serializer tests
     add ca6d972  - Improved the error handling in the serializers
     add 6d7b26b  - Moved the xml-based test documents from the java drivers into the protocol modules
     add df574d7  - Started working on the PLC4Go API
     add baeaa7e  - Fine-tuning of the API
     add f32a987  - Fine-tuning of the API for accessing connection meta-data - Started implementing the PlcValues
     add 223e0ee  Merge branch 'develop' of https://gitbox.apache.org/repos/asf/plc4x into feature/plc4go
     add d7bf2ab  - Implemented the missing IEC plc-values
     add cd9b4dd  - Made the BOOL and BitString types not include the numeric features
     add d89cfd7  - Continued working on the SPI
     add 73d16fc  Cleaned up the write example ...
     add fa7d5c6  - Got the SPI parts of processing the read requests finished - Continued implementing the Modbus driver
     add 4c2c20a  - Major work on the GO drivers - Refactoring of some of the PLCValue handling
     add 7301e08  - Finished a first version of a working Modbus Go driver
     add 0a14c9b  - Implemented the missing read request types - Implemented the generation of the DataIo for lists
     add 7b14da8  - Implemented the Floating-Point handling
     add 1dec03b  - Renamed the method to get an enum constant from a value from valueOf to enumForValue as for string based enums this was causing problems as enums always automatically have valueOf(String) methods
     add 9bf1659  - Fixed the enum support of string-typed-enums in C
     add bf34c28  - Quick-Fix to get the PLC4J Modbus working again ...
     add 839b73b  - Removed the ModbusDataType in modbus.mspes which is replaced by the new ModbusDataTypeSizes
     add dea8c98  - Cleanup in PLC4Go after moving around some types
     add 2d220af  - Added code for serializing and deserialization to XML (Java Jackson format) - Removed duplicate type definitions from the bacnetio.mspec
     add a1720ad  - Addressed some issues in the reading of values via S7 protocol
     add 75bc370  - Continued working on the serializer/parser testsuite for go
     add fd80b89  - Added the parse-char stuff to plc4c
     add 8a46474  - Updated the Jenkinsfile to match the new constant names for jdks and maven installations
     add b741a83  Merge branch 'develop' of https://gitbox.apache.org/repos/asf/plc4x into feature/plc4go
     add 2926f76  - Updated things pulled in after merging in latest changes from develop
     add d56b97a  - Get the plc4go build running on jenkins
     add 0ecbe37  - Made the master pom copy the schemas of the testsuites to the site (So they are fetchable by IDEs and other tools)
     add ac2dd33  - Fixed some small typos
     add d46b69d  - Made the Java IO code also accept String types as parser-arguments
     add d2519e5  - Implemented a first Modbus Integration-Test - Extended the testsuite-runner to support tests with parser-arguments
     add 7d8c4bb  - Continued working on the go integration-testsuite
     add b85b67b  started to backport
     add 0112fc7  Merge branch 'backportvaluehandler' of https://gitbox.apache.org/repos/asf/plc4x into feature/plc4go
     add e1a97c9  - Major refactoring regarding the FieldHandlers, ValueHandlers - Refactored out all of the "Internal" interfaces
     add 5ba46d9  - Major refactoring regarding the FieldHandlers, ValueHandlers - Refactored out all of the "Internal" interfaces
     add ea94a9d  - Changed the datatype names in s7 from integer values to the IEC names
     add 6583eb2  OPC UA Client write fix, static of Add passthrough in valueHandler for OPCUA client as it doesn't specify a data type. changed of to static method in ValueHandler
     add 1b33b3f  - Finished implementing a first fully working version of the integration-test-framework for plc4go
     add a0b7c0d  - Ported the SingleFieldOptimizer to go (SingleItemRequestItemInterceptor)
     add 042c90e  - Fixed a bug in the modbus driver, not correctly incrementing the unitIdentifier - Fixed a bug in the xml-serialization of read- and write-requests - Added a testcase for automatic splitting of requests - Refactored the TestTransport to have separate read- and write-buffers and added methods to fill the read-buffer and drain the write-buffer (This eliminates race-conditions in the testsuite)
     add 35fd89d  - Implemented a modbus ping functionality using the diagnostic request (function code 8, sub-function code 0)
     add c2999ce  - Started updating the site in preparation for the first getting-started guide fro go
     add 46a4dc2  - Implemented the write support in PLC4Go Modbus
     add 8ff0363  - Fixed some test-timeout-issues in the modbus driver testsuite (Actually by increasing the modbus default timeout) - Moved plc4go out of the sandbox
     add c5c7578  - Defined all of the KNX datatypes - Optimized the DataIo code generation for Java - Fixed some wrong type declarationd in mspec dataIo
     add d3caf72  - Changed the Go code generation from inheritance to composition - Did a lot of tweaking in the temporal PlcValues
     add 0670dd6  - Changed the code for the xml mashalling and unmarshalling to work with the changed structures - Got the integration-tests workin again
     add c2f500c  - Changed the code for the xml mashalling and unmarshalling to work with the changed structures - Got the integration-tests workin again
     add ef3dd71  - Deleted the files in model in order to replace them with ones with different case name
     add 937756d  - Renamed some of the KNX type names to be consistent regarding case - Fixed a bug in the KNX driver
     add cd5ddc4  - Continued implementing the Go KNX driver
     add cb235b9  - Implemented the connection establishment of KNX connection and PING operation
     add 2f615be  - Implemented a first version of the subscription API
     add da01c44  - Started implementing discovery for KNX
     add a6899ec  - Renamed the KNX config option "group-address-type" to "group-address-num-levels" - Implemented a first version of the subscription API in Go - Got the PLC4Go KNX driver working (Connect, Ping and Subscribe)
     add 5d19d05  - Increased the timeout in order to avoid random test-failures in the integration-tests
     add 2b25d39  - Implemented the correct KNX floating point decoding
     add 18e4108  - Updated the KNX Datapoint spec to skip the first 8 bits, if the datatype didn't start with skipping at least 2 bits (In this case the additional byte is not needed)
     add 21ad128  - Removed the unneeded dependency
     add 78546bf  - Updated the go coordinates
     add 57b355a  - Updated the go coordinates
     add a12477a  Merge branch 'develop' of https://gitbox.apache.org/repos/asf/plc4x into feature/plc4go
     add 1608cc1  - Updated the KNX driver to submit only actually changed values as well as passing the address along (When using a pattern it is important to be able to access the actual address of a datapoint)
     add 9365eb8  - Fixed a bug in the "update change" detection mechanism - Implemented the active read support
     add 1d3fc22  - Implemented the read-support in KNX
     new 3c79e6c  Merge branch 'feature/plc4go' into bug/simulated_device_data_types
     new ddc5776  [Broken] Fix after Merge Plc4go

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:
 .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 |   21 +-
 .../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 +-
 plc4j/drivers/simulated/pom.xml                    |    6 +-
 .../simulated/connection/SimulatedConnection.java  |   78 +-
 .../java/simulated/connection/SimulatedDevice.java |   33 +-
 .../plc4x/java/simulated/field/SimulatedField.java |   23 +-
 .../simulated/field/SimulatedFieldHandler.java     |   64 +-
 .../connection/SimulatedConnectionTest.java        |   30 +-
 .../simulated/connection/SimulatedDeviceTest.java  |    2 +-
 .../simulated/field/SimularedFieldHandlerTest.java |    4 +-
 .../java/simulated/field/SimulatedFieldTest.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 +
 .../apache-calcite/src/test/resources/example.yml  |    4 +-
 .../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
 .../resources/protocols/simulated/simulated.mspec  |  133 +-
 .../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 +-
 772 files changed, 94880 insertions(+), 9899 deletions(-)
 create mode 100644 build-utils/language-go/pom.xml
 create mode 100644 build-utils/language-go/src/main/java/org/apache/plc4x/language/go/GoLanguageOutput.java
 create mode 100644 build-utils/language-go/src/main/java/org/apache/plc4x/language/go/GoLanguageTemplateHelper.java
 copy plc4j/drivers/eip/src/test/java/org/apache/plc4x/java/eip/readwrite/EIPParserSerializerTestsuite.java => build-utils/language-go/src/main/java/org/apache/plc4x/language/go/hack/DefaultBooleanTypeReference.java (67%)
 copy plc4j/spi/src/main/java/org/apache/plc4x/java/spi/messages/utils/ResponseItem.java => build-utils/language-go/src/main/java/org/apache/plc4x/language/go/hack/DefaultFloatTypeReference.java (61%)
 copy plc4j/spi/src/main/java/org/apache/plc4x/java/spi/messages/utils/ResponseItem.java => build-utils/language-go/src/main/java/org/apache/plc4x/language/go/hack/DefaultIntegerTypeReference.java (61%)
 create mode 100644 build-utils/language-go/src/main/java/org/apache/plc4x/language/go/utils/FieldUtils.java
 copy plc4j/integrations/apache-calcite/src/test/resources/example.yml => build-utils/language-go/src/main/resources/META-INF/services/org.apache.plc4x.plugins.codegenerator.language.LanguageOutput (63%)
 create mode 100644 build-utils/language-go/src/main/resources/templates/go/data-io-template.ftlh
 create mode 100644 build-utils/language-go/src/main/resources/templates/go/enum-template.ftlh
 create mode 100644 build-utils/language-go/src/main/resources/templates/go/model-template.ftlh
 create mode 100644 build-utils/language-go/src/main/resources/templates/go/parser-factory-template.ftlh
 create mode 100644 build-utils/language-go/src/main/resources/templates/go/xml-parser-factory-template.ftlh
 copy plc4j/drivers/eip/src/test/java/org/apache/plc4x/java/eip/readwrite/EIPDriverTestsuite.java => build-utils/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/references/DefaultBooleanTypeReference.java (68%)
 copy plc4j/drivers/knxnetip/src/test/resources/testsuite/KNXNetIPTestsuite.xml => plc4go/assets/testing/protocols/knxnetip/ParserSerializerTestsuite.xml (95%)
 create mode 100644 plc4go/assets/testing/protocols/modbus/DriverTestsuite.xml
 copy plc4j/drivers/modbus/src/test/resources/testsuite/ModbusTestsuite.xml => plc4go/assets/testing/protocols/modbus/ParserSerializerTestsuite.xml (81%)
 copy plc4j/drivers/s7/src/test/resources/testsuite/S7DriverIT.xml => plc4go/assets/testing/protocols/s7/DriverTestsuite.xml (91%)
 copy plc4j/drivers/s7/src/test/resources/testsuite/S7ParserSerializerTest.xml => plc4go/assets/testing/protocols/s7/ParserSerializerTestsuite.xml (100%)
 create mode 100644 plc4go/cmd/main/drivers/bacnetip_test.go
 create mode 100644 plc4go/cmd/main/drivers/knxnetip_test.go
 create mode 100644 plc4go/cmd/main/drivers/modbus_test.go
 create mode 100644 plc4go/cmd/main/drivers/s7_test.go
 create mode 100644 plc4go/cmd/main/drivers/tests/modbus_driver_test.go
 create mode 100644 plc4go/cmd/main/drivers/tests/modbus_parser_serializer_test.go
 create mode 100644 plc4go/cmd/main/main.go
 create mode 100644 plc4go/examples/read/hello_world_plc4go_read.go
 create mode 100644 plc4go/examples/write/hello_world_plc4go_write.go
 create mode 100644 plc4go/go.mod
 create mode 100644 plc4go/go.sum
 create mode 100644 plc4go/internal/plc4go/bacnetip/BacnetIpDriver.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/ParserHelper.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/XmlParserHelper.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/APDU.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/APDUAbort.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/APDUComplexAck.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/APDUConfirmedRequest.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/APDUError.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/APDUReject.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/APDUSegmentAck.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/APDUSimpleAck.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/APDUUnconfirmedRequest.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/ApplicationTag.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetAddress.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACK.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKAtomicReadFile.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKAtomicWriteFile.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKConfirmedPrivateTransfer.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKCreateObject.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKGetAlarmSummary.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKGetEnrollmentSummary.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKGetEventInformation.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKReadProperty.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKReadPropertyMultiple.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKReadRange.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKRemovedAuthenticate.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKRemovedReadPropertyConditional.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKVTData.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKVTOpen.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequest.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAcknowledgeAlarm.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAddListElement.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAtomicReadFile.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAtomicWriteFile.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedCOVNotification.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedCOVNotificationMultiple.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedEventNotification.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedPrivateTransfer.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedTextMessage.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestCreateObject.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestDeleteObject.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestDeviceCommunicationControl.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestGetEnrollmentSummary.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestGetEventInformation.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestLifeSafetyOperation.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReadProperty.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReadPropertyMultiple.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReadRange.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReinitializeDevice.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestRemoveListElement.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestRemovedAuthenticate.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestRemovedReadPropertyConditional.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestRemovedRequestKey.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestSubscribeCOV.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestSubscribeCOVProperty.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestSubscribeCOVPropertyMultiple.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestVTClose.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestVTData.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestVTOpen.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestWriteProperty.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestWritePropertyMultiple.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetError.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorAtomicReadFile.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorAtomicWriteFile.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorConfirmedPrivateTransfer.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorCreateObject.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorGetAlarmSummary.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorGetEnrollmentSummary.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorGetEventInformation.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorReadProperty.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorReadPropertyMultiple.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorReadRange.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorRemovedAuthenticate.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorRemovedReadPropertyConditional.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorVTData.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorVTOpen.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNetworkType.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNodeType.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotifyType.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetObjectType.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAck.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckAtomicReadFile.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckAtomicWriteFile.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckConfirmedPrivateTransfer.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckCreateObject.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckGetAlarmSummary.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckGetEnrollmentSummary.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckGetEventInformation.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckReadProperty.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckReadPropertyMultiple.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckReadRange.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckRemovedAuthenticate.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckRemovedReadPropertyConditional.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckVTData.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckVTOpen.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTag.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationBitString.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationBoolean.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationCharacterString.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationDate.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationDouble.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationEnumerated.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationNull.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationObjectIdentifier.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationOctetString.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationReal.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationSignedInteger.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationTime.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationUnsignedInteger.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagContext.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagWithContent.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequest.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestIAm.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestIHave.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestTimeSynchronization.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestUTCTimeSynchronization.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestUnconfirmedCOVNotification.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestUnconfirmedCOVNotificationMultiple.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestUnconfirmedEventNotification.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestUnconfirmedPrivateTransfer.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestUnconfirmedTextMessage.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestWhoHas.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestWhoIs.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestWriteGroup.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/BVLC.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCDeleteForeignDeviceTableEntry.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCDistributeBroadcastToNetwork.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCForwardedNPDU.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCOriginalBroadcastNPDU.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCOriginalUnicastNPDU.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCReadBroadcastDistributionTable.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCReadBroadcastDistributionTableAck.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCReadForeignDeviceTable.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCReadForeignDeviceTableAck.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCRegisterForeignDevice.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCResult.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCSecureBVLL.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCWideBroadcastDistributionTable.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/NLM.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/NLMIAmRouterToNetwork.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/NLMWhoIsRouterToNetwork.go
 create mode 100644 plc4go/internal/plc4go/bacnetip/readwrite/model/NPDU.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/KncNetIpConnection.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/KnxNetIpDriver.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/KnxNetIpField.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/KnxNetIpFieldHandler.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/KnxNetIpMessageCodec.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/KnxNetIpReader.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/KnxNetIpSubscriber.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/KnxNetIpSubscriptionEvent.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/KnxNetIpValueHandler.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/KnxNetIpWriter.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/ParserHelper.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/XmlParserHelper.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/APCI.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/CEMI.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIAdditionalInformation.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIAdditionalInformationBusmonitorInfo.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIAdditionalInformationRelativeTimestamp.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIBusmonInd.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIDataCon.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIDataFrame.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIDataInd.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIDataReq.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIFrame.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIFrameAck.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIFrameData.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIFrameDataExt.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIFramePollingData.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIFramePollingDataExt.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIMPropReadCon.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIMPropReadReq.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIPollDataCon.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIPollDataReq.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIPriority.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIRawCon.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIRawInd.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIRawReq.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionRequest.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionRequestInformation.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionRequestInformationDeviceManagement.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionRequestInformationTunnelConnection.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionResponse.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionResponseDataBlock.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionResponseDataBlockDeviceManagement.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionResponseDataBlockTunnelConnection.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionStateRequest.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionStateResponse.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/DIBDeviceInfo.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/DIBSuppSvcFamilies.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/DescriptionRequest.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/DescriptionResponse.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/DeviceConfigurationAck.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/DeviceConfigurationAckDataBlock.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/DeviceConfigurationRequest.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/DeviceConfigurationRequestDataBlock.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/DeviceStatus.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/DisconnectRequest.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/DisconnectResponse.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/HPAIControlEndpoint.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/HPAIDataEndpoint.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/HPAIDiscoveryEndpoint.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/HostProtocolCode.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/IPAddress.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/KnxAddress.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/KnxDatapoint.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/KnxDatapointType.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/KnxGroupAddress.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/KnxGroupAddress2Level.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/KnxGroupAddress3Level.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/KnxGroupAddressFreeLevel.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/KnxLayer.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetIpCore.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetIpDeviceManagement.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetIpMessage.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetIpTunneling.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetObjectServer.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetRemoteConfigurationAndDiagnosis.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetRemoteLogging.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/MACAddress.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/ProjectInstallationIdentifier.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/RelativeTimestamp.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/RoutingIndication.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/SearchRequest.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/SearchResponse.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/ServiceId.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/Status.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/TPCI.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/TunnelingRequest.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/TunnelingRequestDataBlock.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/TunnelingResponse.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/TunnelingResponseDataBlock.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/UnknownMessage.go
 create mode 100644 plc4go/internal/plc4go/modbus/ModbusConnection.go
 create mode 100644 plc4go/internal/plc4go/modbus/ModbusDriver.go
 create mode 100644 plc4go/internal/plc4go/modbus/ModbusField.go
 create mode 100644 plc4go/internal/plc4go/modbus/ModbusFieldHandler.go
 create mode 100644 plc4go/internal/plc4go/modbus/ModbusMessageCodec.go
 create mode 100644 plc4go/internal/plc4go/modbus/ModbusReader.go
 create mode 100644 plc4go/internal/plc4go/modbus/ModbusValueHandler.go
 create mode 100644 plc4go/internal/plc4go/modbus/ModbusWriter.go
 create mode 100644 plc4go/internal/plc4go/modbus/readwrite/ParserHelper.go
 create mode 100644 plc4go/internal/plc4go/modbus/readwrite/XmlParserHelper.go
 create mode 100644 plc4go/internal/plc4go/modbus/readwrite/model/DataItem.go
 create mode 100644 plc4go/internal/plc4go/modbus/readwrite/model/ModbusConstants.go
 create mode 100644 plc4go/internal/plc4go/modbus/readwrite/model/ModbusDataTypeSizes.go
 create mode 100644 plc4go/internal/plc4go/modbus/readwrite/model/ModbusErrorCode.go
 create mode 100644 plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDU.go
 create mode 100644 plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUDiagnosticRequest.go
 create mode 100644 plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUDiagnosticResponse.go
 create mode 100644 plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUError.go
 create mode 100644 plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUGetComEventCounterRequest.go
 create mode 100644 plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUGetComEventCounterResponse.go
 create mode 100644 plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUGetComEventLogRequest.go
 create mode 100644 plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUGetComEventLogResponse.go
 create mode 100644 plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUMaskWriteHoldingRegisterRequest.go
 create mode 100644 plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUMaskWriteHoldingRegisterResponse.go
 create mode 100644 plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadCoilsRequest.go
 create mode 100644 plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadCoilsResponse.go
 create mode 100644 plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadDeviceIdentificationRequest.go
 create mode 100644 plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadDeviceIdentificationResponse.go
 create mode 100644 plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadDiscreteInputsRequest.go
 create mode 100644 plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadDiscreteInputsResponse.go
 create mode 100644 plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadExceptionStatusRequest.go
 create mode 100644 plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadExceptionStatusResponse.go
 create mode 100644 plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadFifoQueueRequest.go
 create mode 100644 plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadFifoQueueResponse.go
 create mode 100644 plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadFileRecordRequest.go
 create mode 100644 plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadFileRecordRequestItem.go
 create mode 100644 plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadFileRecordResponse.go
 create mode 100644 plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadFileRecordResponseItem.go
 create mode 100644 plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadHoldingRegistersRequest.go
 create mode 100644 plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadHoldingRegistersResponse.go
 create mode 100644 plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadInputRegistersRequest.go
 create mode 100644 plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadInputRegistersResponse.go
 create mode 100644 plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadWriteMultipleHoldingRegistersRequest.go
 create mode 100644 plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadWriteMultipleHoldingRegistersResponse.go
 create mode 100644 plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReportServerIdRequest.go
 create mode 100644 plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReportServerIdResponse.go
 create mode 100644 plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteFileRecordRequest.go
 create mode 100644 plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteFileRecordRequestItem.go
 create mode 100644 plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteFileRecordResponse.go
 create mode 100644 plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteFileRecordResponseItem.go
 create mode 100644 plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteMultipleCoilsRequest.go
 create mode 100644 plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteMultipleCoilsResponse.go
 create mode 100644 plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteMultipleHoldingRegistersRequest.go
 create mode 100644 plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteMultipleHoldingRegistersResponse.go
 create mode 100644 plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteSingleCoilRequest.go
 create mode 100644 plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteSingleCoilResponse.go
 create mode 100644 plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteSingleRegisterRequest.go
 create mode 100644 plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteSingleRegisterResponse.go
 create mode 100644 plc4go/internal/plc4go/modbus/readwrite/model/ModbusSerialADU.go
 create mode 100644 plc4go/internal/plc4go/modbus/readwrite/model/ModbusTcpADU.go
 create mode 100644 plc4go/internal/plc4go/model/DefaultPlcReadRequest.go
 create mode 100644 plc4go/internal/plc4go/model/DefaultPlcReadResponse.go
 create mode 100644 plc4go/internal/plc4go/model/DefaultPlcSubscriptionEvent.go
 create mode 100644 plc4go/internal/plc4go/model/DefaultPlcSubscriptionRequest.go
 create mode 100644 plc4go/internal/plc4go/model/DefaultPlcSubscriptionResponse.go
 create mode 100644 plc4go/internal/plc4go/model/DefaultPlcWriteRequest.go
 create mode 100644 plc4go/internal/plc4go/model/DefaultPlcWriteResponse.go
 create mode 100644 plc4go/internal/plc4go/model/RequestInterceptor.go
 create mode 100644 plc4go/internal/plc4go/model/values/BOOL.go
 create mode 100644 plc4go/internal/plc4go/model/values/BYTE.go
 create mode 100644 plc4go/internal/plc4go/model/values/CHAR.go
 create mode 100644 plc4go/internal/plc4go/model/values/DATE.go
 create mode 100644 plc4go/internal/plc4go/model/values/DATE_AND_TIME.go
 create mode 100644 plc4go/internal/plc4go/model/values/DINT.go
 create mode 100644 plc4go/internal/plc4go/model/values/DWORD.go
 create mode 100644 plc4go/internal/plc4go/model/values/IEC61131ValueHandler.go
 create mode 100644 plc4go/internal/plc4go/model/values/INT.go
 create mode 100644 plc4go/internal/plc4go/model/values/LINT.go
 create mode 100644 plc4go/internal/plc4go/model/values/LREAL.go
 create mode 100644 plc4go/internal/plc4go/model/values/LTIME.go
 create mode 100644 plc4go/internal/plc4go/model/values/LWORD.go
 create mode 100644 plc4go/internal/plc4go/model/values/NULL.go
 create mode 100644 plc4go/internal/plc4go/model/values/PlcList.go
 create mode 100644 plc4go/internal/plc4go/model/values/PlcSimpleValueAdapter.go
 create mode 100644 plc4go/internal/plc4go/model/values/PlcStruct.go
 create mode 100644 plc4go/internal/plc4go/model/values/PlcValueAdapter.go
 create mode 100644 plc4go/internal/plc4go/model/values/REAL.go
 create mode 100644 plc4go/internal/plc4go/model/values/SINT.go
 create mode 100644 plc4go/internal/plc4go/model/values/STRING.go
 create mode 100644 plc4go/internal/plc4go/model/values/TIME.go
 create mode 100644 plc4go/internal/plc4go/model/values/TIME_OF_DAY.go
 create mode 100644 plc4go/internal/plc4go/model/values/UDINT.go
 create mode 100644 plc4go/internal/plc4go/model/values/UINT.go
 create mode 100644 plc4go/internal/plc4go/model/values/ULINT.go
 create mode 100644 plc4go/internal/plc4go/model/values/USINT.go
 create mode 100644 plc4go/internal/plc4go/model/values/WCHAR.go
 create mode 100644 plc4go/internal/plc4go/model/values/WORD.go
 create mode 100644 plc4go/internal/plc4go/model/values/WSTRING.go
 create mode 100644 plc4go/internal/plc4go/s7/S7Driver.go
 create mode 100644 plc4go/internal/plc4go/s7/readwrite/ParserHelper.go
 create mode 100644 plc4go/internal/plc4go/s7/readwrite/XmlParserHelper.go
 create mode 100644 plc4go/internal/plc4go/s7/readwrite/model/COTPPacket.go
 create mode 100644 plc4go/internal/plc4go/s7/readwrite/model/COTPPacketConnectionRequest.go
 create mode 100644 plc4go/internal/plc4go/s7/readwrite/model/COTPPacketConnectionResponse.go
 create mode 100644 plc4go/internal/plc4go/s7/readwrite/model/COTPPacketData.go
 create mode 100644 plc4go/internal/plc4go/s7/readwrite/model/COTPPacketDisconnectRequest.go
 create mode 100644 plc4go/internal/plc4go/s7/readwrite/model/COTPPacketDisconnectResponse.go
 create mode 100644 plc4go/internal/plc4go/s7/readwrite/model/COTPPacketTpduError.go
 create mode 100644 plc4go/internal/plc4go/s7/readwrite/model/COTPParameter.go
 create mode 100644 plc4go/internal/plc4go/s7/readwrite/model/COTPParameterCalledTsap.go
 create mode 100644 plc4go/internal/plc4go/s7/readwrite/model/COTPParameterCallingTsap.go
 create mode 100644 plc4go/internal/plc4go/s7/readwrite/model/COTPParameterChecksum.go
 create mode 100644 plc4go/internal/plc4go/s7/readwrite/model/COTPParameterDisconnectAdditionalInformation.go
 create mode 100644 plc4go/internal/plc4go/s7/readwrite/model/COTPParameterTpduSize.go
 create mode 100644 plc4go/internal/plc4go/s7/readwrite/model/COTPProtocolClass.go
 create mode 100644 plc4go/internal/plc4go/s7/readwrite/model/COTPTpduSize.go
 create mode 100644 plc4go/internal/plc4go/s7/readwrite/model/DataItem.go
 create mode 100644 plc4go/internal/plc4go/s7/readwrite/model/DataTransportErrorCode.go
 create mode 100644 plc4go/internal/plc4go/s7/readwrite/model/DataTransportSize.go
 create mode 100644 plc4go/internal/plc4go/s7/readwrite/model/DeviceGroup.go
 create mode 100644 plc4go/internal/plc4go/s7/readwrite/model/MemoryArea.go
 create mode 100644 plc4go/internal/plc4go/s7/readwrite/model/S7Address.go
 create mode 100644 plc4go/internal/plc4go/s7/readwrite/model/S7AddressAny.go
 create mode 100644 plc4go/internal/plc4go/s7/readwrite/model/S7Message.go
 create mode 100644 plc4go/internal/plc4go/s7/readwrite/model/S7MessageRequest.go
 create mode 100644 plc4go/internal/plc4go/s7/readwrite/model/S7MessageResponse.go
 create mode 100644 plc4go/internal/plc4go/s7/readwrite/model/S7MessageResponseData.go
 create mode 100644 plc4go/internal/plc4go/s7/readwrite/model/S7MessageUserData.go
 create mode 100644 plc4go/internal/plc4go/s7/readwrite/model/S7Parameter.go
 create mode 100644 plc4go/internal/plc4go/s7/readwrite/model/S7ParameterReadVarRequest.go
 create mode 100644 plc4go/internal/plc4go/s7/readwrite/model/S7ParameterReadVarResponse.go
 create mode 100644 plc4go/internal/plc4go/s7/readwrite/model/S7ParameterSetupCommunication.go
 create mode 100644 plc4go/internal/plc4go/s7/readwrite/model/S7ParameterUserData.go
 create mode 100644 plc4go/internal/plc4go/s7/readwrite/model/S7ParameterUserDataItem.go
 create mode 100644 plc4go/internal/plc4go/s7/readwrite/model/S7ParameterUserDataItemCPUFunctions.go
 create mode 100644 plc4go/internal/plc4go/s7/readwrite/model/S7ParameterWriteVarRequest.go
 create mode 100644 plc4go/internal/plc4go/s7/readwrite/model/S7ParameterWriteVarResponse.go
 create mode 100644 plc4go/internal/plc4go/s7/readwrite/model/S7Payload.go
 create mode 100644 plc4go/internal/plc4go/s7/readwrite/model/S7PayloadReadVarResponse.go
 create mode 100644 plc4go/internal/plc4go/s7/readwrite/model/S7PayloadUserData.go
 create mode 100644 plc4go/internal/plc4go/s7/readwrite/model/S7PayloadUserDataItem.go
 create mode 100644 plc4go/internal/plc4go/s7/readwrite/model/S7PayloadUserDataItemCpuFunctionReadSzlRequest.go
 create mode 100644 plc4go/internal/plc4go/s7/readwrite/model/S7PayloadUserDataItemCpuFunctionReadSzlResponse.go
 create mode 100644 plc4go/internal/plc4go/s7/readwrite/model/S7PayloadWriteVarRequest.go
 create mode 100644 plc4go/internal/plc4go/s7/readwrite/model/S7PayloadWriteVarResponse.go
 create mode 100644 plc4go/internal/plc4go/s7/readwrite/model/S7StaticHelper.go
 create mode 100644 plc4go/internal/plc4go/s7/readwrite/model/S7VarPayloadDataItem.go
 create mode 100644 plc4go/internal/plc4go/s7/readwrite/model/S7VarPayloadStatusItem.go
 create mode 100644 plc4go/internal/plc4go/s7/readwrite/model/S7VarRequestParameterItem.go
 create mode 100644 plc4go/internal/plc4go/s7/readwrite/model/S7VarRequestParameterItemAddress.go
 create mode 100644 plc4go/internal/plc4go/s7/readwrite/model/SzlDataTreeItem.go
 create mode 100644 plc4go/internal/plc4go/s7/readwrite/model/SzlId.go
 create mode 100644 plc4go/internal/plc4go/s7/readwrite/model/SzlModuleTypeClass.go
 create mode 100644 plc4go/internal/plc4go/s7/readwrite/model/SzlSublist.go
 create mode 100644 plc4go/internal/plc4go/s7/readwrite/model/TPKTPacket.go
 create mode 100644 plc4go/internal/plc4go/s7/readwrite/model/TransportSize.go
 create mode 100644 plc4go/internal/plc4go/spi/HandlerExposer.go
 create mode 100644 plc4go/internal/plc4go/spi/Message.go
 create mode 100644 plc4go/internal/plc4go/spi/MessageCodec.go
 create mode 100644 plc4go/internal/plc4go/spi/PlcFieldHandler.go
 create mode 100644 plc4go/internal/plc4go/spi/PlcReader.go
 create mode 100644 plc4go/internal/plc4go/spi/PlcSubscriber.go
 create mode 100644 plc4go/internal/plc4go/spi/PlcValueHandler.go
 create mode 100644 plc4go/internal/plc4go/spi/PlcWriter.go
 create mode 100644 plc4go/internal/plc4go/spi/TransportInstanceExposer.go
 create mode 100644 plc4go/internal/plc4go/spi/interceptors/SingleItemRequestInterceptor.go
 create mode 100644 plc4go/internal/plc4go/testutils/DriverTestRunner.go
 create mode 100644 plc4go/internal/plc4go/testutils/ParserSerializerTestRunner.go
 create mode 100644 plc4go/internal/plc4go/testutils/TestUtils.go
 create mode 100644 plc4go/internal/plc4go/transports/Transport.go
 create mode 100644 plc4go/internal/plc4go/transports/TransportInstance.go
 create mode 100644 plc4go/internal/plc4go/transports/tcp/TcpTransport.go
 create mode 100644 plc4go/internal/plc4go/transports/test/TestTransport.go
 create mode 100644 plc4go/internal/plc4go/transports/udp/UdpTransport.go
 create mode 100644 plc4go/internal/plc4go/utils/CastUtils.go
 create mode 100644 plc4go/internal/plc4go/utils/ReadBuffer.go
 create mode 100644 plc4go/internal/plc4go/utils/Regexp.go
 create mode 100644 plc4go/internal/plc4go/utils/Serializable.go
 create mode 100644 plc4go/internal/plc4go/utils/Utils.go
 create mode 100644 plc4go/internal/plc4go/utils/WriteBuffer.go
 create mode 100644 plc4go/pkg/plc4go/connection.go
 create mode 100644 plc4go/pkg/plc4go/driver.go
 create mode 100644 plc4go/pkg/plc4go/driverManager.go
 create mode 100644 plc4go/pkg/plc4go/model/plc_connection_metadata.go
 create mode 100644 plc4go/pkg/plc4go/model/plc_field.go
 create mode 100644 plc4go/pkg/plc4go/model/plc_message.go
 create mode 100644 plc4go/pkg/plc4go/model/plc_read_request.go
 create mode 100644 plc4go/pkg/plc4go/model/plc_read_response.go
 create mode 100644 plc4go/pkg/plc4go/model/plc_request.go
 create mode 100644 plc4go/pkg/plc4go/model/plc_response.go
 create mode 100644 plc4go/pkg/plc4go/model/plc_response_code.go
 create mode 100644 plc4go/pkg/plc4go/model/plc_subscription_event.go
 create mode 100644 plc4go/pkg/plc4go/model/plc_subscription_request.go
 create mode 100644 plc4go/pkg/plc4go/model/plc_subscription_response.go
 create mode 100644 plc4go/pkg/plc4go/model/plc_unsubscription_request.go
 create mode 100644 plc4go/pkg/plc4go/model/plc_unsubscription_response.go
 create mode 100644 plc4go/pkg/plc4go/model/plc_write_request.go
 create mode 100644 plc4go/pkg/plc4go/model/plc_write_response.go
 create mode 100644 plc4go/pkg/plc4go/values/plc_value.go
 create mode 100644 plc4go/pom.xml
 rename plc4j/{spi/src/main/java/org/apache/plc4x/java/spi/messages/InternalPlcUnsubscriptionResponse.java => api/src/main/java/org/apache/plc4x/java/api/messages/PlcSubscriptionFieldRequest.java} (62%)
 rename plc4j/{spi/src/main/java/org/apache/plc4x/java/spi/messages/InternalPlcWriteResponse.java => api/src/main/java/org/apache/plc4x/java/api/messages/PlcSubscriptionFieldResponse.java} (62%)
 copy plc4j/{drivers/eip/src/test/java/org/apache/plc4x/java/eip/readwrite/EIPDriverTestsuite.java => api/src/main/java/org/apache/plc4x/java/api/model/PlcSubscriptionField.java} (71%)
 rename plc4j/{spi/src/main/java/org/apache/plc4x/java/spi/messages/InternalPlcWriteRequest.java => api/src/main/java/org/apache/plc4x/java/api/value/PlcValueHandler.java} (62%)
 delete mode 100644 plc4j/api/src/main/java/org/apache/plc4x/java/api/value/PlcValues.java
 delete mode 100644 plc4j/api/src/test/java/org/apache/plc4x/java/api/types/PlcValueTest.java
 delete mode 100644 plc4j/api/src/test/java/org/apache/plc4x/java/api/value/PlcValuesTest.java
 delete mode 100644 plc4j/drivers/ads/src/main/java/org/apache/plc4x/java/amsads/attic/connection/AdsAbstractPlcConnection.java
 delete mode 100644 plc4j/drivers/ads/src/main/java/org/apache/plc4x/java/amsads/attic/connection/AdsConnectionFactory.java
 delete mode 100644 plc4j/drivers/ads/src/main/java/org/apache/plc4x/java/amsads/attic/connection/AdsSerialPlcConnection.java
 delete mode 100644 plc4j/drivers/ads/src/main/java/org/apache/plc4x/java/amsads/attic/connection/AdsTcpPlcConnection.java
 delete mode 100644 plc4j/drivers/ads/src/main/java/org/apache/plc4x/java/amsads/attic/protocol/Ads2PayloadProtocol.java
 delete mode 100644 plc4j/drivers/ads/src/main/java/org/apache/plc4x/java/amsads/attic/protocol/Payload2SerialProtocol.java
 delete mode 100644 plc4j/drivers/ads/src/main/java/org/apache/plc4x/java/amsads/attic/protocol/Payload2TcpProtocol.java
 delete mode 100644 plc4j/drivers/ads/src/main/java/org/apache/plc4x/java/amsads/attic/protocol/Plc4x2AdsProtocol.java
 delete mode 100644 plc4j/drivers/ads/src/main/java/org/apache/plc4x/java/amsads/attic/protocol/exception/AdsException.java
 delete mode 100644 plc4j/drivers/ads/src/main/java/org/apache/plc4x/java/amsads/attic/protocol/exception/AdsProtocolOverflowException.java
 delete mode 100644 plc4j/drivers/ads/src/main/java/org/apache/plc4x/java/amsads/attic/protocol/util/DigestUtil.java
 delete mode 100644 plc4j/drivers/ads/src/main/java/org/apache/plc4x/java/amsads/attic/protocol/util/LittleEndianDecoder.java
 delete mode 100644 plc4j/drivers/ads/src/main/java/org/apache/plc4x/java/amsads/attic/protocol/util/LittleEndianEncoder.java
 delete mode 100644 plc4j/drivers/ads/src/main/java/org/apache/plc4x/java/amsads/attic/protocol/util/SingleMessageRateLimiter.java
 delete mode 100644 plc4j/drivers/ads/src/main/java/org/apache/plc4x/java/amsads/attic/types/AdsDataType.java
 rename plc4j/drivers/knxnetip/src/test/java/org/apache/plc4x/java/knxnetip/{KNXNetIpTest.java => KnxNetIpTest.java} (85%)
 copy plc4j/drivers/{knxnetip/src/main/java/org/apache/plc4x/java/knxnetip/field/KnxNetIpFieldHandler.java => mock/src/main/java/org/apache/plc4x/java/mock/field/MockValueHandler.java} (59%)
 copy plc4j/drivers/{s7/src/test/java/org/apache/plc4x/java/s7/readwrite/S7DriverIT.java => modbus/src/test/java/org/apache/plc4x/java/modbus/ModbusDriverIT.java} (81%)
 rename plc4j/drivers/modbus/src/test/java/org/apache/plc4x/java/modbus/{ModbusIOTest.java => ModbusParserSerializerTest.java} (82%)
 create mode 100644 plc4j/drivers/s7/src/test/java/org/apache/plc4x/java/s7/readwrite/DatatypesTest.java
 create mode 100644 plc4j/examples/replay-test/pom.xml
 delete mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/connection/DefaultPlcFieldHandler.java
 delete mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/exceptions/InternalPlcRuntimeException.java
 delete mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/messages/DefaultPlcProprietaryRequest.java
 delete mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/messages/DefaultPlcProprietaryResponse.java
 delete mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/messages/InternalPlcFieldRequest.java
 delete mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/messages/InternalPlcFieldResponse.java
 delete mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/messages/InternalPlcMessage.java
 delete mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/messages/InternalPlcProprietaryRequest.java
 delete mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/messages/InternalPlcProprietaryResponse.java
 delete mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/messages/InternalPlcReadRequest.java
 delete mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/messages/InternalPlcReadResponse.java
 delete mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/messages/InternalPlcRequest.java
 delete mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/messages/InternalPlcResponse.java
 delete mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/messages/InternalPlcSubscriptionEvent.java
 delete mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/messages/InternalPlcSubscriptionRequest.java
 delete mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/messages/InternalPlcSubscriptionResponse.java
 delete mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/messages/InternalPlcUnsubscriptionRequest.java
 delete mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/messages/PlcRawMessage.java
 rename plc4j/spi/src/main/java/org/apache/plc4x/java/spi/model/{SubscriptionPlcField.java => DefaultPlcSubscriptionField.java} (86%)
 delete mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/model/InternalPlcConsumerRegistration.java
 delete mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/model/InternalPlcSubscriptionHandle.java
 delete mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/protocol/SingleItemToSingleRequestProtocol.java
 delete mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/request/PlcRequest.java
 delete mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/types/FieldType.java
 copy plc4j/{drivers/ads/src/test/java/org/apache/plc4x/protocol/ads/AdsDriverIT.java => spi/src/main/java/org/apache/plc4x/java/spi/utils/XmlSerializable.java} (76%)
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/IEC61131ValueHandler.java
 rename plc4j/{api/src/main/java/org/apache/plc4x/java/api/value => spi/src/main/java/org/apache/plc4x/java/spi/values}/PlcBOOL.java (89%)
 rename plc4j/{api/src/main/java/org/apache/plc4x/java/api/value => spi/src/main/java/org/apache/plc4x/java/spi/values}/PlcBYTE.java (90%)
 rename plc4j/{api/src/main/java/org/apache/plc4x/java/api/value => spi/src/main/java/org/apache/plc4x/java/spi/values}/PlcBigDecimal.java (96%)
 rename plc4j/{api/src/main/java/org/apache/plc4x/java/api/value => spi/src/main/java/org/apache/plc4x/java/spi/values}/PlcBigInteger.java (96%)
 rename plc4j/{api/src/main/java/org/apache/plc4x/java/api/value => spi/src/main/java/org/apache/plc4x/java/spi/values}/PlcCHAR.java (84%)
 rename plc4j/{api/src/main/java/org/apache/plc4x/java/api/value/PlcDate.java => spi/src/main/java/org/apache/plc4x/java/spi/values/PlcDATE.java} (74%)
 rename plc4j/{api/src/main/java/org/apache/plc4x/java/api/value/PlcDateTime.java => spi/src/main/java/org/apache/plc4x/java/spi/values/PlcDATE_AND_TIME.java} (77%)
 rename plc4j/{api/src/main/java/org/apache/plc4x/java/api/value => spi/src/main/java/org/apache/plc4x/java/spi/values}/PlcDINT.java (87%)
 rename plc4j/{api/src/main/java/org/apache/plc4x/java/api/value => spi/src/main/java/org/apache/plc4x/java/spi/values}/PlcDWORD.java (90%)
 rename plc4j/{api/src/main/java/org/apache/plc4x/java/api/value => spi/src/main/java/org/apache/plc4x/java/spi/values}/PlcIECValue.java (79%)
 rename plc4j/{api/src/main/java/org/apache/plc4x/java/api/value => spi/src/main/java/org/apache/plc4x/java/spi/values}/PlcINT.java (88%)
 rename plc4j/{api/src/main/java/org/apache/plc4x/java/api/value => spi/src/main/java/org/apache/plc4x/java/spi/values}/PlcLINT.java (87%)
 rename plc4j/{api/src/main/java/org/apache/plc4x/java/api/value => spi/src/main/java/org/apache/plc4x/java/spi/values}/PlcLREAL.java (87%)
 rename plc4j/{api/src/main/java/org/apache/plc4x/java/api/value => spi/src/main/java/org/apache/plc4x/java/spi/values}/PlcLWORD.java (91%)
 rename plc4j/{api/src/main/java/org/apache/plc4x/java/api/value => spi/src/main/java/org/apache/plc4x/java/spi/values}/PlcList.java (62%)
 rename plc4j/{api/src/main/java/org/apache/plc4x/java/api/value => spi/src/main/java/org/apache/plc4x/java/spi/values}/PlcNull.java (94%)
 rename plc4j/{api/src/main/java/org/apache/plc4x/java/api/value => spi/src/main/java/org/apache/plc4x/java/spi/values}/PlcREAL.java (85%)
 rename plc4j/{api/src/main/java/org/apache/plc4x/java/api/value => spi/src/main/java/org/apache/plc4x/java/spi/values}/PlcSINT.java (88%)
 rename plc4j/{api/src/main/java/org/apache/plc4x/java/api/value/PlcString.java => spi/src/main/java/org/apache/plc4x/java/spi/values/PlcSTRING.java} (90%)
 rename plc4j/{api/src/main/java/org/apache/plc4x/java/api/value => spi/src/main/java/org/apache/plc4x/java/spi/values}/PlcSimpleValue.java (95%)
 rename plc4j/{api/src/main/java/org/apache/plc4x/java/api/value => spi/src/main/java/org/apache/plc4x/java/spi/values}/PlcStruct.java (70%)
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcTIME.java
 rename plc4j/{api/src/main/java/org/apache/plc4x/java/api/value/PlcTime.java => spi/src/main/java/org/apache/plc4x/java/spi/values/PlcTIME_OF_DAY.java} (73%)
 rename plc4j/{api/src/main/java/org/apache/plc4x/java/api/value => spi/src/main/java/org/apache/plc4x/java/spi/values}/PlcUDINT.java (89%)
 rename plc4j/{api/src/main/java/org/apache/plc4x/java/api/value => spi/src/main/java/org/apache/plc4x/java/spi/values}/PlcUINT.java (89%)
 rename plc4j/{api/src/main/java/org/apache/plc4x/java/api/value => spi/src/main/java/org/apache/plc4x/java/spi/values}/PlcULINT.java (90%)
 rename plc4j/{api/src/main/java/org/apache/plc4x/java/api/value => spi/src/main/java/org/apache/plc4x/java/spi/values}/PlcUSINT.java (89%)
 rename plc4j/{api/src/main/java/org/apache/plc4x/java/api/value => spi/src/main/java/org/apache/plc4x/java/spi/values}/PlcValueAdapter.java (92%)
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcValues.java
 rename plc4j/{api/src/main/java/org/apache/plc4x/java/api/value => spi/src/main/java/org/apache/plc4x/java/spi/values}/PlcWCHAR.java (89%)
 rename plc4j/{api/src/main/java/org/apache/plc4x/java/api/value => spi/src/main/java/org/apache/plc4x/java/spi/values}/PlcWORD.java (88%)
 copy plc4j/{drivers/eip/src/test/java/org/apache/plc4x/java/eip/readwrite/EIPDriverTestsuite.java => utils/test-utils/src/main/java/org/apache/plc4x/test/driver/model/api/TestValueField.java} (70%)
 rename plc4j/drivers/ab-eth/src/test/resources/testsuite/AbEthTestsuite.xml => protocols/ab-eth/src/test/resources/protocols/abeth/ParserSerializerTestsuite.xml (100%)
 rename {plc4j/drivers/ads/src/test/resources/testsuite => protocols/ads/src/test/resources/protocols/ads}/AdsDiscoverySerializerTest.xml (100%)
 rename plc4j/drivers/ads/src/test/resources/testsuite/AdsDriverIT.xml => protocols/ads/src/test/resources/protocols/ads/DriverTestsuite.xml (90%)
 rename plc4j/drivers/ads/src/test/resources/testsuite/AdsParserSerializerTest.xml => protocols/ads/src/test/resources/protocols/ads/ParserSerializerTestsuite.xml (100%)
 rename sandbox/test-java-df1-driver/src/test/resources/testsuite/Df1Testsuite.xml => protocols/df1/src/test/resources/protocols/df1/ParserSerializerTestsuite.xml (100%)
 rename plc4j/drivers/eip/src/test/resources/testsuite/EIPDriverTestsuite.xml => protocols/eip/src/test/resources/protocols/eip/DriverTestsuite.xml (100%)
 rename plc4j/drivers/eip/src/test/resources/testsuite/EIPParserSerializerTestsuite.xml => protocols/eip/src/test/resources/protocols/eip/ParserSerializerTestsuite.xml (100%)
 rename plc4j/drivers/firmata/src/test/resources/testsuite/FirmataParserSerializerTest.xml => protocols/firmata/src/test/resources/protocols/firmata/ParserSerializerTestsuite.xml (100%)
 rename plc4j/drivers/knxnetip/src/test/resources/testsuite/KNXNetIPTestsuite.xml => protocols/knxnetip/src/test/resources/protocols/knxnetip/ParserSerializerTestsuite.xml (95%)
 create mode 100644 protocols/modbus/src/test/resources/protocols/modbus/DriverTestsuite.xml
 rename plc4j/drivers/modbus/src/test/resources/testsuite/ModbusTestsuite.xml => protocols/modbus/src/test/resources/protocols/modbus/ParserSerializerTestsuite.xml (81%)
 rename plc4j/drivers/s7/src/test/resources/testsuite/S7DriverIT.xml => protocols/s7/src/test/resources/protocols/s7/DriverTestsuite.xml (91%)
 rename plc4j/drivers/s7/src/test/resources/testsuite/S7ParserSerializerTest.xml => protocols/s7/src/test/resources/protocols/s7/ParserSerializerTestsuite.xml (100%)
 create mode 100644 sandbox/plc4c/generated-sources/modbus/include/modbus_data_type.h
 create mode 100644 sandbox/plc4c/generated-sources/modbus/include/modbus_data_type_sizes.h
 create mode 100644 sandbox/plc4c/generated-sources/modbus/include/modbus_error_code.h
 create mode 100644 sandbox/plc4c/generated-sources/modbus/src/modbus_data_type.c
 create mode 100644 sandbox/plc4c/generated-sources/modbus/src/modbus_data_type_sizes.c
 create mode 100644 sandbox/plc4c/generated-sources/modbus/src/modbus_error_code.c
 create mode 100644 src/site/asciidoc/plc4go/index.adoc
 rename src/site/asciidoc/users/{plc4j => getting-started}/general-concepts.adoc (100%)
 copy src/site/asciidoc/users/{plc4j/gettingstarted.adoc => getting-started/plc4go.adoc} (96%)
 rename src/site/asciidoc/users/{plc4j/gettingstarted.adoc => getting-started/plc4j.adoc} (98%)
 rename src/site/asciidoc/users/{plc4j => getting-started}/virtual-modbus.adoc (100%)


[plc4x] 02/02: [Broken] Fix after Merge Plc4go

Posted by hu...@apache.org.
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 ddc5776bdf964997850a30178cf935f2ccef4188
Author: hutcheb <be...@gmail.com>
AuthorDate: Sat Nov 14 08:10:05 2020 -0500

    [Broken] Fix after Merge Plc4go
    
    Can't read String type now
---
 plc4j/drivers/simulated/pom.xml                    |   6 +-
 .../java/simulated/connection/SimulatedDevice.java |  15 +--
 .../plc4x/java/simulated/field/SimulatedField.java |  23 +---
 .../simulated/field/SimulatedFieldHandler.java     |  60 +---------
 .../java/simulated/field/SimulatedFieldTest.java   |   4 +-
 .../apache-calcite/src/test/resources/example.yml  |   4 +-
 .../resources/protocols/simulated/simulated.mspec  | 133 ++++++++++-----------
 7 files changed, 80 insertions(+), 165 deletions(-)

diff --git a/plc4j/drivers/simulated/pom.xml b/plc4j/drivers/simulated/pom.xml
index 7785bf1..456e2cb 100644
--- a/plc4j/drivers/simulated/pom.xml
+++ b/plc4j/drivers/simulated/pom.xml
@@ -113,11 +113,7 @@
       <artifactId>plc4j-api</artifactId>
       <version>0.8.0-SNAPSHOT</version>
     </dependency>
-
-    <dependency>
-      <groupId>org.apache.commons</groupId>
-      <artifactId>commons-text</artifactId>
-    </dependency>
+    
     <dependency>
       <groupId>org.apache.commons</groupId>
       <artifactId>commons-lang3</artifactId>
diff --git 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
index 194b617..fd6932b 100644
--- 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
@@ -24,10 +24,10 @@ import org.apache.plc4x.java.api.model.PlcSubscriptionHandle;
 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.simulated.readwrite.types.SimulatedDataTypeSizes;
 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;
@@ -101,21 +101,14 @@ public class SimulatedDevice {
     private PlcValue randomValue(SimulatedField field) {
         Object result = null;
 
-        Short fieldDataType = SimulatedDataType.valueOf(field.getPlcDataType()).getValue();
-        Short fieldDataTypeSize = SimulatedDataType.valueOf(field.getPlcDataType()).getDataTypeSize();
+        Short fieldDataTypeSize = SimulatedDataTypeSizes.enumForValue(field.getPlcDataType()).getDataTypeSize();
 
         byte[] b = new byte[fieldDataTypeSize];
         new Random().nextBytes(b);
 
         ReadBuffer io = new ReadBuffer(b);
         try {
-            if (field.getPlcDataType().toUpperCase().equals("STRING")) {
-                return new PlcString(new String(b, StandardCharsets.UTF_8));
-            } else if (field.getPlcDataType().toUpperCase().equals("WSTRING")) {
-                return new PlcString(new String(b, StandardCharsets.UTF_16));
-            } else {
-                return DataItemIO.staticParse(io, fieldDataType, (short) 1);
-            }
+            return DataItemIO.staticParse(io, field.getPlcDataType(), 1);
         } catch (ParseException e) {
             return null;
         }
diff --git a/plc4j/drivers/simulated/src/main/java/org/apache/plc4x/java/simulated/field/SimulatedField.java b/plc4j/drivers/simulated/src/main/java/org/apache/plc4x/java/simulated/field/SimulatedField.java
index b077307..e9d3e23 100644
--- a/plc4j/drivers/simulated/src/main/java/org/apache/plc4x/java/simulated/field/SimulatedField.java
+++ b/plc4j/drivers/simulated/src/main/java/org/apache/plc4x/java/simulated/field/SimulatedField.java
@@ -21,7 +21,7 @@ package org.apache.plc4x.java.simulated.field;
 import org.apache.commons.text.WordUtils;
 import org.apache.plc4x.java.api.exceptions.PlcInvalidFieldException;
 import org.apache.plc4x.java.api.model.PlcField;
-import org.apache.plc4x.java.simulated.readwrite.types.SimulatedDataType;
+import org.apache.plc4x.java.simulated.readwrite.types.SimulatedDataTypeSizes;
 import org.apache.plc4x.java.simulated.types.SimulatedFieldType;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -61,29 +61,18 @@ public class SimulatedField implements PlcField {
         if (matcher.matches()) {
             SimulatedFieldType type = SimulatedFieldType.valueOf(matcher.group("type"));
             String name = matcher.group("name");
-            //[TODO] Fix when plc4go is merged
-            String dataTypeProper = WordUtils.capitalizeFully(matcher.group("dataType"));
-            String dataTypeName = matcher.group("dataType").toUpperCase();
+            String dataType = "IEC61131_" + matcher.group("dataType").toUpperCase();
             try {
-                if (dataTypeName.equals("STRING")) {
-                    SimulatedDataType.valueOf(dataTypeProper);
-                } else {
-                    SimulatedDataType.valueOf(dataTypeName);
-                }
-            } catch (IllegalArgumentException e) {
-                throw new PlcInvalidFieldException("Unable to parse address: " + fieldString);
+                SimulatedDataTypeSizes.enumForValue(dataType).getDataTypeSize();
+            } catch (NullPointerException e) {
+                throw new PlcInvalidFieldException("Invalid data type: " + dataType);
             }
 
             int numElements = 1;
             if (matcher.group("numElements") != null) {
                 numElements = Integer.parseInt(matcher.group("numElements"));
             }
-            if (dataTypeName.equals("STRING")) {
-                return new SimulatedField(type, name, dataTypeProper, numElements);
-            } else {
-                return new SimulatedField(type, name, dataTypeName, numElements);
-            }
-
+            return new SimulatedField(type, name, dataType, numElements);
         }
         throw new PlcInvalidFieldException("Unable to parse address: " + fieldString);
     }
diff --git 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
index b415487..36f1ab4 100644
--- 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
@@ -21,6 +21,7 @@ package org.apache.plc4x.java.simulated.field;
 
 import org.apache.plc4x.java.api.exceptions.PlcInvalidFieldException;
 import org.apache.plc4x.java.api.model.PlcField;
+import org.apache.plc4x.java.api.value.PlcValue;
 import org.apache.plc4x.java.spi.connection.PlcFieldHandler;
 
 import java.math.BigDecimal;
@@ -32,7 +33,7 @@ import java.util.Arrays;
 import java.util.LinkedList;
 import java.util.List;
 
-public class SimulatedFieldHandler extends DefaultPlcFieldHandler {
+public class SimulatedFieldHandler implements PlcFieldHandler {
 
     @Override
     public PlcField createField(String fieldQuery) {
@@ -42,61 +43,4 @@ public class SimulatedFieldHandler extends DefaultPlcFieldHandler {
         throw new PlcInvalidFieldException(fieldQuery);
     }
 
-    @Override
-    public PlcValue encodeTime(PlcField field, Object[] values) {
-        switch (field.getPlcDataType().toUpperCase()) {
-            case "LOCALTIME":
-            case "TIME":
-                if(values.length == 1) {
-                    return new PlcTime((LocalTime) values[0]);
-                } else {
-                    List<PlcTime> plcValues = new LinkedList<>();
-                    for (int i = 0; i < values.length; i++) {
-                        plcValues.add(new PlcTime((LocalTime) values[i]));
-                    }
-                    return new PlcList(plcValues);
-                }
-            default:
-                throw new PlcRuntimeException("Invalid encoder for type " + field.getPlcDataType());
-        }
-    }
-
-    @Override
-    public PlcValue encodeDate(PlcField field, Object[] values) {
-        switch (field.getPlcDataType().toUpperCase()) {
-            case "LOCALDATE":
-            case "DATE":
-                if(values.length == 1) {
-                    return new PlcDate((LocalDate) values[0]);
-                } else {
-                    List<PlcDate> plcValues = new LinkedList<>();
-                    for (int i = 0; i < values.length; i++) {
-                        plcValues.add(new PlcDate((LocalDate) values[i]));
-                    }
-                    return new PlcList(plcValues);
-                }
-            default:
-                throw new PlcRuntimeException("Invalid encoder for type " + field.getPlcDataType());
-        }
-    }
-
-    @Override
-    public PlcValue encodeDateTime(PlcField field, Object[] values) {
-        switch (field.getPlcDataType().toUpperCase()) {
-            case "LOCALDATETIME":
-            case "DATETIME":
-                if(values.length == 1) {
-                    return new PlcDateTime((LocalDateTime) values[0]);
-                } else {
-                    List<PlcDateTime> plcValues = new LinkedList<>();
-                    for (int i = 0; i < values.length; i++) {
-                        plcValues.add(new PlcDateTime((LocalDateTime) values[i]));
-                    }
-                    return new PlcList(plcValues);
-                }
-            default:
-                throw new PlcRuntimeException("Invalid encoder for type " + field.getPlcDataType());
-        }
-    }
-
 }
diff --git a/plc4j/drivers/simulated/src/test/java/org/apache/plc4x/java/simulated/field/SimulatedFieldTest.java b/plc4j/drivers/simulated/src/test/java/org/apache/plc4x/java/simulated/field/SimulatedFieldTest.java
index 8449f5a..16b1d55 100644
--- a/plc4j/drivers/simulated/src/test/java/org/apache/plc4x/java/simulated/field/SimulatedFieldTest.java
+++ b/plc4j/drivers/simulated/src/test/java/org/apache/plc4x/java/simulated/field/SimulatedFieldTest.java
@@ -36,10 +36,10 @@ public class SimulatedFieldTest {
         SimulatedField field = SimulatedField.of("RANDOM/test:Int[2]");
         assertThat(field.getType(), equalTo(SimulatedFieldType.RANDOM));
         assertThat(field.getName(), equalTo("test"));
-        assertThat(field.getPlcDataType(), equalTo("INT"));
+        assertThat(field.getPlcDataType(), equalTo("IEC61131_INT"));
         assertThat(field.getNumberOfElements(), equalTo(2));
         assertThat(field.toString(),
-            equalTo("TestField{type=RANDOM, name='test', dataType='INT', numElements=2}"));
+            equalTo("TestField{type=RANDOM, name='test', dataType='IEC61131_INT', numElements=2}"));
     }
 
     /*[TODO] Add support for Full Java Type Names back in after plc4go changes have merged
diff --git a/plc4j/integrations/apache-calcite/src/test/resources/example.yml b/plc4j/integrations/apache-calcite/src/test/resources/example.yml
index 5b2980d..a38f1cb 100644
--- a/plc4j/integrations/apache-calcite/src/test/resources/example.yml
+++ b/plc4j/integrations/apache-calcite/src/test/resources/example.yml
@@ -28,5 +28,5 @@ jobs:
     - test
     - test2
     fields:
-      test: 'RANDOM/test:Int'
-      test2: 'RANDOM/test:String'
+      test: 'RANDOM/test:INT'
+      test2: 'RANDOM/test:STRING'
diff --git a/protocols/simulated/src/main/resources/protocols/simulated/simulated.mspec b/protocols/simulated/src/main/resources/protocols/simulated/simulated.mspec
index 91c805e..a8afe1b 100644
--- a/protocols/simulated/src/main/resources/protocols/simulated/simulated.mspec
+++ b/protocols/simulated/src/main/resources/protocols/simulated/simulated.mspec
@@ -19,147 +19,140 @@
 
 // Remark: The different fields are encoded in Big-endian.
 
-[dataIo 'DataItem' [uint 8 'dataType', uint 8 'numberOfValues']
+[dataIo 'DataItem' [string 'dataType', uint 16 'numberOfValues']
     [typeSwitch 'dataType','numberOfValues'
-        ['1','1' BOOL
+        ['IEC61131_BOOL','1' BOOL
             [reserved uint 7 '0x00']
             [simple   bit    'value']
         ]
-        ['1' BOOL
+        ['IEC61131_BOOL' List
             [array bit 'value' count 'numberOfValues']
         ]
-        ['10','1' BYTE
+        ['IEC61131_BYTE','1' BYTE
             [simple uint 8 'value']
         ]
-        ['10' BYTE
+        ['IEC61131_BYTE' List
             [array uint 8 'value' count 'numberOfValues']
         ]
-        ['11','1' WORD
+        ['IEC61131_WORD','1' WORD
             [simple uint 16 'value']
         ]
-        ['11' WORD
+        ['IEC61131_WORD' List
             [array uint 16 'value' count 'numberOfValues']
         ]
-        ['12','1' DWORD
+        ['IEC61131_DWORD','1' DWORD
             [simple uint 32 'value']
         ]
-        ['12' DWORD
+        ['IEC61131_DWORD' List
             [array uint 32 'value' count 'numberOfValues']
         ]
-        ['13','1' LWORD
+        ['IEC61131_LWORD','1' LWORD
             [simple uint 64 'value']
         ]
-        ['13' LWORD
+        ['IEC61131_LWORD' List
             [array uint 64 'value' count 'numberOfValues']
         ]
-        ['20','1' SINT
+        ['IEC61131_SINT','1' SINT
             [simple int 8 'value']
         ]
-        ['20' SINT
+        ['IEC61131_SINT' List
             [array int 8 'value' count 'numberOfValues']
         ]
-        ['21','1' INT
+        ['IEC61131_INT','1' INT
             [simple int 16 'value']
         ]
-        ['21' INT
+        ['IEC61131_INT' List
             [array int 16 'value' count 'numberOfValues']
         ]
-        ['22','1' DINT
+        ['IEC61131_DINT','1' DINT
             [simple int 32 'value']
         ]
-        ['22' DINT
+        ['IEC61131_DINT' List
             [array int 32 'value' count 'numberOfValues']
         ]
-        ['23','1' LINT
+        ['IEC61131_LINT','1' LINT
             [simple int 64 'value']
         ]
-        ['23' LINT
+        ['IEC61131_LINT' List
             [array int 64 'value' count 'numberOfValues']
         ]
-        ['24','1' USINT
+        ['IEC61131_USINT','1' USINT
             [simple uint 8 'value']
         ]
-        ['24' USINT
+        ['IEC61131_USINT' List
             [array uint 8 'value' count 'numberOfValues']
         ]
-        ['25','1' UINT
+        ['IEC61131_UINT','1' UINT
             [simple uint 16 'value']
         ]
-        ['25' UINT
+        ['IEC61131_UINT' List
             [array uint 16 'value' count 'numberOfValues']
         ]
-        ['26','1' UDINT
+        ['IEC61131_UDINT','1' UDINT
             [simple uint 32 'value']
         ]
-        ['26' UDINT
+        ['IEC61131_UDINT' List
             [array uint 32 'value' count 'numberOfValues']
         ]
-        ['27','1' ULINT
+        ['IEC61131_ULINT','1' ULINT
             [simple uint 64 'value']
         ]
-        ['27' ULINT
+        ['IEC61131_ULINT' List
             [array uint 64 'value' count 'numberOfValues']
         ]
-        ['30','1' REAL
+        ['IEC61131_REAL','1' REAL
             [simple float 8.23  'value']
         ]
-        ['30' REAL
+        ['IEC61131_REAL' List
             [array float 8.23 'value' count 'numberOfValues']
         ]
-        ['31','1' LREAL
+        ['IEC61131_LREAL','1' LREAL
             [simple float 11.52  'value']
         ]
-        ['31' LREAL
+        ['IEC61131_LREAL' List
             [array float 11.52 'value' count 'numberOfValues']
         ]
-        ['80','1' CHAR
+        ['IEC61131_CHAR','1' CHAR
             [simple uint 8 'value']
         ]
-        ['80' CHAR
+        ['IEC61131_CHAR' List
             [array uint 8 'value' count 'numberOfValues']
         ]
-        ['81','1' WCHAR
+        ['IEC61131_WCHAR','1' WCHAR
             [simple uint 16 'value']
         ]
-        ['81' WCHAR
+        ['IEC61131_WCHAR' List
             [array uint 16 'value' count 'numberOfValues']
         ]
-        ['82' String
-            [array string 'UTF-8' 'value' count 'numberOfValues']
-        ]
-        ['83' String
-            [array string 'UTF-16' 'value' count 'numberOfValues']
-        ]
     ]
 ]
 
-[enum uint 8 'SimulatedDataType' [uint 8 'dataTypeSize']
-    ['00' NULL ['0']]
-    ['01' BOOL ['1']]
-    ['10' BYTE ['1']]
-    ['11' WORD ['2']]
-    ['12' DWORD ['4']]
-    ['13' LWORD ['8']]
-    ['20' SINT ['1']]
-    ['21' INT ['2']]
-    ['22' DINT ['4']]
-    ['23' LINT ['8']]
-    ['24' USINT ['1']]
-    ['25' UINT ['2']]
-    ['26' UDINT ['4']]
-    ['27' ULINT ['8']]
-    ['30' REAL ['4']]
-    ['31' LREAL ['8']]
-    ['40' TIME ['8']]
-    ['41' LTIME ['8']]
-    ['50' DATE ['8']]
-    ['51' LDATE ['8']]
-    ['60' TIME_OF_DAY ['8']]
-    ['61' LTIME_OF_DAY ['8']]
-    ['70' DATE_AND_TIME ['8']]
-    ['71' LDATE_AND_TIME ['8']]
-    ['80' CHAR ['1']]
-    ['81' WCHAR ['2']]
-    ['82' String ['254']]
-    ['83' WString ['254']]
+[enum string 'SimulatedDataTypeSizes' [uint 8 'dataTypeSize']
+    ['IEC61131_BOOL' BOOL ['1']]
+    ['IEC61131_BYTE' BYTE ['1']]
+    ['IEC61131_WORD' WORD ['2']]
+    ['IEC61131_DWORD' DWORD ['4']]
+    ['IEC61131_LWORD' LWORD ['8']]
+    ['IEC61131_SINT' SINT ['1']]
+    ['IEC61131_INT' INT ['2']]
+    ['IEC61131_DINT' DINT ['4']]
+    ['IEC61131_LINT' LINT ['8']]
+    ['IEC61131_USINT' USINT ['1']]
+    ['IEC61131_UINT' UINT ['2']]
+    ['IEC61131_UDINT' UDINT ['4']]
+    ['IEC61131_ULINT' ULINT ['8']]
+    ['IEC61131_REAL' REAL ['4']]
+    ['IEC61131_LREAL' LREAL ['8']]
+    ['IEC61131_TIME' TIME ['8']]
+    ['IEC61131_LTIME' LTIME ['8']]
+    ['IEC61131_DATE' DATE ['8']]
+    ['IEC61131_LDATE' LDATE ['8']]
+    ['IEC61131_TIME_OF_DAY' TIME_OF_DAY ['8']]
+    ['IEC61131_LTIME_OF_DAY' LTIME_OF_DAY ['8']]
+    ['IEC61131_DATE_AND_TIME' DATE_AND_TIME ['8']]
+    ['IEC61131_LDATE_AND_TIME' LDATE_AND_TIME ['8']]
+    ['IEC61131_CHAR' CHAR ['1']]
+    ['IEC61131_WCHAR' WCHAR ['2']]
+    ['IEC61131_STRING' STRING ['1']]
+    ['IEC61131_WSTRING' WSTRING ['2']]
 ]


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

Posted by hu...@apache.org.
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();
-     }
+     }*/
  
  }