LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Community Nugget 4/08/2007 Action Engines

Solved!
Go to solution

Everyone should pick the approach which works best for them.

I complitely agree. I see OOP and compoent programming and functional programming and actor based programming etc as tools to achieve goal more easily. I think they can and they should coexist. Traditional OOP literature seems to talk of OOP in very restrictive way and put too much emphais on the inheritance and "clean" OOP implementations. I think this way of thinking is too restrictive. Objects and components and all that are just tools that can be mixed and matched in various ways to achieve the modular architecture, reusability, maintainability, flexible project organizations and all the other buzz words.

Tomi
--
Tomi Maila
Message 31 of 161
(8,878 Views)
Tomi,

That's exactly the way I feel.  I actually started programming this way before I even heard about "component programming".  It seems to a large extent to be a logical series of steps to reduce debugging time, increase portability and so on.

I'm sure there are benefits from a "clean" style when dealing with projects where many different people are working on the code, but for the rest of us (>95%?) it's not really worth the time and effort in the end.

I find these approaches a very attractive way to scale algorithms over more than one CPU, or even over more than one computer.  I think with the advent of multi-core CPUs and the inherent perallelism of Labview, this may well be an important direction to look.

Shane.
Using LV 6.1 and 8.2.1 on W2k (SP4) and WXP (SP2)
Message 32 of 161
(8,874 Views)


I'm sure there are benefits from a "clean" style when dealing with projects where many different people are working on the code, but for the rest of us (>95%?) it's not really worth the time and effort in the end.

Perhaps I should still emphasize that I think it's advantageous to understand the "clean" paradigms such as object-oriented programming in order to be able to take full advantageous of the paradigms. Even that I think that these different paradigms are really not paradigms at all but just tools that can mixed and matched, I don't think one is really able to use these tools effectively without really understanding the ideology behind each programming model.
--
Tomi Maila
Message 33 of 161
(8,855 Views)

Shane " I actually started programming this way before I even heard about "component programming".  "

Well same here.

"Component Programming"

I never heard of until now!

To add to Shane mentioning that AEs work across platforms.

I have used AEs in more than one application were I needed to share a data structure between multiple nodes. This was implemented using VI Server Call by reference and opening a reference to the AE on the machine seriving same.

In one case I needed to allow an operator to throttle up a jet aircraft engine simulator that was implemented on a PXI chassis running RT. The controlling Windows side app invoked a "set" action via VI server and the RT was able to react like the two machines were the same.

In another app, the customer wanted local control of assembly lines from the loacl machine while still offering the same functionality from a master machine running in the control room. Again AE served by one machine and invoked from another.

Thank you Shane for sharing that term!

Tomi,

You words are not falling on deaf ears. Give me time.

Ben

Retired Senior Automation Systems Architect with Data Science Automation LabVIEW Champion Knight of NI and Prepper LinkedIn Profile YouTube Channel
Message 34 of 161
(8,850 Views)

Ben wrote: Tomi,  You words are not falling on deaf ears. Give me time.

Take your time 🙂
--
Tomi Maila
0 Kudos
Message 35 of 161
(8,837 Views)
Dear All,
 
Althrough I was familiar with functional Globals, the concept of Action Engines is something that I learnt in this nugget
 
Thank you, Ben and everyone
Message 36 of 161
(8,793 Views)
Thanks Ben for the interesting Nugget and thanks to the others for their valuable comments.
I've been using AEs for some time now, but this thread gives some interesting new ideas (like the wrapper VIs) and approaches (OO, although I'm not very familiar with it yet).

Thanks and keep up the good work!
Daniel

Message 37 of 161
(8,787 Views)

Since nobody offered a self-inititalizing AE and since Kevin found an excuse Smiley Wink

I posted an example in this thread.

Combine this idea with VI Server and you can implement cross platform queues!

Benn

 

Retired Senior Automation Systems Architect with Data Science Automation LabVIEW Champion Knight of NI and Prepper LinkedIn Profile YouTube Channel
Message 38 of 161
(8,767 Views)

In this thread I posted an example of re-configurable Look-up table as an AE.

Ben

Retired Senior Automation Systems Architect with Data Science Automation LabVIEW Champion Knight of NI and Prepper LinkedIn Profile YouTube Channel
0 Kudos
Message 39 of 161
(8,708 Views)
An example using the single-element queue can be found in the shipping examples:

LabVIEW 8.2\examples\lvoop\ReferenceObject\ReferenceObject.lvproj

This example uses the single element queue to exemplify an aspect of LV classes, but you can use this example as a learning point for other uses of single-element queues.


Message 40 of 161
(8,714 Views)