;+ ; Contains the liste_etat procedure ; and associated functions ; ; :Author: ; Philippe Zarka ; ; :History: ; 2003/12/08: Created ; ; 2003/12/08: Last Edit ;- ; Function EIGHT, text while StrLen(text) lt 8 do text = ' ' + text return, text end ;+ ; liste en clair des parametres du mode courant (entete), taille (paquets) ; et position dans le fichier ; ; :Params: ; entete: in, required, type=bytarr(20) ; file header ; lonP: in, required, type=sometype ; longueur (bytes) du paquet de data ; nHFR: in, required, type=sometype ; nHFR paquets successifs de meme mode commencant au paquet nHFR0 ; nHFR0: in, required, type=sometype ; premier paquet de meme mode ; ; :Keywords: ; lun: in, optional, type=sometype ; lun ;- pro LISTE_ETAT, entete, lonP, nHFR, nHFR0, lun=lun mode = [' analysis', ' sounder', 'calibration', 'millisecond'] band = [' A', ' B', ' C', 'H1', 'H2'] & mband = ['07'x, '08'x, '10'x] intABC = [125, 250, 500, 1000] intHF = [10, 20, 40, 80] onoff = [' off', ' on'] Xsw = [' none', ' +X', ' -X', ' +/-X'] filtresABC = [8, 16, 32, 32] filtresHF = [1,2,4,8] if N_elements(lun) eq 0 then lun = -1 printf, lun printf, lun, format='(" mode :", 13x, a11)', $ mode(ishft(entete(2) and '60'x,-5)) printf, lun, $ format='(" number of packets :", i8, " (", i5, " ->", i5, ")")', $ nHFR, nHFR0, nHFR0 + nHFR - 1 printf, lun, format='(" data packet length :", 16x, i8)', lonP printf, lun, format='(" repeat_count_all :", 16x, i8)', entete(8) abch = '' if (entete(4) and '07'x) ne 0 then $ for i=0,2 do if (entete(4) and 2^i) ne 0 then abch = abch + band(i) abch = EIGHT(abch) if (entete(4) and '08'x) ne 0 then abch = abch + EIGHT('H1') $ else abch = abch + EIGHT('') if (entete(4) and '10'x) ne 0 then abch = abch + EIGHT('H2') $ else abch = abch + EIGHT('') printf, lun, format='(" selected band(s) :",a24)', abch abch = '' for i=0,2 do if (entete(4) and mBand(i)) ne 0 then $ abch = abch + EIGHT(strtrim(fix(entete(5+i)),2)) else $ abch = abch + EIGHT('') printf, lun, format='(" repeat_count(s) :",a24)', abch if (entete(4) and '07'x) ne 0 then $ abch = EIGHT(strtrim(filtresABC(entete(9) and '03'x),2)) else $ abch = EIGHT('') for i=1,2 do if (entete(4) and mBand(i)) ne 0 then $ abch = abch + EIGHT(strtrim(filtresHF(entete(9+i) and '03'x),2)) else $ abch = abch + EIGHT('') printf, lun, format='(" number of filters :",a24)', abch if (entete(4) and '07'x) ne 0 then $ abch = EIGHT(strtrim(fix(intABC(entete(9)/64)),2)) else $ abch = EIGHT('') for i=1,2 do if (entete(4) and mBand(i)) ne 0 then $ abch = abch + EIGHT(strtrim(fix(intHF(entete(9+i)/64)*(3-i)),2)) $ else abch = abch + EIGHT('') printf, lun, format='(" integration time (msec) :",a24)', abch if (entete(4) and '18'x) ne 0 then begin abch = EIGHT('') if (entete(4) and '08'x) ne 0 then $ abch = abch + EIGHT(strtrim(fix(entete(12)*25),2)) else $ abch = abch + EIGHT('') if (entete(4) and '10'x) ne 0 then abch = abch + EIGHT(strtrim($ fix((entete(15)+256L*((entete(18) and '80'x) ne 0))*50+25),2)) $ else abch = abch + EIGHT('') printf, lun, format='(" start frequency (kHz) :",a24)', abch abch = EIGHT('') if (entete(4) and '08'x) ne 0 then $ abch = abch + EIGHT(strtrim(fix(entete(13)),2)) else $ abch = abch + EIGHT('') if (entete(4) and '10'x) ne 0 then abch = abch + EIGHT(strtrim($ fix(entete(16)+256L*((entete(18) and '40'x) ne 0)),2)) $ else abch = abch + EIGHT('') printf, lun, format='(" # of frequency steps :",a24)', abch abch = EIGHT('') if (entete(4) and '08'x) ne 0 then $ abch = abch + EIGHT(strtrim(fix(entete(14)*25),2)) else $ abch = abch + EIGHT('') if (entete(4) and '10'x) ne 0 then abch = abch + $ EIGHT(strtrim(fix(entete(17)*50),2)) $ else abch = abch + EIGHT('') printf, lun, format='(" frequency step (kHz) :",a24)', abch abch = EIGHT('') if (entete(4) and '08'x) ne 0 then abch = abch + EIGHT(strtrim(fix($ entete(12)+(max([entete(13),1])-1)*entete(14))*25,2)) $ else abch = abch + EIGHT('') if (entete(4) and '10'x) ne 0 then abch = abch + EIGHT(strtrim(fix($ (entete(15)+256L*((entete(18) and '80'x) ne 0))*50+25+ $ (max([entete(16)+256L*((entete(18) and '40'x) ne 0),1])-1)* $ entete(17)*50),2)) $ else abch = abch + EIGHT('') printf, lun, format='(" stop frequency (kHz) :",a24)', abch endif abch = '' for i=0,2 do if (entete(4) and mBand(i)) ne 0 then $ abch = abch + EIGHT(onoff(ishft(entete(9+i) and '20'x,-5))) else $ abch = abch + EIGHT('') printf, lun, format='(" direction finding :",a24)', abch abch = '' for i=0,2 do if (entete(4) and mBand(i)) ne 0 then $ abch = abch + EIGHT(onoff(ishft(entete(18) and 2^(2-i),i-2))) else $ abch = abch + EIGHT('') printf, lun, format='(" auto-correlation :",a24)', abch abch = '' for i=0,2 do if (entete(4) and mBand(i)) ne 0 then $ abch = abch + EIGHT(onoff(ishft(entete(18) and 2^(5-i),i-5))) else $ abch = abch + EIGHT('') printf, lun, format='(" cross-correlation :",a24)', abch abch = '' for i=0,2 do if (entete(4) and mBand(i)) ne 0 then $ abch = abch + EIGHT(onoff(ishft(entete(9+i) and '10'x,-4))) else $ abch = abch + EIGHT('') printf, lun, format='(" Ez antenna switch :",a24)', abch abch = '' for i=0,2 do if (entete(4) and mBand(i)) ne 0 then $ abch = abch + EIGHT(Xsw(ishft(entete(9+i) and '0c'x,-2))) else $ abch = abch + EIGHT('') printf, lun, format='(" Ex antenna switches :",a24)', abch printf, lun return end