Jump to content


Photo
- - - - -

Using GOOP under LV8.0


  • Please log in to reply
4 replies to this topic

#1 Vladimir

Vladimir

    Active

  • Members
  • Pip
  • 19 posts

Posted 31 January 2006 - 07:24 AM

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

#2 yonatan.tidhar

yonatan.tidhar

    More Active

  • Members
  • PipPip
  • 25 posts

Posted 31 January 2006 - 10:04 AM

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



#3 Yair

Yair

    Extwemely Active

  • Members
  • PipPipPipPipPipPip
  • 2,652 posts
  • Version:LabVIEW 2009
  • Since:2003

Posted 31 January 2006 - 10:31 AM

You should probably try searching\posting at the OpenG forums.

Also, error 7 usually means that a file wasn't found. Since the OpenG installer is almost entirely written in LV, you can dive into its VIs to find out exactly which file wasn't found.

#4 PJM_labview

PJM_labview

    The 500 club

  • JKI
  • 758 posts
  • Version:LabVIEW 2009
  • Since:1998

Posted 31 January 2006 - 05:03 PM

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

#5 nudalakasim

nudalakasim

    Active

  • Members
  • Pip
  • 15 posts

Posted 01 February 2006 - 03:17 PM

Vladimir,

Have you tried dqGOOP. This concept is really appealing. Hope you have seen this topic.

nudalAKasim