Implementation of Numerous Network Streams

Updated Sep 6, 2023

Reported In

Software

  • LabVIEW

Issue Details

  • I am running into issues using network streams for a system utilizing numerous channels, datatypes and clients and am looking for best practices.
  • My "Write Multiple Elements to Stream Function" VI objects when I try to send an array of strings. It appears I can only send an array of long integers. What mistake am I making?
  • I am trying to establish multiple Network Streams in a variety of different configurations. When I write multiple Network Stream transmitters within one application, I run into issues. What is the proper naming convention for the Network Streams?

Solution

Below are some best practices when programming numerous Network Streams.
  • Maintain matching data types throughout the stream.
    • The input to the "data type" terminal of the "Create Network Stream Writer Endpoint" VI should match the data type of the terminal in the "Write Multiple Elements to Stream Function" VI.
  • Ensure Network Stream Endpoint configurations and naming conventions are properly setup.
    • If multiple instances of an application are generated, each network stream must have a unique context name.
  • Condense the number of network streams required.
    • This can be done by condensing all synchronous data (data collected at the same rate) into either arrays or clusters and then sending sending the data over a single stream rather than multiple.
    • This will also reduce the connection time for each network stream, as only a handful of connections are being handled at once, rather than a numerous group
    • Additionally this will allow for one to implement network streams for smaller sized asynchronous data, as the number of networks streams could still be manageable.

    Additional Information

    Network streams work off of a standard TCP connection. If one were attempting to make many of these connections at once, the time could adversely affect performance.