mirror of
https://github.com/nasa/trick.git
synced 2024-12-23 15:02:25 +00:00
195 lines
8.1 KiB
Plaintext
195 lines
8.1 KiB
Plaintext
/**
|
|
* @anchor ExternalApplications
|
|
* @page LEVEL2 Runtime GUIs
|
|
*
|
|
* Trick provides the following graphical user interfaces:
|
|
*/
|
|
|
|
#include "sim_services/ExternalApplications/scp.dox_in"
|
|
|
|
/**
|
|
* @page LEVEL2cont
|
|
* - @subpage SimControlPanelPage "LEVEL3cont Sim Control Panel" <br>
|
|
* Send control commands to and view the status of a simulation.
|
|
*/
|
|
|
|
#include "sim_services/ExternalApplications/tv.dox_in"
|
|
|
|
/**
|
|
* @page LEVEL2cont
|
|
* - @subpage TrickViewPage "LEVEL3cont Trick View" <br>
|
|
* Browse and modify a simulation's variables while it's running. Launch integrated strip charts.
|
|
*/
|
|
|
|
#include "sim_services/ExternalApplications/mtv.dox_in"
|
|
|
|
/**
|
|
* @page LEVEL2cont
|
|
* - @subpage MalfunctionsTrickViewPage "LEVEL3cont Events/Malfunctions Trick View" <br>
|
|
* Manage the events and malfunctions of a simulation.
|
|
*/
|
|
|
|
#include "sim_services/ExternalApplications/mm.dox_in"
|
|
|
|
/**
|
|
* @page LEVEL2cont
|
|
* - @subpage MonteMonitorPage "LEVEL3cont Monte Monitor" <br>
|
|
* Monitor the status of a Monte Carlo simulation; create, start, and stop slaves.
|
|
*
|
|
* @section LEVEL3 Managing External Applications
|
|
*
|
|
* External applications are managed by instantiating and invoking calls on instances of launcher classes, which provide
|
|
* interfaces for setting up external applications from the input file or user model code. For instance, to manipulate
|
|
* %Trick View from the input file:
|
|
*
|
|
* @code trickView = trick.TrickView() @endcode
|
|
*
|
|
* You now have an instance of the %Trick View launcher class on which you can invoke calls to modify the actual %Trick View
|
|
* application's behavior at launch. For instance, you could set the host and port:
|
|
*
|
|
* @code
|
|
* trickView.set_host("localhost")
|
|
* trickView.set_port(7000)
|
|
* @endcode
|
|
*
|
|
* And then add it for automatic launching:
|
|
*
|
|
* @code trick.add_external_application(trickView) @endcode
|
|
*
|
|
* Provided launcher classes are derived from and listed in Trick::ExternalApplication. Some functionality is shared
|
|
* among launcher classes, and each class provides its own specific additional options. %Trick allows any number of
|
|
* instances of any subclass of ExternalApplication. This means you could automatically launch two different %Trick Views
|
|
* with completely separate settings (if you find that sort of thing useful).
|
|
*
|
|
* @anchor ExternalApplicationsAutomaticLaunching
|
|
* @section LEVEL3 Automatically Launching Applications
|
|
*
|
|
* Applications can be set to automatically launch during the initialization job phase by adding them to the queue of
|
|
* external applications managed by %Trick. To do this, instantiate an instance of the appropriate launcher class (see
|
|
* above) and call Trick::ExternalApplication::add_external_application.
|
|
*
|
|
* @section LEVEL3 Manually Launching Applications
|
|
*
|
|
* %Trick automatically launches all applications that have been added to its queue during simulation initialization.
|
|
* However, applications may also be manually launched via Trick::ExternalApplication::launch.
|
|
*
|
|
* @section LEVEL3 Launch Command
|
|
*
|
|
* Default commands suitable to launch each application are provided by their individual constructors. However, they may be
|
|
* changed, if desired, via Trick::ExternalApplication::set_startup_command.
|
|
*
|
|
* @section LEVEL3 Launching Custom Applications or Commands
|
|
*
|
|
* Having %Trick automatically launch a custom application, or execute any command at all really, is a simple matter of
|
|
* instantiating an instance of the base class ExternalApplication and then setting the desired command as described above.
|
|
*
|
|
* @code
|
|
* customApplication = trick.ExternalApplication()
|
|
* customApplication.set_startup_command("echo Hello World!")
|
|
* customApplication.set_arguments("")
|
|
* trick.add_external_application(customApplication)
|
|
* @endcode
|
|
*
|
|
* Note that ExternalApplication automatically appends the host and port argument unless you set the arguments by calling
|
|
* Trick::ExternalApplication::set_arguments.
|
|
*
|
|
* Why would anyone want to have %Trick automatically run additional commands? Well, for one thing, it saves you from
|
|
* manually running them each time you run a sim or writing a script to do it. But more importantly, applications managed by
|
|
* %Trick are included in binary checkpoints, which means they can be saved and restored with no work on your part!
|
|
*
|
|
* @section LEVEL3 Shared Options
|
|
*
|
|
* As each %Trick GUI was written by a different developer and few standards were in place, most options vary according to
|
|
* each GUI. The following apply to at least %Trick View and Monte Monitor. Application-specific options can be passed from
|
|
* the input file or user model code via Trick::ExternalApplication::set_arguments or
|
|
* Trick::ExternalApplication::add_arguments.
|
|
*
|
|
* @section LEVEL4 Host
|
|
*
|
|
* The host of the Variable Server to which the application will connect at launch can be specified via one of:
|
|
*
|
|
* - From the command line, use the <code>\-\-host</code> option.
|
|
*
|
|
* - From the input file or user model code, use Trick::ExternalApplication::set_host
|
|
*
|
|
* If no host is specified, it will automatically be set to that of the simulation which is launching this application.
|
|
*
|
|
* @section LEVEL4 Port
|
|
*
|
|
* The port of the Variable Server to which the application will connect at launch can be specified via one of:
|
|
*
|
|
* - From the command line, use the <code>\-\-port</code> option.
|
|
*
|
|
* - From the input file or user model code, use Trick::ExternalApplication::set_port
|
|
*
|
|
* If no port is specified, it will automatically be set to that of the simulation which is launching this application.
|
|
*
|
|
* @section LEVEL4 Automatically Reconnect
|
|
*
|
|
* The application can be configured to automatically reestablish lost connections via one of:
|
|
*
|
|
* - From the command line, use the <code>\-\-autoReconnect</code> option.
|
|
*
|
|
* - From the input file or user model code, use Trick::ExternalApplication::set_auto_reconnect
|
|
*
|
|
* - From the application, use the <code>File->Settings</code> menu.
|
|
*
|
|
* The default value is <code>false</code>.
|
|
*
|
|
* @section LEVEL4 Window Size and Placement
|
|
*
|
|
* The window's coordinates and dimensions at launch can be set via one of:
|
|
*
|
|
* - From the command line, use the <code>\-\-x</code>, <code>\-\-y</code>, <code>\-\-width</code>, or <code>\-\-height</code>
|
|
* options.
|
|
*
|
|
* - From the input file or user model code, use Trick::ExternalApplication::set_x, Trick::ExternalApplication::set_y,
|
|
* Trick::ExternalApplication::set_width, or Trick::ExternalApplication::set_height.
|
|
*
|
|
* @section LEVEL4 Cycle Period
|
|
*
|
|
* The period (in seconds) at which the Variable Server sends information to the application can be specified via one of:
|
|
*
|
|
* - From the command line, use the <code>\-\-cycle</code> option.
|
|
*
|
|
* - From the input file or user model code, use Trick::ExternalApplication::set_cycle_period.
|
|
*
|
|
* - From the application, use the <code>File->Settings</code> menu.
|
|
*
|
|
* The cycle period must be a non-negative number. Specify <code>0</code> to recieve updates at the maximum rate. Values
|
|
* below the minimum cycle period will be set to the minimum cycle period.
|
|
*
|
|
* @section LEVEL4 Minimum Cycle Period
|
|
*
|
|
* The minimum period (in seconds) at which the Variable Server can be requested to send information to the application
|
|
* can be specified via one of:
|
|
*
|
|
* - From the command line, use the <code>\-\-minCycle</code> option.
|
|
*
|
|
* - From the input file or user model code, use Trick::ExternalApplication::set_minimum_cycle_period.
|
|
*
|
|
* The minimum cycle period must be a non-negative number. The recommended and default value is <code>0.1</code>. Values
|
|
* below this may cause instability in %Trick GUIs.
|
|
*
|
|
* @section LEVEL4 Application Behavior
|
|
*
|
|
* The application can take one of several actions when it loses the connection with the simulation:
|
|
*
|
|
* - <b>Close</b><br>
|
|
* Terminate and close.
|
|
*
|
|
* - <b>Notify</b><br>
|
|
* Present a notification dialog describing the failure.
|
|
*
|
|
* - <b>Nothing</b><br>
|
|
* Do nothing.
|
|
*
|
|
* This behavior can be specified via one of:
|
|
*
|
|
* - From the command line, use the <code>\-\-disconnectBehavior</code> option.
|
|
*
|
|
* - From the input file or user model code, use Trick::ExternalApplication::set_disconnect_behavior.
|
|
*
|
|
* - From the application, use the <code>File->Settings</code> menu.
|
|
*/
|