Jump to content
Ton Plomp

Conditional Disable in build settings

Recommended Posts

It would be nice if I could set the conditional disable settings in the build settings.

This would allow for multiple build settings that could incorporate into a single project file.

I have the feeling this can be done with separate lvproj files but that feels like a workaround.

Any thoughts on this?

Ton

Share this post


Link to post
Share on other sites

I think it would be cool if the disable structure had an input like the Case structure i.e. boolean, enum, string, etc

Dan

Share this post


Link to post
Share on other sites

QUOTE (ASTDan @ Apr 15 2008, 01:55 PM)

I think it would be cool if the disable structure had an input like the Case structure i.e. boolean, enum, string, etc

What kind of usage does this have over the current disable structure?

Ton

Share this post


Link to post
Share on other sites

The advantage would be I could understand how it works. I haven't been able to understand the conditional disable strucure.

Granted it doesn't take much to confuse me.

Dan

Share this post


Link to post
Share on other sites

QUOTE (tcplomp @ Apr 15 2008, 04:39 AM)

It would be nice if I could set the conditional disable settings in the build settings.

This would allow for multiple build settings that could incorporate into a single project file.

I have the feeling this can be done with separate lvproj files but that feels like a workaround.

Any thoughts on this?

Ton

I also have wanted this, and made a feature request for it a while ago. Seems like a pretty reasonable request. Conditional disable flags affect the entire project, and the build settings build the project into an executable.

Share this post


Link to post
Share on other sites

QUOTE (ASTDan @ Apr 15 2008, 04:42 PM)

The advantage would be I could understand how it works. I haven't been able to understand the conditional disable strucure.

You set symbols for the entire project (by right clicking on the project in the project tree, if memory serves) and then you choose one of the symbols to switch all the structures throughout the project. I assume the help for the structure covers this in more detail.

Share this post


Link to post
Share on other sites

Wow I never realized it was tied to the project. No wonder I missed that. Thanks!

Learn something new every day

Share this post


Link to post
Share on other sites

QUOTE (Yen @ Apr 15 2008, 11:49 AM)

You set symbols for the entire project (by right clicking on the project in the project tree, if memory serves) and then you choose one of the symbols to switch all the structures throughout the project. I assume the help for the structure covers this in more detail.

Conditional Disable are project and target based. So you could have symbols just for specific targets or global symbols that effect all targets.

Share this post


Link to post
Share on other sites

QUOTE (JDave @ Apr 15 2008, 08:56 AM)

I also have wanted this, and made a feature request for it a while ago. Seems like a pretty reasonable request. Conditional disable flags affect the entire project, and the build settings build the project into an executable.

I agree :thumbup:

So far I've just been having to remember to set the right conditional variables before I build (and make sure everyone els knows about them...)

Setting this up as two builds inside the project would be cool...

Share this post


Link to post
Share on other sites

QUOTE (orko @ Apr 15 2008, 11:57 AM)

Setting this up as two builds inside the project would be cool...

Ditto,

One case in point, I have two target test stands for automated testing as part of product delivery. One has additional functionality (mine) and the other has non-disimilar equipment performing the same task (theirs). In the mid-level equipment code, I have added Conditional Disables to handle the differences between the two test stands.

Countless times, I went to deliver new code, only to realize that I forgot to change the Conditional Symbol.

Having the Build Spec's handle this would certainly make multi-targetting much more streamlined.

Unfortunately, I still follow the practice of Remove Symbol, Add Symbol.

Share this post


Link to post
Share on other sites

QUOTE (Doon @ Apr 15 2008, 12:14 PM)

Ditto,

One case in point, I have two target test stands for automated testing as part of product delivery. One has additional functionality (mine) and the other has non-disimilar equipment performing the same task (theirs). In the mid-level equipment code, I have added Conditional Disables to handle the differences between the two test stands.

Countless times, I went to deliver new code, only to realize that I forgot to change the Conditional Symbol.

Having the Build Spec's handle this would certainly make multi-targetting much more streamlined.

Unfortunately, I still follow the practice of Remove Symbol, Add Symbol.

I totally agree. We are actually reading the lvproj file (it's XML) and modifying the Conditional Disable symbols programmatically and then reloading the project so that we can build multiple flavors of our product. It's not terribly hard, but there should most certainly be VI server access to the symbols.

Share this post


Link to post
Share on other sites

QUOTE (Doon @ Apr 15 2008, 08:14 PM)

You can just use a Symbol Setup with a string mine and theirs. In your code you use the same symbols with these values.

Or just use mine and default.

QUOTE (jdunham @ Apr 15 2008, 10:02 PM)

... there should most certainly be VI server access to the symbols.

Well I don't think that's necessary, changing the Conditional Disable Symbol forces a recompile of the code. That means all of the code inside the project shouldn't be running, which can be a challenging task.

The possibility to select another lvproj for a build is probably intended to cover this gap. But an additional page in the build settings is preferable.

This item shows a problem in my developing workflow. I considered the lvrproj file as code independent. But now it seems like it is tied to the code as well, and should be checked in and out.

Ton

Share this post


Link to post
Share on other sites

QUOTE (tcplomp @ Apr 15 2008, 10:47 PM)

You can just use a Symbol Setup with a string mine and theirs. In your code you use the same symbols with these values.

Or just use mine and default.

Maybe I'm doing this wrong, but when I switch between conditionals, I right-click the project in the "Project Explorer" window and select "Properties..."

In the "Conditional Disable Symbols" section, the only options I see are "Add" and "Remove Selected Items". So far, my only solution is to first remove my symbol, then re-Add it with a new value.

Is there a cleaner way to change Symbols in a project? That would surely make my day.

Cheers,

-H

Share this post


Link to post
Share on other sites

QUOTE (Doon @ Apr 16 2008, 07:48 AM)

So far, my only solution is to first remove my symbol, then re-Add it with a new value.

I seem to remember this with LV8.0. Starting with LV8.2 (I think) you can double-click on the value you want to change in the list and edit it straight away.

Share this post


Link to post
Share on other sites

QUOTE (orko @ Apr 16 2008, 08:18 AM)

I seem to remember this with LV8.0. Starting with LV8.2 (I think) you can double-click on the value you want to change in the list and edit it straight away.

Even More reason for me to push (read: beg) for an upgrade. Thanks.

Share this post


Link to post
Share on other sites

QUOTE (Doon @ Apr 16 2008, 05:58 PM)

Even More reason for me to push (read: beg) for an upgrade. Thanks.

After I today nearly released a build with some parts configured by conditional symbols as simulated, I am too begging for this to be included soon.

Reducing the overhead of things to remember when the customer is standing in your neck asking if the app is ready yet (answer: no not yet but soon...) would be great!

Share this post


Link to post
Share on other sites

I've been wanting this for ages. Well, at least as long as the structure has been around.

I'd also like the option to allow the recompilation due to symbols to be done on the fly through a temporary file. If this is done at the application builder level, I don't see why the original VI needs to be modified due to a symbol definition. I dislike how some of my reuse libraries are always getting changed due to symbol redefinitions across projects...leave the original VIs alone! Since we're never going to get a separation of source from binaries in LV, this would be a nice way of handling compilation differences at the project level without modifying the source (kind of)...

Share this post


Link to post
Share on other sites

....

Since we're never going to get a separation of source from binaries in LV,

You could vote for this idea.

Ton

Share this post


Link to post
Share on other sites

On top of that I was wondering if any has run into the problem of conditional disable structures influencing dataflow. Essentially in other languages when you conditionally disable something (like in C with #if) the code is entirely taken out of the build. In LabVIEW I have seen that the code inside is not built in, but the structure influences dataflow (i.e. structure doesn't execute until all inputs to the structure is ready). If it is not a large enough problem then maybe I won't make a suggestion. No need for Idea Overload.

Share this post


Link to post
Share on other sites
In LabVIEW I have seen that the code inside is not built in, but the structure influences dataflow (i.e. structure doesn't execute until all inputs to the structure is ready).

That's a really good observation, although I'm not sure how NI would implmement different behaviour...

Share this post


Link to post
Share on other sites
It would be nice if I could set the conditional disable settings in the build settings.

I so totally came up against this issue today - I have an app that can be built with different security modules in it (DSC, TestStand, Active Directory, etc), some of which require different run time licenses (eg: if a project is going to use the TestStand security module, I don't want the DSC code in the build, otherwise it'll get upset when it runs and doesn't find a DSC license). Having different build specs with conditional disable strucutres would fix this issue.

Share this post


Link to post
Share on other sites

I so totally came up against this issue today - I have an app that can be built with different security modules in it (DSC, TestStand, Active Directory, etc), some of which require different run time licenses (eg: if a project is going to use the TestStand security module, I don't want the DSC code in the build, otherwise it'll get upset when it runs and doesn't find a DSC license). Having different build specs with conditional disable strucutres would fix this issue.

I've come across a similar issue, and I was wondering if you found a solution to the problem of programmatically setting the conditional disable symbols.

Share this post


Link to post
Share on other sites

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.