pro plot1, x0, y0, off, scale=scale, psym=psym, gaps=gaps, onoff=onoff, label=label, qstop=qstop, nlabel=nlabel, $
				nonormal=nonormal, gap_val=gap_val
;
;
;
x = x0
y = y0
;
scale0 = 1
psym0 = 0
gap_val0 = 65	;seconds
if (keyword_set(scale)) then scale0 = scale
if (keyword_set(psym)) then psym0 = psym
if (keyword_set(gap_val)) then gap_val0 = gap_val
;
usersym, [0,0], [0,4]
;
if (keyword_set(onoff)) then begin
    ss = where(y eq 1)
    if (ss(0) eq -1) then return
    x = x(ss)
    y = y(ss)
    if (n_elements(x) eq 1) then gaps = fltarr(1) else gaps = deriv_arr(x)
end
if (not keyword_set(nonormal)) then begin
    yy = (float(y)-min(y)) / ((max(float(y))-min(y)) > 1)
    yy = yy*0.85*scale0 + off
end else begin
    yy = y
end
;
if (keyword_set(gaps) or keyword_set(onoff)) then begin
    ss = where(gaps gt gap_val0)	;greater than 65 second gap
    n = n_elements(ss)	;n discontinuities ==> n+1 plotting sections
    if (ss(0) eq -1) then begin
	ss = intarr(1)	;value 0
	n=0
    end
    for i=0,n do begin
	if (i eq 0) then ist=0 else ist = ss(i-1)+1
	if (i eq n) then ien=n_elements(yy)-1 else ien=ss(i)
	oplot, x(ist:ien), yy(ist:ien), psym=psym0
    end
end else begin
    oplot, x, yy, psym=psym0		;TODO - use PLOTS??
end
;
if ((keyword_set(label)) or (keyword_set(nlabel))) then begin
    if keyword_set(label) then str = string(max(y), format='(i6)')
    if keyword_set(nlabel) then str = string(n_elements(y), format='(i6)')
    xyouts, !cxmax+(!cxmax-!cxmin)*.01, off, str
end
;
if (keyword_set(qstop)) then stop
;
end
;------------------------------------------------------------------------------
;
;
;
dir_in = '/0d2/ops/reformat/'
dir_in = '/0d0/ops/reformat/'
if (n_elements(qauto) eq 0) then qauto = 0
if (n_elements(fid_arr) eq 0) then begin
    get_fileid, dir_in, fid_arr, menu_arr
end
;
att_struct
cba_struct
gen_struct
bcs_struct
hxt_struct
sxt_struct
wbs_struct
;
qdebug = 1
;
PREFIX_ARR = ['ada', 'hda', 'wda', 'sfr', 'spr', 'bda']
nprefix = n_elements(prefix_arr)
;
laser, /portrait
;
qdone = 0
ifid = 0
while (not qdone) do begin
    if (qauto) then begin
	file_id = fid_arr(ifid)
	ifid = ifid + 1
	if (ifid+1 ge n_elements(fid_arr)) then qdone = 1
    end else begin
	sav = !d.name	;since cannot do WMENU for PS device type
	set_plot, 'x'
	i = wmenu(menu_arr, xpos=0)
	set_plot, sav
	if (i eq 0) then stop
	i = i - 1 	;menu title
	file_id = fid_arr(i)
    end

    if (!d.name eq 'X') then window, 0, xsiz=500, ysiz=700, retain=2

    ;	-------------------- Initialize input items
    ;
    ms_day = 86400000            ; 1 day = 86400000 msec
    timdat = {timdat, time: long(0), day: fix(0)}
    st_td = timdat		;start time of all FileIDs
    en_td = timdat		;end time of all FileIDs
    tick_td = timdat	;start time/day of first tick
    ;
    qfirst = 1
    for iprefix = 0,nprefix-1 do begin
	prefix = prefix_arr(iprefix)
	filnam = dir_in + prefix + file_id
	if (qdebug) then print, filnam

	ff = findfile(filnam)
	if (strlen(ff(0)) eq 0) then qexist = 0 else qexist = 1

	if (qexist) then begin
	    rd_fheader, filnam, fheader
	    print, fheader.first_time, fheader.first_day, fheader.last_time, fheader.last_day
	    if (qfirst) then begin
		st_td.time = fheader.first_time
		st_td.day  = fheader.first_day
		en_td.time = fheader.last_time
		en_td.day  = fheader.last_day
		qfirst = 0
	    end else begin
		day  = fheader.first_day
		time = fheader.first_time
		v = (day-st_td.day)*ms_day + (time-st_td.time)
		if (v lt 0) then begin	;found an earlier start time/day
		    st_td.day  = day
		    st_td.time = time
		end
                day  = fheader.last_day
                time = fheader.last_time
		v = (day-en_td.day)*ms_day + (time-en_td.time)
		if (v gt 0) then begin	;found a later end time/day
		    en_td.day  = day
		    en_td.time = time
		end
	    end
	end
    end
    ;
    xdtim = (en_td.day-st_td.day)*ms_day + (en_td.time-st_td.time)	;# of minutes covered
    xdtim = xdtim/1000./60.		;convert to minutes
    if (xdtim lt 100) then dtick = 10.		;10 minutes per tick
    if (xdtim gt 100) then dtick = 60.		;1 hour per tick
    if (xdtim gt 8*60) then dtick = 120.	;2 hour per tick
    if (xdtim gt 16*60) then dtick = 240.	;4 hour per tick
    ntick = fix(xdtim/dtick)	;
    ;
    ;----- Get first tick value
    int2ex, st_td.time, st_td.day, st_tarr
    st_val = fix(st_tarr(1)/dtick+1)*dtick	;roundoff to first increment
    temp = st_tarr
    temp(1) = st_val
    ex2int, temp, msod_t0, ds79_t0	;time of first tick
    tick_td.time = msod_t0(0)
    tick_td.day  = ds79_t0(0)
    ;
    tickv = fltarr(ntick+1)
    tickl = strarr(ntick+1)
    for i=0,ntick do begin
	msod = tick_td.time + i*dtick*1000*60.
	tickv(i) = (msod-st_td.time)/1000/60.

	dday = msod/ms_day
	int2ex, msod mod ms_day, tick_td.day+dday, temp
	tickl(i) = string(temp(0:1), format='(i2,":",i2.2)')
        if (i eq 0) then dummy = fmt_tim(temp, date_str)
    end
    ;
    erase
    !noeras = 1
;    plot, [0,0], [0,0], title = file_id, $
;		yrange = [0,30], ystyle = 1+4, $
;		xrange = [0,dtim], xtitle='Time of day', $
;		xticks=ntick, xtickv=tickv, xtickname=tickl
    ;
    later_tim = 0
    qfirst = 1
    qada = 0
    for iprefix = 0,nprefix-1 do begin
	prefix = prefix_arr(iprefix)
	filnam = dir_in + prefix + file_id
	filnam = filnam_fix(filnam)

	ff = findfile(filnam)
	if (strlen(ff(0)) eq 0) then qexist = 0 else qexist = 1

	if (qexist) then begin
	    if (qdebug) then print, 'Found file: ', filnam

	    rd_roadmap, filnam, roadmap, ndset

	    if (prefix eq 'bda') then begin
		rd_bda, filnam, intarr(1), ii, dd, rr, roadmap	;really DP_SYNC
	    end

	    tim   = (roadmap.day-st_td.day)*ms_day + (roadmap.time-st_td.time)
	    tim   = tim/1000./60.	;convert to minutes

	    ;TODO - temporary fix
	    ss = sort(tim)
	    roadmap = roadmap(ss)
	    tim = tim(ss)

	    ss = indgen(n_elements(tim)-1)
	    dtim = (tim(ss+1) - tim(ss))*60	;seconds


	    ;----- Since each instrument might be off/have different times/data
	    ;      grab DPrate/DPMode from all of them
	    ;
	    if (prefix ne 'bda') then begin

		if (qfirst) then begin
			later_tim	= tim
			later_dp_rate	= roadmap.dp_rate
			later_dp_mode	= roadmap.dp_mode
		end else begin
			later_tim	= [later_tim, tim]
			later_dp_rate	= [later_dp_rate, roadmap.dp_rate]
			later_dp_mode	= [later_dp_mode, roadmap.dp_mode]
			qfirst = 0
		end
	    end

	    case prefix of
		'bda': begin
			!p.region = [0,.31,.95,.46]
			ytickv = indgen(4)
			ytickname = ['Chan1', 'Chan2', 'Chan3', 'Chan4']
			plot, [0,0], [0,0], $
				yrange = [0,4], ytitle = 'BCS', $
				yticks = 3, ytickv=ytickv, ytickname=ytickname, ystyle=1, ymargin=[0,0], $
				xrange = [0,xdtim], xstyle=1+4
			ss = where(roadmap.acc_interval(0) ne 0)
			if (ss(0) ne -1) then for i=0,3 do begin
			    yy = roadmap(ss).acc_cnts(i,0) / roadmap(ss).acc_interval(0)
			    plot1, tim(ss), yy, i, gaps=dtim(ss), /label
			end
			;plot1, tim, roadmap.acc_cnts(3,0,*), 3, gaps=dtim, /label
		 end
		'spr': begin
			!p.region = [0,.48, .95,.62]
			ytickv = indgen(3)
			ytickname = ['avg', 'PFI', 'FFI']
			plot, [0,0], [0,0], $
				yrange = [0,3], ytitle = 'SXT', $
				yticks = 2, ytickv=ytickv, ytickname=ytickname, ystyle=1, ymargin=[0,0], $
				xrange = [0,xdtim], xstyle=1+4
			sum = roadmap.periph mod 4
			avg0 = roadmap.img_avg
			avg = avg0 / 2^sum	;normalize for summation mode
			plot1, tim, avg, 0, psym=3, /label
			plot1, tim, intarr(ndset)+0.5, 1, psym=8, /nlabel
		 end
		'sfr': begin
			!p.region = [0,.48, .95,.62]
			ytickv = indgen(3)
			ytickname = ['avg', 'PFI', 'FFI']
			plot, [0,0], [0,0], $
				yrange = [0,3], ytitle = 'SXT', $
				yticks = 2, ytickv=ytickv, ytickname=ytickname, ystyle=1, ymargin=[0,0], $
				xrange = [0,xdtim], xstyle=1+4
			plot1, tim, intarr(ndset)+0.5, 2, psym=8, /nlabel
		 end
		'hda': begin
			!p.region = [0,.63, .95,.78]
			ytickv = indgen(6)
			ytickname = ['sum_l', 'sum_m1', 'sum_m2', 'Sum_h', 'sigma_l', ' ']
			plot, [0,0], [0,0], $
				yrange = [0,5], ytitle = 'HXT', $
				yticks = 5, ytickv=ytickv, ytickname=ytickname, ystyle=1, ymargin=[0,0], $
				xrange = [0,xdtim], xstyle=1+4
			nn = dprate2sec(roadmap.dp_rate)	;TODO - only true for PH mode
			plot1, tim, roadmap.sum_l/nn, 0, gaps=dtim, /label
			plot1, tim, roadmap.sum_m1/nn, 1, gaps=dtim, /label
			plot1, tim, roadmap.sum_m2/nn, 2, gaps=dtim, /label
			plot1, tim, roadmap.sum_h/nn, 3, gaps=dtim, /label
			plot1, tim, roadmap.sigma_l, 4, gaps=dtim, /label
		 end
		'wda': begin
			!p.region = [0,.80, .95,.95]
			ytickv = indgen(8)
			ytickname = ['sxs1','sxs2','hxs','grs1','grs2','rbmsc','rbmsd', ' ']
			plot, [0,0], [0,0], $
				yrange = [0,7], ytitle = 'WBS', $
				yticks = 7, ytickv=ytickv, ytickname=ytickname, ystyle=1, ymargin=[0,0], $
				xrange = [0,xdtim], xstyle=1+4
			nn = dprate2sec(roadmap.dp_rate)*2
			plot1, tim, roadmap.sxs1/nn, 0, gaps=dtim, /label
			plot1, tim, roadmap.sxs2/nn, 1, gaps=dtim, /label
			plot1, tim, roadmap.hxs/nn,  2, gaps=dtim, /label
			plot1, tim, roadmap.grs1/nn, 3, gaps=dtim, /label
			plot1, tim, roadmap.grs2/nn, 4, gaps=dtim, /label
			plot1, tim, roadmap.rbmsc/nn, 5, gaps=dtim, /label
			plot1, tim, roadmap.rbmsd/nn, 6, gaps=dtim, /label

		 end
		'ada': begin
			!p.region = [0,0, .95,.12]
			dp_mode = roadmap.dp_mode mod 16
			ytickv = indgen(7)+8
			ytickname = [' ', 'FL', ' ', 'BCS', 'NGT', 'QT', ' ']
			plot, [0,0], [0,0], psym=10, $
				yrange = [8,14], ytitle = 'DP Mode', $
				yticks = 6, ytickv=ytickv, ytickname=ytickname, ystyle=1, ymargin=[4,0], $
				xrange = [0,xdtim], xstyle=1+8, $
				xticks=ntick, xtickv=tickv, xtickname=tickl, xtitle='Time of day starting ' + date_str
			plot1, tim, dp_mode, 0, psym=10, gaps=dtim, /nonormal, gap_val=40*60

			!p.region = [0,.13, .95,.18]
			dp_rate = roadmap.dp_rate / 32
			ytickv = indgen(6)
			ytickname = [' ', 'Low', 'Med', ' ', 'High', ' ']
			plot, [0,0], [0,0], psym=10, $
				yrange = [0,5], ytitle = 'DP Rate', $
				yticks = 5, ytickv=ytickv, ytickname=ytickname, ystyle=1, ymargin=[0,0], $
				xrange = [0,xdtim], xstyle=1+4
			plot1, tim, dp_rate, 0, psym=10, gaps=dtim, /nonormal, gap_val=40*60	;not sure why 40*60

			!p.region = [0,.19, .95,.28]
			ytickv = indgen(8)
			ytickname = ['RBM', 'HXTCAL', 'F-SXS', 'F-HXS', 'F-BCS', 'QRBM', ' ', ' ']
			plot, [0,0], [0,0], psym=10, $
				yrange = [0,7], ytitle = ' ', $
				yticks = 7, ytickv=ytickv, ytickname=ytickname, ystyle=1, ymargin=[0,0], $
				xrange = [0,xdtim], xstyle=1+4
			plot1, tim, btest0(roadmap.rbm_status, 7), 0, /onoff
			plot1, tim, btest0(roadmap.cal_status, 6), 1, /onoff
			plot1, tim, btest0(roadmap.flare_status, 6), 2, /onoff
			plot1, tim, btest0(roadmap.flare_status, 5), 3, /onoff
			plot1, tim, btest0(roadmap.flare_status, 4), 4, /onoff
			plot1, tim, btest0(roadmap.flare_status, 2), 5, /onoff

			;TODO - Plot instruments on/off

			qada = 1
		end
	    endcase
	end
    end
    ;
    if ((not qada) and (n_elements(later_tim) gt 1)) then begin	;found one sometime
	ss = sort(later_tim)
	plot1, later_tim(ss), later_dp_mode(ss), 1, psym=10
	plot1, later_tim(ss), later_dp_rate(ss), 2, psym=10
    end

    plottime, 0, .97, file_id, 2
    plottime, 0, 0, 'PLOT_SUM.PRO  Ver 1.0  30-Aug-91
    plottime
end
;
end
