LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

conditional disable no longer works

It has been a while, but yes, I believe so.


DaveT

-------------------------------------------------------------
David Thomson Original Code Consulting
www.originalcode.com
National Instruments Alliance Program Member
Certified LabVIEW Architect
Certified Embedded Systems Developer
-------------------------------------------------------------
There are 10 kinds of people: those who understand binary, and those who don't.
0 Kudos
Message 21 of 41
(1,668 Views)
All right, I'm seeing how R & D wants to proceed on this.
Jeff | LabVIEW Software Engineer
0 Kudos
Message 22 of 41
(1,664 Views)

I haven't played with this yet but I guess the problem Dave is having, is that the conditional symbols are in fact a project setting. Once the VI library is moved over into an executable and run from there as plugin those conditional symbols do not exist anymore since there is no project anymore.

 

Why this worked in 8.2 and 8.5 I can only guess but likely the source distribution did not include everything then but only the code based on any currently set conditional symbols. So creating a source distribution should really have an option that allows selecting to include everything or only the code based on any current project settings (and the first option should be default).

Rolf Kalbermatter
My Blog
Message 23 of 41
(1,649 Views)

Rolf,

 

The thing that is weird to me is the default on the conditional disable is to NOT use the DAQmx VIs. And it works fine when you run the VI by itself.

 

Everyone:

 

After a lengthy discussion with the LabVIEW team I have filed CAR 223572 to R & D on the issue. As usual, I cannot give a timeline on any solution.

 

Hopefully they will get to the bottom of this.

Jeff | LabVIEW Software Engineer
0 Kudos
Message 24 of 41
(1,608 Views)

I am late to this discusion but will share what I know.

 

THere was a bug in the Source Distribution in early version of LV 8 that prevented any code in a diagram disable from being included in the distribution. This bug prevented us from using the surce distribution to package up code for another developer since there was stuff missing.

 

I beilve that bug has been fixed.

 

So i wonder if you hade been taking advantage of the bug and now that it is fixed you have trouble.

 

LVOOP dynamic dispatching is wht I have turned to recently for challenges like this since they handle the dynamic stuff well.

 

Ben

Retired Senior Automation Systems Architect with Data Science Automation LabVIEW Champion Knight of NI and Prepper LinkedIn Profile YouTube Channel
0 Kudos
Message 25 of 41
(1,579 Views)

Ben,

   It does indeed sound like we were taking advantage of the bug in earlier versions of LabVIEW.  Too bad you managed to get that one fixed!!!  In any case, I think we have defined another use case, and from the sounds of it, this thread has managed to clear up the conflicting requirements/desires/behaviors.  Perhaps a future version of LV will allow us to build distributions the way we had wanted to as well as the way one currently can.


DaveT

-------------------------------------------------------------
David Thomson Original Code Consulting
www.originalcode.com
National Instruments Alliance Program Member
Certified LabVIEW Architect
Certified Embedded Systems Developer
-------------------------------------------------------------
There are 10 kinds of people: those who understand binary, and those who don't.
Message 26 of 41
(1,566 Views)
As an update, CAR 223572 was closed as not a bug. Error 1000 was what they were most concerned about, but it turns out it was actually a name collision because the VI written was called test.vi and the target was also called test.vi in the example code.
Jeff | LabVIEW Software Engineer
0 Kudos
Message 27 of 41
(1,489 Views)
So what is the proper technique to do what the original poster wanted? I have an 8.5 project and I am doing what Thomson was doing. In other words, their is a LabVIEW executable which dynamically loads "drivers" in the form of plugins. (Or more specifically, we were building the drivers as DLL's but accessing them through VI Server techniques. At least we were until 8.5 as this feature went away.) One of these drivers uses conditional disables to select run time behavior. (The driver relies on one of three libraries. Which library we want to use in the end depends on a number of factors. Each library ultimately does the same thing, but in slightly different ways. Each library is also from a different vendor.) I would simple rely on the bug in 8.5, except that the company will definitely upgrade at some point. We will either go to 2009 or 2010 when it comes out. So what is the proper technique to develop a "plug-in" with conditional disables? Is there one?
0 Kudos
Message 28 of 41
(1,373 Views)

Hi cgibson,

 

Unfortunately using the conditional disables to make plug-ins is not going to be an option. To make sure that your code works, you will have to include all necessary libraries in the build from the start.

 

Take care!

Tanya Visser
National Instruments
LabVIEW Group Manager
0 Kudos
Message 29 of 41
(1,351 Views)

I have attached a simple example in LV 8.6 code to demonstrate this problem.

 

There are two project files and two deliverables.

 

The application calls a function in the source distribution to get a number and a string. For the custom symbol CUSTOMER == A, the number is the increment of the input number and the string is Customer A. For CUSTOMER == B, the number is the square root and the string is Customer B.

 

When you run the application from the EXE, it is impossible to run the Customer B case. If you run the application from source, you can set the custom symbol and make it work.

 

The main application works by first browsing with the path control to the source distribution LLB, and then pressing the Go button.

0 Kudos
Message 30 of 41
(1,301 Views)