pro mav_gse_misg_all_msg_file_read,realtime=realtime ,pathname=pathname, source=source, files=files, rtdir=rtdir
if n_elements(realtime) ne 1 then realtime = keyword_set(pathname) ? 0 : 1
if not keyword_set(files) then begin
if keyword_set(pathname) and ~keyword_set(realtime) then begin
if not keyword_set(source) then source = mav_file_source()
files = file_retrieve(pathname,/last_version,_extra=source)
endif
if keyword_set(realtime) then begin
if not keyword_set(rtdir) then rtdir = ''
rtfiles = file_search( rtdir+'STREAM_*.dat' )
nf = n_elements(rtfiles)
rtfiles = rtfiles[sort(rtfiles)]
rtfiles = rtfiles[nf-abs(realtime):*]
append_array,files,rtfiles
endif
endif
time=0d
nf = n_elements(files) * keyword_set(files)
for fn = 0,nf-1 do begin
bad_message_cntr=0
file = files[fn]
dprint,dlevel=0,'Processing: ',file
rawtcp = strmatch(file,'*STREAM_*',/fold_case)
fi= file_info(file)
if fi.exists then file_open,'r',file,unit=fp,dlevel=3 else continue
brk = 0
while not eof(fp) and not brk do begin
if keyword_set(rawtcp) then begin
buffsize = 0
dummy = 0
readu,fp,dummy,buffsize & byteorder,dummy,buffsize , /swap_if_little_endian
buffsize = buffsize/2
endif else buffsize = 2048L
fs = fstat(fp)
buffsize = (fs.size - fs.cur_ptr)/2 < buffsize
buffer0 = uintarr(buffsize)
readu,fp,buffer0 & byteorder,buffer0, /swap_if_little_endian
if keyword_set(buffer) then buffer = [buffer,buffer0] else buffer=buffer0
dprint,dlevel=1,dwait=5.,fs.cur_ptr,fs.size,100.*fs.cur_ptr/fs.size,buffsize,format='(i8," of ",i8, " bytes (",f3.0,"%), buffsize=",i6)',break_requested=brk
if keyword_set(brk) then stop
mav_sta_misg_decom,buffer = buffer
endwhile
if bad_message_cntr ne 0 then dprint,'Warning!',bad_message_cntr,' Bad Messages' else dprint,'Done'
free_lun,fp
endfor
end