;function HHMMSS, axis, index, value ; ;hour = floor(value) ;minute = floor((value - double(hour)) * 60.0) ;sec = floor((value - double(hour) - double(minute) / 60.0) * 3600.0) ;msec = (value - double(hour) - double(minute) / 60.0 - double(sec) / 3600.0) * 3600000.0 ; ;;return, string(hour, minute, sec, msec, $ ;; format = "(i2.2, ':', i2.2, ':', i2.2, '.', d)") ; ;if msec ge 1000.0 then begin ; sec = sec + 1 ; msec = msec - 1000.0 ;endif ; ;if msec ge 500.0 then sec = sec + 1 ; ;if sec ge 60.0 then begin ; minute = minute + 1 ; sec = sec - 60.0 ;endif ;if minute ge 60.0 then begin ; hour = hour + 1 ; minute = minute - 60.0 ;endif ; ;return, string(hour, minute, sec, $ ; format = "(i2.2, ':', i2.2, ':', i2.2)") ;end ; ; Main-Program: pro hk3, arg chain = ' ' if not (keyword_set(arg)) then begin ;if (arg ne 'a' and arg ne 'b') then begin print, "Usage: hk3, 'chain'" print, ' ' while not (chain eq 'a' or chain eq 'b') do begin print, 'Enter chain:' read, chain endwhile endif else chain = arg print, ' ' 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 window, 0, xsize=600., ysize=400. ; !p.color=255 ; !p.background=0 end else: begin print, 'Programmende' stop end endcase dummy = ' ' ; 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 = 'TIME AFTER START OF TEST [min]' end else: begin t_sub = 0.0 xtit = 'UT [min]' end endcase t_start = t_start - t_sub t_end = t_end - t_sub print, 'Which time range (in minutes, remember t0!) ?' print, 'Enter min time (-1 for full time)' 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, 'Enter test name:' read, dummy if chain eq 'a' then $ ptit = 'HK3-A parameters: ' + dummy $ else $ ptit = 'HK3-B parameters: ' + dummy print, 'Enter date of test:' read, dummy ptit = ptit + ', ' + dummy xyouts, 0.5, 0.5, /normal, '!5' ; setzt den Font !p.multi = [0, 1, 5, 0, 0] ; legt fest, wieviele plots auf 1 seite kommen ; !p.psym = 0 ; punkte durch linien verbunden ; !p.psym = 3 ; keine linien sondern punkte !x.thick = 3.0 !y.thick = 3.0 ;!p.charsize = 2.0 !p.charsize = 1.5 !p.charthick = 2.0 fn = ' ' ; DDB Spin fn = 'ddb_sp' + chain + '.dat' openr, 1, fn 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, fn readf, 1, dat close, 1 dat(0,*) = (dat(0,*) - t_sub) * 60.0 ; <=> Minuten !p.region = [0.0, 4./5., 1.0, 1.0] plot, dat(0,*), dat(1,*), $ position = [0.1, 4./5., 1.0, 1.0], $ xtitle = ' ', $ yrange = [min(dat(1,*))-1.0, max(dat(1,*))+1.0], $ ystyle = 1, $ ytitle = 'DDB Spin [rpm]', $ xtickname = replicate(' ', 30), $ xticklen = 0.03 ; DDB Mission Phase fn = 'ddb_mp' + chain + '.dat' openr, 1, fn 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, fn readf, 1, dat close, 1 dat(0,*) = (dat(0,*) - t_sub) * 60.0 ; <=> Minuten for i=long(0), ln-1 do begin case dat(1,i) of 0.0: ; entry 3.0: dat(1,i) = 1.0 ; ground co 12.0: dat(1,i) = 2.0 ; ground co suspended 15.0: dat(1,i) = 3.0 ; ground co deactivated 243.0: dat(1,i) = 4.0 ; flight co 252.0: dat(1,i) = 5.0 ; flight co suspended 255.0: dat(1,i) = 6.0 ; flight co deactivated else: dat(1,i) = -1.0 endcase endfor !p.region = [0.0, 3./5., 1.0, 4./5.] plot, dat(0,*), dat(1,*), $ position = [0.1, 3./5., 1.0, 4./5.], $ xtitle = ' ', $ ytitle = 'DDB Mission Phase', $ ystyle = 1, $ yrange = [-2., 7.], $ yticks = 9, $ ytickv = [-2., -1., 0., 1., 2., 3., 4., 5., 6., 7.], $ ytickname = [' ', 'undef', 'ENTR_DESC', 'GCO', 'GCO_sus', 'GCO_dea', 'FCO', 'FCO_sus', 'FCO_dea', ' '], $ yminor = 1, $ xtickname = replicate(' ', 30), $ xticklen = 0.03 ; DDB altitude fn = 'ddb_al' + chain + '.dat' openr, 1, fn 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, fn readf, 1, dat close, 1 dat(0,*) = (dat(0,*) - t_sub) * 60.0 ; <=> Minuten !p.region = [0.0, 2./5., 1.0, 3./5.] plot, dat(0,*), dat(1,*), $ position = [0.1, 2./5., 1.0, 3./5.], $ xtitle = ' ', $ yrange = [min(dat(1,*))-1.0, max(dat(1,*))+1.0], $ ystyle = 1, $ ytitle = 'DDB Altitude [km]', $ xtickname = replicate(' ', 30), $ xticklen = 0.03 ; DDB altitude flag, 0: RAU, 1: TAT fn = 'ddb_af' + chain + '.dat' openr, 1, fn 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, fn readf, 1, dat close, 1 dat(0,*) = (dat(0,*) - t_sub) * 60.0 ; <=> Minuten !p.region = [0.0, 1./5., 1.0, 2./5.] plot, dat(0,*), dat(1,*), $ position = [0.1, 1./5., 1.0, 2./5.], $ xtitle = ' ', $ ytitle = 'DDB Alt-source', $ ystyle = 1, $ yrange = [-1., 2.], $ yticks = 3, $ ytickv = [-1., 0., 1., 2.], $ ytickname = [' ', 'RAU', 'TAT', ' '], $ yminor = 1, $ xtickname = replicate(' ', 30), $ xticklen = 0.03 ; DDB t0 flag, 1: before, 2: after, 0: undefined fn = 'ddb_t0' + chain + '.dat' openr, 1, fn 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, fn readf, 1, dat close, 1 dat(0,*) = (dat(0,*) - t_sub) * 60.0 ; <=> Minuten !p.region = [0.0, 0./5., 1.0, 1./5.] plot, dat(0,*), dat(1,*), $ position = [0.1, 0./5., 1.0, 1./5.], $ xtitle = xtit, $ xstyle = 1, $ ytitle = 'DDB t!L0!N', $ ystyle = 1, $ yrange = [-1., 3.], $ yticks = 4, $ ytickv = [-1., 0., 1., 2., 3.], $ ytickname = [' ', 'undef', 'before', 'after', ' '], $ yminor = 1, $ xticklen = 0.03 xyouts, 0.55, 1.0, '!A' + ptit + '!N', $ /normal, $ alignment = 0.5, $ charsize = 1.3, $ charthick = 2.0 if medium eq 0 then device, /close !x.range = 0 !x.thick = 1.0 !y.range = 0 !y.thick = 1.0 !p.multi = 0 !p.psym = 0 !p.charsize = 1.0 !p.charthick = 1.0 !p.title = '' !p.region = 0 end