Jump to content

Using GOOP under LV8.0


Recommended Posts

Hi,

I returning to LabView after while, from ver. 6.1. Nowadays I using 8.0 and try to resurrect my old knowledge include using GOOP. I have found GOOP as very nice idea, and I inted use OpenGOOP, but :o

I have installed OpenG Commander and downloaded all modules include "ogfwk_opengoop ver. 0.10".

But this package is only downloaded not installed.

When I have try this manually i get:

Error 7 occurred at Copy in OGPM Add Package File to Cache__ogc.vi->OGPM Add Package to Cache__ogc.vi->OGPM Install Package (by Path)__ogc.vi->OGC Main Window__ogc.vi

How can I use openGoop under LV8.0 ?

BTW:

NI version (installed from Commander) of GOOP print:

GOOP Class Wizard.vi

- LabVIEW 8.0 changed a constant that was wired to a Case structure to a hidden control to maintain compatibility with LabVIEW 7.1 and earlier.

- The File Dialog function no longer supports the datalog type input.

- The File Dialog function now outputs an error cluster. An Unbundle function was inserted to maintain compatibility.

- LabVIEW 8.0 changed a constant that was wired to a Case structure to a hidden control to maintain compatibility with LabVIEW 7.1 and earlier.

Make Class Reentrant.vi

- LabVIEW 8.0 changed a constant that was wired to a Case structure to a hidden control to maintain compatibility with LabVIEW 7.1 and earlier.

Thanks a lot,

Vladimir

Link to comment

about:

- LabVIEW 8.0 changed a constant that was wired to a Case structure to a hidden control to maintain compatibility with LabVIEW 7.1 and earlier.
see Stephen Marker post at info-LabVIEW: :book:
Subject: Case Struct and Code Disable Structs [Was: Re: Is it time to

From: stephen.mercer@ni.com

Date: Fri, 13 Jan 2006 10:16:35 -0600

Henrik Molsen wrote:

> - Case structures with a constant boolean connected to the

> selector: The constant are replaced with a hidden FP control

> (due to LV8 code optimizer). Requires some clean-up of the

> code including replacing with Diagram Disable Structure

> (Great feature - we have been waiting for that!)

Short story: It is not necessary to replace constant-wired Case Structures

with with Diagram Disable Structures. In most cases, you can just change

the controls back to constants without affecting the behavior of your VI.

Long story:

I looked at the upgrade notes and actually couldn't find an explanation of

the following, so I'm including it here.

In LV7.1 and earlier, the Case Structure would optimize out code for any

frame of a Case Structure that the compiler determined would never

execute. So if you have three frames of a case structure (1, 2 & 3) and

you wire a constant '2' to the case selection terminal, then cases 1 and 3

are guaranteed at compile time to never execute. However, subVIs in these

unused cases were still linked by the linker and so the subVIs would be

loaded even though the call would never be made. Many VIs created before

the introduction of Static VI References use this trick to load

dynamically called VIs into memory.

In LV8.0, we made a general linker change -- if the compiler optimizes out

any frame, then the linker won't load subVIs in those frames. This would

break older VIs that used the dynamic-subVI-loading trick. So, to maintain

backward compatibility, we changed the constants to controls.

When you load your VIs, if you get one of the load warnings that says

"constant wired to case structure converted to control", you should visit

that place in the code and change the control back to a constant. Then, if

any of your frames existed strictly to force subVIs to load into memory,

you should pull those subVI calls out and instead add Static VI References

to those subVIs. Caveat: VIs referenced by Static VI References are not

considered "callees" of the VI, and so the VI Server methods to get a list

of all subVIs will not include items referenced by Static VI References.

Few people use this, but it is one gotcha that I can think of.

You might also consider changing your Case Structure to be either the

Conditional Disable Structure or the Diagram Disable Structure, depending

upon your use case and the reason you have these unused cases. The

fundamental difference between using a Case Structure and using a Diagram

Disable Structure is whether or not LV parses the block diagram. In the

unused frames of a Case Structure, you must have valid LV code or your VI

will be broken. But in the unused frames of the Diagram Disable Structure,

you're free to have missing subVIs, broken wires and other problems. The

Conditional Disable Structure is similar, but it changes which frame is

the active frame each time the VI is loaded into memory, so you can have

different chunks of enabled code based on environmental conditions,

including operating system platform.

In all cases, if a frame of any of the three structures is not going to

ever be executed, then subVIs in those cases are not loaded into memory.

Note: There is one known bug (found after release) with using the

Conditional Disable Structure and switching platforms -- if the VI was

last saved on platform A and then loaded on platform B, the subVIs for

platform A will load (or try to load) and then immediately unload. This is

being fixed for future versions.

Pojundery,

Stephen R. Mercer

-= LabVIEW R&D =-

Link to comment
Hi,

I returning to LabView after while, from ver. 6.1. Nowadays I using 8.0 and try to resurrect my old knowledge include using GOOP. I have found GOOP as very nice idea, and I inted use OpenGOOP, but :o

I have installed OpenG Commander and downloaded all modules include "ogfwk_opengoop ver. 0.10".

But this package is only downloaded not installed.

When I have try this manually i get:

How can I use openGoop under LV8.0 ?

BTW:

NI version (installed from Commander) of GOOP print:

Thanks a lot,

Vladimir

Please post your OpenG question on the OpenG Forum.

Thank you

PJM

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
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.