aps_wish is an APS version of wish which includes all the tcl/tk commands plus the EZCA channel access interface commands listed below.

It is assumed that the Sun4 operating system is used throughout this document. And the aps_wish was built as an EPICS extensions tool and it is installed under the /usr/local/epics/extensions/bin/sun4 directory.

The ezca channel access commands in aps_wish always return the appropriate or meaningful string for the command entered. This will minimize the intervene required from the user. In addition to the result string returned to the aps_wish each command also returns a return code which can be

TCL_OK or

TCL_ERROR.

A user always can use the TCL exception handling function catch to check the return code of each command. The catch command returns TCL_OK (i.e. 0) if the command execution succeeded, returns TCL_ERROR (i.e. 1) if the command execution failed.

Most of CA command returns a resultant string representation of the command execution. If the channel access failed, in the interactive mode the appropriate error message is displayed on the user terminal, in programming control mode a user can use the TCL exception handling function to catch the error.

This function can be used for setting the value for a single channel. If the record is an array record (nelem > 1), that is if a waveform record, the string value is put to the waveform record. The ca_pend_io is automatically called for the waveform record.

<pvname> - Required input, process variable name, can be a single channel or a list of channels.

<keyword> - Special keyword is only used for monitoring the waveform record. The valid keyword can be `HEX', `BINARY' or `DECIMAL' for waveform record. It defaults to decimal. The monitored value will be returned in either HEX, BINARY, or DECIMAL form. It is not recommended to monitor a very large waveform record instead use the get command.

Return - None

For each process variable monitored the name is added to the monitored list and the corresponding TCL global `Control' array element is set. The Control variable consists of four pieces of information VAL, STAT, SERV, and TSTAMP string.

If the waveform record is monitored, in addition of `Control' array element is set, a TCL global `WF' array element is also set for the process variable. It returns the current values detected in the waveform record.

E.g. if `chademoai1' is added to the monitored list, then the global variable `Control(chademoai1)' is set in aps_wish. Whenever a new value is set or put to the channel, the array element `Control(chademoai1)' reflects the new current value, status, severity, and time stamp string of the value.

To use the value from Control(pvname), a user must ensure that pvname is currently monitored.

[ In the above table 100 iterations were performed for waveform record, case marked with (*) double precision type is requested. As shown above requested the waveform record as native type is more efficient. Bigger array takes more time to get. Same array size, the time perfomance is propotional to the word size. ]