Jul
23
LabVIEW Object-Oriented Programming Introductory Walktrough
by , Jul 23, 2007 at 6:01 pm
LabVIEW Object-Oriented Programming, or LVOOP for short, has been around for about a year now. Have you had time to take a look at it? If not, it’s about the time. I made you a short video on the very basics of LVOOP development process. It doesn’t go into details of inheritance and all that but it gives you and idea on how to get started. So get yourself a cup of coffee, sit down comfortably, and press the play button.
(length 09:05)
13 Comments
Make A CommentComments RSS Feed TrackBack URL
Leave a comment
You must be logged in to post a comment.

(11 votes, average: 4.82 out of 5)
July 23rd, 2007 at 9:15 pm
Hi Tomi
Nice video, I’ll try to do the same for GDS and the UML Modeller.
And also nice to here the voice behind ExpressionFlow
Cheers,
Mikael
July 23rd, 2007 at 10:11 pm
Mikael, should you be interested in video blogging here at ExpressionFlow, you are most welcome.
July 24th, 2007 at 12:31 pm
Hi Tomi,
This is a great intro. Now how about a video telling me how this is better than just using a typedef cluster and unbundle/bundle directly.
Thanks,
Alvin
July 24th, 2007 at 1:06 pm
Alvin, such a video may be coming later on. Meanwhile you should take a look at articles in the Introduction to OOP in LabVIEW category.
July 27th, 2007 at 7:05 am
It’s better compared to typedefs that you’ve got encapsulation and that you can style the wires. Also the handling in the project manager is IMO better using classes.
But it’s worse if you want to build applications. This doesn’t work correctly sometimes because for classes unused typedefs etc. shouldn’t be removed. Unfortunately for large projects this is not feasible. Here NI definitely forgot to adjust the application builder to consider classes correctly…
July 27th, 2007 at 9:36 am
Carsten, have you informed NI about all the building related issues. I’ve myself reported to NI dozens of LVOOP related issues and many of these issues were already fixed in LV 8.2.1 and some will be fixed in future versions of LabVIEW. So it’s benefitical to let NI to know about LVOOP related issues as early as possible.
LVOOP is a new feature and not everything is working properly or optimally designed. The more we give feedback to NI, the better product we can expect to have in our hands in the coming years.
August 6th, 2007 at 4:18 am
Hi Tomi:
This is a good introduction. As they say: A picture is worth 1000 words!
One question is when does one choose to go with the ‘Class Architecture’ rather than a ‘Functional Global’ (i.e: the one with uninitialized shift registers).
Your advice is appreciated
Thanks
Anthony
August 6th, 2007 at 6:05 am
Anthony, I’m afraid I didn’t quite understand what you are after with your question. Classes can contain methods with uninitialized shift registers, so these two methods don’t seem complementary to me. Would you clarify the use case you were thinking of.
August 6th, 2007 at 11:43 pm
Hi Tomi:
OK let me try again
The video intro of doing LV classes that you posted shows how to encapsulate the vehicle ‘color’ data and then expose an interface to write-to and read-from the LVClass.
For someone who uses Function Globals, this same functionality could be implemented using the Functional Global. So the question arises regarding the advantages of doing this via the LVClass rather than the functional global. I feel that there is a lot to benefit from learning the pros and cons when comparing these two specific two methods.
I hope this clarifies the question
Thanks
August 7th, 2007 at 6:00 am
Anthony, actually functional globals and LabVIEW classes are not alternative implementations in the use case you explained. LabVIEW objects, i.e. class instances, flow on the wire in a similar way as any other LabVIEW does. However unlike any other LabVIEW datatype, object data is hidden from the user and cannot be accessed by any other means than using method VIs. Hence the creation of method VIS. Functional globals on the other hand are globals the the method call accesses the same data everywhere.
October 7th, 2007 at 5:40 pm
Excellent video to begin to understand LVOOP
November 18th, 2007 at 5:24 pm
Tomi have you ever had a reflexion about memory management of a VOOP class system.
I am using objects in very large application (more than 3000) and I have to manage frames, events, pictures, acquisition processes and very large data (up to 500M). I am actualy using dqGOOP for this. I use my own inheritance system.
Can VOOP be more efficient for memory management.
Thanks for all your reflexions, I have read many of them.
Pierre Delvart
April 7th, 2008 at 9:53 pm
Nice video Tomi!
That was my first step in learning LVOOP.
One question
Why did you give the red color as default in the “get color.vi”? It`s your favourite color?
Thank you, Eugen