As a matter of fact I started reading the nugget on Action Engines 😄 . However, I'm not sure yet how to use these and why they are better than queues. At the moment I'm using queues instead of the value property node.
where a queue and an AE can fill the need, a queue is generally perffered since it can be faster. If you need to something to the data while it in "THE THING" (AE or queue) then the AE gives you the option to code it up. The Running Average is an example of a case where something has to be done to the data. If you are just passing data then the queue will fit.
In the most simple VI' the extra work of creating and killing a queue can be avoided using the AE.
So open-end or box-end choose the wrench that fits your need.
AE are not better than Ques- They are different and do different things.
Ques, Locals and AEs pass values more effeciently than property nodes because of the way LabVIEW is designed. When a VI runs Two Main threads spawn. One executes the code represented by the block diagram and one is responsible for the Front Panel display. When a property node is reached a switch must take place to the UI thread because control and indicator vaules are in the UI namespace. Wire values are not in the UI namespace so the thread switch (and its CPU overhead) is not required.
AEs give you a level of encapsulation. Using LVOOP allows for the same but with the benefits of inheritance.
They are not 'better' than q's, but a different tool. They also allow to share data between multiple loops. But they lack the native syncronisation of queues as used in the producer-consumer design pattern.
On the other hand, AEs can be filled with code, which makes them much more general purpose.
How do I put an AE in labview? Its not avialble on the functions pallette, at least not for labview 8.5
I'd like to experiment with this.