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: Thu Apr 18 11:52:38 2013.
NAME:
EPICS_MCA::ACQUIRE_OFF
PURPOSE:
This procedures turns off acquisition of the MCA.
CATEGORY:
EPICS device class library.
CALLING SEQUENCE:
epics_mca->ACQUIRE_OFF
INPUTS:
None
OUTPUTS:
None
EXAMPLE:
mca = obj_new('EPICS_MCA', '13IDC:mca1')
mca->ACQUIRE_OFF
MODIFICATION HISTORY:
Written by: Mark Rivers, October 1, 1997
19-Sep-1998 MLR Added /WAIT since that is now longer default
17-Mar-1999 MLR Removed /WAIT from caput, to be compatible with
version 4.3 and later of the MCA record, which does
not fire forward links until acquisition is complete.
(See epics_mca__define.pro)
NAME:
EPICS_MCA::ACQUIRE_ON
PURPOSE:
This procedures turns on acquisition of the MCA.
CATEGORY:
EPICS device class library.
CALLING SEQUENCE:
epics_mca->ACQUIRE_ON
INPUTS:
None
OUTPUTS:
None
EXAMPLE:
mca = obj_new('EPICS_MCA', '13IDC:mca1')
mca->ACQUIRE_ON
MODIFICATION HISTORY:
Written by: Mark Rivers, October 1, 1997
May 5, 1998: Mark Rivers, removed setting the acquisition start time
here, since the record now does that.
19-Sep-1998 MLR Added /WAIT since that is now longer default
17-Mar-1999 MLR Removed /WAIT from caput, to be compatible with
version 4.3 and later of the MCA record, which does
not fire forward links until acquisition is complete.
(See epics_mca__define.pro)
NAME:
EPICS_MCA::ACQUIRE_WAIT
PURPOSE:
This procedures waits for acquisition of the MCA to complete.
CATEGORY:
EPICS device class library.
CALLING SEQUENCE:
epics_mca->ACQUIRE_WAIT, Time
OPTIONAL INPUTS:
Time: The estimated acquisition time of the MCA.
KEYWORD_PARAMETERS:
START:
Set this flag to wait for acquisition to start.
STOP:
Set this flag to wait for acquisition to stop. This is the default.
If both the START and STOP keywords are given then the routine will wait
first for acquisition to start and then for acquistion to stop. If only
/START is given then it will not wait for acquisition to stop.
OUTPUTS:
None
PROCEDURE:
This routine simply polls to see if acquisition is complete using
EPICS_MCA::GET_ACQUIRE_STATUS(). If the optional Time input is
specified then the time between polling is Time/10. The default and
minimum time between polling is one second.
EXAMPLE:
mca = obj_new('EPICS_MCA', '13IDC:mca1')
mca->ACQUIRE_ON
MODIFICATION HISTORY:
Written by: Mark Rivers, October 1, 1997
MLR 18-APR-2001 Added START and STOP keywords
(See epics_mca__define.pro)
NAME:
EPICS_MCA::ADD_ROI
PURPOSE:
This function adds a new region-of-interest to the MCA.
CATEGORY:
EPICS device class library.
CALLING SEQUENCE:
epics_mca->ADD_ROI, roi
PROCEDURE:
This function invokes MCA::ADD_ROI and then calls EPICS_MCA::SET_ROIS
to write the new region-of-interest to the hardware the EPICS MCA
record.
ADDITIONAL INFORMATION:
See MCA::ADD_ROI.
MODIFICATION HISTORY:
Written by: Mark Rivers, October 1, 1997
23-Mar-1998 Mark Rivers. Changed input parameter to a structure
of type MCA_ROI from left, right, label, bgd_width
(See epics_mca__define.pro)
NAME:
EPICS_MCA::DEL_ROI
PURPOSE:
This function deletes a region-of-interest from the MCA.
CATEGORY:
EPICS device class library.
CALLING SEQUENCE:
epics_mca->DEL_ROI, Index
PROCEDURE:
This function invokes MCA::DEL_ROI and then calls EPICS_MCA::SET_ROIS
to write the new region-of-interest to the hardware the EPICS MCA
record.
ADDITIONAL INFORMATION:
See MCA::DEL_ROI.
MODIFICATION HISTORY:
Written by: Mark Rivers, October 1, 1997
23-Mar-1998 Mark Rivers. Modified input parameters to ROI index
from left, right.
(See epics_mca__define.pro)
NAME:
EPICS_MCA::ERASE
PURPOSE:
This procedures erases the MCA data, i.e. sets all channels to zero.
CATEGORY:
EPICS device class library.
CALLING SEQUENCE:
epics_mca->ERASE
INPUTS:
None
OUTPUTS:
None
PROCEDURE:
This procedure erases the MCA by sending the appropriate command
to the EPICS MCA record.
EXAMPLE:
mca = obj_new('EPICS_MCA', '13IDC:mca1')
mca->ERASE
MODIFICATION HISTORY:
Written by: Mark Rivers, October 1, 1997
May 5, 1998: Mark Rivers, removed setting the acquisition start time
here, since the record now does that.
19-Sep-1998 MLR Added /WAIT since that is now longer default
17-Mar-1999 MLR Removed /WAIT from caput, to be compatible with
version 4.3 and later of the MCA record, which does
not fire forward links until acquisition is complete.
(See epics_mca__define.pro)
NAME:
EPICS_MCA::GET_ACQUIRE_STATUS
PURPOSE:
This function returns the acquisition status for the MCA.
This is 1 if the MCA is acquiring and 0 if it is not acquiring.
CATEGORY:
EPICS device class library.
CALLING SEQUENCE:
Result = epics_mca->GET_ACQUIRE_STATUS()
KEYWORD PARAMETERS:
UPDATE:
Set this keyword to force the routine to process the record.
By default this routine does NOT process the record. The
acquire status returned will be the status when the record
was last processed.
CHECK_NEW:
A flag which indicates that this routine should only return
the acquire status if it has changed.
OPTIONAL OUTPUTS:
NEW_FLAG:
If CHECK_FLAG is set, then NEW_FLAG will be 1 if the function
is returning new acquire status, 0 if the function is not
returning new acquire status. If CHECK_FLAG is set and
NEW_FLAG is 0 then the function returns -1.
PROCEDURE:
This function reads the acquisition status from the hardware using
the EPICS MCA record, and then invokes MCA::GET_ACQUIRE_STATUS
ADDITIONAL INFORMATION:
See MCA::GET_ACQUIRE_STATUS().
RESTRICTIONS:
This routine does NOT force the record to process by default.
The status will not update unless the record is processed. This can
be done by setting the UPDATE keyword.
MODIFICATION HISTORY:
Written by: Mark Rivers, October 1, 1997
Nov. 14, 1997 Mark Rivers added UPDATE keyword, changed routine to not
process record by default.
19-Sep-1998 MLR Added /WAIT since that is now longer default
17-Mar-1999 MLR Removed /WAIT from caput, to be compatible with
version 4.3 and later of the MCA record, which does
not fire forward links until acquisition is complete.
15-Apr-1999 MLR Added CHECK_NEW and NEW_FLAG
(See epics_mca__define.pro)
NAME:
EPICS_MCA::GET_CALIBRATION
PURPOSE:
This function returns the calibration parameters for the MCA.
The calibration information is contained in a structure of type
MCA_CALIBRATION.
CATEGORY:
EPICS device class library.
CALLING SEQUENCE:
Result = epics_mca->GET_CALIBRATION()
PROCEDURE:
This function reads the calibration information from the hardware using
the EPICS MCA record, and then invokes MCA::GET_CALIBRATION
ADDITIONAL INFORMATION:
See MCA::GET_CALIBRATION().
MODIFICATION HISTORY:
Written by: Mark Rivers, October 1, 1997
19-Sep-1998 MLR Added caStartGroup, caEndGroup for efficiency
(See epics_mca__define.pro)
NAME:
EPICS_MCA::GET_DATA
PURPOSE:
This function returns the data from the MCA.
CATEGORY:
EPICS device class library.
CALLING SEQUENCE:
Result = epics_mca->GET_DATA()
KEYWORD_PARAMETERS:
CHECK_NEW:
A flag which indicates that this routine should only return
the data if it has changed.
OPTIONAL OUTPUTS:
NEW_FLAG:
If CHECK_FLAG is set, then NEW_FLAG will be 1 if the function
is returning new data, 0 if the function is not returning new
data. If CHECK_FLAG is set and NEW_FLAG is 0 then the function
returns -1.
PROCEDURE:
This function reads the data from the hardware using the EPICS MCA
record, and then invokes MCA::GET_DATA
ADDITIONAL INFORMATION:
See MCA::GET_DATA().
MODIFICATION HISTORY:
Written by: Mark Rivers, October 1, 1997
Nov. 14, 1997 Mark Rivers. Changed routine to eliminate setting
rec.READ back to 0, since record support does this
automatically and it was causing record to process
again.
19-Sep-1998 MLR Added /WAIT to caput, since default is not to wait
for callback now.
17-Mar-1999 MLR Removed /WAIT from caput, to be compatible with
version 4.3 and later of the MCA record, which does
not fire forward links until acquisition is complete.
28-Mar-1999 MLR Changed routine so it no longer pokes READ field.
This assumes that someone else (typically a database)
is periodically poking the READ field. The object
initialization code now sets a monitor on the VAL
field. Added New_flag output and CHECK_NEW keyword.
(See epics_mca__define.pro)
NAME:
EPICS_MCA::GET_ELAPSED
PURPOSE:
This function returns the elapsed parameters for the MCA.
The elapsed information is contained in a structure of type
MCA_ELAPSED.
CATEGORY:
EPICS device class library.
CALLING SEQUENCE:
Result = epics_mca->GET_ELAPSED()
KEYWORD_PARAMETERS:
CHECK_NEW:
A flag which indicates that this routine should only return
the elapsed parameters if they have changed.
OPTIONAL OUTPUTS:
NEW_FLAG:
If CHECK_FLAG is set, then NEW_FLAG will be 1 if the function
is returning new elapsed parameters, 0 if the function is not
returning new elapsed parameters. If CHECK_FLAG is set and
NEW_FLAG is 0 then the function returns -1.
PROCEDURE:
This function reads the elapsed information from the hardware using
the EPICS MCA record, and then invokes MCA::GET_ELAPSED
ADDITIONAL INFORMATION:
See MCA::GET_ELAPSED().
MODIFICATION HISTORY:
Written by: Mark Rivers, October 1, 1997
May 5, 1998: Mark Rivers, added reading the acquisition start time
from the timestamp field of the record.
19-Sep-1998 MLR Added caStartGroup, caEndGroup for efficiency
15-APR-1999 MLR Changed from using catimestamp to reading the .STIM
field of the record
16-MAY-1999 MLR Added .read_time field
28-SEP-2001 MLR Added caStartGroup and caEndGroup
(See epics_mca__define.pro)
NAME:
EPICS_MCA::GET_ENVIRONMENT
PURPOSE:
This function gets the environment parameters for the MCA.
The environment information is contained in an array of structures
of type MCA_ENVIRONMENT.
CATEGORY:
IDL device class library.
CALLING SEQUENCE:
Result = epics_mca->GET_ENVIRONMENT()
PROCEDURE:
This function reads the environment information from EPICS
and then invokes MCA::GET_ENVIRONMENT
KEYWORD PARAMETERS:
This function accepts all of the keyword paramters used by
MCA::GET_ENVIRONMENT
ADDITIONAL INFORMATION:
See MCA::GET_ENVIRONMENT().
EXAMPLE:
mca = obj_new('EPICS_MCA', '13IDC:aim_adc1')
env = mca->GET_ENVIRONMENT(count)
; Get all environment variables
help, /structure, env[0]
; Get all of the sample information
env = mca->GET_ENVIRONMENT(DESCRIPTION='Sample', count)
for i=0, count-1 do print, env[i].name, '=', env[i].value
MODIFICATION HISTORY:
Written by: Mark Rivers, Sept. 29, 2001. Put this code here
and deleted from the MCA::WRITE_FILE routines.
(See epics_mca__define.pro)
NAME:
EPICS_MCA::GET_PRESETS
PURPOSE:
This function returns the preset parameters for the MCA.
The preset information is contained in a structure of type
MCA_PRESETS.
CATEGORY:
EPICS device class library.
CALLING SEQUENCE:
Result = epics_mca->GET_PRESETS()
PROCEDURE:
This function reads the preset information from the hardware using
the EPICS MCA record, and then invokes MCA::GET_PRESETS
ADDITIONAL INFORMATION:
See MCA::GET_PRESETS().
MODIFICATION HISTORY:
Written by: Mark Rivers, October 1, 1997
19-Sep-1998 MLR Added caStartGroup, caEndGroup for efficiency
(See epics_mca__define.pro)
NAME:
EPICS_MCA::GET_ROIS
PURPOSE:
This function returns the region-of-interest information for the MCA.
The rois information is contained in a structure of type MCA_ROIS.
CATEGORY:
EPICS device class library.
CALLING SEQUENCE:
Result = epics_mca->GET_ROIS(roi_info, /ENERGY)
PROCEDURE:
This function reads the region-of-interest information from the
hardware using the EPICS MCA record, and then invokes MCA::GET_ROIS
ADDITIONAL INFORMATION:
See MCA::GET_ROIS().
MODIFICATION HISTORY:
Written by: Mark Rivers, October 1, 1997
19-Sep-1998 MLR Added caStartGroup, caEndGroup for efficiency
25-Sep-1998 MLR Added ENERGY keyword
28-Sep-2001 MLR Re-wrote to use caGetArray, factor of 32 speed improvement
(See epics_mca__define.pro)
NAME:
EPICS_MCA::GET_ROI_COUNTS
PURPOSE:
This procedures returns the net and total counts of each
region-of-interest in the MCA.
CATEGORY:
EPICS device class library.
CALLING SEQUENCE:
epics_mca->GET_ROI_COUNTS, Total, Net
INPUTS:
None
OUTPUTS:
Total: The total counts in each ROI.
Net: The net counts in each ROI.
NOTE: These values are computed by the record itself, not by this
routine or by the base class routine mca::get_roi_counts.
The dimension of each array is NROIS, where NROIS
is the number of currently defined ROIs for this MCA. It returns
zero for both if NROIS is zero. Users should call
MCA::GET_ROIS() to check the number of ROIS.
EXAMPLE:
mca = obj_new('EPICS_MCA', '13IDC:mca1')
mca->GET_ROI_COUNTS, total, net
print, 'Net counts = ', net
MODIFICATION HISTORY:
Written by: Mark Rivers, October 1, 1997
(See epics_mca__define.pro)
NAME:
EPICS_MCA::GET_SEQUENCE
PURPOSE:
This function returns the current sequence number MCA. Sequences
are used for time resolved spectroscopy, and refer to different regions
of MCA memory for data acquistion and readout.
CATEGORY:
EPICS device class library.
CALLING SEQUENCE:
Result = epics_mca->GET_SEQUENCE()
PROCEDURE:
This function reads the preset information from the hardware using
the EPICS MCA record.
MODIFICATION HISTORY:
Written by: Mark Rivers, November 18, 1997
(See epics_mca__define.pro)
NAME:
EPICS_MCA::INIT
PURPOSE:
This is the initialization code which is invoked when a new object of
type EPICS_MCA is created. It cannot be called directly, but only
indirectly by the IDL OBJ_NEW() function.
CATEGORY:
EPICS device class library.
CALLING SEQUENCE:
Result = OBJ_NEW('EPICS_MCA', Record_Name)
INPUTS:
Record_Name: The name of the EPICS MCA record for the MCA object
being created. This record name can include a field
name which will be stripped off. For example,
'13IDC:mca1' and '13IDC:mca1.DESC' are both
valid. This makes it convenient when dragging process
variable names from MEDM windows to IDL windows.
KEYWORD_PARAMETERS:
Environment_file:
This keyword can be used to specify the name of a file which
contains the names of EPICS process variables which should be saved
in the header of files written with MCA::WRITE_FILE. If this
keyword is not specified then this function will attempt to open
a file called 'catch1d.env' in the current directory. This is done
to be compatible with the data catcher program. This is an ASCII
with each line containing a process variable name, followed by a
space and a description field.
OUTPUTS:
This function returns a status to indicate whether it was able to
establish channel access communication with the specified EPICS MCA
record. This status is 1 for success, 0 for failure. This status is
passed back indirectly to the routine which calls OBJ_NEW(). OBJ_NEW
will return a valid object pointer if this routine succeeds, and will
return a NULL object pointer if this routine fails. The user should
test the return value of OBJ_NEW() with the IDL function OBJ_VALID().
SIDE EFFECTS:
The routine establishes channel access monitors on all of the fields
in the MCA record which the methods in this class will read. This
greatly improves the speed and efficiency.
RESTRICTIONS:
This routine cannot be called directly. It is called indirectly when
creating a new object of class EPICS_MCA by the IDL OBJ_NEW()
function.
EXAMPLE:
mca = obj_new('EPICS_MCA', '13IDC:mca1')
if (OBJ_VALID(mca)) then print, 'It worked!'
MODIFICATION HISTORY:
Written by: Mark Rivers, October 1, 1997
MLR 18-Nov-1997 Removed CA monitor on .VAL field, because old data
were being read when doing things quickly.
MLR 22-Oct-1998 Added environment_file
MLR 28-Mar-1999 Put monitor on VAL field so get_data() can return
a flag indicating if there is new data.
MLR 15-Apr-1999 Put monitor on STIM field since we now use this to get
acquisition start time.
(See epics_mca__define.pro)
NAME:
EPICS_MCA::SET_CALIBRATION
PURPOSE:
This procedure sets the calibration parameters for the MCA.
The calibration information is contained in a structure of type
MCA_CALIBRATION.
CATEGORY:
EPICS device class library.
CALLING SEQUENCE:
epics_mca->SET_CALIBRATION, Calibration
PROCEDURE:
This function invokes MCA::SET_CALIBRATION and then writes the
calibration information to the hardware using the EPICS MCA record.
ADDITIONAL INFORMATION:
See MCA::SET_CALIBRATION.
MODIFICATION HISTORY:
Written by: Mark Rivers, October 1, 1997
17-Sep-1998 MLR Removed caStartGroup, caEndGroup, since these don't
work with the non-callback version of caput, which
we are now using (ezcaPutOldCa)
(See epics_mca__define.pro)
NAME:
EPICS_MCA::SET_DATA
PURPOSE:
This procedure writes data to the MCA
CATEGORY:
EPICS device class library.
CALLING SEQUENCE:
epics_mca->SET_DATA, Data
PROCEDURE:
This function calls MCA::SET_DATA and then writes the data to the
EPICS MCA record.
ADDITIONAL INFORMATION:
See MCA::SET_DATA().
RESTRICTIONS:
This procedure writes the spectral data to the EPICS MCA record.
However the MCA record does not yet write the values to the MCA hardware
for any supported devices.
MODIFICATION HISTORY:
Written by: Mark Rivers, April 29, 2000
(See epics_mca__define.pro)
NAME:
EPICS_MCA::SET_PRESETS
PURPOSE:
This procedure sets the preset parameters for the MCA.
The preset information is contained in a structure of type
MCA_PRESETS.
CATEGORY:
EPICS device class library.
CALLING SEQUENCE:
epics_mca->SET_PRESETS, Presets
PROCEDURE:
This function invokes MCA::SET_PRESETS and then writes the
preset information to the hardware using the EPICS MCA record.
ADDITIONAL INFORMATION:
See MCA::SET_PRESETS.
MODIFICATION HISTORY:
Written by: Mark Rivers, October 1, 1997
17-Sep-1998 MLR Removed caStartGroup, caEndGroup, since these don't
work with the non-callback version of caput, which
we are now using (ezcaPutOldCa)
(See epics_mca__define.pro)
NAME:
EPICS_MCA::SET_ROIS
PURPOSE:
This procedure sets the region-of-interest information for the MCA.
The region-of-interest information is contained in an array of
structures of type MCA_ROIS.
CATEGORY:
EPICS device class library.
CALLING SEQUENCE:
epics_mca->SET_ROIS, Rois
PROCEDURE:
This function invokes MCA::SET_ROIS and then writes the
ROI information to the hardware using the EPICS MCA record.
ADDITIONAL INFORMATION:
See MCA::SET_ROIS.
MODIFICATION HISTORY:
Written by: Mark Rivers, October 1, 1997
17-Sep-1998 MLR Removed caStartGroup, caEndGroup, since these don't
work with the non-callback version of caput, which
we are now using (ezcaPutOldCa)
28-Sep-2001 MLR Changed to using caPutArray, much faster.
(See epics_mca__define.pro)
NAME:
EPICS_MCA::SET_SEQUENCE
PURPOSE:
This procedure sets the current sequence number for the MCA. Sequences
are used for time resolved spectroscopy, and refer to different regions
of MCA memory for data acquistion and readout.
CATEGORY:
EPICS device class library.
CALLING SEQUENCE:
epics_mca->SET_SEQUENCE, Sequence
PROCEDURE:
This function invokes writes the sequence number to the hardware
using the EPICS MCA record.
MODIFICATION HISTORY:
Written by: Mark Rivers, November 18, 1997
(See epics_mca__define.pro)
NAME:
EPICS_MCA::SPECTRA_SCAN
PURPOSE:
This procedures collects MCA spectra in conjunction with an EPICS
scan record.
CATEGORY:
EPICS device class library.
CALLING SEQUENCE:
epics_mca->SPECTRA_SCAN, First_file, Scan_record
INPUTS:
First_file:
The name of the first spectrum file to save. Subsequent files
will be named using the INCREMENT_FILENAME()function. The
filename must end in a numeric extension for this to work.
Scan_record:
The name of the EPIC scan record which is controlling the scan.
This scan record must start MCA data collection by writing "1"
into the EraseStart record of the MCA database.
EXAMPLE:
mca = obj_new('EPICS_MCA', '13IDC:mca1')
mca->SPECTRA_SCAN, 'test.001', '13IDC:scan1'
PROCEDURE:
1) Set scan.EnableWait to 1 so scan will wait for IDL client
2) Wait for scan.EXSC = 1, meaning scan has started
3) If scan.EXSC is still 0 (scan ended or aborted) disable EnableWait
and return
4) Read scan.ClientWait, if 0 (meaning acquisition has not started) go
to 3
5) Wait for MCA aquisition to start and then stop
6) Write data to disk with MCA::WRITE_FILE, increment file name
7) Reset ClientWait to 0 so scan will continue
8) Go to 3
MODIFICATION HISTORY:
Written by: Mark Rivers, April 18, 2001. Copied from MED__DEFINE.
(See epics_mca__define.pro)
NAME:
EPICS_MCA::WRITE_FILE
PURPOSE:
This procedure writes an EPIC_MCA object to a disk file.
CATEGORY:
EPICS device class library.
CALLING SEQUENCE:
epics_mca->WRITE_FILE, file
PROCEDURE:
This function reads all information from the hardware using the EPICS
MCA record, and then invokes MCA::WRITE_FILE
ADDITIONAL INFORMATION:
See MCA::WRITE_FILE.
MODIFICATION HISTORY:
Written by: Mark Rivers, January 17, 1998
MLR 29-SEP-2001 Removed calls to read elapsed, calibration, rois, and
data, since this is done in MCA::WRITE_FILE.
(See epics_mca__define.pro)
NAME:
EPICS_MCA__DEFINE
PURPOSE:
This is the definition code which is invoked when a new object of
type EPICS_MCA is created. It cannot be called directly, but only
indirectly by the IDL OBJ_NEW() function,
CATEGORY:
EPICS device class library.
CALLING SEQUENCE:
Result = OBJ_NEW('EPICS_MCA', Record_Name)
INPUTS:
Record_Name: The name of the EPICS MCA record for the MCA object
being created. This record name can include a field
name which will be stripped off. For example,
'13IDC:mca1' and '13IDC:mca1.DESC' are both
valid. This makes it convenient when dragging process
variable names from MEDM windows to IDL windows. This
name is passed to EPICS_MCA::INIT().
OUTPUTS:
None (but see EPICS_MCA::INIT)
RESTRICTIONS:
This routine cannot be called directly. It is called indirectly when
creating a new object of class EPICS_MCA by the IDL OBJ_NEW()
function.
EXAMPLE:
mca = obj_new('EPICS_MCA', '13IDC:mca1')
if (OBJ_VALID(mca)) then print, 'It worked!'
MODIFICATION HISTORY:
Written by: Mark Rivers, October 1, 1997
(See epics_mca__define.pro)
NAME:
Release notes
Version 3:
Everything prior to 3/17/99 when I started making release notes!
Prior to this date there are release notes for each routine but no
global release notes for the EPICS_MCA class, and there are no
version numbers
Version 4.0
March 17, 1999. Mark Rivers.
Removed the /WAIT qualifier from all CAPUT calls to make the class
compatible with Version 4.3 of the EPICS MCA record.
Added monitors to all PVs, including .VAL field
Changed logic of getting acquisition start time from using
catimestamp (Ben-Chin's routine) to using the new .STIM field in
the record. This requires version 4.6 or greater of the record.
April 15, 1999. Mark Rivers
Added CHECK_NEW and NEW_FLAG to GET_ELAPSED, GET_DATA and
GET_ACQUIRE_STATUS.
Version 4.1
May 16, 1999 Mark Rivers
Added .read_time field to MCA_ELAPSED and put a monitor on it for
accurate counts/second calculations
Version 4.2
Dec. 1, 1999 Mark Rivers
Fixed bug in epics_mca::init when reading environment file.
Dec. 2, 1999 Mark Rivers
Added .dwell, .channel_advance and .prescale to MCA_PRESETS
Dec. 3, 1999 Mark Rivers
Changed GET_DATA to read .NUSE each time, adjust self.nchans.
This permits NUSE to be changed after the EPICS_MCA is created.
Modified WRITE_FILE to reset ClientWait after file is written.
April 18, 2001 Mark Rivers
Added MCA::SPECTRA_SCAN to collect spectra using the "ClientWait"
PV. This already existed in EPICS_MED, added to EPICS_MCA.
Added the /START and /STOP keywords to EPICS_MCA::ACQUIRE_WAIT
Sept. 28, 2001 Mark Rivers
Changed GET_ROIS to use caGetArray and SET_ROIS to use caPutArray.
This speeded up GET_ROIS by a factor of 32 and SET_ROIS by a factor
of 32 the first time, not much on subsequent calls.
Sept. 29, 2001 Mark Rivers
Added GET_ENVIRONMENT. This code used to be in MCA::WRITE_FILE
where it did not belong.
Deleted calls to read the data, rois, etc. in EPICS_MCA::
WRITE_FILE, since this was done again in MCA::WRITE_FILE.
Changed many calls from caGet to caGetArray. This eliminates the
need for caSetMonitor which was slowing things down at startup.
March 5, 2002 Mark Rivers
Changed acquire_wait to poll every dwell_time/100. from dwell_time/10.
to reduce latencies
(See epics_mca__define.pro)