;+
; Project     : SOLAR-B - EIS
;
; Name        : EIS_CPT_SET_EIS_FLARE_TABLE
;
; Purpose     : Sets up EIS flare table parameters.
;
; Explanation :
;
; Use         : < table = eis_cpt_set_EIS_flare_table ( control, engineering_parameters, response_index) >
;
; Inputs      : control                 : STRUCTURE of type EIS_flare_control
;               engineering_parameters  : STRUCTURE of type EIS_engineering_parameters
;               response_index          : INT index of sequence table start for event response study
;
; Opt. Inputs : None.
;
; Outputs     : result      : INT flag :
;                             1 : processed science plan OK.
;                             0 : processing failed.
;               table       : BYTARR[24] EIS flare table
;
; 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, 05/07/05, MKC
;                 Corrected raster_id.
;               Version 0.2, 08/09/05, MKC
;                 Changed raster number/ number of rasters tag to raster identifier.
;               Version 0.3, 22/01/08, MKC
;                 Added big-endian comments.
;
; Version     : Version 0.3, 22/01/08
;-
;**********************************************************

FUNCTION eis_cpt_set_eis_flare_table, control, engineering_parameters, response_index

  ; set up eis flare table

  table = BYTARR(24)

  ; set up sequence no.
  ; NB note big-endian byte/bit order

  table[0] = response_index

  ; set up response raster ID
  ; NB note big-endian byte/bit order

  table[1:2] = eis_cpt_set_raster_id( control.raster_identifier)

  ; set up control flags
  ; NB note big-endian byte/bit order

  IF control.adjust_Y        THEN table[3] = table[3] OR '80'XB

  IF control.adjust_X        THEN table[3] = table[3] OR '40'XB

  IF control.locate_Y        THEN table[3] = table[3] OR '20'XB

  IF control.locate_X        THEN table[3] = table[3] OR '10'XB

  IF engineering_parameters.EIS_flare_parameters.left_repointing  THEN table[3] = table[3] OR '08'XB

  IF engineering_parameters.EIS_flare_parameters.right_repointing THEN table[3] = table[3] OR '04'XB

  ; set up X threshold
  ; NB note big-endian byte/bit order

  table[4:7] = eis_cpt_ulongtobytes(control.X_threshold)

  ; set up Y threshold
  ; NB note big-endian byte/bit order

  table[8:11] = eis_cpt_ulongtobytes(control.Y_threshold)

  ; set up Y start address
  ; NB note big-endian byte/bit order

  table[12:15] = eis_cpt_ulongtobytes(engineering_parameters.CAM_readout_parameters.addresses[1])

  ; set up Y height address
  ; NB note big-endian byte/bit order

  table[16:19] = eis_cpt_ulongtobytes(engineering_parameters.CAM_readout_parameters.addresses[3])

  ; set up X MIN LIMIT

  table[20] = control.X_min_limit

  ; set up Y MIN LIMIT

  table[21] = control.Y_min_limit

  ; set up EIS P-size

  table[22] = engineering_parameters.EIS_flare_parameters.EIS_P_Size

  ; spare 8 bits of 23 must be zero

  ; return table

  RETURN, table

END





