LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Labview Class recompile problem

Hello,

 

I have stared using OOP in LV some time ago, and there is something that I don't undrestand.

When I modify 1 class VI all class members are recompiled and also modified despite of fact that I haven't touched them.

This becomes a serious problem when using source controll, I am pushing hundreds of VIs to the server and without comments I can not tell which VI was modified. Is therea way around that? When programming without classes I never had this problem. I am using GOOP from Symbio

0 Kudos
Message 1 of 9
(3,414 Views)

Is that VI in question a subvi to the other ones?

 

When working with source control, it is recommended to separate the compiled code from the VI files. Have you configured your LV environment to do so?

 

Norbert

Norbert
----------------------------------------------------------------------------------------------------
CEO: What exactly is stopping us from doing this?
Expert: Geometry
Marketing Manager: Just ignore it.
0 Kudos
Message 2 of 9
(3,403 Views)

Thanks,

 

Vi is not Subvi,

Never heard about separate compiled code, will play with that and see

0 Kudos
Message 3 of 9
(3,396 Views)

Hm, then the separation option will likely not change things.

Are there any specific reasons why you are using GOOP instead of LVOOP?

 

Norbert

Norbert
----------------------------------------------------------------------------------------------------
CEO: What exactly is stopping us from doing this?
Expert: Geometry
Marketing Manager: Just ignore it.
0 Kudos
Message 4 of 9
(3,380 Views)

It allows to have classes as DVRs without necessity to write everything from scratch.  In my opinion greatly extends IDE functionality. I think the same problem will happen when using normal by value classes.

 

http://sine.ni.com/nips/cds/view/p/lang/pl/nid/209038

0 Kudos
Message 5 of 9
(3,361 Views)

Played a while with the separate compiled code and the same thing is happening. For bigger project that I work on I hust save class when adding a vi and when I close project, then I dont save all changes hoping that I didn't miss anything so I can commit only what was modified. But If I forget it is a diseaster because some files might be missing inside class. 

0 Kudos
Message 6 of 9
(3,323 Views)

@pawhan11 wrote:

This becomes a serious problem when using source controll, I am pushing hundreds of VIs to the server and without comments I can not tell which VI was modified.


As stated, is this even a problem?  Let's say it didn't happen.  You'd know which VI was modified but that's relatively useless.  You don't know how.  This does soud like a bit of a pain. But, you should be using comments regardless.  Get out of the bad habit of neglecting your duty to comment.

 

Do you have a small project that shows this so we can play around with it to see?

0 Kudos
Message 7 of 9
(3,310 Views)

@pawhan11 wrote:

Hello,

[...]

When I modify 1 class VI all class members are recompiled and also modified despite of fact that I haven't touched them.[...] I am using GOOP from Symbio


I am not aware that this issue occurs with standard LVOOP. For sure, the specific VI and the class VI are modified as well as all callers (unless you use the separate option). Other VIs from the class should not be marked as modified.

My assumption is your comment about DVR of classes. I can imagine that when changing a class VI also re-evaluates the class itself (lvclass). Hence all VIs using a DVR on the class are updated as well.

 

Norbert

Norbert
----------------------------------------------------------------------------------------------------
CEO: What exactly is stopping us from doing this?
Expert: Geometry
Marketing Manager: Just ignore it.
0 Kudos
Message 8 of 9
(3,271 Views)

You could test G#, it's also DVR based and even has a GOOP->G# conversion tool. The original developers are the same. 🙂

I don't remember this being a big problem in G#, though if you touch a base class the child classes will ofc be touched.

/Y

G# - Award winning reference based OOP for LV, for free! - Qestit VIPM GitHub

Qestit Systems
Certified-LabVIEW-Developer
0 Kudos
Message 9 of 9
(3,259 Views)