A description of how the generic networking functionality was created and how it works
The core functionality (hse-gennet.lvlib) and the GenNet reuse modules (GenNet-Server.lvlib and GenNet-Client.lvlib) are part of the hse-libraries. That way, we can easily use them in all of our projects. The Generic Networking repository is a showcase of how the generic, reusable gennet libs can be used in actual projects or with actual DQMH modules. It contains examples of modules using the generic networking functionality - but the gennet VIs and modules are actually maintained in the hse-libraries.
The Generic Networking project aims to integrate network communication into DQMH in a way that is generically reusable and has no module- or project-specific dependencies. This means that the networking functions are oblivious to the actual datatype and content of the messages that are passed on, and network communication can happen totally transparent to both the user and the DQMH module itself. The Generic Networking project also implements network communication in a way that allows for enabling and disabling that feature during runtime.
All of this is achieved by:
GenNet-Clientmodule) and for receiving requests via ethernet (by the
GenNet-Servermodule) which can be used by any DQMH module
hse-gennet.lvlib, a collection of generically reusable VIs
GenNet-Server modules as well as the
hse-gennet.lvlib are part of the HSE Libraries.
This example shows a Generic-Networking-enabled module. The identical module (i.e. the same source code) is running in two separate applications:
GenNet-Clientmodule to do that.
GenNet-Servermodule to do that.
The following part discusses the flow of data for a Request and Wait for Reply that is called on the local side but actually executed on the remote side.