To expand, I was in a meeting just yesterday reviewing issues related to similar bug reports. We understand them pretty well and are now able to give some best-practices for this season that will help avoid unnecessary compiles during run and build.
Run-button click for RobotMain:
If you DO NOT have a startup application on the controller, simply press the run button. The first time it will deploy all VIs to RAM and subsequent “warm” runs will take advantage of already present VIs and will be quite fast.
If you DO have a startup app on the controller, the recommended procedure is to close the RobotMain VI, right click on the target and connect to the controller. This will abort the startup application. Then open RobotMain and click run.
When RobotMain is open while conflict resolution runs, it will cause each VI to believe it needs to recompile, causing a very slow run operation. If the slow run is already underway and the startup application has already been aborted, it is also acceptable and safe to cancel, close RobotMain, reopen RobotMain, and click run.
Another approach to avoid this bug is to unset as startup when you need to do substantial development involving reboots of the controller. Remember to Build and Run As when development is complete.
Building:
When building the application, be sure to open RobotMain first. While it will build the same EXE with the VI open or closed, opening the VI will allow it to use previous compile results and will be far faster.
Run as Startup:
We have seen situations where a startup application is present and immediately following the conflict resolution dialog, the communications ceases and the dialog will state that it is waiting for the controller. If the CPU usage of the cRIO is steady at zero, it is best to cancel and select Run as Startup again. The process should not take more than twenty seconds, so when it does, it is not working correctly and should be started again without rebooting the controller.
This bug has been quite hard to reproduce in-house and the root cause is still being investigated.
I want to personally apologize for not catching these issues earlier in the season or during beta testing. The tests that were in place did not have a way to measure the number of unnecessary compiles and didn’t always include the startup-app situation. These issues are being addressed and tests put in place to ensure they aren’t introduced again.
If you find other issues, please don’t hesitate to report them to the NI/frc support forums so that we can investigate them fully and correct the issues.
Greg McKaskle