pro edac_summary, ff, img, daytim, qstop=qstop, all=all, print_list=print_list, $
	log_list=log_list, sttim=sttim, entim=entim
;
;+
;NAME:
;	edac_summary
;PURPOSE:
;	To plot the EDAC error rates
;SAMPLE CALLING SEQUENCE:
;	dirs = file_list('/md84/fits/sci5k/lev0/','2000*', /cd)
;	edac_summary, file_list(dirs, '9605*'), img, daytim
;
;	edac_summary, '9*_000000.fits', img, daytim	;one file a day
;
;	edac_summary, ff, img, daytim, print_list=[2,3]
;	edac_summary, xx, img, daytim, log_list='$MDI_CAL_INFO/edac_summary.txt'
;
;	edac_summary,sttim='1-feb',entim='2-feb'
;
;OPTIONAL KEYWORD INPUT:
;	print_list - the list of pages to print info about.
;			0=page 16, 1=page 14, 2=page 10, 3=page 12
;HISTORY:
;	Written Mar-96 by M.Morrison
;V2.0	30-May-96 (MDM) - Turned into a procedure 
;			- Only plot sums
;	13-Jun-96 (MDM) - Changed to accept /ynozero type of plotting
;	16-Oct-96 (MDM) - Used /data13 instead of /small1
;V2.1	21-Oct-96 (MDM) - Reordered the pages to put page 10 on the
;			  bottom
;V2.2	 6-Jan-97 (MDM) - Unsign the count
;			- Added unsign
;			- Added "log_list" option
;V2.3	 9-Jan-97 (MDM) - Reversed the "log_list" labels for single/double
;			  error counts
;V2.4	 4-Feb-97 (MDM) - Added STTIM/ENTIM option
;V2.5	26-Mar-97 (MDM) - Corrected "log_list" output (not quite right order)
;V2.6	 7-Jan-98 (RIB) - changed dirs to 200* from 2000* to pickup 20020000 dpc
;-
;
prog_ver = 'EDAC_SUMMARY  Ver 2.6'
;
base_dir = getenv('MDI_FITS_DIR') + '/sci5k/lev0'
;
if (keyword_set(sttim)) then begin
    dirs = file_list(base_dir, '200*', /cd)
    if (n_elements(entim) eq 0) then entim = ut_time()
    ff = sel_filetimes(sttim, entim, filter=ff, dir=dirs)
    print, 'Going to read ', n_elements(ff), ' files'
end
;
if (n_elements(ff) eq 1) then begin
    dirs = file_list(base_dir, '200*', /cd)
    ff = file_list(dirs, ff, file=file)
    print, 'Going to read ', n_elements(ff), ' files'
end
;
if (n_elements(ff) eq 0) then begin
    dirs = file_list(base_dir, '200*', /cd)
    ff = file_list(dirs, '9*.fits', file=file)
end
;
if (n_elements(img) eq 0) then begin
    break_file, ff, dsk_log, dir00, file
    ss = sort(file)
    ff = ff(ss)
    break_file, ff, dsk_log, dir00, filnam, ext
    daytim = anytim2ints(fid2ex(filnam + ext))
    ;
    img = rfits2(ff, h=h)
    img = unsign(img, 16)	;MDM 6-Jan-97
    img = reform(img)
    n = n_elements(h(0,*))
    daytim = replicate(anytim2ints(!stime), n)
    ;for i=0,n-1 do daytim(i) = anytim2ints( sxpar(h(*,i), 'DATE-OBS') + ' ' + sxpar(h(*,i), 'TIME-OBS') )
    for i=0,n-1 do daytim(i) = anytim2ints( '1-Jan-58', off=sxpar(h(*,i), 'MDI_REF'))
end
;
;    registers  22-29 are first set
;		30-37 are second set
;		38-45
;		46-53
;
titarr = ['Page-16', 'Page-14', 'Page-10' , 'Page-12']
ss_order = [0,1,3,2]
;
n = n_elements(daytim)
if (keyword_set(all)) then begin
    !p.multi = [0,4,4]
    !p.charsize = 1.6
    for ii=0,3 do begin
	i = ss_order(ii)
        utplot, daytim, img(22+i*8+1,*), psym=-2, tit=titarr(i), ytit='Multi-Bit Sum', /ynozero, xticks=3
        utplot, daytim, img(22+i*8+2,*), psym=-2, tit=titarr(i), ytit='Single-Bit Sum', /ynozero, xticks=3
        utplot, daytim, img(22+i*8+3,*), psym=-2, tit=titarr(i), ytit='Multi-Bit Count', /ynozero, xticks=3
        utplot, daytim, img(22+i*8+4,*), psym=-2, tit=titarr(i), ytit='Single-Bit Count', /ynozero, xticks=3
    end
end else begin
    !p.multi = [0,2,4]
    !p.charsize = 1.6
    for ii=0,3 do begin
	i = ss_order(ii)
	yy1 = img(22+i*8+1,*)
	yy2 = img(22+i*8+2,*)
        utplot, daytim, yy1, psym=-2, tit=titarr(i), ytit='Multi-Bit Sum', /ynozero, xticks=3,yr=[min(yy1),yy1(n-1)>1]
        utplot, daytim, yy2, psym=-2, tit=titarr(i), ytit='Single-Bit Sum', /ynozero,xticks=3,yr=[min(yy2),yy2(n-1)>1]
    end
end
;
for i=0,n_elements(print_list)-1 do begin
    ip = print_list(i)
    print, '-------------- EDAC Info for Page: ' + strtrim(ip,2)
    for j=0,n_elements(daytim)-1 do begin
	print, fmt_tim(daytim(j)), img(22+ip*8+indgen(8),j), format='(1x, a, 8i6)'
    end
end
;
if (keyword_set(log_list)) then begin
    openw, lun, log_list, /get_lun
    printf, lun, prog_ver + '   Program Run: ' + !stime
    printf, lun, ' '
    printf, lun, '  Date/Time                Page 16          Page 14          Page 12
    printf, lun, '                          Dbl   Sngl       Dbl   Sngl       Dbl   Sngl
		 ;31-DEC-96  12:00:00        40    991        29    932     35804  64481
    last_out0 = '**'
    for j=0,n_elements(daytim)-1 do begin
	out0 = ''
	ss2 = 22+ss_order*8
	for i=0,2 do out0 = out0 + string( img(ss2(i)+1:ss2(i)+2, j), format='(3x, 2i7)')
	;;if (out0 ne last_out0) then printf, lun, fmt_tim(daytim(ss(j))) + out0
	if (out0 ne last_out0) then printf, lun, fmt_tim(daytim(j)) + out0
	last_out0 = out0
    end
    free_lun, lun
end
;
plottime, 0, 0, prog_ver
plottime
pprint
if (keyword_set(qstop)) then stop
end
