Requires: Base Development System
Channel wire endpoints are nodes where a channel wire terminates. By connecting a channel writer endpoint to a reader endpoint using a channel wire, you build a channel. The channel wire endpoints operate on the channel in the following way: the writer endpoints write data to the channel, and reader endpoints read data from the channel. You can use the channel wire endpoints to write or read data between parallel sections of code. LabVIEW provides several channel templates. Each template expresses a different communications protocol to use between the writers and readers. Choose which channel template to use based on your communications needs.
Create a channel endpoint by right-clicking a terminal or a wire and selecting Create»Channel Writer or Create»Channel Reader. When you create an endpoint from a terminal, you instantiate the channel template with that data type as its transmission type.
Template | Description |
---|---|
Stream | Use the Stream channel to communicate homogeneous data from a single writer to a single reader. The data elements are buffered and transferred with no data loss in a first-in-first-out (FIFO) order. |
Tag | Use the Tag channel to share a single value among multiple readers and/or writers. Sharing the value is similar to sharing a global or network shared variable. Each time a writer endpoint writes a value to the channel, the value overwrites the existing value in the channel to ensure that the reader endpoints always read the latest value. |
Messenger | Use the Messenger channel to transfer command-like messages among multiple writers and/or multiple readers. Messages can optionally be synchronous when the writer waits until the message is acknowledged by the reader. The Messenger channel is also capable of consolidating repetitive messages and disposing orphaned messages when the channel aborts. |
Accumulator Tag | Use the Accumulator Tag channel to share a single value among multiple writers and readers. Sharing the value is similar to sharing a global or network shared variable. Each time a writer endpoint writes a value to the channel, the channel adds the value to the existing value. Reader endpoints can optionally clear the value when they retrieve the current sum. |
Event Messenger | Use the Event Messenger channel to transfer data from multiple writers to one or more Event structures. Each write operation to the channel triggers an event. The Event Messenger channel allows the channel syntax to combine with the event syntax that controls your user interface events and generated events. |
High Speed Stream | Use the High Speed Stream channel to transfer data from a single writer to a single reader in a fast and highly efficient manner. The High Speed Stream channels can handle complex data transfer scenarios while managing the whole execution process of parallel loops. The High Speed Stream channel lacks the debug capabilities of the other Streams. |
Lossy Stream | Use the Lossy Stream channel to communicate homogeneous data from a single writer to a single reader. If the channel is already full when the writer attempts to write a new data, the writer does not wait for space to be available. Instead, the channel optionally either drops the oldest data element in the channel to make room for this new data or discards this new data. You can use the Lossy Stream readers to identify data gaps. |
One Element Stream | Use the One Element Stream channel exactly the way you use a Stream channel with size equal to one. Allowing only one element in the buffer makes One Element Stream channels more optimized. They execute faster and save resources compared with Stream channels. |