From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

How to release top-level VI (only) source code?

Solved!
Go to solution

Hello,

 

I am developing an addon to an application I already have. The application is large (over 1,500 VI's) and the VIs are set up to compile with mostly default settings (there's a top-level VI, a few with Front Panel visible, most of them are not visible).

 

The customer wants the source code to the work I'm going to do, and it's going to use many existing sub-VI's. The addon itself will be a sub-VI (I have a Main.vi that basically opens 'screens', and this is a new screen). The existing sub-VI's basically do the data collection and processing, and the new code will do some additional processing and have a nice GUI to the existing code. The customer wants the source so they can make modifications as needed.

 

Is there any easy way to provide just the source for the top-level VI? Basically, I want to give them M.vi, where M.vi calls n.vi, o.vi... etc, but o-z.vi need to remain closed-source. Also, M.vi is called by Main.vi, which opens screens A-M.vi

 

One option is do copy the entire application, then open every sub-VI and save it without Source Code. But with so many files, this seems like a bad idea. I also then have to maintain two applications.

 

Any good ideas out there? It seems so easy in other languages (use object files) that it seems like there should be a solution here I'm not seeing.... Thanks!

Message Edited by rnelsonee on 06-02-2010 08:28 AM
Message Edited by rnelsonee on 06-02-2010 08:31 AM
0 Kudos
Message 1 of 9
(3,360 Views)

Apply a password to everything and just remove it from the top level. By providing the password protected source the customer can still upgrade to the next version of LV since they have the code. No password, no access.

 

Ben

Retired Senior Automation Systems Architect with Data Science Automation LabVIEW Champion Knight of NI and Prepper LinkedIn Profile YouTube Channel
Message 2 of 9
(3,340 Views)

Dont know if this is the best solution for you, but you can create a "virtual folder" in the LabVIEW project with all the sub-VIs that you want to keep closed-source. Then create Source Distribution build specifications in the project and remove the block diagrams assign passwords to all VIs in the virtual folder. See attached pics.

Download All
Message 3 of 9
(3,339 Views)

you can create a source code package. There you can set the password for all VIs in this source code package..

 

Regards

 

HS

0 Kudos
Message 4 of 9
(3,320 Views)

Update: I forgot to mention I'm using LabVIEW 7.1 so I don't have these distribution options. And I can password-protect individual VI's, but not en masse.

 

I'd like to upgrade to 8.x, but I have a major release coming up so I'm hesitant to upgrade. But it looks like there are better solutions with the build tools in 8.0 and above.

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

rnelsonee wrote:

Update: I forgot to mention I'm using LabVIEW 7.1 so I don't have these distribution options....


Save with options ....

 

Everything you need is there.

 

Ben

Retired Senior Automation Systems Architect with Data Science Automation LabVIEW Champion Knight of NI and Prepper LinkedIn Profile YouTube Channel
0 Kudos
Message 6 of 9
(3,305 Views)
One additional tip:  If you do not have "Project folders" and "Reuse code folders" you are shooting yourself in the foot.  a clear demarkation between project specific code (the stuff the customer can change and view) and the re-use components that many of your customers depend on. you can easilly get caught with branched vi's and may corrupt other projects if customer A modifies reuse code "X" gets you to do a mod on his project and overwrites your reuse code with unexpected results.  My customers do understand that when I enclude source code that some reuse code will not be available and will be locked to protect my work (and work product.)   HOWEVER, "locked" vi's must have the highest level of documentation so that any customer understands EXACTLY what the vi does.

"Should be" isn't "Is" -Jay
0 Kudos
Message 7 of 9
(3,288 Views)

Ah! I completely forgot about Save With Options. It's been so long since I've had to deal with this type of issue.

 

OK, to make sure:

 

I open my top-level VI, Save With Options -> Apply Password (or Remove Diagrams) and then give them that. I then also provide a normal save of the their VI, with source.

 

I still have about 100 VIs that are dynamically called that are not part of the VI tree, and I would still have to re-save them all with a password, but it's better than every single VI. Thanks!

 

 

0 Kudos
Message 8 of 9
(3,272 Views)
Solution
Accepted by topic author rnelsonee

rnelsonee wrote:

Ah! I completely forgot about Save With Options. It's been so long since I've had to deal with this type of issue.

 

OK, to make sure:

 

I open my top-level VI, Save With Options -> Apply Password (or Remove Diagrams) and then give them that. I then also provide a normal save of the their VI, with source.

 

I still have about 100 VIs that are dynamically called that are not part of the VI tree, and I would still have to re-save them all with a password, but it's better than every single VI. Thanks!

 

 


Use the option to duplicate hiarchy and preserve...

 

apply to all...

 

at least as far as my memory serves me.

 

Ben

Retired Senior Automation Systems Architect with Data Science Automation LabVIEW Champion Knight of NI and Prepper LinkedIn Profile YouTube Channel
Message 9 of 9
(3,262 Views)