print, 'Ausgabemedium: ' print, ' ' print, ' output.ps (0)' print, ' Tektronix-Schirm (1)' print, ' X-Schirm (2)' print, ' Windows (3)' print, ' Programmende (4)' read, medium case medium of 0: begin set_plot, 'PS' device, filename='output.ps', $ /landscape, $ xoffset=2.5, yoffset=26., $ xsize=24., ysize=16. ; /portrait, $ ; xoffset=2., yoffset=3., $ ; xsize=16., ysize=24. end 1: begin set_plot, 'TEK' end 2: begin set_plot, 'X' ; window, 0, xsize=650.*210/297, ysize=650. ; !p.color=255 ; !p.background=0 end 3: begin ; window, 0, xsize=600., ysize=400. ; !p.color=255 ; !p.background=0 end else: begin print, 'Programmende' stop end endcase dummy = ' ' xyouts, 0.5, 0.5, /normal, '!5' ; setzt den Font ;!p.psym = 3 ; keine linien sondern punkte rflag = 'y' print, 'read data? (y/n)' read, rflag if rflag eq 'y' then begin print, 'Which file ?' print, ' NCOA.DAT (1)' print, ' AGCA.DAT (2)' print, ' R_TEMP.DAT (3)' print, ' R_LOCK.DAT (4)' print, ' R_SELECT.DAT (5)' print, ' R_POWER.DAT (6)' print, ' T_TEMP.DAT (7)' print, ' T_BOXTEMP.DAT (8)' print, ' T_N_CURR.DAT (9)' print, ' T_R_CURR.DAT (10)' print, ' T_LOCK.DAT (11)' print, ' T_SELECT.DAT (12)' print, ' T_N_CL.DAT (13)' print, ' T_R_CL.DAT (14)' print, ' BITSYNCA.DAT (15)' print, ' CARRIERA.DAT (16)' print, ' SUBCARRA.DAT (17)' print, ' SYNCMARA.DAT (18)' print, ' VITERBYA.DAT (19)' print, ' NCOB.DAT (20)' print, ' AGCB.DAT (21)' print, ' BITSYNCB.DAT (22)' print, ' CARRIERB.DAT (23)' print, ' SUBCARRB.DAT (24)' print, ' SYNCMARB.DAT (25)' print, ' VITERBYB.DAT (26)' print, ' SCTIMEA.DAT (27)' print, ' SCTIMEB.DAT (28)' read, file ; t_start and t_end determination openr, 1,'carriera.dat' dat = dblarr(2) readf, 1, dat t_start = dat(0) while not eof(1) do readf, 1, dat close, 1 t_end = dat(0) print, 'Time scale:' print, ' ' print, ' t_0 = 0 (1)' print, ' Start of test = 0 (2)' print, ' scale with given time (3)' read, tscale case tscale of 1: begin print, 'Enter moment of t_0 as recorded from HK3 (in hours)' read, t_sub xtit = '!18t - t!D0!N!X [min]' end 2: begin t_sub = t_start xtit = 'TEST ELAPSED TIME [min] (T=0 <=> ' + string(floor(t_start), format = '(I0)') + ':' + string((t_start - floor(t_start)) * 60.0, format = '(D4.1)') + ' SCET)' end else: begin t_sub = 0.0 xtit = 'UT [min]' end endcase t_start = t_start - t_sub t_end = t_end - t_sub endif print, 'Which time range ?' print, 'Enter min time (-1 for full range or time range unchanged)' read, mintime if mintime ne -1 then begin print, 'Enter max time' read, maxtime !x.range(0) = mintime !x.range(1) = maxtime endif else begin !x.range(0) = t_start * 60.0 !x.range(1) = t_end * 60.0 endelse !x.style = 1 print, 'Which Y-axis range ?' print, 'Enter min y (0 for full data range or data range unchanged)' read, miny if miny ne 0 then begin print, 'Enter max y' read, maxy !y.range(0) = miny !y.range(1) = maxy !y.style = 1 endif else begin !y.range = 0 !y.style = 3 endelse print, 'Connect data points with lines ? (y/n)' read, dummy if dummy eq 'n' then begin !p.psym = 3 ; keine linien sondern punkte endif else !p.psym = 0 if rflag eq 'y' then begin print, 'Enter test name' read, dummy !p.title = dummy print, 'Enter date of test' read, dummy !p.title = !p.title + ', ' + dummy case file of 1: begin fname = 'ncoa.dat' !y.title = 'f!DR!N [Hz] (chain A)' end 2: begin fname = 'agca.dat' !y.title = 'AGC [dBm] (chain A)' end 3: begin fname = 'r_temp.dat' !y.title = 'R_TEMP [C] if !y.range(0) eq 0 then !y.range = [60.0, 120.0] end 4: begin fname = 'r_lock.dat' !y.title = 'R_LOCK [V]" end 5: begin fname = 'r_select.dat' !y.title = 'R_SELECT' end 6: begin fname = 'r_power.dat' !y.title = 'R_POWER' end 7: begin fname = 't_temp.dat' !y.title = 'T_TEMP [C]' if !y.range(0) eq 0 then !y.range = [60.0, 130.0] end 8: begin fname = 't_box.dat' !y.title = 'T_BOXTEMP [C]' end 9: begin fname = 't_n_curr.dat' !y.title = 'T_N_CURR [A]' end 10: begin fname = 't_r_curr.dat' !y.title = 'T_R_CURR [A]' end 11: begin fname = 't_lock.dat' !y.title = 'T_LOCK' end 12: begin fname = 't_select.dat' !y.title = 'T_SELECT' end 13: begin fname = 't_n_cl.dat' !y.title = 'T_N_CL' end 14: begin fname = 't_r_cl.dat' !y.title = 'T_R_CL' end 15: begin fname = 'bitsynca.dat' !y.title = 'BITSYNC (chain A)' end 16: begin fname = 'carriera.dat' !y.title = 'CARRIER (chain A)' end 17: begin fname = 'subcarra.dat' !y.title = 'SUBCARRIER (chain A)' end 18: begin fname = 'syncmara.dat' !y.title = 'SYNCRO MARKER (chain A)' end 19: begin fname = 'viterbya.dat' !y.title = 'VITERBY (chain A)' end 20: begin fname = 'ncob.dat' !y.title = 'f!DR!N [Hz] (chain B)' end 21: begin fname = 'agcb.dat' !y.title = 'AGC [dBm] (chain B)' end 22: begin fname = 'bitsyncb.dat' !y.title = 'BITSYNC (chain B)' end 23: begin fname = 'carrierb.dat' !y.title = 'CARRIER (chain B)' end 24: begin fname = 'subcarrb.dat' !y.title = 'SUBCARRIER (chain B)' end 25: begin fname = 'syncmarb.dat' !y.title = 'SYNCRO MARKER (chain B)' end 26: begin fname = 'viterbyb.dat' !y.title = 'VITERBY (chain B)' end 27: begin fname = 'sctimea.dat' !y.title = 'SC-TIME (chain A) [sec]' end 28: begin fname = 'sctimeb.dat' !y.title = 'SC-TIME (chain B) [sec]' end else: begin fname = ' ' print, 'No valid filename' print, 'Enter filename:' read, fname end endcase openr, 1, fname ln = long(0.0) while not eof(1) do begin readf, 1, dummy ln = ln + 1 endwhile close, 1 if (file eq 3) or (file eq 7) then begin dat = dblarr(4, ln) endif else dat = dblarr(2, ln) openr, 1, fname readf, 1, dat close, 1 dat(0,*) = (dat(0,*) - t_sub) * 60.0 ; <=> Minuten endif if medium eq 3 then window, 0, xsize=600., ysize=400. !p.charsize = 1.5 !p.charthick = 2.0 ;spawn, /noshell, ['cp', '/user2/duttaroy/IDL/allgemein/hhmmss.pro', '.'] ;form = 'hhmmss' plot, dat(0,*), dat(1,*), $ ; nsum = ln / 640, $ xtickname = replicate('', 30), $ xtitle = xtit, $ xstyle = 1 ;, $ ; xtickformat = form ;spawn, /noshell, ['rm', '-f', 'hhmmss.pro'] if (file eq 3) or (file eq 7) then begin oplot, dat(0,*), dat(2,*) ;, $ ; nsum = ln / 640 oplot, dat(0,*), dat(3,*) ;, $ ; nsum = ln / 640 endif print, 'calculate mean ? (y/n) read, dummy if dummy eq 'y' then begin datmean = 0.0 datanzahl = 0.0 for i=long(0.0), ln-1 do begin if ((dat(0,i) ge !x.crange(0)) and (dat(0,i) le !x.crange(1))) then begin datmean = datmean + dat(1,i) datanzahl = datanzahl + 1.0 endif endfor datmean = datmean / datanzahl rms = 0.0 for i=long(0.0), ln-1 do begin if ((dat(0,i) ge !x.crange(0)) and (dat(0,i) le !x.crange(1))) then $ rms = rms + (dat(1,i) - datmean) * (dat(1,i) - datmean) endfor rms = sqrt(rms / datanzahl) xyouts, 0.25, 0.85, /normal, $ ' = ' + string(datmean, format='(d7.2)') + ' Hz', $ charsize = 1.5, charthick = 2.0 xyouts, 0.25, 0.75, /normal, $ 'RMS = ' + string(rms, format='(d5.2)') + ' Hz', $ charsize = 1.5, charthick = 2.0 endif if medium eq 0 then device, /close !p.psym = 0 !p.charsize = 1.0 !p.charthick = 1.0 !p.title = '' !y.range = 0 !y.style = 0 !y.title = '' !x.range = 0 end