;+
; Project     :	SOLAR-B - EIS
;
; Name        :	EIS_CPT_CHECK_XRT_FLARE_PARAMETERS
;
; Purpose     :	Checks the XRT flare parameters are valid.
;
; Explanation : Checks the XRT flare parameters are valid.
;
; Use         :	< result = eis_cpt_xrt_flare_parameters ( xrt_flare_parameters) >
;
; Inputs      : xrt_flare_parameters : STRUCTURE of type EIS_XRT_flare_parameters.
;
; Opt. Inputs : None.
;
; Outputs     : result   : status flag
;                       0 : if checks failed.
;                       1 : checks OK.
;
; Opt. Outputs:	None.
;
; Keywords    : None.
;
; Calls       : None.
;
; Common      :	None.
;
; Restrictions:	None.
;
; Side effects:	None.
;
; Category    :	EIS_CPT.
;
; Prev. Hist. :	None.
;
; Written     :	Martin Carter RAL 22/06/05
;
; Modified    :	Version 0.0, 22/06/05, MKC
;               Version 0.1, 24/07/12, MKC
;                 Changed check on EIS FOV flag.
;
; Version     :	0.1, 24/07/12
;-
;**********************************************************

FUNCTION eis_cpt_check_xrt_flare_parameters, XRT_flare_parameters

  ; verify_FOV               : INT flag indicating whether to check whether the flare
  ;                            is within the EIS FOV (1) or not (0).

  IF XRT_flare_parameters.verify_FOV GT 1 THEN BEGIN

    eis_cpt_message, 'INVALID XRT FLARE PARAMETER : VERIFY_FOV'

    GOTO, error

  ENDIF

  ; X0                       : signed value giving EIS-XRT X alignment error

  IF ABS(XRT_flare_parameters.X0) GT 4095 THEN BEGIN

    eis_cpt_message, 'INVALID XRT FLARE PARAMETER : X0'

    GOTO, error

  ENDIF

  ; Y0                       : signed value giving EIS-XRT Y alignment error

  IF ABS(XRT_flare_parameters.Y0) GT 4095 THEN BEGIN

    eis_cpt_message, 'INVALID XRT FLARE PARAMETER : Y0'

    GOTO, error

  ENDIF

  ; X_conversion             : INT EIS-XRT optical orientation. This should be set
  ;                            to 1 as EIS-XRT images are inverted in the X
  ;                            direction.

  IF XRT_flare_parameters.X_conversion NE 1 THEN BEGIN

    eis_cpt_message, 'INVALID XRT FLARE PARAMETER : X_CONVERSION'

    GOTO, error

  ENDIF

  ; Y_conversion             : INT EIS-XRT optical orientation. This should be set
  ;                            to 0 as EIS-XRT images have the same orientation in
  ;                            the Y direction.

  IF XRT_flare_parameters.Y_conversion NE 0 THEN BEGIN

    eis_cpt_message, 'INVALID XRT FLARE PARAMETER : Y_CONVERSION'

    GOTO, error

  ENDIF

  ; angle                    : INT signed value giving EIS-XRT angular alignment
  ;                            error. Range -65535 to +65535.

  IF ABS(XRT_flare_parameters.angle) GT 65535 THEN BEGIN

    eis_cpt_message, 'INVALID XRT FLARE PARAMETER : ANGLE'

    GOTO, error

  ENDIF

  ; OCB                      : INT XRT on chip binning factor. Range 1-15. Default is 8.

  IF XRT_flare_parameters.OCB EQ 0 OR XRT_flare_parameters.OCB GT 15 THEN BEGIN

    eis_cpt_message, 'INVALID XRT FLARE PARAMETER : OCB'

    GOTO, error

  ENDIF ELSE IF XRT_flare_parameters.OCB NE 8 THEN BEGIN

    eis_cpt_message, 'WARNING, XRT FLARE PARAMETER OCB DEFAULT IS 8'

    GOTO, error

  ENDIF

  ; XRT_pixel_size           : INT XRT pixel size in arcsec/100. Range is 1-255.

  IF XRT_flare_parameters.XRT_pixel_size EQ 0 OR XRT_flare_parameters.XRT_pixel_size GT 255 THEN BEGIN

    eis_cpt_message, 'INVALID XRT FLARE PARAMETER : XRT_PIXEL_SIZE'

    GOTO, error

  ENDIF

  ; EIS_FOV_flag             : INT this parameter is connected to acquiring the
  ;                            EIS FOV centre and must be set to 1 in FM.
  ;                            Value may now be changed
  ;                            Check value only 2 bits

  IF XRT_flare_parameters.EIS_FOV_flag LT 0 OR XRT_flare_parameters.EIS_FOV_flag GT 3 THEN BEGIN

    eis_cpt_message, 'INVALID XRT FLARE PARAMETER : EIS_FOV_FLAG'

    GOTO, error

  ENDIF

  ; return OK flag

  RETURN, 1

error :

  ; issue routine name

  MESSAGE, 'ERROR', /INFORMATIONAL

  ; return error flag

  RETURN, 0

END





