Previous Chapter | Table of Contents | Next Chapter

Chapter 3 - The Graphical User Interface

The ProtoCollum Graphical User Interface (GUI) enables you to lay out the design for a protocol model and run various test scenarios to determine if your design is correct.

General Layout

The general layout of the GUI is shown in Figure 3.1.

Full ProtoCollum GUI with numbered pointers
Figure 3.1 ProtoCollum GUI

The various parts of the GUI are:

1 Selection and Object Buttons
The Arrow button puts the program in Select mode. The other buttons represent objects. When an Object button is selected then that type of object can be created on the currently selected sheet.
2 Current Sheet
There are two types of sheets: Edit and Test. The type of the current sheet determines which Object buttons are active.
3 Tabs
Tabs are used to select a sheet to be displayed from all the sheets in the Binder. Gray tabs are Edit Sheets; blue tabs are Test Sheets.
Note: The tabs in any window can be repositioned by clicking and dragging with the middle mouse button.
4 Interpreter Display Area
Informational and warning messages appear here. Also the results of commands entered into the command line (5) are shown here.
5 Command Line
The interpreter command line allows Tcl commands to be executed interactively. The commands execute at the global level. A command history buffer is accessible via up-arrow and down-arrow keys. The contents of the history buffer can by dumped to the Display Area by typing history (or hist or h). Typing !<Num>, where Num is the history buffer entry number, will invoke the associated command.
6 System Package
This is a read-only display that shows which package, if any, is currently selected as the System package. This kind of package provides its procedures as code for objects that can execute code during the running of test scenarios.
7 Object Name
This is a read-only display that shows the name of an object when the cursor passes over it while in Select mode.
8 Current Zoom Factor
This is a read-only display of the current zoom factor of the current sheet.
9 Test Scenario Execute Button
This button is active when a Test sheet is the current sheet and is used to execute the test scenario.
10 Zoom and History buttons
The magnifying glass buttons zoom the current sheet in and out. The undo and redo buttons are active only when an Edit Sheet is the current sheet.

Changing Object Properties

A property window can be opened for any object by right-clicking on the object while in Select mode (applies to both an Edit Sheet and a Test Sheet). The design state, or architecture state, of the object is found on the tab labeled Public. A tab labeled Graphic contains the drawing properties for the current view of the object. In addition, an object may have other tabs that allow code to be entered in order to affect the behavior of the object during the running of a test scenario.

Rule Property window - Public tab    Rule Property window - Graphic tab
Figure 4.3 Rule Property window

Fields with a light yellow background can be changed by selecting the field with a mouse Left-click and then typing the desired text. Fields with a gray background are read-only. Color fields can be modified by selecting the button to the right of the field value, which brings up a color selection popup window.

Setting Class Properties

The initial values for the graphical properties and the code of an object are taken from the Class Properties window which is available via the menu item Edit>Class Properties. When an object is created, it takes its initial value from the Class Properties. Note that changing the Class Properties will affect only the initial values of objects created after the change is made. This is because each object stores its own initial values when it is created.

The values found in the Class Properties window are taken from the <pkg>::Option() arrays which can be initialized via preference files, environment variables, or command line options. See Customization for more information on program startup initialization.

Managing Code Packages

ProtoCollum uses the package functions provided by the Tcl language to load additional code into the tool. This code can be pure Tcl code and/or compiled object code (in dynamic or shared library format). The menu item File>Package Management opens a window that handles the three main operations you can perform with packages:

Figure 4.4 shows the Manage Packages window. It has a tab for each of the three package operations.

Manage Packages window
Figure 4.4 Manage Packages window

The next three sections describe each operation in detail.

Loading Packages

On the Load tab is shown a list of available packages. These are the properly formed Tcl packages that can be found given the current value of the ::auto_path variable. When a package is selected (left-clicked) in this list, it is transferred to the loaded list on the left side of the window. The color is blue to indicate that this transfer is not yet permanent. A left-click on a blue entry will remove the package and put it back into the available list.

Uncommitted (blue) packages that have been added to the loaded list are committed only when the Apply or OK button is pressed. At that time these new packages do a package require <package_name> which causes the command inside the pkgIndex.tcl file for the package to be executed. Typically, this command does a source of Tcl code or a load of a compiled object file.

The Find button on the tab will open a file browser window that is used to select the pkgIndex.tcl file of a package that is not showing in the available list. The path to this file is added to the ::auto_path variable, so it is possible that even with just one pkgIndex.tcl selection, a number of packages will show up in the available list.

Setting Binder Packages

On the Binder tab is shown a list of packages that will be put into the Binder public variable PackageList and saved in the .mps file when the Binder is saved. (See File Types for more information on .mps files.) This may be necessary because of the code which can be embedded in the PE and Event objects. If the embedded code uses procedures from non-standard packages, then the Binder needs to know which packages are required for correct execution.

Selecting a package entry on the Binder tab removes it from the list. Selecting a package on the left (which shows loaded packages) places the package into the Binder list.

Choosing the System Package

The System tab allows you to select which package is to be used to define the execution code for the objects during the running of test scenarios. The name of the currently selected System package is shown on the tab. A new package can be chosen from the loaded list, or the entry can be cleared using the Clear button.

A package to be used as a System package has special requirements that must be met. There are certain procedures and variables which must be defined.

Previous Chapter | Table of Contents | Next Chapter

Copyright © 2003-2005 by Bellum Software™
last updated on 29 May 2005