LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Running a competition with vi's from multiple LabVIEW versions

I have created a competition called ViBOTS (see LabVIEW zone fun stuff page or www.vibots.com). Trying to be brief...competitors create a vi to control a tank. I run an on-line tournament so that competitors can send me their vi's to compete against each other. I would like to make the competition available to more LV users with other (non PC) platforms and other (non 6.1) versions. This is how I plan to do it, please tell me if it will work.

I will provide 3 versions of the 'arena' software for users to download: LV 6.0, 6.1 and 7, with passworded diagrams so that non PC users can convert the files. Competitors will enter their vi's in any version from any platform. I will run the competition using LV
version 7 (PC).

I want to automate the competition as much as possible, therefore I want to avoid having to open each entry and save it as a different version, or worse having to make changes to the code. My experiments so far (PC versions 6.1 and 7) have shown that this is not neccessary and that LV automatically opens older versions and runs them without any intervention from me.
Is this always the case?
Will vi's from non-PC users load differently?
Would I be better off running the competition in ver 6.1 and asking ver 7 users to save their vi's as ver 6.1?
Are there functions specific to a particular version or platform that I should ban?

Many thanks, James/.
0 Kudos
Message 1 of 20
(3,324 Views)
The simple answer: Give users 6.0 code and run the competition in 7.0. That way all users can open the code you give them and you can run all code users give you.

-Jim
Message 2 of 20
(3,324 Views)
Before you run the competition, I would highly recommend to masscompile (a nice tool, try it!) the entries or earlier versions will run significantly slower, giving LV7 entries an unfair advantage.

I have often found that if you just load an old version without saving, It can run 5-10x slower, depending on the code. Once it is re-saved, it's fine.
Message 3 of 20
(3,324 Views)
> Is this always the case?
> Will vi's from non-PC users load differently?
> Would I be better off running the competition in ver 6.1 and asking
> ver 7 users to save their vi's as ver 6.1?
> Are there functions specific to a particular version or platform that
> I should ban?
>

As Jim mentioned, give your VIs out in the older format, run it in the
newer one. To automate things, use the VI Server to load, save, then
run the VIs. Saving is important or you will have performance
differences between VIs from other versions or platforms.

What to ban? The typical is DLLs, CINs, and ActiveX. I don't usually
bother to test for these until after the competition. If they lose, who
cares, if they win they are eliminated.

Greg McKaskle
Message 4 of 20
(3,324 Views)
If you're going to release the code in a previous version, and make it available to others with a newer version, make sure you don't remove any VI diagrams, otherwise the newer version won't be able to open them. Instead, just password them.




Copyright © 2004-2024 Christopher G. Relf. Some Rights Reserved. This posting is licensed under a Creative Commons Attribution 4.0 License.
Message 5 of 20
(3,166 Views)
Thanks all for your excellent advice. It's clear now how I should proceed.
james/.
0 Kudos
Message 6 of 20
(3,166 Views)
James;

About banning - I developed an application in LabVIEW to check VIs for extraneous code. It is still under development, but it can give you a starting point. You can download the VI at:

http://www.visecurity.com/tools.shtml

It is called VI Background Check. Any improvement to this tool is welcome.

Regards;
Enrique
www.vartortech.com
0 Kudos
Message 7 of 20
(3,324 Views)
Enrique,
You read my mind! I was wondering how I was going to do this. Currently I check each vi manually. This could make things much quicker. I haven't had a chance to check out your application fully, but from first glance I think it will be very useful. In particular I am concerned about malicious code. Many thanks and well done.
James/.
0 Kudos
Message 8 of 20
(3,324 Views)
James,

This is a good start, but you will be unable to test for the presence of File I/O and other dangerous primitives. These could potentially wipe out your whole system. Checking each VI manually isn't good enough. It would be very possible to hide code so that you can't see it. I recommend asking NI if they have any code that will test for the presence of such things. I am sure that they use automated tests to inspect submissions to their LabVIEW Zone coding challenges.

Regards,

-Jim
0 Kudos
Message 9 of 20
(3,324 Views)
Rather than going through each VI and subVI manually, having a look at the top-level VI hierachy is a much faster option.




Copyright © 2004-2024 Christopher G. Relf. Some Rights Reserved. This posting is licensed under a Creative Commons Attribution 4.0 License.
0 Kudos
Message 10 of 20
(3,324 Views)