You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@plc4x.apache.org by cd...@apache.org on 2021/01/28 21:13:57 UTC

[plc4x] branch release updated (0c18c7c -> c3427a2)

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

cdutz pushed a change to branch release
in repository https://gitbox.apache.org/repos/asf/plc4x.git.


    from 0c18c7c  Merge tag 'release/0.7.0'
     add da98477  poll loop fetches data in a continous loop
     add 597294d  Merge branch 'feature/osgi' of https://github.com/apache/plc4x into feature/scraper
     add 912c1ef  Camel-Scraper
     add cb640f8  ClassCast Exception still
     add e5d3cdd  Merge branch 'develop' of https://github.com/apache/plc4x into feature/scraper
     add 8a1db07  Camel using Scraper -trigger and period parameters to use Triggered Scraper
     add 6b0ad60  Cleaning
     add f8b1303  Reading with Scraper or Writing using Map<String,Map<String,Object>>
     add 8b86167  Merge branch 'develop' of https://github.com/apache/plc4x into feature/scraper
     add 6c49278  Update Camel Documentation
     add 484726b  [maven-release-plugin] prepare for next development iteration
     add 60df1d7  Merge branches 'develop' and 'feature/scraper' of https://github.com/apache/plc4x into feature/scraper
     add 631cfd5  - Merged changes from the release branch
     add 8b92de5  - Updated missing version updates
     add 429b180  Camel Integration Test
     add 4fdbf69  Scraper Test -Added type to MockField
     add 3973109  ASF Header
     add a432200  - Post-release cleanup
     add 48513a6  Added Colorless Toddy-Only logo, e.g. for Kids to color.
     add 552d80b  Improved Toddy. Added PDF Version.
     add 7dec959  Added Toddy colorize png.
     add 88793d1  - Moved the surefire configuration into self-activating profile
     add bc3b8a2  - Merged changes from the release branch
     add 5595409  Use minimum required Java version 11 in Dockerfile
     add e5d95cf  - Fixed the parent version of the pom
     add 92352ee  - Moved some of the code from the simulator to the S7 driver - Added a skeleton for the S7 driver to the new generated s7 driver - Removed the code-generation from the plc-simulator module - Refactored the S7Server to use the code of the driver instead
     add 1379478  - Added inputs and outputs to the context - Refactored the Simulator and Server APIs - Made the WaterTankSimulationModule do something a little more complicated
     add f27cef0  - Made data be transported in "byte" instead of "short" arrays. - Changed the PLCSimulator to only run with one selected simulation (Due to the problem of how to map I/O to the different simulations)
     add b756712  - Continued implemting the functionality to read DBs in the simulator
     add d9c4d11  Rebased on current develop + fixed some issues to get a running version again.
     add b027126  - Explicitly set the _allow_illegal_access_reflection_in_tests profile to disabled to skip the detection on the site build node
     add 21f08e4  - Explicitly set the _allow_illegal_access_reflection_in_tests profile to disabled to skip the detection on the site build node
     add 8c368a0  - Moved the disabling of the java9-and-above profile to another step in the build
     add 4d686b1  - Enabled stack-trace-dumping in order to track down the problem.
     add a70d025  - Tried even more to solve the site generation problem.
     add 85d6c06  - Maually pass in a java.version property ...
     add cae194e  - Updated download information
     add 546638e  - Moved the self-activation java9 and higher profile to the plc4j so it doesn't interfere with with site build till we fixed the issue.
     add 6a39a9c  - Completely disabled the java 9 and above profile in order to get a site-update out the door.
     add 59a59b1  - Updated the StreamPipes integration to the new Apache StreamPipes release 0.66.0
     add 222e5b8  - Updated the doap file with the new version
     add 47520f6  [S7] Minor extension of mspec.
     add 459395e  Revert "[S7] Minor extension of mspec."
     add 6feffdd  - Got a first version of the C enum generation working. - Got CMake-tests working without maven
     add 20a3d05  [SITE] Add Logo Column. Add pragmatic minds and pragmatic industries to Users site.
     add b9eb883  - made imaged in the companies page working.
     add a377e47  - Added cocedentric logo
     add dac04e0  Merge pull request #159 from apache/site/add-adopters
     add 83a51d2  - Added Apache headers to the svgs
     add 69e0b5c  - Made the links open new tabs - Added the nofollow option to the company links
     add 5ca19e4  - Changed the way the type-names are being generated to utilize the stdint.h types - Changed the way structs with non-variable length arrays are being generated
     add 5197c3f  have rat ignore .java-version files from jenv since we need java kung fu between all supported versions
     add 1bc1477  Merge pull request #160 from ottobackwards/java-version-file
     add f1c1c4b  - Tried to resolve otto's build error
     add 1227b0a  - Made the template use plc4c_list elements for variable array
     add ad35755  - Diabled the enforcer plugin for the sandbox
     add ffb0ab7  - Moved the PLC4C generated code into a checked-in directory (for now) so we can do code reviews on it.
     add bd1b152  - Removed the generated code again so I can add it to a new branch for code reviews.
     add 895c8a0  Updated Eclipse Milo to 0.3.7
     add 44790eb  Merge pull request #158 from patrickse/develop
     add f08b106  - Renamed the "users" to "adopters" - Added the page to the navigation-menu
     add fd48ba2  Updated the codecentric adopers page entry
     add 6426251  - Moved the PLC4C generated code into a checked-in directory (for now) so we can do code reviews on it.
     add d23d80c  - Finetuned the camel-case-to-snake-case generator
     add 46e374a  - Fixed a bug in the name generation (first letter was uppercase)
     add 01e3fef  - Added type information to discriminated types.
     add 234fb28  - Fixed an issue in the name of the type property of sub-types.
     add 3577623  - Fixed another glitch in the code generation
     add 93d3f78  - Added the skeletons of the read and write-buffers
     add f99955a  Merge pull request #161 from apache/feature/c-code-generation
     add e8a2710  - Updated the adopters page
     add f918001  - Added the toddy-loves-apache.png and powered-by-plc4x.png logos to media
     add 7cb8e70  - Added a draft for a commercial support page
     add f2490d3  - Fine tuned the title and the text a little
     add 966c3f1  IndustryFusion as PLC4X adopter
     add edc7b5b  Added more connection tests and began with expand wider write type support
     add e3d45f7  Merge remote-tracking branch 'origin/develop' into develop
     add ec7b6fa  reverted changes to the unsigned write types to not conflict with further changes by PLC4X-202
     add 0b5103d  skipped failing write types
     add fba06f4  Merge pull request #164 from apache/feature/opc-test-write-improvement
     add eb4e874  Added a missing dependency declaration
     add 28915d7  Adopter ISW addition
     add 7e400de  Fixed wrong url
     add 0309396  - Started working on the parser and serializer code ...
     add 4727e19  - Major cleanup after getting the compiler to work in CLion
     add 8799494  - Continued implementing the templates for gnerating C parsers/serializers
     add c4648b9  Merge branches 'develop' and 'feature/c-code-generation' of https://gitbox.apache.org/repos/asf/plc4x into feature/c-code-generation
     add c4ce567  - Switched to union structs for discriminated types
     add d9dffb2  - Finished implementing the handling of discriminated values in expressions
     add 8fa97ef  - Greatly refactored the C template helper and moved a lot of functionality into a new BaseFreemarkerLanguageTemplateHelper - Finished support of array fields - Finished supporting static function calls in expressions - Finished supporting enum properties in expressions
     add 6843ffd  - Backported the major changes in the C code-generation back to the java version - Introduced a BaseFreemarkerLanguageTemplateHelper which contains methods usable for multiple code generations - Updated the mspec definitions to now use the discriminators directly
     add de9ef6c  - Continued working on the C code generation -- Fixed a lot of little issues. -- Cleaned up the usage of pointers and no-pointers
     add 0d23c5d  - Refactored the code generation to use pointers for complex types and arrays/lists - Worked on the expression builders to correctly access indexed items of lists
     add 65a8c40  - Fixed the last syntax-error issue (for now) in the code-generation of the parser code.
     add c3d641a  - Added checks for the return codes of parsed sub-types - Added NULL-checks after the malloc of complex types
     add 8e9cfff  - Fixed a big in the generation of enum property generation
     add 81aba3b  - Added some indentation to the generation of fields inside discriminated types
     add 1899fcf  - Started implementing the different types of serializers for the fields (WIP)
     add 3f9ed1f  - Implemented more field types for the serialization
     add d9e7b3b  - Finished implementing the implicit fields - Fixed the generation of the padding code (which used the "serializer"-arg "lastItem") - Added skeletons for the lengthInBytes code.
     add f2b9cad  - Finished implementing the "get_lengh_in_bits" functionality - Made the switch type also save a reference to the enum constant for that type
     add 694c97c  Merge pull request #168 from apache/feature/c-code-generation-tagged-unions
     add f8a7ed9  - Implemented the "typeSwitch" field in the serializer which was still commented out (And did all the required adjustments this mace necessary)
     add 1849c3f  - Fixed some problems related to the refactoring of the discriminators
     add d96a5e8  - Tried to make the build work on Ubuntu
     add 2b8d914  - Tried to make the build work on Ubuntu
     add d1e568a  - Tried to make the build work on Ubuntu
     add 600d45f  - Started implementing the C read_buffer and implementing unit tests for the implemented functions.
     add b57e281  - Refactored the read and write functions in read_buffer and write_buffer to work with return codes. - Adjusted the code-generation to these changes
     add ac87a2e  - Fixed an error in the code generation (No idea why it built correctly on my Mac)
     add 5046efd  - Fixed some static initializing of null-values for complex types
     add 686e6a9  - cleaned up the code generation - got rid of almost all compiler warning - fixed a bug in the code generation using uint8 only fo rup to 4 bits (was initially using the same offset as in java)
     add 9f06bb0  - Added some documentation on the PooledPlcDriverManager
     add 45892e0  - Fixed some serious issues in plc4c_spi_read_peek_byte - Finished implementing plc4c_spi_read_unsigned_byte - Implemented some internal helper functions for getting values for parts of a byte
     add 3d7eaee0 - Renamed the signed integer reading and writing methods to have "signed" in their name
     add 661daa3  PLC4X-206 - When writing short values exceptions are thrown while preparing the write request.
     add 2a3670a  - Refactored the function for reading an unsigned int to something that could read multiple bytes
     add abdf591  - Made the read_buffer read correctly in all the "full type" scenario (bit-offset = 0 and reading full byte, short, int and long)
     add 47a0887  - Made the code detect the endianess of the host and to decode accordingly.
     add e9836bb  - Commented out things that the S7 driver currently doesn't support yet.
     add dbfac0e  - Updated references to "master" to "release" in documentation and tooling
     add 795886a  - Added some content to the scraper documentation page
     add 52ee47e  - Continued working on the read_buffer
     add 598460e  - Changed the documentation to match the latest vote-results on our naming of branches
     add 6f4d196  - Moved some generic methods from the c and java helpers into the base
     add ece8597  - Bumped the boost version to 1.73 - Bumped Cmake to version 1.17.3
     add 9c22bcd  - Fixed a bug that caused problems if the number of bits in the last byte + number of bits in the first byte are more than 8 - Added some more tests
     add 0841641  - Added some more tests for the unsigned integer read functions
     add 83feca8  - Bumped Kafka from 2.3.0 to version 2.5.0 - Updated the RELEASE_NOTES
     add da134f1  - Initial commit for some discovery functionality
     add 5f9c762  - Started adding the tests for the signed datatypes - Fixed an issue when returning signed negative values that don't use all the bits a datatype has to provide (values switched to positive ones in this case)
     add 382962b  - Fixed a bug not propagating the positive or negative values when reading fractions of a short, int or long.
     add f226e54  - Added tests for int and long types (finally no new bugs found)
     add 3b35391  PLC4X-208 - [S7] When trying to write to a S7 device and writing is not explicitly enabled, the PLC will respond with an error code
     add f58ceb6  Added support for Float default values
     add 46d135a  Made the PcapReplayChannelConfig accept a replay speed of 0.0 (full-speed)
     add 5b2bbc5  Made the "replay" transport config options "replay-speed-factor" and "loop" configurable
     add e8543c0  Made the GeneratedProtocolMessageCodec not throw an exception if a protocol doesn't have a corruptPackageRemover
     add 45a2aa6  - Made the KNXnet/IP driver use a LINK-LAYER connection instead of a Busmonitor connection (per default) - Made it configurable which type of connection should be used - Updated the mspec to support link-layer data - Added documentation on the KNXnet/IP driver usage
     add 96c6194  - Added an example for using the subscription mechanism.
     add 816a78c  PLC4X-211 - PlcValues seem to always return "true" on the "isXYZ" checks.
     add 1a62702  Fine-tuned some minor issues in the ExpectRequestContext and SendRequestContext
     add 6bc1063  PLC4X-211 - PlcValues seem to always return "true" on the "isXYZ" checks.
     add 7eb39eb  PLC4X-211 - PlcValues seem to always return "true" on the "isXYZ" checks.
     add deef47c  Added ContextHandler to allow to Cancel running Registered Handlers.
     add 4e661b4  PLC4X-212 - When writing multiple values in one request the item status is not correctly set - Unfortunately when assembling the merged write response, it iterated over the fields of the original request and not the sub-requests.
     add 392c383  Updated the KNXnet/IP Driver to support writing of data.
     add 42e648c  - Implemented the functionality to read floating point valies in half, full and double precision.
     add 2a00cd5  removed the stub of the read support as it doesn't make sense for KNX.
     add d8e46b2  Streamlined the way string encoding is named
     add 594ed26  Added an Apache header to a new file
     add 3ed3bdb  PLC4X-215 - Drivers using the BaseOptimizer (SingleFieldOptimizer) don't handle error responses gracefully - Fixed the issue by only accessing the PlcValue if the return code is 'OK'
     add f716fc8  PLC4X-213 - [Modbus] The Modbus driver doesn't handle error responses gracefully
     add 9b1cc7e  Implemented the functionality and tests for reading of 'UTF-8' string values
     add d5f2763  Team addition
     add 3c8c409  Merge pull request #166 from apache/team-strljic
     add 69d4138  update IoTDB JDBC example and session API example; add the related doc on website
     add a51b939  add use-jdbc as a startup argument, the default value is false
     add 88527bd  Merge pull request #171 from jixuan1989/plc4x-216-iotdb
     add f415260  Modbus Driver - Add additional address formats
     add 4816a31  Updated Modbus User Documentation
     add 40bed1f  Resolving comments
     add c0507d9  Merge pull request #172 from hutcheb/feature/modbus_add_address_formats
     add 75ae275  - Fine-tuned the examples pom - Added new item to the RELEASE_NOTES
     add f158a22  PLC4X-218 - [Scraper] After stopping the scraper still the statistics are logged and the application doesn't terminate
     add a518352  PLC4X-218 - [Scraper] After stopping the scraper still the statistics are logged and the application doesn't terminate
     add 4347974  - Implemented the writing of unsigned integer types
     add 90db35d  - Finished implementing the handling of signed integer values.
     add f6ad7b8  - Finished implementing the handling of floating point values.
     add ac6848c  - Finished implementing the handling of string values.
     add 2a283ef  - Added some output to the test to show if the test is being run big- or little-endian.
     add 4a1faa8  - Unified the usage of the is-bigendian macro.
     add dc60f97  - Fixed the problem causing the segmentation fault in the plc4c build.
     add 44b9418  Make the PLC4C s7 test successfully parse and serialize a byte array.
     add cf35eb1  Adjusted the code generation to fully process all test-cases in the integration test for S7
     add 1531b9e  Finetunig of some tests.
     add 8d4f165  Updated the website to the new CI urls
     add 6cfdf0e  - Fixed one little issue with firing errors when reading too much - Commented in a test that strangely stopped failing
     add d4fe544  - Fixed a segmentation fault when serializing optional fields.
     add 96ea0fc  - Added a new type of "PLC Proxy" address
     add 1cfeaae  - Added a new type of "PLC Proxy" address
     add 4cd484d  - Added missing dependency
     add 892a18f  - Made the S7 driver detect the PcapReplayChannel better.
     add 0196abd  - Made the S7 driver detect the PcapReplayChannel better.
     add 8d499be  PLC4X-221 - Extend the Channels to support a "isPassive" flag
     add 49e926a  Update README.md
     add f6524db  Merge pull request #173 from ottlinger/patch-1
     add aa6e15e  - Changed the code generator to not automatically pass all parent types arguments to the sub-types - Made it possible to reference enum constant properties in mspec
     add 8376247  - Adjusted the existing mspec files to the changes in the code-generation (Explicitly Forwarded parent parser arguments to the children, where needed) - Worked a lot on the AMS/ADS mspec
     add a7b7b84  - Continued working on the AMS/ADS Driver - Added test-cases for the different types of requests - Started implementing the read-logic for single and multiple reads
     add f311e66  See issue reported by Stefano Bossi.
     add d4a715b  Merge pull request #175 from apache/bugfix/array-read-s7-single-item
     add 1125c09  Add extended register/file record read function 20.
     add 981aab7  Documentation Useer/Modbus Protocol
     add 6cb1c42  Feature/Extended Register Read
     add 2ba1274  Feature/Extended Register Read
     add 8f25408  Feature/Read Extended Registers
     add 02db626  Merge pull request #174 from hutcheb/feature/extended_register_read
     add 57f0cca  PLC4X-223 Fix exception on Pool usage for all drivers due to syntax change. Created PLC4X-224 as suggestion for an optimal solution.
     add df29978  Merge pull request #176 from apache/bugfix/PLC4X-223-fix-pool
     add 82313bc  Disabled failing Tests for PoolKeyFactoryTest.
     add 4e905aa  - Added a new exampe that posts PLC data to a web-service
     add b8c044b  - Made it possible to decode messages without length information
     add b87cd98  - Added support for validating API responses in the IT suite
     add 196b4a8  - Added support for enums without a value
     add eded6d8  - Continued working on the new AMS/ADS driver
     add 89c63a0  - Fixed a bug in the StaticHelper causing NPEs when counting item on null references.
     add a672bfa  - Added some code to the GeneratedDriverByteToMessageCodec that captures and logs errors during serialization of messages (Mostly happening during driver development)
     add 042aabc  - Made the testsuite runner also output the detected differences not only the actual xml
     add 4a1949f  - Some change to the modbus code I can't explain why it's there ...
     add 8bbb7be  - Continued working on the new AMS/ADS driver
     add 86b8ada  - Disabled the RawSocketChannelTest.doConnect test as the new Jenkins node is having issues with it.
     add 1c55287  - Fixed one of the tests in S7 module which stopped working after my latest refactorings.
     add 9ee5d54  - Added a tiny bit of documentation - Made the program send a different structure of JSON objects
     add f6a875d  Example for intersector of pipeline configuration.
     add 09df8b2  Added NOOP Layer dynamically.
     add be98695  Added NOOP Layer dynamically.
     add 838638e  Added working version.
     add f80dfac  - Continued working on the new AMS/ADS driver
     add d99cd07  - Implemented the write functionality in the ADS driver - Moved the ADS driver outside the sandbox
     add 2a13828  Fix ToAnsi method : bufferoverflow
     add d2d2e8f  - Updated my team picture
     add fdf253e  PLC4X-239 - Read DTL (Date and Time) - Fixed the processing of Date and Time values when reading
     add 00c5046  - Added documentation to the latest changes in the S7 driver
     add cda916d  - Fixed a tiny bug in the handling of string fields.
     add ced15b1  - Updated the hostname of the new PLC4X VM
     add ca7cae8  - Fixed a typo
     add a49eefc  - Allowed providing a bit-offset for STRING types - Added checks that result in exceptions if a bit-offset other than 0 is used for any type except BOOL
     add be90f0d  Added Pietrorimoldi to adopters. Thanks go to Stefano Bossi.
     add 9033ff8  Fixed alphabetical ordering of companies.
     add 9ba1e0d  PLC4X-243 Support for enum parameters in protocol test suites.
     add 0a76716  - Fixed issues with the Docker build
     add 09e5b99  - Increased the testsuite timeout to avoid randomly failing tests on the CI Server.
     add d83b8ff  - Made the transaction-id reset to 1 when reaching the 0xFFFF
     add 72cb97f  PLC4X-245 - [Modbus] Apache NiFi processor throws java.io.IOException after a while
     add a4f11e2  PLC4X-132 - [S7] Communication to S7 PLC dies in some situations
     add d709e0e  Updated the RELEASE_NOTES
     add c7e6e3c  PLC4X-246 - S7 driver hangs on read
     add 9aa5221  PLC4X-246 - S7 driver hangs on read
     add c4ef148  - Updated to the latest NiFi version - Added the EIP and ADS drivers to the NiFi NAR - Added documentation on the NiFi integration
     add cb981c8  Use Gradle with compiled library
     add f960160  Merge pull request #183 from foxpluto/develop
     add 777b6c2  PLC4X-244 Support for variable length padding fields.
     add fe8283a  - Renamed the needsPadding variable to "timesPadding" to sort of implicate it's no longer a boolean.
     add 1413ffd  Merge pull request #182 from apache/PLC4X-244
     add 22268c5  - Fixed a bug in the C code-generation
     add b93eb85  - Removed the description of serial transport on the Modbus page (for now) - Fixed some wrong documentation on the config arguments of the Modbus driver.
     add 2d2c176  Cast to PLCValue within data-io-template
     add 5d54f43  Modbus.spec Sample Change
     add 0dad0a0  Add Datatype to ModbusField classes
     add 3239c78  Add sample PLCValue classes based on IEC 61131 datatypes.
     add 18247a4  Tidied up the IEC type classes INT and UINT.
     add 06bc37a  Fixed support for PLCLists for INT and UINT datatypes
     add 2028dcf  Cleaned up, it now supports BOOL, INT, UINT and REAL values.
     add 7432353  Test cases for some Encoding and Modbus Field methods.
     add 926116b  Add support for DINT data types
     add 67081d9  Included cast in data-io-template for value in if statement. This is to avoid needlessly casting it.
     add 1c2e2b6  Added test cases for negative REAL numbers.
     add 147aaab  Added most of the other datatypes and support in Modbus
     add c9d6ffa  Modbus now supports all numeric and string and char datatypes
     add 4e9ec88  Feature/Modbus Datatype - IEC 61131
     add 4e4c155  Change the data-io template to use DataType Instead of List
     add 83957d3  Tidying up.
     add fdb2a29  - Implemented most of the connection part of the S7 driver - Implemented a skeleton for the Modbus driver
     add 6aa844c  - Continued implementing the S7 driver
     add 1adf1be  PLC4X-239 - Read DTL (Date and Time) - Fixed the processing of Date and Time values when reading
     add 1689d43  PLC4X-239 - Read DTL (Date and Time) - Fixed the processing of Date and Time values when reading
     add d015359  - Continued implementing the read and write support
     add c7a058e  - Implemented the S7 address parser code
     add a8e8445  Merge branch 'develop' of https://gitbox.apache.org/repos/asf/plc4x into feature/plc4c
     add 28877a8  - Split up the s7 driver code into multiple files to be better manageable.
     add 8d5ca5a  - Cleanup and documentation.
     add 90edbd9  - Updated the modbus driver to match the structure of the S7 driver.
     add df4d588  - Implemented the skeleton for the modbus driver. - Resolved some naming conflicts.
     add 29615ae  - Fixed issues with the Docker build
     add 65ef1a6  - Fixed issues with the Docker build
     add 487efce  - Made the KNX driver add "area" and "line" to the PlcStructs it produces. - Ensured the connection state timer is stopped if the connection dies.
     add 64057df  PLC4X-248 Permit more locations for MSpec comments.
     add bc60162  - Make the NiFi module forward the exceptions which actually are the cause of a ProcessingException.
     add f2828a5  - Updated the release documentation for the code-generation part ...
     add 2309ba0  - Fixed an issue when reading floats
     add 361bbb4  - Minor housekeeping in the parent pom.
     add 9927030  Merge branch 'develop' of https://gitbox.apache.org/repos/asf/plc4x into feature/plc4c
     add 7991d4a  - Working on the C S7 driver
     add 0fe5340  - Updated to the freshly released build-tools version.
     add 001f8e3  Merge branch 'develop' of https://gitbox.apache.org/repos/asf/plc4x into feature/plc4c
     add 8204eea  - Fixed a bug in the C code generation of complex type arrays - Finished implementing the S7 connection part
     add 7d85b71  - Got the S7 PLC identifiation working - Got the first read-requests working
     add 8d1afb3  - PLC4X-207 - No registered handler found for message TPKTPacket[], , using default decode method - Communication with S7 and Modbus device hangs
     add a536ba9  - Continued working on the S7 C driver
     add 162bee0  - PLC4X-207 - No registered handler found for message TPKTPacket[], , using default decode method - Communication with S7 and Modbus device hangs
     add f8c744f  - Added code to reset id counters to Ads and AbEth protocols
     add d105ce4  Merge branch 'develop' of https://gitbox.apache.org/repos/asf/plc4x into feature/plc4c
     add 24f9505  - Got a first working version of the dataIo generation working in C
     add d762953  - Added code to reset id counters to Ads and AbEth protocols
     add b422f0e  Modbus/ Updated Documentation
     add cf806d1  Update modbus.adoc
     add ce04d55  Update modbus.adoc
     add 4c48776  Update modbus.adoc
     add b26af7a  Update modbus.adoc
     add 659d6b8  Merge pull request #184 from hutcheb/Modbus/UpdateDocumentation
     add 4442cc3  Merge branch 'develop' of https://gitbox.apache.org/repos/asf/plc4x into feature/plc4c
     add 199c784  Merge branch 'develop' of https://github.com/apache/plc4x into Feature/ModbusDataType
     add 4c75216  Modbus Write Extended Register Support
     add 46941a9  Feature/Modbus Write Extended Registers
     add df0adc8  - Continued Ben's great work towards this. - Refactored the existing Java type based PlcValues to a more generic IEC 61131-3 based type system. - Got everything working, all tests to pass etc and did some testing of S7 and Modbus reading.
     add e6312e2  - Undid a mess I created ;-)
     add d108a8f  - A bit of housekeeping.
     add cb80703  - Made the driver catch exceptions and report them better.
     add 898cd93  - A bit of housekeeping.
     add 3ef9006  Modbus Data Type Documentation
     add 24279ce  Updated based on issues fixed with CHAR and WCHAR.
     add 2f4d770  Merge pull request #188 from hutcheb/modbus_documentation
     add 62547f6  - Added a getInt() method that just relays to getInteger() to avoid problems with generated code (Hack for now) - Fixed a bug in the KNX driver's write support (Protocol Logig as well as the FieldHandler.
     add c99cf7b  - Added a JsonIgnore to the new getInt() method to prevent errors in the Integration Tests
     add 1b9ee8d  - Updated my company
     add c897eed  - Kickoff
     add 07c1ab3  - Kickoff
     add dc60b42  - removed the toPlcValue method from the Message interface (It was actually only used in one place of the experimental BACnetIp driver)
     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 1f51a69  added Apache Con 2020 Videos
     add 040ed71  Update blogs-videos-and-slides.adoc
     add ea1d8bb  Refactor Field Handler Classes
     add 28ec2bf  Fixed issue in new PlcValues.of function. Is able to correctly pass standard data types now.
     add e6df50e  Draft for writeFloat in WriteBUffer
     add 6db621a  Add support for writing floating point.
     add 3ca264c  Add support for Big Interger write (untested)
     add b78b299  replace Modbus fromPLCValue function with staticSerialise functions. (Needs to be fixed to include changes from Data Type PR)
     add ccdf77d  Merge branch 'develop' into Bug/AddWriteBufferSupportFloatBigInt
     add 0b7d25c  Moved Modbus over to use the static Serializer. I'll do some more testing tomorrow, but seems to work with Big Ints and Floats
     add 28a322b  Fixed support for ULINT writing
     add 4fdf673  Refactored the BigInteger functions
     add 77267cd  Merge branch 'Bug/AddWriteBufferSupportFloatBigInt' into RefactorFieldHandler
     add 27df4a6  Add support for writing arrays to the hello world write example.
     add dd0aab6  Merge branch 'Feature/Hello-World-Write-Arrays' into RefactorFieldHandler
     add 45d96cf  Implemented staticSerialize write list functions
     add cbe9243  Merge branch 'Bug/AddWriteBufferSupportFloatBigInt' into RefactorFieldHandler
     add e1c7701  Overrode methods on PlcValue classes and fixed list serializer
     add 95dcf27  Add Support for writing lists of booleans
     add 90fc914  Modified non Modbus field handler classes to modbus format Wasn't able to test other protocols.
     add 8df8207  Reverted Commit 90fc914ec3e72a91af514742fb6dc85a34e99c9f
     add af00614  Removed Class Lookup in new PlcValues.of Function Add getPlcDataType to Plcfield Interface to allow generalizing the fieldHandler classes. Add getBooleanArray() to WORD type PlcValue classes. Add fix for staticSerializer when writing lists.
     add 5c95e44  Add checking for malformed write requests Modbus When writing arrays if the number of values didn't match the number of addresses a malformed packet was sent. Additional checks have been adedd. Error checking the response for writes has been added so that it reports error codes.
     add 58827f9  Merge pull request #192 from hutcheb/RefactorFieldHandler
     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 9af17c2  Add an OPC UA Server
     add f4f9bdf  Added requirement to set the security dir Otherwise it will create a security dir in the working dir.
     add 2682f46  Add OPC UA Server to plc4x poms Added a with-opcua-server option. Used the projects dependancy versions. Split out the Plc4x comms logic into it's one files so they aren't mixed up in the OPC UA server logic. Added an outline for the OPC UA Server README file
     add 5a24d98  Played around with specifying the data type. We should be able to use a base data type in opc ua as we do all the conversions already in Plcx. Handling of Arrays could be better by creating a node for each item in the array.
     add f65c2aa  Updated the handling of the passwords Passwords are entered on startup if they don't exist and then saved to the config file. They still need to be encrypted.
     add 9de9e7c  Update README.adoc
     add cc303a2  Merge branch 'Feature/opcua-server' of https://github.com/hutcheb/plc4x into Feature/opcua-server
     add 25df18f  Bumped the OPCUA driver version of Milo. Also went ot he latest stable build 5.1 instead of 5.2-snapshot for the opcua server.
     add b6aa1d0  Merge pull request #194 from hutcheb/Feature/opcua-server
     add 2788dc4  add logo record evolution
     add e3a87b7  Added Record Evolution
     add a3ae0a1  Delete logo_record_evolution_single_dark_bgfont.svg
     add 9d272f8  Add record evolution logo as png
     add 7d5eb73  changed record evolution logo to png
     add bf6ac83  Brief support for AMS/ADS discovery packets.
     add c84aa39  PLC4X-252 Support passing of PlcField in read/write builders.
     add 11d7c4e  Created password config file This will store all the hased passwords for each user instead of in the main config file.
     add 6ee584a  Hashed passwords and additional command line switches.
     add 63db2d0  Updated documentation
     add fcb2063  Fixed issue with password salt being recreated on every startup
     add e738424  Bumped Milo 0.52, Add getNumberOfElements, OPC UA Array handling
     add 79d0047  OPC UA Specific Changes PlcValue add trim when parsing strings. Some logger pom changes for sandbox projects, hopefully it will fix the intermitant build failures. OPC UA server array handling.
     add afeaa9d  Add groovy-test-junit5 dependancy to sandbox pom
     add 6918c72  Merge pull request #196 from hutcheb/opcaua-server
     add 30e82f8  - 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 fa7e54a  Record Evolution text adjustment
     add e69d7a9  Tested support for Modbus UDP
     add 5c52f38  Update README.md
     add 5bf9d85  Add Kafka Sink Compiles and runs as standalone connector, doesn't implement writing to PLC Have to also figure out the JSON format it is expecting.
     add 5354533  Fix Kafka Source CPU usage
     add 8cd3bfd  Ooops
     add b2255b7  Add Optional poll interval and buffer size.
     add c0e5c10  Merge pull request #200 from apache/bug/kafka-source-cpu
     add 96fc8ef  PLC4x-256 Fix hasMore logic so it is fine with last byte.
     add 9d8e394  PLC4X-258 Replace lambdas which static classes.
     add 2adf651  PLC4X-207 Make sure onTimeout is called for missed answers.
     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
     add 569c6ce  - Extended the KNX address-syntax to suppport value lists and ranges next to the fixed values and wildcards.
     add fe44231  - Updated the ADS mspec to use the IEC type names for DataIo - Added definitions for processing the temporal values in ADS DataIo - Fixed problems in the ADS driver causing issues (Replaced stream and lambda expression with for loop) - Added implementation for little-endian reading of BigInteger in ReadBuffer - Added implementation for readDouble in ReadBuffer - Fixed the implementation for readFloat in ReadBuffer - Added some null-checks in DefaultPlcReadResponse - Work [...]
     add 27192b7  [Broken State] Adding support for PlcValue datatypes for simulated devic
     add 7627f38  Fixed a couple of things
     add 3c79e6c  Merge branch 'feature/plc4go' into bug/simulated_device_data_types
     add ddc5776  [Broken] Fix after Merge Plc4go
     add 079259f  Add back support for existing Java class types.
     add 338ba32  Merge pull request #204 from apache/bug/simulated_device_data_types
     add ce53c89  - Implemented a general purpose manual testsuite class for testing all of the different datatypes. - Fixed multiple issues in the ADS driver -- The driver was missing a ByteLengthEstimator -- The parse methods for parsing of strings were not implemented -- Made the ADS spec ignore the 4 trailing bytes in case of a STRING and the 8 in case of a WSTRING - The ReadBuffer was shifting bytes in case of little-endianness, but was filling up in 2s complement changed that to fil [...]
     add fe0ad76  - Added the sources needed in the PLC to run the manual test to a comment at the top
     add 62706e0  - Fixed the reading of strings and Wstrings (Introduced a similar type of string fields, which have a length attribute just like in S7)
     add 46f8ce9  - Added a PCAPNG capture of the manual test being executed
     add 6a59b60  - Fixed the default size calculation in ADS - Updated the testdata with a true full run
     add 277e008  - Got most of the data-types working in the S7 protocol
     add d4823f2  - Fixed a the code that broke a test in the ADS module
     add ad9524a  - Started working on the support of reading data which is smaller than 16 bits in modbus - Added support for reading Modbus BitStrings from registers - Added tests for Modbus
     add 91d39b9  - Added support for 1-byte data-types in Modbus
     add e55951e  - Updated the build to only unpack xml files into the PLC4Go test-assets directory
     add c871dfc  - Added an empty go.mod file to the project root (Trying to get it working in go)
     add 11df07f  - Made the PLC4Go work after my changes in the protocol specs and PLC4J yesterday
     add 64f3d09  - Added helpers to allow registering of the drivers from outside the module
     add 23a2ad0  - Avoided re-setting driver and transport registrations
     add 5d80f0a  - Added support for the unit-identifier config option in the Modus driver
     add 02a58cb  - Made the KNX connection timeout, if the remote isn't responding
     add 11b542e  - Secured the access to the valueCache in KNX against simultaneous access
     add b663f6b  - Fixed a number of errors in the knx mspec - Fixed a problem in the data-io-template regarding enum values
     add 6581c3a  - Added a map of "attributes" to the PLC4Go Connection's Metadata (Which allows providing protocol specific additional information)
     add cf70c2f  - Ficed the test-definition to the latest changes in the KNX protocol.
     add 008ce61  - Added missing file
     add 797908c  - Fine tuned the code generation a bit to allow accessing some additional information
     add c73a889  Wrote first value from Kafka
     add 4dc7a5a  Removed request connectionstring, added expires field
     add 19ad493  Documentation and multiple tasks can be configured.
     add 9cff7b2  Merge branch 'develop' into feature/kafkasink
     add 746a3bc  Kafka connect
     add 359fcfc  Kafa Sink Connector
     add ee15f3b  Started to add the documentation to the website
     add 5fb8ce4  Started to refactor the source connector validation logic
     add 8625533  Refactored Source Validate functions.
     add b63951b  Refactored Sink Connector Validation and added test cases
     add 476ca51  Testing Simulated Driver
     add 53ef21b  Merge branch 'feature/plc4go' into feature/kafkasink
     add af1ed4c  Test
     add 510f747  Merge remote-tracking branch 'origin/feature/plc4go' into feature/kafkasink
     add 450e853  Fixed Simulated reading/writing of lists
     add 0e4aa6f  Kafka Documentation and cleaning up.
     add 1aa3c6f  Set each Plc field to optional
     add c21b1c2  Updated Fields Struct in Schema.
     add 233ea7a  Documentation update
     add 56150ec  Update after Chris's comments
     add c5c3223  Minor changes
     add 824c791  Found issue with the scraper continuing to run when connector deleted.
     add b29a8d7  Merge pull request #202 from apache/feature/kafkasink
     add 62cf3f3  - Clean up the dependency declarations in go
     add 5769a49  added librecon
     add f9a0b89  Initial asf yaml commit for review
     add ef7bf7a  Minor change to test .asf.yaml file in branch.
     add ea68f35  Update
     add 0a8bede  Merge pull request #205 from apache/update/github_metadata
     add f13077a  Update .asf.yaml
     add b2ebaa6  Update .asf.yaml
     add 5018ea5  Update .asf.yaml
     add 9caddc8  Test ASF file
     add 3e7e7ed  Merge pull request #206 from apache/test_asf_file
     add 17f1001  Merge branch 'develop' of https://gitbox.apache.org/repos/asf/plc4x into feature/plc4go
     add 13e3ce7  Update README.md
     add e8db2a4  - Added documentation on PLC4Go
     add 47a9297  - Included the PLC4Go documentation in the navigation menu
     add 051b5dd  - Disabled the build of plc4c - Added the build of plc4go
     add f09d930  - updated the RELEASE_NOTES
     add ba97f9a  - Some cleanup before starting the release
     add 303d8ad  - Fixed a broken link on our landing page - Added the GO document to the general getting-started document
     add 3197b82  - Big pom hygene session -- Updated dependency versions -- Updated plugin versions -- Removed usage of ${project.version} where it is not needed -- Managed dependencies -- Removed unneeded dependency-management -- Removed unneeded properties
     add c9e6fe6  - Finetuned the README documentation to lay emphasis on the requirement to use Java 11
     add 6e8bc52  Fix for connection pool, unable to reconnect after failed connection.
     add 98e5556  Merge pull request #207 from apache/bug/pool-connect
     add 873d1d1  - Work on the Docker build
     add 8b0524d  Starting to update OPCUA server
     add 97bf8c4  Add Backoff handling, improved error repoting.
     add e7e1217  Error handling update
     add ef40b9d  Disabled the remote insecure endpoint.
     add 714ca98  Moved OPC UA server out of sandbox.
     add 886f682  Added tests from opcua client
     add 8df10a7  Merge branch 'develop' into update/opcua-server
     add 3d17339  Merged Develop branch
     add 651a060  Fixed issues surrounding file permissions when creating new files.
     add f180db0  wtf - byte[].toString() returns different bytes each time I run it
     add 2492da9  removed provided scopes for milo in pom
     add 7554f71  Updated RELEASE NOTES
     add eb6b04f  Removed reference to opcua-server profile
     add e0e8637  Merge pull request #208 from apache/update/opcua-server
     add 16eda82  Added root pom refereneces for opcua-server
     add f662c94  - Added some findings to the release documentation
     add 191ba2c  - Manually attached the uber-jar
     add 8ab7023  Minor tweaks to get things working on Windows machines
     add 54adc56  - Implemented the DATE_AND_TIME datatype in S7
     add 6805c43  - Implemented the DATE_AND_TIME datatype in S7
     add 9c25eb3  - Improve the reading of S7 Date and Time handling
     add b61937f  - Fixed a problem not finishing the request if a decoding error occurs - Made the date parsing robust against 0 values - Hopefully fixed the read-array bug
     add ef8fef6  - Minor changes on the PLC4Go KNX driver and the ReadBuffers
     add 36161cf  - Made the KNX read support return PlcByteArray instances if no datatype was provided.
     add 8eaabf7  - Added apache header
     add 37a10a6  - Removed the addition to the NOTICE file as we are no longer shipping the the files of the site-generator with the source bunde.
     add d8abb4f  - Fine-tuned the build-tools release documentation
     add 15925f6  - Updated the release documentation for the build tools to auto-update itself
     add 49f7645  PLC4X-263 Mark jackson as optional import for OSGi environments.
     add 3cadde7  - Added infos on validation on Windows (removed the gsha512sum alternative as our hash format doesn't match the format that tool expects)
     add f565ff1  Merge branch 'develop' into fix-eip-bufferoverflow
     add 2e9c592  Merge pull request #178 from JohannaMillet/fix-eip-bufferoverflow
     add 55b7cd2  - Converted fix into valid Java code
     add 09834ed  Merge branch 'develop' into feature/example-pollLoop
     add c57aa73  Merge pull request #67 from gg587998/feature/example-pollLoop
     add 9a69146  - Fixed a "slightly" outdated plc4x version ;-)
     add e8832f4  - Adjusted the example to latest changes
     add 67bbb66  PLC4X-264 Implementation of CANopen protocol for Java.
     add f5c182e  Add one more test to ensure netty wrapper timeouts are legit.
     add 065ee04  Bump test request timeout to make Jenkins less concerned.
     add 883d854  Add myself to team page.
     add c458625  Fix wrong canopen label in slider element.
     add d64147e  List socketcan transport in site menu.
     add bd16b25  Add ConnectorIO as Apache PLC4X adopter.
     add a915a9f  Merge pull request #212 from ConnectorIO/develop
     add bacd62f  Update commercial-support.adoc
     add fd30802  - Aded the download of the KNX master-data to the build.
     add 36239b4  - Updated the package names and the imports
     add 9fd964e  - Made the build also generate a property file with the manufacturer data from the downloaded xml
     add 267189c  Eclipse IoT Meetup
     add 48b5bcb  Update blogs-videos-and-slides.adoc
     add 595eb3e  - Updated to the newly released version of build-tools
     add c5e690b  Add support for reading arrays for opcua driver, write support was already available.
     add 3da8806  [BROKEN] Last failed attempt at working around missing datatype. :(
     add 1e553dd  Add support for datatype in address for opc ua client.
     add 0d1a6f7  Add support for data type for scalar values.
     add 8903225  Updated OPC UA documentation based on feedback from Xiangdong.
     add d877225  minor fix
     add ca52872  Merge pull request #210 from apache/bug/driver-opcua-read-arrays
     add 61c9122  - Updated the code generation to allow using enum types in simple fields (Will remove the enum field later)
     add d855247  - Disabled the arg-lines in surefire and failsafe as they currently don't seem to be required
     add f7f7273  - Disabled the arg-lines in surefire and failsafe as they currently don't seem to be required
     add 3024bd7  - Major cleanup of the handling of CEMI Frames - Added support for Command messages (Without APCI)
     add 0e849e2  - Made the ETS5 parser a bit more save against NPEs
     add 8eaf61c  - Adjusted the Go code generation - Adjusted the Go KNX driver to recent changes
     add 0dae768  Bumped Bouncycastle to 1.67
     add 4588e97  - Fine tuning of the KNX mspec - Implemented a test for doing auto-discovery and scanning a KNX network
     add f086db5  - Removed something that wasn't meant to be committed
     add 06ac90a  - Added missing Apache headers
     add 12f1a15  Add enum for opc ua driver in mspec
     add 4bbb1ad  Update for Otto's comments
     add 951ae32  Documation update
     add ae0bfe3  Merge pull request #214 from apache/enums_for_opcua_driver
     add 04c90a8  - Cleaned up the ANTLR mspec grammar -- Updated any mspec that needed cleaning up after that - Fixed a glitch in the go code-generation not using pointer access for optional enum fields - Finished the generation of the dynamic mspec for knx-types which is generated from the data downloaded from the KNX foundation
     add 1842e2c  - Updated code after changes in code-generation and specs
     add 118f0e8  - Fixed some empty-string escaping issues in the java code generation
     add f4e894c  - Made the code-generation parse multiple mspec files for knx and fixed some issues with the generated mspec
     add 266e268  - Adjusted PLC4C to build on Windows
     add 45e5078  - Removed the knx master-data-generation
     add 7bd2c16  - Increased the type for the auto-generated enums to avoid overflow errors
     add cc4f0c7  - Implemented a first version of a KNX auto-discovery
     add 8fb992f  - Refactored the structure of the "internal" part of plc4go to match the structure of the API - Fixed an issue in the go code generation adding a pointer access where it caused problems compiling
     add 1df8f4d  - Implemented a Browse API implementation which scans the KNX bus for KNX devices - Fine-tuned the SPI
     add ad382db  - Fixed the problem with the KNX Ping operation.
     add 380b471  - Made the existing API safe against problems related to result-channels not being requested - Removed some debug output - Finished implementing the Browse functionality so it actually returns something instead of just printing it on the console
     add 5d9f8ac  - Added the "CanBrowse" to the connection metadata
     add 4a8c91a  - Implemented a first mostly working version of active property reading in KNX
     add 392c2b5  - Updated the XSLT to create more detailed Enums out of the KNX master data.
     add 628898e  - Explicitly added two factory methods to the enum generation in go "ByName" and "ByValue"
     add c0bbc1d  - Adjusted the Java KNX client to the latest changes in code-generation.
     add 2d00ab4  - Commented ut the last line in that adapter.
     add 802c088  - Commented ut the last line in that adapter.
     add b14d524  - Fixed some commented out code.
     add a5321b9  - Implemented the logic to decode properties.
     add 3ea8e6c  PLC4X-270 Ads driver does not accept double-digit array indexes
     add da4eeb4  Add future to DisconnectedEvent
     add f729ca6  Merge branch 'develop' into bug/close_connection
     add ba961c5  Tidied up disconnect logic
     add 8bf6c45  Added some logging
     add f19ca3f  Merge pull request #221 from apache/bug/close_connection
     add 747868a  Add confluent package to deployment so it appears in Nexus.
     add dc88603  Merge pull request #222 from apache/add_confluent_package_nexus
     add 56bae6f  - Added the missing drivers
     add da43590  - Try to fix the deployment issue.
     add eead488  Updated Notice and License files.
     add d1231c5  Merge pull request #223 from apache/update_notice_file
     add 2733964  - Added the extensions to the LICENSE and NOTICE files which maven will generate in the Kafka connector archives
     add d66c60d  - Minor updates (Generally the order of imports so a reformat doesn't change the files too much)
     add 3ce506f  - Minor updates (Generally the order of imports so a reformat doesn't change the files too much)
     add 6d8f73f  PLC4X-272 When splitting up large requests, too big sub-requests are generated (S7) - When splitting up into more than one request, the new request was correctly initialized with the empty-request size, however the current element wasn't added. This should now be fixed
     add aa172ac  Add Encryption handler for opcua server
     add cb1f190  Re-Wrote OPC UA server -> Milo Interface
     add 184fafb  Finialized OPCUA server and updated Kafka connector
     add cca4a9f  Updated based on Ottos and Matthias' comments.
     add 3101ec1  Merge pull request #225 from apache/add_encryption_handler_opcua
     add e1560ad  - Made the Reader detect the case of a property not existing or not having the permission to read.
     add b5ed562  - Fixed some package errors
     add 7919d5d  - Adjusted the "TestKnxNetIpPlc4goDiscovery" test to work with the updated Browse functionality.
     add c87455a  - Made the Udp and Tcp transport not log an error in GetNumReadableBytes
     add 0baecae  - Removed an unneeded log output
     add 471873a  - Made the KNX driver return an error if the device we try to connect to doesn't support "tunneling"
     add 320cd6d  - Added more documentation on KNX operations
     add 191ecd2  - Added stuff for decoding the KNX DeviceDescriptors
     add d32e91a  - Fixed a wrong package name
     add ad6cc1d  - Replaced the manually created KnxDatatypes and DataIo with a fully generated version
     add 5e874e5  - Updated generated Go code
     add d9b9ddd  - Finished migrating the Go KNX client to the new model.
     add 1fe637e  - Some version updates of dependencies prior to cutting the release branch
     add 2f999a8  - Updated the list of fixed bugs in the RELEASE_NOTES
     add 86000d7  - Added the new programming languages to doe doap file
     add 7a3fe61  - Ensured all integrations and examples have all of our drivers available - Removed the "with-proxies" profile and everything that relies on this - Updated the prerequisiteCheck.groovy script to no longer check thrift-related things - Updated the release and release-validation sites
     add 066c2cc  - Made sure the generated code for accessing properties of a variable are start upercase
     add c2da3d2  removed http port
     add 14d5b30  [maven-release-plugin] prepare branch @{releaseLabel}
     add c55955a  - Updated the release documentation a bit more
     add 5c0c71e  [maven-release-plugin] prepare branch @{releaseLabel}
     add 3bcf345  - Cleaned up after preparing the release-branch
     add 7785413  - Last preparations before building the release-candidate
     add c21615a  [maven-release-plugin] prepare release v0.8.0
     add c2eef72  [maven-release-plugin] prepare for next development iteration
     add 5e856b2  - Cleanup after preparing the release
     add 72ea285  - Cleanup after preparing the release
     add e2d340e  - Cleanup after preparing the release
     add a6f758d  - Reset the version to 0.8.0-SNAPSHOT
     add 4f72d49  - Updated the README to make "mvn" the default used in the documentation. - Removed the part about building with Docker
     add 2ffc5d2  - Made the versions safe for release
     add ebd0d6c  [maven-release-plugin] prepare release v0.8.0
     new c3427a2  Merge tag 'v0.8.0' into release

The 1 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:
 .asf.yaml                                          |    56 +
 .gitignore                                         |     5 +
 .gitlab-ci.yml                                     |    48 -
 Dockerfile                                         |    10 +-
 Jenkinsfile                                        |    16 +-
 LICENSE                                            |     1 +
 NOTICE                                             |     7 +-
 README.md                                          |    50 +-
 RELEASE_NOTES                                      |   106 +-
 build-utils/language-base-freemarker/pom.xml       |     6 +-
 .../BaseFreemarkerLanguageTemplateHelper.java      |   865 ++
 .../protocol/freemarker/FreemarkerException.java   |    34 +
 .../freemarker/FreemarkerLanguageOutput.java       |    10 +-
 build-utils/language-c/pom.xml                     |     4 +-
 .../apache/plc4x/language/c/CLanguageOutput.java   |    12 +-
 .../plc4x/language/c/CLanguageTemplateHelper.java  |   972 +-
 .../resources/templates/c/data-io-template-c.ftlh  |   246 +
 .../resources/templates/c/data-io-template-h.ftlh  |    88 +
 .../resources/templates/c/enum-template-c.ftlh     |   105 +
 .../resources/templates/c/enum-template-h.ftlh     |    92 +
 .../resources/templates/c/pojo-template-c.ftlh     |   687 +-
 .../resources/templates/c/pojo-template-h.ftlh     |   135 +-
 build-utils/language-go/pom.xml                    |    58 +
 .../apache/plc4x/language/go/GoLanguageOutput.java |    72 +
 .../language/go/GoLanguageTemplateHelper.java      |  1082 ++
 .../apache/plc4x/language/go/utils/FieldUtils.java |   103 +
 ...x.plugins.codegenerator.language.LanguageOutput |    19 +
 .../resources/templates/go/data-io-template.ftlh   |   222 +
 .../main/resources/templates/go/enum-template.ftlh |   159 +
 .../resources/templates/go/model-template.ftlh     |  1048 ++
 .../templates/go/parser-factory-template.ftlh      |    96 +
 .../templates/go/xml-parser-factory-template.ftlh  |    89 +
 build-utils/language-java/pom.xml                  |     4 +-
 .../plc4x/language/java/JavaLanguageOutput.java    |     4 +-
 .../language/java/JavaLanguageTemplateHelper.java  |   301 +-
 .../resources/templates/java/data-io-template.ftlh |   279 +-
 .../templates/java/enum-package-info-template.ftlh |     8 +
 .../resources/templates/java/enum-template.ftlh    |    77 +-
 .../main/resources/templates/java/io-template.ftlh |   448 +-
 .../resources/templates/java/pojo-template.ftlh    |   256 +-
 build-utils/pom.xml                                |     3 +-
 build-utils/protocol-base-mspec/pom.xml            |     2 +-
 .../plugins/codegenerator/language/mspec/MSpec.g4  |   192 +-
 .../model/definitions/DefaultTypeDefinition.java   |     6 +
 .../mspec/model/fields/DefaultSwitchField.java     |    10 +-
 .../references/DefaultComplexTypeReference.java    |    37 -
 .../references/DefaultFloatTypeReference.java      |    45 -
 .../references/DefaultIntegerTypeReference.java    |    30 -
 .../references/DefaultSimpleTypeReference.java     |    44 -
 .../DefaultSimpleVarLengthTypeReference.java       |    30 -
 .../references/DefaultStringTypeReference.java     |    38 -
 .../references/DefaultTemporalTypeReference.java   |    30 -
 .../mspec/parser/MessageFormatListener.java        |   119 +-
 build-utils/protocol-test/pom.xml                  |     6 +-
 go.mod                                             |    21 +
 media/logos/300ppi/Toddy colorize@300x.png         |   Bin 0 -> 560986 bytes
 media/logos/PDF/Toddy colorize.pdf                 |   Bin 0 -> 41014 bytes
 .../logos/SVG/logo PLC4X black line only toddy.svg |   138 +
 media/powered-by-plc4x.png                         |   Bin 0 -> 99195 bytes
 media/toddy-loves-apache.png                       |   Bin 0 -> 265483 bytes
 .../knxnetip/ParserSerializerTestsuite.xml         |   546 +
 .../testing/protocols/modbus/DriverTestsuite.xml   |   382 +
 .../protocols/modbus/ParserSerializerTestsuite.xml |   181 +
 .../testing/protocols/s7/DriverTestsuite.xml       |   389 +
 .../protocols/s7/ParserSerializerTestsuite.xml     |   501 +
 plc4go/cmd/main/drivers/bacnetip_test.go           |    43 +
 plc4go/cmd/main/drivers/knxnetip_test.go           |   320 +
 plc4go/cmd/main/drivers/modbus_test.go             |   213 +
 plc4go/cmd/main/drivers/s7_test.go                 |    42 +
 .../cmd/main/drivers/tests/knx_discovery_test.go   |   619 +
 .../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                                      |    28 +
 plc4go/go.sum                                      |    23 +
 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        |   292 +
 .../plc4go/bacnetip/readwrite/model/APDUAbort.go   |   246 +
 .../bacnetip/readwrite/model/APDUComplexAck.go     |   347 +
 .../readwrite/model/APDUConfirmedRequest.go        |   431 +
 .../plc4go/bacnetip/readwrite/model/APDUError.go   |   217 +
 .../plc4go/bacnetip/readwrite/model/APDUReject.go  |   218 +
 .../bacnetip/readwrite/model/APDUSegmentAck.go     |   302 +
 .../bacnetip/readwrite/model/APDUSimpleAck.go      |   218 +
 .../readwrite/model/APDUUnconfirmedRequest.go      |   189 +
 .../bacnetip/readwrite/model/ApplicationTag.go     |   172 +
 .../bacnetip/readwrite/model/BACnetAddress.go      |   183 +
 .../readwrite/model/BACnetConfirmedServiceACK.go   |   376 +
 .../BACnetConfirmedServiceACKAtomicReadFile.go     |   135 +
 .../BACnetConfirmedServiceACKAtomicWriteFile.go    |   135 +
 ...tConfirmedServiceACKConfirmedPrivateTransfer.go |   135 +
 .../model/BACnetConfirmedServiceACKCreateObject.go |   135 +
 .../BACnetConfirmedServiceACKGetAlarmSummary.go    |   135 +
 ...ACnetConfirmedServiceACKGetEnrollmentSummary.go |   135 +
 ...BACnetConfirmedServiceACKGetEventInformation.go |   135 +
 .../model/BACnetConfirmedServiceACKReadProperty.go |   135 +
 ...ACnetConfirmedServiceACKReadPropertyMultiple.go |   135 +
 .../model/BACnetConfirmedServiceACKReadRange.go    |   135 +
 ...BACnetConfirmedServiceACKRemovedAuthenticate.go |   135 +
 ...rmedServiceACKRemovedReadPropertyConditional.go |   135 +
 .../model/BACnetConfirmedServiceACKVTData.go       |   135 +
 .../model/BACnetConfirmedServiceACKVTOpen.go       |   135 +
 .../model/BACnetConfirmedServiceRequest.go         |   614 +
 ...ACnetConfirmedServiceRequestAcknowledgeAlarm.go |   135 +
 .../BACnetConfirmedServiceRequestAddListElement.go |   135 +
 .../BACnetConfirmedServiceRequestAtomicReadFile.go |   135 +
 ...BACnetConfirmedServiceRequestAtomicWriteFile.go |   135 +
 ...firmedServiceRequestConfirmedCOVNotification.go |   515 +
 ...rviceRequestConfirmedCOVNotificationMultiple.go |   135 +
 ...rmedServiceRequestConfirmedEventNotification.go |   135 +
 ...firmedServiceRequestConfirmedPrivateTransfer.go |   135 +
 ...tConfirmedServiceRequestConfirmedTextMessage.go |   135 +
 .../BACnetConfirmedServiceRequestCreateObject.go   |   135 +
 .../BACnetConfirmedServiceRequestDeleteObject.go   |   135 +
 ...rmedServiceRequestDeviceCommunicationControl.go |   135 +
 ...tConfirmedServiceRequestGetEnrollmentSummary.go |   135 +
 ...etConfirmedServiceRequestGetEventInformation.go |   135 +
 ...etConfirmedServiceRequestLifeSafetyOperation.go |   135 +
 .../BACnetConfirmedServiceRequestReadProperty.go   |   307 +
 ...tConfirmedServiceRequestReadPropertyMultiple.go |   135 +
 .../BACnetConfirmedServiceRequestReadRange.go      |   135 +
 ...netConfirmedServiceRequestReinitializeDevice.go |   135 +
 ...CnetConfirmedServiceRequestRemoveListElement.go |   135 +
 ...etConfirmedServiceRequestRemovedAuthenticate.go |   135 +
 ...ServiceRequestRemovedReadPropertyConditional.go |   135 +
 ...CnetConfirmedServiceRequestRemovedRequestKey.go |   135 +
 .../BACnetConfirmedServiceRequestSubscribeCOV.go   |   420 +
 ...tConfirmedServiceRequestSubscribeCOVProperty.go |   135 +
 ...edServiceRequestSubscribeCOVPropertyMultiple.go |   135 +
 .../model/BACnetConfirmedServiceRequestVTClose.go  |   135 +
 .../model/BACnetConfirmedServiceRequestVTData.go   |   135 +
 .../model/BACnetConfirmedServiceRequestVTOpen.go   |   135 +
 .../BACnetConfirmedServiceRequestWriteProperty.go  |   412 +
 ...ConfirmedServiceRequestWritePropertyMultiple.go |   135 +
 .../plc4go/bacnetip/readwrite/model/BACnetError.go |   376 +
 .../readwrite/model/BACnetErrorAtomicReadFile.go   |   135 +
 .../readwrite/model/BACnetErrorAtomicWriteFile.go  |   135 +
 .../model/BACnetErrorConfirmedPrivateTransfer.go   |   135 +
 .../readwrite/model/BACnetErrorCreateObject.go     |   135 +
 .../readwrite/model/BACnetErrorGetAlarmSummary.go  |   135 +
 .../model/BACnetErrorGetEnrollmentSummary.go       |   135 +
 .../model/BACnetErrorGetEventInformation.go        |   135 +
 .../readwrite/model/BACnetErrorReadProperty.go     |   324 +
 .../model/BACnetErrorReadPropertyMultiple.go       |   135 +
 .../readwrite/model/BACnetErrorReadRange.go        |   135 +
 .../model/BACnetErrorRemovedAuthenticate.go        |   135 +
 .../BACnetErrorRemovedReadPropertyConditional.go   |   135 +
 .../bacnetip/readwrite/model/BACnetErrorVTData.go  |   135 +
 .../bacnetip/readwrite/model/BACnetErrorVTOpen.go  |   135 +
 .../bacnetip/readwrite/model/BACnetNetworkType.go  |   158 +
 .../bacnetip/readwrite/model/BACnetNodeType.go     |   235 +
 .../bacnetip/readwrite/model/BACnetNotifyType.go   |   102 +
 .../bacnetip/readwrite/model/BACnetObjectType.go   |   494 +
 .../bacnetip/readwrite/model/BACnetServiceAck.go   |   376 +
 .../model/BACnetServiceAckAtomicReadFile.go        |   135 +
 .../model/BACnetServiceAckAtomicWriteFile.go       |   135 +
 .../BACnetServiceAckConfirmedPrivateTransfer.go    |   135 +
 .../model/BACnetServiceAckCreateObject.go          |   135 +
 .../model/BACnetServiceAckGetAlarmSummary.go       |   135 +
 .../model/BACnetServiceAckGetEnrollmentSummary.go  |   135 +
 .../model/BACnetServiceAckGetEventInformation.go   |   135 +
 .../model/BACnetServiceAckReadProperty.go          |   372 +
 .../model/BACnetServiceAckReadPropertyMultiple.go  |   135 +
 .../readwrite/model/BACnetServiceAckReadRange.go   |   135 +
 .../model/BACnetServiceAckRemovedAuthenticate.go   |   135 +
 ...CnetServiceAckRemovedReadPropertyConditional.go |   135 +
 .../readwrite/model/BACnetServiceAckVTData.go      |   135 +
 .../readwrite/model/BACnetServiceAckVTOpen.go      |   135 +
 .../plc4go/bacnetip/readwrite/model/BACnetTag.go   |   498 +
 .../model/BACnetTagApplicationBitString.go         |   216 +
 .../readwrite/model/BACnetTagApplicationBoolean.go |   139 +
 .../model/BACnetTagApplicationCharacterString.go   |   139 +
 .../readwrite/model/BACnetTagApplicationDate.go    |   139 +
 .../readwrite/model/BACnetTagApplicationDouble.go  |   168 +
 .../model/BACnetTagApplicationEnumerated.go        |   188 +
 .../readwrite/model/BACnetTagApplicationNull.go    |   139 +
 .../model/BACnetTagApplicationObjectIdentifier.go  |   139 +
 .../model/BACnetTagApplicationOctetString.go       |   139 +
 .../readwrite/model/BACnetTagApplicationReal.go    |   168 +
 .../model/BACnetTagApplicationSignedInteger.go     |   188 +
 .../readwrite/model/BACnetTagApplicationTime.go    |   139 +
 .../model/BACnetTagApplicationUnsignedInteger.go   |   188 +
 .../bacnetip/readwrite/model/BACnetTagContext.go   |   188 +
 .../readwrite/model/BACnetTagWithContent.go        |   373 +
 .../model/BACnetUnconfirmedServiceRequest.go       |   348 +
 .../model/BACnetUnconfirmedServiceRequestIAm.go    |   401 +
 .../model/BACnetUnconfirmedServiceRequestIHave.go  |   135 +
 ...UnconfirmedServiceRequestTimeSynchronization.go |   135 +
 ...onfirmedServiceRequestUTCTimeSynchronization.go |   135 +
 ...rmedServiceRequestUnconfirmedCOVNotification.go |   135 +
 ...iceRequestUnconfirmedCOVNotificationMultiple.go |   135 +
 ...edServiceRequestUnconfirmedEventNotification.go |   135 +
 ...rmedServiceRequestUnconfirmedPrivateTransfer.go |   319 +
 ...onfirmedServiceRequestUnconfirmedTextMessage.go |   135 +
 .../model/BACnetUnconfirmedServiceRequestWhoHas.go |   344 +
 .../model/BACnetUnconfirmedServiceRequestWhoIs.go  |   324 +
 .../BACnetUnconfirmedServiceRequestWriteGroup.go   |   135 +
 .../plc4go/bacnetip/readwrite/model/BVLC.go        |   400 +
 .../model/BVLCDeleteForeignDeviceTableEntry.go     |   135 +
 .../model/BVLCDistributeBroadcastToNetwork.go      |   135 +
 .../bacnetip/readwrite/model/BVLCForwardedNPDU.go  |   235 +
 .../readwrite/model/BVLCOriginalBroadcastNPDU.go   |   163 +
 .../readwrite/model/BVLCOriginalUnicastNPDU.go     |   163 +
 .../model/BVLCReadBroadcastDistributionTable.go    |   135 +
 .../model/BVLCReadBroadcastDistributionTableAck.go |   135 +
 .../readwrite/model/BVLCReadForeignDeviceTable.go  |   135 +
 .../model/BVLCReadForeignDeviceTableAck.go         |   135 +
 .../readwrite/model/BVLCRegisterForeignDevice.go   |   135 +
 .../plc4go/bacnetip/readwrite/model/BVLCResult.go  |   135 +
 .../bacnetip/readwrite/model/BVLCSecureBVLL.go     |   135 +
 .../model/BVLCWideBroadcastDistributionTable.go    |   135 +
 .../plc4go/bacnetip/readwrite/model/NLM.go         |   243 +
 .../readwrite/model/NLMIAmRouterToNetwork.go       |   183 +
 .../readwrite/model/NLMWhoIsRouterToNetwork.go     |   183 +
 .../plc4go/bacnetip/readwrite/model/NPDU.go        |   651 +
 .../plc4go/knxnetip/KnxNetIpActiveReader.go        |    67 +
 plc4go/internal/plc4go/knxnetip/KnxNetIpBrowser.go |   241 +
 .../internal/plc4go/knxnetip/KnxNetIpConnection.go |   648 +
 .../internal/plc4go/knxnetip/KnxNetIpDiscoverer.go |   148 +
 plc4go/internal/plc4go/knxnetip/KnxNetIpDriver.go  |    88 +
 plc4go/internal/plc4go/knxnetip/KnxNetIpField.go   |   370 +
 .../plc4go/knxnetip/KnxNetIpFieldHandler.go        |    94 +
 .../plc4go/knxnetip/KnxNetIpMessageCodec.go        |   213 +
 plc4go/internal/plc4go/knxnetip/KnxNetIpReader.go  |   523 +
 .../internal/plc4go/knxnetip/KnxNetIpSubscriber.go |   167 +
 .../plc4go/knxnetip/KnxNetIpSubscriptionEvent.go   |    65 +
 .../plc4go/knxnetip/KnxNetIpValueHandler.go        |    37 +
 plc4go/internal/plc4go/knxnetip/KnxNetIpWriter.go  |    72 +
 plc4go/internal/plc4go/knxnetip/Utils.go           |    83 +
 .../plc4go/knxnetip/readwrite/ParserHelper.go      |   109 +
 .../knxnetip/readwrite/PropertyDataTypeIO.go       |   156 +
 .../plc4go/knxnetip/readwrite/XmlParserHelper.go   |   238 +
 .../plc4go/knxnetip/readwrite/model/Apdu.go        |   286 +
 .../plc4go/knxnetip/readwrite/model/ApduControl.go |   236 +
 .../knxnetip/readwrite/model/ApduControlAck.go     |   135 +
 .../knxnetip/readwrite/model/ApduControlConnect.go |   135 +
 .../readwrite/model/ApduControlContainer.go        |   166 +
 .../readwrite/model/ApduControlDisconnect.go       |   135 +
 .../knxnetip/readwrite/model/ApduControlNack.go    |   135 +
 .../plc4go/knxnetip/readwrite/model/ApduData.go    |   404 +
 .../knxnetip/readwrite/model/ApduDataAdcRead.go    |   135 +
 .../readwrite/model/ApduDataAdcResponse.go         |   135 +
 .../knxnetip/readwrite/model/ApduDataContainer.go  |   166 +
 .../model/ApduDataDeviceDescriptorRead.go          |   164 +
 .../model/ApduDataDeviceDescriptorResponse.go      |   210 +
 .../plc4go/knxnetip/readwrite/model/ApduDataExt.go |   754 ++
 .../readwrite/model/ApduDataExtAuthorizeRequest.go |   135 +
 .../model/ApduDataExtAuthorizeResponse.go          |   135 +
 .../model/ApduDataExtDomainAddressRead.go          |   135 +
 .../model/ApduDataExtDomainAddressResponse.go      |   135 +
 .../model/ApduDataExtDomainAddressSelectiveRead.go |   135 +
 .../ApduDataExtDomainAddressSerialNumberRead.go    |   135 +
 ...ApduDataExtDomainAddressSerialNumberResponse.go |   135 +
 .../ApduDataExtDomainAddressSerialNumberWrite.go   |   135 +
 .../model/ApduDataExtDomainAddressWrite.go         |   135 +
 .../model/ApduDataExtFileStreamInfoReport.go       |   135 +
 .../ApduDataExtGroupPropertyValueInfoReport.go     |   135 +
 .../model/ApduDataExtGroupPropertyValueRead.go     |   135 +
 .../model/ApduDataExtGroupPropertyValueResponse.go |   135 +
 .../model/ApduDataExtGroupPropertyValueWrite.go    |   135 +
 ...ApduDataExtIndividualAddressSerialNumberRead.go |   135 +
 ...DataExtIndividualAddressSerialNumberResponse.go |   135 +
 ...pduDataExtIndividualAddressSerialNumberWrite.go |   135 +
 .../readwrite/model/ApduDataExtKeyResponse.go      |   135 +
 .../readwrite/model/ApduDataExtKeyWrite.go         |   135 +
 .../readwrite/model/ApduDataExtLinkRead.go         |   135 +
 .../readwrite/model/ApduDataExtLinkResponse.go     |   135 +
 .../readwrite/model/ApduDataExtLinkWrite.go        |   135 +
 .../readwrite/model/ApduDataExtMemoryBitWrite.go   |   135 +
 .../model/ApduDataExtNetworkParameterRead.go       |   135 +
 .../model/ApduDataExtNetworkParameterResponse.go   |   135 +
 .../model/ApduDataExtNetworkParameterWrite.go      |   135 +
 .../model/ApduDataExtOpenRoutingTableRequest.go    |   135 +
 .../model/ApduDataExtPropertyDescriptionRead.go    |   135 +
 .../ApduDataExtPropertyDescriptionResponse.go      |   135 +
 .../model/ApduDataExtPropertyValueRead.go          |   248 +
 .../model/ApduDataExtPropertyValueResponse.go      |   292 +
 .../model/ApduDataExtPropertyValueWrite.go         |   135 +
 .../model/ApduDataExtReadRouterMemoryRequest.go    |   135 +
 .../model/ApduDataExtReadRouterMemoryResponse.go   |   135 +
 .../model/ApduDataExtReadRouterStatusRequest.go    |   135 +
 .../model/ApduDataExtReadRouterStatusResponse.go   |   135 +
 .../model/ApduDataExtReadRoutingTableRequest.go    |   135 +
 .../model/ApduDataExtReadRoutingTableResponse.go   |   135 +
 .../model/ApduDataExtWriteRouterMemoryRequest.go   |   135 +
 .../model/ApduDataExtWriteRouterStatusRequest.go   |   135 +
 .../model/ApduDataExtWriteRoutingTableRequest.go   |   135 +
 .../readwrite/model/ApduDataGroupValueRead.go      |   135 +
 .../readwrite/model/ApduDataGroupValueResponse.go  |   135 +
 .../readwrite/model/ApduDataGroupValueWrite.go     |   210 +
 .../model/ApduDataIndividualAddressRead.go         |   135 +
 .../model/ApduDataIndividualAddressResponse.go     |   135 +
 .../model/ApduDataIndividualAddressWrite.go        |   135 +
 .../knxnetip/readwrite/model/ApduDataMemoryRead.go |   135 +
 .../readwrite/model/ApduDataMemoryResponse.go      |   135 +
 .../readwrite/model/ApduDataMemoryWrite.go         |   135 +
 .../knxnetip/readwrite/model/ApduDataOther.go      |   163 +
 .../knxnetip/readwrite/model/ApduDataRestart.go    |   135 +
 .../readwrite/model/ApduDataUserMessage.go         |   135 +
 .../plc4go/knxnetip/readwrite/model/CEMI.go        |   502 +
 .../readwrite/model/CEMIAdditionalInformation.go   |   208 +
 .../CEMIAdditionalInformationBusmonitorInfo.go     |   326 +
 .../CEMIAdditionalInformationRelativeTimestamp.go  |   185 +
 .../knxnetip/readwrite/model/CEMIPriority.go       |   109 +
 .../knxnetip/readwrite/model/ChannelInformation.go |   167 +
 .../knxnetip/readwrite/model/ConnectionRequest.go  |   217 +
 .../model/ConnectionRequestInformation.go          |   224 +
 ...ConnectionRequestInformationDeviceManagement.go |   135 +
 ...ConnectionRequestInformationTunnelConnection.go |   189 +
 .../knxnetip/readwrite/model/ConnectionResponse.go |   265 +
 .../readwrite/model/ConnectionResponseDataBlock.go |   224 +
 .../ConnectionResponseDataBlockDeviceManagement.go |   135 +
 .../ConnectionResponseDataBlockTunnelConnection.go |   163 +
 .../readwrite/model/ConnectionStateRequest.go      |   217 +
 .../readwrite/model/ConnectionStateResponse.go     |   191 +
 .../knxnetip/readwrite/model/DIBDeviceInfo.go      |   394 +
 .../knxnetip/readwrite/model/DIBSuppSvcFamilies.go |   203 +
 .../knxnetip/readwrite/model/DescriptionRequest.go |   163 +
 .../readwrite/model/DescriptionResponse.go         |   190 +
 .../readwrite/model/DeviceConfigurationAck.go      |   163 +
 .../model/DeviceConfigurationAckDataBlock.go       |   208 +
 .../readwrite/model/DeviceConfigurationRequest.go  |   190 +
 .../model/DeviceConfigurationRequestDataBlock.go   |   209 +
 .../readwrite/model/DeviceDescriptorMediumType.go  |   123 +
 .../readwrite/model/DeviceDescriptorType0.go       |   476 +
 .../readwrite/model/DeviceDescriptorType2.go       |   371 +
 .../knxnetip/readwrite/model/DeviceStatus.go       |   167 +
 .../knxnetip/readwrite/model/DisconnectRequest.go  |   217 +
 .../knxnetip/readwrite/model/DisconnectResponse.go |   191 +
 .../knxnetip/readwrite/model/FirmwareType.go       |   220 +
 .../readwrite/model/HPAIControlEndpoint.go         |   207 +
 .../knxnetip/readwrite/model/HPAIDataEndpoint.go   |   207 +
 .../readwrite/model/HPAIDiscoveryEndpoint.go       |   207 +
 .../knxnetip/readwrite/model/HostProtocolCode.go   |    95 +
 .../plc4go/knxnetip/readwrite/model/IPAddress.go   |   159 +
 .../plc4go/knxnetip/readwrite/model/KnxAddress.go  |   193 +
 .../knxnetip/readwrite/model/KnxDatapoint.go       | 12234 +++++++++++++++++++
 .../readwrite/model/KnxDatapointMainType.go        |   988 ++
 .../knxnetip/readwrite/model/KnxDatapointType.go   |  5260 ++++++++
 .../knxnetip/readwrite/model/KnxGroupAddress.go    |   206 +
 .../readwrite/model/KnxGroupAddress2Level.go       |   192 +
 .../readwrite/model/KnxGroupAddress3Level.go       |   220 +
 .../readwrite/model/KnxGroupAddressFreeLevel.go    |   164 +
 .../readwrite/model/KnxInterfaceObjectProperty.go  |  4221 +++++++
 .../readwrite/model/KnxInterfaceObjectType.go      |   424 +
 .../plc4go/knxnetip/readwrite/model/KnxLayer.go    |   102 +
 .../knxnetip/readwrite/model/KnxManufacturer.go    |  7093 +++++++++++
 .../plc4go/knxnetip/readwrite/model/KnxMedium.go   |   123 +
 .../knxnetip/readwrite/model/KnxNetIpCore.go       |   164 +
 .../readwrite/model/KnxNetIpDeviceManagement.go    |   164 +
 .../knxnetip/readwrite/model/KnxNetIpMessage.go    |   458 +
 .../knxnetip/readwrite/model/KnxNetIpTunneling.go  |   164 +
 .../knxnetip/readwrite/model/KnxNetObjectServer.go |   164 +
 .../model/KnxNetRemoteConfigurationAndDiagnosis.go |   164 +
 .../readwrite/model/KnxNetRemoteLogging.go         |   164 +
 .../readwrite/model/KnxPropertyDataType.go         |   908 ++
 .../plc4go/knxnetip/readwrite/model/LBusmonInd.go  |   278 +
 .../plc4go/knxnetip/readwrite/model/LDataCon.go    |   241 +
 .../plc4go/knxnetip/readwrite/model/LDataFrame.go  |   371 +
 .../knxnetip/readwrite/model/LDataFrameData.go     |   301 +
 .../knxnetip/readwrite/model/LDataFrameDataExt.go  |   329 +
 .../readwrite/model/LDataFramePollingData.go       |   272 +
 .../plc4go/knxnetip/readwrite/model/LDataInd.go    |   241 +
 .../plc4go/knxnetip/readwrite/model/LDataReq.go    |   241 +
 .../knxnetip/readwrite/model/LPollDataCon.go       |   135 +
 .../knxnetip/readwrite/model/LPollDataReq.go       |   135 +
 .../plc4go/knxnetip/readwrite/model/LRawCon.go     |   135 +
 .../plc4go/knxnetip/readwrite/model/LRawInd.go     |   135 +
 .../plc4go/knxnetip/readwrite/model/LRawReq.go     |   135 +
 .../plc4go/knxnetip/readwrite/model/MACAddress.go  |   159 +
 .../readwrite/model/MFuncPropCommandReq.go         |   135 +
 .../knxnetip/readwrite/model/MFuncPropCon.go       |   135 +
 .../readwrite/model/MFuncPropStateReadReq.go       |   135 +
 .../knxnetip/readwrite/model/MPropInfoInd.go       |   135 +
 .../knxnetip/readwrite/model/MPropReadCon.go       |   304 +
 .../knxnetip/readwrite/model/MPropReadReq.go       |   276 +
 .../knxnetip/readwrite/model/MPropWriteCon.go      |   135 +
 .../knxnetip/readwrite/model/MPropWriteReq.go      |   135 +
 .../plc4go/knxnetip/readwrite/model/MResetInd.go   |   135 +
 .../plc4go/knxnetip/readwrite/model/MResetReq.go   |   135 +
 .../model/ProjectInstallationIdentifier.go         |   167 +
 .../knxnetip/readwrite/model/RelativeTimestamp.go  |   141 +
 .../knxnetip/readwrite/model/RoutingIndication.go  |   135 +
 .../knxnetip/readwrite/model/SearchRequest.go      |   163 +
 .../knxnetip/readwrite/model/SearchResponse.go     |   217 +
 .../plc4go/knxnetip/readwrite/model/ServiceId.go   |   264 +
 .../plc4go/knxnetip/readwrite/model/Status.go      |   165 +
 .../readwrite/model/SupportedPhysicalMedia.go      |   372 +
 .../knxnetip/readwrite/model/TDataConnectedInd.go  |   135 +
 .../knxnetip/readwrite/model/TDataConnectedReq.go  |   135 +
 .../knxnetip/readwrite/model/TDataIndividualInd.go |   135 +
 .../knxnetip/readwrite/model/TDataIndividualReq.go |   135 +
 .../knxnetip/readwrite/model/TunnelingRequest.go   |   190 +
 .../readwrite/model/TunnelingRequestDataBlock.go   |   209 +
 .../knxnetip/readwrite/model/TunnelingResponse.go  |   163 +
 .../readwrite/model/TunnelingResponseDataBlock.go  |   208 +
 .../knxnetip/readwrite/model/UnknownMessage.go     |   182 +
 plc4go/internal/plc4go/modbus/ModbusConnection.go  |   165 +
 plc4go/internal/plc4go/modbus/ModbusDriver.go      |   117 +
 plc4go/internal/plc4go/modbus/ModbusField.go       |    94 +
 .../internal/plc4go/modbus/ModbusFieldHandler.go   |   109 +
 .../internal/plc4go/modbus/ModbusMessageCodec.go   |   184 +
 plc4go/internal/plc4go/modbus/ModbusReader.go      |   194 +
 .../internal/plc4go/modbus/ModbusValueHandler.go   |    31 +
 plc4go/internal/plc4go/modbus/ModbusWriter.go      |   210 +
 .../plc4go/modbus/readwrite/ParserHelper.go        |    63 +
 .../plc4go/modbus/readwrite/XmlParserHelper.go     |    91 +
 .../plc4go/modbus/readwrite/model/DataItem.go      |   647 +
 .../modbus/readwrite/model/ModbusConstants.go      |   137 +
 .../modbus/readwrite/model/ModbusDataTypeSizes.go  |   348 +
 .../modbus/readwrite/model/ModbusErrorCode.go      |   151 +
 .../plc4go/modbus/readwrite/model/ModbusPDU.go     |   744 ++
 .../readwrite/model/ModbusPDUDiagnosticRequest.go  |   200 +
 .../readwrite/model/ModbusPDUDiagnosticResponse.go |   200 +
 .../modbus/readwrite/model/ModbusPDUError.go       |   172 +
 .../model/ModbusPDUGetComEventCounterRequest.go    |   143 +
 .../model/ModbusPDUGetComEventCounterResponse.go   |   200 +
 .../model/ModbusPDUGetComEventLogRequest.go        |   143 +
 .../model/ModbusPDUGetComEventLogResponse.go       |   290 +
 .../ModbusPDUMaskWriteHoldingRegisterRequest.go    |   228 +
 .../ModbusPDUMaskWriteHoldingRegisterResponse.go   |   228 +
 .../readwrite/model/ModbusPDUReadCoilsRequest.go   |   200 +
 .../readwrite/model/ModbusPDUReadCoilsResponse.go  |   206 +
 .../ModbusPDUReadDeviceIdentificationRequest.go    |   143 +
 .../ModbusPDUReadDeviceIdentificationResponse.go   |   143 +
 .../model/ModbusPDUReadDiscreteInputsRequest.go    |   200 +
 .../model/ModbusPDUReadDiscreteInputsResponse.go   |   206 +
 .../model/ModbusPDUReadExceptionStatusRequest.go   |   143 +
 .../model/ModbusPDUReadExceptionStatusResponse.go  |   172 +
 .../model/ModbusPDUReadFifoQueueRequest.go         |   172 +
 .../model/ModbusPDUReadFifoQueueResponse.go        |   220 +
 .../model/ModbusPDUReadFileRecordRequest.go        |   215 +
 .../model/ModbusPDUReadFileRecordRequestItem.go    |   219 +
 .../model/ModbusPDUReadFileRecordResponse.go       |   215 +
 .../model/ModbusPDUReadFileRecordResponseItem.go   |   203 +
 .../model/ModbusPDUReadHoldingRegistersRequest.go  |   200 +
 .../model/ModbusPDUReadHoldingRegistersResponse.go |   206 +
 .../model/ModbusPDUReadInputRegistersRequest.go    |   200 +
 .../model/ModbusPDUReadInputRegistersResponse.go   |   206 +
 ...sPDUReadWriteMultipleHoldingRegistersRequest.go |   318 +
 ...PDUReadWriteMultipleHoldingRegistersResponse.go |   206 +
 .../model/ModbusPDUReportServerIdRequest.go        |   143 +
 .../model/ModbusPDUReportServerIdResponse.go       |   206 +
 .../model/ModbusPDUWriteFileRecordRequest.go       |   215 +
 .../model/ModbusPDUWriteFileRecordRequestItem.go   |   255 +
 .../model/ModbusPDUWriteFileRecordResponse.go      |   215 +
 .../model/ModbusPDUWriteFileRecordResponseItem.go  |   255 +
 .../model/ModbusPDUWriteMultipleCoilsRequest.go    |   262 +
 .../model/ModbusPDUWriteMultipleCoilsResponse.go   |   200 +
 ...odbusPDUWriteMultipleHoldingRegistersRequest.go |   262 +
 ...dbusPDUWriteMultipleHoldingRegistersResponse.go |   200 +
 .../model/ModbusPDUWriteSingleCoilRequest.go       |   200 +
 .../model/ModbusPDUWriteSingleCoilResponse.go      |   200 +
 .../model/ModbusPDUWriteSingleRegisterRequest.go   |   200 +
 .../model/ModbusPDUWriteSingleRegisterResponse.go  |   200 +
 .../modbus/readwrite/model/ModbusSerialADU.go      |   244 +
 .../plc4go/modbus/readwrite/model/ModbusTcpADU.go  |   230 +
 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        |   368 +
 .../readwrite/model/COTPPacketConnectionRequest.go |   222 +
 .../model/COTPPacketConnectionResponse.go          |   222 +
 .../plc4go/s7/readwrite/model/COTPPacketData.go    |   194 +
 .../readwrite/model/COTPPacketDisconnectRequest.go |   222 +
 .../model/COTPPacketDisconnectResponse.go          |   194 +
 .../s7/readwrite/model/COTPPacketTpduError.go      |   194 +
 .../plc4go/s7/readwrite/model/COTPParameter.go     |   266 +
 .../s7/readwrite/model/COTPParameterCalledTsap.go  |   164 +
 .../s7/readwrite/model/COTPParameterCallingTsap.go |   164 +
 .../s7/readwrite/model/COTPParameterChecksum.go    |   164 +
 ...COTPParameterDisconnectAdditionalInformation.go |   180 +
 .../s7/readwrite/model/COTPParameterTpduSize.go    |   164 +
 .../plc4go/s7/readwrite/model/COTPProtocolClass.go |   116 +
 .../plc4go/s7/readwrite/model/COTPTpduSize.go      |   160 +
 .../internal/plc4go/s7/readwrite/model/DataItem.go |   499 +
 .../s7/readwrite/model/DataTransportErrorCode.go   |   123 +
 .../plc4go/s7/readwrite/model/DataTransportSize.go |   160 +
 .../plc4go/s7/readwrite/model/DeviceGroup.go       |   102 +
 .../plc4go/s7/readwrite/model/MemoryArea.go        |   180 +
 .../plc4go/s7/readwrite/model/S7Address.go         |   194 +
 .../plc4go/s7/readwrite/model/S7AddressAny.go      |   330 +
 .../plc4go/s7/readwrite/model/S7Message.go         |   412 +
 .../plc4go/s7/readwrite/model/S7MessageRequest.go  |   138 +
 .../plc4go/s7/readwrite/model/S7MessageResponse.go |   195 +
 .../s7/readwrite/model/S7MessageResponseData.go    |   195 +
 .../plc4go/s7/readwrite/model/S7MessageUserData.go |   138 +
 .../plc4go/s7/readwrite/model/S7Parameter.go       |   265 +
 .../readwrite/model/S7ParameterReadVarRequest.go   |   204 +
 .../readwrite/model/S7ParameterReadVarResponse.go  |   168 +
 .../model/S7ParameterSetupCommunication.go         |   250 +
 .../s7/readwrite/model/S7ParameterUserData.go      |   204 +
 .../s7/readwrite/model/S7ParameterUserDataItem.go  |   194 +
 .../model/S7ParameterUserDataItemCPUFunctions.go   |   403 +
 .../readwrite/model/S7ParameterWriteVarRequest.go  |   204 +
 .../readwrite/model/S7ParameterWriteVarResponse.go |   168 +
 .../plc4go/s7/readwrite/model/S7Payload.go         |   221 +
 .../s7/readwrite/model/S7PayloadReadVarResponse.go |   191 +
 .../plc4go/s7/readwrite/model/S7PayloadUserData.go |   188 +
 .../s7/readwrite/model/S7PayloadUserDataItem.go    |   311 +
 ...PayloadUserDataItemCpuFunctionReadSzlRequest.go |   139 +
 ...ayloadUserDataItemCpuFunctionReadSzlResponse.go |   224 +
 .../s7/readwrite/model/S7PayloadWriteVarRequest.go |   191 +
 .../readwrite/model/S7PayloadWriteVarResponse.go   |   186 +
 .../plc4go/s7/readwrite/model/S7StaticHelper.go    |   150 +
 .../s7/readwrite/model/S7VarPayloadDataItem.go     |   258 +
 .../s7/readwrite/model/S7VarPayloadStatusItem.go   |   141 +
 .../readwrite/model/S7VarRequestParameterItem.go   |   194 +
 .../model/S7VarRequestParameterItemAddress.go      |   179 +
 .../plc4go/s7/readwrite/model/SzlDataTreeItem.go   |   263 +
 plc4go/internal/plc4go/s7/readwrite/model/SzlId.go |   193 +
 .../s7/readwrite/model/SzlModuleTypeClass.go       |   109 +
 .../plc4go/s7/readwrite/model/SzlSublist.go        |   214 +
 .../plc4go/s7/readwrite/model/TPKTPacket.go        |   204 +
 .../plc4go/s7/readwrite/model/TransportSize.go     |   701 ++
 plc4go/internal/plc4go/spi/HandlerExposer.go       |    24 +
 plc4go/internal/plc4go/spi/Message.go              |    27 +
 plc4go/internal/plc4go/spi/MessageCodec.go         |    42 +
 plc4go/internal/plc4go/spi/PlcBrowser.go           |    25 +
 plc4go/internal/plc4go/spi/PlcDiscoverer.go        |    25 +
 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 +
 .../plc4go/spi/model/DefaultBrowseRequest.go       |   102 +
 .../plc4go/spi/model/DefaultPlcDiscoveryEvent.go   |    53 +
 .../plc4go/spi/model/DefaultPlcReadRequest.go      |   169 +
 .../plc4go/spi/model/DefaultPlcReadResponse.go     |    96 +
 .../spi/model/DefaultPlcSubscriptionEvent.go       |   108 +
 .../spi/model/DefaultPlcSubscriptionRequest.go     |   160 +
 .../spi/model/DefaultPlcSubscriptionResponse.go    |    89 +
 .../plc4go/spi/model/DefaultPlcWriteRequest.go     |   160 +
 .../plc4go/spi/model/DefaultPlcWriteResponse.go    |    86 +
 .../plc4go/spi/model/RequestInterceptor.go         |    38 +
 .../plc4go/spi/testutils/DriverTestRunner.go       |   497 +
 .../spi/testutils/ParserSerializerTestRunner.go    |   174 +
 plc4go/internal/plc4go/spi/testutils/TestUtils.go  |    52 +
 plc4go/internal/plc4go/spi/transports/Transport.go |    30 +
 .../plc4go/spi/transports/TransportInstance.go     |    37 +
 .../plc4go/spi/transports/tcp/TcpTransport.go      |   188 +
 .../plc4go/spi/transports/test/TestTransport.go    |   109 +
 .../plc4go/spi/transports/udp/UdpTransport.go      |   217 +
 plc4go/internal/plc4go/spi/utils/CastUtils.go      |    91 +
 plc4go/internal/plc4go/spi/utils/ReadBuffer.go     |   203 +
 plc4go/internal/plc4go/spi/utils/Regexp.go         |    35 +
 plc4go/internal/plc4go/spi/utils/Serializable.go   |    23 +
 plc4go/internal/plc4go/spi/utils/Utils.go          |    27 +
 plc4go/internal/plc4go/spi/utils/WriteBuffer.go    |   102 +
 plc4go/internal/plc4go/spi/values/BOOL.go          |    76 +
 plc4go/internal/plc4go/spi/values/BYTE.go          |    84 +
 plc4go/internal/plc4go/spi/values/CHAR.go          |    47 +
 plc4go/internal/plc4go/spi/values/DATE.go          |    63 +
 plc4go/internal/plc4go/spi/values/DATE_AND_TIME.go |    50 +
 plc4go/internal/plc4go/spi/values/DINT.go          |   138 +
 plc4go/internal/plc4go/spi/values/DWORD.go         |    96 +
 .../plc4go/spi/values/IEC61131ValueHandler.go      |   409 +
 plc4go/internal/plc4go/spi/values/INT.go           |   131 +
 plc4go/internal/plc4go/spi/values/LINT.go          |   145 +
 plc4go/internal/plc4go/spi/values/LREAL.go         |   161 +
 plc4go/internal/plc4go/spi/values/LTIME.go         |    50 +
 plc4go/internal/plc4go/spi/values/LWORD.go         |   112 +
 plc4go/internal/plc4go/spi/values/NULL.go          |    39 +
 plc4go/internal/plc4go/spi/values/PlcBitString.go  |    93 +
 plc4go/internal/plc4go/spi/values/PlcByteArray.go  |    72 +
 plc4go/internal/plc4go/spi/values/PlcList.go       |    68 +
 .../plc4go/spi/values/PlcSimpleValueAdapter.go     |    83 +
 plc4go/internal/plc4go/spi/values/PlcStruct.go     |    97 +
 .../internal/plc4go/spi/values/PlcValueAdapter.go  |   182 +
 plc4go/internal/plc4go/spi/values/REAL.go          |   155 +
 plc4go/internal/plc4go/spi/values/SINT.go          |   123 +
 plc4go/internal/plc4go/spi/values/STRING.go        |    47 +
 plc4go/internal/plc4go/spi/values/TIME.go          |    50 +
 plc4go/internal/plc4go/spi/values/TIME_OF_DAY.go   |    66 +
 plc4go/internal/plc4go/spi/values/UDINT.go         |   131 +
 plc4go/internal/plc4go/spi/values/UINT.go          |   117 +
 plc4go/internal/plc4go/spi/values/ULINT.go         |   145 +
 plc4go/internal/plc4go/spi/values/USINT.go         |   103 +
 plc4go/internal/plc4go/spi/values/WCHAR.go         |    50 +
 plc4go/internal/plc4go/spi/values/WORD.go          |    88 +
 plc4go/internal/plc4go/spi/values/WSTRING.go       |    50 +
 plc4go/pkg/plc4go/connection.go                    |    81 +
 plc4go/pkg/plc4go/driver.go                        |    46 +
 plc4go/pkg/plc4go/driverManager.go                 |   181 +
 plc4go/pkg/plc4go/drivers/drivers.go               |    33 +
 plc4go/pkg/plc4go/model/plc_browse.go              |    52 +
 plc4go/pkg/plc4go/model/plc_connection_metadata.go |    36 +
 plc4go/pkg/plc4go/model/plc_discovery.go           |    39 +
 plc4go/pkg/plc4go/model/plc_field.go               |    24 +
 plc4go/pkg/plc4go/model/plc_message.go             |    22 +
 plc4go/pkg/plc4go/model/plc_read.go                |    47 +
 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.go        |    63 +
 plc4go/pkg/plc4go/model/plc_unsubscription.go      |    37 +
 plc4go/pkg/plc4go/model/plc_write.go               |    43 +
 plc4go/pkg/plc4go/transports/transports.go         |    33 +
 plc4go/pkg/plc4go/values/plc_value.go              |    88 +
 plc4go/pom.xml                                     |   236 +
 plc4j/api/pom.xml                                  |    19 +-
 .../org/apache/plc4x/java/api/PlcConnection.java   |    26 +-
 .../java/org/apache/plc4x/java/api/PlcDriver.java  |    20 +-
 .../plc4x/java/api/messages/PlcBrowseRequest.java  |    36 +
 .../plc4x/java/api/messages/PlcBrowseResponse.java |    25 +
 .../java/api/messages/PlcDiscoveryRequest.java     |    34 +
 .../java/api/messages/PlcDiscoveryResponse.java    |    25 +
 .../plc4x/java/api/messages/PlcReadRequest.java    |     3 +
 .../api/messages/PlcSubscriptionFieldRequest.java  |    40 +
 .../api/messages/PlcSubscriptionFieldResponse.java |    41 +
 .../java/api/messages/PlcSubscriptionRequest.java  |     3 +-
 .../java/api/messages/PlcSubscriptionResponse.java |     2 +-
 .../api/messages/PlcUnsubscriptionRequest.java     |     3 +
 .../plc4x/java/api/messages/PlcWriteRequest.java   |    36 +-
 .../java/api/metadata/PlcConnectionMetadata.java   |     7 +
 .../java/api/model/PlcConsumerRegistration.java    |    12 +
 .../org/apache/plc4x/java/api/model/PlcField.java  |    31 +
 .../plc4x/java/api/model/PlcSubscriptionField.java |    32 +
 .../java/api/model/PlcSubscriptionHandle.java      |     8 +-
 .../plc4x/java/api/types/PlcResponseCode.java      |     4 +
 .../apache/plc4x/java/api/value/PlcBigDecimal.java |   164 -
 .../apache/plc4x/java/api/value/PlcBigInteger.java |   164 -
 .../apache/plc4x/java/api/value/PlcBoolean.java    |   168 -
 .../org/apache/plc4x/java/api/value/PlcByte.java   |   184 -
 .../org/apache/plc4x/java/api/value/PlcDate.java   |    67 -
 .../apache/plc4x/java/api/value/PlcDateTime.java   |    93 -
 .../org/apache/plc4x/java/api/value/PlcDouble.java |   168 -
 .../org/apache/plc4x/java/api/value/PlcFloat.java  |   168 -
 .../apache/plc4x/java/api/value/PlcInteger.java    |   184 -
 .../org/apache/plc4x/java/api/value/PlcList.java   |    84 -
 .../org/apache/plc4x/java/api/value/PlcLong.java   |   168 -
 .../org/apache/plc4x/java/api/value/PlcShort.java  |   184 -
 .../plc4x/java/api/value/PlcSimpleValue.java       |    77 -
 .../org/apache/plc4x/java/api/value/PlcString.java |    89 -
 .../org/apache/plc4x/java/api/value/PlcStruct.java |    84 -
 .../org/apache/plc4x/java/api/value/PlcTime.java   |    67 -
 .../org/apache/plc4x/java/api/value/PlcValue.java  |     7 +
 .../plc4x/java/api/value/PlcValueAdapter.java      |   292 -
 .../plc4x/java/api/value/PlcValueHandler.java      |    46 +
 .../org/apache/plc4x/java/api/value/PlcValues.java |   382 -
 .../apache/plc4x/java/api/types/PlcValueTest.java  |    53 -
 .../apache/plc4x/java/api/value/PlcValuesTest.java |    51 -
 plc4j/drivers/ab-eth/pom.xml                       |    26 +-
 .../org/apache/plc4x/java/abeth/AbEthDriver.java   |    16 +
 .../apache/plc4x/java/abeth/field/AbEthField.java  |     5 +
 .../plc4x/java/abeth/field/AbEthFieldHandler.java  |     4 +-
 .../java/abeth/protocol/AbEthProtocolLogic.java    |    33 +-
 .../java/abeth/protocol/Plc4xAbEthProtocol.java    |    23 +-
 .../org/apache/plc4x/protocol/abeth/AbEthTest.java |     2 +-
 plc4j/drivers/ads/pom.xml                          |   169 +-
 .../org/apache/plc4x/java/ads/ADSPlcDriver.java    |   115 +
 .../org/apache/plc4x/java/ads/AdsPlcDriver.java    |   106 -
 .../java/ads/configuration/AdsConfiguration.java   |   152 +
 .../ads/connection/AdsAbstractPlcConnection.java   |   276 -
 .../java/ads/connection/AdsConnectionFactory.java  |    58 -
 .../ads/connection/AdsSerialPlcConnection.java     |    70 -
 .../java/ads/connection/AdsTcpPlcConnection.java   |   374 -
 .../org/apache/plc4x/java/ads/field/AdsField.java  |    29 +
 .../plc4x/java/ads/field/AdsFieldHandler.java      |    41 +
 .../plc4x/java/ads/field/AdsStringField.java       |    25 +
 .../plc4x/java/ads/field/DirectAdsField.java       |   172 +
 .../plc4x/java/ads/field/DirectAdsStringField.java |   126 +
 .../plc4x/java/ads/field/SymbolicAdsField.java     |   134 +
 .../java/ads/field/SymbolicAdsStringField.java     |    98 +
 .../java/ads/model/AdsSubscriptionHandle.java      |    85 +
 .../plc4x/java/ads/protocol/AdsProtocolLogic.java  |   765 ++
 .../apache/plc4x/java/ads/utils/StaticHelper.java  |    89 +
 .../services/org.apache.plc4x.java.api.PlcDriver   |     2 +-
 .../apache/plc4x/java/ads/AdsPlcDriverTest.java    |   164 -
 .../ads/adslib/ADSClientNotificationExample.java   |   283 -
 .../org/apache/plc4x/java/ads/adslib/AdsLib.java   |   565 -
 .../apache/plc4x/java/ads/adslib/AmsRequest.java   |    51 -
 .../apache/plc4x/java/ads/adslib/AmsRouter.java    |   384 -
 .../org/apache/plc4x/java/ads/adslib/Output.java   |    38 -
 .../apache/plc4x/java/ads/adslib/package-info.java |    24 -
 .../connection/AdsAbstractPlcConnectionTest.java   |   344 -
 .../ads/connection/AdsConnectionFactoryTest.java   |   165 -
 .../ads/connection/AdsSerialPlcConnectionTest.java |   243 -
 .../ads/connection/AdsTcpPlcConnectionTests.java   |   191 -
 .../ads/AdsDiscoverySerializerParserTest.java      |    30 +
 .../org/apache/plc4x/protocol/ads/AdsDriverIT.java |    29 +
 .../protocol/ads/AdsSerializerParserTest.java      |    30 +
 .../apache/plc4x/protocol/ads/HexBase64Helper.java |    31 +
 .../plc4x/protocol/ads/ManualAdsDriverTest.java    |    98 +
 .../protocol/ads/ManualParserSerializerTest.java   |    36 +
 plc4j/drivers/canopen/pom.xml                      |   213 +
 .../plc4x/java/canopen/CANOpenPlcDriver.java       |   133 +
 .../api/conversation/canopen/CANConversation.java  |    36 +
 .../canopen/CANOpenConversationBase.java           |   130 +
 .../canopen/SDODownloadConversation.java           |   147 +
 .../canopen/SDOUploadConversation.java             |   133 +
 .../api/segmentation/accumulator/ByteStorage.java  |    95 +
 .../api/segmentation/accumulator/Storage.java      |    50 +
 .../configuration/CANOpenConfiguration.java        |    62 +
 .../java/canopen/context/CANOpenDriverContext.java |    28 +
 .../plc4x/java/canopen/field/CANOpenField.java     |    59 +
 .../java/canopen/field/CANOpenFieldHandler.java    |    32 +
 .../java/canopen/field/CANOpenHeartbeatField.java  |    80 +
 .../plc4x/java/canopen/field/CANOpenNMTField.java  |    80 +
 .../plc4x/java/canopen/field/CANOpenPDOField.java  |   102 +
 .../plc4x/java/canopen/field/CANOpenSDOField.java  |   130 +
 .../canopen/field/CANOpenSubscriptionField.java    |    29 +
 .../plc4x/java/canopen/helper/CANOpenHelper.java   |    61 +
 .../plc4x/java/canopen/helper/HeaderParser.java    |    62 +
 .../plc4x/java/canopen/listener/Callback.java      |    26 +
 .../java/canopen/listener/CompositeCallback.java   |    43 +
 .../canopen/protocol/CANOpenProtocolLogic.java     |   458 +
 .../protocol/CANOpenSubscriptionHandle.java        |    59 +
 .../canopen/socketcan/SocketCANConversation.java   |    63 +
 .../canopen/transport/CANOpenAbortException.java   |    41 +
 .../plc4x/java/canopen/transport/CANOpenFrame.java |    33 +
 .../canopen/transport/CANOpenFrameBuilder.java     |    34 +
 .../transport/CANOpenFrameBuilderFactory.java      |    25 +
 .../transport/socketcan/CANOpenSocketCANFrame.java |   159 +
 .../socketcan/CANOpenSocketCANFrameBuilder.java    |    55 +
 .../socketcan/io/CANOpenSocketCANFrameIO.java      |   159 +
 .../services/org.apache.plc4x.java.api.PlcDriver   |    19 +
 .../plc4x/java/canopen/CANOpenDriverSDOIT.java     |    29 +
 .../plc4x/java/canopen/CANOpenPayloadTest.java     |    29 +
 .../plc4x/java/canopen/CANOpenWiresharkTest.java   |    29 +
 .../java/org/apache/plc4x/java/canopen/Main.java   |    83 +
 .../plc4x/java/canopen/ManualParserTest.java       |   113 +
 .../java/canopen/field/CANOpenFieldSDOTest.java    |    38 +
 .../java/canopen/field/CANOpenNMTFieldTest.java    |    55 +
 .../java/canopen/field/CANOpenPDOFieldTest.java    |    43 +
 .../java/canopen/field/CANOpenSDOFieldTest.java    |    56 +
 plc4j/drivers/eip/pom.xml                          |    26 +-
 .../apache/plc4x/java/eip/readwrite/EIPDriver.java |    16 +
 .../plc4x/java/eip/readwrite/field/EipField.java   |     5 +
 .../java/eip/readwrite/field/EipFieldHandler.java  |   401 +-
 .../eip/readwrite/protocol/EipProtocolLogic.java   |    81 +-
 .../java/eip/readwrite/EIPDriverTestsuite.java     |     2 +-
 .../readwrite/EIPParserSerializerTestsuite.java    |     2 +-
 .../resources/testsuite/EIPDriverTestsuite.xml     |   152 -
 plc4j/drivers/firmata/pom.xml                      |    27 +-
 .../java/firmata/readwrite/FirmataDriver.java      |    16 +
 .../readwrite/context/FirmataDriverContext.java    |    18 +-
 .../java/firmata/readwrite/field/FirmataField.java |     2 +-
 .../readwrite/field/FirmataFieldAnalog.java        |     5 +
 .../readwrite/field/FirmataFieldDigital.java       |     7 +-
 .../readwrite/field/FirmataFieldHandler.java       |   116 +-
 .../readwrite/protocol/FirmataProtocolLogic.java   |    31 +-
 .../readwrite/FirmataParserSerializerTest.java     |     2 +-
 plc4j/drivers/knxnetip/pom.xml                     |    32 +-
 .../apache/plc4x/java/knxnetip/KnxNetIpDriver.java |    31 +-
 .../configuration/KnxNetIpConfiguration.java       |    64 +-
 .../knxnetip/context/KnxNetIpDriverContext.java    |   132 +
 .../plc4x/java/knxnetip/ets5/Ets5Parser.java       |    39 +-
 .../plc4x/java/knxnetip/ets5/model/Ets5Model.java  |    10 +-
 .../java/knxnetip/ets5/model/GroupAddress.java     |     7 +-
 .../plc4x/java/knxnetip/field/KnxNetIpField.java   |     5 +
 .../java/knxnetip/field/KnxNetIpFieldHandler.java  |     4 +-
 .../knxnetip/protocol/KnxNetIpProtocolLogic.java   |   542 +-
 .../plc4x/java/knxnetip/utils/KnxHelper.java       |    11 +-
 .../org/apache/plc4x/java/knxnetip/IOTest.java     |    22 +-
 .../apache/plc4x/java/knxnetip/KNXNetIpTest.java   |    30 -
 .../apache/plc4x/java/knxnetip/KnxNetIpTest.java   |    30 +
 .../test/resources/testsuite/KNXNetIPTestsuite.xml |   402 -
 plc4j/drivers/mock/pom.xml                         |     6 +-
 .../plc4x/java/mock/connection/MockConnection.java |     3 +-
 .../apache/plc4x/java/mock/field/MockField.java    |     5 +
 .../plc4x/java/mock/field/MockFieldHandler.java    |    70 +-
 .../apache/plc4x/java/mock/field/MockPlcValue.java |     9 +-
 .../plc4x/java/mock/field/MockValueHandler.java    |    47 +
 plc4j/drivers/modbus/pom.xml                       |    30 +-
 .../org/apache/plc4x/java/modbus/ModbusDriver.java |    16 +
 .../java/modbus/config/ModbusConfiguration.java    |     2 +-
 .../java/modbus/field/ModbusExtendedRegister.java  |    78 +
 .../plc4x/java/modbus/field/ModbusField.java       |    84 +-
 .../plc4x/java/modbus/field/ModbusFieldCoil.java   |    49 +-
 .../modbus/field/ModbusFieldDiscreteInput.java     |    50 +-
 .../java/modbus/field/ModbusFieldHandler.java      |   125 +-
 .../modbus/field/ModbusFieldHoldingRegister.java   |    48 +-
 .../modbus/field/ModbusFieldInputRegister.java     |    48 +-
 .../java/modbus/protocol/ModbusProtocolLogic.java  |   335 +-
 .../plc4x/java/modbus/ManualModbusDriverTest.java  |   103 +
 .../apache/plc4x/java/modbus/ModbusDriverIT.java   |    29 +
 .../apache/plc4x/java/modbus/ModbusEncodeTest.java |   183 +
 .../plc4x/java/modbus/ModbusFieldDataTypeTest.java |    98 +
 .../apache/plc4x/java/modbus/ModbusFieldTest.java  |    71 +
 .../org/apache/plc4x/java/modbus/ModbusIOTest.java |    29 -
 .../java/modbus/ModbusParserSerializerTest.java    |    29 +
 .../test/resources/testsuite/ModbusTestsuite.xml   |    64 -
 plc4j/drivers/opcua/pom.xml                        |   100 +-
 .../apache/plc4x/java/opcua/OpcuaPlcDriver.java    |     8 +-
 .../opcua/connection/BaseOpcuaPlcConnection.java   |     3 +-
 .../opcua/connection/OpcuaTcpPlcConnection.java    |   607 +-
 .../plc4x/java/opcua/protocol/OpcuaField.java      |    35 +-
 .../java/opcua/protocol/OpcuaPlcFieldHandler.java  |   136 +-
 .../opcua/protocol/OpcuaSubsriptionHandle.java     |     5 +-
 .../java/opcua/protocol/model/OpcuaDataTypes.java  |    45 -
 .../opcua/protocol/model/OpcuaIdentifierType.java  |    47 -
 .../apache/plc4x/java/opcua/ManualPLC4XOpcua.java  |    51 +-
 .../plc4x/java/opcua/OpcuaPlcDriverTest.java       |   241 +-
 .../connection/OpcuaTcpPlcConnectionTest.java      |    35 +-
 .../plc4x/java/opcua/protocol/OpcuaFieldTest.java  |    19 +
 .../opcua/protocol/OpcuaPlcFieldHandlerTest.java   |     3 +
 plc4j/drivers/pom.xml                              |     8 +-
 plc4j/drivers/s7/pom.xml                           |    37 +-
 .../apache/plc4x/java/s7/readwrite/S7Driver.java   |    16 +
 .../java/s7/readwrite/context/S7DriverContext.java |     9 +
 .../plc4x/java/s7/readwrite/field/S7Field.java     |   219 +-
 .../java/s7/readwrite/field/S7PlcFieldHandler.java |   553 +-
 .../java/s7/readwrite/field/S7StringField.java     |    55 +
 .../java/s7/readwrite/optimizer/S7Optimizer.java   |     8 +-
 .../s7/readwrite/protocol/S7ProtocolLogic.java     |   378 +-
 .../java/s7/readwrite/utils/S7TsapIdEncoder.java   |     2 +-
 .../apache/plc4x/java/s7/utils/StaticHelper.java   |   130 +-
 .../plc4x/java/s7/readwrite/DatatypesTest.java     |    79 +
 .../java/s7/readwrite/ManualS7DriverTest.java      |    91 +-
 .../apache/plc4x/java/s7/readwrite/S7DriverIT.java |     2 +-
 .../java/s7/readwrite/S7ParserSerializerTest.java  |     2 +-
 .../plc4x/java/s7/readwrite/field/S7FieldTest.java |    39 +
 .../plc4x/java/s7/readwrite/issues/PLC4X272.java   |    29 +
 .../s7/src/test/resources/tests/PLC4X-272.xml      |  2282 ++++
 .../s7/src/test/resources/testsuite/S7DriverIT.xml |   311 -
 .../resources/testsuite/S7ParserSerializerTest.xml |   509 -
 plc4j/drivers/simulated/pom.xml                    |    58 +-
 .../simulated/connection/SimulatedConnection.java  |    78 +-
 .../java/simulated/connection/SimulatedDevice.java |    95 +-
 .../plc4x/java/simulated/field/SimulatedField.java |    58 +-
 .../simulated/field/SimulatedFieldHandler.java     |   174 +-
 .../plc4x/java/simulated/utils/StaticHelper.java   |    66 +
 .../connection/SimulatedConnectionTest.java        |    30 +-
 .../simulated/connection/SimulatedDeviceTest.java  |     8 +-
 .../simulated/field/SimularedFieldHandlerTest.java |    33 +-
 .../java/simulated/field/SimulatedFieldTest.java   |    19 +-
 plc4j/examples/dummy-driver/pom.xml                |    96 -
 .../java/examples/dummydriver/DummyDriver.java     |    67 -
 .../dummydriver/connection/DummyConnection.java    |    84 -
 .../examples/dummydriver/model/DummyField.java     |    35 -
 .../examples/dummydriver/netty/DummyProtocol.java  |    75 -
 .../services/org.apache.plc4x.java.api.PlcDriver   |    19 -
 plc4j/examples/hello-cloud-azure/pom.xml           |     4 +-
 plc4j/examples/hello-cloud-google/pom.xml          |     4 +-
 plc4j/examples/hello-connectivity-kafka/pom.xml    |     6 +-
 .../hello-connectivity-mqtt/mqtt-connector.yml     |     2 +-
 plc4j/examples/hello-connectivity-mqtt/pom.xml     |     4 +-
 plc4j/examples/hello-integration-edgent/pom.xml    |     4 +-
 plc4j/examples/hello-integration-iotdb/pom.xml     |    72 +-
 .../examples/integration/iotdb/CliOptions.java     |    18 +-
 .../examples/integration/iotdb/IIoTDBWriter.java   |    27 +
 .../integration/iotdb/IoTDBWriterWithJDBC.java     |    88 +
 .../integration/iotdb/IoTDBWriterWithSession.java  |    89 +
 .../java/examples/integration/iotdb/PlcLogger.java |    70 +-
 plc4j/examples/hello-opm/pom.xml                   |     6 +-
 plc4j/examples/hello-storage-elasticsearch/pom.xml |    26 +-
 plc4j/examples/hello-webapp/client/pom.xml         |     2 +-
 plc4j/examples/hello-webapp/pom.xml                |     2 +-
 plc4j/examples/hello-webapp/webapp/pom.xml         |     8 +-
 .../watertank/service/WaterTankService.java        |     4 +-
 plc4j/examples/hello-webservice/README.adoc        |    24 +
 plc4j/examples/hello-webservice/pom.xml            |    91 +
 .../java/examples/hellowebservice/CliOptions.java  |    99 +
 .../examples/hellowebservice/HelloWebservice.java  |   169 +
 .../src/main/resources/logback.xml                 |    38 +
 .../hello-world-plc4x-subscription/pom.xml         |    85 +
 .../helloplc4x/subscription/CliOptions.java        |    84 +
 .../subscription/HelloPlc4xSubscription.java       |   120 +
 .../src/main/resources/logback.xml                 |    39 +
 plc4j/examples/hello-world-plc4x-write/pom.xml     |    80 +
 .../java/examples/helloplc4x/write/CliOptions.java |    99 +
 .../examples/helloplc4x/write/HelloPlc4xWrite.java |    95 +
 .../src/main/resources/logback.xml                 |    39 +
 plc4j/examples/hello-world-plc4x/pom.xml           |     4 +-
 .../plc4x/java/examples/helloplc4x/HelloPlc4x.java |    10 +-
 plc4j/examples/poll-loop/pom.xml                   |    70 +
 .../apache/plc4x/java/examples/pollloop/Main.java  |    45 +
 .../plc4x/java/examples/pollloop/PollLoop.java     |   227 +
 plc4j/examples/pom.xml                             |    44 +-
 plc4j/integrations/apache-calcite/pom.xml          |   108 +-
 .../apache-calcite/src/test/resources/example.yml  |     2 +-
 plc4j/integrations/apache-camel/pom.xml            |   109 +-
 .../java/org/apache/plc4x/camel/ManualTest.java    |     2 +-
 .../java/org/apache/plc4x/camel/MockDriver.java    |     3 +-
 plc4j/integrations/apache-edgent/pom.xml           |    98 +-
 .../plc4x/edgent/PlcConnectionAdapterTest.java     |     1 -
 plc4j/integrations/apache-kafka/README.md          |   233 +-
 .../apache-kafka/config/plc4x-sink.properties      |    77 +
 .../apache-kafka/config/plc4x-source.properties    |    78 +-
 plc4j/integrations/apache-kafka/pom.xml            |   164 +-
 .../org/apache/plc4x/kafka/Plc4xSinkConnector.java |   122 +
 .../java/org/apache/plc4x/kafka/Plc4xSinkTask.java |   269 +
 .../apache/plc4x/kafka/Plc4xSourceConnector.java   |   197 +-
 .../org/apache/plc4x/kafka/Plc4xSourceTask.java    |   143 +-
 .../org/apache/plc4x/kafka/config/Constants.java   |    92 +
 .../org/apache/plc4x/kafka/config/Defaults.java    |    33 -
 .../java/org/apache/plc4x/kafka/config/Field.java  |    65 +
 .../java/org/apache/plc4x/kafka/config/Job.java    |    62 +-
 .../apache/plc4x/kafka/config/JobReference.java    |    34 +-
 .../java/org/apache/plc4x/kafka/config/Sink.java   |   135 +
 .../org/apache/plc4x/kafka/config/SinkConfig.java  |    84 +
 .../java/org/apache/plc4x/kafka/config/Source.java |   109 +-
 .../apache/plc4x/kafka/config/SourceConfig.java    |   121 +-
 .../kafka/exceptions/ConfigurationException.java   |    31 -
 .../apache-kafka/src/remote-resources/LICENSE      |     7 +
 .../apache-kafka/src/remote-resources/NOTICE       |     4 +
 .../apache/plc4x/kafka/config/SinkConfigTest.java  |   130 +
 .../apache/plc4x/kafka/config/SinkTaskTest.java    |   145 +
 .../plc4x/kafka/config/SourceConfigTest.java       |   156 +-
 .../apache/plc4x/kafka/config/SourceTaskTest.java  |   101 +
 .../kafka/properties/sink_task_no_error.properties |    62 +
 .../properties/source_task_no_error.properties     |    62 +
 .../apache-nifi/nifi-plc4x-nar/pom.xml             |    58 +-
 .../apache-nifi/nifi-plc4x-processors/pom.xml      |    10 +-
 .../org/apache/plc4x/nifi/BasePlc4xProcessor.java  |    23 +-
 .../org/apache/plc4x/nifi/Plc4xSinkProcessor.java  |    50 +-
 .../apache/plc4x/nifi/Plc4xSourceProcessor.java    |    63 +-
 plc4j/integrations/apache-nifi/pom.xml             |     4 +-
 plc4j/integrations/logstash-plugin/pom.xml         |    74 +-
 plc4j/integrations/opcua-server/pom.xml            |   296 +
 .../apache/plc4x/java/opcuaserver/OPCUAServer.java |   383 +
 .../opcuaserver/backend/Plc4xCommunication.java    |   329 +
 .../java/opcuaserver/backend/Plc4xNamespace.java   |   221 +
 .../opcuaserver/configuration/Configuration.java   |    77 +
 .../configuration/DeviceConfiguration.java         |    50 +
 .../configuration/PasswordConfiguration.java       |    91 +
 .../plc4x/java/opcuaserver/configuration/Tag.java  |    42 +
 .../plc4x/java/opcuaserver/configuration/User.java |    97 +
 .../opcuaserver/context/CertificateGenerator.java  |   122 +
 .../opcuaserver/context/CertificateKeyPair.java    |    38 +
 .../opcua-server/src/main/resources/config.yml     |   102 +
 .../opcua-server/src/main/resources/logback.xml    |    34 +
 .../plc4x/java/opcuaserver/OpcuaPlcDriverTest.java |   245 +
 .../apache/plc4x/java/opcuaserver/UtilsTest.java   |    40 +
 .../opcua-server/src/test/resources/config.yml     |   102 +
 plc4j/integrations/pom.xml                         |     5 +-
 plc4j/karaf-features/README.md                     |    42 -
 plc4j/karaf-features/camel/pom.xml                 |    67 -
 plc4j/karaf-features/eip/pom.xml                   |    72 -
 plc4j/karaf-features/karaf-itest/pom.xml           |   207 -
 .../java/org/apache/plc4x/karaf/FeatureIT.java     |   100 -
 .../test/resources/etc/org.ops4j.pax.logging.cfg   |    71 -
 plc4j/karaf-features/pom.xml                       |    82 -
 plc4j/karaf-features/s7/pom.xml                    |    71 -
 plc4j/osgi/pom.xml                                 |    11 +-
 plc4j/pom.xml                                      |    44 +-
 plc4j/protocols/ads/pom.xml                        |     8 +-
 plc4j/protocols/benchmarks/pom.xml                 |     4 +-
 plc4j/protocols/delta-v/pom.xml                    |     2 +-
 plc4j/protocols/pom.xml                            |     2 +-
 plc4j/spi/pom.xml                                  |     9 +-
 .../apache/plc4x/java/spi/ConversationContext.java |    38 +-
 .../spi/GeneratedDriverByteToMessageCodec.java     |    28 +-
 .../apache/plc4x/java/spi/Plc4xNettyWrapper.java   |    50 +-
 .../spi/configuration/ConfigurationFactory.java    |     9 +-
 .../annotations/defaults/FloatDefaultValue.java    |    33 +
 .../exceptions/ConfigurationException.java         |    34 +
 .../java/spi/connection/AbstractPlcConnection.java |    41 +-
 .../plc4x/java/spi/connection/ChannelFactory.java  |     4 +-
 .../spi/connection/DefaultNettyPlcConnection.java  |    71 +-
 .../spi/connection/DefaultPlcFieldHandler.java     |    97 -
 .../java/spi/connection/GeneratedDriverBase.java   |    17 +
 .../connection/GeneratedProtocolMessageCodec.java  |     9 +-
 .../java/spi/connection/NettyChannelFactory.java   |    44 -
 .../plc4x/java/spi/connection/PlcFieldHandler.java |    30 +-
 .../spi/connection/ProtocolStackConfigurer.java    |     2 +-
 .../connection/SingleProtocolStackConfigurer.java  |     7 +-
 .../plc4x/java/spi/discovery/ActiveDiscovery.java  |    25 +
 .../java/spi/discovery/BroadcastDiscovery.java     |    25 +
 .../plc4x/java/spi/discovery/PassiveDiscovery.java |    25 +
 .../java/spi/discovery/SupportsDiscovery.java      |    25 +
 .../exceptions/InternalPlcRuntimeException.java    |    41 -
 .../java/spi/generation/EvaluationHelper.java      |    14 +
 .../apache/plc4x/java/spi/generation/Message.java  |     4 -
 .../plc4x/java/spi/generation/ReadBuffer.java      |    64 +-
 .../plc4x/java/spi/generation/StaticHelper.java    |     8 +
 .../plc4x/java/spi/generation/WriteBuffer.java     |    69 +-
 .../java/spi/internal/DefaultContextHandler.java   |    44 +
 .../spi/internal/DefaultExpectRequestContext.java  |    22 +-
 .../spi/internal/DefaultSendRequestContext.java    |    57 +-
 .../java/spi/internal/HandlerRegistration.java     |    33 +-
 .../spi/messages/DefaultPlcProprietaryRequest.java |    50 -
 .../messages/DefaultPlcProprietaryResponse.java    |    49 -
 .../java/spi/messages/DefaultPlcReadRequest.java   |    46 +-
 .../java/spi/messages/DefaultPlcReadResponse.java  |    57 +-
 .../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  |   192 +-
 .../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 -
 .../InternalPlcUnsubscriptionResponse.java         |    27 -
 .../java/spi/messages/InternalPlcWriteRequest.java |    38 -
 .../spi/messages/InternalPlcWriteResponse.java     |    30 -
 .../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 +-
 .../spi/model/DefaultPlcSubscriptionField.java     |    56 +
 .../spi/model/DefaultPlcSubscriptionHandle.java    |     3 +-
 .../spi/model/InternalPlcConsumerRegistration.java |    32 -
 .../spi/model/InternalPlcSubscriptionHandle.java   |    25 -
 .../plc4x/java/spi/model/SubscriptionPlcField.java |    55 -
 .../plc4x/java/spi/optimizer/BaseOptimizer.java    |    22 +-
 .../java/spi/optimizer/SingleFieldOptimizer.java   |     5 +-
 .../SingleItemToSingleRequestProtocol.java         |   672 -
 .../apache/plc4x/java/spi/request/PlcRequest.java  |    28 -
 .../spi/transaction/RequestTransactionManager.java |    23 +-
 .../apache/plc4x/java/spi/transport/Transport.java |     1 -
 .../org/apache/plc4x/java/spi/types/FieldType.java |    47 -
 .../plc4x/java/spi/utils/XmlSerializable.java      |    27 +
 .../java/spi/values/IEC61131ValueHandler.java      |   191 +
 .../org/apache/plc4x/java/spi/values/PlcBOOL.java  |   319 +
 .../org/apache/plc4x/java/spi/values/PlcBYTE.java  |   340 +
 .../plc4x/java/spi/values/PlcBigDecimal.java       |   170 +
 .../plc4x/java/spi/values/PlcBigInteger.java       |   170 +
 .../apache/plc4x/java/spi/values/PlcBitString.java |    61 +
 .../org/apache/plc4x/java/spi/values/PlcCHAR.java  |   352 +
 .../org/apache/plc4x/java/spi/values/PlcDATE.java  |   102 +
 .../plc4x/java/spi/values/PlcDATE_AND_TIME.java    |   114 +
 .../org/apache/plc4x/java/spi/values/PlcDINT.java  |   302 +
 .../org/apache/plc4x/java/spi/values/PlcDWORD.java |   343 +
 .../apache/plc4x/java/spi/values/PlcIECValue.java  |    89 +
 .../org/apache/plc4x/java/spi/values/PlcINT.java   |   304 +
 .../org/apache/plc4x/java/spi/values/PlcLINT.java  |   300 +
 .../org/apache/plc4x/java/spi/values/PlcLREAL.java |   283 +
 .../org/apache/plc4x/java/spi/values/PlcLTIME.java |    96 +
 .../org/apache/plc4x/java/spi/values/PlcLWORD.java |   356 +
 .../org/apache/plc4x/java/spi/values/PlcList.java  |   104 +
 .../org/apache/plc4x/java/spi/values/PlcNull.java  |   265 +
 .../org/apache/plc4x/java/spi/values/PlcREAL.java  |   277 +
 .../org/apache/plc4x/java/spi/values/PlcSINT.java  |   309 +
 .../apache/plc4x/java/spi/values/PlcSTRING.java    |   238 +
 .../plc4x/java/spi/values/PlcSimpleValue.java      |    78 +
 .../apache/plc4x/java/spi/values/PlcStruct.java    |   105 +
 .../org/apache/plc4x/java/spi/values/PlcTIME.java  |    94 +
 .../plc4x/java/spi/values/PlcTIME_OF_DAY.java      |    88 +
 .../org/apache/plc4x/java/spi/values/PlcUDINT.java |   333 +
 .../org/apache/plc4x/java/spi/values/PlcUINT.java  |   314 +
 .../org/apache/plc4x/java/spi/values/PlcULINT.java |   345 +
 .../org/apache/plc4x/java/spi/values/PlcUSINT.java |   329 +
 .../plc4x/java/spi/values/PlcValueAdapter.java     |   317 +
 .../apache/plc4x/java/spi/values/PlcValues.java    |    87 +
 .../org/apache/plc4x/java/spi/values/PlcWCHAR.java |   337 +
 .../org/apache/plc4x/java/spi/values/PlcWORD.java  |   327 +
 .../plc4x/java/spi/Plc4xNettyWrapperTest.java      |   126 +
 .../plc4x/java/spi/generation/ReadBufferTest.java  |    40 +
 plc4j/tools/capture-replay/pom.xml                 |     2 +-
 plc4j/tools/connection-pool/pom.xml                |     4 +-
 .../java/utils/connectionpool/PoolKeyFactory.java  |     6 +
 .../connectionpool/PooledPlcDriverManager.java     |     6 +-
 .../utils/connectionpool/PoolKeyFactoryTest.java   |     4 +
 plc4j/tools/interop/pom.xml                        |   218 -
 plc4j/tools/interop/src/assembly/assembly.xml      |    41 -
 .../java/org/apache/plc4x/interop/impl/Client.java |    60 -
 .../org/apache/plc4x/interop/impl/Handler.java     |   163 -
 .../java/org/apache/plc4x/interop/impl/Server.java |    98 -
 plc4j/tools/opm/pom.xml                            |     8 +-
 .../apache/plc4x/java/opm/ConnectedEntityTest.java |     4 +-
 .../java/opm/PlcEntityManagerComplexTest.java      |   124 +-
 .../plc4x/java/opm/PlcEntityManagerTest.java       |    12 +-
 plc4j/tools/pom.xml                                |    11 +-
 plc4j/tools/scraper/pom.xml                        |    10 +-
 .../ScraperConfigurationTriggeredImpl.java         |     1 -
 .../triggeredscraper/TriggeredScraperImpl.java     |    10 +-
 .../apache/plc4x/java/scraper/ScraperTaskTest.java |     6 +-
 .../org/apache/plc4x/java/scraper/ScraperTest.java |     6 +-
 .../triggeredscraper/TriggeredScraperImplTest.java |    16 +-
 plc4j/transports/pcap-replay/pom.xml               |    12 +-
 .../pcapreplay/PcapReplayChannelFactory.java       |     5 +
 plc4j/transports/pcap-shared/pom.xml               |     6 +-
 plc4j/transports/pom.xml                           |     3 +-
 plc4j/transports/raw-socket/pom.xml                |    10 +-
 .../rawsocket/RawSocketChannelFactory.java         |     5 +
 plc4j/transports/serial/pom.xml                    |     7 +-
 .../transport/serial/SerialChannelFactory.java     |     5 +
 plc4j/transports/socketcan/pom.xml                 |    81 +
 .../socketcan/CANTransportConfiguration.java       |    25 +
 .../socketcan/SocketCANChannelFactory.java         |    70 +
 .../transport/socketcan/SocketCANTransport.java    |    46 +
 .../socketcan/netty/SocketCANChannel.java          |   283 +
 .../socketcan/netty/SocketCANChannelConfig.java    |    31 +
 .../socketcan/netty/address/SocketCANAddress.java  |    40 +
 .../org.apache.plc4x.java.spi.transport.Transport  |    20 +
 plc4j/transports/tcp/pom.xml                       |     6 +-
 .../java/transport/tcp/TcpChannelFactory.java      |     5 +
 .../plc4x/java/transport/tcp/TcpTransport.java     |     2 +-
 plc4j/transports/test/pom.xml                      |     4 +-
 .../java/transport/test/TestChannelFactory.java    |     5 +
 plc4j/transports/udp/pom.xml                       |     6 +-
 .../java/transport/udp/UdpChannelFactory.java      |     5 +
 .../plc4x/java/transport/udp/UdpTransport.java     |     4 +-
 plc4j/utils/pcap-replay/pom.xml                    |     4 +-
 .../utils/pcapreplay/netty/PcapReplayChannel.java  |     6 +-
 .../netty/config/PcapReplayChannelConfig.java      |     2 +-
 plc4j/utils/pcap-shared/pom.xml                    |     2 +-
 plc4j/utils/pom.xml                                |     2 +-
 plc4j/utils/raw-sockets/pom.xml                    |     6 +-
 .../rawsockets/netty/RawSocketChannelTest.java     |     2 +
 plc4j/utils/test-utils/pom.xml                     |     8 +-
 .../plc4x/test/driver/DriverTestsuiteRunner.java   |   190 +-
 .../plc4x/test/driver/model/DriverTestsuite.java   |    20 +-
 .../apache/plc4x/test/driver/model/TestStep.java   |    10 +-
 .../plc4x/test/driver/model/api/TestField.java     |     8 +-
 .../test/driver/model/api/TestValueField.java      |    34 +
 .../org/apache/plc4x/test/manual/ManualTest.java   |   151 +
 .../ParserSerializerTestsuiteRunner.java           |     5 +
 pom.xml                                            |   880 +-
 protocols/ab-eth/pom.xml                           |     4 +-
 .../main/resources/protocols/abeth/ab-eth.mspec    |     2 +-
 .../protocols/abeth/ParserSerializerTestsuite.xml  |     0
 protocols/ads/pom.xml                              |    43 +
 .../plc4x/protocol/ads/ADSDiscoveryProtocol.java   |    49 +
 .../org/apache/plc4x/protocol/ads/ADSProtocol.java |    46 +
 ...e.plc4x.plugins.codegenerator.protocol.Protocol |    20 +
 .../resources/protocols/ads/ads-discovery.mspec    |   101 +
 .../ads/src/main/resources/protocols/ads/ads.mspec |   729 ++
 .../protocols/ads/AdsDiscoverySerializerTest.xml   |   377 +
 .../resources/protocols/ads/DriverTestsuite.xml    |   869 ++
 .../protocols/ads/ParserSerializerTestsuite.xml    |   414 +
 .../protocols/ads/manual-test-capture.pcapng       |   Bin 0 -> 166372 bytes
 protocols/amsads/pom.xml                           |    43 -
 .../plc4x/protocol/amsads/AMSADSProtocol.java      |    46 -
 ...e.plc4x.plugins.codegenerator.protocol.Protocol |    38 -
 .../main/resources/protocols/amsads/amsads.mspec   |   350 -
 protocols/bacnetip/pom.xml                         |     4 +-
 .../resources/protocols/bacnetip/bacnetip.mspec    |    26 +-
 protocols/canopen/pom.xml                          |    43 +
 .../plc4x/protocol/canopen/CANOpenProtocol.java    |    46 +
 ...e.plc4x.plugins.codegenerator.protocol.Protocol |    19 +
 .../src/main/resources/protocols/can/canopen.mspec |   363 +
 .../protocols/canopen/CANOpenDriverSDOIT.xml       |   550 +
 .../protocols/canopen/CANOpenPayloadTestSuite.xml  |   249 +
 .../canopen/CANOpenWiresharkTestSuite.xml          |   278 +
 protocols/df1/pom.xml                              |     4 +-
 .../protocols/df1/ParserSerializerTestsuite.xml    |     0
 protocols/eip/pom.xml                              |     4 +-
 .../eip/src/main/resources/protocols/eip/eip.mspec |    10 +-
 .../resources/protocols/eip/DriverTestsuite.xml    |   152 +
 .../protocols/eip/ParserSerializerTestsuite.xml    |     0
 protocols/firmata/pom.xml                          |     4 +-
 .../main/resources/protocols/firmata/firmata.mspec |     8 +-
 .../firmata/ParserSerializerTestsuite.xml          |     0
 protocols/knxnetip/pom.xml                         |    64 +-
 .../plc4x/protocol/knxnetip/KnxNetIpProtocol.java  |    15 +-
 .../resources/protocols/knxnetip/knxnetip.mspec    |   665 +-
 protocols/knxnetip/src/main/xslt/knx-types.xsl     |   457 +
 protocols/knxnetip/src/site/asciidoc/index.adoc    |   114 +-
 .../apache/plc4x/protocols/knxnetip/protocol.tdml  |   112 +-
 .../knxnetip/ParserSerializerTestsuite.xml         |   546 +
 protocols/modbus/pom.xml                           |     4 +-
 .../main/resources/protocols/modbus/modbus.mspec   |   168 +-
 .../resources/protocols/modbus/DriverTestsuite.xml |   382 +
 .../protocols/modbus/ParserSerializerTestsuite.xml |   181 +
 .../protocols/modbus/manual-test-capture.pcapng    |   Bin 0 -> 305032 bytes
 protocols/opcua/pom.xml                            |    43 +
 .../apache/plc4x/protocol/opcua/OpcuaProtocol.java |    46 +
 ...e.plc4x.plugins.codegenerator.protocol.Protocol |    19 +
 .../src/main/resources/protocols/opcua/opcua.mspec |    59 +
 protocols/pom.xml                                  |    49 +-
 protocols/proxy/pom.xml                            |    35 -
 protocols/proxy/src/main/java/.keepMe              |    20 -
 .../apache/plc4x/protocols/proxy/interop.thrift    |    93 -
 protocols/s7/pom.xml                               |     4 +-
 .../s7/src/main/resources/protocols/s7/s7.mspec    |   176 +-
 .../resources/protocols/s7/DriverTestsuite.xml     |   389 +
 .../protocols/s7/ParserSerializerTestsuite.xml     |   501 +
 .../protocols/s7/manual-test-capture.pcapng        |   Bin 0 -> 65868 bytes
 protocols/simulated/pom.xml                        |    43 +
 .../protocol/simulated/SimulatedProtocol.java      |    46 +
 ...e.plc4x.plugins.codegenerator.protocol.Protocol |    19 +
 .../resources/protocols/simulated/simulated.mspec  |   163 +
 sandbox/code-gen/pom.xml                           |    31 +-
 sandbox/discovery/pom.xml                          |    53 +
 .../plc4x/java/discovery/DiscoveryConnection.java  |   166 +
 .../plc4x/java/discovery/DiscoveryDriver.java      |    52 +
 .../java/discovery/DiscoveryFieldHandler.java      |    33 +
 .../services/org.apache.plc4x.java.api.PlcDriver   |    20 +
 sandbox/hello-influx-data-collection/pom.xml       |    13 +-
 .../java/examples/helloinflux/HelloInflux.java     |    25 +-
 sandbox/plc-simulator/pom.xml                      |    31 +-
 .../apache/plc4x/java/s7/utils/StaticHelper.java   |    77 +-
 .../org/apache/plc4x/simulator/PlcSimulator.java   |    57 +-
 .../simulator/exceptions/SimulatorExcepiton.java   |    35 +
 .../org/apache/plc4x/simulator/model/Context.java  |   112 +
 .../plc4x/simulator/server/ServerModule.java       |     9 +-
 .../apache/plc4x/simulator/server/s7/S7Server.java |    69 -
 .../plc4x/simulator/server/s7/S7ServerModule.java  |    72 +-
 .../server/s7/protocol/S7Step7Protocol.java        |    76 -
 .../server/s7/protocol/S7Step7ServerAdapter.java   |   331 +
 .../server/s7/protocol/S7Step7ServerProtocol.java  |   231 -
 .../simulator/simulation/SimulationModule.java     |     5 +-
 .../watertank/WaterTankSimulationModule.java       |    65 +-
 sandbox/plc4c/CMakeLists.txt                       |     4 +-
 sandbox/plc4c/api/include/plc4c/connection.h       |    10 +-
 sandbox/plc4c/api/include/plc4c/data.h             |    35 +-
 sandbox/plc4c/api/include/plc4c/read.h             |     1 +
 sandbox/plc4c/api/include/plc4c/types.h            |    15 +-
 sandbox/plc4c/api/include/plc4c/utils/list.h       |     2 +
 sandbox/plc4c/drivers/modbus/CMakeLists.txt        |    18 +-
 .../drivers/modbus/include/plc4c/driver_modbus.h   |     6 +-
 .../modbus/include/plc4c/driver_modbus_packets.h   |    45 +
 .../modbus/include/plc4c/driver_modbus_sm.h        |    47 +
 .../modbus/include/plc4c/driver_s7_encode_decode.h |    36 +
 sandbox/plc4c/drivers/modbus/src/driver_modbus.c   |    16 +-
 .../modbus/src/driver_modbus_encode_decode.c       |   110 +
 .../drivers/modbus/src/driver_modbus_packets.c     |   142 +
 .../drivers/modbus/src/driver_modbus_sm_connect.c  |    51 +
 .../modbus/src/driver_modbus_sm_disconnect.c       |    74 +
 .../drivers/modbus/src/driver_modbus_sm_read.c     |   119 +
 .../drivers/modbus/src/driver_modbus_sm_write.c    |   121 +
 sandbox/plc4c/drivers/s7/CMakeLists.txt            |    34 +-
 sandbox/plc4c/drivers/s7/include/plc4c/driver_s7.h |    61 +
 .../s7/include/plc4c/driver_s7_encode_decode.h     |    45 +
 .../drivers/s7/include/plc4c/driver_s7_packets.h   |    53 +
 .../plc4c/drivers/s7/include/plc4c/driver_s7_sm.h  |    47 +
 sandbox/plc4c/drivers/s7/src/driver_s7.c           |    95 +-
 .../plc4c/drivers/s7/src/driver_s7_encode_decode.c |   346 +
 sandbox/plc4c/drivers/s7/src/driver_s7_packets.c   |   524 +
 .../plc4c/drivers/s7/src/driver_s7_sm_connect.c    |   348 +
 .../plc4c/drivers/s7/src/driver_s7_sm_disconnect.c |    81 +
 sandbox/plc4c/drivers/s7/src/driver_s7_sm_read.c   |   207 +
 sandbox/plc4c/drivers/s7/src/driver_s7_sm_write.c  |   122 +
 .../plc4c/drivers/s7/test/s7_address_parser_test.c |   110 +
 sandbox/plc4c/drivers/s7/test/s7_test.c            |   239 +
 .../simulated/include/plc4c/driver_simulated.h     |     6 +-
 .../plc4c/drivers/simulated/src/driver_simulated.c |    15 +-
 .../examples/hello-subsciptions/CMakeLists.txt     |     5 +-
 sandbox/plc4c/examples/hello-world/CMakeLists.txt  |    20 +-
 .../plc4c/examples/hello-world/src/hello_world.c   |    59 +-
 .../generated-sources/modbus/include/data_item.h   |    43 +
 .../modbus/include/modbus_constants.h              |    56 +
 .../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  |   243 +
 .../modbus_pdu_read_file_record_request_item.h     |    56 +
 .../modbus_pdu_read_file_record_response_item.h    |    54 +
 .../modbus_pdu_write_file_record_request_item.h    |    56 +
 .../modbus_pdu_write_file_record_response_item.h   |    56 +
 .../modbus/include/modbus_serial_adu.h             |    57 +
 .../modbus/include/modbus_tcp_adu.h                |    60 +
 .../plc4c/generated-sources/modbus/src/data_item.c |   337 +
 .../modbus/src/modbus_constants.c                  |    78 +
 .../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      |  2365 ++++
 .../src/modbus_pdu_read_file_record_request_item.c |   123 +
 .../modbus_pdu_read_file_record_response_item.c    |   122 +
 .../modbus_pdu_write_file_record_request_item.c    |   156 +
 .../modbus_pdu_write_file_record_response_item.c   |   156 +
 .../modbus/src/modbus_serial_adu.c                 |   144 +
 .../generated-sources/modbus/src/modbus_tcp_adu.c  |   145 +
 .../generated-sources/s7/include/cotp_packet.h     |   108 +
 .../generated-sources/s7/include/cotp_parameter.h  |    91 +
 .../s7/include/cotp_protocol_class.h               |    52 +
 .../generated-sources/s7/include/cotp_tpdu_size.h  |    56 +
 .../plc4c/generated-sources/s7/include/data_item.h |    43 +
 .../s7/include/data_transport_error_code.h         |    53 +
 .../s7/include/data_transport_size.h               |    56 +
 .../generated-sources/s7/include/device_group.h    |    50 +
 .../generated-sources/s7/include/memory_area.h     |    58 +
 .../generated-sources/s7/include/s7_address.h      |    81 +
 .../generated-sources/s7/include/s7_message.h      |    91 +
 .../generated-sources/s7/include/s7_parameter.h    |    99 +
 .../s7/include/s7_parameter_user_data_item.h       |    81 +
 .../generated-sources/s7/include/s7_payload.h      |    91 +
 .../s7/include/s7_payload_user_data_item.h         |    86 +
 .../s7/include/s7_var_payload_data_item.h          |    57 +
 .../s7/include/s7_var_payload_status_item.h        |    54 +
 .../s7/include/s7_var_request_parameter_item.h     |    75 +
 .../s7/include/szl_data_tree_item.h                |    57 +
 .../plc4c/generated-sources/s7/include/szl_id.h    |    57 +
 .../s7/include/szl_module_type_class.h             |    51 +
 .../generated-sources/s7/include/szl_sublist.h     |    66 +
 .../generated-sources/s7/include/tpkt_packet.h     |    58 +
 .../generated-sources/s7/include/transport_size.h  |    95 +
 .../plc4c/generated-sources/s7/src/cotp_packet.c   |   553 +
 .../generated-sources/s7/src/cotp_parameter.c      |   284 +
 .../generated-sources/s7/src/cotp_protocol_class.c |    75 +
 .../generated-sources/s7/src/cotp_tpdu_size.c      |   116 +
 sandbox/plc4c/generated-sources/s7/src/data_item.c |   363 +
 .../s7/src/data_transport_error_code.c             |    81 +
 .../generated-sources/s7/src/data_transport_size.c |   116 +
 .../plc4c/generated-sources/s7/src/device_group.c  |    63 +
 .../plc4c/generated-sources/s7/src/memory_area.c   |   134 +
 .../plc4c/generated-sources/s7/src/s7_address.c    |   251 +
 .../plc4c/generated-sources/s7/src/s7_message.c    |   375 +
 .../plc4c/generated-sources/s7/src/s7_parameter.c  |   481 +
 .../s7/src/s7_parameter_user_data_item.c           |   325 +
 .../plc4c/generated-sources/s7/src/s7_payload.c    |   311 +
 .../s7/src/s7_payload_user_data_item.c             |   282 +
 .../s7/src/s7_var_payload_data_item.c              |   170 +
 .../s7/src/s7_var_payload_status_item.c            |    72 +
 .../s7/src/s7_var_request_parameter_item.c         |   146 +
 .../generated-sources/s7/src/szl_data_tree_item.c  |   157 +
 sandbox/plc4c/generated-sources/s7/src/szl_id.c    |   106 +
 .../s7/src/szl_module_type_class.c                 |    69 +
 .../plc4c/generated-sources/s7/src/szl_sublist.c   |   159 +
 .../plc4c/generated-sources/s7/src/tpkt_packet.c   |   132 +
 .../generated-sources/s7/src/transport_size.c      |   631 +
 sandbox/plc4c/pom.xml                              |    10 +-
 sandbox/plc4c/spi/CMakeLists.txt                   |    27 +-
 .../spi/include/plc4c/spi/evaluation_helper.h      |    34 +
 sandbox/plc4c/spi/include/plc4c/spi/read_buffer.h  |    98 +
 .../plc4c/spi/include/plc4c/spi/system_private.h   |     2 +
 .../plc4c/spi/include/plc4c/spi/types_private.h    |    72 +-
 sandbox/plc4c/spi/include/plc4c/spi/write_buffer.h |    87 +
 sandbox/plc4c/spi/src/connection.c                 |     5 +
 sandbox/plc4c/spi/src/data.c                       |    95 +-
 sandbox/plc4c/spi/src/evaluation_helper.c          |    40 +
 sandbox/plc4c/spi/src/read.c                       |    24 +-
 sandbox/plc4c/spi/src/read_buffer.c                |   609 +
 sandbox/plc4c/spi/src/system.c                     |    48 +-
 sandbox/plc4c/spi/src/utils/list.c                 |    17 +-
 sandbox/plc4c/spi/src/write.c                      |     9 +-
 sandbox/plc4c/spi/src/write_buffer.c               |   429 +
 sandbox/plc4c/spi/test/read_buffer_test.c          |   756 ++
 sandbox/plc4c/spi/test/spi_test.c                  |    37 +
 sandbox/plc4c/spi/test/system_test.c               |    14 +-
 sandbox/plc4c/spi/test/write_buffer_test.c         |   901 ++
 .../plc4c/transports/dummy/src/transport_dummy.c   |     5 +
 sandbox/plc4c/transports/serial/CMakeLists.txt     |     4 +-
 .../plc4c/transports/serial/src/transport_serial.c |    24 +
 sandbox/plc4c/transports/tcp/CMakeLists.txt        |     8 +-
 .../transports/tcp/include/plc4c/transport_tcp.h   |     8 +
 sandbox/plc4c/transports/tcp/src/transport_tcp.c   |   131 +
 sandbox/plc4cpp/pom.xml                            |    87 +-
 sandbox/plc4net/api/pom.xml                        |     2 +-
 sandbox/plc4net/plc4net.driver/pom.xml             |     2 +-
 sandbox/plc4net/pom.xml                            |     2 +-
 sandbox/plc4py/pom.xml                             |   105 +-
 sandbox/pom.xml                                    |    33 +-
 sandbox/test-java-amsads-driver/README.adoc        |    35 -
 sandbox/test-java-amsads-driver/pom.xml            |   160 -
 .../apache/plc4x/java/amsads/AMSADSPlcDriver.java  |    90 -
 .../amsads/configuration/AdsConfiguration.java     |   105 -
 .../connection/AdsAbstractPlcConnection.java       |   231 -
 .../amsads/connection/AdsConnectionFactory.java    |    58 -
 .../amsads/connection/AdsSerialPlcConnection.java  |    60 -
 .../amsads/connection/AdsTcpPlcConnection.java     |   366 -
 .../apache/plc4x/java/amsads/field/AdsField.java   |    27 -
 .../plc4x/java/amsads/field/AdsFieldHandler.java   |  1047 --
 .../plc4x/java/amsads/field/DirectAdsField.java    |   142 -
 .../plc4x/java/amsads/field/SymbolicAdsField.java  |   106 -
 .../java/amsads/model/AdsSubscriptionHandle.java   |    85 -
 .../java/amsads/protocol/Ads2PayloadProtocol.java  |    93 -
 .../java/amsads/protocol/AdsProtocolLogic.java     |    41 -
 .../amsads/protocol/Payload2SerialProtocol.java    |   114 -
 .../java/amsads/protocol/Payload2TcpProtocol.java  |    94 -
 .../java/amsads/protocol/Plc4x2AdsProtocol.java    |   335 -
 .../amsads/protocol/exception/AdsException.java    |    56 -
 .../exception/AdsProtocolOverflowException.java    |    32 -
 .../java/amsads/protocol/util/DigestUtil.java      |    46 -
 .../amsads/protocol/util/LittleEndianDecoder.java  |   489 -
 .../amsads/protocol/util/LittleEndianEncoder.java  |   285 -
 .../protocol/util/SingleMessageRateLimiter.java    |   124 -
 .../java/amsads/protocol/util/package-info.java    |    22 -
 .../plc4x/java/amsads/types/AdsDataType.java       |   577 -
 .../services/org.apache.plc4x.java.api.PlcDriver   |    38 -
 .../plc4x/java/amsads/AMSADSPlcDriverTest.java     |    42 -
 .../amsads/AmsAdsSerializerParserTest.java         |    29 -
 .../protocol/amsads/BenchmarkGeneratedDf1.java     |    76 -
 .../plc4x/protocol/amsads/BenchmarkManualDf1.java  |   239 -
 .../apache/plc4x/protocol/amsads/EndToEndTest.java |    57 -
 .../org/apache/plc4x/protocol/amsads/IOTest.java   |    91 -
 .../src/test/resources/testsuite/Df1Testsuite.xml  |   101 -
 sandbox/test-java-bacnetip-driver/pom.xml          |    20 +-
 .../apache/plc4x/java/bacnetip/BacNetIpDriver.java |   118 +
 .../plc4x/java/bacnetip/PassiveBacNetIpDriver.java |   113 -
 .../configuration/BacNetIpConfiguration.java       |   114 +
 .../PassiveBacNetIpConfiguration.java              |   111 -
 .../plc4x/java/bacnetip/ede/model/Datapoint.java   |    32 +-
 .../java/bacnetip/field/BacNetIpFieldHandler.java  |     4 +-
 .../bacnetip/protocol/BacNetIpProtocolLogic.java   |   254 +
 .../protocol/PassiveBacNetIpProtocolLogic.java     |   240 -
 .../services/org.apache.plc4x.java.api.PlcDriver   |     2 +-
 .../java/bacnetip/PassiveBacNetIpDriverManual.java |     4 +-
 sandbox/test-java-df1-driver/pom.xml               |    74 +-
 .../org/apache/plc4x/java/df1/DF1PlcDriver.java    |     9 +-
 .../plc4x/java/df1/field/Df1FieldHandler.java      |    11 +-
 .../plc4x/java/df1/protocol/Plc4XDf1Protocol.java  |    12 +-
 .../org/apache/plc4x/java/df1/util/DF1Utils.java   |     5 +-
 .../protocol/df1/Df1ParserSerializerTest.java      |     2 +-
 sandbox/test-streampipes-plc4x-adapters/pom.xml    |    56 +-
 .../java/streampipes/adapters/Plc4xAdapters.java   |     4 +-
 .../adapters/config/ConnectWorkerConfig.java       |     4 +-
 .../adapters/source/bacnetip/BacNetIpAdapter.java  |    32 +-
 .../adapters/source/knxnetip/KnxNetIpAdapter.java  |    36 +-
 sandbox/test-streampipes-plc4x-processors/pom.xml  |   125 +-
 .../processors/Plc4xProcessorsInit.java            |    14 +-
 .../java/streampipes/processors/config/Config.java |     4 +-
 .../ede/BacNetIpEdeDataEnrichmentController.java   |    32 +-
 .../enrich/knxnetip/ets5/Ets5DataEnrichment.java   |    16 +-
 .../ets5/Ets5DataEnrichmentController.java         |    30 +-
 .../ets5/Ets5DataEnrichmentParameters.java         |     4 +-
 sandbox/test-streampipes-plc4x-shared/pom.xml      |     2 +-
 .../shared/source/knxnetip/Constants.java          |     1 +
 src/main/script/preSiteGeneration.groovy           |    29 +-
 src/main/script/prerequisiteCheck.groovy           |    27 +-
 src/remote-resources/NOTICE                        |    26 -
 src/site/asciidoc/developers/building.adoc         |    23 +-
 .../developers/code-gen/protocol/mspec.adoc        |     6 +-
 src/site/asciidoc/developers/contributing.adoc     |     6 +-
 .../asciidoc/developers/infrastructure/ci.adoc     |     2 +-
 .../asciidoc/developers/infrastructure/vm.adoc     |     6 +-
 .../asciidoc/developers/infrastructure/vpn.adoc    |     4 +-
 .../developers/infrastructure/website.adoc         |     2 +-
 src/site/asciidoc/developers/preparing/index.adoc  |    14 +-
 src/site/asciidoc/developers/preparing/linux.adoc  |     4 +
 .../asciidoc/developers/release/build-tools.adoc   |   194 +-
 src/site/asciidoc/developers/release/release.adoc  |   121 +-
 .../asciidoc/developers/release/validation.adoc    |     6 +-
 src/site/asciidoc/developers/team.adoc             |    20 +-
 src/site/asciidoc/index.adoc                       |     6 +-
 src/site/asciidoc/plc4go/index.adoc                |   147 +
 src/site/asciidoc/protocols/canopen/index.adoc     |    39 +
 src/site/asciidoc/protocols/index.adoc             |     1 +
 src/site/asciidoc/users/adopters.adoc              |    62 +
 .../asciidoc/users/blogs-videos-and-slides.adoc    |     5 +
 src/site/asciidoc/users/commercial-support.adoc    |    51 +
 src/site/asciidoc/users/download.adoc              |    61 +-
 .../general-concepts.adoc                          |     0
 .../asciidoc/users/getting-started/plc4go.adoc     |   283 +
 src/site/asciidoc/users/getting-started/plc4j.adoc |   298 +
 .../{plc4j => getting-started}/virtual-modbus.adoc |     0
 src/site/asciidoc/users/gettingstarted.adoc        |     6 +-
 src/site/asciidoc/users/index.adoc                 |    13 +
 .../asciidoc/users/integrations/apache-iotdb.adoc  |    42 +
 .../asciidoc/users/integrations/apache-kafka.adoc  |   218 +-
 .../asciidoc/users/integrations/apache-nifi.adoc   |   135 +
 .../asciidoc/users/integrations/eclipse-milo.adoc  |   123 +
 src/site/asciidoc/users/plc4j/gettingstarted.adoc  |   294 -
 src/site/asciidoc/users/preparing-issues.adoc      |    19 +
 src/site/asciidoc/users/protocols/canopen.adoc     |   214 +
 src/site/asciidoc/users/protocols/knxnetip.adoc    |    86 +
 src/site/asciidoc/users/protocols/modbus.adoc      |   162 +-
 src/site/asciidoc/users/protocols/opc-ua.adoc      |   132 +-
 src/site/asciidoc/users/protocols/s7.adoc          |    21 +-
 src/site/asciidoc/users/protocols/simulated.adoc   |   120 +
 src/site/asciidoc/users/tools/connection-pool.adoc |    55 +
 src/site/asciidoc/users/tools/scraper.adoc         |   207 +-
 src/site/asciidoc/users/transports/index.adoc      |     1 +
 src/site/asciidoc/users/transports/socketcan.adoc  |    66 +
 src/site/asciidoc/users/users.adoc                 |    43 -
 src/site/resources-filtered/plc4x-doap.rdf         |    22 +-
 .../images/integrations/nifi/add-processor.png     |   Bin 0 -> 25508 bytes
 .../nifi/configure-processor-properties.png        |   Bin 0 -> 36219 bytes
 .../integrations/nifi/configure-scheduling.png     |   Bin 0 -> 37276 bytes
 .../images/integrations/nifi/configured-flow.png   |   Bin 0 -> 130333 bytes
 .../integrations/nifi/configured-log-processor.png |   Bin 0 -> 54626 bytes
 .../nifi/configured-plc4x-source-processor.png     |   Bin 0 -> 41203 bytes
 .../integrations/nifi/configuring-connection.png   |   Bin 0 -> 39490 bytes
 .../images/integrations/nifi/empty-nifi-flow.png   |   Bin 0 -> 74244 bytes
 .../integrations/nifi/list-of-plc4x-processors.png |   Bin 0 -> 103175 bytes
 .../images/integrations/nifi/running-flow.png      |   Bin 0 -> 59506 bytes
 src/site/resources/images/team/cdutz.png           |   Bin 27791 -> 66024 bytes
 src/site/resources/images/team/ldywicki.jpg        |   Bin 0 -> 12197 bytes
 src/site/resources/images/team/mstrljic.jpg        |   Bin 0 -> 28604 bytes
 src/site/resources/images/toddy-loves-apache.png   |   Bin 0 -> 265483 bytes
 .../images/users/companies/logo-codecentric.png    |   Bin 0 -> 26220 bytes
 .../images/users/companies/logo-connectorio.png    |   Bin 0 -> 17271 bytes
 .../images/users/companies/logo-industryfusion.png |   Bin 0 -> 15414 bytes
 .../images/users/companies/logo-pietrorimoldi.jpg  |   Bin 0 -> 584330 bytes
 .../users/companies/logo-pragmatic-industries.svg  |   498 +
 .../users/companies/logo-pragmatic-minds.svg       |   714 ++
 .../logo_record_evolution_single_dark_bgfont.png   |   Bin 0 -> 10498 bytes
 .../users/companies/logo_unistuttgart_isw.png      |   Bin 0 -> 31592 bytes
 src/site/site.xml                                  |    24 +-
 tools/boost/pom.xml                                |     2 +-
 tools/logstash/pom.xml                             |     2 +-
 tools/pom.xml                                      |     8 +-
 tools/thrift/pom.xml                               |   407 -
 tools/thrift/src/assembly/compiler.xml             |    43 -
 tools/thrift/src/assembly/cpp.xml                  |    56 -
 tools/thrift/src/assembly/python.xml               |    43 -
 1488 files changed, 196441 insertions(+), 26355 deletions(-)
 create mode 100644 .asf.yaml
 delete mode 100644 .gitlab-ci.yml
 create mode 100644 build-utils/language-base-freemarker/src/main/java/org/apache/plc4x/plugins/codegenerator/protocol/freemarker/BaseFreemarkerLanguageTemplateHelper.java
 create mode 100644 build-utils/language-base-freemarker/src/main/java/org/apache/plc4x/plugins/codegenerator/protocol/freemarker/FreemarkerException.java
 create mode 100644 build-utils/language-c/src/main/resources/templates/c/data-io-template-c.ftlh
 create mode 100644 build-utils/language-c/src/main/resources/templates/c/data-io-template-h.ftlh
 create mode 100644 build-utils/language-c/src/main/resources/templates/c/enum-template-c.ftlh
 create mode 100644 build-utils/language-c/src/main/resources/templates/c/enum-template-h.ftlh
 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
 create mode 100644 build-utils/language-go/src/main/java/org/apache/plc4x/language/go/utils/FieldUtils.java
 create mode 100644 build-utils/language-go/src/main/resources/META-INF/services/org.apache.plc4x.plugins.codegenerator.language.LanguageOutput
 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
 delete mode 100644 build-utils/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/references/DefaultComplexTypeReference.java
 delete mode 100644 build-utils/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/references/DefaultFloatTypeReference.java
 delete mode 100644 build-utils/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/references/DefaultIntegerTypeReference.java
 delete mode 100644 build-utils/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/references/DefaultSimpleTypeReference.java
 delete mode 100644 build-utils/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/references/DefaultSimpleVarLengthTypeReference.java
 delete mode 100644 build-utils/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/references/DefaultStringTypeReference.java
 delete mode 100644 build-utils/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/references/DefaultTemporalTypeReference.java
 create mode 100644 go.mod
 create mode 100644 media/logos/300ppi/Toddy colorize@300x.png
 create mode 100644 media/logos/PDF/Toddy colorize.pdf
 create mode 100644 media/logos/SVG/logo PLC4X black line only toddy.svg
 create mode 100644 media/powered-by-plc4x.png
 create mode 100644 media/toddy-loves-apache.png
 create mode 100644 plc4go/assets/testing/protocols/knxnetip/ParserSerializerTestsuite.xml
 create mode 100644 plc4go/assets/testing/protocols/modbus/DriverTestsuite.xml
 create mode 100644 plc4go/assets/testing/protocols/modbus/ParserSerializerTestsuite.xml
 create mode 100644 plc4go/assets/testing/protocols/s7/DriverTestsuite.xml
 create mode 100644 plc4go/assets/testing/protocols/s7/ParserSerializerTestsuite.xml
 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/knx_discovery_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/KnxNetIpActiveReader.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/KnxNetIpBrowser.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/KnxNetIpConnection.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/KnxNetIpDiscoverer.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/Utils.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/ParserHelper.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/PropertyDataTypeIO.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/XmlParserHelper.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/Apdu.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/ApduControl.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/ApduControlAck.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/ApduControlConnect.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/ApduControlContainer.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/ApduControlDisconnect.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/ApduControlNack.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/ApduData.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataAdcRead.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataAdcResponse.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataContainer.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataDeviceDescriptorRead.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataDeviceDescriptorResponse.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExt.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtAuthorizeRequest.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtAuthorizeResponse.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtDomainAddressRead.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtDomainAddressResponse.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtDomainAddressSelectiveRead.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtDomainAddressSerialNumberRead.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtDomainAddressSerialNumberResponse.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtDomainAddressSerialNumberWrite.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtDomainAddressWrite.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtFileStreamInfoReport.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtGroupPropertyValueInfoReport.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtGroupPropertyValueRead.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtGroupPropertyValueResponse.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtGroupPropertyValueWrite.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtIndividualAddressSerialNumberRead.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtIndividualAddressSerialNumberResponse.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtIndividualAddressSerialNumberWrite.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtKeyResponse.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtKeyWrite.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtLinkRead.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtLinkResponse.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtLinkWrite.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtMemoryBitWrite.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtNetworkParameterRead.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtNetworkParameterResponse.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtNetworkParameterWrite.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtOpenRoutingTableRequest.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtPropertyDescriptionRead.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtPropertyDescriptionResponse.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtPropertyValueRead.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtPropertyValueResponse.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtPropertyValueWrite.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtReadRouterMemoryRequest.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtReadRouterMemoryResponse.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtReadRouterStatusRequest.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtReadRouterStatusResponse.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtReadRoutingTableRequest.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtReadRoutingTableResponse.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtWriteRouterMemoryRequest.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtWriteRouterStatusRequest.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtWriteRoutingTableRequest.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataGroupValueRead.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataGroupValueResponse.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataGroupValueWrite.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataIndividualAddressRead.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataIndividualAddressResponse.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataIndividualAddressWrite.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataMemoryRead.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataMemoryResponse.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataMemoryWrite.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataOther.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataRestart.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataUserMessage.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/CEMIPriority.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/ChannelInformation.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/DeviceDescriptorMediumType.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/DeviceDescriptorType0.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/DeviceDescriptorType2.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/FirmwareType.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/KnxDatapointMainType.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/KnxInterfaceObjectProperty.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/KnxInterfaceObjectType.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/KnxLayer.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/KnxManufacturer.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/KnxMedium.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/KnxPropertyDataType.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/LBusmonInd.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/LDataCon.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/LDataFrame.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/LDataFrameData.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/LDataFrameDataExt.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/LDataFramePollingData.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/LDataInd.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/LDataReq.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/LPollDataCon.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/LPollDataReq.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/LRawCon.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/LRawInd.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/LRawReq.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/MACAddress.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/MFuncPropCommandReq.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/MFuncPropCon.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/MFuncPropStateReadReq.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/MPropInfoInd.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/MPropReadCon.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/MPropReadReq.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/MPropWriteCon.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/MPropWriteReq.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/MResetInd.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/MResetReq.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/SupportedPhysicalMedia.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/TDataConnectedInd.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/TDataConnectedReq.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/TDataIndividualInd.go
 create mode 100644 plc4go/internal/plc4go/knxnetip/readwrite/model/TDataIndividualReq.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/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/PlcBrowser.go
 create mode 100644 plc4go/internal/plc4go/spi/PlcDiscoverer.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/spi/model/DefaultBrowseRequest.go
 create mode 100644 plc4go/internal/plc4go/spi/model/DefaultPlcDiscoveryEvent.go
 create mode 100644 plc4go/internal/plc4go/spi/model/DefaultPlcReadRequest.go
 create mode 100644 plc4go/internal/plc4go/spi/model/DefaultPlcReadResponse.go
 create mode 100644 plc4go/internal/plc4go/spi/model/DefaultPlcSubscriptionEvent.go
 create mode 100644 plc4go/internal/plc4go/spi/model/DefaultPlcSubscriptionRequest.go
 create mode 100644 plc4go/internal/plc4go/spi/model/DefaultPlcSubscriptionResponse.go
 create mode 100644 plc4go/internal/plc4go/spi/model/DefaultPlcWriteRequest.go
 create mode 100644 plc4go/internal/plc4go/spi/model/DefaultPlcWriteResponse.go
 create mode 100644 plc4go/internal/plc4go/spi/model/RequestInterceptor.go
 create mode 100644 plc4go/internal/plc4go/spi/testutils/DriverTestRunner.go
 create mode 100644 plc4go/internal/plc4go/spi/testutils/ParserSerializerTestRunner.go
 create mode 100644 plc4go/internal/plc4go/spi/testutils/TestUtils.go
 create mode 100644 plc4go/internal/plc4go/spi/transports/Transport.go
 create mode 100644 plc4go/internal/plc4go/spi/transports/TransportInstance.go
 create mode 100644 plc4go/internal/plc4go/spi/transports/tcp/TcpTransport.go
 create mode 100644 plc4go/internal/plc4go/spi/transports/test/TestTransport.go
 create mode 100644 plc4go/internal/plc4go/spi/transports/udp/UdpTransport.go
 create mode 100644 plc4go/internal/plc4go/spi/utils/CastUtils.go
 create mode 100644 plc4go/internal/plc4go/spi/utils/ReadBuffer.go
 create mode 100644 plc4go/internal/plc4go/spi/utils/Regexp.go
 create mode 100644 plc4go/internal/plc4go/spi/utils/Serializable.go
 create mode 100644 plc4go/internal/plc4go/spi/utils/Utils.go
 create mode 100644 plc4go/internal/plc4go/spi/utils/WriteBuffer.go
 create mode 100644 plc4go/internal/plc4go/spi/values/BOOL.go
 create mode 100644 plc4go/internal/plc4go/spi/values/BYTE.go
 create mode 100644 plc4go/internal/plc4go/spi/values/CHAR.go
 create mode 100644 plc4go/internal/plc4go/spi/values/DATE.go
 create mode 100644 plc4go/internal/plc4go/spi/values/DATE_AND_TIME.go
 create mode 100644 plc4go/internal/plc4go/spi/values/DINT.go
 create mode 100644 plc4go/internal/plc4go/spi/values/DWORD.go
 create mode 100644 plc4go/internal/plc4go/spi/values/IEC61131ValueHandler.go
 create mode 100644 plc4go/internal/plc4go/spi/values/INT.go
 create mode 100644 plc4go/internal/plc4go/spi/values/LINT.go
 create mode 100644 plc4go/internal/plc4go/spi/values/LREAL.go
 create mode 100644 plc4go/internal/plc4go/spi/values/LTIME.go
 create mode 100644 plc4go/internal/plc4go/spi/values/LWORD.go
 create mode 100644 plc4go/internal/plc4go/spi/values/NULL.go
 create mode 100644 plc4go/internal/plc4go/spi/values/PlcBitString.go
 create mode 100644 plc4go/internal/plc4go/spi/values/PlcByteArray.go
 create mode 100644 plc4go/internal/plc4go/spi/values/PlcList.go
 create mode 100644 plc4go/internal/plc4go/spi/values/PlcSimpleValueAdapter.go
 create mode 100644 plc4go/internal/plc4go/spi/values/PlcStruct.go
 create mode 100644 plc4go/internal/plc4go/spi/values/PlcValueAdapter.go
 create mode 100644 plc4go/internal/plc4go/spi/values/REAL.go
 create mode 100644 plc4go/internal/plc4go/spi/values/SINT.go
 create mode 100644 plc4go/internal/plc4go/spi/values/STRING.go
 create mode 100644 plc4go/internal/plc4go/spi/values/TIME.go
 create mode 100644 plc4go/internal/plc4go/spi/values/TIME_OF_DAY.go
 create mode 100644 plc4go/internal/plc4go/spi/values/UDINT.go
 create mode 100644 plc4go/internal/plc4go/spi/values/UINT.go
 create mode 100644 plc4go/internal/plc4go/spi/values/ULINT.go
 create mode 100644 plc4go/internal/plc4go/spi/values/USINT.go
 create mode 100644 plc4go/internal/plc4go/spi/values/WCHAR.go
 create mode 100644 plc4go/internal/plc4go/spi/values/WORD.go
 create mode 100644 plc4go/internal/plc4go/spi/values/WSTRING.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/drivers/drivers.go
 create mode 100644 plc4go/pkg/plc4go/model/plc_browse.go
 create mode 100644 plc4go/pkg/plc4go/model/plc_connection_metadata.go
 create mode 100644 plc4go/pkg/plc4go/model/plc_discovery.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.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.go
 create mode 100644 plc4go/pkg/plc4go/model/plc_unsubscription.go
 create mode 100644 plc4go/pkg/plc4go/model/plc_write.go
 create mode 100644 plc4go/pkg/plc4go/transports/transports.go
 create mode 100644 plc4go/pkg/plc4go/values/plc_value.go
 create mode 100644 plc4go/pom.xml
 create mode 100644 plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/PlcBrowseRequest.java
 create mode 100644 plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/PlcBrowseResponse.java
 create mode 100644 plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/PlcDiscoveryRequest.java
 create mode 100644 plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/PlcDiscoveryResponse.java
 create mode 100644 plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/PlcSubscriptionFieldRequest.java
 create mode 100644 plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/PlcSubscriptionFieldResponse.java
 create mode 100644 plc4j/api/src/main/java/org/apache/plc4x/java/api/model/PlcSubscriptionField.java
 delete mode 100644 plc4j/api/src/main/java/org/apache/plc4x/java/api/value/PlcBigDecimal.java
 delete mode 100644 plc4j/api/src/main/java/org/apache/plc4x/java/api/value/PlcBigInteger.java
 delete mode 100644 plc4j/api/src/main/java/org/apache/plc4x/java/api/value/PlcBoolean.java
 delete mode 100644 plc4j/api/src/main/java/org/apache/plc4x/java/api/value/PlcByte.java
 delete mode 100644 plc4j/api/src/main/java/org/apache/plc4x/java/api/value/PlcDate.java
 delete mode 100644 plc4j/api/src/main/java/org/apache/plc4x/java/api/value/PlcDateTime.java
 delete mode 100644 plc4j/api/src/main/java/org/apache/plc4x/java/api/value/PlcDouble.java
 delete mode 100644 plc4j/api/src/main/java/org/apache/plc4x/java/api/value/PlcFloat.java
 delete mode 100644 plc4j/api/src/main/java/org/apache/plc4x/java/api/value/PlcInteger.java
 delete mode 100644 plc4j/api/src/main/java/org/apache/plc4x/java/api/value/PlcList.java
 delete mode 100644 plc4j/api/src/main/java/org/apache/plc4x/java/api/value/PlcLong.java
 delete mode 100644 plc4j/api/src/main/java/org/apache/plc4x/java/api/value/PlcShort.java
 delete mode 100644 plc4j/api/src/main/java/org/apache/plc4x/java/api/value/PlcSimpleValue.java
 delete mode 100644 plc4j/api/src/main/java/org/apache/plc4x/java/api/value/PlcString.java
 delete mode 100644 plc4j/api/src/main/java/org/apache/plc4x/java/api/value/PlcStruct.java
 delete mode 100644 plc4j/api/src/main/java/org/apache/plc4x/java/api/value/PlcTime.java
 delete mode 100644 plc4j/api/src/main/java/org/apache/plc4x/java/api/value/PlcValueAdapter.java
 create mode 100644 plc4j/api/src/main/java/org/apache/plc4x/java/api/value/PlcValueHandler.java
 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
 create mode 100644 plc4j/drivers/ads/src/main/java/org/apache/plc4x/java/ads/ADSPlcDriver.java
 delete mode 100644 plc4j/drivers/ads/src/main/java/org/apache/plc4x/java/ads/AdsPlcDriver.java
 create mode 100644 plc4j/drivers/ads/src/main/java/org/apache/plc4x/java/ads/configuration/AdsConfiguration.java
 delete mode 100644 plc4j/drivers/ads/src/main/java/org/apache/plc4x/java/ads/connection/AdsAbstractPlcConnection.java
 delete mode 100644 plc4j/drivers/ads/src/main/java/org/apache/plc4x/java/ads/connection/AdsConnectionFactory.java
 delete mode 100644 plc4j/drivers/ads/src/main/java/org/apache/plc4x/java/ads/connection/AdsSerialPlcConnection.java
 delete mode 100644 plc4j/drivers/ads/src/main/java/org/apache/plc4x/java/ads/connection/AdsTcpPlcConnection.java
 create mode 100644 plc4j/drivers/ads/src/main/java/org/apache/plc4x/java/ads/field/AdsField.java
 create mode 100644 plc4j/drivers/ads/src/main/java/org/apache/plc4x/java/ads/field/AdsFieldHandler.java
 create mode 100644 plc4j/drivers/ads/src/main/java/org/apache/plc4x/java/ads/field/AdsStringField.java
 create mode 100644 plc4j/drivers/ads/src/main/java/org/apache/plc4x/java/ads/field/DirectAdsField.java
 create mode 100644 plc4j/drivers/ads/src/main/java/org/apache/plc4x/java/ads/field/DirectAdsStringField.java
 create mode 100644 plc4j/drivers/ads/src/main/java/org/apache/plc4x/java/ads/field/SymbolicAdsField.java
 create mode 100644 plc4j/drivers/ads/src/main/java/org/apache/plc4x/java/ads/field/SymbolicAdsStringField.java
 create mode 100644 plc4j/drivers/ads/src/main/java/org/apache/plc4x/java/ads/model/AdsSubscriptionHandle.java
 create mode 100644 plc4j/drivers/ads/src/main/java/org/apache/plc4x/java/ads/protocol/AdsProtocolLogic.java
 create mode 100644 plc4j/drivers/ads/src/main/java/org/apache/plc4x/java/ads/utils/StaticHelper.java
 delete mode 100644 plc4j/drivers/ads/src/test/java/org/apache/plc4x/java/ads/AdsPlcDriverTest.java
 delete mode 100644 plc4j/drivers/ads/src/test/java/org/apache/plc4x/java/ads/adslib/ADSClientNotificationExample.java
 delete mode 100644 plc4j/drivers/ads/src/test/java/org/apache/plc4x/java/ads/adslib/AdsLib.java
 delete mode 100644 plc4j/drivers/ads/src/test/java/org/apache/plc4x/java/ads/adslib/AmsRequest.java
 delete mode 100644 plc4j/drivers/ads/src/test/java/org/apache/plc4x/java/ads/adslib/AmsRouter.java
 delete mode 100644 plc4j/drivers/ads/src/test/java/org/apache/plc4x/java/ads/adslib/Output.java
 delete mode 100644 plc4j/drivers/ads/src/test/java/org/apache/plc4x/java/ads/adslib/package-info.java
 delete mode 100644 plc4j/drivers/ads/src/test/java/org/apache/plc4x/java/ads/connection/AdsAbstractPlcConnectionTest.java
 delete mode 100644 plc4j/drivers/ads/src/test/java/org/apache/plc4x/java/ads/connection/AdsConnectionFactoryTest.java
 delete mode 100644 plc4j/drivers/ads/src/test/java/org/apache/plc4x/java/ads/connection/AdsSerialPlcConnectionTest.java
 delete mode 100644 plc4j/drivers/ads/src/test/java/org/apache/plc4x/java/ads/connection/AdsTcpPlcConnectionTests.java
 create mode 100644 plc4j/drivers/ads/src/test/java/org/apache/plc4x/protocol/ads/AdsDiscoverySerializerParserTest.java
 create mode 100644 plc4j/drivers/ads/src/test/java/org/apache/plc4x/protocol/ads/AdsDriverIT.java
 create mode 100644 plc4j/drivers/ads/src/test/java/org/apache/plc4x/protocol/ads/AdsSerializerParserTest.java
 create mode 100644 plc4j/drivers/ads/src/test/java/org/apache/plc4x/protocol/ads/HexBase64Helper.java
 create mode 100644 plc4j/drivers/ads/src/test/java/org/apache/plc4x/protocol/ads/ManualAdsDriverTest.java
 create mode 100644 plc4j/drivers/ads/src/test/java/org/apache/plc4x/protocol/ads/ManualParserSerializerTest.java
 create mode 100644 plc4j/drivers/canopen/pom.xml
 create mode 100644 plc4j/drivers/canopen/src/main/java/org/apache/plc4x/java/canopen/CANOpenPlcDriver.java
 create mode 100644 plc4j/drivers/canopen/src/main/java/org/apache/plc4x/java/canopen/api/conversation/canopen/CANConversation.java
 create mode 100644 plc4j/drivers/canopen/src/main/java/org/apache/plc4x/java/canopen/api/conversation/canopen/CANOpenConversationBase.java
 create mode 100644 plc4j/drivers/canopen/src/main/java/org/apache/plc4x/java/canopen/api/conversation/canopen/SDODownloadConversation.java
 create mode 100644 plc4j/drivers/canopen/src/main/java/org/apache/plc4x/java/canopen/api/conversation/canopen/SDOUploadConversation.java
 create mode 100644 plc4j/drivers/canopen/src/main/java/org/apache/plc4x/java/canopen/api/segmentation/accumulator/ByteStorage.java
 create mode 100644 plc4j/drivers/canopen/src/main/java/org/apache/plc4x/java/canopen/api/segmentation/accumulator/Storage.java
 create mode 100644 plc4j/drivers/canopen/src/main/java/org/apache/plc4x/java/canopen/configuration/CANOpenConfiguration.java
 create mode 100644 plc4j/drivers/canopen/src/main/java/org/apache/plc4x/java/canopen/context/CANOpenDriverContext.java
 create mode 100644 plc4j/drivers/canopen/src/main/java/org/apache/plc4x/java/canopen/field/CANOpenField.java
 create mode 100644 plc4j/drivers/canopen/src/main/java/org/apache/plc4x/java/canopen/field/CANOpenFieldHandler.java
 create mode 100644 plc4j/drivers/canopen/src/main/java/org/apache/plc4x/java/canopen/field/CANOpenHeartbeatField.java
 create mode 100644 plc4j/drivers/canopen/src/main/java/org/apache/plc4x/java/canopen/field/CANOpenNMTField.java
 create mode 100644 plc4j/drivers/canopen/src/main/java/org/apache/plc4x/java/canopen/field/CANOpenPDOField.java
 create mode 100644 plc4j/drivers/canopen/src/main/java/org/apache/plc4x/java/canopen/field/CANOpenSDOField.java
 create mode 100644 plc4j/drivers/canopen/src/main/java/org/apache/plc4x/java/canopen/field/CANOpenSubscriptionField.java
 create mode 100644 plc4j/drivers/canopen/src/main/java/org/apache/plc4x/java/canopen/helper/CANOpenHelper.java
 create mode 100644 plc4j/drivers/canopen/src/main/java/org/apache/plc4x/java/canopen/helper/HeaderParser.java
 create mode 100644 plc4j/drivers/canopen/src/main/java/org/apache/plc4x/java/canopen/listener/Callback.java
 create mode 100644 plc4j/drivers/canopen/src/main/java/org/apache/plc4x/java/canopen/listener/CompositeCallback.java
 create mode 100644 plc4j/drivers/canopen/src/main/java/org/apache/plc4x/java/canopen/protocol/CANOpenProtocolLogic.java
 create mode 100644 plc4j/drivers/canopen/src/main/java/org/apache/plc4x/java/canopen/protocol/CANOpenSubscriptionHandle.java
 create mode 100644 plc4j/drivers/canopen/src/main/java/org/apache/plc4x/java/canopen/socketcan/SocketCANConversation.java
 create mode 100644 plc4j/drivers/canopen/src/main/java/org/apache/plc4x/java/canopen/transport/CANOpenAbortException.java
 create mode 100644 plc4j/drivers/canopen/src/main/java/org/apache/plc4x/java/canopen/transport/CANOpenFrame.java
 create mode 100644 plc4j/drivers/canopen/src/main/java/org/apache/plc4x/java/canopen/transport/CANOpenFrameBuilder.java
 create mode 100644 plc4j/drivers/canopen/src/main/java/org/apache/plc4x/java/canopen/transport/CANOpenFrameBuilderFactory.java
 create mode 100644 plc4j/drivers/canopen/src/main/java/org/apache/plc4x/java/canopen/transport/socketcan/CANOpenSocketCANFrame.java
 create mode 100644 plc4j/drivers/canopen/src/main/java/org/apache/plc4x/java/canopen/transport/socketcan/CANOpenSocketCANFrameBuilder.java
 create mode 100644 plc4j/drivers/canopen/src/main/java/org/apache/plc4x/java/canopen/transport/socketcan/io/CANOpenSocketCANFrameIO.java
 create mode 100644 plc4j/drivers/canopen/src/main/resources/META-INF/services/org.apache.plc4x.java.api.PlcDriver
 create mode 100644 plc4j/drivers/canopen/src/test/java/org/apache/plc4x/java/canopen/CANOpenDriverSDOIT.java
 create mode 100644 plc4j/drivers/canopen/src/test/java/org/apache/plc4x/java/canopen/CANOpenPayloadTest.java
 create mode 100644 plc4j/drivers/canopen/src/test/java/org/apache/plc4x/java/canopen/CANOpenWiresharkTest.java
 create mode 100644 plc4j/drivers/canopen/src/test/java/org/apache/plc4x/java/canopen/Main.java
 create mode 100644 plc4j/drivers/canopen/src/test/java/org/apache/plc4x/java/canopen/ManualParserTest.java
 create mode 100644 plc4j/drivers/canopen/src/test/java/org/apache/plc4x/java/canopen/field/CANOpenFieldSDOTest.java
 create mode 100644 plc4j/drivers/canopen/src/test/java/org/apache/plc4x/java/canopen/field/CANOpenNMTFieldTest.java
 create mode 100644 plc4j/drivers/canopen/src/test/java/org/apache/plc4x/java/canopen/field/CANOpenPDOFieldTest.java
 create mode 100644 plc4j/drivers/canopen/src/test/java/org/apache/plc4x/java/canopen/field/CANOpenSDOFieldTest.java
 delete mode 100644 plc4j/drivers/eip/src/test/resources/testsuite/EIPDriverTestsuite.xml
 create mode 100644 plc4j/drivers/knxnetip/src/main/java/org/apache/plc4x/java/knxnetip/context/KnxNetIpDriverContext.java
 delete mode 100644 plc4j/drivers/knxnetip/src/test/java/org/apache/plc4x/java/knxnetip/KNXNetIpTest.java
 create mode 100644 plc4j/drivers/knxnetip/src/test/java/org/apache/plc4x/java/knxnetip/KnxNetIpTest.java
 delete mode 100644 plc4j/drivers/knxnetip/src/test/resources/testsuite/KNXNetIPTestsuite.xml
 create mode 100644 plc4j/drivers/mock/src/main/java/org/apache/plc4x/java/mock/field/MockValueHandler.java
 create mode 100644 plc4j/drivers/modbus/src/main/java/org/apache/plc4x/java/modbus/field/ModbusExtendedRegister.java
 create mode 100644 plc4j/drivers/modbus/src/test/java/org/apache/plc4x/java/modbus/ManualModbusDriverTest.java
 create mode 100644 plc4j/drivers/modbus/src/test/java/org/apache/plc4x/java/modbus/ModbusDriverIT.java
 create mode 100644 plc4j/drivers/modbus/src/test/java/org/apache/plc4x/java/modbus/ModbusEncodeTest.java
 create mode 100644 plc4j/drivers/modbus/src/test/java/org/apache/plc4x/java/modbus/ModbusFieldDataTypeTest.java
 create mode 100644 plc4j/drivers/modbus/src/test/java/org/apache/plc4x/java/modbus/ModbusFieldTest.java
 delete mode 100644 plc4j/drivers/modbus/src/test/java/org/apache/plc4x/java/modbus/ModbusIOTest.java
 create mode 100644 plc4j/drivers/modbus/src/test/java/org/apache/plc4x/java/modbus/ModbusParserSerializerTest.java
 delete mode 100644 plc4j/drivers/modbus/src/test/resources/testsuite/ModbusTestsuite.xml
 delete mode 100644 plc4j/drivers/opcua/src/main/java/org/apache/plc4x/java/opcua/protocol/model/OpcuaDataTypes.java
 delete mode 100644 plc4j/drivers/opcua/src/main/java/org/apache/plc4x/java/opcua/protocol/model/OpcuaIdentifierType.java
 create mode 100644 plc4j/drivers/s7/src/main/java/org/apache/plc4x/java/s7/readwrite/field/S7StringField.java
 create mode 100644 plc4j/drivers/s7/src/test/java/org/apache/plc4x/java/s7/readwrite/DatatypesTest.java
 create mode 100644 plc4j/drivers/s7/src/test/java/org/apache/plc4x/java/s7/readwrite/field/S7FieldTest.java
 create mode 100644 plc4j/drivers/s7/src/test/java/org/apache/plc4x/java/s7/readwrite/issues/PLC4X272.java
 create mode 100644 plc4j/drivers/s7/src/test/resources/tests/PLC4X-272.xml
 delete mode 100644 plc4j/drivers/s7/src/test/resources/testsuite/S7DriverIT.xml
 delete mode 100644 plc4j/drivers/s7/src/test/resources/testsuite/S7ParserSerializerTest.xml
 create mode 100644 plc4j/drivers/simulated/src/main/java/org/apache/plc4x/java/simulated/utils/StaticHelper.java
 delete mode 100644 plc4j/examples/dummy-driver/pom.xml
 delete mode 100644 plc4j/examples/dummy-driver/src/main/java/org/apache/plc4x/java/examples/dummydriver/DummyDriver.java
 delete mode 100644 plc4j/examples/dummy-driver/src/main/java/org/apache/plc4x/java/examples/dummydriver/connection/DummyConnection.java
 delete mode 100644 plc4j/examples/dummy-driver/src/main/java/org/apache/plc4x/java/examples/dummydriver/model/DummyField.java
 delete mode 100644 plc4j/examples/dummy-driver/src/main/java/org/apache/plc4x/java/examples/dummydriver/netty/DummyProtocol.java
 delete mode 100644 plc4j/examples/dummy-driver/src/main/resources/META-INF/services/org.apache.plc4x.java.api.PlcDriver
 create mode 100644 plc4j/examples/hello-integration-iotdb/src/main/java/org/apache/plc4x/java/examples/integration/iotdb/IIoTDBWriter.java
 create mode 100644 plc4j/examples/hello-integration-iotdb/src/main/java/org/apache/plc4x/java/examples/integration/iotdb/IoTDBWriterWithJDBC.java
 create mode 100644 plc4j/examples/hello-integration-iotdb/src/main/java/org/apache/plc4x/java/examples/integration/iotdb/IoTDBWriterWithSession.java
 create mode 100644 plc4j/examples/hello-webservice/README.adoc
 create mode 100644 plc4j/examples/hello-webservice/pom.xml
 create mode 100644 plc4j/examples/hello-webservice/src/main/java/org/apache/plc4x/java/examples/hellowebservice/CliOptions.java
 create mode 100644 plc4j/examples/hello-webservice/src/main/java/org/apache/plc4x/java/examples/hellowebservice/HelloWebservice.java
 create mode 100644 plc4j/examples/hello-webservice/src/main/resources/logback.xml
 create mode 100644 plc4j/examples/hello-world-plc4x-subscription/pom.xml
 create mode 100644 plc4j/examples/hello-world-plc4x-subscription/src/main/java/org/apache/plc4x/java/examples/helloplc4x/subscription/CliOptions.java
 create mode 100644 plc4j/examples/hello-world-plc4x-subscription/src/main/java/org/apache/plc4x/java/examples/helloplc4x/subscription/HelloPlc4xSubscription.java
 create mode 100644 plc4j/examples/hello-world-plc4x-subscription/src/main/resources/logback.xml
 create mode 100644 plc4j/examples/hello-world-plc4x-write/pom.xml
 create mode 100644 plc4j/examples/hello-world-plc4x-write/src/main/java/org/apache/plc4x/java/examples/helloplc4x/write/CliOptions.java
 create mode 100644 plc4j/examples/hello-world-plc4x-write/src/main/java/org/apache/plc4x/java/examples/helloplc4x/write/HelloPlc4xWrite.java
 create mode 100644 plc4j/examples/hello-world-plc4x-write/src/main/resources/logback.xml
 create mode 100644 plc4j/examples/poll-loop/pom.xml
 create mode 100644 plc4j/examples/poll-loop/src/main/java/org/apache/plc4x/java/examples/pollloop/Main.java
 create mode 100644 plc4j/examples/poll-loop/src/main/java/org/apache/plc4x/java/examples/pollloop/PollLoop.java
 create mode 100644 plc4j/integrations/apache-kafka/config/plc4x-sink.properties
 create mode 100644 plc4j/integrations/apache-kafka/src/main/java/org/apache/plc4x/kafka/Plc4xSinkConnector.java
 create mode 100644 plc4j/integrations/apache-kafka/src/main/java/org/apache/plc4x/kafka/Plc4xSinkTask.java
 create mode 100644 plc4j/integrations/apache-kafka/src/main/java/org/apache/plc4x/kafka/config/Constants.java
 delete mode 100644 plc4j/integrations/apache-kafka/src/main/java/org/apache/plc4x/kafka/config/Defaults.java
 create mode 100644 plc4j/integrations/apache-kafka/src/main/java/org/apache/plc4x/kafka/config/Field.java
 create mode 100644 plc4j/integrations/apache-kafka/src/main/java/org/apache/plc4x/kafka/config/Sink.java
 create mode 100644 plc4j/integrations/apache-kafka/src/main/java/org/apache/plc4x/kafka/config/SinkConfig.java
 delete mode 100644 plc4j/integrations/apache-kafka/src/main/java/org/apache/plc4x/kafka/exceptions/ConfigurationException.java
 create mode 100644 plc4j/integrations/apache-kafka/src/remote-resources/LICENSE
 create mode 100644 plc4j/integrations/apache-kafka/src/remote-resources/NOTICE
 create mode 100644 plc4j/integrations/apache-kafka/src/test/java/org/apache/plc4x/kafka/config/SinkConfigTest.java
 create mode 100644 plc4j/integrations/apache-kafka/src/test/java/org/apache/plc4x/kafka/config/SinkTaskTest.java
 create mode 100644 plc4j/integrations/apache-kafka/src/test/java/org/apache/plc4x/kafka/config/SourceTaskTest.java
 create mode 100644 plc4j/integrations/apache-kafka/src/test/java/org/apache/plc4x/kafka/properties/sink_task_no_error.properties
 create mode 100644 plc4j/integrations/apache-kafka/src/test/java/org/apache/plc4x/kafka/properties/source_task_no_error.properties
 create mode 100644 plc4j/integrations/opcua-server/pom.xml
 create mode 100644 plc4j/integrations/opcua-server/src/main/java/org/apache/plc4x/java/opcuaserver/OPCUAServer.java
 create mode 100644 plc4j/integrations/opcua-server/src/main/java/org/apache/plc4x/java/opcuaserver/backend/Plc4xCommunication.java
 create mode 100644 plc4j/integrations/opcua-server/src/main/java/org/apache/plc4x/java/opcuaserver/backend/Plc4xNamespace.java
 create mode 100644 plc4j/integrations/opcua-server/src/main/java/org/apache/plc4x/java/opcuaserver/configuration/Configuration.java
 create mode 100644 plc4j/integrations/opcua-server/src/main/java/org/apache/plc4x/java/opcuaserver/configuration/DeviceConfiguration.java
 create mode 100644 plc4j/integrations/opcua-server/src/main/java/org/apache/plc4x/java/opcuaserver/configuration/PasswordConfiguration.java
 create mode 100644 plc4j/integrations/opcua-server/src/main/java/org/apache/plc4x/java/opcuaserver/configuration/Tag.java
 create mode 100644 plc4j/integrations/opcua-server/src/main/java/org/apache/plc4x/java/opcuaserver/configuration/User.java
 create mode 100644 plc4j/integrations/opcua-server/src/main/java/org/apache/plc4x/java/opcuaserver/context/CertificateGenerator.java
 create mode 100644 plc4j/integrations/opcua-server/src/main/java/org/apache/plc4x/java/opcuaserver/context/CertificateKeyPair.java
 create mode 100644 plc4j/integrations/opcua-server/src/main/resources/config.yml
 create mode 100644 plc4j/integrations/opcua-server/src/main/resources/logback.xml
 create mode 100644 plc4j/integrations/opcua-server/src/test/java/org/apache/plc4x/java/opcuaserver/OpcuaPlcDriverTest.java
 create mode 100644 plc4j/integrations/opcua-server/src/test/java/org/apache/plc4x/java/opcuaserver/UtilsTest.java
 create mode 100644 plc4j/integrations/opcua-server/src/test/resources/config.yml
 delete mode 100644 plc4j/karaf-features/README.md
 delete mode 100644 plc4j/karaf-features/camel/pom.xml
 delete mode 100644 plc4j/karaf-features/eip/pom.xml
 delete mode 100644 plc4j/karaf-features/karaf-itest/pom.xml
 delete mode 100644 plc4j/karaf-features/karaf-itest/src/test/java/org/apache/plc4x/karaf/FeatureIT.java
 delete mode 100644 plc4j/karaf-features/karaf-itest/src/test/resources/etc/org.ops4j.pax.logging.cfg
 delete mode 100644 plc4j/karaf-features/pom.xml
 delete mode 100644 plc4j/karaf-features/s7/pom.xml
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/configuration/annotations/defaults/FloatDefaultValue.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/configuration/exceptions/ConfigurationException.java
 delete mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/connection/DefaultPlcFieldHandler.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/discovery/ActiveDiscovery.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/discovery/BroadcastDiscovery.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/discovery/PassiveDiscovery.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/discovery/SupportsDiscovery.java
 delete mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/exceptions/InternalPlcRuntimeException.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/internal/DefaultContextHandler.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/InternalPlcUnsubscriptionResponse.java
 delete mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/messages/InternalPlcWriteRequest.java
 delete mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/messages/InternalPlcWriteResponse.java
 delete mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/messages/PlcRawMessage.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/model/DefaultPlcSubscriptionField.java
 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/model/SubscriptionPlcField.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
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/utils/XmlSerializable.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/IEC61131ValueHandler.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcBOOL.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcBYTE.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcBigDecimal.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcBigInteger.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcBitString.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcCHAR.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcDATE.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcDATE_AND_TIME.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcDINT.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcDWORD.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcIECValue.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcINT.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcLINT.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcLREAL.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcLTIME.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcLWORD.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcList.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcNull.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcREAL.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcSINT.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcSTRING.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcSimpleValue.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcStruct.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcTIME.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcTIME_OF_DAY.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcUDINT.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcUINT.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcULINT.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcUSINT.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcValueAdapter.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcValues.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcWCHAR.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcWORD.java
 create mode 100644 plc4j/spi/src/test/java/org/apache/plc4x/java/spi/Plc4xNettyWrapperTest.java
 create mode 100644 plc4j/spi/src/test/java/org/apache/plc4x/java/spi/generation/ReadBufferTest.java
 delete mode 100644 plc4j/tools/interop/pom.xml
 delete mode 100644 plc4j/tools/interop/src/assembly/assembly.xml
 delete mode 100644 plc4j/tools/interop/src/main/java/org/apache/plc4x/interop/impl/Client.java
 delete mode 100644 plc4j/tools/interop/src/main/java/org/apache/plc4x/interop/impl/Handler.java
 delete mode 100644 plc4j/tools/interop/src/main/java/org/apache/plc4x/interop/impl/Server.java
 create mode 100644 plc4j/transports/socketcan/pom.xml
 create mode 100644 plc4j/transports/socketcan/src/main/java/org/apache/plc4x/java/transport/socketcan/CANTransportConfiguration.java
 create mode 100644 plc4j/transports/socketcan/src/main/java/org/apache/plc4x/java/transport/socketcan/SocketCANChannelFactory.java
 create mode 100644 plc4j/transports/socketcan/src/main/java/org/apache/plc4x/java/transport/socketcan/SocketCANTransport.java
 create mode 100644 plc4j/transports/socketcan/src/main/java/org/apache/plc4x/java/transport/socketcan/netty/SocketCANChannel.java
 create mode 100644 plc4j/transports/socketcan/src/main/java/org/apache/plc4x/java/transport/socketcan/netty/SocketCANChannelConfig.java
 create mode 100644 plc4j/transports/socketcan/src/main/java/org/apache/plc4x/java/transport/socketcan/netty/address/SocketCANAddress.java
 create mode 100644 plc4j/transports/socketcan/src/main/resources/META-INF/services/org.apache.plc4x.java.spi.transport.Transport
 create mode 100644 plc4j/utils/test-utils/src/main/java/org/apache/plc4x/test/driver/model/api/TestValueField.java
 create mode 100644 plc4j/utils/test-utils/src/main/java/org/apache/plc4x/test/manual/ManualTest.java
 rename plc4j/drivers/ab-eth/src/test/resources/testsuite/AbEthTestsuite.xml => protocols/ab-eth/src/test/resources/protocols/abeth/ParserSerializerTestsuite.xml (100%)
 create mode 100644 protocols/ads/pom.xml
 create mode 100644 protocols/ads/src/main/java/org/apache/plc4x/protocol/ads/ADSDiscoveryProtocol.java
 create mode 100644 protocols/ads/src/main/java/org/apache/plc4x/protocol/ads/ADSProtocol.java
 create mode 100644 protocols/ads/src/main/resources/META-INF/services/org.apache.plc4x.plugins.codegenerator.protocol.Protocol
 create mode 100644 protocols/ads/src/main/resources/protocols/ads/ads-discovery.mspec
 create mode 100644 protocols/ads/src/main/resources/protocols/ads/ads.mspec
 create mode 100644 protocols/ads/src/test/resources/protocols/ads/AdsDiscoverySerializerTest.xml
 create mode 100644 protocols/ads/src/test/resources/protocols/ads/DriverTestsuite.xml
 create mode 100644 protocols/ads/src/test/resources/protocols/ads/ParserSerializerTestsuite.xml
 create mode 100644 protocols/ads/src/test/resources/protocols/ads/manual-test-capture.pcapng
 delete mode 100644 protocols/amsads/pom.xml
 delete mode 100644 protocols/amsads/src/main/java/org/apache/plc4x/protocol/amsads/AMSADSProtocol.java
 delete mode 100644 protocols/amsads/src/main/resources/META-INF/services/org.apache.plc4x.plugins.codegenerator.protocol.Protocol
 delete mode 100644 protocols/amsads/src/main/resources/protocols/amsads/amsads.mspec
 create mode 100644 protocols/canopen/pom.xml
 create mode 100644 protocols/canopen/src/main/java/org/apache/plc4x/protocol/canopen/CANOpenProtocol.java
 create mode 100644 protocols/canopen/src/main/resources/META-INF/services/org.apache.plc4x.plugins.codegenerator.protocol.Protocol
 create mode 100644 protocols/canopen/src/main/resources/protocols/can/canopen.mspec
 create mode 100644 protocols/canopen/src/test/resources/protocols/canopen/CANOpenDriverSDOIT.xml
 create mode 100644 protocols/canopen/src/test/resources/protocols/canopen/CANOpenPayloadTestSuite.xml
 create mode 100644 protocols/canopen/src/test/resources/protocols/canopen/CANOpenWiresharkTestSuite.xml
 rename sandbox/test-java-df1-driver/src/test/resources/testsuite/Df1Testsuite.xml => protocols/df1/src/test/resources/protocols/df1/ParserSerializerTestsuite.xml (100%)
 create mode 100644 protocols/eip/src/test/resources/protocols/eip/DriverTestsuite.xml
 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%)
 create mode 100644 protocols/knxnetip/src/main/xslt/knx-types.xsl
 create mode 100644 protocols/knxnetip/src/test/resources/protocols/knxnetip/ParserSerializerTestsuite.xml
 create mode 100644 protocols/modbus/src/test/resources/protocols/modbus/DriverTestsuite.xml
 create mode 100644 protocols/modbus/src/test/resources/protocols/modbus/ParserSerializerTestsuite.xml
 create mode 100644 protocols/modbus/src/test/resources/protocols/modbus/manual-test-capture.pcapng
 create mode 100644 protocols/opcua/pom.xml
 create mode 100644 protocols/opcua/src/main/java/org/apache/plc4x/protocol/opcua/OpcuaProtocol.java
 create mode 100644 protocols/opcua/src/main/resources/META-INF/services/org.apache.plc4x.plugins.codegenerator.protocol.Protocol
 create mode 100644 protocols/opcua/src/main/resources/protocols/opcua/opcua.mspec
 delete mode 100644 protocols/proxy/pom.xml
 delete mode 100644 protocols/proxy/src/main/java/.keepMe
 delete mode 100644 protocols/proxy/src/main/resources/org/apache/plc4x/protocols/proxy/interop.thrift
 create mode 100644 protocols/s7/src/test/resources/protocols/s7/DriverTestsuite.xml
 create mode 100644 protocols/s7/src/test/resources/protocols/s7/ParserSerializerTestsuite.xml
 create mode 100644 protocols/s7/src/test/resources/protocols/s7/manual-test-capture.pcapng
 create mode 100644 protocols/simulated/pom.xml
 create mode 100644 protocols/simulated/src/main/java/org/apache/plc4x/protocol/simulated/SimulatedProtocol.java
 create mode 100644 protocols/simulated/src/main/resources/META-INF/services/org.apache.plc4x.plugins.codegenerator.protocol.Protocol
 create mode 100644 protocols/simulated/src/main/resources/protocols/simulated/simulated.mspec
 create mode 100644 sandbox/discovery/pom.xml
 create mode 100644 sandbox/discovery/src/main/java/org/apache/plc4x/java/discovery/DiscoveryConnection.java
 create mode 100644 sandbox/discovery/src/main/java/org/apache/plc4x/java/discovery/DiscoveryDriver.java
 create mode 100644 sandbox/discovery/src/main/java/org/apache/plc4x/java/discovery/DiscoveryFieldHandler.java
 create mode 100644 sandbox/discovery/src/main/resources/META-INF/services/org.apache.plc4x.java.api.PlcDriver
 create mode 100644 sandbox/plc-simulator/src/main/java/org/apache/plc4x/simulator/exceptions/SimulatorExcepiton.java
 create mode 100644 sandbox/plc-simulator/src/main/java/org/apache/plc4x/simulator/model/Context.java
 delete mode 100644 sandbox/plc-simulator/src/main/java/org/apache/plc4x/simulator/server/s7/S7Server.java
 delete mode 100644 sandbox/plc-simulator/src/main/java/org/apache/plc4x/simulator/server/s7/protocol/S7Step7Protocol.java
 create mode 100644 sandbox/plc-simulator/src/main/java/org/apache/plc4x/simulator/server/s7/protocol/S7Step7ServerAdapter.java
 delete mode 100644 sandbox/plc-simulator/src/main/java/org/apache/plc4x/simulator/server/s7/protocol/S7Step7ServerProtocol.java
 create mode 100644 sandbox/plc4c/drivers/modbus/include/plc4c/driver_modbus_packets.h
 create mode 100644 sandbox/plc4c/drivers/modbus/include/plc4c/driver_modbus_sm.h
 create mode 100644 sandbox/plc4c/drivers/modbus/include/plc4c/driver_s7_encode_decode.h
 create mode 100644 sandbox/plc4c/drivers/modbus/src/driver_modbus_encode_decode.c
 create mode 100644 sandbox/plc4c/drivers/modbus/src/driver_modbus_packets.c
 create mode 100644 sandbox/plc4c/drivers/modbus/src/driver_modbus_sm_connect.c
 create mode 100644 sandbox/plc4c/drivers/modbus/src/driver_modbus_sm_disconnect.c
 create mode 100644 sandbox/plc4c/drivers/modbus/src/driver_modbus_sm_read.c
 create mode 100644 sandbox/plc4c/drivers/modbus/src/driver_modbus_sm_write.c
 create mode 100644 sandbox/plc4c/drivers/s7/include/plc4c/driver_s7_encode_decode.h
 create mode 100644 sandbox/plc4c/drivers/s7/include/plc4c/driver_s7_packets.h
 create mode 100644 sandbox/plc4c/drivers/s7/include/plc4c/driver_s7_sm.h
 create mode 100644 sandbox/plc4c/drivers/s7/src/driver_s7_encode_decode.c
 create mode 100644 sandbox/plc4c/drivers/s7/src/driver_s7_packets.c
 create mode 100644 sandbox/plc4c/drivers/s7/src/driver_s7_sm_connect.c
 create mode 100644 sandbox/plc4c/drivers/s7/src/driver_s7_sm_disconnect.c
 create mode 100644 sandbox/plc4c/drivers/s7/src/driver_s7_sm_read.c
 create mode 100644 sandbox/plc4c/drivers/s7/src/driver_s7_sm_write.c
 create mode 100644 sandbox/plc4c/drivers/s7/test/s7_address_parser_test.c
 create mode 100644 sandbox/plc4c/drivers/s7/test/s7_test.c
 create mode 100644 sandbox/plc4c/generated-sources/modbus/include/data_item.h
 create mode 100644 sandbox/plc4c/generated-sources/modbus/include/modbus_constants.h
 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/include/modbus_pdu.h
 create mode 100644 sandbox/plc4c/generated-sources/modbus/include/modbus_pdu_read_file_record_request_item.h
 create mode 100644 sandbox/plc4c/generated-sources/modbus/include/modbus_pdu_read_file_record_response_item.h
 create mode 100644 sandbox/plc4c/generated-sources/modbus/include/modbus_pdu_write_file_record_request_item.h
 create mode 100644 sandbox/plc4c/generated-sources/modbus/include/modbus_pdu_write_file_record_response_item.h
 create mode 100644 sandbox/plc4c/generated-sources/modbus/include/modbus_serial_adu.h
 create mode 100644 sandbox/plc4c/generated-sources/modbus/include/modbus_tcp_adu.h
 create mode 100644 sandbox/plc4c/generated-sources/modbus/src/data_item.c
 create mode 100644 sandbox/plc4c/generated-sources/modbus/src/modbus_constants.c
 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 sandbox/plc4c/generated-sources/modbus/src/modbus_pdu.c
 create mode 100644 sandbox/plc4c/generated-sources/modbus/src/modbus_pdu_read_file_record_request_item.c
 create mode 100644 sandbox/plc4c/generated-sources/modbus/src/modbus_pdu_read_file_record_response_item.c
 create mode 100644 sandbox/plc4c/generated-sources/modbus/src/modbus_pdu_write_file_record_request_item.c
 create mode 100644 sandbox/plc4c/generated-sources/modbus/src/modbus_pdu_write_file_record_response_item.c
 create mode 100644 sandbox/plc4c/generated-sources/modbus/src/modbus_serial_adu.c
 create mode 100644 sandbox/plc4c/generated-sources/modbus/src/modbus_tcp_adu.c
 create mode 100644 sandbox/plc4c/generated-sources/s7/include/cotp_packet.h
 create mode 100644 sandbox/plc4c/generated-sources/s7/include/cotp_parameter.h
 create mode 100644 sandbox/plc4c/generated-sources/s7/include/cotp_protocol_class.h
 create mode 100644 sandbox/plc4c/generated-sources/s7/include/cotp_tpdu_size.h
 create mode 100644 sandbox/plc4c/generated-sources/s7/include/data_item.h
 create mode 100644 sandbox/plc4c/generated-sources/s7/include/data_transport_error_code.h
 create mode 100644 sandbox/plc4c/generated-sources/s7/include/data_transport_size.h
 create mode 100644 sandbox/plc4c/generated-sources/s7/include/device_group.h
 create mode 100644 sandbox/plc4c/generated-sources/s7/include/memory_area.h
 create mode 100644 sandbox/plc4c/generated-sources/s7/include/s7_address.h
 create mode 100644 sandbox/plc4c/generated-sources/s7/include/s7_message.h
 create mode 100644 sandbox/plc4c/generated-sources/s7/include/s7_parameter.h
 create mode 100644 sandbox/plc4c/generated-sources/s7/include/s7_parameter_user_data_item.h
 create mode 100644 sandbox/plc4c/generated-sources/s7/include/s7_payload.h
 create mode 100644 sandbox/plc4c/generated-sources/s7/include/s7_payload_user_data_item.h
 create mode 100644 sandbox/plc4c/generated-sources/s7/include/s7_var_payload_data_item.h
 create mode 100644 sandbox/plc4c/generated-sources/s7/include/s7_var_payload_status_item.h
 create mode 100644 sandbox/plc4c/generated-sources/s7/include/s7_var_request_parameter_item.h
 create mode 100644 sandbox/plc4c/generated-sources/s7/include/szl_data_tree_item.h
 create mode 100644 sandbox/plc4c/generated-sources/s7/include/szl_id.h
 create mode 100644 sandbox/plc4c/generated-sources/s7/include/szl_module_type_class.h
 create mode 100644 sandbox/plc4c/generated-sources/s7/include/szl_sublist.h
 create mode 100644 sandbox/plc4c/generated-sources/s7/include/tpkt_packet.h
 create mode 100644 sandbox/plc4c/generated-sources/s7/include/transport_size.h
 create mode 100644 sandbox/plc4c/generated-sources/s7/src/cotp_packet.c
 create mode 100644 sandbox/plc4c/generated-sources/s7/src/cotp_parameter.c
 create mode 100644 sandbox/plc4c/generated-sources/s7/src/cotp_protocol_class.c
 create mode 100644 sandbox/plc4c/generated-sources/s7/src/cotp_tpdu_size.c
 create mode 100644 sandbox/plc4c/generated-sources/s7/src/data_item.c
 create mode 100644 sandbox/plc4c/generated-sources/s7/src/data_transport_error_code.c
 create mode 100644 sandbox/plc4c/generated-sources/s7/src/data_transport_size.c
 create mode 100644 sandbox/plc4c/generated-sources/s7/src/device_group.c
 create mode 100644 sandbox/plc4c/generated-sources/s7/src/memory_area.c
 create mode 100644 sandbox/plc4c/generated-sources/s7/src/s7_address.c
 create mode 100644 sandbox/plc4c/generated-sources/s7/src/s7_message.c
 create mode 100644 sandbox/plc4c/generated-sources/s7/src/s7_parameter.c
 create mode 100644 sandbox/plc4c/generated-sources/s7/src/s7_parameter_user_data_item.c
 create mode 100644 sandbox/plc4c/generated-sources/s7/src/s7_payload.c
 create mode 100644 sandbox/plc4c/generated-sources/s7/src/s7_payload_user_data_item.c
 create mode 100644 sandbox/plc4c/generated-sources/s7/src/s7_var_payload_data_item.c
 create mode 100644 sandbox/plc4c/generated-sources/s7/src/s7_var_payload_status_item.c
 create mode 100644 sandbox/plc4c/generated-sources/s7/src/s7_var_request_parameter_item.c
 create mode 100644 sandbox/plc4c/generated-sources/s7/src/szl_data_tree_item.c
 create mode 100644 sandbox/plc4c/generated-sources/s7/src/szl_id.c
 create mode 100644 sandbox/plc4c/generated-sources/s7/src/szl_module_type_class.c
 create mode 100644 sandbox/plc4c/generated-sources/s7/src/szl_sublist.c
 create mode 100644 sandbox/plc4c/generated-sources/s7/src/tpkt_packet.c
 create mode 100644 sandbox/plc4c/generated-sources/s7/src/transport_size.c
 create mode 100644 sandbox/plc4c/spi/include/plc4c/spi/evaluation_helper.h
 create mode 100644 sandbox/plc4c/spi/include/plc4c/spi/read_buffer.h
 create mode 100644 sandbox/plc4c/spi/include/plc4c/spi/write_buffer.h
 create mode 100644 sandbox/plc4c/spi/src/evaluation_helper.c
 create mode 100644 sandbox/plc4c/spi/src/read_buffer.c
 create mode 100644 sandbox/plc4c/spi/src/write_buffer.c
 create mode 100644 sandbox/plc4c/spi/test/read_buffer_test.c
 create mode 100644 sandbox/plc4c/spi/test/spi_test.c
 create mode 100644 sandbox/plc4c/spi/test/write_buffer_test.c
 delete mode 100644 sandbox/test-java-amsads-driver/README.adoc
 delete mode 100644 sandbox/test-java-amsads-driver/pom.xml
 delete mode 100644 sandbox/test-java-amsads-driver/src/main/java/org/apache/plc4x/java/amsads/AMSADSPlcDriver.java
 delete mode 100644 sandbox/test-java-amsads-driver/src/main/java/org/apache/plc4x/java/amsads/configuration/AdsConfiguration.java
 delete mode 100644 sandbox/test-java-amsads-driver/src/main/java/org/apache/plc4x/java/amsads/connection/AdsAbstractPlcConnection.java
 delete mode 100644 sandbox/test-java-amsads-driver/src/main/java/org/apache/plc4x/java/amsads/connection/AdsConnectionFactory.java
 delete mode 100644 sandbox/test-java-amsads-driver/src/main/java/org/apache/plc4x/java/amsads/connection/AdsSerialPlcConnection.java
 delete mode 100644 sandbox/test-java-amsads-driver/src/main/java/org/apache/plc4x/java/amsads/connection/AdsTcpPlcConnection.java
 delete mode 100644 sandbox/test-java-amsads-driver/src/main/java/org/apache/plc4x/java/amsads/field/AdsField.java
 delete mode 100644 sandbox/test-java-amsads-driver/src/main/java/org/apache/plc4x/java/amsads/field/AdsFieldHandler.java
 delete mode 100644 sandbox/test-java-amsads-driver/src/main/java/org/apache/plc4x/java/amsads/field/DirectAdsField.java
 delete mode 100644 sandbox/test-java-amsads-driver/src/main/java/org/apache/plc4x/java/amsads/field/SymbolicAdsField.java
 delete mode 100644 sandbox/test-java-amsads-driver/src/main/java/org/apache/plc4x/java/amsads/model/AdsSubscriptionHandle.java
 delete mode 100644 sandbox/test-java-amsads-driver/src/main/java/org/apache/plc4x/java/amsads/protocol/Ads2PayloadProtocol.java
 delete mode 100644 sandbox/test-java-amsads-driver/src/main/java/org/apache/plc4x/java/amsads/protocol/AdsProtocolLogic.java
 delete mode 100644 sandbox/test-java-amsads-driver/src/main/java/org/apache/plc4x/java/amsads/protocol/Payload2SerialProtocol.java
 delete mode 100644 sandbox/test-java-amsads-driver/src/main/java/org/apache/plc4x/java/amsads/protocol/Payload2TcpProtocol.java
 delete mode 100644 sandbox/test-java-amsads-driver/src/main/java/org/apache/plc4x/java/amsads/protocol/Plc4x2AdsProtocol.java
 delete mode 100644 sandbox/test-java-amsads-driver/src/main/java/org/apache/plc4x/java/amsads/protocol/exception/AdsException.java
 delete mode 100644 sandbox/test-java-amsads-driver/src/main/java/org/apache/plc4x/java/amsads/protocol/exception/AdsProtocolOverflowException.java
 delete mode 100644 sandbox/test-java-amsads-driver/src/main/java/org/apache/plc4x/java/amsads/protocol/util/DigestUtil.java
 delete mode 100644 sandbox/test-java-amsads-driver/src/main/java/org/apache/plc4x/java/amsads/protocol/util/LittleEndianDecoder.java
 delete mode 100644 sandbox/test-java-amsads-driver/src/main/java/org/apache/plc4x/java/amsads/protocol/util/LittleEndianEncoder.java
 delete mode 100644 sandbox/test-java-amsads-driver/src/main/java/org/apache/plc4x/java/amsads/protocol/util/SingleMessageRateLimiter.java
 delete mode 100644 sandbox/test-java-amsads-driver/src/main/java/org/apache/plc4x/java/amsads/protocol/util/package-info.java
 delete mode 100644 sandbox/test-java-amsads-driver/src/main/java/org/apache/plc4x/java/amsads/types/AdsDataType.java
 delete mode 100644 sandbox/test-java-amsads-driver/src/main/resources/META-INF/services/org.apache.plc4x.java.api.PlcDriver
 delete mode 100644 sandbox/test-java-amsads-driver/src/test/java/org/apache/plc4x/java/amsads/AMSADSPlcDriverTest.java
 delete mode 100644 sandbox/test-java-amsads-driver/src/test/java/org/apache/plc4x/protocol/amsads/AmsAdsSerializerParserTest.java
 delete mode 100644 sandbox/test-java-amsads-driver/src/test/java/org/apache/plc4x/protocol/amsads/BenchmarkGeneratedDf1.java
 delete mode 100644 sandbox/test-java-amsads-driver/src/test/java/org/apache/plc4x/protocol/amsads/BenchmarkManualDf1.java
 delete mode 100644 sandbox/test-java-amsads-driver/src/test/java/org/apache/plc4x/protocol/amsads/EndToEndTest.java
 delete mode 100644 sandbox/test-java-amsads-driver/src/test/java/org/apache/plc4x/protocol/amsads/IOTest.java
 delete mode 100644 sandbox/test-java-amsads-driver/src/test/resources/testsuite/Df1Testsuite.xml
 create mode 100644 sandbox/test-java-bacnetip-driver/src/main/java/org/apache/plc4x/java/bacnetip/BacNetIpDriver.java
 delete mode 100644 sandbox/test-java-bacnetip-driver/src/main/java/org/apache/plc4x/java/bacnetip/PassiveBacNetIpDriver.java
 create mode 100644 sandbox/test-java-bacnetip-driver/src/main/java/org/apache/plc4x/java/bacnetip/configuration/BacNetIpConfiguration.java
 delete mode 100644 sandbox/test-java-bacnetip-driver/src/main/java/org/apache/plc4x/java/bacnetip/configuration/PassiveBacNetIpConfiguration.java
 create mode 100644 sandbox/test-java-bacnetip-driver/src/main/java/org/apache/plc4x/java/bacnetip/protocol/BacNetIpProtocolLogic.java
 delete mode 100644 sandbox/test-java-bacnetip-driver/src/main/java/org/apache/plc4x/java/bacnetip/protocol/PassiveBacNetIpProtocolLogic.java
 delete mode 100644 src/remote-resources/NOTICE
 create mode 100644 src/site/asciidoc/plc4go/index.adoc
 create mode 100644 src/site/asciidoc/protocols/canopen/index.adoc
 create mode 100644 src/site/asciidoc/users/adopters.adoc
 create mode 100644 src/site/asciidoc/users/commercial-support.adoc
 rename src/site/asciidoc/users/{plc4j => getting-started}/general-concepts.adoc (100%)
 create mode 100644 src/site/asciidoc/users/getting-started/plc4go.adoc
 create mode 100644 src/site/asciidoc/users/getting-started/plc4j.adoc
 rename src/site/asciidoc/users/{plc4j => getting-started}/virtual-modbus.adoc (100%)
 create mode 100644 src/site/asciidoc/users/integrations/eclipse-milo.adoc
 delete mode 100644 src/site/asciidoc/users/plc4j/gettingstarted.adoc
 create mode 100644 src/site/asciidoc/users/preparing-issues.adoc
 create mode 100644 src/site/asciidoc/users/protocols/canopen.adoc
 create mode 100644 src/site/asciidoc/users/transports/socketcan.adoc
 delete mode 100644 src/site/asciidoc/users/users.adoc
 create mode 100644 src/site/resources/images/integrations/nifi/add-processor.png
 create mode 100644 src/site/resources/images/integrations/nifi/configure-processor-properties.png
 create mode 100644 src/site/resources/images/integrations/nifi/configure-scheduling.png
 create mode 100644 src/site/resources/images/integrations/nifi/configured-flow.png
 create mode 100644 src/site/resources/images/integrations/nifi/configured-log-processor.png
 create mode 100644 src/site/resources/images/integrations/nifi/configured-plc4x-source-processor.png
 create mode 100644 src/site/resources/images/integrations/nifi/configuring-connection.png
 create mode 100644 src/site/resources/images/integrations/nifi/empty-nifi-flow.png
 create mode 100644 src/site/resources/images/integrations/nifi/list-of-plc4x-processors.png
 create mode 100644 src/site/resources/images/integrations/nifi/running-flow.png
 create mode 100644 src/site/resources/images/team/ldywicki.jpg
 create mode 100644 src/site/resources/images/team/mstrljic.jpg
 create mode 100644 src/site/resources/images/toddy-loves-apache.png
 create mode 100644 src/site/resources/images/users/companies/logo-codecentric.png
 create mode 100644 src/site/resources/images/users/companies/logo-connectorio.png
 create mode 100644 src/site/resources/images/users/companies/logo-industryfusion.png
 create mode 100644 src/site/resources/images/users/companies/logo-pietrorimoldi.jpg
 create mode 100644 src/site/resources/images/users/companies/logo-pragmatic-industries.svg
 create mode 100644 src/site/resources/images/users/companies/logo-pragmatic-minds.svg
 create mode 100644 src/site/resources/images/users/companies/logo_record_evolution_single_dark_bgfont.png
 create mode 100644 src/site/resources/images/users/companies/logo_unistuttgart_isw.png
 delete mode 100644 tools/thrift/pom.xml
 delete mode 100644 tools/thrift/src/assembly/compiler.xml
 delete mode 100644 tools/thrift/src/assembly/cpp.xml
 delete mode 100644 tools/thrift/src/assembly/python.xml


[plc4x] 01/01: Merge tag 'v0.8.0' into release

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

cdutz pushed a commit to branch release
in repository https://gitbox.apache.org/repos/asf/plc4x.git

commit c3427a2a35b1ab8fd9a6f21625355086d2a41119
Merge: 0c18c7c ebd0d6c
Author: Christofer Dutz <ch...@c-ware.de>
AuthorDate: Thu Jan 28 22:13:22 2021 +0100

    Merge tag 'v0.8.0' into release
    
    [maven-release-plugin] copy for tag v0.8.0

 .asf.yaml                                          |    56 +
 .gitignore                                         |     5 +
 .gitlab-ci.yml                                     |    48 -
 Dockerfile                                         |    10 +-
 Jenkinsfile                                        |    16 +-
 LICENSE                                            |     1 +
 NOTICE                                             |     7 +-
 README.md                                          |    50 +-
 RELEASE_NOTES                                      |   106 +-
 build-utils/language-base-freemarker/pom.xml       |     6 +-
 .../BaseFreemarkerLanguageTemplateHelper.java      |   865 ++
 .../protocol/freemarker/FreemarkerException.java   |    34 +
 .../freemarker/FreemarkerLanguageOutput.java       |    10 +-
 build-utils/language-c/pom.xml                     |     4 +-
 .../apache/plc4x/language/c/CLanguageOutput.java   |    12 +-
 .../plc4x/language/c/CLanguageTemplateHelper.java  |   972 +-
 .../resources/templates/c/data-io-template-c.ftlh  |   246 +
 .../resources/templates/c/data-io-template-h.ftlh  |    88 +
 .../resources/templates/c/enum-template-c.ftlh     |   105 +
 .../resources/templates/c/enum-template-h.ftlh     |    92 +
 .../resources/templates/c/pojo-template-c.ftlh     |   687 +-
 .../resources/templates/c/pojo-template-h.ftlh     |   135 +-
 build-utils/language-go/pom.xml                    |    58 +
 .../apache/plc4x/language/go/GoLanguageOutput.java |    72 +
 .../language/go/GoLanguageTemplateHelper.java      |  1082 ++
 .../apache/plc4x/language/go/utils/FieldUtils.java |   103 +
 ...x.plugins.codegenerator.language.LanguageOutput |    19 +
 .../resources/templates/go/data-io-template.ftlh   |   222 +
 .../main/resources/templates/go/enum-template.ftlh |   159 +
 .../resources/templates/go/model-template.ftlh     |  1048 ++
 .../templates/go/parser-factory-template.ftlh      |    96 +
 .../templates/go/xml-parser-factory-template.ftlh  |    89 +
 build-utils/language-java/pom.xml                  |     4 +-
 .../plc4x/language/java/JavaLanguageOutput.java    |     4 +-
 .../language/java/JavaLanguageTemplateHelper.java  |   301 +-
 .../resources/templates/java/data-io-template.ftlh |   279 +-
 .../templates/java/enum-package-info-template.ftlh |     8 +
 .../resources/templates/java/enum-template.ftlh    |    77 +-
 .../main/resources/templates/java/io-template.ftlh |   448 +-
 .../resources/templates/java/pojo-template.ftlh    |   256 +-
 build-utils/pom.xml                                |     3 +-
 build-utils/protocol-base-mspec/pom.xml            |     2 +-
 .../plugins/codegenerator/language/mspec/MSpec.g4  |   192 +-
 .../model/definitions/DefaultTypeDefinition.java   |     6 +
 .../mspec/model/fields/DefaultSwitchField.java     |    10 +-
 .../references/DefaultComplexTypeReference.java    |    37 -
 .../references/DefaultFloatTypeReference.java      |    45 -
 .../references/DefaultIntegerTypeReference.java    |    30 -
 .../references/DefaultSimpleTypeReference.java     |    44 -
 .../DefaultSimpleVarLengthTypeReference.java       |    30 -
 .../references/DefaultStringTypeReference.java     |    38 -
 .../references/DefaultTemporalTypeReference.java   |    30 -
 .../mspec/parser/MessageFormatListener.java        |   119 +-
 build-utils/protocol-test/pom.xml                  |     6 +-
 go.mod                                             |    21 +
 media/logos/300ppi/Toddy colorize@300x.png         |   Bin 0 -> 560986 bytes
 media/logos/PDF/Toddy colorize.pdf                 |   Bin 0 -> 41014 bytes
 .../logos/SVG/logo PLC4X black line only toddy.svg |   138 +
 media/powered-by-plc4x.png                         |   Bin 0 -> 99195 bytes
 media/toddy-loves-apache.png                       |   Bin 0 -> 265483 bytes
 .../knxnetip/ParserSerializerTestsuite.xml         |   546 +
 .../testing/protocols/modbus/DriverTestsuite.xml   |   382 +
 .../protocols/modbus/ParserSerializerTestsuite.xml |   181 +
 .../testing/protocols/s7/DriverTestsuite.xml       |   389 +
 .../protocols/s7/ParserSerializerTestsuite.xml     |   501 +
 plc4go/cmd/main/drivers/bacnetip_test.go           |    43 +
 plc4go/cmd/main/drivers/knxnetip_test.go           |   320 +
 plc4go/cmd/main/drivers/modbus_test.go             |   213 +
 plc4go/cmd/main/drivers/s7_test.go                 |    42 +
 .../cmd/main/drivers/tests/knx_discovery_test.go   |   619 +
 .../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                                      |    28 +
 plc4go/go.sum                                      |    23 +
 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        |   292 +
 .../plc4go/bacnetip/readwrite/model/APDUAbort.go   |   246 +
 .../bacnetip/readwrite/model/APDUComplexAck.go     |   347 +
 .../readwrite/model/APDUConfirmedRequest.go        |   431 +
 .../plc4go/bacnetip/readwrite/model/APDUError.go   |   217 +
 .../plc4go/bacnetip/readwrite/model/APDUReject.go  |   218 +
 .../bacnetip/readwrite/model/APDUSegmentAck.go     |   302 +
 .../bacnetip/readwrite/model/APDUSimpleAck.go      |   218 +
 .../readwrite/model/APDUUnconfirmedRequest.go      |   189 +
 .../bacnetip/readwrite/model/ApplicationTag.go     |   172 +
 .../bacnetip/readwrite/model/BACnetAddress.go      |   183 +
 .../readwrite/model/BACnetConfirmedServiceACK.go   |   376 +
 .../BACnetConfirmedServiceACKAtomicReadFile.go     |   135 +
 .../BACnetConfirmedServiceACKAtomicWriteFile.go    |   135 +
 ...tConfirmedServiceACKConfirmedPrivateTransfer.go |   135 +
 .../model/BACnetConfirmedServiceACKCreateObject.go |   135 +
 .../BACnetConfirmedServiceACKGetAlarmSummary.go    |   135 +
 ...ACnetConfirmedServiceACKGetEnrollmentSummary.go |   135 +
 ...BACnetConfirmedServiceACKGetEventInformation.go |   135 +
 .../model/BACnetConfirmedServiceACKReadProperty.go |   135 +
 ...ACnetConfirmedServiceACKReadPropertyMultiple.go |   135 +
 .../model/BACnetConfirmedServiceACKReadRange.go    |   135 +
 ...BACnetConfirmedServiceACKRemovedAuthenticate.go |   135 +
 ...rmedServiceACKRemovedReadPropertyConditional.go |   135 +
 .../model/BACnetConfirmedServiceACKVTData.go       |   135 +
 .../model/BACnetConfirmedServiceACKVTOpen.go       |   135 +
 .../model/BACnetConfirmedServiceRequest.go         |   614 +
 ...ACnetConfirmedServiceRequestAcknowledgeAlarm.go |   135 +
 .../BACnetConfirmedServiceRequestAddListElement.go |   135 +
 .../BACnetConfirmedServiceRequestAtomicReadFile.go |   135 +
 ...BACnetConfirmedServiceRequestAtomicWriteFile.go |   135 +
 ...firmedServiceRequestConfirmedCOVNotification.go |   515 +
 ...rviceRequestConfirmedCOVNotificationMultiple.go |   135 +
 ...rmedServiceRequestConfirmedEventNotification.go |   135 +
 ...firmedServiceRequestConfirmedPrivateTransfer.go |   135 +
 ...tConfirmedServiceRequestConfirmedTextMessage.go |   135 +
 .../BACnetConfirmedServiceRequestCreateObject.go   |   135 +
 .../BACnetConfirmedServiceRequestDeleteObject.go   |   135 +
 ...rmedServiceRequestDeviceCommunicationControl.go |   135 +
 ...tConfirmedServiceRequestGetEnrollmentSummary.go |   135 +
 ...etConfirmedServiceRequestGetEventInformation.go |   135 +
 ...etConfirmedServiceRequestLifeSafetyOperation.go |   135 +
 .../BACnetConfirmedServiceRequestReadProperty.go   |   307 +
 ...tConfirmedServiceRequestReadPropertyMultiple.go |   135 +
 .../BACnetConfirmedServiceRequestReadRange.go      |   135 +
 ...netConfirmedServiceRequestReinitializeDevice.go |   135 +
 ...CnetConfirmedServiceRequestRemoveListElement.go |   135 +
 ...etConfirmedServiceRequestRemovedAuthenticate.go |   135 +
 ...ServiceRequestRemovedReadPropertyConditional.go |   135 +
 ...CnetConfirmedServiceRequestRemovedRequestKey.go |   135 +
 .../BACnetConfirmedServiceRequestSubscribeCOV.go   |   420 +
 ...tConfirmedServiceRequestSubscribeCOVProperty.go |   135 +
 ...edServiceRequestSubscribeCOVPropertyMultiple.go |   135 +
 .../model/BACnetConfirmedServiceRequestVTClose.go  |   135 +
 .../model/BACnetConfirmedServiceRequestVTData.go   |   135 +
 .../model/BACnetConfirmedServiceRequestVTOpen.go   |   135 +
 .../BACnetConfirmedServiceRequestWriteProperty.go  |   412 +
 ...ConfirmedServiceRequestWritePropertyMultiple.go |   135 +
 .../plc4go/bacnetip/readwrite/model/BACnetError.go |   376 +
 .../readwrite/model/BACnetErrorAtomicReadFile.go   |   135 +
 .../readwrite/model/BACnetErrorAtomicWriteFile.go  |   135 +
 .../model/BACnetErrorConfirmedPrivateTransfer.go   |   135 +
 .../readwrite/model/BACnetErrorCreateObject.go     |   135 +
 .../readwrite/model/BACnetErrorGetAlarmSummary.go  |   135 +
 .../model/BACnetErrorGetEnrollmentSummary.go       |   135 +
 .../model/BACnetErrorGetEventInformation.go        |   135 +
 .../readwrite/model/BACnetErrorReadProperty.go     |   324 +
 .../model/BACnetErrorReadPropertyMultiple.go       |   135 +
 .../readwrite/model/BACnetErrorReadRange.go        |   135 +
 .../model/BACnetErrorRemovedAuthenticate.go        |   135 +
 .../BACnetErrorRemovedReadPropertyConditional.go   |   135 +
 .../bacnetip/readwrite/model/BACnetErrorVTData.go  |   135 +
 .../bacnetip/readwrite/model/BACnetErrorVTOpen.go  |   135 +
 .../bacnetip/readwrite/model/BACnetNetworkType.go  |   158 +
 .../bacnetip/readwrite/model/BACnetNodeType.go     |   235 +
 .../bacnetip/readwrite/model/BACnetNotifyType.go   |   102 +
 .../bacnetip/readwrite/model/BACnetObjectType.go   |   494 +
 .../bacnetip/readwrite/model/BACnetServiceAck.go   |   376 +
 .../model/BACnetServiceAckAtomicReadFile.go        |   135 +
 .../model/BACnetServiceAckAtomicWriteFile.go       |   135 +
 .../BACnetServiceAckConfirmedPrivateTransfer.go    |   135 +
 .../model/BACnetServiceAckCreateObject.go          |   135 +
 .../model/BACnetServiceAckGetAlarmSummary.go       |   135 +
 .../model/BACnetServiceAckGetEnrollmentSummary.go  |   135 +
 .../model/BACnetServiceAckGetEventInformation.go   |   135 +
 .../model/BACnetServiceAckReadProperty.go          |   372 +
 .../model/BACnetServiceAckReadPropertyMultiple.go  |   135 +
 .../readwrite/model/BACnetServiceAckReadRange.go   |   135 +
 .../model/BACnetServiceAckRemovedAuthenticate.go   |   135 +
 ...CnetServiceAckRemovedReadPropertyConditional.go |   135 +
 .../readwrite/model/BACnetServiceAckVTData.go      |   135 +
 .../readwrite/model/BACnetServiceAckVTOpen.go      |   135 +
 .../plc4go/bacnetip/readwrite/model/BACnetTag.go   |   498 +
 .../model/BACnetTagApplicationBitString.go         |   216 +
 .../readwrite/model/BACnetTagApplicationBoolean.go |   139 +
 .../model/BACnetTagApplicationCharacterString.go   |   139 +
 .../readwrite/model/BACnetTagApplicationDate.go    |   139 +
 .../readwrite/model/BACnetTagApplicationDouble.go  |   168 +
 .../model/BACnetTagApplicationEnumerated.go        |   188 +
 .../readwrite/model/BACnetTagApplicationNull.go    |   139 +
 .../model/BACnetTagApplicationObjectIdentifier.go  |   139 +
 .../model/BACnetTagApplicationOctetString.go       |   139 +
 .../readwrite/model/BACnetTagApplicationReal.go    |   168 +
 .../model/BACnetTagApplicationSignedInteger.go     |   188 +
 .../readwrite/model/BACnetTagApplicationTime.go    |   139 +
 .../model/BACnetTagApplicationUnsignedInteger.go   |   188 +
 .../bacnetip/readwrite/model/BACnetTagContext.go   |   188 +
 .../readwrite/model/BACnetTagWithContent.go        |   373 +
 .../model/BACnetUnconfirmedServiceRequest.go       |   348 +
 .../model/BACnetUnconfirmedServiceRequestIAm.go    |   401 +
 .../model/BACnetUnconfirmedServiceRequestIHave.go  |   135 +
 ...UnconfirmedServiceRequestTimeSynchronization.go |   135 +
 ...onfirmedServiceRequestUTCTimeSynchronization.go |   135 +
 ...rmedServiceRequestUnconfirmedCOVNotification.go |   135 +
 ...iceRequestUnconfirmedCOVNotificationMultiple.go |   135 +
 ...edServiceRequestUnconfirmedEventNotification.go |   135 +
 ...rmedServiceRequestUnconfirmedPrivateTransfer.go |   319 +
 ...onfirmedServiceRequestUnconfirmedTextMessage.go |   135 +
 .../model/BACnetUnconfirmedServiceRequestWhoHas.go |   344 +
 .../model/BACnetUnconfirmedServiceRequestWhoIs.go  |   324 +
 .../BACnetUnconfirmedServiceRequestWriteGroup.go   |   135 +
 .../plc4go/bacnetip/readwrite/model/BVLC.go        |   400 +
 .../model/BVLCDeleteForeignDeviceTableEntry.go     |   135 +
 .../model/BVLCDistributeBroadcastToNetwork.go      |   135 +
 .../bacnetip/readwrite/model/BVLCForwardedNPDU.go  |   235 +
 .../readwrite/model/BVLCOriginalBroadcastNPDU.go   |   163 +
 .../readwrite/model/BVLCOriginalUnicastNPDU.go     |   163 +
 .../model/BVLCReadBroadcastDistributionTable.go    |   135 +
 .../model/BVLCReadBroadcastDistributionTableAck.go |   135 +
 .../readwrite/model/BVLCReadForeignDeviceTable.go  |   135 +
 .../model/BVLCReadForeignDeviceTableAck.go         |   135 +
 .../readwrite/model/BVLCRegisterForeignDevice.go   |   135 +
 .../plc4go/bacnetip/readwrite/model/BVLCResult.go  |   135 +
 .../bacnetip/readwrite/model/BVLCSecureBVLL.go     |   135 +
 .../model/BVLCWideBroadcastDistributionTable.go    |   135 +
 .../plc4go/bacnetip/readwrite/model/NLM.go         |   243 +
 .../readwrite/model/NLMIAmRouterToNetwork.go       |   183 +
 .../readwrite/model/NLMWhoIsRouterToNetwork.go     |   183 +
 .../plc4go/bacnetip/readwrite/model/NPDU.go        |   651 +
 .../plc4go/knxnetip/KnxNetIpActiveReader.go        |    67 +
 plc4go/internal/plc4go/knxnetip/KnxNetIpBrowser.go |   241 +
 .../internal/plc4go/knxnetip/KnxNetIpConnection.go |   648 +
 .../internal/plc4go/knxnetip/KnxNetIpDiscoverer.go |   148 +
 plc4go/internal/plc4go/knxnetip/KnxNetIpDriver.go  |    88 +
 plc4go/internal/plc4go/knxnetip/KnxNetIpField.go   |   370 +
 .../plc4go/knxnetip/KnxNetIpFieldHandler.go        |    94 +
 .../plc4go/knxnetip/KnxNetIpMessageCodec.go        |   213 +
 plc4go/internal/plc4go/knxnetip/KnxNetIpReader.go  |   523 +
 .../internal/plc4go/knxnetip/KnxNetIpSubscriber.go |   167 +
 .../plc4go/knxnetip/KnxNetIpSubscriptionEvent.go   |    65 +
 .../plc4go/knxnetip/KnxNetIpValueHandler.go        |    37 +
 plc4go/internal/plc4go/knxnetip/KnxNetIpWriter.go  |    72 +
 plc4go/internal/plc4go/knxnetip/Utils.go           |    83 +
 .../plc4go/knxnetip/readwrite/ParserHelper.go      |   109 +
 .../knxnetip/readwrite/PropertyDataTypeIO.go       |   156 +
 .../plc4go/knxnetip/readwrite/XmlParserHelper.go   |   238 +
 .../plc4go/knxnetip/readwrite/model/Apdu.go        |   286 +
 .../plc4go/knxnetip/readwrite/model/ApduControl.go |   236 +
 .../knxnetip/readwrite/model/ApduControlAck.go     |   135 +
 .../knxnetip/readwrite/model/ApduControlConnect.go |   135 +
 .../readwrite/model/ApduControlContainer.go        |   166 +
 .../readwrite/model/ApduControlDisconnect.go       |   135 +
 .../knxnetip/readwrite/model/ApduControlNack.go    |   135 +
 .../plc4go/knxnetip/readwrite/model/ApduData.go    |   404 +
 .../knxnetip/readwrite/model/ApduDataAdcRead.go    |   135 +
 .../readwrite/model/ApduDataAdcResponse.go         |   135 +
 .../knxnetip/readwrite/model/ApduDataContainer.go  |   166 +
 .../model/ApduDataDeviceDescriptorRead.go          |   164 +
 .../model/ApduDataDeviceDescriptorResponse.go      |   210 +
 .../plc4go/knxnetip/readwrite/model/ApduDataExt.go |   754 ++
 .../readwrite/model/ApduDataExtAuthorizeRequest.go |   135 +
 .../model/ApduDataExtAuthorizeResponse.go          |   135 +
 .../model/ApduDataExtDomainAddressRead.go          |   135 +
 .../model/ApduDataExtDomainAddressResponse.go      |   135 +
 .../model/ApduDataExtDomainAddressSelectiveRead.go |   135 +
 .../ApduDataExtDomainAddressSerialNumberRead.go    |   135 +
 ...ApduDataExtDomainAddressSerialNumberResponse.go |   135 +
 .../ApduDataExtDomainAddressSerialNumberWrite.go   |   135 +
 .../model/ApduDataExtDomainAddressWrite.go         |   135 +
 .../model/ApduDataExtFileStreamInfoReport.go       |   135 +
 .../ApduDataExtGroupPropertyValueInfoReport.go     |   135 +
 .../model/ApduDataExtGroupPropertyValueRead.go     |   135 +
 .../model/ApduDataExtGroupPropertyValueResponse.go |   135 +
 .../model/ApduDataExtGroupPropertyValueWrite.go    |   135 +
 ...ApduDataExtIndividualAddressSerialNumberRead.go |   135 +
 ...DataExtIndividualAddressSerialNumberResponse.go |   135 +
 ...pduDataExtIndividualAddressSerialNumberWrite.go |   135 +
 .../readwrite/model/ApduDataExtKeyResponse.go      |   135 +
 .../readwrite/model/ApduDataExtKeyWrite.go         |   135 +
 .../readwrite/model/ApduDataExtLinkRead.go         |   135 +
 .../readwrite/model/ApduDataExtLinkResponse.go     |   135 +
 .../readwrite/model/ApduDataExtLinkWrite.go        |   135 +
 .../readwrite/model/ApduDataExtMemoryBitWrite.go   |   135 +
 .../model/ApduDataExtNetworkParameterRead.go       |   135 +
 .../model/ApduDataExtNetworkParameterResponse.go   |   135 +
 .../model/ApduDataExtNetworkParameterWrite.go      |   135 +
 .../model/ApduDataExtOpenRoutingTableRequest.go    |   135 +
 .../model/ApduDataExtPropertyDescriptionRead.go    |   135 +
 .../ApduDataExtPropertyDescriptionResponse.go      |   135 +
 .../model/ApduDataExtPropertyValueRead.go          |   248 +
 .../model/ApduDataExtPropertyValueResponse.go      |   292 +
 .../model/ApduDataExtPropertyValueWrite.go         |   135 +
 .../model/ApduDataExtReadRouterMemoryRequest.go    |   135 +
 .../model/ApduDataExtReadRouterMemoryResponse.go   |   135 +
 .../model/ApduDataExtReadRouterStatusRequest.go    |   135 +
 .../model/ApduDataExtReadRouterStatusResponse.go   |   135 +
 .../model/ApduDataExtReadRoutingTableRequest.go    |   135 +
 .../model/ApduDataExtReadRoutingTableResponse.go   |   135 +
 .../model/ApduDataExtWriteRouterMemoryRequest.go   |   135 +
 .../model/ApduDataExtWriteRouterStatusRequest.go   |   135 +
 .../model/ApduDataExtWriteRoutingTableRequest.go   |   135 +
 .../readwrite/model/ApduDataGroupValueRead.go      |   135 +
 .../readwrite/model/ApduDataGroupValueResponse.go  |   135 +
 .../readwrite/model/ApduDataGroupValueWrite.go     |   210 +
 .../model/ApduDataIndividualAddressRead.go         |   135 +
 .../model/ApduDataIndividualAddressResponse.go     |   135 +
 .../model/ApduDataIndividualAddressWrite.go        |   135 +
 .../knxnetip/readwrite/model/ApduDataMemoryRead.go |   135 +
 .../readwrite/model/ApduDataMemoryResponse.go      |   135 +
 .../readwrite/model/ApduDataMemoryWrite.go         |   135 +
 .../knxnetip/readwrite/model/ApduDataOther.go      |   163 +
 .../knxnetip/readwrite/model/ApduDataRestart.go    |   135 +
 .../readwrite/model/ApduDataUserMessage.go         |   135 +
 .../plc4go/knxnetip/readwrite/model/CEMI.go        |   502 +
 .../readwrite/model/CEMIAdditionalInformation.go   |   208 +
 .../CEMIAdditionalInformationBusmonitorInfo.go     |   326 +
 .../CEMIAdditionalInformationRelativeTimestamp.go  |   185 +
 .../knxnetip/readwrite/model/CEMIPriority.go       |   109 +
 .../knxnetip/readwrite/model/ChannelInformation.go |   167 +
 .../knxnetip/readwrite/model/ConnectionRequest.go  |   217 +
 .../model/ConnectionRequestInformation.go          |   224 +
 ...ConnectionRequestInformationDeviceManagement.go |   135 +
 ...ConnectionRequestInformationTunnelConnection.go |   189 +
 .../knxnetip/readwrite/model/ConnectionResponse.go |   265 +
 .../readwrite/model/ConnectionResponseDataBlock.go |   224 +
 .../ConnectionResponseDataBlockDeviceManagement.go |   135 +
 .../ConnectionResponseDataBlockTunnelConnection.go |   163 +
 .../readwrite/model/ConnectionStateRequest.go      |   217 +
 .../readwrite/model/ConnectionStateResponse.go     |   191 +
 .../knxnetip/readwrite/model/DIBDeviceInfo.go      |   394 +
 .../knxnetip/readwrite/model/DIBSuppSvcFamilies.go |   203 +
 .../knxnetip/readwrite/model/DescriptionRequest.go |   163 +
 .../readwrite/model/DescriptionResponse.go         |   190 +
 .../readwrite/model/DeviceConfigurationAck.go      |   163 +
 .../model/DeviceConfigurationAckDataBlock.go       |   208 +
 .../readwrite/model/DeviceConfigurationRequest.go  |   190 +
 .../model/DeviceConfigurationRequestDataBlock.go   |   209 +
 .../readwrite/model/DeviceDescriptorMediumType.go  |   123 +
 .../readwrite/model/DeviceDescriptorType0.go       |   476 +
 .../readwrite/model/DeviceDescriptorType2.go       |   371 +
 .../knxnetip/readwrite/model/DeviceStatus.go       |   167 +
 .../knxnetip/readwrite/model/DisconnectRequest.go  |   217 +
 .../knxnetip/readwrite/model/DisconnectResponse.go |   191 +
 .../knxnetip/readwrite/model/FirmwareType.go       |   220 +
 .../readwrite/model/HPAIControlEndpoint.go         |   207 +
 .../knxnetip/readwrite/model/HPAIDataEndpoint.go   |   207 +
 .../readwrite/model/HPAIDiscoveryEndpoint.go       |   207 +
 .../knxnetip/readwrite/model/HostProtocolCode.go   |    95 +
 .../plc4go/knxnetip/readwrite/model/IPAddress.go   |   159 +
 .../plc4go/knxnetip/readwrite/model/KnxAddress.go  |   193 +
 .../knxnetip/readwrite/model/KnxDatapoint.go       | 12234 +++++++++++++++++++
 .../readwrite/model/KnxDatapointMainType.go        |   988 ++
 .../knxnetip/readwrite/model/KnxDatapointType.go   |  5260 ++++++++
 .../knxnetip/readwrite/model/KnxGroupAddress.go    |   206 +
 .../readwrite/model/KnxGroupAddress2Level.go       |   192 +
 .../readwrite/model/KnxGroupAddress3Level.go       |   220 +
 .../readwrite/model/KnxGroupAddressFreeLevel.go    |   164 +
 .../readwrite/model/KnxInterfaceObjectProperty.go  |  4221 +++++++
 .../readwrite/model/KnxInterfaceObjectType.go      |   424 +
 .../plc4go/knxnetip/readwrite/model/KnxLayer.go    |   102 +
 .../knxnetip/readwrite/model/KnxManufacturer.go    |  7093 +++++++++++
 .../plc4go/knxnetip/readwrite/model/KnxMedium.go   |   123 +
 .../knxnetip/readwrite/model/KnxNetIpCore.go       |   164 +
 .../readwrite/model/KnxNetIpDeviceManagement.go    |   164 +
 .../knxnetip/readwrite/model/KnxNetIpMessage.go    |   458 +
 .../knxnetip/readwrite/model/KnxNetIpTunneling.go  |   164 +
 .../knxnetip/readwrite/model/KnxNetObjectServer.go |   164 +
 .../model/KnxNetRemoteConfigurationAndDiagnosis.go |   164 +
 .../readwrite/model/KnxNetRemoteLogging.go         |   164 +
 .../readwrite/model/KnxPropertyDataType.go         |   908 ++
 .../plc4go/knxnetip/readwrite/model/LBusmonInd.go  |   278 +
 .../plc4go/knxnetip/readwrite/model/LDataCon.go    |   241 +
 .../plc4go/knxnetip/readwrite/model/LDataFrame.go  |   371 +
 .../knxnetip/readwrite/model/LDataFrameData.go     |   301 +
 .../knxnetip/readwrite/model/LDataFrameDataExt.go  |   329 +
 .../readwrite/model/LDataFramePollingData.go       |   272 +
 .../plc4go/knxnetip/readwrite/model/LDataInd.go    |   241 +
 .../plc4go/knxnetip/readwrite/model/LDataReq.go    |   241 +
 .../knxnetip/readwrite/model/LPollDataCon.go       |   135 +
 .../knxnetip/readwrite/model/LPollDataReq.go       |   135 +
 .../plc4go/knxnetip/readwrite/model/LRawCon.go     |   135 +
 .../plc4go/knxnetip/readwrite/model/LRawInd.go     |   135 +
 .../plc4go/knxnetip/readwrite/model/LRawReq.go     |   135 +
 .../plc4go/knxnetip/readwrite/model/MACAddress.go  |   159 +
 .../readwrite/model/MFuncPropCommandReq.go         |   135 +
 .../knxnetip/readwrite/model/MFuncPropCon.go       |   135 +
 .../readwrite/model/MFuncPropStateReadReq.go       |   135 +
 .../knxnetip/readwrite/model/MPropInfoInd.go       |   135 +
 .../knxnetip/readwrite/model/MPropReadCon.go       |   304 +
 .../knxnetip/readwrite/model/MPropReadReq.go       |   276 +
 .../knxnetip/readwrite/model/MPropWriteCon.go      |   135 +
 .../knxnetip/readwrite/model/MPropWriteReq.go      |   135 +
 .../plc4go/knxnetip/readwrite/model/MResetInd.go   |   135 +
 .../plc4go/knxnetip/readwrite/model/MResetReq.go   |   135 +
 .../model/ProjectInstallationIdentifier.go         |   167 +
 .../knxnetip/readwrite/model/RelativeTimestamp.go  |   141 +
 .../knxnetip/readwrite/model/RoutingIndication.go  |   135 +
 .../knxnetip/readwrite/model/SearchRequest.go      |   163 +
 .../knxnetip/readwrite/model/SearchResponse.go     |   217 +
 .../plc4go/knxnetip/readwrite/model/ServiceId.go   |   264 +
 .../plc4go/knxnetip/readwrite/model/Status.go      |   165 +
 .../readwrite/model/SupportedPhysicalMedia.go      |   372 +
 .../knxnetip/readwrite/model/TDataConnectedInd.go  |   135 +
 .../knxnetip/readwrite/model/TDataConnectedReq.go  |   135 +
 .../knxnetip/readwrite/model/TDataIndividualInd.go |   135 +
 .../knxnetip/readwrite/model/TDataIndividualReq.go |   135 +
 .../knxnetip/readwrite/model/TunnelingRequest.go   |   190 +
 .../readwrite/model/TunnelingRequestDataBlock.go   |   209 +
 .../knxnetip/readwrite/model/TunnelingResponse.go  |   163 +
 .../readwrite/model/TunnelingResponseDataBlock.go  |   208 +
 .../knxnetip/readwrite/model/UnknownMessage.go     |   182 +
 plc4go/internal/plc4go/modbus/ModbusConnection.go  |   165 +
 plc4go/internal/plc4go/modbus/ModbusDriver.go      |   117 +
 plc4go/internal/plc4go/modbus/ModbusField.go       |    94 +
 .../internal/plc4go/modbus/ModbusFieldHandler.go   |   109 +
 .../internal/plc4go/modbus/ModbusMessageCodec.go   |   184 +
 plc4go/internal/plc4go/modbus/ModbusReader.go      |   194 +
 .../internal/plc4go/modbus/ModbusValueHandler.go   |    31 +
 plc4go/internal/plc4go/modbus/ModbusWriter.go      |   210 +
 .../plc4go/modbus/readwrite/ParserHelper.go        |    63 +
 .../plc4go/modbus/readwrite/XmlParserHelper.go     |    91 +
 .../plc4go/modbus/readwrite/model/DataItem.go      |   647 +
 .../modbus/readwrite/model/ModbusConstants.go      |   137 +
 .../modbus/readwrite/model/ModbusDataTypeSizes.go  |   348 +
 .../modbus/readwrite/model/ModbusErrorCode.go      |   151 +
 .../plc4go/modbus/readwrite/model/ModbusPDU.go     |   744 ++
 .../readwrite/model/ModbusPDUDiagnosticRequest.go  |   200 +
 .../readwrite/model/ModbusPDUDiagnosticResponse.go |   200 +
 .../modbus/readwrite/model/ModbusPDUError.go       |   172 +
 .../model/ModbusPDUGetComEventCounterRequest.go    |   143 +
 .../model/ModbusPDUGetComEventCounterResponse.go   |   200 +
 .../model/ModbusPDUGetComEventLogRequest.go        |   143 +
 .../model/ModbusPDUGetComEventLogResponse.go       |   290 +
 .../ModbusPDUMaskWriteHoldingRegisterRequest.go    |   228 +
 .../ModbusPDUMaskWriteHoldingRegisterResponse.go   |   228 +
 .../readwrite/model/ModbusPDUReadCoilsRequest.go   |   200 +
 .../readwrite/model/ModbusPDUReadCoilsResponse.go  |   206 +
 .../ModbusPDUReadDeviceIdentificationRequest.go    |   143 +
 .../ModbusPDUReadDeviceIdentificationResponse.go   |   143 +
 .../model/ModbusPDUReadDiscreteInputsRequest.go    |   200 +
 .../model/ModbusPDUReadDiscreteInputsResponse.go   |   206 +
 .../model/ModbusPDUReadExceptionStatusRequest.go   |   143 +
 .../model/ModbusPDUReadExceptionStatusResponse.go  |   172 +
 .../model/ModbusPDUReadFifoQueueRequest.go         |   172 +
 .../model/ModbusPDUReadFifoQueueResponse.go        |   220 +
 .../model/ModbusPDUReadFileRecordRequest.go        |   215 +
 .../model/ModbusPDUReadFileRecordRequestItem.go    |   219 +
 .../model/ModbusPDUReadFileRecordResponse.go       |   215 +
 .../model/ModbusPDUReadFileRecordResponseItem.go   |   203 +
 .../model/ModbusPDUReadHoldingRegistersRequest.go  |   200 +
 .../model/ModbusPDUReadHoldingRegistersResponse.go |   206 +
 .../model/ModbusPDUReadInputRegistersRequest.go    |   200 +
 .../model/ModbusPDUReadInputRegistersResponse.go   |   206 +
 ...sPDUReadWriteMultipleHoldingRegistersRequest.go |   318 +
 ...PDUReadWriteMultipleHoldingRegistersResponse.go |   206 +
 .../model/ModbusPDUReportServerIdRequest.go        |   143 +
 .../model/ModbusPDUReportServerIdResponse.go       |   206 +
 .../model/ModbusPDUWriteFileRecordRequest.go       |   215 +
 .../model/ModbusPDUWriteFileRecordRequestItem.go   |   255 +
 .../model/ModbusPDUWriteFileRecordResponse.go      |   215 +
 .../model/ModbusPDUWriteFileRecordResponseItem.go  |   255 +
 .../model/ModbusPDUWriteMultipleCoilsRequest.go    |   262 +
 .../model/ModbusPDUWriteMultipleCoilsResponse.go   |   200 +
 ...odbusPDUWriteMultipleHoldingRegistersRequest.go |   262 +
 ...dbusPDUWriteMultipleHoldingRegistersResponse.go |   200 +
 .../model/ModbusPDUWriteSingleCoilRequest.go       |   200 +
 .../model/ModbusPDUWriteSingleCoilResponse.go      |   200 +
 .../model/ModbusPDUWriteSingleRegisterRequest.go   |   200 +
 .../model/ModbusPDUWriteSingleRegisterResponse.go  |   200 +
 .../modbus/readwrite/model/ModbusSerialADU.go      |   244 +
 .../plc4go/modbus/readwrite/model/ModbusTcpADU.go  |   230 +
 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        |   368 +
 .../readwrite/model/COTPPacketConnectionRequest.go |   222 +
 .../model/COTPPacketConnectionResponse.go          |   222 +
 .../plc4go/s7/readwrite/model/COTPPacketData.go    |   194 +
 .../readwrite/model/COTPPacketDisconnectRequest.go |   222 +
 .../model/COTPPacketDisconnectResponse.go          |   194 +
 .../s7/readwrite/model/COTPPacketTpduError.go      |   194 +
 .../plc4go/s7/readwrite/model/COTPParameter.go     |   266 +
 .../s7/readwrite/model/COTPParameterCalledTsap.go  |   164 +
 .../s7/readwrite/model/COTPParameterCallingTsap.go |   164 +
 .../s7/readwrite/model/COTPParameterChecksum.go    |   164 +
 ...COTPParameterDisconnectAdditionalInformation.go |   180 +
 .../s7/readwrite/model/COTPParameterTpduSize.go    |   164 +
 .../plc4go/s7/readwrite/model/COTPProtocolClass.go |   116 +
 .../plc4go/s7/readwrite/model/COTPTpduSize.go      |   160 +
 .../internal/plc4go/s7/readwrite/model/DataItem.go |   499 +
 .../s7/readwrite/model/DataTransportErrorCode.go   |   123 +
 .../plc4go/s7/readwrite/model/DataTransportSize.go |   160 +
 .../plc4go/s7/readwrite/model/DeviceGroup.go       |   102 +
 .../plc4go/s7/readwrite/model/MemoryArea.go        |   180 +
 .../plc4go/s7/readwrite/model/S7Address.go         |   194 +
 .../plc4go/s7/readwrite/model/S7AddressAny.go      |   330 +
 .../plc4go/s7/readwrite/model/S7Message.go         |   412 +
 .../plc4go/s7/readwrite/model/S7MessageRequest.go  |   138 +
 .../plc4go/s7/readwrite/model/S7MessageResponse.go |   195 +
 .../s7/readwrite/model/S7MessageResponseData.go    |   195 +
 .../plc4go/s7/readwrite/model/S7MessageUserData.go |   138 +
 .../plc4go/s7/readwrite/model/S7Parameter.go       |   265 +
 .../readwrite/model/S7ParameterReadVarRequest.go   |   204 +
 .../readwrite/model/S7ParameterReadVarResponse.go  |   168 +
 .../model/S7ParameterSetupCommunication.go         |   250 +
 .../s7/readwrite/model/S7ParameterUserData.go      |   204 +
 .../s7/readwrite/model/S7ParameterUserDataItem.go  |   194 +
 .../model/S7ParameterUserDataItemCPUFunctions.go   |   403 +
 .../readwrite/model/S7ParameterWriteVarRequest.go  |   204 +
 .../readwrite/model/S7ParameterWriteVarResponse.go |   168 +
 .../plc4go/s7/readwrite/model/S7Payload.go         |   221 +
 .../s7/readwrite/model/S7PayloadReadVarResponse.go |   191 +
 .../plc4go/s7/readwrite/model/S7PayloadUserData.go |   188 +
 .../s7/readwrite/model/S7PayloadUserDataItem.go    |   311 +
 ...PayloadUserDataItemCpuFunctionReadSzlRequest.go |   139 +
 ...ayloadUserDataItemCpuFunctionReadSzlResponse.go |   224 +
 .../s7/readwrite/model/S7PayloadWriteVarRequest.go |   191 +
 .../readwrite/model/S7PayloadWriteVarResponse.go   |   186 +
 .../plc4go/s7/readwrite/model/S7StaticHelper.go    |   150 +
 .../s7/readwrite/model/S7VarPayloadDataItem.go     |   258 +
 .../s7/readwrite/model/S7VarPayloadStatusItem.go   |   141 +
 .../readwrite/model/S7VarRequestParameterItem.go   |   194 +
 .../model/S7VarRequestParameterItemAddress.go      |   179 +
 .../plc4go/s7/readwrite/model/SzlDataTreeItem.go   |   263 +
 plc4go/internal/plc4go/s7/readwrite/model/SzlId.go |   193 +
 .../s7/readwrite/model/SzlModuleTypeClass.go       |   109 +
 .../plc4go/s7/readwrite/model/SzlSublist.go        |   214 +
 .../plc4go/s7/readwrite/model/TPKTPacket.go        |   204 +
 .../plc4go/s7/readwrite/model/TransportSize.go     |   701 ++
 plc4go/internal/plc4go/spi/HandlerExposer.go       |    24 +
 plc4go/internal/plc4go/spi/Message.go              |    27 +
 plc4go/internal/plc4go/spi/MessageCodec.go         |    42 +
 plc4go/internal/plc4go/spi/PlcBrowser.go           |    25 +
 plc4go/internal/plc4go/spi/PlcDiscoverer.go        |    25 +
 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 +
 .../plc4go/spi/model/DefaultBrowseRequest.go       |   102 +
 .../plc4go/spi/model/DefaultPlcDiscoveryEvent.go   |    53 +
 .../plc4go/spi/model/DefaultPlcReadRequest.go      |   169 +
 .../plc4go/spi/model/DefaultPlcReadResponse.go     |    96 +
 .../spi/model/DefaultPlcSubscriptionEvent.go       |   108 +
 .../spi/model/DefaultPlcSubscriptionRequest.go     |   160 +
 .../spi/model/DefaultPlcSubscriptionResponse.go    |    89 +
 .../plc4go/spi/model/DefaultPlcWriteRequest.go     |   160 +
 .../plc4go/spi/model/DefaultPlcWriteResponse.go    |    86 +
 .../plc4go/spi/model/RequestInterceptor.go         |    38 +
 .../plc4go/spi/testutils/DriverTestRunner.go       |   497 +
 .../spi/testutils/ParserSerializerTestRunner.go    |   174 +
 plc4go/internal/plc4go/spi/testutils/TestUtils.go  |    52 +
 plc4go/internal/plc4go/spi/transports/Transport.go |    30 +
 .../plc4go/spi/transports/TransportInstance.go     |    37 +
 .../plc4go/spi/transports/tcp/TcpTransport.go      |   188 +
 .../plc4go/spi/transports/test/TestTransport.go    |   109 +
 .../plc4go/spi/transports/udp/UdpTransport.go      |   217 +
 plc4go/internal/plc4go/spi/utils/CastUtils.go      |    91 +
 plc4go/internal/plc4go/spi/utils/ReadBuffer.go     |   203 +
 plc4go/internal/plc4go/spi/utils/Regexp.go         |    35 +
 plc4go/internal/plc4go/spi/utils/Serializable.go   |    23 +
 plc4go/internal/plc4go/spi/utils/Utils.go          |    27 +
 plc4go/internal/plc4go/spi/utils/WriteBuffer.go    |   102 +
 plc4go/internal/plc4go/spi/values/BOOL.go          |    76 +
 plc4go/internal/plc4go/spi/values/BYTE.go          |    84 +
 plc4go/internal/plc4go/spi/values/CHAR.go          |    47 +
 plc4go/internal/plc4go/spi/values/DATE.go          |    63 +
 plc4go/internal/plc4go/spi/values/DATE_AND_TIME.go |    50 +
 plc4go/internal/plc4go/spi/values/DINT.go          |   138 +
 plc4go/internal/plc4go/spi/values/DWORD.go         |    96 +
 .../plc4go/spi/values/IEC61131ValueHandler.go      |   409 +
 plc4go/internal/plc4go/spi/values/INT.go           |   131 +
 plc4go/internal/plc4go/spi/values/LINT.go          |   145 +
 plc4go/internal/plc4go/spi/values/LREAL.go         |   161 +
 plc4go/internal/plc4go/spi/values/LTIME.go         |    50 +
 plc4go/internal/plc4go/spi/values/LWORD.go         |   112 +
 plc4go/internal/plc4go/spi/values/NULL.go          |    39 +
 plc4go/internal/plc4go/spi/values/PlcBitString.go  |    93 +
 plc4go/internal/plc4go/spi/values/PlcByteArray.go  |    72 +
 plc4go/internal/plc4go/spi/values/PlcList.go       |    68 +
 .../plc4go/spi/values/PlcSimpleValueAdapter.go     |    83 +
 plc4go/internal/plc4go/spi/values/PlcStruct.go     |    97 +
 .../internal/plc4go/spi/values/PlcValueAdapter.go  |   182 +
 plc4go/internal/plc4go/spi/values/REAL.go          |   155 +
 plc4go/internal/plc4go/spi/values/SINT.go          |   123 +
 plc4go/internal/plc4go/spi/values/STRING.go        |    47 +
 plc4go/internal/plc4go/spi/values/TIME.go          |    50 +
 plc4go/internal/plc4go/spi/values/TIME_OF_DAY.go   |    66 +
 plc4go/internal/plc4go/spi/values/UDINT.go         |   131 +
 plc4go/internal/plc4go/spi/values/UINT.go          |   117 +
 plc4go/internal/plc4go/spi/values/ULINT.go         |   145 +
 plc4go/internal/plc4go/spi/values/USINT.go         |   103 +
 plc4go/internal/plc4go/spi/values/WCHAR.go         |    50 +
 plc4go/internal/plc4go/spi/values/WORD.go          |    88 +
 plc4go/internal/plc4go/spi/values/WSTRING.go       |    50 +
 plc4go/pkg/plc4go/connection.go                    |    81 +
 plc4go/pkg/plc4go/driver.go                        |    46 +
 plc4go/pkg/plc4go/driverManager.go                 |   181 +
 plc4go/pkg/plc4go/drivers/drivers.go               |    33 +
 plc4go/pkg/plc4go/model/plc_browse.go              |    52 +
 plc4go/pkg/plc4go/model/plc_connection_metadata.go |    36 +
 plc4go/pkg/plc4go/model/plc_discovery.go           |    39 +
 plc4go/pkg/plc4go/model/plc_field.go               |    24 +
 plc4go/pkg/plc4go/model/plc_message.go             |    22 +
 plc4go/pkg/plc4go/model/plc_read.go                |    47 +
 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.go        |    63 +
 plc4go/pkg/plc4go/model/plc_unsubscription.go      |    37 +
 plc4go/pkg/plc4go/model/plc_write.go               |    43 +
 plc4go/pkg/plc4go/transports/transports.go         |    33 +
 plc4go/pkg/plc4go/values/plc_value.go              |    88 +
 plc4go/pom.xml                                     |   236 +
 plc4j/api/pom.xml                                  |    19 +-
 .../org/apache/plc4x/java/api/PlcConnection.java   |    26 +-
 .../java/org/apache/plc4x/java/api/PlcDriver.java  |    20 +-
 .../plc4x/java/api/messages/PlcBrowseRequest.java  |    36 +
 .../plc4x/java/api/messages/PlcBrowseResponse.java |    25 +
 .../java/api/messages/PlcDiscoveryRequest.java     |    34 +
 .../java/api/messages/PlcDiscoveryResponse.java    |    25 +
 .../plc4x/java/api/messages/PlcReadRequest.java    |     3 +
 .../api/messages/PlcSubscriptionFieldRequest.java  |    40 +
 .../api/messages/PlcSubscriptionFieldResponse.java |    41 +
 .../java/api/messages/PlcSubscriptionRequest.java  |     3 +-
 .../java/api/messages/PlcSubscriptionResponse.java |     2 +-
 .../api/messages/PlcUnsubscriptionRequest.java     |     3 +
 .../plc4x/java/api/messages/PlcWriteRequest.java   |    36 +-
 .../java/api/metadata/PlcConnectionMetadata.java   |     7 +
 .../java/api/model/PlcConsumerRegistration.java    |    12 +
 .../org/apache/plc4x/java/api/model/PlcField.java  |    31 +
 .../plc4x/java/api/model/PlcSubscriptionField.java |    32 +
 .../java/api/model/PlcSubscriptionHandle.java      |     8 +-
 .../plc4x/java/api/types/PlcResponseCode.java      |     4 +
 .../apache/plc4x/java/api/value/PlcBigDecimal.java |   164 -
 .../apache/plc4x/java/api/value/PlcBigInteger.java |   164 -
 .../apache/plc4x/java/api/value/PlcBoolean.java    |   168 -
 .../org/apache/plc4x/java/api/value/PlcByte.java   |   184 -
 .../org/apache/plc4x/java/api/value/PlcDate.java   |    67 -
 .../apache/plc4x/java/api/value/PlcDateTime.java   |    93 -
 .../org/apache/plc4x/java/api/value/PlcDouble.java |   168 -
 .../org/apache/plc4x/java/api/value/PlcFloat.java  |   168 -
 .../apache/plc4x/java/api/value/PlcInteger.java    |   184 -
 .../org/apache/plc4x/java/api/value/PlcList.java   |    84 -
 .../org/apache/plc4x/java/api/value/PlcLong.java   |   168 -
 .../org/apache/plc4x/java/api/value/PlcShort.java  |   184 -
 .../plc4x/java/api/value/PlcSimpleValue.java       |    77 -
 .../org/apache/plc4x/java/api/value/PlcString.java |    89 -
 .../org/apache/plc4x/java/api/value/PlcStruct.java |    84 -
 .../org/apache/plc4x/java/api/value/PlcTime.java   |    67 -
 .../org/apache/plc4x/java/api/value/PlcValue.java  |     7 +
 .../plc4x/java/api/value/PlcValueAdapter.java      |   292 -
 .../plc4x/java/api/value/PlcValueHandler.java      |    46 +
 .../org/apache/plc4x/java/api/value/PlcValues.java |   382 -
 .../apache/plc4x/java/api/types/PlcValueTest.java  |    53 -
 .../apache/plc4x/java/api/value/PlcValuesTest.java |    51 -
 plc4j/drivers/ab-eth/pom.xml                       |    26 +-
 .../org/apache/plc4x/java/abeth/AbEthDriver.java   |    16 +
 .../apache/plc4x/java/abeth/field/AbEthField.java  |     5 +
 .../plc4x/java/abeth/field/AbEthFieldHandler.java  |     4 +-
 .../java/abeth/protocol/AbEthProtocolLogic.java    |    33 +-
 .../java/abeth/protocol/Plc4xAbEthProtocol.java    |    23 +-
 .../org/apache/plc4x/protocol/abeth/AbEthTest.java |     2 +-
 plc4j/drivers/ads/pom.xml                          |   169 +-
 .../org/apache/plc4x/java/ads/ADSPlcDriver.java    |   115 +
 .../org/apache/plc4x/java/ads/AdsPlcDriver.java    |   106 -
 .../java/ads/configuration/AdsConfiguration.java   |   152 +
 .../ads/connection/AdsAbstractPlcConnection.java   |   276 -
 .../java/ads/connection/AdsConnectionFactory.java  |    58 -
 .../ads/connection/AdsSerialPlcConnection.java     |    70 -
 .../java/ads/connection/AdsTcpPlcConnection.java   |   374 -
 .../org/apache/plc4x/java/ads/field/AdsField.java  |    29 +
 .../plc4x/java/ads/field/AdsFieldHandler.java      |    41 +
 .../plc4x/java/ads/field/AdsStringField.java       |    25 +
 .../plc4x/java/ads/field/DirectAdsField.java       |   172 +
 .../plc4x/java/ads/field/DirectAdsStringField.java |   126 +
 .../plc4x/java/ads/field/SymbolicAdsField.java     |   134 +
 .../java/ads/field/SymbolicAdsStringField.java     |    98 +
 .../java/ads/model/AdsSubscriptionHandle.java      |    85 +
 .../plc4x/java/ads/protocol/AdsProtocolLogic.java  |   765 ++
 .../apache/plc4x/java/ads/utils/StaticHelper.java  |    89 +
 .../services/org.apache.plc4x.java.api.PlcDriver   |     2 +-
 .../apache/plc4x/java/ads/AdsPlcDriverTest.java    |   164 -
 .../ads/adslib/ADSClientNotificationExample.java   |   283 -
 .../org/apache/plc4x/java/ads/adslib/AdsLib.java   |   565 -
 .../apache/plc4x/java/ads/adslib/AmsRequest.java   |    51 -
 .../apache/plc4x/java/ads/adslib/AmsRouter.java    |   384 -
 .../org/apache/plc4x/java/ads/adslib/Output.java   |    38 -
 .../apache/plc4x/java/ads/adslib/package-info.java |    24 -
 .../connection/AdsAbstractPlcConnectionTest.java   |   344 -
 .../ads/connection/AdsConnectionFactoryTest.java   |   165 -
 .../ads/connection/AdsSerialPlcConnectionTest.java |   243 -
 .../ads/connection/AdsTcpPlcConnectionTests.java   |   191 -
 .../ads/AdsDiscoverySerializerParserTest.java      |    30 +
 .../org/apache/plc4x/protocol/ads/AdsDriverIT.java |    29 +
 .../protocol/ads/AdsSerializerParserTest.java      |    30 +
 .../apache/plc4x/protocol/ads/HexBase64Helper.java |    31 +
 .../plc4x/protocol/ads/ManualAdsDriverTest.java    |    98 +
 .../protocol/ads/ManualParserSerializerTest.java   |    36 +
 plc4j/drivers/canopen/pom.xml                      |   213 +
 .../plc4x/java/canopen/CANOpenPlcDriver.java       |   133 +
 .../api/conversation/canopen/CANConversation.java  |    36 +
 .../canopen/CANOpenConversationBase.java           |   130 +
 .../canopen/SDODownloadConversation.java           |   147 +
 .../canopen/SDOUploadConversation.java             |   133 +
 .../api/segmentation/accumulator/ByteStorage.java  |    95 +
 .../api/segmentation/accumulator/Storage.java      |    50 +
 .../configuration/CANOpenConfiguration.java        |    62 +
 .../java/canopen/context/CANOpenDriverContext.java |    28 +
 .../plc4x/java/canopen/field/CANOpenField.java     |    59 +
 .../java/canopen/field/CANOpenFieldHandler.java    |    32 +
 .../java/canopen/field/CANOpenHeartbeatField.java  |    80 +
 .../plc4x/java/canopen/field/CANOpenNMTField.java  |    80 +
 .../plc4x/java/canopen/field/CANOpenPDOField.java  |   102 +
 .../plc4x/java/canopen/field/CANOpenSDOField.java  |   130 +
 .../canopen/field/CANOpenSubscriptionField.java    |    29 +
 .../plc4x/java/canopen/helper/CANOpenHelper.java   |    61 +
 .../plc4x/java/canopen/helper/HeaderParser.java    |    62 +
 .../plc4x/java/canopen/listener/Callback.java      |    26 +
 .../java/canopen/listener/CompositeCallback.java   |    43 +
 .../canopen/protocol/CANOpenProtocolLogic.java     |   458 +
 .../protocol/CANOpenSubscriptionHandle.java        |    59 +
 .../canopen/socketcan/SocketCANConversation.java   |    63 +
 .../canopen/transport/CANOpenAbortException.java   |    41 +
 .../plc4x/java/canopen/transport/CANOpenFrame.java |    33 +
 .../canopen/transport/CANOpenFrameBuilder.java     |    34 +
 .../transport/CANOpenFrameBuilderFactory.java      |    25 +
 .../transport/socketcan/CANOpenSocketCANFrame.java |   159 +
 .../socketcan/CANOpenSocketCANFrameBuilder.java    |    55 +
 .../socketcan/io/CANOpenSocketCANFrameIO.java      |   159 +
 .../services/org.apache.plc4x.java.api.PlcDriver   |    19 +
 .../plc4x/java/canopen/CANOpenDriverSDOIT.java     |    29 +
 .../plc4x/java/canopen/CANOpenPayloadTest.java     |    29 +
 .../plc4x/java/canopen/CANOpenWiresharkTest.java   |    29 +
 .../java/org/apache/plc4x/java/canopen/Main.java   |    83 +
 .../plc4x/java/canopen/ManualParserTest.java       |   113 +
 .../java/canopen/field/CANOpenFieldSDOTest.java    |    38 +
 .../java/canopen/field/CANOpenNMTFieldTest.java    |    55 +
 .../java/canopen/field/CANOpenPDOFieldTest.java    |    43 +
 .../java/canopen/field/CANOpenSDOFieldTest.java    |    56 +
 plc4j/drivers/eip/pom.xml                          |    26 +-
 .../apache/plc4x/java/eip/readwrite/EIPDriver.java |    16 +
 .../plc4x/java/eip/readwrite/field/EipField.java   |     5 +
 .../java/eip/readwrite/field/EipFieldHandler.java  |   401 +-
 .../eip/readwrite/protocol/EipProtocolLogic.java   |    81 +-
 .../java/eip/readwrite/EIPDriverTestsuite.java     |     2 +-
 .../readwrite/EIPParserSerializerTestsuite.java    |     2 +-
 .../resources/testsuite/EIPDriverTestsuite.xml     |   152 -
 plc4j/drivers/firmata/pom.xml                      |    27 +-
 .../java/firmata/readwrite/FirmataDriver.java      |    16 +
 .../readwrite/context/FirmataDriverContext.java    |    18 +-
 .../java/firmata/readwrite/field/FirmataField.java |     2 +-
 .../readwrite/field/FirmataFieldAnalog.java        |     5 +
 .../readwrite/field/FirmataFieldDigital.java       |     7 +-
 .../readwrite/field/FirmataFieldHandler.java       |   116 +-
 .../readwrite/protocol/FirmataProtocolLogic.java   |    31 +-
 .../readwrite/FirmataParserSerializerTest.java     |     2 +-
 plc4j/drivers/knxnetip/pom.xml                     |    32 +-
 .../apache/plc4x/java/knxnetip/KnxNetIpDriver.java |    31 +-
 .../configuration/KnxNetIpConfiguration.java       |    64 +-
 .../knxnetip/context/KnxNetIpDriverContext.java    |   132 +
 .../plc4x/java/knxnetip/ets5/Ets5Parser.java       |    39 +-
 .../plc4x/java/knxnetip/ets5/model/Ets5Model.java  |    10 +-
 .../java/knxnetip/ets5/model/GroupAddress.java     |     7 +-
 .../plc4x/java/knxnetip/field/KnxNetIpField.java   |     5 +
 .../java/knxnetip/field/KnxNetIpFieldHandler.java  |     4 +-
 .../knxnetip/protocol/KnxNetIpProtocolLogic.java   |   542 +-
 .../plc4x/java/knxnetip/utils/KnxHelper.java       |    11 +-
 .../org/apache/plc4x/java/knxnetip/IOTest.java     |    22 +-
 .../apache/plc4x/java/knxnetip/KNXNetIpTest.java   |    30 -
 .../apache/plc4x/java/knxnetip/KnxNetIpTest.java   |    30 +
 .../test/resources/testsuite/KNXNetIPTestsuite.xml |   402 -
 plc4j/drivers/mock/pom.xml                         |     6 +-
 .../plc4x/java/mock/connection/MockConnection.java |     3 +-
 .../apache/plc4x/java/mock/field/MockField.java    |     5 +
 .../plc4x/java/mock/field/MockFieldHandler.java    |    70 +-
 .../apache/plc4x/java/mock/field/MockPlcValue.java |     9 +-
 .../plc4x/java/mock/field/MockValueHandler.java    |    47 +
 plc4j/drivers/modbus/pom.xml                       |    30 +-
 .../org/apache/plc4x/java/modbus/ModbusDriver.java |    16 +
 .../java/modbus/config/ModbusConfiguration.java    |     2 +-
 .../java/modbus/field/ModbusExtendedRegister.java  |    78 +
 .../plc4x/java/modbus/field/ModbusField.java       |    84 +-
 .../plc4x/java/modbus/field/ModbusFieldCoil.java   |    49 +-
 .../modbus/field/ModbusFieldDiscreteInput.java     |    50 +-
 .../java/modbus/field/ModbusFieldHandler.java      |   125 +-
 .../modbus/field/ModbusFieldHoldingRegister.java   |    48 +-
 .../modbus/field/ModbusFieldInputRegister.java     |    48 +-
 .../java/modbus/protocol/ModbusProtocolLogic.java  |   335 +-
 .../plc4x/java/modbus/ManualModbusDriverTest.java  |   103 +
 .../apache/plc4x/java/modbus/ModbusDriverIT.java   |    29 +
 .../apache/plc4x/java/modbus/ModbusEncodeTest.java |   183 +
 .../plc4x/java/modbus/ModbusFieldDataTypeTest.java |    98 +
 .../apache/plc4x/java/modbus/ModbusFieldTest.java  |    71 +
 .../org/apache/plc4x/java/modbus/ModbusIOTest.java |    29 -
 .../java/modbus/ModbusParserSerializerTest.java    |    29 +
 .../test/resources/testsuite/ModbusTestsuite.xml   |    64 -
 plc4j/drivers/opcua/pom.xml                        |   100 +-
 .../apache/plc4x/java/opcua/OpcuaPlcDriver.java    |     8 +-
 .../opcua/connection/BaseOpcuaPlcConnection.java   |     3 +-
 .../opcua/connection/OpcuaTcpPlcConnection.java    |   607 +-
 .../plc4x/java/opcua/protocol/OpcuaField.java      |    35 +-
 .../java/opcua/protocol/OpcuaPlcFieldHandler.java  |   136 +-
 .../opcua/protocol/OpcuaSubsriptionHandle.java     |     5 +-
 .../java/opcua/protocol/model/OpcuaDataTypes.java  |    45 -
 .../opcua/protocol/model/OpcuaIdentifierType.java  |    47 -
 .../apache/plc4x/java/opcua/ManualPLC4XOpcua.java  |    51 +-
 .../plc4x/java/opcua/OpcuaPlcDriverTest.java       |   241 +-
 .../connection/OpcuaTcpPlcConnectionTest.java      |    35 +-
 .../plc4x/java/opcua/protocol/OpcuaFieldTest.java  |    19 +
 .../opcua/protocol/OpcuaPlcFieldHandlerTest.java   |     3 +
 plc4j/drivers/pom.xml                              |     8 +-
 plc4j/drivers/s7/pom.xml                           |    37 +-
 .../apache/plc4x/java/s7/readwrite/S7Driver.java   |    16 +
 .../java/s7/readwrite/context/S7DriverContext.java |     9 +
 .../plc4x/java/s7/readwrite/field/S7Field.java     |   219 +-
 .../java/s7/readwrite/field/S7PlcFieldHandler.java |   553 +-
 .../java/s7/readwrite/field/S7StringField.java     |    55 +
 .../java/s7/readwrite/optimizer/S7Optimizer.java   |     8 +-
 .../s7/readwrite/protocol/S7ProtocolLogic.java     |   378 +-
 .../java/s7/readwrite/utils/S7TsapIdEncoder.java   |     2 +-
 .../apache/plc4x/java/s7/utils/StaticHelper.java   |   130 +-
 .../plc4x/java/s7/readwrite/DatatypesTest.java     |    79 +
 .../java/s7/readwrite/ManualS7DriverTest.java      |    91 +-
 .../apache/plc4x/java/s7/readwrite/S7DriverIT.java |     2 +-
 .../java/s7/readwrite/S7ParserSerializerTest.java  |     2 +-
 .../plc4x/java/s7/readwrite/field/S7FieldTest.java |    39 +
 .../plc4x/java/s7/readwrite/issues/PLC4X272.java   |    29 +
 .../s7/src/test/resources/tests/PLC4X-272.xml      |  2282 ++++
 .../s7/src/test/resources/testsuite/S7DriverIT.xml |   311 -
 .../resources/testsuite/S7ParserSerializerTest.xml |   509 -
 plc4j/drivers/simulated/pom.xml                    |    58 +-
 .../simulated/connection/SimulatedConnection.java  |    78 +-
 .../java/simulated/connection/SimulatedDevice.java |    95 +-
 .../plc4x/java/simulated/field/SimulatedField.java |    58 +-
 .../simulated/field/SimulatedFieldHandler.java     |   174 +-
 .../plc4x/java/simulated/utils/StaticHelper.java   |    66 +
 .../connection/SimulatedConnectionTest.java        |    30 +-
 .../simulated/connection/SimulatedDeviceTest.java  |     8 +-
 .../simulated/field/SimularedFieldHandlerTest.java |    33 +-
 .../java/simulated/field/SimulatedFieldTest.java   |    19 +-
 plc4j/examples/dummy-driver/pom.xml                |    96 -
 .../java/examples/dummydriver/DummyDriver.java     |    67 -
 .../dummydriver/connection/DummyConnection.java    |    84 -
 .../examples/dummydriver/model/DummyField.java     |    35 -
 .../examples/dummydriver/netty/DummyProtocol.java  |    75 -
 .../services/org.apache.plc4x.java.api.PlcDriver   |    19 -
 plc4j/examples/hello-cloud-azure/pom.xml           |     4 +-
 plc4j/examples/hello-cloud-google/pom.xml          |     4 +-
 plc4j/examples/hello-connectivity-kafka/pom.xml    |     6 +-
 .../hello-connectivity-mqtt/mqtt-connector.yml     |     2 +-
 plc4j/examples/hello-connectivity-mqtt/pom.xml     |     4 +-
 plc4j/examples/hello-integration-edgent/pom.xml    |     4 +-
 plc4j/examples/hello-integration-iotdb/pom.xml     |    72 +-
 .../examples/integration/iotdb/CliOptions.java     |    18 +-
 .../examples/integration/iotdb/IIoTDBWriter.java   |    27 +
 .../integration/iotdb/IoTDBWriterWithJDBC.java     |    88 +
 .../integration/iotdb/IoTDBWriterWithSession.java  |    89 +
 .../java/examples/integration/iotdb/PlcLogger.java |    70 +-
 plc4j/examples/hello-opm/pom.xml                   |     6 +-
 plc4j/examples/hello-storage-elasticsearch/pom.xml |    26 +-
 plc4j/examples/hello-webapp/client/pom.xml         |     2 +-
 plc4j/examples/hello-webapp/pom.xml                |     2 +-
 plc4j/examples/hello-webapp/webapp/pom.xml         |     8 +-
 .../watertank/service/WaterTankService.java        |     4 +-
 plc4j/examples/hello-webservice/README.adoc        |    24 +
 plc4j/examples/hello-webservice/pom.xml            |    91 +
 .../java/examples/hellowebservice/CliOptions.java  |    99 +
 .../examples/hellowebservice/HelloWebservice.java  |   169 +
 .../src/main/resources/logback.xml                 |    38 +
 .../hello-world-plc4x-subscription/pom.xml         |    85 +
 .../helloplc4x/subscription/CliOptions.java        |    84 +
 .../subscription/HelloPlc4xSubscription.java       |   120 +
 .../src/main/resources/logback.xml                 |    39 +
 plc4j/examples/hello-world-plc4x-write/pom.xml     |    80 +
 .../java/examples/helloplc4x/write/CliOptions.java |    99 +
 .../examples/helloplc4x/write/HelloPlc4xWrite.java |    95 +
 .../src/main/resources/logback.xml                 |    39 +
 plc4j/examples/hello-world-plc4x/pom.xml           |     4 +-
 .../plc4x/java/examples/helloplc4x/HelloPlc4x.java |    10 +-
 plc4j/examples/poll-loop/pom.xml                   |    70 +
 .../apache/plc4x/java/examples/pollloop/Main.java  |    45 +
 .../plc4x/java/examples/pollloop/PollLoop.java     |   227 +
 plc4j/examples/pom.xml                             |    44 +-
 plc4j/integrations/apache-calcite/pom.xml          |   108 +-
 .../apache-calcite/src/test/resources/example.yml  |     2 +-
 plc4j/integrations/apache-camel/pom.xml            |   109 +-
 .../java/org/apache/plc4x/camel/ManualTest.java    |     2 +-
 .../java/org/apache/plc4x/camel/MockDriver.java    |     3 +-
 plc4j/integrations/apache-edgent/pom.xml           |    98 +-
 .../plc4x/edgent/PlcConnectionAdapterTest.java     |     1 -
 plc4j/integrations/apache-kafka/README.md          |   233 +-
 .../apache-kafka/config/plc4x-sink.properties      |    77 +
 .../apache-kafka/config/plc4x-source.properties    |    78 +-
 plc4j/integrations/apache-kafka/pom.xml            |   164 +-
 .../org/apache/plc4x/kafka/Plc4xSinkConnector.java |   122 +
 .../java/org/apache/plc4x/kafka/Plc4xSinkTask.java |   269 +
 .../apache/plc4x/kafka/Plc4xSourceConnector.java   |   197 +-
 .../org/apache/plc4x/kafka/Plc4xSourceTask.java    |   143 +-
 .../org/apache/plc4x/kafka/config/Constants.java   |    92 +
 .../org/apache/plc4x/kafka/config/Defaults.java    |    33 -
 .../java/org/apache/plc4x/kafka/config/Field.java  |    65 +
 .../java/org/apache/plc4x/kafka/config/Job.java    |    62 +-
 .../apache/plc4x/kafka/config/JobReference.java    |    34 +-
 .../java/org/apache/plc4x/kafka/config/Sink.java   |   135 +
 .../org/apache/plc4x/kafka/config/SinkConfig.java  |    84 +
 .../java/org/apache/plc4x/kafka/config/Source.java |   109 +-
 .../apache/plc4x/kafka/config/SourceConfig.java    |   121 +-
 .../kafka/exceptions/ConfigurationException.java   |    31 -
 .../apache-kafka/src/remote-resources/LICENSE      |     7 +
 .../apache-kafka/src/remote-resources/NOTICE       |     4 +
 .../apache/plc4x/kafka/config/SinkConfigTest.java  |   130 +
 .../apache/plc4x/kafka/config/SinkTaskTest.java    |   145 +
 .../plc4x/kafka/config/SourceConfigTest.java       |   156 +-
 .../apache/plc4x/kafka/config/SourceTaskTest.java  |   101 +
 .../kafka/properties/sink_task_no_error.properties |    62 +
 .../properties/source_task_no_error.properties     |    62 +
 .../apache-nifi/nifi-plc4x-nar/pom.xml             |    58 +-
 .../apache-nifi/nifi-plc4x-processors/pom.xml      |    10 +-
 .../org/apache/plc4x/nifi/BasePlc4xProcessor.java  |    23 +-
 .../org/apache/plc4x/nifi/Plc4xSinkProcessor.java  |    50 +-
 .../apache/plc4x/nifi/Plc4xSourceProcessor.java    |    63 +-
 plc4j/integrations/apache-nifi/pom.xml             |     4 +-
 plc4j/integrations/logstash-plugin/pom.xml         |    74 +-
 plc4j/integrations/opcua-server/pom.xml            |   296 +
 .../apache/plc4x/java/opcuaserver/OPCUAServer.java |   383 +
 .../opcuaserver/backend/Plc4xCommunication.java    |   329 +
 .../java/opcuaserver/backend/Plc4xNamespace.java   |   221 +
 .../opcuaserver/configuration/Configuration.java   |    77 +
 .../configuration/DeviceConfiguration.java         |    50 +
 .../configuration/PasswordConfiguration.java       |    91 +
 .../plc4x/java/opcuaserver/configuration/Tag.java  |    42 +
 .../plc4x/java/opcuaserver/configuration/User.java |    97 +
 .../opcuaserver/context/CertificateGenerator.java  |   122 +
 .../opcuaserver/context/CertificateKeyPair.java    |    38 +
 .../opcua-server/src/main/resources/config.yml     |   102 +
 .../opcua-server/src/main/resources/logback.xml    |    34 +
 .../plc4x/java/opcuaserver/OpcuaPlcDriverTest.java |   245 +
 .../apache/plc4x/java/opcuaserver/UtilsTest.java   |    40 +
 .../opcua-server/src/test/resources/config.yml     |   102 +
 plc4j/integrations/pom.xml                         |     5 +-
 plc4j/karaf-features/README.md                     |    42 -
 plc4j/karaf-features/camel/pom.xml                 |    67 -
 plc4j/karaf-features/eip/pom.xml                   |    72 -
 plc4j/karaf-features/karaf-itest/pom.xml           |   207 -
 .../java/org/apache/plc4x/karaf/FeatureIT.java     |   100 -
 .../test/resources/etc/org.ops4j.pax.logging.cfg   |    71 -
 plc4j/karaf-features/pom.xml                       |    82 -
 plc4j/karaf-features/s7/pom.xml                    |    71 -
 plc4j/osgi/pom.xml                                 |    11 +-
 plc4j/pom.xml                                      |    44 +-
 plc4j/protocols/ads/pom.xml                        |     8 +-
 plc4j/protocols/benchmarks/pom.xml                 |     4 +-
 plc4j/protocols/delta-v/pom.xml                    |     2 +-
 plc4j/protocols/pom.xml                            |     2 +-
 plc4j/spi/pom.xml                                  |     9 +-
 .../apache/plc4x/java/spi/ConversationContext.java |    38 +-
 .../spi/GeneratedDriverByteToMessageCodec.java     |    28 +-
 .../apache/plc4x/java/spi/Plc4xNettyWrapper.java   |    50 +-
 .../spi/configuration/ConfigurationFactory.java    |     9 +-
 .../annotations/defaults/FloatDefaultValue.java    |    33 +
 .../exceptions/ConfigurationException.java         |    34 +
 .../java/spi/connection/AbstractPlcConnection.java |    41 +-
 .../plc4x/java/spi/connection/ChannelFactory.java  |     4 +-
 .../spi/connection/DefaultNettyPlcConnection.java  |    71 +-
 .../spi/connection/DefaultPlcFieldHandler.java     |    97 -
 .../java/spi/connection/GeneratedDriverBase.java   |    17 +
 .../connection/GeneratedProtocolMessageCodec.java  |     9 +-
 .../java/spi/connection/NettyChannelFactory.java   |    44 -
 .../plc4x/java/spi/connection/PlcFieldHandler.java |    30 +-
 .../spi/connection/ProtocolStackConfigurer.java    |     2 +-
 .../connection/SingleProtocolStackConfigurer.java  |     7 +-
 .../plc4x/java/spi/discovery/ActiveDiscovery.java  |    25 +
 .../java/spi/discovery/BroadcastDiscovery.java     |    25 +
 .../plc4x/java/spi/discovery/PassiveDiscovery.java |    25 +
 .../java/spi/discovery/SupportsDiscovery.java      |    25 +
 .../exceptions/InternalPlcRuntimeException.java    |    41 -
 .../java/spi/generation/EvaluationHelper.java      |    14 +
 .../apache/plc4x/java/spi/generation/Message.java  |     4 -
 .../plc4x/java/spi/generation/ReadBuffer.java      |    64 +-
 .../plc4x/java/spi/generation/StaticHelper.java    |     8 +
 .../plc4x/java/spi/generation/WriteBuffer.java     |    69 +-
 .../java/spi/internal/DefaultContextHandler.java   |    44 +
 .../spi/internal/DefaultExpectRequestContext.java  |    22 +-
 .../spi/internal/DefaultSendRequestContext.java    |    57 +-
 .../java/spi/internal/HandlerRegistration.java     |    33 +-
 .../spi/messages/DefaultPlcProprietaryRequest.java |    50 -
 .../messages/DefaultPlcProprietaryResponse.java    |    49 -
 .../java/spi/messages/DefaultPlcReadRequest.java   |    46 +-
 .../java/spi/messages/DefaultPlcReadResponse.java  |    57 +-
 .../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  |   192 +-
 .../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 -
 .../InternalPlcUnsubscriptionResponse.java         |    27 -
 .../java/spi/messages/InternalPlcWriteRequest.java |    38 -
 .../spi/messages/InternalPlcWriteResponse.java     |    30 -
 .../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 +-
 .../spi/model/DefaultPlcSubscriptionField.java     |    56 +
 .../spi/model/DefaultPlcSubscriptionHandle.java    |     3 +-
 .../spi/model/InternalPlcConsumerRegistration.java |    32 -
 .../spi/model/InternalPlcSubscriptionHandle.java   |    25 -
 .../plc4x/java/spi/model/SubscriptionPlcField.java |    55 -
 .../plc4x/java/spi/optimizer/BaseOptimizer.java    |    22 +-
 .../java/spi/optimizer/SingleFieldOptimizer.java   |     5 +-
 .../SingleItemToSingleRequestProtocol.java         |   672 -
 .../apache/plc4x/java/spi/request/PlcRequest.java  |    28 -
 .../spi/transaction/RequestTransactionManager.java |    23 +-
 .../apache/plc4x/java/spi/transport/Transport.java |     1 -
 .../org/apache/plc4x/java/spi/types/FieldType.java |    47 -
 .../plc4x/java/spi/utils/XmlSerializable.java      |    27 +
 .../java/spi/values/IEC61131ValueHandler.java      |   191 +
 .../org/apache/plc4x/java/spi/values/PlcBOOL.java  |   319 +
 .../org/apache/plc4x/java/spi/values/PlcBYTE.java  |   340 +
 .../plc4x/java/spi/values/PlcBigDecimal.java       |   170 +
 .../plc4x/java/spi/values/PlcBigInteger.java       |   170 +
 .../apache/plc4x/java/spi/values/PlcBitString.java |    61 +
 .../org/apache/plc4x/java/spi/values/PlcCHAR.java  |   352 +
 .../org/apache/plc4x/java/spi/values/PlcDATE.java  |   102 +
 .../plc4x/java/spi/values/PlcDATE_AND_TIME.java    |   114 +
 .../org/apache/plc4x/java/spi/values/PlcDINT.java  |   302 +
 .../org/apache/plc4x/java/spi/values/PlcDWORD.java |   343 +
 .../apache/plc4x/java/spi/values/PlcIECValue.java  |    89 +
 .../org/apache/plc4x/java/spi/values/PlcINT.java   |   304 +
 .../org/apache/plc4x/java/spi/values/PlcLINT.java  |   300 +
 .../org/apache/plc4x/java/spi/values/PlcLREAL.java |   283 +
 .../org/apache/plc4x/java/spi/values/PlcLTIME.java |    96 +
 .../org/apache/plc4x/java/spi/values/PlcLWORD.java |   356 +
 .../org/apache/plc4x/java/spi/values/PlcList.java  |   104 +
 .../org/apache/plc4x/java/spi/values/PlcNull.java  |   265 +
 .../org/apache/plc4x/java/spi/values/PlcREAL.java  |   277 +
 .../org/apache/plc4x/java/spi/values/PlcSINT.java  |   309 +
 .../apache/plc4x/java/spi/values/PlcSTRING.java    |   238 +
 .../plc4x/java/spi/values/PlcSimpleValue.java      |    78 +
 .../apache/plc4x/java/spi/values/PlcStruct.java    |   105 +
 .../org/apache/plc4x/java/spi/values/PlcTIME.java  |    94 +
 .../plc4x/java/spi/values/PlcTIME_OF_DAY.java      |    88 +
 .../org/apache/plc4x/java/spi/values/PlcUDINT.java |   333 +
 .../org/apache/plc4x/java/spi/values/PlcUINT.java  |   314 +
 .../org/apache/plc4x/java/spi/values/PlcULINT.java |   345 +
 .../org/apache/plc4x/java/spi/values/PlcUSINT.java |   329 +
 .../plc4x/java/spi/values/PlcValueAdapter.java     |   317 +
 .../apache/plc4x/java/spi/values/PlcValues.java    |    87 +
 .../org/apache/plc4x/java/spi/values/PlcWCHAR.java |   337 +
 .../org/apache/plc4x/java/spi/values/PlcWORD.java  |   327 +
 .../plc4x/java/spi/Plc4xNettyWrapperTest.java      |   126 +
 .../plc4x/java/spi/generation/ReadBufferTest.java  |    40 +
 plc4j/tools/capture-replay/pom.xml                 |     2 +-
 plc4j/tools/connection-pool/pom.xml                |     4 +-
 .../java/utils/connectionpool/PoolKeyFactory.java  |     6 +
 .../connectionpool/PooledPlcDriverManager.java     |     6 +-
 .../utils/connectionpool/PoolKeyFactoryTest.java   |     4 +
 plc4j/tools/interop/pom.xml                        |   218 -
 plc4j/tools/interop/src/assembly/assembly.xml      |    41 -
 .../java/org/apache/plc4x/interop/impl/Client.java |    60 -
 .../org/apache/plc4x/interop/impl/Handler.java     |   163 -
 .../java/org/apache/plc4x/interop/impl/Server.java |    98 -
 plc4j/tools/opm/pom.xml                            |     8 +-
 .../apache/plc4x/java/opm/ConnectedEntityTest.java |     4 +-
 .../java/opm/PlcEntityManagerComplexTest.java      |   124 +-
 .../plc4x/java/opm/PlcEntityManagerTest.java       |    12 +-
 plc4j/tools/pom.xml                                |    11 +-
 plc4j/tools/scraper/pom.xml                        |    10 +-
 .../ScraperConfigurationTriggeredImpl.java         |     1 -
 .../triggeredscraper/TriggeredScraperImpl.java     |    10 +-
 .../apache/plc4x/java/scraper/ScraperTaskTest.java |     6 +-
 .../org/apache/plc4x/java/scraper/ScraperTest.java |     6 +-
 .../triggeredscraper/TriggeredScraperImplTest.java |    16 +-
 plc4j/transports/pcap-replay/pom.xml               |    12 +-
 .../pcapreplay/PcapReplayChannelFactory.java       |     5 +
 plc4j/transports/pcap-shared/pom.xml               |     6 +-
 plc4j/transports/pom.xml                           |     3 +-
 plc4j/transports/raw-socket/pom.xml                |    10 +-
 .../rawsocket/RawSocketChannelFactory.java         |     5 +
 plc4j/transports/serial/pom.xml                    |     7 +-
 .../transport/serial/SerialChannelFactory.java     |     5 +
 plc4j/transports/socketcan/pom.xml                 |    81 +
 .../socketcan/CANTransportConfiguration.java       |    25 +
 .../socketcan/SocketCANChannelFactory.java         |    70 +
 .../transport/socketcan/SocketCANTransport.java    |    46 +
 .../socketcan/netty/SocketCANChannel.java          |   283 +
 .../socketcan/netty/SocketCANChannelConfig.java    |    31 +
 .../socketcan/netty/address/SocketCANAddress.java  |    40 +
 .../org.apache.plc4x.java.spi.transport.Transport  |    20 +
 plc4j/transports/tcp/pom.xml                       |     6 +-
 .../java/transport/tcp/TcpChannelFactory.java      |     5 +
 .../plc4x/java/transport/tcp/TcpTransport.java     |     2 +-
 plc4j/transports/test/pom.xml                      |     4 +-
 .../java/transport/test/TestChannelFactory.java    |     5 +
 plc4j/transports/udp/pom.xml                       |     6 +-
 .../java/transport/udp/UdpChannelFactory.java      |     5 +
 .../plc4x/java/transport/udp/UdpTransport.java     |     4 +-
 plc4j/utils/pcap-replay/pom.xml                    |     4 +-
 .../utils/pcapreplay/netty/PcapReplayChannel.java  |     6 +-
 .../netty/config/PcapReplayChannelConfig.java      |     2 +-
 plc4j/utils/pcap-shared/pom.xml                    |     2 +-
 plc4j/utils/pom.xml                                |     2 +-
 plc4j/utils/raw-sockets/pom.xml                    |     6 +-
 .../rawsockets/netty/RawSocketChannelTest.java     |     2 +
 plc4j/utils/test-utils/pom.xml                     |     8 +-
 .../plc4x/test/driver/DriverTestsuiteRunner.java   |   190 +-
 .../plc4x/test/driver/model/DriverTestsuite.java   |    20 +-
 .../apache/plc4x/test/driver/model/TestStep.java   |    10 +-
 .../plc4x/test/driver/model/api/TestField.java     |     8 +-
 .../test/driver/model/api/TestValueField.java      |    34 +
 .../org/apache/plc4x/test/manual/ManualTest.java   |   151 +
 .../ParserSerializerTestsuiteRunner.java           |     5 +
 pom.xml                                            |   880 +-
 protocols/ab-eth/pom.xml                           |     4 +-
 .../main/resources/protocols/abeth/ab-eth.mspec    |     2 +-
 .../protocols/abeth/ParserSerializerTestsuite.xml  |     0
 protocols/ads/pom.xml                              |    43 +
 .../plc4x/protocol/ads/ADSDiscoveryProtocol.java   |    49 +
 .../org/apache/plc4x/protocol/ads/ADSProtocol.java |    46 +
 ...e.plc4x.plugins.codegenerator.protocol.Protocol |    20 +
 .../resources/protocols/ads/ads-discovery.mspec    |   101 +
 .../ads/src/main/resources/protocols/ads/ads.mspec |   729 ++
 .../protocols/ads/AdsDiscoverySerializerTest.xml   |   377 +
 .../resources/protocols/ads/DriverTestsuite.xml    |   869 ++
 .../protocols/ads/ParserSerializerTestsuite.xml    |   414 +
 .../protocols/ads/manual-test-capture.pcapng       |   Bin 0 -> 166372 bytes
 protocols/amsads/pom.xml                           |    43 -
 .../plc4x/protocol/amsads/AMSADSProtocol.java      |    46 -
 ...e.plc4x.plugins.codegenerator.protocol.Protocol |    38 -
 .../main/resources/protocols/amsads/amsads.mspec   |   350 -
 protocols/bacnetip/pom.xml                         |     4 +-
 .../resources/protocols/bacnetip/bacnetip.mspec    |    26 +-
 protocols/canopen/pom.xml                          |    43 +
 .../plc4x/protocol/canopen/CANOpenProtocol.java    |    46 +
 ...e.plc4x.plugins.codegenerator.protocol.Protocol |    19 +
 .../src/main/resources/protocols/can/canopen.mspec |   363 +
 .../protocols/canopen/CANOpenDriverSDOIT.xml       |   550 +
 .../protocols/canopen/CANOpenPayloadTestSuite.xml  |   249 +
 .../canopen/CANOpenWiresharkTestSuite.xml          |   278 +
 protocols/df1/pom.xml                              |     4 +-
 .../protocols/df1/ParserSerializerTestsuite.xml    |     0
 protocols/eip/pom.xml                              |     4 +-
 .../eip/src/main/resources/protocols/eip/eip.mspec |    10 +-
 .../resources/protocols/eip/DriverTestsuite.xml    |   152 +
 .../protocols/eip/ParserSerializerTestsuite.xml    |     0
 protocols/firmata/pom.xml                          |     4 +-
 .../main/resources/protocols/firmata/firmata.mspec |     8 +-
 .../firmata/ParserSerializerTestsuite.xml          |     0
 protocols/knxnetip/pom.xml                         |    64 +-
 .../plc4x/protocol/knxnetip/KnxNetIpProtocol.java  |    15 +-
 .../resources/protocols/knxnetip/knxnetip.mspec    |   665 +-
 protocols/knxnetip/src/main/xslt/knx-types.xsl     |   457 +
 protocols/knxnetip/src/site/asciidoc/index.adoc    |   114 +-
 .../apache/plc4x/protocols/knxnetip/protocol.tdml  |   112 +-
 .../knxnetip/ParserSerializerTestsuite.xml         |   546 +
 protocols/modbus/pom.xml                           |     4 +-
 .../main/resources/protocols/modbus/modbus.mspec   |   168 +-
 .../resources/protocols/modbus/DriverTestsuite.xml |   382 +
 .../protocols/modbus/ParserSerializerTestsuite.xml |   181 +
 .../protocols/modbus/manual-test-capture.pcapng    |   Bin 0 -> 305032 bytes
 protocols/opcua/pom.xml                            |    43 +
 .../apache/plc4x/protocol/opcua/OpcuaProtocol.java |    46 +
 ...e.plc4x.plugins.codegenerator.protocol.Protocol |    19 +
 .../src/main/resources/protocols/opcua/opcua.mspec |    59 +
 protocols/pom.xml                                  |    49 +-
 protocols/proxy/pom.xml                            |    35 -
 protocols/proxy/src/main/java/.keepMe              |    20 -
 .../apache/plc4x/protocols/proxy/interop.thrift    |    93 -
 protocols/s7/pom.xml                               |     4 +-
 .../s7/src/main/resources/protocols/s7/s7.mspec    |   176 +-
 .../resources/protocols/s7/DriverTestsuite.xml     |   389 +
 .../protocols/s7/ParserSerializerTestsuite.xml     |   501 +
 .../protocols/s7/manual-test-capture.pcapng        |   Bin 0 -> 65868 bytes
 protocols/simulated/pom.xml                        |    43 +
 .../protocol/simulated/SimulatedProtocol.java      |    46 +
 ...e.plc4x.plugins.codegenerator.protocol.Protocol |    19 +
 .../resources/protocols/simulated/simulated.mspec  |   163 +
 sandbox/code-gen/pom.xml                           |    31 +-
 sandbox/discovery/pom.xml                          |    53 +
 .../plc4x/java/discovery/DiscoveryConnection.java  |   166 +
 .../plc4x/java/discovery/DiscoveryDriver.java      |    52 +
 .../java/discovery/DiscoveryFieldHandler.java      |    33 +
 .../services/org.apache.plc4x.java.api.PlcDriver   |    20 +
 sandbox/hello-influx-data-collection/pom.xml       |    13 +-
 .../java/examples/helloinflux/HelloInflux.java     |    25 +-
 sandbox/plc-simulator/pom.xml                      |    31 +-
 .../apache/plc4x/java/s7/utils/StaticHelper.java   |    77 +-
 .../org/apache/plc4x/simulator/PlcSimulator.java   |    57 +-
 .../simulator/exceptions/SimulatorExcepiton.java   |    35 +
 .../org/apache/plc4x/simulator/model/Context.java  |   112 +
 .../plc4x/simulator/server/ServerModule.java       |     9 +-
 .../apache/plc4x/simulator/server/s7/S7Server.java |    69 -
 .../plc4x/simulator/server/s7/S7ServerModule.java  |    72 +-
 .../server/s7/protocol/S7Step7Protocol.java        |    76 -
 .../server/s7/protocol/S7Step7ServerAdapter.java   |   331 +
 .../server/s7/protocol/S7Step7ServerProtocol.java  |   231 -
 .../simulator/simulation/SimulationModule.java     |     5 +-
 .../watertank/WaterTankSimulationModule.java       |    65 +-
 sandbox/plc4c/CMakeLists.txt                       |     4 +-
 sandbox/plc4c/api/include/plc4c/connection.h       |    10 +-
 sandbox/plc4c/api/include/plc4c/data.h             |    35 +-
 sandbox/plc4c/api/include/plc4c/read.h             |     1 +
 sandbox/plc4c/api/include/plc4c/types.h            |    15 +-
 sandbox/plc4c/api/include/plc4c/utils/list.h       |     2 +
 sandbox/plc4c/drivers/modbus/CMakeLists.txt        |    18 +-
 .../drivers/modbus/include/plc4c/driver_modbus.h   |     6 +-
 .../modbus/include/plc4c/driver_modbus_packets.h   |    45 +
 .../modbus/include/plc4c/driver_modbus_sm.h        |    47 +
 .../modbus/include/plc4c/driver_s7_encode_decode.h |    36 +
 sandbox/plc4c/drivers/modbus/src/driver_modbus.c   |    16 +-
 .../modbus/src/driver_modbus_encode_decode.c       |   110 +
 .../drivers/modbus/src/driver_modbus_packets.c     |   142 +
 .../drivers/modbus/src/driver_modbus_sm_connect.c  |    51 +
 .../modbus/src/driver_modbus_sm_disconnect.c       |    74 +
 .../drivers/modbus/src/driver_modbus_sm_read.c     |   119 +
 .../drivers/modbus/src/driver_modbus_sm_write.c    |   121 +
 sandbox/plc4c/drivers/s7/CMakeLists.txt            |    34 +-
 sandbox/plc4c/drivers/s7/include/plc4c/driver_s7.h |    61 +
 .../s7/include/plc4c/driver_s7_encode_decode.h     |    45 +
 .../drivers/s7/include/plc4c/driver_s7_packets.h   |    53 +
 .../plc4c/drivers/s7/include/plc4c/driver_s7_sm.h  |    47 +
 sandbox/plc4c/drivers/s7/src/driver_s7.c           |    95 +-
 .../plc4c/drivers/s7/src/driver_s7_encode_decode.c |   346 +
 sandbox/plc4c/drivers/s7/src/driver_s7_packets.c   |   524 +
 .../plc4c/drivers/s7/src/driver_s7_sm_connect.c    |   348 +
 .../plc4c/drivers/s7/src/driver_s7_sm_disconnect.c |    81 +
 sandbox/plc4c/drivers/s7/src/driver_s7_sm_read.c   |   207 +
 sandbox/plc4c/drivers/s7/src/driver_s7_sm_write.c  |   122 +
 .../plc4c/drivers/s7/test/s7_address_parser_test.c |   110 +
 sandbox/plc4c/drivers/s7/test/s7_test.c            |   239 +
 .../simulated/include/plc4c/driver_simulated.h     |     6 +-
 .../plc4c/drivers/simulated/src/driver_simulated.c |    15 +-
 .../examples/hello-subsciptions/CMakeLists.txt     |     5 +-
 sandbox/plc4c/examples/hello-world/CMakeLists.txt  |    20 +-
 .../plc4c/examples/hello-world/src/hello_world.c   |    59 +-
 .../generated-sources/modbus/include/data_item.h   |    43 +
 .../modbus/include/modbus_constants.h              |    56 +
 .../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  |   243 +
 .../modbus_pdu_read_file_record_request_item.h     |    56 +
 .../modbus_pdu_read_file_record_response_item.h    |    54 +
 .../modbus_pdu_write_file_record_request_item.h    |    56 +
 .../modbus_pdu_write_file_record_response_item.h   |    56 +
 .../modbus/include/modbus_serial_adu.h             |    57 +
 .../modbus/include/modbus_tcp_adu.h                |    60 +
 .../plc4c/generated-sources/modbus/src/data_item.c |   337 +
 .../modbus/src/modbus_constants.c                  |    78 +
 .../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      |  2365 ++++
 .../src/modbus_pdu_read_file_record_request_item.c |   123 +
 .../modbus_pdu_read_file_record_response_item.c    |   122 +
 .../modbus_pdu_write_file_record_request_item.c    |   156 +
 .../modbus_pdu_write_file_record_response_item.c   |   156 +
 .../modbus/src/modbus_serial_adu.c                 |   144 +
 .../generated-sources/modbus/src/modbus_tcp_adu.c  |   145 +
 .../generated-sources/s7/include/cotp_packet.h     |   108 +
 .../generated-sources/s7/include/cotp_parameter.h  |    91 +
 .../s7/include/cotp_protocol_class.h               |    52 +
 .../generated-sources/s7/include/cotp_tpdu_size.h  |    56 +
 .../plc4c/generated-sources/s7/include/data_item.h |    43 +
 .../s7/include/data_transport_error_code.h         |    53 +
 .../s7/include/data_transport_size.h               |    56 +
 .../generated-sources/s7/include/device_group.h    |    50 +
 .../generated-sources/s7/include/memory_area.h     |    58 +
 .../generated-sources/s7/include/s7_address.h      |    81 +
 .../generated-sources/s7/include/s7_message.h      |    91 +
 .../generated-sources/s7/include/s7_parameter.h    |    99 +
 .../s7/include/s7_parameter_user_data_item.h       |    81 +
 .../generated-sources/s7/include/s7_payload.h      |    91 +
 .../s7/include/s7_payload_user_data_item.h         |    86 +
 .../s7/include/s7_var_payload_data_item.h          |    57 +
 .../s7/include/s7_var_payload_status_item.h        |    54 +
 .../s7/include/s7_var_request_parameter_item.h     |    75 +
 .../s7/include/szl_data_tree_item.h                |    57 +
 .../plc4c/generated-sources/s7/include/szl_id.h    |    57 +
 .../s7/include/szl_module_type_class.h             |    51 +
 .../generated-sources/s7/include/szl_sublist.h     |    66 +
 .../generated-sources/s7/include/tpkt_packet.h     |    58 +
 .../generated-sources/s7/include/transport_size.h  |    95 +
 .../plc4c/generated-sources/s7/src/cotp_packet.c   |   553 +
 .../generated-sources/s7/src/cotp_parameter.c      |   284 +
 .../generated-sources/s7/src/cotp_protocol_class.c |    75 +
 .../generated-sources/s7/src/cotp_tpdu_size.c      |   116 +
 sandbox/plc4c/generated-sources/s7/src/data_item.c |   363 +
 .../s7/src/data_transport_error_code.c             |    81 +
 .../generated-sources/s7/src/data_transport_size.c |   116 +
 .../plc4c/generated-sources/s7/src/device_group.c  |    63 +
 .../plc4c/generated-sources/s7/src/memory_area.c   |   134 +
 .../plc4c/generated-sources/s7/src/s7_address.c    |   251 +
 .../plc4c/generated-sources/s7/src/s7_message.c    |   375 +
 .../plc4c/generated-sources/s7/src/s7_parameter.c  |   481 +
 .../s7/src/s7_parameter_user_data_item.c           |   325 +
 .../plc4c/generated-sources/s7/src/s7_payload.c    |   311 +
 .../s7/src/s7_payload_user_data_item.c             |   282 +
 .../s7/src/s7_var_payload_data_item.c              |   170 +
 .../s7/src/s7_var_payload_status_item.c            |    72 +
 .../s7/src/s7_var_request_parameter_item.c         |   146 +
 .../generated-sources/s7/src/szl_data_tree_item.c  |   157 +
 sandbox/plc4c/generated-sources/s7/src/szl_id.c    |   106 +
 .../s7/src/szl_module_type_class.c                 |    69 +
 .../plc4c/generated-sources/s7/src/szl_sublist.c   |   159 +
 .../plc4c/generated-sources/s7/src/tpkt_packet.c   |   132 +
 .../generated-sources/s7/src/transport_size.c      |   631 +
 sandbox/plc4c/pom.xml                              |    10 +-
 sandbox/plc4c/spi/CMakeLists.txt                   |    27 +-
 .../spi/include/plc4c/spi/evaluation_helper.h      |    34 +
 sandbox/plc4c/spi/include/plc4c/spi/read_buffer.h  |    98 +
 .../plc4c/spi/include/plc4c/spi/system_private.h   |     2 +
 .../plc4c/spi/include/plc4c/spi/types_private.h    |    72 +-
 sandbox/plc4c/spi/include/plc4c/spi/write_buffer.h |    87 +
 sandbox/plc4c/spi/src/connection.c                 |     5 +
 sandbox/plc4c/spi/src/data.c                       |    95 +-
 sandbox/plc4c/spi/src/evaluation_helper.c          |    40 +
 sandbox/plc4c/spi/src/read.c                       |    24 +-
 sandbox/plc4c/spi/src/read_buffer.c                |   609 +
 sandbox/plc4c/spi/src/system.c                     |    48 +-
 sandbox/plc4c/spi/src/utils/list.c                 |    17 +-
 sandbox/plc4c/spi/src/write.c                      |     9 +-
 sandbox/plc4c/spi/src/write_buffer.c               |   429 +
 sandbox/plc4c/spi/test/read_buffer_test.c          |   756 ++
 sandbox/plc4c/spi/test/spi_test.c                  |    37 +
 sandbox/plc4c/spi/test/system_test.c               |    14 +-
 sandbox/plc4c/spi/test/write_buffer_test.c         |   901 ++
 .../plc4c/transports/dummy/src/transport_dummy.c   |     5 +
 sandbox/plc4c/transports/serial/CMakeLists.txt     |     4 +-
 .../plc4c/transports/serial/src/transport_serial.c |    24 +
 sandbox/plc4c/transports/tcp/CMakeLists.txt        |     8 +-
 .../transports/tcp/include/plc4c/transport_tcp.h   |     8 +
 sandbox/plc4c/transports/tcp/src/transport_tcp.c   |   131 +
 sandbox/plc4cpp/pom.xml                            |    87 +-
 sandbox/plc4net/api/pom.xml                        |     2 +-
 sandbox/plc4net/plc4net.driver/pom.xml             |     2 +-
 sandbox/plc4net/pom.xml                            |     2 +-
 sandbox/plc4py/pom.xml                             |   105 +-
 sandbox/pom.xml                                    |    33 +-
 sandbox/test-java-amsads-driver/README.adoc        |    35 -
 sandbox/test-java-amsads-driver/pom.xml            |   160 -
 .../apache/plc4x/java/amsads/AMSADSPlcDriver.java  |    90 -
 .../amsads/configuration/AdsConfiguration.java     |   105 -
 .../connection/AdsAbstractPlcConnection.java       |   231 -
 .../amsads/connection/AdsConnectionFactory.java    |    58 -
 .../amsads/connection/AdsSerialPlcConnection.java  |    60 -
 .../amsads/connection/AdsTcpPlcConnection.java     |   366 -
 .../apache/plc4x/java/amsads/field/AdsField.java   |    27 -
 .../plc4x/java/amsads/field/AdsFieldHandler.java   |  1047 --
 .../plc4x/java/amsads/field/DirectAdsField.java    |   142 -
 .../plc4x/java/amsads/field/SymbolicAdsField.java  |   106 -
 .../java/amsads/model/AdsSubscriptionHandle.java   |    85 -
 .../java/amsads/protocol/Ads2PayloadProtocol.java  |    93 -
 .../java/amsads/protocol/AdsProtocolLogic.java     |    41 -
 .../amsads/protocol/Payload2SerialProtocol.java    |   114 -
 .../java/amsads/protocol/Payload2TcpProtocol.java  |    94 -
 .../java/amsads/protocol/Plc4x2AdsProtocol.java    |   335 -
 .../amsads/protocol/exception/AdsException.java    |    56 -
 .../exception/AdsProtocolOverflowException.java    |    32 -
 .../java/amsads/protocol/util/DigestUtil.java      |    46 -
 .../amsads/protocol/util/LittleEndianDecoder.java  |   489 -
 .../amsads/protocol/util/LittleEndianEncoder.java  |   285 -
 .../protocol/util/SingleMessageRateLimiter.java    |   124 -
 .../java/amsads/protocol/util/package-info.java    |    22 -
 .../plc4x/java/amsads/types/AdsDataType.java       |   577 -
 .../services/org.apache.plc4x.java.api.PlcDriver   |    38 -
 .../plc4x/java/amsads/AMSADSPlcDriverTest.java     |    42 -
 .../amsads/AmsAdsSerializerParserTest.java         |    29 -
 .../protocol/amsads/BenchmarkGeneratedDf1.java     |    76 -
 .../plc4x/protocol/amsads/BenchmarkManualDf1.java  |   239 -
 .../apache/plc4x/protocol/amsads/EndToEndTest.java |    57 -
 .../org/apache/plc4x/protocol/amsads/IOTest.java   |    91 -
 .../src/test/resources/testsuite/Df1Testsuite.xml  |   101 -
 sandbox/test-java-bacnetip-driver/pom.xml          |    20 +-
 .../apache/plc4x/java/bacnetip/BacNetIpDriver.java |   118 +
 .../plc4x/java/bacnetip/PassiveBacNetIpDriver.java |   113 -
 .../configuration/BacNetIpConfiguration.java       |   114 +
 .../PassiveBacNetIpConfiguration.java              |   111 -
 .../plc4x/java/bacnetip/ede/model/Datapoint.java   |    32 +-
 .../java/bacnetip/field/BacNetIpFieldHandler.java  |     4 +-
 .../bacnetip/protocol/BacNetIpProtocolLogic.java   |   254 +
 .../protocol/PassiveBacNetIpProtocolLogic.java     |   240 -
 .../services/org.apache.plc4x.java.api.PlcDriver   |     2 +-
 .../java/bacnetip/PassiveBacNetIpDriverManual.java |     4 +-
 sandbox/test-java-df1-driver/pom.xml               |    74 +-
 .../org/apache/plc4x/java/df1/DF1PlcDriver.java    |     9 +-
 .../plc4x/java/df1/field/Df1FieldHandler.java      |    11 +-
 .../plc4x/java/df1/protocol/Plc4XDf1Protocol.java  |    12 +-
 .../org/apache/plc4x/java/df1/util/DF1Utils.java   |     5 +-
 .../protocol/df1/Df1ParserSerializerTest.java      |     2 +-
 sandbox/test-streampipes-plc4x-adapters/pom.xml    |    56 +-
 .../java/streampipes/adapters/Plc4xAdapters.java   |     4 +-
 .../adapters/config/ConnectWorkerConfig.java       |     4 +-
 .../adapters/source/bacnetip/BacNetIpAdapter.java  |    32 +-
 .../adapters/source/knxnetip/KnxNetIpAdapter.java  |    36 +-
 sandbox/test-streampipes-plc4x-processors/pom.xml  |   125 +-
 .../processors/Plc4xProcessorsInit.java            |    14 +-
 .../java/streampipes/processors/config/Config.java |     4 +-
 .../ede/BacNetIpEdeDataEnrichmentController.java   |    32 +-
 .../enrich/knxnetip/ets5/Ets5DataEnrichment.java   |    16 +-
 .../ets5/Ets5DataEnrichmentController.java         |    30 +-
 .../ets5/Ets5DataEnrichmentParameters.java         |     4 +-
 sandbox/test-streampipes-plc4x-shared/pom.xml      |     2 +-
 .../shared/source/knxnetip/Constants.java          |     1 +
 src/main/script/preSiteGeneration.groovy           |    29 +-
 src/main/script/prerequisiteCheck.groovy           |    27 +-
 src/remote-resources/NOTICE                        |    26 -
 src/site/asciidoc/developers/building.adoc         |    23 +-
 .../developers/code-gen/protocol/mspec.adoc        |     6 +-
 src/site/asciidoc/developers/contributing.adoc     |     6 +-
 .../asciidoc/developers/infrastructure/ci.adoc     |     2 +-
 .../asciidoc/developers/infrastructure/vm.adoc     |     6 +-
 .../asciidoc/developers/infrastructure/vpn.adoc    |     4 +-
 .../developers/infrastructure/website.adoc         |     2 +-
 src/site/asciidoc/developers/preparing/index.adoc  |    14 +-
 src/site/asciidoc/developers/preparing/linux.adoc  |     4 +
 .../asciidoc/developers/release/build-tools.adoc   |   194 +-
 src/site/asciidoc/developers/release/release.adoc  |   121 +-
 .../asciidoc/developers/release/validation.adoc    |     6 +-
 src/site/asciidoc/developers/team.adoc             |    20 +-
 src/site/asciidoc/index.adoc                       |     6 +-
 src/site/asciidoc/plc4go/index.adoc                |   147 +
 src/site/asciidoc/protocols/canopen/index.adoc     |    39 +
 src/site/asciidoc/protocols/index.adoc             |     1 +
 src/site/asciidoc/users/adopters.adoc              |    62 +
 .../asciidoc/users/blogs-videos-and-slides.adoc    |     5 +
 src/site/asciidoc/users/commercial-support.adoc    |    51 +
 src/site/asciidoc/users/download.adoc              |    61 +-
 .../general-concepts.adoc                          |     0
 .../asciidoc/users/getting-started/plc4go.adoc     |   283 +
 src/site/asciidoc/users/getting-started/plc4j.adoc |   298 +
 .../{plc4j => getting-started}/virtual-modbus.adoc |     0
 src/site/asciidoc/users/gettingstarted.adoc        |     6 +-
 src/site/asciidoc/users/index.adoc                 |    13 +
 .../asciidoc/users/integrations/apache-iotdb.adoc  |    42 +
 .../asciidoc/users/integrations/apache-kafka.adoc  |   218 +-
 .../asciidoc/users/integrations/apache-nifi.adoc   |   135 +
 .../asciidoc/users/integrations/eclipse-milo.adoc  |   123 +
 src/site/asciidoc/users/plc4j/gettingstarted.adoc  |   294 -
 src/site/asciidoc/users/preparing-issues.adoc      |    19 +
 src/site/asciidoc/users/protocols/canopen.adoc     |   214 +
 src/site/asciidoc/users/protocols/knxnetip.adoc    |    86 +
 src/site/asciidoc/users/protocols/modbus.adoc      |   162 +-
 src/site/asciidoc/users/protocols/opc-ua.adoc      |   132 +-
 src/site/asciidoc/users/protocols/s7.adoc          |    21 +-
 src/site/asciidoc/users/protocols/simulated.adoc   |   120 +
 src/site/asciidoc/users/tools/connection-pool.adoc |    55 +
 src/site/asciidoc/users/tools/scraper.adoc         |   207 +-
 src/site/asciidoc/users/transports/index.adoc      |     1 +
 src/site/asciidoc/users/transports/socketcan.adoc  |    66 +
 src/site/asciidoc/users/users.adoc                 |    43 -
 src/site/resources-filtered/plc4x-doap.rdf         |    22 +-
 .../images/integrations/nifi/add-processor.png     |   Bin 0 -> 25508 bytes
 .../nifi/configure-processor-properties.png        |   Bin 0 -> 36219 bytes
 .../integrations/nifi/configure-scheduling.png     |   Bin 0 -> 37276 bytes
 .../images/integrations/nifi/configured-flow.png   |   Bin 0 -> 130333 bytes
 .../integrations/nifi/configured-log-processor.png |   Bin 0 -> 54626 bytes
 .../nifi/configured-plc4x-source-processor.png     |   Bin 0 -> 41203 bytes
 .../integrations/nifi/configuring-connection.png   |   Bin 0 -> 39490 bytes
 .../images/integrations/nifi/empty-nifi-flow.png   |   Bin 0 -> 74244 bytes
 .../integrations/nifi/list-of-plc4x-processors.png |   Bin 0 -> 103175 bytes
 .../images/integrations/nifi/running-flow.png      |   Bin 0 -> 59506 bytes
 src/site/resources/images/team/cdutz.png           |   Bin 27791 -> 66024 bytes
 src/site/resources/images/team/ldywicki.jpg        |   Bin 0 -> 12197 bytes
 src/site/resources/images/team/mstrljic.jpg        |   Bin 0 -> 28604 bytes
 src/site/resources/images/toddy-loves-apache.png   |   Bin 0 -> 265483 bytes
 .../images/users/companies/logo-codecentric.png    |   Bin 0 -> 26220 bytes
 .../images/users/companies/logo-connectorio.png    |   Bin 0 -> 17271 bytes
 .../images/users/companies/logo-industryfusion.png |   Bin 0 -> 15414 bytes
 .../images/users/companies/logo-pietrorimoldi.jpg  |   Bin 0 -> 584330 bytes
 .../users/companies/logo-pragmatic-industries.svg  |   498 +
 .../users/companies/logo-pragmatic-minds.svg       |   714 ++
 .../logo_record_evolution_single_dark_bgfont.png   |   Bin 0 -> 10498 bytes
 .../users/companies/logo_unistuttgart_isw.png      |   Bin 0 -> 31592 bytes
 src/site/site.xml                                  |    24 +-
 tools/boost/pom.xml                                |     2 +-
 tools/logstash/pom.xml                             |     2 +-
 tools/pom.xml                                      |     8 +-
 tools/thrift/pom.xml                               |   407 -
 tools/thrift/src/assembly/compiler.xml             |    43 -
 tools/thrift/src/assembly/cpp.xml                  |    56 -
 tools/thrift/src/assembly/python.xml               |    43 -
 1488 files changed, 196441 insertions(+), 26355 deletions(-)

diff --cc plc4j/drivers/ads/src/main/java/org/apache/plc4x/java/ads/configuration/AdsConfiguration.java
index 0000000,6a7e5c8..2c92427
mode 000000,100644..100644
--- a/plc4j/drivers/ads/src/main/java/org/apache/plc4x/java/ads/configuration/AdsConfiguration.java
+++ b/plc4j/drivers/ads/src/main/java/org/apache/plc4x/java/ads/configuration/AdsConfiguration.java
@@@ -1,0 -1,147 +1,152 @@@
+ /*
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements.  See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership.  The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License.  You may obtain a copy of the License at
+ 
+   http://www.apache.org/licenses/LICENSE-2.0
+ 
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied.  See the License for the
+ specific language governing permissions and limitations
+ under the License.
+ */
+ package org.apache.plc4x.java.ads.configuration;
+ 
+ import org.apache.commons.lang3.ArrayUtils;
+ import org.apache.plc4x.java.ads.ADSPlcDriver;
+ import org.apache.plc4x.java.ads.readwrite.AmsNetId;
+ import org.apache.plc4x.java.spi.configuration.Configuration;
+ import org.apache.plc4x.java.spi.configuration.ConfigurationParameterConverter;
+ import org.apache.plc4x.java.spi.configuration.annotations.ConfigurationParameter;
+ import org.apache.plc4x.java.spi.configuration.annotations.ParameterConverter;
+ import org.apache.plc4x.java.spi.configuration.annotations.Required;
+ import org.apache.plc4x.java.spi.configuration.annotations.defaults.IntDefaultValue;
+ import org.apache.plc4x.java.transport.serial.SerialTransportConfiguration;
+ import org.apache.plc4x.java.transport.tcp.TcpTransportConfiguration;
+ 
+ import java.util.regex.Pattern;
+ import java.util.stream.Stream;
+ 
+ public class AdsConfiguration implements Configuration, TcpTransportConfiguration, SerialTransportConfiguration {
+ 
+     public static final Pattern AMS_NET_ID_PATTERN =
+         Pattern.compile("\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}");
+ 
+     @Required
+     @ConfigurationParameter
+     @ParameterConverter(AmsNetIdConverter.class)
+     protected AmsNetId targetAmsNetId;
+ 
+     @Required
+     @ConfigurationParameter
+     protected int targetAmsPort;
+ 
+     @Required
+     @ConfigurationParameter
+     @ParameterConverter(AmsNetIdConverter.class)
+     protected AmsNetId sourceAmsNetId;
+ 
+     @Required
+     @ConfigurationParameter
+     protected int sourceAmsPort;
+ 
+     @ConfigurationParameter("timeout-symbolic-address-resolution")
+     @IntDefaultValue(2000)
+     protected int timeoutSymbolicAddressResolution;
+ 
+     @ConfigurationParameter("timeout-request")
+     @IntDefaultValue(4000)
+     protected int timeoutRequest;
+ 
+     public AmsNetId getTargetAmsNetId() {
+         return targetAmsNetId;
+     }
+ 
+     public void setTargetAmsNetId(AmsNetId targetAmsNetId) {
+         this.targetAmsNetId = targetAmsNetId;
+     }
+ 
+     public int getTargetAmsPort() {
+         return targetAmsPort;
+     }
+ 
+     public void setTargetAmsPort(int targetAmsPort) {
+         this.targetAmsPort = targetAmsPort;
+     }
+ 
+     public AmsNetId getSourceAmsNetId() {
+         return sourceAmsNetId;
+     }
+ 
+     public void setSourceAmsNetId(AmsNetId sourceAmsNetId) {
+         this.sourceAmsNetId = sourceAmsNetId;
+     }
+ 
+     public int getSourceAmsPort() {
+         return sourceAmsPort;
+     }
+ 
+     public void setSourceAmsPort(int sourceAmsPort) {
+         this.sourceAmsPort = sourceAmsPort;
+     }
+ 
+     public int getTimeoutSymbolicAddressResolution() {
+         return timeoutSymbolicAddressResolution;
+     }
+ 
+     public void setTimeoutSymbolicAddressResolution(int timeoutSymbolicAddressResolution) {
+         this.timeoutSymbolicAddressResolution = timeoutSymbolicAddressResolution;
+     }
+ 
+     public int getTimeoutRequest() {
+         return timeoutRequest;
+     }
+ 
+     public void setTimeoutRequest(int timeoutRequest) {
+         this.timeoutRequest = timeoutRequest;
+     }
+ 
+     @Override
+     public int getDefaultPort() {
+         return ADSPlcDriver.TCP_PORT;
+     }
+ 
+     @Override
+     public int getBaudRate() {
+         return 57600;
+     }
+ 
++    @Override
++    public int getBaudRate() {
++        return 57600;
++    }
++
+     public static class AmsNetIdConverter implements ConfigurationParameterConverter<AmsNetId> {
+ 
+         @Override
+         public Class<AmsNetId> getType() {
+             return AmsNetId.class;
+         }
+ 
+         @Override
+         public AmsNetId convert(String value) {
+             return amsNetIdOf(value);
+         }
+     }
+ 
+     public static AmsNetId amsNetIdOf(String address) {
+         if (!AMS_NET_ID_PATTERN.matcher(address).matches()) {
+             throw new IllegalArgumentException(address + " must match " + AMS_NET_ID_PATTERN);
+         }
+         String[] split = address.split("\\.");
+         short[] shorts = ArrayUtils.toPrimitive(Stream.of(split).map(Integer::parseInt).map(Integer::shortValue).toArray(Short[]::new));
+         return new AmsNetId(shorts[0], shorts[1], shorts[2], shorts[3], shorts[4], shorts[5]);
+     }
+ 
+ }