PRO GetStrPeriph, inbuf, strPer, len, h=h
;   --------------------------------------------------------------
;   --------------------------------------------------------------
;   ON_ERROR, 2     ;force a return to caller if error occurs

    xray = ['   ','Open','AL14','ALMG','BER1','AL12','MG3M']
    opt  = ['    ','Open ','NaBan','Quart','Diffu','WdBan','NuDen']

    periph, inbuf, aspDr=aspDr, shut=shut, filb=xfil, fila=ofil

    nele = N_ELEMENTS(aspDr)
    t0 = STRARR(nele)
    t1 = t0

    drOps = WHERE(aspDr eq 1, nDrOps)  
    drcls = WHERE(aspDr eq 0, nDrCls)

    IF (nDrOps gt 0) THEN t0(drOps) = 'Open'    ;aspect dr open
    IF (nDrCls gt 0) THEN t0(drcls) = 'cls '    ;door closed

    mechs = WHERE(shut eq 1, nmechs)
    frmTs = WHERE(shut eq 0, nfrmTs)

    IF (nmechs gt 0) THEN t1(mechs) = 'mech'    ;mechanical shut
    IF (nfrmTs gt 0) THEN t1(frmTs) = 'frmT'    ;frame transfer

    t2 = xray(xfil)                 ;xray filter sta
    t3 = opt(ofil)                  ;opt. filter sta

    strPer = t0 + ' ' + t1 + ' ' + t2 + ' ' + t3
    h = 'Door Mode Xray Optic'
    len = 20

    RETURN
    END