;+
; PROJECT
;           SolarB EIS
;
; NAME
;           db_read_response_entry
;
; PURPOSE
;           Function to read an EIS raster database entry, and return an
;           eis_raster structure
;
; CATEGORY
;           EIS Technical Planning
;           Database
;
; NOTE
;          Usually pass in an ID value (DB bean-counter). However, more
;          useful input is TLDB sequence ID (seq_id). When using this, get
;          response study ID.
;
; INPUTS
;           response DB ID, or seq_id
;
; WRITTEN
;           John A Rainnie RAL 20-Jan-2010
;
; HISTORY
;           v0.1 JAR 8-Feb-2010
;                Added tag "line_index"
;
;-
;______________________________________________________________________________
FUNCTION db_read_response_entry , id = id , seq_id = seq_id

IF (~KEYWORD_SET(id) EQ 0) AND (~KEYWORD_SET(seq_id) EQ 0) THEN RETURN,0

; Open database
status     = eis_open_db(/RESPONSE)

IF (N_ELEMENTS(seq_id) NE 0) THEN BEGIN
   id_value   = STRCOMPRESS(seq_id,/REMOVE_ALL)
   constraint = STRJOIN(['TRIG_ST_SEQID',id_value],'=',/SINGLE)
   ; Get corresponding ID
   blah = dbfind(constraint , /SILENT , count = count)
   IF (count NE 1) THEN RETURN , 0
   id   = blah[0]
ENDIF

; Check entry exists. If not bail out
constraint = STRJOIN(['ID',STRCOMPRESS(id,/REMOVE)],'=',/SINGLE)
entry      = dbfind(constraint , /SILENT , count = count)
IF (count NE 1) THEN RETURN , 0


rs                    = {eis_response_props}
rs.id                 = dbval(id, 'ID'                    )
rs.trig_st_seqid      = dbval(id, 'TRIG_ST_SEQID'         )
rs.eebp_respond       = dbval(id, 'EEBP_RESPOND'          )
rs.xrtf_respond       = dbval(id, 'XRTF_RESPOND'          )
rs.eisf_respond       = dbval(id, 'EISF_RESPOND'          )
rs.aece_respond       = dbval(id, 'AECE_RESPOND'          )
rs.x_threshold        = dbval(id, 'X_THRESHOLD'           )
rs.y_threshold        = dbval(id, 'Y_THRESHOLD'           )
rs.x_min_limit        = dbval(id, 'X_MIN_LIMIT'           )
rs.y_min_limit        = dbval(id, 'Y_MIN_LIMIT'           )
rs.adjust_x           = dbval(id, 'ADJUST_X'              )
rs.adjust_y           = dbval(id, 'ADJUST_Y'              )
rs.locate_x           = dbval(id, 'LOCATE_X'              )
rs.locate_y           = dbval(id, 'LOCATE_Y'              )
rs.response_st_id     = dbval(id, 'RESPONSE_ST_ID'        )
rs.raster_identifier  = dbval(id, 'RESPONSE_RA_ID'        )
rs.line_index         = dbval(id, 'LINE_INDEX'            )
rs.filler_st_id       = dbval(id, 'FILLER_ST_ID'          )
rs.type               = dbval(id, 'TYPE'                  )
rs.created            = dbval(id, 'CREATED'               )
rs.modified           = dbval(id, 'MODIFIED'              )

; New tags here
rs.no_hunt_data       = dbval(id, 'NO_HUNT_DATA'          )
rs.ra1_xcen           = dbval(id, 'RA1_XCEN'              )
rs.ra1_ycen           = dbval(id, 'RA1_YCEN'              )
rs.ra1_mip            = dbval(id, 'RA1_MIP'               )
rs.ra1_yip            = dbval(id, 'RA1_YIP'               )
rs.ra1_sc_x           = dbval(id, 'RA1_SC_X'              )
rs.ra1_sc_y           = dbval(id, 'RA1_SC_Y'              )
rs.ra1_pointed        = dbval(id, 'RA1_POINTED'           )
rs.ra2_use            = dbval(id, 'RA2_USE'               )
rs.ra2_xcen           = dbval(id, 'RA2_XCEN'              )
rs.ra2_ycen           = dbval(id, 'RA2_YCEN'              )
rs.ra2_mip            = dbval(id, 'RA2_MIP'               )
rs.ra2_yip            = dbval(id, 'RA2_YIP'               )
rs.ra2_sc_x           = dbval(id, 'RA2_SC_X'              )
rs.ra2_sc_y           = dbval(id, 'RA2_SC_Y'              )
; Finish new tags



dbclose

RETURN , rs

END
