|
|
|
|
||
|
DEFINITION MODULE CAMonit; (******************************************************************* Module CAMonit (Version 1.0) Copyright (c) 1991-2006 by Thomas Nemecek and ETH Zurich. Purpose Monitor cellular automatons in windows and on files. Remarks The monitoring data structure is associated with the variable caMod and can be referenced with this variable. It is automatically removed if the variable caMod is removed. CAUTION: do not overwrite the remove procedure associated with caMod since this procedure is used to remove the monitoring data structure. Usage 1. declare the cellular automaton model with CAModBase.DeclCAMod 2. declare the CA-monitoring with CAMonit.DeclCAMonit 3. initialize the needed attributes with CAMonit.SetCALegendDescrs (graphical display and file output) and CAMonit.SetDisplayAttr 4a.For graphical display: - initialize the monitoring with CAMonit.InitCADisplay - use DisplayCA, DisplayCell and DisplayLegend for graphical monitoring 4b.For file output: - use DumpCA Limitations: A maximum of 128 states can be labelled and displayed. Programming o Design Thomas Nemecek 23/04/1991 o Implementation Thomas Nemecek 23/04/1991 ETH Zurich Systems Ecology CHN E 35.1 Universitaetstrasse 16 8092 Zurich SWITZERLAND URLs: <mailto:RAMSES@env.ethz.ch> <http://www.sysecol.ethz.ch> <http://www.sysecol.ethz.ch/SimSoftware/RAMSES> Last revision of definition: 21/05/2002 FG *******************************************************************) (*. FROM CAMonit IMPORT Str255,Str63,DeclCAMonit,GetCAMonit,RemoveCAMonit,InitCADisplay,TermCADisplay, SetCALegendDescrs,GetCALegendDescrs,SetDisplayAttr,GetDisplayAttr,DisplayCA, DisplayCell,DisplayLegend,SetTimeDisplay,GetTimeDisplay,DumpCA,CAMonitDeclared; .*) FROM CAModBase IMPORT CAMod; FROM DMFiles IMPORT TextFile; FROM DMWindows IMPORT Window, RectArea; FROM DMWindIO IMPORT Pattern, Color; TYPE Str255 = ARRAY [0..255] OF CHAR; Str63 = ARRAY [0..63] OF CHAR; (*******************************) (* Management of CA monitoring *) (*******************************) PROCEDURE DeclCAMonit (caMod: CAMod; title, subTitle: Str255); PROCEDURE GetCAMonit (caMod: CAMod; VAR title, subTitle: Str255); PROCEDURE RemoveCAMonit(caMod: CAMod); PROCEDURE CAMonitDeclared(caMod: CAMod): BOOLEAN; (*******************************) (* Management of CA display *) (*******************************) PROCEDURE InitCADisplay(caMod: CAMod; w: Window; caArea, legendArea: RectArea; withLines: BOOLEAN); (* prepares the window for output. The monitoring must be installed previously by call of DeclCAMonit *) PROCEDURE TermCADisplay(caMod: CAMod); (* Termination of window output, the CA-graph is cleared. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! The whole window is cleared in the current version! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! *) PROCEDURE SetCALegendDescrs (caMod: CAMod; legendDescrs: ARRAY OF Str63); PROCEDURE GetCALegendDescrs (caMod: CAMod; VAR legendDescrs: ARRAY OF Str63); (* assigns the descriptor strings of the different states, which are displayed at the right of the graph, resp. written after the data matrix on the file *) PROCEDURE SetDisplayAttr (caMod: CAMod; colors: ARRAY OF Color; patterns: ARRAY OF Pattern; symbols: ARRAY OF CHAR); PROCEDURE GetDisplayAttr (caMod: CAMod; VAR colors: ARRAY OF Color; VAR patterns: ARRAY OF Pattern; VAR symbols: ARRAY OF CHAR); PROCEDURE DisplayCA (caMod: CAMod; time: REAL); (* display of whole CA state, faster than subsequent calls of DisplayCell! *) PROCEDURE DisplayCell (caMod: CAMod; x,y: INTEGER; time: REAL); (* display of the state of a cell of the current CAMod. *) PROCEDURE DisplayLegend (caMod: CAMod); PROCEDURE SetTimeDisplay ( dispT: BOOLEAN); PROCEDURE GetTimeDisplay (VAR dispT: BOOLEAN); (* default is TRUE *) (*****************) (* File output *) (*****************) PROCEDURE DumpCA (caMod: CAMod; VAR f: TextFile; time: REAL; writeLegend, useStatsCond: BOOLEAN); (* writes the current state of the CA to the cuurent position on the file. If useStatsCond=TRUE, the current statistcs conditions from module CAModBase is used and only those states are written to the file, for which the current statistcs condition procedure yields the value TRUE. *) END CAMonit.
|
||
|
|
|