Table of Contents
This chapter presents annotated code for gtkcontrol.g (for GTK) and phcontrol.g, as well as contain common functions that are used in Linux or QNX, GTK or Photon.
This mini-program starts the Tools Demo by starting the Controller. It first checks to make sure that a Controller is not running, and then it chooses which Controller program to run: gtkcontrol.g or phcontrol.g, based on the current operating system, and (in the case of QNX 6) the desired GUI.
/*-------------------------------------------------------------------- * File: demo.g * * Description: This program starts the demo. *------------------------------------------------------------------*/
/*-------------------------------------------------------------------- * Function: main * Returns: doesn't return * Description: Calls gtkcontrol.g or phcontrol.g, depending on the OS * and/or a command line argument. *------------------------------------------------------------------*/ function main() { if (_os_ == "Linux") system("gamma gtkcontrol.g"); else if (_os_ == "QNX4") system("phgamma phcontrol.g");
The prompt for QNX 4 Gamma programs that run Photon is phgamma, not gamma. This demo.g program lets us effectively wrap the phgamma command in a gamma command, giving us one, simple way to start the demo in any of the three operating systems.
else if (_os_ == "QNX6") { if (cadr(argv) == nil) system("gamma phcontrol.g"); else if (cadr(argv) == "photon") system("gamma phcontrol.g"); if (cadr(argv) == "gtk") system("gamma gtkcontrol.g"); } }
The Gamma function system function is used to send the system command gamma *control.g, which starts the Controller. The optional third argument in the gamma demo command (which is only available in QNX 6) is accessed using argv, a symbol containing a list of command-line arguments. We use the Gamma function cadr to extract the third argument (if any) from the list.
Copyright © 1995-2010 by Cogent Real-Time Systems, Inc. All rights reserved.