;+
;Project    :SolarB EIS
;
;Name       :eis_get_esdb_details
;
;Purpose    :Used for primarily for eis_cpt interface
;
;Category   :EIS timeline planning
;
;Written    :Chunkey Lepine, RAL, d.r.lepine@rl.ac.uk, 0044-1235-44-6515
;
;Version    :V0 February 2005
;-
;************************************************************************

;extract engineering-state paramaters (from different tables) to structure eis_engineering_state.
function eis_get_esdb_details, entry
    s = {eis_engineering_state}
    status = eis_open_db(/ES_INST)
        s.valid_from = dbval(entry,'VALID_FROM')
        s.valid_to = dbval(entry,'VALID_TO')
        s.file_name = dbval(entry,'FILE_NAME')
        s.planner_comment = dbval(entry,'PLANNER_COMMENT')
        ; instrument-state
        s.instrument_state.wave2pix_17 = dbval(entry,'WAVE2PIX_17')
        s.instrument_state.wave2pix_25 = dbval(entry,'WAVE2PIX_25')
        s.instrument_state.cam_flush_seq_id = dbval(entry,'CAM_FLUSH_SEQ_ID')
        s.instrument_state.cam_rdout_seq_id = dbval(entry,'CAM_RDOUT_SEQ_ID')
        s.instrument_state.readout_nodes = dbval(entry,'READOUT_NODES')
        s.instrument_state.ccd_length = dbval(entry,'CCD_LENGTH')
        s.instrument_state.flush_ccds = dbval(entry,'FLUSH_CCDS')
        s.instrument_state.x_start = dbval(entry,'X_START')
        s.instrument_state.x_size = dbval(entry,'X_SIZE')
        s.instrument_state.y_start = dbval(entry,'Y_START')
        s.instrument_state.y_height = dbval(entry,'Y_HEIGHT')
        s.instrument_state.def_hw_win_id = dbval(entry,'DEF_HW_WIN_ID')
        s.instrument_state.flr_hw_win_id = dbval(entry,'FLR_HW_WIN_ID')
        s.instrument_state.xrt_pixel_size = dbval(entry,'XRT_PIXEL_SIZE')
        s.instrument_state.xrt_ocb = dbval(entry,'XRT_OCB')
        s.instrument_state.eis_pixel_size = dbval(entry,'EIS_PIXEL_SIZE')
        s.instrument_state.eis_ocb = dbval(entry,'EIS_OCB')
    dbclose

    status = eis_open_db(/ES_CONTROL)
        ; control-state
        s.control_state.x_error = dbval(entry,'X_ERROR')
        s.control_state.y_error = dbval(entry,'Y_ERROR')
        s.control_state.x_conversion = dbval(entry,'X_CONVERSION')
        s.control_state.y_conversion = dbval(entry,'Y_CONVERSION')
        s.control_state.angle = dbval(entry,'ANGLE')
        s.control_state.eis_fov_flg = dbval(entry,'EIS_FOV_FLG')
        s.control_state.left_repointing = dbval(entry,'LEFT_REPOINTING')
        s.control_state.right_repointing = dbval(entry,'RIGHT_REPOINTING')
        s.control_state.slit_direction = dbval(entry,'SLIT_DIRECTION')
        s.control_state.mvmts_pday = dbval(entry,'MVMTS_PDAY')
        s.control_state.cm_range = dbval(entry,'CM_RANGE')
        s.control_state.fm_range = dbval(entry,'FM_RANGE')
        s.control_state.aec_exp_tt[*] = dbval(entry,'AEC_EXPOSURE_TT')
        s.control_state.seq_safety_margin = dbval(entry,'SEQ_SAFETY_MARGIN')
        s.control_state.evt_safety_margin = dbval(entry,'EVT_SAFETY_MARGIN')
        s.control_state.aec_safety_margin = dbval(entry,'AEC_SAFETY_MARGIN')
    dbclose
    return, s
end


