;---------------------------------------------------------------------------
; Document name: SUM_SHOW_HEADER.PRO
; Created by:    Dietmar Germerott, MPAE Lindau, August 5, 1998
;
; Last Modified: Thu Aug  6 09:47:28 1998 (GERMEROTT@linsu1.mpae.gwdg.de)
;---------------------------------------------------------------------------
;
PRO sum_show_header, inheader, full=full
;+
; PROJECT:
;       SOHO - SUMER
;
; NAME:
;       SUM_SHOW_HEADER
;
; PURPOSE: 
;       Print the informtion of SUMER binary Headers human readable
;
; CATEGORY:
;       SUMER - Header
; 
; EXPLANATION:
;       The binary Header is decoded via SUM_IMAGE_HEAD function and
;       printed on Display. You can give an array of SUMER Image
;       headers as input, then you'll be asked after the displaying
;       of each header wether you want to continue or to quit.
;       If F (full) or N (not full) are given as Input at this place,
;       the output will be with more or less additional information.
;       
; SYNTAX: 
;       sum_show_header, inheader [,/full] 
;
; EXAMPLES:
;       
; INPUTS:
;       inheader - SUMER binary Header (92 to ... Bytes )
;
; OPTIONAL INPUTS: 
;       None.
;
; OUTPUTS:
;       None.
;
; OPTIONAL OUTPUTS:
;       None.
;
; KEYWORDS: 
;       FULL - show additional Information
;
; COMMON:
;       None.
;
; RESTRICTIONS: 
;       None.
;
; SIDE EFFECTS:
;       Needs SUM_IMAGE_HEAD function
;
; HISTORY:
;       Version 1, August 5, 1998, Dietmar Germerott, MPAE Lindau. Written
;
; CONTACT:
;       Dietmar Germerott, MPAE Lindau (Dietmar Germerott@linmpi.mpg.de)
;-
;
   ON_ERROR, 2
   msg_inproc = ''
   errmsg = ''
   contflag = 1
   i = 0
   
   IF N_ELEMENTS(inheader) EQ 0 THEN GOTO, usage_label
   
   PRINT,' Decoding Header'
   dec_header = sum_image_head(inheader, errmsg=errmsg)
   
   IF errmsg NE '' THEN GOTO, handle_error
   
   tmp_num = N_ELEMENTS(dec_header) 
   PRINT,' Header for display',tmp_num
   
   WHILE (contflag AND (i LT tmp_num)) DO BEGIN
      
      PRINT,' '
      PRINT, ' IMAGE FORMAT               =', dec_header(i).sstypimg
      PRINT, ' POP/UDP NUMBER             =', dec_header(i).sspopudp
      PRINT, ' SLIT NUMBER                =', dec_header(i).ssslitn
      PRINT, ' EXPOSURE TIME (sec)        =', dec_header(i).ssexptim
      PRINT, ' EXPOSURE START TIME        = ', dec_header(i).utc_ecs
      PRINT, ' REFERENCE PIXEL            =', dec_header(i).ssrefpix
      PRINT, ' RELATIVE REFPIXEL (Det B)  =', dec_header(i).relrefpix
      PRINT, ' WAVELENGTH (Angstroem)     =', dec_header(i).sswavel
      PRINT, ' HIGH VOLTAGE (V)           =', dec_header(i).s_mcpvf
      PRINT, ' MCP CURRENT (mA)           =', dec_header(i).simcpif
      PRINT, ' TOTAL COUNTS IN IMAGE      =', dec_header(i).ssimgtot
      PRINT, ' FLATFIELD CORRECTION       = ', dec_header(i).ssff_t
      PRINT, ' DETECTOR                   = ', dec_header(i).ssdet_t
      PRINT, ' BRIGHTEST PIXEL ADDRESS Y  =', dec_header(i).ssbpaddy
      PRINT, ' BRIGHTEST PIXEL ADDRESS Z  =', dec_header(i).ssbpaddz
      PRINT, ' BRIGHTEST PIXEL COUNTS     =', dec_header(i).ssbpcnts
      PRINT, ' COMPRESSION SCHEME         =', dec_header(i).sscomprm
      PRINT, ' COMPRESSION PARAMETER 1    =', dec_header(i).sscompp1
      PRINT, ' COMPRESSION PARAMETER 2    =', dec_header(i).sscompp2
      PRINT, ' COMPRESSION PARAMETER 3    =', dec_header(i).sscompp3
      PRINT, ' POINTING Y (E/W) (arcsec)  =', dec_header(i).p_suny
      PRINT, ' POINTING Z (S/N) (arcsec)  =', dec_header(i).p_sunz
      PRINT, ' ROTCOMP TIME (sec)         =', dec_header(i).ssrotcomp
      PRINT, ' EXPLOSIVE EVENT TRIGGER    = ', dec_header(i).sseetrig
      PRINT, ' IMAGE COUNTER              =', dec_header(i).ssimgcnt
      PRINT, ' BINNING SPEC (Y)           =', dec_header(i).ssbinny
      PRINT, ' BINNING SPAT (Z)           =', dec_header(i).ssbinnz
      PRINT, ' X-EVENTS                   =', dec_header(i).x_evcnt
      PRINT, ' Y-EVENTS                   =', dec_header(i).y_evcnt
      PRINT, ' ADMINISTRATION COUNTER     =', dec_header(i).ssadmcnt
      PRINT, ' ACCUMULATIVE IMG COUNTER   =', dec_header(i).ssacimgc
      PRINT, ' NUMBER OF STEPS (Spec)     =', dec_header(i).ssstepn
      PRINT, ' STEP SIZE (Spec)           =', dec_header(i).ssstepsz
      PRINT, ' MC2 - POSITION (Steps)     =', dec_header(i).ssmc2pos
      PRINT, ' MC3 - POSITION (Steps)     =', dec_header(i).ssmc3pos
      PRINT, ' MC4 - POSITION (Steps)     =', dec_header(i).ssmc4pos
      PRINT, ' MC8 - POSITION (Steps)     =', dec_header(i).ssmc8pos
      PRINT, ' MC6 - POSITION (Steps)     =', dec_header(i).ssmc6pos
      PRINT, ' MISSING DATA IN IMAGE      =', dec_header(i).mdu
      PRINT, ' INCORRECT DATA TRANSMITION =', dec_header(i).qac
      
      IF KEYWORD_SET(full) THEN BEGIN
         
         PRINT,' Additional Information'
         PRINT, ' DATA SYNC 1                =', dec_header(i).SSYNC0
         PRINT, ' DATA SYNC 2                =', dec_header(i).SSYNC1
         PRINT, ' IMAGE RECORD ID            =', dec_header(i).img_rec
         PRINT, ' HIGH VOLTAGE RAW           =', dec_header(i).s_mcpv
         PRINT, ' MCP CURRENT RAWVALUE       =', dec_header(i).simcpi
         PRINT, ' MC1 - ERROR                =', dec_header(i).ssmc1err
         PRINT, ' MC2 - ERROR                =', dec_header(i).ssmc2err
         PRINT, ' MC3 - ERROR                =', dec_header(i).ssmc3err
         PRINT, ' MC4 - ERROR                =', dec_header(i).ssmc4err
         PRINT, ' MC5 - ERROR                =', dec_header(i).ssmc5err
         PRINT, ' MC6 - ERROR                =', dec_header(i).ssmc6err
         PRINT, ' MC8 - ERROR                =', dec_header(i).ssmc8err
         PRINT, ' FLATFIELD RAW VALUE        =', dec_header(i).ssff
         PRINT, ' DETECTOR TYPE RAW          =', dec_header(i).ssdettyp
         PRINT, ' INTER INSTR STATUS         =', dec_header(i).ssintsta
         PRINT, ' FLIGHT REQUEST DATE        =', dec_header(i).ssfldate
         PRINT, ' FLIGHT REQUEST NUMBER      =', dec_header(i).ssflreqn
         PRINT, ' X-EVENT RAW VALUE          =', dec_header(i).ssxcnt
         PRINT, ' X-EVENT RAW VALUE          =', dec_header(i).ssycnt
         PRINT, ' SUN Y RAW VALUE            =', dec_header(i).sssuny
         PRINT, ' SUN Z RAW VALUE            =', dec_header(i).sssunz
         PRINT, ' START TIME IN TAI          =', dec_header(i).tai
         PRINT, ' FILE ID OF RAWTM           =', dec_header(i).fid
         PRINT, ' FILE POINTER TO TM         =', dec_header(i).fptr
         PRINT, ' LOCATION NUMBER            =', dec_header(i).ssloc
         PRINT, ' TARGET NUMBER              =', dec_header(i).sstarget
         PRINT, ' STATUS                     =', dec_header(i).ssstat
         PRINT, ' DETECTOR STATUS            =', dec_header(i).ssdetsta
         PRINT, ' INTER INSTR DZ             =', dec_header(i).ssiidz
         PRINT, ' INTER INSTR DY             =', dec_header(i).ssiidy
         PRINT, ' MOTOR CONTROLER ERROR      =', dec_header(i).ssmcerr
         PRINT, ' OPERATIONS COUNTER         =', dec_header(i).ssopcnt
               
      ENDIF
      
      i = i+1
      
      IF (i LT tmp_num) THEN BEGIN
         
         in_key = ''
         PRINT,' '
         PRINT,' Header left for display :',tmp_num - i
         READ,' RETURN to Continue - Q = Quit : ',in_key
         
         CASE STRUPCASE(in_key) OF
            
            'Q':contflag = 0
            'F':full = 1
            'N':full = 0
            ELSE:
            
         ENDCASE
         
      ENDIF

   ENDWHILE


   RETURN
   
usage_label:
   
   PRINT,' '
   PRINT,' Usage of SUM_SHOW_HEADER:'
   PRINT,'    SUM_SHOW_HEADER, header_data [,/full]'
   PRINT,' '
   PRINT,' Where header_data is the binary SUMER Image header'
   PRINT,' with at least 92 Bytes'
   PRINT,' '
   RETURN   
   
handle_error:
   IF errmsg EQ '' THEN errmsg = msg_inproc
   MESSAGE,errmsg,/cont
   RETURN
   
END


;---------------------------------------------------------------------------
; End of 'SUM_SHOW_HEADER.PRO'.
;---------------------------------------------------------------------------
