LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Programmatic refresh possible? Broken VI fixes on redragging

I'm trying to programmatically build my PPLs using the Application Builder VIs.

One of my libraries depends on a couple of others and overrides Receive Message (from Actor Framework).

This VI causes my library to be broken, because apparently it can't get the correct data type for the messages as a cluster that is passed to Cluster to Array:

Broken Receive Message.viBroken Receive Message.vi

 

If I drag any of the 4 messages (3 of which are part of the Actor Framework, in this case 2 from Actor Framework.lvlibp and the Report Error Msg packaged in a new and separate PPL) out of the cluster and immediately back in without releasing the mouse, the situation is unchanged.

However, if I drop the constant outside of the cluster, then pick it up and put it back in the cluster, the VI is fixed.

Fixed Receive Message.viFixed Receive Message.vi

 

Is there a way I can detect broken VIs (that's probably not too difficult) and then try and programmatically refresh/fix their data types (I suspect this is more difficult).

Mass compiling the directory also didn't work (just as a manual attempt to check something I believed would be possible to script) - the VIs were considered broken and so Bad VIs for the purpose of the Mass Compile dialog.


GCentral
0 Kudos
Message 1 of 3
(2,316 Views)

I see this kind of thing with generic units sometimes. In that case clicking the run button fixes it. Have you tried that?

0 Kudos
Message 2 of 3
(2,307 Views)

I tried that, and also Ctrl+Shift+R (or Ctrl+Shift+click on button to run) because I think that's the shortcut to force a recompile.

I just searched to check these shortcuts and found the following: Forcing a VI to Recompile

It appears that perhaps the clicking is important (rather than R) and further that Ctrl+Shift+click on run recompiles more than just a single VI...


GCentral
0 Kudos
Message 3 of 3
(2,294 Views)