;+
; Project     : SOLAR-B - EIS
;
; Name        : EIS_CPT_PROCESS_CONTROL_TABLES
;
; Purpose     : Processes control tables.
;
; Explanation : Control tables are only processed if required by the current time-line..
;
; Use         : < result = eis_cpt_process_control_tables ( control_details, study_details, $
;                            sequences, engineering_parameters) >
;
; Inputs      : control_details        : STRUCTURE of type EIS_control_details.
;               study_details          : STRUCTURE ARRAY of type EIS_study_detail.
;               sequences              : STRUCTURE ARRAY of type EIS_CPT_sequence.
;               engineering_parameters : STRUCTURE of type EIS_engineering_parameters.
;
; Opt. Inputs : None.
;
; Outputs     : result      : INT flag :
;                             1 : processed science plan OK.
;                             0 : processing failed.
;
; Opt. Outputs: None.
;
; Keywords    : None.
;
; Calls       : None.
;
; Common      : None.
;
; Restrictions: None.
;
; Side effects: May output ASCII files.
;
; Category    : EIS_CPT.
;
; Prev. Hist. : None.
;
; Written     : Martin Carter RAL 24/06/05
;
; Modified    : Version 0.0, 24/06/05, MKC
;               Version 0.1, 27/06/05, MKC
;                 Remove check that study details defined.
;                 Added check that control_details defined.
;                 Changed to use sequences argument.
;
; Version     : Version 0.1, 27/06/05
;-
;**********************************************************

FUNCTION eis_cpt_process_control_tables, control_details, study_details, sequences, engineering_parameters

  ; NB have checked that study_details defined

  ; Have checked that if control_details needed then they are defined

  IF KEYWORD_SET(control_details) THEN BEGIN

    ; set up control tables

    IF NOT eis_cpt_process_xrt_flare_table( control_details.XRT_flare_control, study_details, $
                                            sequences, engineering_parameters) THEN GOTO, error

    IF NOT eis_cpt_process_eis_flare_table( control_details.EIS_flare_control, study_details, $
                                            sequences, engineering_parameters) THEN GOTO, error

    IF NOT eis_cpt_process_eis_event_table( control_details.EIS_event_control, study_details, $
                                            sequences, engineering_parameters) THEN GOTO, error

    IF NOT eis_cpt_process_aec_table      ( control_details.AEC_control, study_details, $
                                            engineering_parameters) THEN GOTO, error

  ENDIF

  ; return finished OK flag

  RETURN, 1

error :

  ; issue routine name

  MESSAGE, 'ERROR', /INFORMATIONAL

  ; return error flag

  RETURN, 0

END





