I think there is a misunderstanding. The number of cases in a case structure is not restricted, so case structures with cases of "0, Default", "1" and "2" like in the example you quoted are perfectly ok.
"Only one specific value (or "Default") is allowed in the case selector label for each subdiagram. You cannot use ranges (".." notation) or comma-separated lists of values."
What is excluded by this definition is that an individual subdiagram (one single case) could be connected to more than a single individual value - please consider "Default" as an "individual value", too! Not valid (differing from full LabVIEW) are lists like 1,3,5 (case should be selected, if selector value is one of 1, 3 or 5) or 4 .. 8 (case should be selected, if selector value is in the range somewhere between (and including) 4 to 8.
Obviously there is no problem to use the standard list "0, Default" instead of "Default" only, because 0 is just a special case of Default (and can be ignored by the compiler).
So from my point of view the Toolset is (at least in this point ;-) ) coded according to the Programming Guide - otherwise code using those VIs you mentioned simply wouldn't compile.
Message Edited by UlfM on 12-10-2006 04:56 PM
Message Edited by John Field on 12-10-2006 11:55 AM
Thanks Ulf and John for your quick response!
Indeed there was a misunderstanding, that the number of cases in a case structure is not restricted. But the problem is still present.
You stated in your answer, that
"there is no problem to use the standard list "0, Default" instead of "Default" only, because 0 is just a special case of Default and can be ignored by the compiler".
But my compiler does not ignore the "0" as a special case of Default. My compiler gives the Error Message
ERROR: Unsupported case structure value. Only single value cases and Default, are supported.
Every time the compiler finds an NXT VI (for example "PortSemaphore.AccessSemaphores.vi") with "0, Default" during compilation, he reports this Error Message.
So please tell me, how can I tell my Compiler to ignore this "0". Or do I have to remove eyery "0" in the "0, Default" Value of the case structures of every NXT Toolkit VI.
Please note that I have this problem with VIs of the NXT Toolkit. For my own VIs it is clear, taht I use the case structure according the Programming Guide of the NXT Toolkit.
Does your NXT compiler compile this VIs with "0, Default" without Errors?
I tried to reproduce your problem on two machines, one running LV7.1 + Toolkit, the other LV8.20 + Toolkit (btw.: Is there a way to install the toolkit on one machine in two different versions of LabVIEW? Up to now I havn't been successful in trying this...).
On both machines (resp. versions of LabVIEW) I create an empty VI, drop the "Motor Unlimited" (this contains the "PortSemaphore.AccessSemaphores.vi" somewhere down in the hierarchy) from the output palette as only subVI, use the standard values (i.e. no wiring), start the NXT Terminal, scan for and connect to the NXT, and start Compilation and Download: no problem, no compiler errors, download is confirmed by the NXT by double beep. Obviously I'm not able to reproduce your problem - without having done something special to convince the compiler to ignore the "0" :-(
On both machines (also under 7.1) after installation of the toolkit I did the mass compile mentioned several times by others in this thread - I guess you did so, too?
I am using LV7.1 + NXT Toolkit. And of course, I did a mass compile after installation.
You did the same things than I did on my machine. But I think your compiler is more intelligent than mine. My compiler only works without error message, when I delete the "0" from the "0, Default" value of the case structure. So I think as a workaround I have to modify all "0, Default" values in the NXT Toolkit VIs. But I think this is a real bug (on some machines) of the NXT Toolkit. But thank God the workaround is not so complicated.
It would be interesting, if I am the only user worldwide with this problem.
Well, I guess this is my last idea ;-) Do you have the english (like me) or another (e.g. german) version of LabVIEW running? I saw your post asking for the release of a german language toolset. I don't know anything about the "internas" of the compiler, but I could imagine that it has a different idea of the label strings in german, esp. if the "Default" in the german version is something different...
Good luck - and keep us posted ;-)
Ulf (German in Switzerland)
I guess your "last idea" may be the real reason for this problem. Actually I am using the german version of LV7.1. And I know from my professional usage of LabVIEW (Vision, Real Time, ...) , that sometimes there are problems in the german version which do not occure in the english version. In the german version this case-structure-value is called "0, Standard" instead of "0, Default".
Maybe there is someone at NI in Austin, who can check this for us with the german version. I am (almost) sure that he will get the same error message than I do.
Maybe I am (or lets say my son) the first user of the NXT Toolkit in Germany (or with a German version of LabVIEW)? Please german users of NXT Toolkit, let me know your experiences.
Great job Ulf!
Thanks a lot!
Hi John Field,
maybe it could be your job (as the MINDSTORMS Software Group Manager) to find someone at NI in Austin, who can check the compilation of a case structure with the value "0, Default" (in german version "0, Standard") with a german version of LV7.1 (for more details see the communication between Borsch and UlfM above).
Thanks for your support
Hi Ulf (the German in Switzerland),
I read just now that you are German too. Did I understand right, that you are born in Germany (where?) and are living now in Switzerland?
Greeting to Switzerland
a few moments ago I've made my eMail address visible in my user profile (click on "UlfM"). I don't want to see it here directly in the thread for obvious reasons ;-))) So please have a look there and send me an eMail before moving far off-topic!!