41 lines
2.8 KiB
HTML
41 lines
2.8 KiB
HTML
<html>
|
|
<head>
|
|
<title> Macro Commands </title>
|
|
</head>
|
|
<body>
|
|
<h2>Macro Commands</h2>
|
|
<p>
|
|
SICS has a built in macro facility. This macro facility is aimed at instrument managers and users alike. Instrument managers may provide customised measurement procedures in this language, users may write batch files in this language. The macro language is John Ousterhout's Tool Command Language (TCL). Tcl has control constructs, variables of its own, loop constructs, associative arrays and procedures. Tcl is well documented by several books and online tutorials, therefore no details on Tcl will be given here. All SICS commands are available in the macro language. Some potentially harmful Tcl commands have been deleted from the standard Tcl interpreter. These are: exec, source, puts, vwait, exit,gets and socket. A macro or batch file can be executed with the command:</p>
|
|
<p>
|
|
<b> fileeval <i>name</i> </b> tries to open the file name and executes the script in this file. </p>
|
|
Then there are some special commands which can be used within macro-sripts:
|
|
<p>
|
|
<b> ClientPut sometext1 ... </b> writes everything after ClientPut to
|
|
the client which started the script. This is needed as SICS supresses
|
|
the output from intermediate commands in scripts. Except error
|
|
messages and warnings. With clientput this scheme can be circumvented
|
|
and data be printed from within scripts.</p>
|
|
<p>
|
|
<b> SICSType object </b> allows to query the type of the object specified by object. Possible return values are<ul>
|
|
<li> <b> DRIV </b> if the object is a SICS drivable object such as a motor
|
|
<li> <b> COUNT </b> if the object is some form of a counter.
|
|
<li> <b> COM </b> if the object is a SICS command.
|
|
<li> <b> NUM </b> if the object is a number.
|
|
<li> <b> TEXT </b> if object is something meaningless to SICS.
|
|
</ul>
|
|
</p>
|
|
<p>
|
|
<b> SICSbounds <i>var newval</i> </b> checks if the new value newval lies within the limits for variable var(example: SICSbounds D1HL 10). Returns an error or OK depending on the result of the test.</p>
|
|
<p>
|
|
<b> SICSStatus <i>var</i> </b> SICS devices such as counters or motor may be
|
|
started and left running while the program is free to do something
|
|
else. This command inquires the status of such a running device. Return values are internal SICS integer codes. This command is only of use for SICS programmers.</p>
|
|
<p>
|
|
<b> SetStatus <i>newval</i> </b> sets the SICS status to one of: Eager, UserWait, Count, NoBeam, Driving, Running, Scanning, Batch Hatl or Dead. This command is only available in macros.</p>
|
|
<p>
|
|
<b> SetInt <i>newval, GetInt</i> </b> sets SICS interrupts from macro scripts. Not recommended! Possible return values or new values are: continue, abortop, abortscan, abortbatch, halt, free, end. This command is only permitted in macros. Should only be used by SICS programmers.</p>
|
|
</body>
|
|
</html>
|
|
|
|
|