I've recently started investigated the use of Channel Wires, particularly in data acquisition systems for shuttling operating commands and data between loops. I sometimes have a situation where I want to tell a hardware loop to perform multiple consecutive operations, for example, "Reserve resources" then "Start acquisition". Using a regular Queue, this is straightforward as Enqueue Element observes the regular dataflow paradigm.
Replacing the queue with a Messenger Channel, the Channel Wires from two Channel Writers can be joined. However, I can not see a way to ensure that the messages are delivered in the intended order as there are no suitable dataflow terminals on the Channel Writers. Hopefully the sketch below makes it clear what I mean.
Order of messages, queue vs Messenger Channel
I've tried encapsulating the Channel Writer in a subVI with error wires to enforce dataflow, joining the Channel Wires after both subVIs have run, but this produced different results when running normally (incorrect) and with highlight execution on (correct), suggesting this was not working as I anticipated.
Am I missing something fundamental and obvious, or am I trying to do something for which Channel Wires were not intended?
PsyenceFact