print, 'Output Medium: ' print, ' ' print, ' output.ps (0)' print, ' output.eps (1)' print, ' Tektronix-Screen (2)' print, ' X-Screen (3)' print, ' Windows (4)' print, ' terminate program (5)' 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, 'PS' device, filename='output.eps', $ /encapsulated, $ xsize=24., ysize=16. end 2: begin set_plot, 'TEK' end 3: begin set_plot, 'X' ; window, 0, xsize=650.*210/297, ysize=650. ; !p.color=255 ; !p.background=0 end 4: begin set_plot, 'WIN' ; 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 ;------------------------------------------------------- ; 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) ;----- Abfragen -------------------------------------------------- print, 'Which file ?' print, ' NCOA.DAT (1)' print, ' AGCA.DAT (2)' print, ' NCOB.DAT (3)' print, ' AGCB.DAT (4)' read, fileno print, 'Enter measurement ID' read, dummy ptit = dummy print, 'Enter date of measurement' read, dummy ;ptit = ptit + ', ' + dummy + ', T=0 <=> ' + string(floor(t_start), format = '(I0)') + ':' + string((t_start - floor(t_start)) * 60.0, format = '(D4.1)') + ' LT' ptit = ptit + ', ' + dummy case fileno of 1: begin fname = 'ncoa.dat' !y.title = 'f!DR!N [Hz] (chain A)' ptit = 'Received Frequency (Chain A): ' + ptit end 2: begin fname = 'agca.dat' !y.title = 'AGC [dBm] (chain A)' ptit = 'AGC-A: ' + ptit end 3: begin fname = 'ncob.dat' !y.title = 'f!DR!N [Hz] (chain B)' ptit = 'Received Frequency (Chain B): ' + ptit end 4: begin fname = 'agcb.dat' !y.title = 'AGC [dBm] (chain B)' ptit = 'AGC-B: ' + ptit end endcase print, 'Which time range ?' print, 'Enter minimum time in minutes (-1 for full range)' read, mintime if mintime ne -1 then begin print, 'Enter maximum time in minutes' read, maxtime !x.range(0) = mintime !x.range(1) = maxtime endif else begin !x.range(0) = 0.0 !x.range(1) = (t_end - t_start) * 60.0 endelse print, 'Which Y-range ?' print, 'Enter minimum y (-1 for full range)' read, ymin if ymin ne -1 then begin print, 'Enter maximum y' read, ymax !y.range(0) = ymin !y.range(1) = ymax !y.style = 1 endif else begin !y.range = 0 !y.style = 3 endelse print, 'Connect points by lines? (y/n)' read, dummy if dummy eq 'n' then psy = 3 else psy = 0 ;---- Daten lesen --------------------------------------------------- openr, 1, fname ln = long(0.0) while not eof(1) do begin readf, 1, dummy ln = ln + 1 endwhile close, 1 dat = dblarr(2,ln) openr, 1, fname readf, 1, dat close, 1 dat(0,*) = (dat(0,*) - t_start) * 60.0 ; <=> Minuten von 0 bis ... !p.charsize = 1.5 !p.charthick = 2.0 ;---- Daten plotten --------------------------------------------------- plot, dat(0,*), dat(1,*), $ xtitle = 'TIME [min] (T=0 <=> ' + string(floor(t_start), format = '(I0)') + ':' + string((t_start - floor(t_start)) * 60.0, format = '(D4.1)') + ' LT)', $ xstyle = 1, $ ; psym = 3, $ psym = psy, $ title = ptit ;-------- mean + RMS ---------------------------------- print, 'calculate mean ? (y/n) read, dummy if dummy eq 'y' then begin datmean = 0.0 datanzahl = 0.0 k = long(-1.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 if k lt 0 then k = i ; 1st point in sequence 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.2, 0.87, /normal, $ ' = ' + string(datmean, format='(d7.2)') + ' Hz', $ charsize = 1.2, charthick = 2.0 xyouts, 0.2, 0.82, /normal, $ 'RMS = ' + string(rms, format='(d5.2)') + ' Hz', $ charsize = 1.2, charthick = 2.0 endif else datanzahl = (maxtime - mintime) * 8.0 * 60.0 ;------------------------------------------------------ if medium eq 0 or medium eq 1 then device, /close print, 'Enter new name for output.ps (NCO, AGC)' read, dummy spawn, 'mv output.ps ' + dummy !p.psym = 0 ;!p.charsize = 1.0 ;!p.charthick = 1.0 !p.title = '' !x.range = 0 !x.style = 0 !x.title = '' !y.range = 0 !y.style = 0 !y.title = '' end