09-16-2008 07:04 PM
I'm attempting to upgrade a fairly large project to 8.6 from 8.5. Two of Three statecharts have code generation errors for their xnodes (I can regen code fine in the diagram editor though). But I haven't done any heavy debugging yet. I suspect it might have something to do with the the two statecharts having a class in their inputs. I was wondering if anyone has had a simuliar experience before I spend a lot of time trying to hunt down the problem.
I got an earlier version of this code to work on the first public 8.6 beta, if that's helpful. I also attached a log from opening the 8.5 project and mass compiling it. I suspect that the xstuffprivate.cpp(2494) part is the problem.
09-17-2008 02:37 PM - edited 09-17-2008 02:40 PM
I've made a example project that shows the problem (see attached). The problem seems to show up when you have both a variant and labview class in the inputs of a statechart. If you remove either from the posted example and force code generation for the diagram (even though it doesn't think it's needed). Then the node for the statechart in test.vi will become executable. I'm going to try to find a work around. but if anyone has a sugestion on how to fix or work around this issue that would be helpful.
09-17-2008 03:20 PM
09-17-2008 05:12 PM
We've reproduced the issue and are actively investigating. Thanks much for posting the example showing the problem. I'll keep you posted with respect to info and possible other workarounds. We have created CAR# 126856 to track the issue.
Thanks,
Nick
09-17-2008 05:32 PM
09-17-2008 05:45 PM
09-17-2008 06:01 PM - edited 09-17-2008 06:04 PM
Thanks for the updates.
It affects inputs and outputs, but not state data. The "difference" is a problem when the terminals of the run statechart node contain classes.
You will get the error if either of the following are true about your Inputs.ctl (or Outputs.ctl):
This means if you can find a way to easily stop using a variant and use some class besides the base LV Object class, you can workaround this problem. Let me know if this seems workable. You might need to create an artificial parent class for all of your classes (so that you can use this parent class instead of the base LV Object class).
Sorry for the problem. We can try to think of some more workarounds if this one is not viable for you (I know you would like to perform this upgrade without having to rework much of your app.)
09-17-2008 06:55 PM
09-17-2008 07:48 PM
09-18-2008 09:18 AM
Glad that you were able to workaround the issue without extensive recoding... we will be sure to publicize this as a known issue and give the CAR the attention it deserves.
Thanks again,
Nick