FUNCTION smei_frm_flag, hdr, flag=flag, names=names ;+ ; NAME: ; smei_frm_flag ; PURPOSE: ; Manipulates hdr.flags entry in SMEI frm header ; CATEGORY: ; camera/idl/frm ; CALLING SEQUENCE: ; result = smei_frm_flag(flag [,flag=flag, names=names]) ; INPUTS: ; hdr array; SMEI__FRM_HDR structure ; OPTIONAL INPUTS ; flag=flag array; type: SMEI_FRM_HDR structure or integer ; OPTIONAL INPUT PARAMETERS: ; The following flags are processed: ; ; base_done ; base_ok ; eclipse ; shadow ; bad_quat ; just_bad ; anneal ; ; tagmode ; full_frame ; shutter ; dark_offset ; flatfield ; cosmic_rays ; calibration ; flat_enabled ; led_enabled ; bos_alert ; OUTPUTS: ; results array: type: SMEI_FRM_HDR structure or integer ; INCLUDE: @compile_opt.pro ; On error, return to caller ; CALLS: ; IsType, ibtestf, ibsetf ; PROCEDURE: ; Each keyword corresponds to a bit in the hdr.flags entry. ; The values used here should be consistent with the value ; in the Fortran include value href=smei_frm_hdr=.h ; MODIFICATION HISTORY: ; MAR-2005, Paul Hick (UCSD/CASS; pphick@ucsd.edu) ;- names = strupcase(['base_done','base_ok','eclipse','shadow','bad_quat','just_bad', $ 'anneal', $ 'tagmode','full_frame','shutter','dark_offset','flatfield','cosmic_rays', $ 'calibration','flat_enabled','led_enabled','bos_alert']) CASE IsType(flag,/defined) OF 0: BEGIN rtn = 0 IF hdr.base_done THEN rtn = ibsetf(rtn, 0) IF hdr.base_ok THEN rtn = ibsetf(rtn, 1) IF hdr.eclipse THEN rtn = ibsetf(rtn, 2) IF hdr.shadow THEN rtn = ibsetf(rtn, 3) IF hdr.bad_quat THEN rtn = ibsetf(rtn, 4) IF hdr.just_bad THEN rtn = ibsetf(rtn, 5) IF hdr.anneal THEN rtn = ibsetf(rtn, 6) IF hdr.tagmode THEN rtn = ibsetf(rtn,10) IF hdr.full_frame THEN rtn = ibsetf(rtn,11) IF hdr.shutter THEN rtn = ibsetf(rtn,12) IF hdr.dark_offset THEN rtn = ibsetf(rtn,13) IF hdr.flatfield THEN rtn = ibsetf(rtn,14) IF hdr.cosmic_rays THEN rtn = ibsetf(rtn,15) IF hdr.calibration THEN rtn = ibsetf(rtn,16) IF hdr.flat_enabled THEN rtn = ibsetf(rtn,17) IF hdr.led_enabled THEN rtn = ibsetf(rtn,18) IF hdr.bos_alert THEN rtn = ibsetf(rtn,19) END 1: BEGIN rtn = hdr rtn.base_done = ibtestf(flag, 0) rtn.base_ok = ibtestf(flag, 1) rtn.eclipse = ibtestf(flag, 2) rtn.shadow = ibtestf(flag, 3) rtn.bad_quat = ibtestf(flag, 4) rtn.just_bad = ibtestf(flag, 5) rtn.anneal = ibtestf(flag, 6) rtn.tagmode = ibtestf(flag,10) rtn.full_frame = ibtestf(flag,11) rtn.shutter = ibtestf(flag,12) rtn.dark_offset = ibtestf(flag,13) rtn.flatfield = ibtestf(flag,14) rtn.cosmic_rays = ibtestf(flag,15) rtn.calibration = ibtestf(flag,16) rtn.flat_enabled= ibtestf(flag,17) rtn.led_enabled = ibtestf(flag,18) rtn.bos_alert = ibtestf(flag,19) END ENDCASE RETURN, rtn & END