Jump to content

Starting with OOP in 8.2.1 without toolkits


Recommended Posts

Hello..

I'm a bit lost with several issues about LVOOP, which in general would seem

like a fantastic way of doing things. First of all I should note that I come from

Java/C background, so my thinking is heavily influenced by that.

First of all, using classes by-reference. I came across this NI GOOP tutorial

which passes the reference to the class along in order to run the internal

system, and to be able to operate on the GUI separately. Deducing from other

posts here it uses some toolkit that creates those New etc methods.

Since I'm a beginner with LVOOP classes, but not a beginner programmer, I would

rather create my classes manually to understand the workings properly.

Now, my question is: how to set a class reference as a VI output? And how to

get the reference to a certain instance of a class, in the first place?

Secondly, there was some notion that building classes into a single executable

is a problem if there are subclasses using VIs with same file names. Is this really

a show-stopper in 8.2.1, or is there a reliable workaround for it? Executables are

definitely needed, although the users can be trusted to the degree that having

separately dangling files is not a problem as long as they can be included with the executable.

Are there some other snags in using GOOP classes, and what would they be?

Link to comment

Hello and welcome!

First before we dig into the details of your questions we need to get some terminology straight (don't feel bad, it's confusing for us to keep straight too)

GOOP and LVOOP although similar in ideaology are different in implementation.

GOOP is an older, but still quite alive, way of implementing classes by reference

LVOOP is 'brand new' and still evolving (read growing pains) way of implementing classes by value (or by wire if that helps make it more clear)

So the first path that you need to define is, by path or by value. Now coming from a Textual and reference based OO background you may lean towards GOOP (by-reference)

But I would recommend that you force feed LVOOP (by value/by wire) to yourself, but this will also depend on how good you are w/ LV too, but this route needs no toolkits to get started as they are allready native in LV 8.2.1 (go to 8.5 if possible due to advancements in LVOOP interaction)

So in closing, you do not need a toolkit for either method of OO within LabVIEW. You should understand how to create both methods from scratch (although the GOOP toolkit is handy). If you are new to LV the learning curve for both methods is going to be steep and treacherous, but keep posting to the forum and we'll help you find the holds on the wall.

Good luck

Link to comment

This document clarifies the relationship between GOOP and LVOOP.

LVOOP FAQ

http://zone.ni.com/devzone/cda/tut/p/id/3573

If you look at the examples that ship with LabVIEW, you'll also get a lot of insight into how classes are constructed in LabVIEW.

<labview>\examples\lvoop\

Also, launch the LV online help (Help >> Search the LabVIEW Help... ). On the Contents tab, go to Fundamentals >> LabVIEW Object-Oriented Programming. You'll find a wealth of documentation walking you through various aspects.

Link to comment

QUOTE(Norm Kirchner @ Oct 26 2007, 06:02 PM)

GOOP is an older, but still quite alive, way of implementing classes by reference

LVOOP is 'brand new' and still evolving (read growing pains) way of implementing classes by value (or by wire if that helps make it more clear)

Correction. GOOP 3 is built as an extension of lvclass so it is not correct to say that it is old. It is in fact very new. Although previous implementations certainly can be regarded as old.

Otherwise, I agree that it makes sence looking at what is built-in as a starting point.

Jan Klasson

Endevo

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.