;+
; Project     : SOLAR-B - EIS
;
; Name        : EIS_CPT_OBSTBL_OUTPUT
;
; Purpose     : Writes current OBSTBL and OBSTBL map to files.
;
; Explanation : The current OBSTBL is kept in an INTEL Hex file.
;               The current OBSTBL map is kept in an ASCII file.
;
; Use         : < res = eis_cpt_obstbl_output(obstbl) >
;
; Inputs      : obstbl : STRUCTURE of type EIS_CPT_obstbl.
;
; Opt. Inputs : None.
;
; Outputs     : res    : INT FLAG indicating result
;                           1 : ok
;                           0 : not ok
;
; Opt. Outputs: None.
;
; Keywords    : STAMP    : STRING stamp indicating should stamp file names.
;               INTERNAL : FLAG indicating that outputting to INTERNAL directory.
;
; Calls       : None.
;
; Common      : None.
;
; Restrictions: None.
;
; Side effects: None.
;
; Category    : EIS_CPT.
;
; Prev. Hist. : None.
;
; Written     : Martin Carter RAL 26/10/04
;
; Modified    : Version 0.1, 04/11/04, MKC
;                 Added TIMESTAMP keyword.
;               Version 0.2, 07/02/05, MKC
;                 Renamed from eis ct output obstbl.
;                 Renamed eis cpt write obstbl map and eis cpt write obstbl.
;               Version 0.3, 04/03/05, MKC
;                 Changed TIMESTAMP flag to string containing time.
;               Version 0.4, 11/04/05, MKC
;                 Removed eis cpt obstbl write.
;               Version 0.5, 17/09/06, MKC
;                 Added printout.
;               Version 0.6, 03/10/06, MKC
;                 Changed TIMESTAMP keyword to STAMP.
;               Version 0.7, 13/01/07, MKC
;                 Changed print out to use eis cpt message.
;               Version 0.8, 20/09/07, JAR
;                 Changed some of the output formatting.
;               Version 0.9, 01/07/08, MKC
;                 Added INTERNAL keyword.
;                 Changed so that if obstbl file name blank then does not output.
;                 Changed so that does not print message for internal copy.
;               Version 1.0, 01/10/08, MKC
;                 Added LATEST keyword.
;
; Version     : 1.0, 01/10/08
;-
;**********************************************************

FUNCTION eis_cpt_obstbl_output, obstbl, STAMP=stamp, INTERNAL=internal, LATEST=latest

  ; write out obstbl_map (unless LATEST)

  IF NOT KEYWORD_SET(latest) THEN IF NOT KEYWORD_SET(eis_cpt_obstbl_map_write(obstbl.map, STAMP=stamp, INTERNAL=internal)) THEN GOTO, error

  ; get OBSTBL file name

  obstbl_file = eis_cpt_file_name('OBSTBL', STAMP=stamp, INTERNAL=internal, LATEST=latest)

  ; output if file defined

  IF KEYWORD_SET(obstbl_file) THEN BEGIN

    ; print info

    IF NOT KEYWORD_SET(internal) THEN eis_cpt_message, 'OUTPUTTING OBSTBL TO    : ' + obstbl_file, /INFORMATIONAL

    ; write out obstbl data

    IF NOT KEYWORD_SET(eis_cpt_write_intel_hex_file(obstbl_file, obstbl.data, HEADER=obstbl.header, ULBA=obstbl.ulba) ) THEN GOTO, error

  ENDIF

  ; return ok

  RETURN, 1

error :

  ; issue routine name

  MESSAGE, 'ERROR', /INFORMATIONAL

  ; return error

  RETURN, 0

END





