GPL Projects Overview

Definition of a Project

In GPL, rather than executing a "program," a "Project" is the basic executable entity. A Project consists of two or more text files stored within a single disk folder (i.e. directory). Each file is a standard human-readable ASCII file. The folder name and the Project name are synonymous. Project names conform to the standard GPL symbol name convention and therefore must start with an alphabetic character or an underscore (_) and cannot be a single underscore (_).

The first character can be followed by any combination of alphanumeric characters and underscore (_). Since Project folders can be stored on the flash disk, Project names are limited to 43 characters in length. Also, since flash disk names are case sensitive, the first alphabetic character in the Project name is always upper case and all other alphabetic characters are lower case, e.g. "Test_project." Specific operations within GPL and GDS are provided for loading, compiling, and executing a Project. 

File Types

Project.gpr

The file "Project.gpr" must always be present in each Project folder and is referred to as the "Project File." This file contains information on the other files within the Project. It is a sort of manifest. For example, the Project File stores the name of the procedure that is invoked when the Project begins execution. GDS automatically manages the contents of this file and so it is normally hidden within GDS. The contents of a "Project.gpr" file are viewable with a text editor. If you load a Project into memory and run it, GPL reads the "Project.gpr" file first before it starts.

.gpl Files

There can be multiple GPL source files within a Project. Each source file has a "gpl" extension. These files each can contain one or more program modules, which can contain multiple variable declarations and procedures.

.gpo Files

In addition, a Project can contain one, several, or no files with a "gpo" extension, a type of GPL code file. This type of file stores a global module that is used to define things like global Locations and Profiles. The .gpo file is convenient for saving taught robot Locations and general motion Profiles that are accessible by all procedures within the Project. Almost all of the work done within GDS involves the creation, debugging, and management of the .gpl and .gpo files for a given Project.

.gpp Files

A .gpp file is a password-protected.gpl file. A password is required to open, view, and edit the file. These files can be part of the Project structure.

.gsq Files

A .gsq file is a GP Flow sequence file that enables users to create high-level sequences of instructions without coding. It is part of the GP Flow process. When the Generate button is clicked, the system produces the corresponding GPL code for the Project to run. See GP Flow Programming Example: Pick and Place for more information.

Documents and Tools

Files such as .gpl and .gpo are considered "documents" to be created and modified. Tools such as those listed in the Controller drop-down menu are used to create and modify those documents. Many tool windows and toolbars can be moved around the screen and docked around the document for your convenience.

The Project as a Collection of Files

Since a Project consists of a collection of files within a disk folder, loading a Project into memory or copying a Project from memory or between disk units is equivalent to copying a file folder and all of its contents. So, Projects can be managed by dragging and dropping their associated files and folders onto the destination device. Although only one Project can be executed at any time, multiple Projects can be concurrently loaded into memory.

GPL Project Libraries

As a convenience when developing large software Projects or for sharing software modules, GDS supports GPL Project Libraries. This feature permits any Project to reference another GPL Project and utilize its public routines and data. No special operations must be performed to convert a Project into a Library. Any Project can be utilized as a Library. To reference a Project as a Library, the main Project must be modified to add the name of the Library into its Project File using the Project Window within GDS. A main Project can reference multiple Libraries and Libraries can reference other Libraries.

When the main Project is compiled, all the files in its referenced Libraries are logically included into the main Project. If two different main Projects refer to the same Library, the Library files are compiled separately into each main Project. This means:

When GDS loads a main Project from flash, it automatically loads any referenced Library Projects from flash. If the Libraries are already loaded, the loaded Libraries are used. If you use GDS to load Libraries from the PC during development, the corresponding Libraries on flash are ignored. When you unload a main Project, the referenced Libraries are not unloaded. If you use GDS to load a main Project from the PC, you must also manually load the Libraries from the PC or from flash.

GPL Naming Conventions

In order to standardize filename and Project-name conventions, GPL differentiates between certain characters and uppercase/lowercase letters in a filename or Project name. For example, GDS will automatically change a forbidden character such as a dash (-) to an acceptable filename character such as an underscore (_). GDS will also change an uppercase letter in a filename to a lowercase letter.