Extended IDL Help

This page was created by the IDL library routine mk_html_help. For more information on this routine, refer to the IDL Online Help Navigator or type:

     ? mk_html_help

at the IDL command line prompt.

Last modified: Mon Jun 2 14:08:48 1997.


List of Routines


Routine Descriptions

BOX_CURSOR[1]

[Next Routine] [List of Routines]
 NAME:
	BOX_CURSOR

 PURPOSE:
	Emulate the operation of a variable-sized box cursor (also known as
	a "marquee" selector).

 CATEGORY:
	Interactive graphics.

 CALLING SEQUENCE:
	BOX_CURSOR, x0, y0, nx, ny [, INIT = init] [, FIXED_SIZE = fixed_size]

 INPUTS:
	No required input parameters.

 OPTIONAL INPUT PARAMETERS:
	x0, y0, nx, and ny give the initial location (x0, y0) and 
	size (nx, ny) of the box if the keyword INIT is set.  Otherwise, the 
	box is initially drawn in the center of the screen.

 KEYWORD PARAMETERS:
	INIT:  If this keyword is set, x0, y0, nx, and ny contain the initial
	parameters for the box.

	FIXED_SIZE:  If this keyword is set, nx and ny contain the initial
	size of the box.  This size may not be changed by the user.

	MESSAGE:  If this keyword is set, print a short message describing
	operation of the cursor.

 OUTPUTS:
	x0:  X value of lower left corner of box.
	y0:  Y value of lower left corner of box.
	nx:  width of box in pixels.
	ny:  height of box in pixels. 

	The box is also constrained to lie entirely within the window.

 COMMON BLOCKS:
	None.

 SIDE EFFECTS:
	A box is drawn in the currently active window.  It is erased
	on exit.

 RESTRICTIONS:
	Works only with window system drivers.

 PROCEDURE:
	The graphics function is set to 6 for eXclusive OR.  This
	allows the box to be drawn and erased without disturbing the
	contents of the window.

	Operation is as follows:
	Left mouse button:   Move the box by dragging.
	Middle mouse button: Resize the box by dragging.  The corner
		nearest the initial mouse position is moved.
	Right mouse button:  Exit this procedure, returning the 
			     current box parameters.

 MODIFICATION HISTORY:
	DMS, April, 1990.
	DMS, April, 1992.  Made dragging more intutitive.
	June, 1993 - Bill Thompson
			prevented the box from having a negative size.
       04-18-96   bkc  Made the box color more visible.

(See catcher_v1.pro)


BOX_CURSOR[2]

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
	BOX_CURSOR

 PURPOSE:
	Emulate the operation of a variable-sized box cursor (also known as
	a "marquee" selector).

 CATEGORY:
	Interactive graphics.

 CALLING SEQUENCE:
	BOX_CURSOR, x0, y0, nx, ny [, INIT = init] [, FIXED_SIZE = fixed_size]

 INPUTS:
	No required input parameters.

 OPTIONAL INPUT PARAMETERS:
	x0, y0, nx, and ny give the initial location (x0, y0) and 
	size (nx, ny) of the box if the keyword INIT is set.  Otherwise, the 
	box is initially drawn in the center of the screen.

 KEYWORD PARAMETERS:
	INIT:  If this keyword is set, x0, y0, nx, and ny contain the initial
	parameters for the box.

	FIXED_SIZE:  If this keyword is set, nx and ny contain the initial
	size of the box.  This size may not be changed by the user.

	MESSAGE:  If this keyword is set, print a short message describing
	operation of the cursor.

 OUTPUTS:
	x0:  X value of lower left corner of box.
	y0:  Y value of lower left corner of box.
	nx:  width of box in pixels.
	ny:  height of box in pixels. 

	The box is also constrained to lie entirely within the window.

 COMMON BLOCKS:
	None.

 SIDE EFFECTS:
	A box is drawn in the currently active window.  It is erased
	on exit.

 RESTRICTIONS:
	Works only with window system drivers.

 PROCEDURE:
	The graphics function is set to 6 for eXclusive OR.  This
	allows the box to be drawn and erased without disturbing the
	contents of the window.

	Operation is as follows:
	Left mouse button:   Move the box by dragging.
	Middle mouse button: Resize the box by dragging.  The corner
		nearest the initial mouse position is moved.
	Right mouse button:  Exit this procedure, returning the 
			     current box parameters.

 MODIFICATION HISTORY:
	DMS, April, 1990.
	DMS, April, 1992.  Made dragging more intutitive.
	June, 1993 - Bill Thompson
			prevented the box from having a negative size.
       04-18-96   bkc  Made the box color more visible.

(See view1d.pro)


CATCHER_V1

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
	CATCHER_V1

 PURPOSE:
       EPICS 3.12.2 Scan record data acquistion tool.

       This program provides the EPICS user a convenient IDL data 
       acquistion tool.  It calls the IDL external CA functions which 
       are defined in the ezcaIDL package. 

       Currently, this program can capture both 1D and 2D scan data
       through setting monitor on the EPICS scan record. During data
       acquisition it also provides real-time plotting. Post acquisition
       it also provides primitive 1D and 2D post data plot and analysis. 
       Each scan record can support up-to four positioners and fifteen
       detectors."

 CATEGORY:
	Widgets. 

 CALLING SEQUENCE:
	CATCHER_V1 

 INPUTS:
	None

 KEYWORD PARAMETERS:
     CONFIG:   Specifies the configuration file to be saved when data
               catcher is normally terminated. If not specified, the 
               default configuration file name 'catch1d.config' is 
               assumed.
     DATA:     Specifies the data file name to be used for appending 
               new captured scan data. If not specified, the default 
               data file name 'catch1d.trashcan' is assumed.
     ENVFILE:  Specifies the environment (process variables) file to
               be saved with the captured scan data. If not specified,
               the default environment file name 'catch1d.env' is 
               assumed.
     NOSAVE:   Turns off the autosave feature. If it is specified, the
               data catcher will be able to display the life data but
               data will not be recorded.
     VIEWONLY: Runs the data catcher as a scan data browser. If it is 
               specified, it can only display the recorded scan data 
               from a saved data file. 
     GROUP:    The widget ID of the group leader of the widget.  If this 
               keyword is specified, the death of the group leader results in
               the death of CATCHER_V1.

 OUTPUTS:
       It provides realtime plot and various post acquistion 1D and
       2D surface plot. In addition of DATA file is saved, if 2D scan 
       is detected the DATA.image file will also be saved at the end 
       of 2D scan. Various levels of report files can also be generated 
       by this program.  All the file generated will be prefixed by the 
       DATA file name.

 COMMON BLOCKS:
       CATCH1D_COM
       W_PLOTSPEC_BLOCK
       W_VIEWSCAN_BLOCK
       REALTIME_BLOCK 
       ENV_FIELD_BLOCK
       FIELD_BLOCK

 SIDE EFFECTS:
       It is capable to detect scan invoked by outside channel access
       client.

 RESTRICTIONS:
       Supports EPICS 3.12.2 and later scan record.

 PROCEDURE:
       For live data acquisition: boot the IOC first, setup and initialize
       the scan records, setup the run ezcaIDL environment, run IDL,
       then start up the data catcher at the IDL prompt. 
       
       A simplified UNIX script file catcher can be used for starting up 
       this program. For help on catcher enter "catcher -h" at the UNIX
       prompt.

 EXAMPLE:
       Use default setting for config, envfile, and data file

       CATCHER_V1

       Override the default setting for config, envfile, and data file, 
       the 'test' is used for this example.

       CATCHER_V1, CONFIG='test.config', ENVFILE='test.env', DATA='test.dat'

 MODIFICATION HISTORY:
       Written by:	Ben-chin Cha, 02-27-96.

       04-16-96  bkc  - Reduce the data catcher window size by moving scan 
                        pvname entries to a pop up setup window 
                      - Realtime trend plot against the real time axis is 
                        implemented
                      - Realtime plot also displays the scan record name
                      - Fix various miscellaneous replot bugs
                      - Add option of accessing HTML documents on help menu 

       04-29-96 bkc   - Modified pv status, main window manager, release
                        note 1.4
       09-30-96 bkc   - Implemented more new features, dialog windows, 
                        exceptional catches, check for non saved scan
                        data, improve the efficiency, release note 1.5.1 
                        etc...
       11-07-96 bkc   - Monitor positioner readback name, debug option,
                        various realtime plot option
       12-13-96 bkc   - Modifying index file updating, aborting 2D scan,
                        image file location, report location

(See catcher_v1.pro)


CW_TERM.PRO[1]

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
	cw_term.pro

 PURPOSE:
      writtable text window widget

 CATEGORY:
	Compound widgets.

 CALLING SEQUENCE:
	widget_id = CW_TERM(parent)

 INPUTS:
       PARENT - The ID of the parent widget.

 KEYWORD PARAMETERS:
	BGROUP_NAMES:	An array of strings to be associated with
			each button and returned in the event structure as VALUE.
	BGEVENT_FUNCT:	The name of an user-supplied event function 
			for the buttons. This function is called with the return
			value structure whenever a button is pressed, and 
			follows the conventions for user-written event
			functions.
	FONT:		The name of the font to be used for the text output 
			If this keyword is not specified, the default
			font is used.
	FRAME:		Specifies the width of the frame to be drawn around
			the base.
       FILENAME:       Copy contents of file into widget
       RESET:          Clear existing widget contents and write new value/file.
                       The parent widget is the existing widget id. 
	MAP:		If set, the base will be mapped when the widget
			is realized (the default).
	SCROLL:		If set, the base will include scroll bars to allow
			viewing a large text area through a smaller viewport.
	SET_VALUE:	The initial value of the text widget. This is equivalent
			to the later statement:

			WIDGET_CONTROL, widget, set_value=value

       TITLE:          New Window title
	UVALUE:         The user value for the compound widget

	XSIZE:		The width of the text widget
	YSIZE:		The height of the text widget

 OUTPUTS:
       The ID of the created widget is returned.

 COMMON BLOCKS:
	None.

 SIDE EFFECTS:

 PROCEDURE:
	WIDGET_CONTROL, id, SET_VALUE=value can be used to change the
		current value displayed by the widget.

	WIDGET_CONTROL, id, GET_VALUE=var can be used to obtain the current
		value displayed by the widget.

 MODIFICATION HISTORY:
  01  8-9-95  jps  	modified from idl's cw_tmpl.pro

(See catcher_v1.pro)


CW_TERM.PRO[2]

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
	cw_term.pro

 PURPOSE:
      writtable text window widget

 CATEGORY:
	Compound widgets.

 CALLING SEQUENCE:
	widget_id = CW_TERM(parent)

 INPUTS:
       PARENT - The ID of the parent widget.

 KEYWORD PARAMETERS:
	BGROUP_NAMES:	An array of strings to be associated with
			each button and returned in the event structure as VALUE.
	BGEVENT_FUNCT:	The name of an user-supplied event function 
			for the buttons. This function is called with the return
			value structure whenever a button is pressed, and 
			follows the conventions for user-written event
			functions.
	FONT:		The name of the font to be used for the text output 
			If this keyword is not specified, the default
			font is used.
	FRAME:		Specifies the width of the frame to be drawn around
			the base.
       FILENAME:       Copy contents of file into widget
       RESET:          Clear existing widget contents and write new value/file.
                       The parent widget is the existing widget id. 
	MAP:		If set, the base will be mapped when the widget
			is realized (the default).
	SCROLL:		If set, the base will include scroll bars to allow
			viewing a large text area through a smaller viewport.
	SET_VALUE:	The initial value of the text widget. This is equivalent
			to the later statement:

			WIDGET_CONTROL, widget, set_value=value

       TITLE:          New Window title
	UVALUE:         The user value for the compound widget

	XSIZE:		The width of the text widget
	YSIZE:		The height of the text widget

 OUTPUTS:
       The ID of the created widget is returned.

 COMMON BLOCKS:
	None.

 SIDE EFFECTS:

 PROCEDURE:
	WIDGET_CONTROL, id, SET_VALUE=value can be used to change the
		current value displayed by the widget.

	WIDGET_CONTROL, id, GET_VALUE=var can be used to obtain the current
		value displayed by the widget.

 MODIFICATION HISTORY:
  01  8-9-95  jps  	modified from idl's cw_tmpl.pro

(See view1d.pro)


CW_TERM.PRO[2]

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
	cw_term.pro

 PURPOSE:
      writtable text window widget

 CATEGORY:
	Compound widgets.

 CALLING SEQUENCE:
	widget_id = CW_TERM(parent)

 INPUTS:
       PARENT - The ID of the parent widget.

 KEYWORD PARAMETERS:
	BGROUP_NAMES:	An array of strings to be associated with
			each button and returned in the event structure as VALUE.
	BGEVENT_FUNCT:	The name of an user-supplied event function 
			for the buttons. This function is called with the return
			value structure whenever a button is pressed, and 
			follows the conventions for user-written event
			functions.
	FONT:		The name of the font to be used for the text output 
			If this keyword is not specified, the default
			font is used.
	FRAME:		Specifies the width of the frame to be drawn around
			the base.
       FILENAME:       Copy contents of file into widget
       RESET:          Clear existing widget contents and write new value/file.
                       The parent widget is the existing widget id. 
	MAP:		If set, the base will be mapped when the widget
			is realized (the default).
	SCROLL:		If set, the base will include scroll bars to allow
			viewing a large text area through a smaller viewport.
	SET_VALUE:	The initial value of the text widget. This is equivalent
			to the later statement:

			WIDGET_CONTROL, widget, set_value=value

       TITLE:          New Window title
	UVALUE:         The user value for the compound widget

	XSIZE:		The width of the text widget
	YSIZE:		The height of the text widget

 OUTPUTS:
       The ID of the created widget is returned.

 COMMON BLOCKS:
	None.

 SIDE EFFECTS:

 PROCEDURE:
	WIDGET_CONTROL, id, SET_VALUE=value can be used to change the
		current value displayed by the widget.

	WIDGET_CONTROL, id, GET_VALUE=var can be used to obtain the current
		value displayed by the widget.

 MODIFICATION HISTORY:
  01  8-9-95  jps  	modified from idl's cw_tmpl.pro

(See view2d.pro)


PLOT1D

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
	PLOT1D

 PURPOSE:
       This routine provides a general purpose flexible cartesion plot
       package.  It provides simple to use automatic feature of fline style, 
       thickness, symbols, and color options in plot.

       The window generated by this routine will be resizable by the 
       window manager. 

       Depress the 'Print' button will generate a postscript copy of the
       graph.

       Normally it accepts two parameters X and Y. If the first parameter
       is not used then the data array is plotted on the ordinate versus 
       the point number on the abscissa.  Multiple curves (or variables) 
       can be stacked into the second parameter as a two dimensional array, 
       the first dimension gives the number of data points in each curve,
       the second dimension gives the number of curves to be plotted.
  

 CATEGORY:
	Widgets.

 CALLING SEQUENCE:

	PLOT1D, [X,] Y [, ID_TLB, ID_DRAW]

 INPUTS:
       X:      The vector array for X abscissa.

       Y:      The Y data array for curve plot. The Y array can contain
               more than one curve, the first dimension gives the number
               of data to be plotted for the curve, the second dimension
               gives the number of curves to be plotted.
	
 KEYWORD PARAMETERS:
       TITLE:  Set this keyword to specify the plot title string.

       XTITLE: Set this keyword to specify the xtitle string.

       YTITLE: Set this keyword to specify the ytitle string.

       COLOR:  Set this keyword to specify the color number used
               in the plot routine.

       SYMBOL: Set this keyword to specify data plotted as symbol, set to -1
               data plot as symbol and connected with line.

       XLOG:   Set this keyword to specify a logrithmic X axis.

       YLOG:   Set this keyword to specify a logrithmic Y axis.

       XRANGE: Set this keyword to specify the desired data range for 
               the X axis.

       YRANGE: Set this keyword to specify the desired data range for 
               the Y axis.

       XMARGIN: Set this keyword to specify the left and right margin, 
                default xmargin=[10,3]

       YMARGIN: Set this keyword to specify the bottom and top margin 
                default ymargin=[5,3]

       THICK:  Set this keyword to specify the line thickness for the
               axes and the line plot. 

       LINESTYLE:  Set this keyword to turn on different line style used. 

       XSTYLE:  Set this keyword to control x axis in IDL plot routine. 

       YSTYLE:  Set this keyword to control y axis in IDL plot routine. 

       LEGEND:  Set the legend strings corresponding to curves drawn.

       XYLEGEND: Set the x,y location of the legend strings, % from the
                 lower left corner from the graph window, default 
                 xylegend=[0.75, 0.35].

       COMMENT:  Set this keyword to write any footnotes on the graph.

       STAMP:  Set this keyword to put the time stamp and user ID on the page. 

       WTITLE: Set this keyword to specify the window title string,
               default to 'Plot1d'.

       WIDTH:  The initial window width at the creation time, which 
               default to 350 pixel.
  
       HEIGHT: The initial window height at the creation time, which 
               default to 350 pixel.

       GROUP:  The widget ID of the group leader of the widget. If this
               keyword is specified, the death of the group leader results 
               in the death of PLOT1D.

       BUTTON: Set this keyword if no print and close buttons are desired
               for the PLOT1D widget.

       CLEANUP: Set this keyword if the created window can no be closed by the
                window manager is desired.

 OPTIONAL_OUTPUTS:
       ID_TLB: The widget ID of the top level base returned by the PLOT1D. 

       ID_DRAW: The widget ID of the drawing area used by the PLOT1D. 

 COMMON BLOCKS:
       None.

 SIDE EFFECTS:
       If more than one curves are stored in the Y array, it automatically
       uses different color for each curve. If the color keyword is set
       by the user, then the specified color will be used for the whole plot. 

 RESTRICTIONS:
       It is assumed that the X position array is the same for multiple
       curve plot. 

 EXAMPLES:
       Create a resizable line plot without any title or label 
       specification.

           x = !pi * indgen(100)/25
           PLOT1D, x, sin(x)

       Create a resizable line plot with title specifications. 

           PLOT1D, x, sin(x), title='title', xtitle='xtitle', ytitle='ytitle'

       Plot two curves with different linestyle and legend at default location.

           x=indgen(100)
           y=make_array(100,2)
           y(0,0)=sin(x * !pi / 50)
           y(0,1)=cos(x * !pi / 50)
           PLOT1D,x,y,legend=['line1','line2'],/linestyle

       Same as the above example plus symbol and a specified legend location.

           x=indgen(100)
           y=make_array(100,2)
           y(0,0)=sin(x * !pi / 50)
           y(0,1)=cos(x * !pi / 50)
           PLOT1D,x,y,/linestyle,symbol=-1, $
              legend=['line1','line2'], xylegend=[0.5,0.9]

       Plot x,y array plus two lines of comment and a time stamp on the graph.
     
           PLOT1D,x,y,comment=['Comment line1','Comment line2'],/stamp

 MODIFICATION HISTORY:
       Written by:     Ben-chin Cha, Mar. 7, 1996.

       04-26-96    Add the window cleanup keyword 
       10-28-96    Add the xstyle and ystyle keywords 

(See plot1d.pro)


U_READ[1]

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       U_READ

 PURPOSE:
       This routine reads an unformatted data entity from a file unit which is
       opened for unformatted read. It supports all IDL data type except the
       complex number and up to 2D array.  

 CALLING SEQUENCE:

       U_READ, Unit, Var, /Help

 INPUTS:
       Unit:   The logic unit number returned by file open for unformatted
               read.
	
 KEYWORD PARAMETERS:
       HELP:   If this keyword is set, a simple on line help is given.

 OUTPUTS:
       Var:    This variable holds the right type of data obtained from 
               the opened file, it can be either 1D vector, or 2D array.

 RESTRICTIONS:
       All the data must be created by the U_WRITE routine in order to be 
       read by this routine.

 EXAMPLE:

       Read the first data entity from the 'test.dat' which was previously
       created by the U_WRITE routine.

         u_openr,unit,'test.dat'
         u_read, unit, X
         u_close,unit

 MODIFICATION HISTORY:
       Written by:	Ben-chin Cha, 03-23-95.

       05-30-97	bkc	Support opened file as XDR type data.

(See catcher_v1.pro)


U_READ[2]

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       U_READ

 PURPOSE:
       This routine reads an unformatted data entity from a file unit which is
       opened for unformatted read. It supports all IDL data type except the
       complex number and up to 2D array.  

 CALLING SEQUENCE:

       U_READ, Unit, Var, /Help

 INPUTS:
       Unit:   The logic unit number returned by file open for unformatted
               read.
	
 KEYWORD PARAMETERS:
       HELP:   If this keyword is set, a simple on line help is given.

 OUTPUTS:
       Var:    This variable holds the right type of data obtained from 
               the opened file, it can be either 1D vector, or 2D array.

 RESTRICTIONS:
       All the data must be created by the U_WRITE routine in order to be 
       read by this routine.

 EXAMPLE:

       Read the first data entity from the 'test.dat' which was previously
       created by the U_WRITE routine.

         u_openr,unit,'test.dat'
         u_read, unit, X
         u_close,unit

 MODIFICATION HISTORY:
       Written by:	Ben-chin Cha, 03-23-95.

       05-30-97	bkc	Support opened file as XDR type data.

(See view2d.pro)


U_READ[2]

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       U_READ

 PURPOSE:
       This routine reads an unformatted data entity from a file unit which is
       opened for unformatted read. It supports all IDL data type except the
       complex number and up to 2D array.  

 CALLING SEQUENCE:

       U_READ, Unit, Var, /Help

 INPUTS:
       Unit:   The logic unit number returned by file open for unformatted
               read.
	
 KEYWORD PARAMETERS:
       HELP:   If this keyword is set, a simple on line help is given.

 OUTPUTS:
       Var:    This variable holds the right type of data obtained from 
               the opened file, it can be either 1D vector, or 2D array.

 RESTRICTIONS:
       All the data must be created by the U_WRITE routine in order to be 
       read by this routine.

 EXAMPLE:

       Read the first data entity from the 'test.dat' which was previously
       created by the U_WRITE routine.

         u_openr,unit,'test.dat'
         u_read, unit, X
         u_close,unit

 MODIFICATION HISTORY:
       Written by:	Ben-chin Cha, 03-23-95.

(See view1d.pro)


U_WRITE[1]

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       U_WRITE

 PURPOSE:
       This routine writes an IDL data array to a file unit which is
       opened for unformatted write. It supports all IDL data type except the
       complex number and up to 2D array.  

 CALLING SEQUENCE:

       U_WRITE, Unit, Var, /Help

 INPUTS:
       Unit:   The logic unit number returned by file open for unformatted
               write.

       Var:    This variable holds the data  array to be written to
               the opened file, it can be scaler, vector, or 2D array.
	
 KEYWORD PARAMETERS:
       HELP:   If this keyword is set, a simple on line help is given.


 RESTRICTIONS:
       The data array can not be complex number. In order to make the
       data to be read by the U_READ routine, all the data saved must 
       be using this routine. 

 EXAMPLE:

       Create the 'test.dat'  and write the variable X to the file

         u_openw,unit,'test.dat'
         u_write, unit, X
         u_close,unit

       Create or append X to the 'test.dat'  

         u_openw,unit,'test.dat',/append
         u_write, unit, X
         u_close,unit

       Create XDR platform independent data to the 'test.dat'  

         u_openw,unit,/XDR,'test.dat'
         u_write, unit, X
         u_close,unit

 MODIFICATION HISTORY:
       Written by:	Ben-chin Cha, 03-23-95.

       05-30-97	bkc	Support opened file as XDR type data.

(See catcher_v1.pro)


U_WRITE[2]

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       U_WRITE

 PURPOSE:
       This routine writes an IDL data array to a file unit which is
       opened for unformatted write. It supports all IDL data type except the
       complex number and up to 2D array.  

 CALLING SEQUENCE:

       U_WRITE, Unit, Var, /Help

 INPUTS:
       Unit:   The logic unit number returned by file open for unformatted
               write.

       Var:    This variable holds the data  array to be written to
               the opened file, it can be scaler, vector, or 2D array.
	
 KEYWORD PARAMETERS:
       HELP:   If this keyword is set, a simple on line help is given.


 RESTRICTIONS:
       The data array can not be complex number. In order to make the
       data to be read by the U_READ routine, all the data saved must 
       be using this routine. 

 EXAMPLE:

       Create the 'test.dat'  and write the variable X to the file

         u_openw,unit,'test.dat'
         u_write, unit, X
         u_close,unit

       Create or append X to the 'test.dat'  

         u_openw,unit,'test.dat',/append
         u_write, unit, X
         u_close,unit

 MODIFICATION HISTORY:
       Written by:	Ben-chin Cha, 03-23-95.

(See view1d.pro)


U_WRITE[2]

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       U_WRITE

 PURPOSE:
       This routine writes an IDL data array to a file unit which is
       opened for unformatted write. It supports all IDL data type except the
       complex number and up to 2D array.  

 CALLING SEQUENCE:

       U_WRITE, Unit, Var, /Help

 INPUTS:
       Unit:   The logic unit number returned by file open for unformatted
               write.

       Var:    This variable holds the data  array to be written to
               the opened file, it can be scaler, vector, or 2D array.
	
 KEYWORD PARAMETERS:
       HELP:   If this keyword is set, a simple on line help is given.


 RESTRICTIONS:
       The data array can not be complex number. In order to make the
       data to be read by the U_READ routine, all the data saved must 
       be using this routine. 

 EXAMPLE:

       Create the 'test.dat'  and write the variable X to the file

         u_openw,unit,'test.dat'
         u_write, unit, X
         u_close,unit

       Create or append X to the 'test.dat'  

         u_openw,unit,'test.dat',/append
         u_write, unit, X
         u_close,unit

       Create XDR platform independent data to the 'test.dat'  

         u_openw,unit,/XDR,'test.dat'
         u_write, unit, X
         u_close,unit

 MODIFICATION HISTORY:
       Written by:	Ben-chin Cha, 03-23-95.

       05-30-97	bkc	Support opened file as XDR type data.

(See view2d.pro)


VIEW1D

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       VIEW1D	

 PURPOSE:

       This program is specially written for the data catcher. It
       provides the IDL user a convenient post data acquisition
       1D data display program. It shares the common data file
       with data catcher without interrupt the process of data
       scanning of data catcher.

 CATEGORY:
	Widgets. 

 CALLING SEQUENCE:
	VIEW1D 

 INPUTS:
	None

 KEYWORD PARAMETERS:
     CONFIG:   Specifies the configuration file to be saved when data
               catcher is normally terminated. If not specified, the 
               default configuration file name 'catch1d.config' is 
               assumed.
     DATA:     Specifies the data file name to be used for appending 
               new captured scan data. If not specified, the default 
               data file name 'catch1d.trashcan' is assumed.
     GROUP:    The widget ID of the group leader of the widget.  If this 
               keyword is specified, the death of the group leader results in
               the death of VIEW1D.

 OUTPUTS:
       It provides various post acquistion 1D scan plot. 
       Various levels of report files can also be generated 
       by this program.  All the file generated will be prefixed by the 
       DATA file name.

 COMMON BLOCKS:
       VIEW1D_COM
       W_PLOTSPEC_BLOCK
       W_VIEWSCAN_BLOCK

 SIDE EFFECTS:
       New data may be appended to the end of data file, if new scan
       is detected by the data catcher. Reload the data file will
       update the available scans of the file.

 RESTRICTIONS:

 PROCEDURE:
       A simplified UNIX script file catcher_V1d can be used for starting up 
       this program. For help enter "catcher_Vid -h" at the UNIX
       prompt.

 EXAMPLE:
       Use default setting for config, and data file

       VIEW1D

       Override the default setting for config, and data file, 
       the 'test' is used for this example.

       VIEW1D, CONFIG='test.config', DATA='test.dat'

 MODIFICATION HISTORY:
       Written by:	Ben-chin Cha, 05-27-97.

       12-13-96 bkc   - 

(See view1d.pro)


VIEW2D

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       VIEW2D	

 PURPOSE:
       This program provides the EPICS user a convenient IDL 2D scan data 
       display tool.  Its input image file is automatically saved by the  
       data catcher program CATCHER_V1. 

       Currently, this program provides TV, SURFACE, CONTOUR, SHOW3, and 
       XSURFACE plot. It also provides simple xz, yz line plot and data
       value query information.

 CATEGORY:
	Widgets. 

 CALLING SEQUENCE:
	VIEW2D

 INPUTS:
       None.	

 KEYWORD PARAMETERS:
     GROUP:    The widget ID of the group leader of the widget.  If this 
               keyword is specified, the death of the group leader results in
               the death of VIEW2D.

     FILE:    The input image file name.  If this keyword is specified, the
              file should contain the image data must be in the data catcher
              created format. 
          
 OUTPUTS:
       It provides option of postscript plot of drawing area.

 COMMON BLOCKS:
       None.

 RESTRICTIONS:
	Drawing area is 400 x 400 pixels.

 PROCEDURE:
       This program is available as an epics/extensions tool. It can be
       directly accessed from the view data menu of the CATCHER_V1.  
 
 EXAMPLE:
       VIEW2D

 MODIFICATION HISTORY:
       Written by:	Ben-chin Cha, 02-27-96.
       04-29-96      Add image button, 2d scan #, on-line help      	
       09-30-96      Add cross hair to reflect the cursor position      	
       11-21-96      Text window image out include x,y array vales     	
		      Option of save and load private color map
                     Take care out of sync 2D scan #
                     Modify XZ, YZ profile distributions
       12-13-96      Add zoom-in, zoom-off, printer support,
                     color PS plot, rewrite TV, equal aspect TV
                     ratio, reverse PS video, cursor features, etc
       04-11-97      Call the MAX function to give the max location

(See view2d.pro)


XDISPLAYFILE[1]

[Previous Routine] [Next Routine] [List of Routines]
 NAME: 
	XDISPLAYFILE

 PURPOSE:
	Display an ASCII text file using widgets and the widget manager.

 CATEGORY:
	Widgets.

 CALLING SEQUENCE:
	XDISPLAYFILE, Filename

 INPUTS:
     Filename:	A scalar string that contains the filename of the file
		to display.  The filename can include a path to that file.

 KEYWORD PARAMETERS:
	FONT:   The name of the font to use.  If omitted use the default
		font.
	GROUP:	The widget ID of the group leader of the widget.  If this 
		keyword is specified, the death of the group leader results in
		the death of XDISPLAYFILE.

	HEIGHT:	The number of text lines that the widget should display at one
		time.  If this keyword is not specified, 24 lines is the 
		default.

	TEXT:	A string or string array to be displayed in the widget
		instead of the contents of a file.  This keyword supercedes
		the FILENAME input parameter.

	TITLE:	A string to use as the widget title rather than the file name 
		or "XDisplayFile".

	WIDTH:	The number of characters wide the widget should be.  If this
		keyword is not specified, 80 characters is the default.

 OUTPUTS:
	No explicit outputs.  A file viewing widget is created.

 SIDE EFFECTS:
	Triggers the XMANAGER if it is not already in use.

 RESTRICTIONS:
	None.

 PROCEDURE:
	Open a file and create a widget to display its contents.

 MODIFICATION HISTORY:
	Written By Steve Richards, December 1990
	Graceful error recovery, DMS, Feb, 1992.
       12 Jan. 1994  - KDB
               If file was empty, program would crash. Fixed.
       4 Oct. 1994     MLR Fixed bug if /TEXT was present and /TITLE was not.
      14 Jul. 1995     BKC Increased the max line to variable size.

(See catcher_v1.pro)


XDISPLAYFILE[2]

[Previous Routine] [Next Routine] [List of Routines]
 NAME: 
	XDISPLAYFILE

 PURPOSE:
	Display an ASCII text file using widgets and the widget manager.

 CATEGORY:
	Widgets.

 CALLING SEQUENCE:
	XDISPLAYFILE, Filename

 INPUTS:
     Filename:	A scalar string that contains the filename of the file
		to display.  The filename can include a path to that file.

 KEYWORD PARAMETERS:
	FONT:   The name of the font to use.  If omitted use the default
		font.
	GROUP:	The widget ID of the group leader of the widget.  If this 
		keyword is specified, the death of the group leader results in
		the death of XDISPLAYFILE.

	HEIGHT:	The number of text lines that the widget should display at one
		time.  If this keyword is not specified, 24 lines is the 
		default.

	TEXT:	A string or string array to be displayed in the widget
		instead of the contents of a file.  This keyword supercedes
		the FILENAME input parameter.

	TITLE:	A string to use as the widget title rather than the file name 
		or "XDisplayFile".

	WIDTH:	The number of characters wide the widget should be.  If this
		keyword is not specified, 80 characters is the default.

 OUTPUTS:
	No explicit outputs.  A file viewing widget is created.

 SIDE EFFECTS:
	Triggers the XMANAGER if it is not already in use.

 RESTRICTIONS:
	None.

 PROCEDURE:
	Open a file and create a widget to display its contents.

 MODIFICATION HISTORY:
	Written By Steve Richards, December 1990
	Graceful error recovery, DMS, Feb, 1992.
       12 Jan. 1994  - KDB
               If file was empty, program would crash. Fixed.
       4 Oct. 1994     MLR Fixed bug if /TEXT was present and /TITLE was not.
      14 Jul. 1995     BKC Increased the max line to variable size.

(See view1d.pro)


XSURFACE

[Previous Routine] [List of Routines]
 NAME:
	XSURFACE

 PURPOSE:
	This routine provides a graphical interface to the SURFACE and
	SHADE_SURFACE commands.  Different controls are provided to change 
	the viewing angle and other plot parameters.  The command used to 
	generate the resulting surface plot is shown in a text window.

 CATEGORY:
	Widgets.

 CALLING SEQUENCE:
	XSURFACE, Data

 INPUT PARAMETERS:
	Data:	The two-dimensional array to display as a wire-mesh or
		shaded surface.

 KEYWORD PARAMETERS:
	GROUP:	The widget ID of the widget that calls XSURFACE.  When this
		keyword is specified, the death of the caller results in the
		death of XSURFACE.

 SIDE EFFECTS:
	The XMANAGER is initiated if it is not already running.

 RESTRICTIONS:
	XSURFACE does not accept any of the keywords that the IDL command 
	SURFACE does.

 PROCEDURE:
	Create and register the widget with the XMANAGER and then exit.

 MODIFICATION HISTORY:
	Created from a template written by: Steve Richards, January, 1991.
       02-12-96   BKC  Modify the Xsurface, returned the base widget ID,
			which provides a handle for the calling program
			and such that can be managed by the calling program

(See view2d.pro)