Copyright 1989, By The Author(s). All Rights Reserved .

Transcription

Copyright 1989, by the author(s).All rights reserved.Permission to make digital or hard copies of all or part of this work for personal orclassroom use is granted without fee provided that copies are not made or distributedfor profit or commercial advantage and that copies bear this notice and the full citationon the first page. To copy otherwise, to republish, to post on servers or to redistribute tolists, requires prior specific permission.

FLIP: A GRAPHIC USER INTERFACEFOR MANAGEMENT AND UTILIZATIONOF FACILITIESbyAlex C. WestMemorandum No. UCB/ERL M89/3918 April 1989

FLIP: A GRAPHIC USER INTERFACEFOR MANAGEMENT AND UTILIZATIONOF FACILITIESbyAlex C. WestMemorandum No. UCB/ERL M89/3918 April 1989ELECTRONICS RESEARCH LABORATORYCollege of EngineeringUniversity of California, Berkeley94720

FLIP: A GRAPHIC USER INTERFACEFOR MANAGEMENT AND UTILIZATIONOF FACILITIESbyAlex C. WestMemorandum No. UCB/ERL M89/3918 April 1989ELECTRONICS RESEARCH LABORATORYCollege of EngineeringUniversity of California, Berkeley94720

FLIP : A Graphic User Interfacefor Management and Utilization of Facilities'Alex C. WestComputer Science Division - EECSUniversity of CaliforniaBerkeley, CA 94720(awest@wilson.berkeley.edu)AbstractA program called FLIP (Facility Layout Information Program), version 2.7, is firstdescribed in general, then a more detailed user's guide is presented, and finally a programmer'sguide discusses some implementation details.Table of Contents1. Introduction32. System Description32.1. What Has Been Used in FLIP'S Implementation?32.2. Overview42.3. Limitations, Bugs, Need for FutureWork53. User's Guide3.1. Getting Started3.2. Initial Configuration and Basic Functions33. Where Should the Mouse be Placed ?77883.4. Menus vs. Typed Input3JS. On-Line Help Information9103.6. The Command Menus103.6.1. General Menu3.6.2. Geometric Menu10113.63. Utility Menu3.6.4. Equipment Menu3.7. Coordinate Systems and Units1212143.8. How to Use FLIP to Alter Information in the Database143.9. Mode and Stacking of Operations3.10. FLIP as an Intermediary15164. Programmer's Guide4.1. DatabaseSchema and Coordinate Systems4.2. General GraphicTools Supporting FLIP4.2.1. The Graphic Tool xcom4.2.2. The Graphic Tool xevents4.23. The Graphic Tool xmenuenv4.2.4. The GraphicTool xtext43. General-Purpose Modules in FLIP4.4. Flow Control in FLIP161718202021222325' This research was supported by Semiconductor ResearchCorp. and National Science Foundation under grant number MIP8715557

General Menu -18- 24-8Place- mouse on uinciou & click a button to release box? GENERAL HELP ?Help about one menu entryExplain new featuresReport bugs , comments , etc.Keep log of all typed & outputUpdateEXITModePROGRAMGeometricMenuZoom inZoom outDrawGridComputeAreaIconify all windowsUtilityMenuShow Utility ColorsShow All UtilitiesHide All UtilitiesShow only 1 UtilitySide View of UtilitiesPrint Junction InfoPrint Connection InfoList Equip ConnectedEquipmentHidefromMenuViewShow Textual InfoList Utilities ConnectedTurnONTurnOFFList Equiment in UseList ReservationsFigure 1. FLIP soon after start-up.Introduction

1. IntroductionA laboratory or factory contains a collection of objects (walls, partitions, doors, equipment,outlets, utility networks, etc.) of various complexity that have associated pieces of information(location, name, shape, parts, maintenance history, user instructions, etc.). Storing a suitable subset of this information in computer databases opens up new possibilities of retrieval, manipulation and display. Different computer programs may then be employed to make use of part or allof the stored information in order to support technical staff in maintaining and upgrading thecomplex physical facilities.2. System DescriptionThe program FLIP (Facility Layout Information Program) is a graphic user interface thatpermits entry, viewing and modification of a group of objects that together can be used torepresent to some approximation an actual laboratory or factory floor. Each object belongs to apre-defined set of types and contains geometric and/or textual information. In addition, otherutility programs that take equipment names as input may be directly invoked from FLIP. In otherwords, FLIP can be used either for its own capabilities or as an intermediary between the user andsome other programs.All geometric information used by FLIP is three-dimensional, even though the user ispresented a two-dimensional view most of the time. Utility networks and some other objects arecolor-coded. FLIP is equally menu-driven and text-driven, i.e. commands may be either selectedfrom menus or typed in at the user's choice. Various selections also give the choice of eitherusing the mouse or, equivalently, typing in a name or value. With few exceptions, FLIP managesto completely isolate its users from the details of the underlying database representation. Both ageneral help function and help information on most individual commands are available on-line.FLIP has been installed and is in current use on SUN 3/110 color workstations in theMicrofabrication Laboratory (or Microlab) at Berkeley. Early implementation development wasdone on a VaxStation II/GPX. All the sample FLIP images used in this paper (for example,figure 1) are based on actual Microlab data entered as of present.2.1. What Has Been Used in FLIP'S Implementation ?FLIP is written in C and runs on UNIX or ULTRDC. The underlying database is RelationTechnology's INGRES. Communication with INGRES takes place by means of theINGRES/EQUEL/C embedded query language, which allows database constructs interspersedwith C code. Graphic operations make use of the X Window System, version 10, which isaccessed by means of function calls to the Xlib library.Several graphic modules were written with FLIP in mind; however, their function is generalenough (e.g., menus) for them to be eventually replaced by better or more sophisticated onesdeveloped outside the FLIP project. For example, various *'toolkits" coming with XI1 may oneday be used to upgrade various parts of FLIP'S graphic performance. General graphic modulesand the rest of FLIP'S source code amount to just over 10,000 lines of C code (including comments.)System Description

2.2. OverviewFigure 2 shows the most general block diagram of FLIP'S function. The emphasis here isthe fact that keeping a single database helps avoid problems of duplication and inconsistency. Inthis context, FLIP is merely one of the many programs that can be employed to enter, alter anddisplay information on the facility. By maintaining a modular approach, it is also easier toupgrade, modify and add new programs as the need arises. Notice that FLIP can also be used asan intermediary to invoke some other independent programs.Figure 3 shows an approximate block diagram representation of FLIP'S internal structure.Additional details are discussed in section 4, the Programmer's Guide. Shown in figure 4 is asample situation showing a typical mode of operation in FLIP; all utility networks are displayedand a detail is zoomed in.ENDUSERAGraphicInteraction1ZexecvpUNIX System RTDatabase STABLES)ADMINISTRATOR*Figure 2. Highest-level block diagram.System Description

ENDUSERAGraphicInteractionSzDISPLAY / RTEXTOPERATIONSGRAPHICCAPABILITIESEVENTS QUEL/CQUERYGENERATOR2SEQUEL/CDatabase QueriesVLABDATABASE(INGRES)Figure 3. Block diagram of FLIP'Sinternal structure.23. Limitations, Bugs, Need for Future Work It should be possible to use FLIP to invoke a much larger variety ofother programs than justthose thattake equipment names as input. A few additional functions should be added to avoid having to ever modify the databasedirecfly. (For example, FLIP currendy offers no operations to store ormodify labels inthe database, noroperations to delete walls from the database.) The database schema (see section 4.1) should be revised and expanded. It would also be verydesirable to have some general way ofletting users describe new types ofobjects and operationson them.System Description

Generalsprinkler? GENERAL HELP ?110Help about on* n«nu entry208Explain new Features208p3Report buj* , cowmntt , tc.220SIUpdate460EXITgasesn2o2chwscwsbutter to r e l e t s bo-.j HJ U" UJLi [Keep log of all typed t output440p3airPlace mouse on uinclco V. click aMenuModePROGRAMGeometricZoomAddMenuinAddZoom outDrawGridCompute AreaIconify all windowsUtility3ihw§sewerstormvdrain cleanvac3 * 3WShow All UtilitiesO-iDeleteShow only 1 UtilityPrint JunctionInfoList Equip ConnectedGL1EquipmentHidefrom:g:MenuViewInfo 3aTurnONTurnOFFn. -"List Equiment in UseList ReservationsPumps DatabaseGases DatabaseElementLeave UpdateSide View of UtilitiesList Utilities ComeotedaCoordinateEquipmentConnect Equip to UtilityHide All UtilitiesShow TextualoConnectionHodify E« ulpn*nt Text- Remove palettepumps Add New Hm« JunctionConnectionAddPrint Connection nd—FLIP console window —FLIP z inCCommand understood as : 'Zoom in']FLIP z inCCommand understood as : 'Zoom in'3FLIP in zCCommand understood as : 'Zoom in'DFLIP I

Unlike some other programs using the X Window System, FLIP does not allow the user tostore a personalized start-up configuration in a file. A tentative plan to add digitized photographs (possibly with added captions) to the type ofobjects that FLD? handles, was never carried out. No feedback to the user is given when operations are temporarily suspended and placed on astack of stopped operations, nor when they are later resumed (See section 3.9.) It would be nice to make greater use of the 3-dimensionality of the information. Units of measure should be shown whenever a numerical quantity is presented to the user. FLIP expects the database to be initialized, i.e. to have all the INGRES tables set up asrequired. There should be an option to have FLIP do the initialization. The need is felt for a "Kill Operation*' function that could abort any update operation while inthe middle of it Currently, the operation needs to be carried to the end and then deniedconfirmation (which FLIP always prompts for.) Adding the capability of showing a "You are here" mark on the layout view, has been suggested by some people. The choice between "one-shot*' and "repeated'* modes of operation (see section 3.9) is adifficult one for some operations and it is not clear whether the choices made by FLIP are the bestones. It would be convenient if screen redrawing could be sped up (maybe by setting up some hashtable for the data in memory.) Data inconsistency may be produced if many users run FLIP concurrently and perform updateoperations (see section 4.1.)3. User's GuideThe previous sections provide a general idea of what FLIP is used for, of what it looks likeand of what parts it is composes of. We will now turn our attention to some of the most important details of actually using FLIP.3.1. Getting StartedLike many other graphic programs using the X Window system, FLIP expects the shellenvironment variable DISPLAY to be correctly set to the name of the graphic server that youwant to send the picture to. The reason for this need is that X is a networksystem, i.e. you mightrun your program on one computer and have the display appear elsewhere. The shell variableDISPLAY can be set by issuing the commandsetenv DISPLAY computer'.numberwhere computer is the name of the computer that the graphic monitor is connected to, andnumberspecifies which of the graphic monitors to use, in case there is more than one. (If there isonly one, use :0) Many people set the variable DISPLAY in their ".login" file.FLIP is started by simply typing flip . It is possible to provide one or both of the followingtwo arguments:-vVerbose mode. Some details of the database operations are printed out,together with some other information.System Description7

-d dbasejiame Use a different databasethan the default one; dbasejuvne must be the nameof a valid INGRES database, with all the necessary tables already set up.During start-up, a small window may appear, and soon disappear, in the upper left-handcomer of the screen. The small window is the xtext window, whose function will be explained insection 3.2. The somewhat mysterious occasional appearance and prompt disappearance is perfectly normal and has to do with the way the graphic tool xtext works, explained in section 4.2.4.3.2. Initial Configuration and Basic FunctionsWhen FLIP is first started, it has three windows and four command menus. The three windows are the Global window, with purple border, the Detail window, with green border, and theConsole window, a light blue color.Inside the Global window, FLIP generates an overall view of the facility as seen fromabove, i.e. its parallel projection onto the floor. Black lines represent walls and partitions; greyline represent the rough outlines (bounding boxes) of pieces of equipment. Notice that movingthe mouse above this window "drags along" a little black box, called magnifying glass. Amagnified view of whatever is under it appears in the Detail window, which is where all graphicselections and operations are performed (hence its header of "FLIP: graphic work window".) Themagnifying glass can be "frozen'* in position in the Global window by clicking any of the buttons on the mouse. A second click will restore the magnifying glass* mobility. The windowheader provides a constant reminder of the status of this feature, as well as a position feedback inthe coordinate system and units used for the facility.The Console window is where FLIP prints out prompts, instructions and feedback for theuser. Users* typed input appears in it, too, just like on a regular terminal A second text window,called xtext window, pops up as needed. (See figure

4.2. GeneralGraphicTools Supporting FLIP 18 4.2.1. TheGraphicTool xcom 20 4.2.2.TheGraphic Tool xevents 20 4.23.TheGraphic Tool xmenuenv 21 4.2.4. TheGraphicTool xtext 22 43.General-PurposeModules in FLIP 23 4.4. Flow ControlinFLIP 25 ' This research was supportedby Semiconductor ResearchCorp. andNationalScience Foundation under grantnumber MIP .