	FUNCTION ReqPerVal, aspdr=aspdr, shut=shut, xray=xray, opt=opt 
;	--------------------------------------------------------------
;+							10-jan-92
;	NAME:
;		ReqPerVal
;	Purpose:
;		Converts user requests for specific "periph" status
;		into a binary representation.
;	CALLING SEQUENCE:
;		seaVal = ReqPerVal([aspdr=aspdr, shut=shut, xray=xray,
;			opt=opt])
;	KeyWord Input:
;		aspdr	Open if present, closed if not 
;		shut 	mechinal if present, frame transfer if not.
;		xray	if present, the string is converted to fix value
;		opt 	if present, the string is converted to fix value
;	Output:	
;		returned value is the sum of all requests.
;	History:
;		written 29-Apr-91 for testing.
;		modified 13-May-91 for use.
;		mod 10-jan-92 for gt functions
;-
;	---------------------------------------------------------------
;	ON_error, 2	;force a return to caller on error

	RET = BYTE(0)			;Define RETURNED VALUE

	IF (KEYWORD_SET(aspdr)) THEN BEGIN
	  ret = 128b			;door open
	  print, 'Aspect door set to OPEN'
	ENDIF				;else door is closed

	IF (KEYWORD_SET(shut)) THEN BEGIN
	  ret = ret OR 64b		;shutter is in mechanical mode
	  print, 'Shutter mode set to mechanical'
	ENDIF				;else shutter is in frame trans

	xrayvals = STRUPCASE(['    ', gt_filtb(indgen(6)+1,/string)])
;	xrayvals = ['   ','OPEN','AL14','ALMG','BER1','AL12','MG3M']
	optvals = STRUPCASE(['    ', gt_filta(indgen(6)+1,/string)])
;	optvals = ['    ','OPEN ','NABAN','QUART','DIFFU','WDBAN','NUDEN']

	IF (KEYWORD_SET(xray)) THEN BEGIN
	  xray = STRUPCASE(xray)
	  xrayval = WHERE(STRTRIM(xrayvals,2) EQ STRTRIM(xray,2), nx)	;get request filter no.
	  IF (nx gt 0) THEN BEGIN
	    xrayval = BYTE(xrayval)
	    xrayval = ISHFT(xrayval,3)		;shift left 3 bits
	    ret = ret OR xrayval
	  ENDIF					;else do nothing
	ENDIF

	IF (KEYWORD_SET(opt)) THEN BEGIN
	  opt  = STRUPCASE(opt)
	  optval  = WHERE(STRTRIM(optvals,2) EQ STRTRIM(opt,2), no)
	  IF (no gt 0) THEN BEGIN	
	    optval = BYTE(optval)
	    ret = ret OR optval
	  ENDIF
	ENDIF

	RETURN, ret
	END
