Preventing Auto Launching your GUI from SHIPTide

From Serious Documentation
Jump to: navigation, search
Badge SHIPv5.gif this discussion refers to SHIPv5 only

Sometimes bad things happen even to good GUIs.

Perhaps your GUI runs, but the SIM locks up. This can happen for a variety of reasons, including an event loop in your GUI design (similar to circular references in Excel or a deadly embrace scenario in mutexes) or it is just possible you've uncovered a bug in SHIPEngine.

Either way, you may encounter a situation where you try to download a new GUI and SHIPTide for some reason can't talk to your SIM.

You may want to review the SHIPv5 Boot System so you understand the 3-stage boot process in SHIP Version 5. What we're going to do here is reboot the SIM and have it "stick" in the boot loader SHIPTug before it runs the SHIPEngine which loads your GUI.

In SHIPTide select File->options, then the developer tab, then change “Launch Application” to “Prompt” as follows:

SHIPTide Option to Prompt before Launch

Once that is done, remove and reapply power to your SIM, typically by removing and re-inserting the USB device cable or by cycling the power to the SIM

When the SIM boots, it will run SHIPPaddle (this is invisible), then SHIPTug (you will see that), and then your SHIPTide will prompt you “Run application?”. Say “no”.

Now the SIM is in the SHIPTug bootloader and can receive new downloads from SHIPTide of the engine (SHIPEngine) or the other bootloader elements as well as new GUI cargos.

So if your GUI Cargo is causing a problem, this method allows you to avoid running the GUI and download a new one to try.

In SHIPTide you can do the “File->Export Cargo” that you normally use to send a GUI to the board when the SIM is in SHIPEngine or SHIPTug. When that is done, the SIM will reboot. At that point SHIPTide will again prompt you “Run application” and you can say “yes” and the GUI will load and run.