pro mvn_lpw_r_header, filename,output,strip_pad = strip_pad, wrapper = wrapper, compressed=compressed,packet=packet
t_start=SYSTIME(1,/seconds)
t1=SYSTIME(1,/seconds)
print,'r_header filename ',filename
filename = filename
newfile_unsigned = read_binary(filename, data_type = 12,endian='big')
newfile_signed = read_binary(filename, data_type = 2,endian='big')
size_file = size(newfile_unsigned)
samplerate = samplerate
concatention = 'on'
If (keyword_set(compressed)) Then compression = 'on' Else compression = 'off'
If(keyword_set(wrapper)) Then place = 3 Else place = 1
place = 0
if ishft(newfile_unsigned[0],-11) eq 1 then place=0 else place=1
If(keyword_set(strip_pad)) Then offset3 = -1 Else offset3 = 0
offset1 = 7
offset2 = -1
len_offset=9
If (keyword_set(packet)) EQ 0 Then packet=['HSK','EUV','AVG','SPEC','HSBM','WPK']
tmp = where(packet EQ 'HSK',nn_act_ATR)
tmp = where(packet EQ 'EUV',nn_act_EUV)
tmp = where(packet EQ 'HSK',nn_act_ADR)
tmp = where(packet EQ 'HSK',nn_act_HSK)
tmp = where(packet EQ 'AVG',nn_act_SWP1)
tmp = where(packet EQ 'AVG',nn_act_SWP2)
tmp = where(packet EQ 'AVG',nn_act_ACT)
tmp = where(packet EQ 'AVG',nn_act_PAS)
tmp = where(packet EQ 'SPEC',nn_act_ACT_LF)
tmp = where(packet EQ 'SPEC',nn_act_ACT_MF)
tmp = where(packet EQ 'SPEC',nn_act_ACT_HF)
tmp = where(packet EQ 'SPEC',nn_act_PAS_LF)
tmp = where(packet EQ 'SPEC',nn_act_PAS_MF)
tmp = where(packet EQ 'SPEC',nn_act_PAS_HF)
tmp = where(packet EQ 'HSBM',nn_act_HSBM_LF)
tmp = where(packet EQ 'HSBM',nn_act_HSBM_MF)
tmp = where(packet EQ 'HSBM',nn_act_HSBM_HF)
tmp = where(packet EQ 'WPK',nn_act_w1)
tmp = where(packet EQ 'WPK',nn_act_w2)
tmp = where(packet EQ 'WPK',nn_act_w3)
tmp = where(packet EQ 'WPK',nn_act_w4)
tmp = where(packet EQ 'WPK',nn_act_w5)
tmp = where(packet EQ 'HSBM',nn_act_htime)
t2=systime(1,/seconds)
Print,' ## Read the binary file took ',t2-t1,' seconds ##'
SC_CLK1_gst = !values.f_nan
SC_CLK2_gst = !values.f_nan
APID2 = !values.f_nan
length2 = !values.f_nan
SC_CLK3_gst = !values.f_nan
SC_CLK4_gst = !values.f_nan
if newfile_unsigned(0) eq 60304 then begin
t1=systime(1,/seconds)
nn_size = n_elements(newfile_unsigned)
tmp1 = newfile_unsigned[0:nn_size-1-18] EQ 60304
tmp2 = newfile_unsigned[9:nn_size-1-9] EQ 260
tmp3 = newfile_unsigned[10:nn_size-1-8] EQ 256
tmp4 = newfile_unsigned[15:nn_size-1-3] EQ 43049
tmp5 = newfile_unsigned[16:nn_size-1-2] EQ 195
qq = where(tmp1*tmp2*tmp3*tmp4*tmp5 ,nq)
qq =qq+19
APID2 = newfile_unsigned(qq) mod 256
SC_CLK1_gst = double(newfile_unsigned[qq-13]*16.^4)+double(newfile_unsigned[qq-12])
SC_CLK2_gst = double(newfile_unsigned[qq-11] )
SC_CLK3_gst = double(newfile_unsigned[qq+3]*16.^4) +double(newfile_unsigned[qq+4])
SC_CLK4_gst = double(newfile_unsigned[qq+5] )
length2 = newfile_unsigned[qq+2]+2
tmp = 0*newfile_signed
for ii=0,nq-1 do tmp[ qq[ii] : (qq[ii]+length2[ii]/2+2)]=1
qq1 = where(tmp EQ 1,nq1)
newfile_unsigned = reform(newfile_unsigned[qq1])
newfile_signed = reform(newfile_signed[qq1])
tmp = 0*newfile_byte
for ii=0,nq-1 do tmp[ 2* qq[ii] : 2* (qq[ii]+length2[ii]/2+2) +1 ]=1
qq1 = where(tmp EQ 1,nq1)
t2=systime(1,/seconds)
Print,' ## Remove extra information took ',t2-t1,' seconds ##'
endif
t1=systime(1,/seconds)
counter=0d
counter_all1=counter
while counter LT n_elements(newfile_unsigned) do begin
str1='(A4,I,A4,'+strcompress(floor(newfile_unsigned[counter+2]+1)/2 + 3,/remove_all)+'z)'
counter=double(counter + floor(newfile_unsigned[counter+place+2]+1)/2 + 3) + place
counter_all1 = [counter_all1,counter]
endwhile
if counter_all1[n_elements(counter_all1)-1] GE n_elements(newfile_unsigned) then counter_all1=counter_all1[0:n_elements(counter_all1)-2]
length=newfile_unsigned[counter_all1+place+2]
sizelength = size(length)
data_fft = fltarr(sizelength(1),max(length)-6)
DFB_header = strarr(sizelength(1),16)
vers = fltarr(sizelength(1))
type = fltarr(sizelength(1))
SHF = fltarr(sizelength(1))
APID = fltarr(sizelength(1))
GF = fltarr(sizelength(1))
SC = fltarr(sizelength(1))
length2 = fltarr(sizelength(1))
data = fltarr(1)
y = fltarr(sizelength(1),30)
SC_CLK1 = dblarr(sizelength(1))
SC_CLK2 = fltarr(sizelength(1))
course_clk = fltarr(sizelength(1))
ORB_MD = fltarr(sizelength(1))
MC_LEN = fltarr(sizelength(1))
SMP_AVG = fltarr(sizelength(1))
wave_config = fltarr(sizelength(1))
EUV_config = fltarr(sizelength(1))
ADR_config = fltarr(sizelength(1))
HSK_config = fltarr(sizelength(1))
ATR_config = fltarr(sizelength(1))
xfer_time = !values.f_nan
cap_time = !values.f_nan
htime_type = !values.f_nan
p1 = 0L
p2 = 0L
p3 = 0L
p4 = 0L
p5 = 0L
p6 = 0L
p7 = 0L
p8 = 0L
p9 = 0L
p10 = 0L
p11 = 0L
p12 = 0L
p13 = 0L
p14 = 0L
p15 = 0L
p16 = 0L
p17 = 0L
p18 = 0L
p19 = 0L
p20 = 0L
p21 = 0L
p22 = 0L
p23 = 0L
i = 0L
iii = 0L
t2=systime(1,/seconds)
Print,' ## First while-loop, it took ',t2-t1,' seconds ##'
t1=systime(1,/seconds)
mvn_lpw_r_mask,mask16,mask8,bin_c,index_arr,flip_8
counter=0d
for ni=0L, n_elements(length)-1 do begin
tmp = [[mask16(newfile_unsigned(counter+place+0),*)],[mask16(newfile_unsigned(counter+place+1),*)]]
vers(i) = total(tmp[0:2] *bin_c[2-index_arr[0:2]] )
type(i) = tmp[3]
SHF(i) = tmp[4]
APID(i) = total(tmp[5:15] *bin_c[10-index_arr[0:10]] )
GF(i) = tmp[16]*2+tmp[17]
SC(i) = total(tmp[18:31] *bin_c[13-index_arr[0:13]] )
tmp = [mask16[newfile_unsigned[counter+place+2],*]]
length_dummy = total(tmp[0:15] *bin_c[15-index_arr[0:15]] )
length2(i) = length_dummy + 2
tmp = [[mask16[newfile_unsigned[counter+place+3],*]],[mask16[newfile_unsigned[counter+place+4],*]]]
SC_CLK1(i) = total(double(tmp[0:31] *bin_c[31-index_arr[0:31]] ))
tmp = [mask16[newfile_unsigned[counter+place+5],*]]
SC_CLK2(i) = total(tmp[0:15] *bin_c[15-index_arr[0:15]] )
counter = double(counter + floor(length[i]+1)/2 + 3) + place
i = i + 1L
endfor
IF total(length2 GT 2048) GT 0 then print,'Warning: the length of ',total(length2 GT 2048),' packet are too long'
IF total(length2 GT 2048) GT 0 then stanna
t2=systime(1,/seconds)
Print,' ## Second loop find APID took ',t2-t1,' seconds ##'
t1=systime(1,/seconds)
pkt_ATR = where(APID EQ 81,nn_ATR)
pkt_EUV = where(APID EQ 82,nn_EUV)
pkt_ADR = where(APID EQ 83,nn_ADR)
pkt_HSK = where(APID EQ 84,nn_HSK)
pkt_SWP1 = where(APID EQ 85,nn_SWP1)
pkt_SWP2 = where(APID EQ 86,nn_SWP2)
pkt_ACT = where(APID EQ 87,nn_ACT)
pkt_PAS = where(APID EQ 88,nn_PAS)
pkt_ACT_LF = where(APID EQ 89,nn_ACT_LF)
pkt_ACT_MF = where(APID EQ 90,nn_ACT_MF)
pkt_ACT_HF = where(APID EQ 91,nn_ACT_HF)
pkt_PAS_LF = where(APID EQ 92,nn_PAS_LF)
pkt_PAS_MF = where(APID EQ 93,nn_PAS_MF)
pkt_PAS_HF = where(APID EQ 94,nn_PAS_HF)
pkt_HSBM_LF = where(APID EQ 95,nn_HSBM_LF)
pkt_HSBM_MF = where(APID EQ 96,nn_HSBM_MF)
pkt_HSBM_HF = where(APID EQ 97,nn_HSBM_HF)
pkt_w1 = where(APID EQ 98,nn_w1)
pkt_w2 = where(APID EQ 99,nn_w2)
pkt_w3 = where(APID EQ 100,nn_w3)
pkt_w4 = where(APID EQ 101,nn_w4)
pkt_w5 = where(APID EQ 102,nn_w5)
pkt_htime = where(APID EQ 103,nn_htime)
E12_HF_GB = fltarr(nn_PAS_HF >1)
HSBM_LF_i = -1.
HSBM_MF_i = -1.
HSBM_HF_i = -1.
length = length + 2
counter_specific=counter_all1
t2=systime(1,/seconds)
Print,' ## Third while-loop, it took ',t2-t1,' seconds ##'
total_ATR_length = 0
if nn_ATR GT 0 and nn_act_ATR GT 0 then begin
t1=SYSTIME(1,/seconds)
SWP = fltarr(nn_ATR,128)
ATR_W_BIAS1 = fltarr(nn_ATR)
ATR_W_GUARD1 = fltarr(nn_ATR)
ATR_W_STUB1 = fltarr(nn_ATR)
Reserved1 = fltarr(nn_ATR)
ATR_LP_BIAS1 = fltarr(nn_ATR)
ATR_LP_GUARD1 = fltarr(nn_ATR)
ATR_LP_STUB1 = fltarr(nn_ATR)
Reserved2 = fltarr(nn_ATR)
ATR_W_BIAS2 = fltarr(nn_ATR)
ATR_W_GUARD2 = fltarr(nn_ATR)
ATR_W_STUB2 = fltarr(nn_ATR)
Reserved3 = fltarr(nn_ATR)
ATR_LP_BIAS2 = fltarr(nn_ATR)
ATR_LP_GUARD2 = fltarr(nn_ATR)
ATR_LP_STUB2 = fltarr(nn_ATR)
Reserved4 = fltarr(nn_ATR)
FOR ni=0L,nn_ATR-1 do begin
i = pkt_ATR[ni]
counter = counter_specific[i]
dummy = string(newfile_signed[counter+place+offset1-1],format = '(B016)')
reads,dummy,orbmode_dummy,ATRconfig_dummy,format = '(B04,B012)'
ORB_MD(i) = orbmode_dummy
ATR_config(i) = ATRconfig_dummy
SWP(p6,*) = newfile_signed[counter+place+offset1:counter+place+128+offset1+offset2]
ATR_W_BIAS1(p6) = newfile_signed[counter+place+offset1+offset2+128+1]
ATR_W_GUARD1(p6) = newfile_signed[counter+place+offset1+offset2+128+2]
ATR_W_STUB1(p6) = newfile_signed[counter+place+offset1+offset2+128+3]
Reserved1(p6) = newfile_signed[counter+place+offset1+offset2+128+4]
ATR_LP_BIAS1(p6) = newfile_signed[counter+place+offset1+offset2+128+5]
ATR_LP_GUARD1(p6) = newfile_signed[counter+place+offset1+offset2+128+6]
ATR_LP_STUB1(p6) = newfile_signed[counter+place+offset1+offset2+128+7]
Reserved2(p6) = newfile_signed[counter+place+offset1+offset2+128+8]
ATR_W_BIAS2(p6) = newfile_signed[counter+place+offset1+offset2+128+9]
ATR_W_GUARD2(p6) = newfile_signed[counter+place+offset1+offset2+128+10]
ATR_W_STUB2(p6) = newfile_signed[counter+place+offset1+offset2+128+11]
Reserved3(p6) = newfile_signed[counter+place+offset1+offset2+128+12]
ATR_LP_BIAS2(p6) = newfile_signed[counter+place+offset1+offset2+128+13]
ATR_LP_GUARD2(p6) = newfile_signed[counter+place+offset1+offset2+128+14]
ATR_LP_STUB2(p6) = newfile_signed[counter+place+offset1+offset2+128+15]
Reserved4(p6) = newfile_signed[counter+place+offset1+offset2+128+16]
p6 = p6 + 1
ENDFOR
t2=SYSTIME(1,/seconds)
print,'#### ATR ',ni,i,' time ', t2-t1 ,' seconds '
ATR_SC = SC[pkt_ATR]
for seqIndx = 1, nn_ATR-1 do $
if ATR_SC[seqIndx] NE ATR_SC[seqIndx-1]+1 then print, 'ATR Sequence Count Skipped. seqIndex =', seqIndx, ' SC(seqIndx-1) =', ATR_SC[seqIndx-1], ' SC(seqIndx) =', ATR_SC[seqIndx]
if (ATR_SC[nn_ATR-1]-ATR_SC[0]+1) NE p6 then print, 'ATR Sequence Count Failed. Should be', p6, ' Reporting ',(ATR_SC[nn_ATR-1]-ATR_SC[0]+1)
total_ATR_length = total(length[pkt_ATR]+7)
endif else begin
SWP = -1 & ATR_W_BIAS1 = -1 & ATR_W_GUARD1 = -1 & ATR_W_STUB1 = -1 & $
Reserved1 = -1 & ATR_LP_BIAS1 = -1 & ATR_LP_GUARD1 = -1 & ATR_LP_STUB1 = -1 & $
Reserved2 = -1 & ATR_W_BIAS2 = -1 & ATR_W_GUARD2 = -1 & ATR_W_STUB2 = -1 & $
Reserved3 = -1 & ATR_LP_BIAS2 = -1 & ATR_LP_GUARD2 = -1 & ATR_LP_STUB2 = -1 & $
Reserved4 = -1 & ENDELSE
total_euv_length = 0
if nn_EUV GT 0 and nn_act_EUV GT 0 then begin
t1=SYSTIME(1,/seconds)
THERM = fltarr(nn_EUV,16)
DIODE_A = fltarr(nn_EUV,16)
DIODE_B = fltarr(nn_EUV,16)
DIODE_C = fltarr(nn_EUV,16)
DIODE_D = fltarr(nn_EUV,16)
FOR ni=0L,nn_EUV-1 do begin
i = pkt_EUV[ni]
counter = counter_specific[i]
EUV_config[i] = newfile_unsigned[counter+place+offset1-1]
if compression EQ 'on' then begin
ptr=1L*(counter+place+offset1)
ptr_end=ptr+(length2[i]-len_offset)
nn_e=0
therm[ni,*] = mvn_lpw_r_block16(newfile_unsigned,ptr,nn_e,mask16,bin_c,index_arr,16,edac_on)
if edac_on EQ 1 then print,'The compression check EDAC failed in packet no ',p7,i,counter,counter_all1[i],' pointer ',ptr,nn_e,' Packet EUV temp'
diode_a[ni,*] = mvn_lpw_r_block16(newfile_unsigned,ptr,nn_e,mask16,bin_c,index_arr,16,edac_on)
if edac_on EQ 1 then print,'The compression check EDAC failed in packet no ',p7,i,counter,counter_all1[i],' pointer ',ptr,nn_e,' Packet EUV DIODE A'
diode_b[ni,*] = mvn_lpw_r_block16(newfile_unsigned,ptr,nn_e,mask16,bin_c,index_arr,16,edac_on)
if edac_on EQ 1 then print,'The compression check EDAC failed in packet no ',p7,i,counter,counter_all1[i],' pointer ',ptr,nn_e,' Packet EUV DIODE B'
diode_c[ni,*] = mvn_lpw_r_block16(newfile_unsigned,ptr,nn_e,mask16,bin_c,index_arr,16,edac_on)
if edac_on EQ 1 then print,'The compression check EDAC failed in packet no ',p7,i,counter,counter_all1[i],' pointer ',ptr,nn_e,' Packet EUV DIODE C'
diode_d[ni,*] = mvn_lpw_r_block16(newfile_unsigned,ptr,nn_e,mask16,bin_c,index_arr,16,edac_on)
if edac_on EQ 1 then print,'The compression check EDAC failed in packet no ',p7,i,counter,counter_all1[i],' pointer ',ptr,nn_e,' Packet EUV DIODE D'
end else begin
for z = 0,31,2 do begin
dummy = string(newfile_signed[counter+place+offset1+z],format='(B016)')+string(newfile_signed[counter+place+offset1+z+1],format = '(B016)')
reads, dummy, THERM_dummy, format = '(B032)'
THERM[ni,z/2] = THERM_dummy
dummy = string(newfile_signed[counter+place+offset1+z+32],format = '(B016)')+string(newfile_signed[counter+place+offset1+z+1+32],format = '(B016)')
reads, dummy, DIODEA_dummy, format = '(B032)'
DIODE_A[ni,z/2] = DIODEA_dummy
dummy = string(newfile_signed[counter+place+offset1+z+2*32],format = '(B016)')+string(newfile_signed[counter+place+offset1+z+1+2*32], format = '(B016)')
reads, dummy, DIODEB_dummy, format = '(B032)'
DIODE_B[ni,z/2] = DIODEB_dummy
dummy = string(newfile_signed[counter+place+offset1+z+3*32],format = '(B016)')+string(newfile_signed[counter+place+offset1+z+1+3*32], format = '(B016)')
reads, dummy, DIODEC_dummy, format = '(B032)'
DIODE_C[ni,z/2] = DIODEC_dummy
dummy = string(newfile_signed[counter+place+offset1+z+4*32],format = '(B016)')+string(newfile_signed[counter+place+offset1+z+1+4*32], format = '(B016)')
reads, dummy, DIODED_dummy, format = '(B032)'
DIODE_D[ni,z/2] = DIODED_dummy
endfor
end
p7 = p7 + 1
ENDFOR
t2=SYSTIME(1,/seconds)
print,'#### EUV ',ni,i,' time ', t2-t1,' seconds'
EUV_SC = SC[pkt_EUV]
for seqIndx = 1, nn_EUV-1 do $
if EUV_SC[seqIndx] NE EUV_SC[seqIndx-1]+1 then print, 'EUV Sequence Count Skipped. seqIndex =', seqIndx, ' SC(seqIndx-1) =', EUV_SC[seqIndx-1], ' SC(seqIndx) =', EUV_SC[seqIndx]
if (EUV_SC[nn_EUV-1]-EUV_SC[0]+1) NE p7 then print, 'EUV Sequence Count Failed. Should be', p7, ' Reporting ',(EUV_SC[nn_EUV-1]-EUV_SC[0]+1)
total_euv_length = total(length[pkt_EUV]+7)
endif ELSE BEGIN
THERM = -1 & DIODE_A = -1 & DIODE_B = -1 & DIODE_C = -1 & DIODE_D = -1 & ENDELSE
total_adr_length = 0
if nn_ADR GT 0 and nn_act_ADR GT 0 then begin
t1=SYSTIME(1,/seconds)
ADR_DYN_OFFSET1 = fltarr(nn_ADR)
ADR_LP_BIAS1 = fltarr(nn_ADR,127)
ADR_DYN_OFFSET2 = fltarr(nn_ADR)
ADR_LP_BIAS2 = fltarr(nn_ADR,127)
ADR_W_BIAS1 = fltarr(nn_ADR)
ADR_W_GUARD1 = fltarr(nn_ADR)
ADR_W_STUB1 = fltarr(nn_ADR)
ADR_W_V1 = fltarr(nn_ADR)
ADR_LP_GUARD1 = fltarr(nn_ADR)
ADR_LP_STUB1 = fltarr(nn_ADR)
ADR_W_BIAS2 = fltarr(nn_ADR)
ADR_W_GUARD2 = fltarr(nn_ADR)
ADR_W_STUB2 = fltarr(nn_ADR)
ADR_W_V2 = fltarr(nn_ADR)
ADR_LP_GUARD2 = fltarr(nn_ADR)
ADR_LP_STUB2 = fltarr(nn_ADR)
FOR ni=0L,nn_ADR-1 do begin
i = pkt_ADR[ni]
counter = counter_specific[i]
dummy = string(newfile_signed[counter+place+offset1-1],format = '(B016)')
reads,dummy,orbmode_dummy,ADRconfig_dummy,format = '(B04,B012)'
ORB_MD(i) = orbmode_dummy
ADR_config(i) = ADRconfig_dummy
ADR_DYN_OFFSET1(p8) = newfile_signed[counter+place+offset1]
ADR_LP_BIAS1(p8,*) = newfile_signed[counter+place+offset1+1:counter+place+offset1+1+127+offset2]
ADR_DYN_OFFSET2(p8) = newfile_signed[counter+place+offset1+2+127+offset2]
ADR_LP_BIAS2(p8,*) = newfile_signed[counter+place+offset1+3+127+offset2:counter+place+offset1+3+2*(127+offset2)]
ADR_W_BIAS1(p8) = newfile_signed[counter+place+offset1+4+2*(127+offset2)]
ADR_W_GUARD1(p8) = newfile_signed[counter+place+offset1+5+2*(127+offset2)]
ADR_W_STUB1(p8) = newfile_signed[counter+place+offset1+6+2*(127+offset2)]
ADR_W_V1(p8) = newfile_signed[counter+place+offset1+7+2*(127+offset2)]
ADR_LP_GUARD1(p8) = newfile_signed[counter+place+offset1+8+2*(127+offset2)]
ADR_LP_STUB1(p8) = newfile_signed[counter+place+offset1+9+2*(127+offset2)]
ADR_W_BIAS2(p8) = newfile_signed[counter+place+offset1+10+2*(127+offset2)]
ADR_W_GUARD2(p8) = newfile_signed[counter+place+offset1+11+2*(127+offset2)]
ADR_W_STUB2(p8) = newfile_signed[counter+place+offset1+12+2*(127+offset2)]
ADR_W_V2(p8) = newfile_signed[counter+place+offset1+13+2*(127+offset2)]
ADR_LP_GUARD2(p8) = newfile_signed[counter+place+offset1+14+2*(127+offset2)]
ADR_LP_STUB2(p8) = newfile_signed[counter+place+offset1+15+2*(127+offset2)]
p8 = p8 + 1
ENDFOR
t2=SYSTIME(1,/seconds)
print,'#### ADR ',ni,i,' time ', t2-t1,' seconds'
ADR_SC = SC[pkt_ADR]
for seqIndx = 1, nn_ADR-1 do $
if ADR_SC[seqIndx] NE ADR_SC[seqIndx-1]+1 then print, 'ADR Sequence Count Skipped. seqIndex =', seqIndx, ' SC(seqIndx-1) =', ADR_SC[seqIndx-1], ' SC(seqIndx) =', ADR_SC[seqIndx]
if (ADR_SC[nn_ADR-1]-ADR_SC[0]+1) NE p8 then print, 'ADR Sequence Count Failed. Should be', p8, ' Reporting ',(ADR_SC[nn_ADR-1]-ADR_SC[0]+1)
total_adr_length = total(length[pkt_ADR]+7)
endif ELSE BEGIN
ADR_DYN_OFFSET1 = -1 & ADR_LP_BIAS1 = -1 & ADR_DYN_OFFSET2 = -1 & ADR_LP_BIAS2 = -1 & $
ADR_W_BIAS1 = -1 & ADR_W_GUARD1 = -1 & ADR_W_STUB1 = -1 & ADR_W_V1 = -1 & $
ADR_LP_GUARD1 = -1 & ADR_LP_STUB1 = -1 & ADR_W_BIAS2 = -1 & ADR_W_GUARD2 = -1 & $
ADR_W_STUB2 = -1 & ADR_W_V2 = -1 & ADR_LP_GUARD2 = -1 & ADR_LP_STUB2 = -1 & ENDELSE
total_hsk_length = 0
if nn_HSK GT 0 and nn_act_HSK GT 0 then begin
t1=SYSTIME(1,/seconds)
Preamp_Temp1 = fltarr(nn_HSK)
Preamp_Temp2 = fltarr(nn_HSK)
Beb_Temp = fltarr(nn_HSK)
plus12va = fltarr(nn_HSK)
minus12va = fltarr(nn_HSK)
plus5va = fltarr(nn_HSK)
minus5va = fltarr(nn_HSK)
plus90va = fltarr(nn_HSK)
minus90va = fltarr(nn_HSK)
CMD_ACCEPT = fltarr(nn_HSK)
CMD_REJECT = fltarr(nn_HSK)
MEM_SEU_COUNTER = fltarr(nn_HSK)
INT_STAT = fltarr(nn_HSK)
CHKSUM = fltarr(nn_HSK)
EXT_STAT = fltarr(nn_HSK)
DPLY1_CNT = fltarr(nn_HSK)
DPLY2_CNT = fltarr(nn_HSK)
FOR ni=0L,nn_HSK-1 do begin
i = pkt_HSK[ni]
counter = counter_specific[i]
HSK_config(i) = newfile_unsigned[counter+place+offset1-1]
Preamp_Temp1(p9) = newfile_signed[counter+place+offset1]
Preamp_Temp2(p9) = newfile_signed[counter+place+offset1+1]
Beb_Temp(p9) = newfile_signed[counter+place+offset1+2]
plus12va(p9) = newfile_signed[counter+place+offset1+3]
minus12va(p9) = newfile_signed[counter+place+offset1+4]
plus5va(p9) = newfile_signed[counter+place+offset1+5]
minus5va(p9) = newfile_signed[counter+place+offset1+6]
plus90va(p9) = newfile_signed[counter+place+offset1+7]
minus90va(p9) = newfile_signed[counter+place+offset1+8]
CMD_ACCEPT(p9) = newfile_signed[counter+place+offset1+9]
CMD_REJECT(p9) = newfile_signed[counter+place+offset1+10]
MEM_SEU_COUNTER(p9) = newfile_signed[counter+place+offset1+11]
INT_STAT(p9) = newfile_signed[counter+place+offset1+12]
CHKSUM(p9) = newfile_signed[counter+place+offset1+13]
EXT_STAT(p9) = newfile_signed[counter+place+offset1+14]
DPLY1_CNT(p9) = newfile_signed[counter+place+offset1+15]
DPLY2_CNT(p9) = newfile_signed[counter+place+offset1+16]
p9 = p9 + 1
ENDFOR
t2=SYSTIME(1,/seconds)
print,'#### HSK ',ni,i,' time ', t2-t1,' seconds'
HSK_SC = SC[pkt_HSK]
for seqIndx = 1, nn_HSK-1 do $
if HSK_SC[seqIndx] NE HSK_SC[seqIndx-1]+1 then print, 'HSK Sequence Count Skipped. seqIndex =', seqIndx, ' SC(seqIndx-1) =', HSK_SC[seqIndx-1], ' SC(seqIndx) =', HSK_SC[seqIndx]
if (HSK_SC[nn_HSK-1]-HSK_SC[0]+1) NE p9 then print, 'HSK Sequence Count Failed. Should be', p9, ' Reporting ',(HSK_SC(nn_HSK-1)-HSK_SC(0)+1)
total_hsk_length = total(length[pkt_HSK]+7)
endif ELSE BEGIN
Preamp_Temp1 = -1 & Preamp_Temp2 = -1 & Beb_Temp = -1 & plus12va = -1 & minus12va = -1 & $
plus5va = -1 & minus5va = -1 & plus90va = -1 & minus90va = -1 & CMD_ACCEPT = -1 & CMD_REJECT = -1 & $
MEM_SEU_COUNTER = -1 & INT_STAT = -1 & CHKSUM = -1 & EXT_STAT = -1 & $
DPLY1_CNT = -1 & DPLY2_CNT = -1 & ENDELSE
total_swp1_length = 0
if nn_SWP1 GT 0 and nn_act_SWP1 GT 0 then begin
t1=SYSTIME(1,/seconds)
SWP1_I1 = fltarr(nn_SWP1,128)
SWP1_V2 = fltarr(nn_SWP1,128)
I_ZERO1 = fltarr(nn_SWP1)
SWP1_DYN_OFFSET1 = fltarr(nn_SWP1)
FOR ni=0L,nn_SWP1-1 do begin
i = pkt_SWP1[ni]
counter = counter_specific[i]
dummy = string(newfile_unsigned[counter+place+offset1-1],format = '(B016)')
reads,dummy,orbmode_dummy,nothing,MClen_dummy,nothing2,SMPAVG_dummy,format = '(B04,B01,B03,B05,B03)'
ORB_MD[i] = orbmode_dummy
MC_LEN[i] = MClen_dummy
SMP_AVG[i] = SMPAVG_dummy
I_ZERO1[ni] = newfile_signed[counter+place+offset1]
SWP1_DYN_OFFSET1(ni) = newfile_signed[counter+place+offset1+1]
if compression EQ 'on' then begin
ptr=1L*(counter+place+offset1+2)
ptr_end=ptr+(length2[i]-len_offset-4)
nn_e=0
SWP1_I1[ni,*] = mvn_lpw_r_block16(newfile_unsigned,ptr,nn_e,mask16,bin_c,index_arr,128,edac_on)
if edac_on EQ 1 then print,'The compression check EDAC failed in packet no ',p7,i,ni,' pointer ',ptr,nn_e,' Packat SWP1 I1'
SWP1_V2[ni,*] = mvn_lpw_r_block32(newfile_unsigned,ptr,nn_e,mask16,bin_c,index_arr,128,edac_on)
if edac_on EQ 1 then print,'The compression check EDAC failed in packet no ',p7,i,ni,' pointer ',ptr,nn_e,' Packat SWP1 V2'
endif else begin
for z = 0,128*2-1,2 do begin
dummy = string(newfile_signed[counter+place+offset1+z+2],format = '(B016)')+string(newfile_signed[counter+place+offset1+z+3],format = '(B016)')
reads, dummy, SWPI1_dummy, format = '(B032)'
SWP1_I1[ni,z/2] = double(SWPI1_dummy)
endfor
SWP1_V2[ni,*] = newfile_signed[counter+place+offset1+128*2+2:counter+place+offset1+128*3+1]
endelse
p10 = p10 + 1
ENDFOR
t2=SYSTIME(1,/seconds)
print,'#### SWP1 ',ni,i,' time ', t2-t1 ,' seconds'
SWP1_SC = SC[pkt_SWP1]
for seqIndx = 1, nn_SWP1-1 do $
if SWP1_SC[seqIndx] NE SWP1_SC[seqIndx-1]+1 then print, 'SWP1 Sequence Count Skipped. seqIndex =', seqIndx, ' SC(seqIndx-1) =', SWP1_SC[seqIndx-1], ' SC(seqIndx) =', SWP1_SC[seqIndx]
if (SWP1_SC[nn_SWP1-1]-SWP1_SC[0]+1) NE p10 then print, 'SWP1 Sequence Count Failed. Should be', p10, ' Reporting ',(SWP1_SC(nn_SWP1-1)-SWP1_SC(0)+1)
total_swp1_length = total(length[pkt_SWP1]+7)
endif ELSE BEGIN
SWP1_I1 = -1 & SWP1_V2 = -1 & I_ZERO1 = -1 & SWP1_DYN_OFFSET1 = -1 & ENDELSE
total_swp2_length = 0
if nn_SWP2 GT 0 and nn_act_SWP2 GT 0 then begin
t1=SYSTIME(1,/seconds)
SWP2_I2 = fltarr(nn_SWP2,128)
SWP2_V1 = fltarr(nn_SWP2,128)
I_ZERO2 = fltarr(nn_SWP2)
SWP2_DYN_OFFSET2 = fltarr(nn_SWP2)
FOR ni=0L,nn_SWP2-1 do begin
i = pkt_SWP2[ni]
counter = counter_specific[i]
dummy = string(newfile_unsigned[counter+place+offset1-1],format = '(B016)')
reads,dummy,orbmode_dummy,nothing,MClen_dummy,nothing2,SMPAVG_dummy,format = '(B04,B01,B03,B05,B03)'
ORB_MD[i] = orbmode_dummy
MC_LEN[i] = MClen_dummy
SMP_AVG[i] = SMPAVG_dummy
I_ZERO2[ni] = newfile_signed[counter+place+offset1]
SWP2_DYN_OFFSET2[ni] = newfile_signed[counter+place+offset1+1]
if compression EQ 'on' then begin
ptr=1L*(counter+place+offset1+2)
ptr_end=ptr+(length2[i]-len_offset-4)
nn_e=0
swp2_I2[ni,*] = mvn_lpw_r_block16(newfile_unsigned,ptr,nn_e,mask16,bin_c,index_arr,128,edac_on)
if edac_on EQ 1 then print,'The compression check EDAC failed in packet no ',p7,i,ni,' pointer ',ptr,nn_e,' Packat SWP2 I2'
swp2_V1[ni,*] = mvn_lpw_r_block32(newfile_unsigned,ptr,nn_e,mask16,bin_c,index_arr,128,edac_on)
if edac_on EQ 1 then print,'The compression check EDAC failed in packet no ',p7,i,ni,' pointer ',ptr,nn_e,' Packat SWP2 V1'
end else begin
for z = 0,128*2-1,2 do begin
dummy = string(newfile_signed[counter+place+offset1+z+2],format = '(B016)')+string(newfile_signed[counter+place+offset1+z+3],format = '(B016)')
reads, dummy, SWP2I2_dummy, format = '(B032)'
SWP2_I2[ni,z/2] = double(SWP2I2_dummy)
endfor
SWP2_V1[ni,*] = newfile_signed[counter+place+offset1+128*2+2:counter+place+offset1+128*3+1]
endelse
p11 = p11 + 1
ENDFOR
t2=SYSTIME(1,/seconds)
print,'#### SWP2 ',ni,i,' time ', t2-t1 ,' seconds'
SWP2_SC = SC[pkt_SWP2]
for seqIndx = 1, nn_SWP2-1 do $
if SWP2_SC[seqIndx] NE SWP2_SC[seqIndx-1]+1 then print, 'SWP2 Sequence Count Skipped. seqIndex =', seqIndx, ' SC(seqIndx-1) =', SWP2_SC[seqIndx-1], ' SC(seqIndx) =', SWP2_SC[seqIndx]
if (SWP2_SC[nn_SWP2-1]-SWP2_SC[0]+1) NE p11 then print, 'SWP2 Sequence Count Failed. Should be', p11, ' Reporting ',(SWP2_SC[nn_SWP2-1]-SWP2_SC[0]+1)
total_swp2_length = total(length[pkt_SWP2]+7)
endif ELSE BEGIN
SWP2_I2 = -1 & SWP2_V1 = -1 & I_ZERO2 = -1 & SWP2_DYN_OFFSET2 = -1 & ENDELSE
total_act_length = 0
if nn_ACT GT 0 and nn_act_ACT GT 0 then begin
t1=SYSTIME(1,/seconds)
ACT_V1 = fltarr(nn_ACT,64)
ACT_V2 = fltarr(nn_ACT,64)
ACT_E12_LF = fltarr(nn_ACT,64)
FOR ni=0L,nn_ACT-1 do begin
i = pkt_ACT[ni]
counter = counter_specific[i]
dummy = string(newfile_unsigned[counter+place+offset1-1],format = '(B016)')
reads,dummy,orbmode_dummy,nothing,MClen_dummy,nothing2,format = '(B04,B01,B03,B08)'
ORB_MD(i) = orbmode_dummy
MC_LEN(i) = MClen_dummy
if compression EQ 'on' then begin
ptr = 1L*(counter+place+offset1)
ptr_end = ptr+(length2[i]-len_offset)
nn_e = 0
act_v1[ni,*] = mvn_lpw_r_block32(newfile_unsigned,ptr,nn_e,mask16,bin_c,index_arr,64,edac_on)
if edac_on EQ 1 then print,'The compression check EDAC failed in packet no ',p7,i,ni,' pointer ',ptr,nn_e,' Packet ACT V1'
act_v2[ni,*] = mvn_lpw_r_block32(newfile_unsigned,ptr,nn_e,mask16,bin_c,index_arr,64,edac_on)
if edac_on EQ 1 then print,'The compression check EDAC failed in packet no ',p7,i,ni,' pointer ',ptr,nn_e,' Packet ACT V2'
act_e12_lf[ni,*]= mvn_lpw_r_block32(newfile_unsigned,ptr,nn_e,mask16,bin_c,index_arr,64,edac_on)
if edac_on EQ 1 then print,'The compression check EDAC failed in packet no ',p7,i,ni,' pointer ',ptr,nn_e,' Packet ACT E12'
if edac_on EQ 1 then stanna
end else begin
ACT_V1[ni,*] = newfile_signed[counter+place+offset1 :counter+place+offset1+offset2+64]
ACT_V2[ni,*] = newfile_signed[counter+place+offset1+offset2+64+1 :counter+place+offset1+2*(offset2+64)+1]
ACT_E12_LF[ni,*] = newfile_signed[counter+place+offset1+2*(offset2+64)+2:counter+place+offset1+3*(offset2+64)+2]
endelse
p12 = p12 + 1
ENDFOR
t2=SYSTIME(1,/seconds)
print,'#### ACT ',ni,i,' time ', t2-t1,' seconds'
ACT_SC = SC[pkt_ACT]
for seqIndx = 1, nn_ACT-1 do $
if ACT_SC[seqIndx] NE ACT_SC[seqIndx-1]+1 then print, 'ACT Sequence Count Skipped. seqIndex =', seqIndx, ' SC(seqIndx-1) =', ACT_SC[seqIndx-1], ' SC(seqIndx) =', ACT_SC[seqIndx]
if (ACT_SC[nn_ACT-1]-ACT_SC[0]+1) NE p12 then print, 'ACT Sequence Count Failed. Should be', p12, ' Reporting ',(ACT_SC[nn_ACT-1]-ACT_SC[0]+1)
total_act_length = total(length[pkt_ACT]+7)
endif ELSE BEGIN
ACT_V1 = -1 & ACT_V2 = -1 & ACT_E12_LF = -1 & ENDELSE
total_pas_length = 0
if nn_PAS GT 0 and nn_act_PAS GT 0 then begin
t1=SYSTIME(1,/seconds)
PAS_V1 = fltarr(nn_PAS,64)
PAS_V2 = fltarr(nn_PAS,64)
PAS_E12_LF = fltarr(nn_PAS,64)
FOR ni=0L,nn_PAS-1 do begin
i = pkt_PAS[ni]
counter = counter_specific[i]
dummy = string(newfile_unsigned[counter+place+offset1-1],format = '(B016)')
reads,dummy,orbmode_dummy,nothing,MClen_dummy,nothing2,format = '(B04,B01,B03,B08)'
ORB_MD[i] = orbmode_dummy
MC_LEN[i] = MClen_dummy
if i EQ 452 then begin
print,i,' counter ',counter,' ORB MO ', orb_md(i),' MC len ',MC_LEN(i)
print,'$$$$$$$$$$$$$$$$$$$$$$'
aa=-8
for iii=-8,40 do begin
bb=aa+8-1
dummy =string(newfile_unsigned[counter+place+offset1-1+aa:counter+place+offset1-1+bb],format = '(z)')
print,dummy
aa=bb+1
endfor
endif
if compression EQ 'on' then begin
ptr=1L*(counter+place+offset1)
ptr_end=ptr+(length2[i]-len_offset)
nn_e=0
pas_v1[ni,*] = mvn_lpw_r_block32(newfile_unsigned,ptr,nn_e,mask16,bin_c,index_arr,64,edac_on)
if edac_on EQ 1 then print,'The compression check EDAC failed in packet no ',p13,i,ni,' pointer ',ptr,nn_e,' Packet: PAS V1'
pas_v2[ni,*] = mvn_lpw_r_block32(newfile_unsigned,ptr,nn_e,mask16,bin_c,index_arr,64,edac_on)
if edac_on EQ 1 then print,'The compression check EDAC failed in packet no ',p13,i,ni,' pointer ',ptr,nn_e,' Packet: PAS V2'
if edac_on EQ 1 then stanna
pas_e12_lf[ni,*] = mvn_lpw_r_block32(newfile_unsigned,ptr,nn_e,mask16,bin_c,index_arr,64,edac_on)
if edac_on EQ 1 then print,'The compression check EDAC failed in packet no ',p13,i,ni,' pointer ',ptr,nn_e,' Packet PAS E12'
end else begin
PAS_V1[ni,*] = newfile_signed[counter+place+offset1 :counter+place+offset1+offset2+64]
PAS_V2[ni,*] = newfile_signed[counter+place+offset1+offset2+64+1 :counter+place+offset1+2*(offset2+64)+1]
PAS_E12_LF[ni,*] = newfile_signed[counter+place+offset1+2*(offset2+64)+2:counter+place+offset1+3*(offset2+64)+2]
end
p13 = p13 + 1
ENDFOR
t2=SYSTIME(1,/seconds)
print,'#### PAS ',ni,i,' time ', t2-t1 ,' seconds'
PAS_SC = SC[pkt_PAS]
for seqIndx = 1, nn_PAS-1 do $
if PAS_SC[seqIndx] NE PAS_SC[seqIndx-1]+1 then print, 'PAS Sequence Count Skipped. seqIndex =', seqIndx, ' SC(seqIndx-1) =', PAS_SC[seqIndx-1], ' SC(seqIndx) =', PAS_SC[seqIndx]
if (PAS_SC[nn_PAS-1]-PAS_SC[0]+1) NE p13 then print, 'PAS Sequence Count Failed. Should be', p13, ' Reporting ',(PAS_SC[nn_PAS-1]-PAS_SC[0]+1)
total_pas_length = total(length[pkt_PAS]+7)
endif ELSE BEGIN
PAS_V1 = -1 & PAS_V2 = -1 & PAS_E12_LF = -1 & ENDELSE
total_act_s_lf_length = 0
if nn_ACT_LF GT 0 and nn_act_ACT_LF GT 0 then begin
t1=SYSTIME(1,/seconds)
ACT_S_LF = !values.f_nan
ACT_LF_PKTCNT = fltarr(nn_ACT_LF)
ACT_LF_PKTARR = fltarr(nn_ACT_LF)
FOR ni=0L,nn_ACT_LF-1 do begin
i = pkt_ACT_LF[ni]
counter = counter_specific[i]
dummy = string(newfile_unsigned[counter+place+offset1-1],format = '(B016)')
reads,dummy,orbmode_dummy,nothing,SMPAVG_dummy,format = '(B04,B09,B03)'
ORB_MD[i] = orbmode_dummy
SMP_AVG[i] = SMPAVG_dummy
ACT_LF_PKTCNT[ni] = newfile_unsigned[counter+place+offset1]
n_packets = floor((((length[i]-1)/2)-4)/29)
ACT_LF_pktarr[ni] = n_packets
if ni EQ 0 then ACT_S_LF = [newfile_unsigned[counter+place+offset1 :counter+place+offset1+(n_packets*29)-1]] else $
ACT_S_LF = [ACT_S_LF, newfile_unsigned[counter+place+offset1 :counter+place+offset1+(n_packets*29)-1]]
if concatention EQ 'off' then ACT_LF_array[ni,*] = [newfile_unsigned[counter+place+offset1+1:counter+place+offset1+floor(length[i]+1)/2+2+offset2+1-8]]
p14 = p14 + 1
ENDFOR
t2=SYSTIME(1,/seconds)
print,'#### ACT_LF ',ni,i,' time ', t2-t1 ,' seconds'
ACT_LF_SC = SC[pkt_ACT_LF]
for seqIndx = 1, nn_ACT_LF-1 do $
if ACT_LF_SC[seqIndx] NE ACT_LF_SC[seqIndx-1]+1 then print, 'ACT_S_LF Sequence Count Skipped. seqIndex =', seqIndx, ' SC(seqIndx-1) =', ACT_LF_SC[seqIndx-1], ' SC(seqIndx) =', ACT_LF_SC[seqIndx]
if (ACT_LF_SC[nn_ACT_LF-1]-ACT_LF_SC[0]+1) NE p14 then print, 'ACT_S_LF Sequence Count Failed. Should be', p14, ' Reporting ',(ACT_LF_SC[nn_ACT_LF-1]-ACT_LF_SC[0]+1)
total_act_s_lf_length = total(length[pkt_ACT_LF]+7)
endif ELSE BEGIN
ACT_S_LF = -1 & ACT_LF_PKTCNT = -1 & ACT_LF_PKTARR = -1 & ENDELSE
total_act_s_mf_length = 0
if nn_ACT_MF GT 0 and nn_act_ACT_MF GT 0 then begin
t1=SYSTIME(1,/seconds)
ACT_S_MF = !values.f_nan
ACT_MF_PKTCNT = fltarr(nn_ACT_MF)
ACT_MF_PKTARR = fltarr(nn_ACT_MF)
FOR ni=0L,nn_ACT_MF-1 do begin
i = pkt_ACT_MF[ni]
counter = counter_specific[i]
dummy = string(newfile_unsigned[counter+place+offset1-1],format = '(B016)')
reads,dummy,orbmode_dummy,nothing,SMPAVG_dummy,format = '(B04,B09,B03)'
ORB_MD[i] = orbmode_dummy
SMP_AVG[i] = SMPAVG_dummy
ACT_MF_PKTCNT[ni] = newfile_unsigned[counter+place+offset1]
n_packets = floor((((length[i]-1)/2)-4)/29)
ACT_MF_pktarr[ni] = n_packets
if ni EQ 0 then ACT_S_MF = [newfile_unsigned[counter+place+offset1 :counter+place+offset1+(n_packets*29)-1]] $
else ACT_S_MF = [ACT_S_MF, newfile_unsigned[counter+place+offset1 :counter+place+offset1+(n_packets*29)-1]]
if concatention EQ 'off' then ACT_MF_array[ni,*] = [newfile_unsigned[counter+place+offset1+1:counter+place+offset1+floor(length(i)+1)/2+3+offset2+1-9]]
p15 = p15 + 1
ENDFOR
t2=SYSTIME(1,/seconds)
print,'#### ACT_MF ',ni,i,' time ', t2-t1 ,' seconds'
ACT_MF_SC = SC[pkt_ACT_MF]
for seqIndx = 1, nn_ACT_MF-1 do $
if ACT_MF_SC[seqIndx] NE ACT_MF_SC[seqIndx-1]+1 then print, 'ACT_S_MF Sequence Count Skipped. seqIndex =', seqIndx, ' SC(seqIndx-1) =', ACT_MF_SC[seqIndx-1], ' SC(seqIndx) =', ACT_MF_SC[seqIndx]
if (ACT_MF_SC[nn_ACT_MF-1]-ACT_MF_SC[0]+1) NE p15 then print, 'ACT_S_MF Sequence Count Failed. Should be', p15, ' Reporting ',(ACT_MF_SC[nn_ACT_MF-1]-ACT_MF_SC[0]+1)
total_act_s_mf_length = total(length[pkt_ACT_MF]+7)
endif ELSE BEGIN
ACT_S_MF = -1 & ACT_MF_PKTCNT = -1 & ACT_MF_PKTARR = -1 & ENDELSE
total_act_s_hf_length = 0
if nn_ACT_HF GT 0 and nn_act_ACT_HF GT 0 then begin
t1=SYSTIME(1,/seconds)
ACT_S_HF = !values.f_nan
ACT_HF_PKTCNT = fltarr(nn_ACT_HF)
ACT_HF_PKTARR = fltarr(nn_ACT_HF)
FOR ni=0L,nn_ACT_HF-1 do begin
i = pkt_ACT_HF[ni]
counter = counter_specific[i]
dummy = string(newfile_unsigned[counter+place+offset1-1],format = '(B016)')
reads,dummy,orbmode_dummy,nothing,SMPAVG_dummy,format = '(B04,B09,B03)'
ORB_MD[i] = orbmode_dummy
SMP_AVG[i] = SMPAVG_dummy
ACT_HF_PKTCNT[ni] = newfile_unsigned[counter+place+offset1]
n_packets = floor((((length[i]-1)/2)-4)/65)
ACT_HF_pktarr[ni] = n_packets
if ni EQ 0 then ACT_S_HF = [newfile_unsigned[counter+place+offset1 :counter+place+offset1+(n_packets*65)-1]] $
else ACT_S_HF = [ACT_S_HF, newfile_unsigned[counter+place+offset1 :counter+place+offset1+(n_packets*65)-1]]
if concatention EQ 'off' then ACT_HF_array(ni,*) = [newfile_unsigned[counter+place+offset1+1:counter+place+offset1+floor(length[i]+1)/2+2+offset2+1-8]]
p16 = p16 + 1
ENDFOR
t2=SYSTIME(1,/seconds)
print,'#### ACT_HF ',ni,i,' time ', t2-t1 ,' seconds'
ACT_HF_SC = SC[pkt_ACT_HF]
for seqIndx = 1, nn_ACT_HF-1 do $
if ACT_HF_SC[seqIndx] NE ACT_HF_SC[seqIndx-1]+1 then print, 'ACT_S_HF Sequence Count Skipped. seqIndex =', seqIndx, ' SC(seqIndx-1) =', ACT_HF_SC[seqIndx-1], ' SC(seqIndx) =', ACT_HF_SC[seqIndx]
if (ACT_HF_SC[nn_ACT_HF-1]-ACT_HF_SC[0]+1) NE p16 then print, 'ACT_S_HF Sequence Count Failed. Should be', p16, ' Reporting ',(ACT_HF_SC[nn_ACT_HF-1]-ACT_HF_SC[0]+1)
total_act_s_hf_length = total(length[pkt_ACT_HF]+7)
endif ELSE BEGIN
ACT_S_HF = -1 & ACT_HF_PKTCNT = -1 & ACT_HF_PKTARR = -1 & ENDELSE
total_pas_s_lf_length = 0
if nn_PAS_LF GT 0 and nn_act_PAS_LF GT 0 then begin
t1=SYSTIME(1,/seconds)
PAS_S_LF = !values.f_nan
PAS_LF_PKTCNT = fltarr(nn_PAS_LF)
PAS_LF_PKTARR = fltarr(nn_PAS_LF)
FOR ni=0L,nn_PAS_LF-1 do begin
i = pkt_PAS_LF[ni]
counter = counter_specific[i]
dummy = string(newfile_unsigned[counter+place+offset1-1],format = '(B016)')
reads,dummy,orbmode_dummy,nothing,SMPAVG_dummy,format = '(B04,B09,B03)'
ORB_MD[i] = orbmode_dummy
SMP_AVG[i] = SMPAVG_dummy
PAS_LF_PKTCNT[ni] = newfile_unsigned[counter+place+offset1]
n_packets = floor((((length[i]-1)/2)-4)/29)
PAS_LF_pktarr[ni] = n_packets
if ni EQ 0 then PAS_S_LF = [newfile_unsigned[counter+place+offset1 :counter+place+offset1+(n_packets*29)-1]] $
else PAS_S_LF = [PAS_S_LF, newfile_unsigned[counter+place+offset1 :counter+place+offset1+(n_packets*29)-1]]
if concatention EQ 'off' then PAS_LF_array(ni,*) = [newfile_unsigned[counter+place+offset1+1:counter+place+offset1+floor(length[i]+1)/2+2+offset2+1-8]]
p17 = p17 + 1
ENDFOR
t2=SYSTIME(1,/seconds)
print,'#### PAS_LF ',ni,i,' time ', t2-t1 ,' seconds'
PAS_LF_SC = SC[pkt_PAS_LF]
for seqIndx = 1, nn_PAS_LF-1 do begin
if PAS_LF_SC[seqIndx] NE PAS_LF_SC[seqIndx-1]+1 then print, 'PAS_S_LF Sequence Count Skipped. seqIndex =', seqIndx, ' SC(seqIndx-1) =', PAS_LF_SC[seqIndx-1], ' SC(seqIndx) =', PAS_LF_SC[seqIndx]
endfor
if (PAS_LF_SC[nn_PAS_LF-1]-PAS_LF_SC[0]+1) NE p17 then print, 'PAS_S_LF Sequence Count Failed. Should be', p17, ' Reporting ',(PAS_LF_SC[nn_PAS_LF-1]-PAS_LF_SC[0]+1)
total_pas_s_lf_length = total(length[pkt_PAS_LF]+7)
endif ELSE BEGIN
PAS_S_LF = -1 & PAS_LF_PKTCNT = -1 & PAS_LF_PKTARR = -1 & ENDELSE
total_pas_s_mf_length = 0
if nn_PAS_MF GT 0 and nn_act_PAS_MF GT 0 then begin
t1=SYSTIME(1,/seconds)
PAS_S_MF = !values.f_nan
PAS_MF_PKTCNT = fltarr(nn_PAS_MF)
PAS_MF_PKTARR = fltarr(nn_PAS_MF)
FOR ni=0L,nn_PAS_MF-1 do begin
i = pkt_PAS_MF[ni]
counter = counter_specific[i]
dummy = string(newfile_unsigned[counter+place+offset1-1],format = '(B016)')
reads,dummy,orbmode_dummy,nothing,SMPAVG_dummy,format = '(B04,B09,B03)'
ORB_MD[i] = orbmode_dummy
SMP_AVG[i] = SMPAVG_dummy
PAS_MF_PKTCNT[ni] = newfile_unsigned[counter+place+offset1]
n_packets = floor((((length[i]-1)/2)-4)/29)
PAS_MF_pktarr[ni] = n_packets
if ni EQ 0 then PAS_S_MF = [newfile_unsigned[counter+place+offset1 :counter+place+offset1+(n_packets*29)-1]] $
else PAS_S_MF = [PAS_S_MF, newfile_unsigned[counter+place+offset1 :counter+place+offset1+(n_packets*29)-1]]
if concatention EQ 'off' then PAS_MF_array[ni,*] = [newfile_unsigned[counter+place+offset1+1:counter+place+offset1+floor(length[i]+1)/2+2+offset2+1-8]]
p18 = p18 + 1
ENDFOR
t2=SYSTIME(1,/seconds)
print,'#### PAS_MF ',ni,i,' time ', t2-t1 ,' seconds'
PAS_MF_SC = SC[pkt_PAS_MF]
for seqIndx = 1, nn_PAS_MF-1 do $
if PAS_MF_SC[seqIndx] NE PAS_MF_SC[seqIndx-1]+1 then print, 'PAS_S_MF Sequence Count Skipped. seqIndex =', seqIndx, ' SC(seqIndx-1) =', PAS_MF_SC[seqIndx-1], ' SC(seqIndx) =', PAS_MF_SC[seqIndx]
if (PAS_MF_SC[nn_PAS_MF-1]-PAS_MF_SC[0]+1) NE p18 then print, 'PAS_S_MF Sequence Count Failed. Should be', p18, ' Reporting ',(PAS_MF_SC(nn_PAS_MF-1)-PAS_MF_SC(0)+1)
total_pas_s_mf_length = total(length[pkt_PAS_MF]+7)
endif ELSE BEGIN
PAS_S_MF = -1 & PAS_MF_PKTCNT = -1 & PAS_MF_PKTARR = -1 & ENDELSE
total_pas_s_hf_length = 0
if nn_PAS_HF GT 0 and nn_act_PAS_HF GT 0 then begin
t1=SYSTIME(1,/seconds)
PAS_S_HF = !values.f_nan
PAS_HF_PKTCNT = fltarr(nn_PAS_HF)
PAS_HF_PKTARR = fltarr(nn_PAS_HF)
FOR ni=0L,nn_PAS_HF-1 do begin
i = pkt_PAS_HF[ni]
counter = counter_specific[i]
dummy = string(newfile_unsigned[counter+place+offset1-1],format = '(B016)')
reads,dummy,orbmode_dummy,E12_HF_gain_boost_dummy,nothing,SMPAVG_dummy,format = '(B04,B01,B08,B03)'
ORB_MD[i] = orbmode_dummy
SMP_AVG[i] = SMPAVG_dummy
E12_HF_GB[ni] = E12_HF_gain_boost_dummy
PAS_HF_PKTCNT[ni] = newfile_unsigned[counter+place+offset1]
n_packets = floor((((length[i]-1)/2)-4)/65)
PAS_HF_pktarr[ni] = n_packets
if ni EQ 0 then PAS_S_HF = [newfile_unsigned[counter+place+offset1 :counter+place+offset1+(n_packets*65)-1]] $
else PAS_S_HF = [PAS_S_HF, newfile_unsigned[counter+place+offset1 :counter+place+offset1+(n_packets*65)-1]]
if concatention EQ 'off' then PAS_HF_array(ni,*) = [newfile_unsigned[counter+place+offset1+1:counter+place+offset1+floor(length[i]+1)/2+2+offset2+1-8]]
p19 = p19 + 1
ENDFOR
t2=SYSTIME(1,/seconds)
print,'#### PAS_HF ',ni,i,' time ', t2-t1 ,' seconds'
PAS_HF_SC = SC[pkt_PAS_HF]
for seqIndx = 1, nn_PAS_HF-1 do $
if PAS_HF_SC[seqIndx] NE PAS_HF_SC[seqIndx-1]+1 then print, 'PAS_S_HF Sequence Count Skipped. seqIndex =', seqIndx, ' SC(seqIndx-1) =', PAS_HF_SC[seqIndx-1], ' SC(seqIndx) =', PAS_HF_SC[seqIndx]
if (PAS_HF_SC[nn_PAS_HF-1]-PAS_HF_SC[0]+1) NE p19 then print, 'PAS_S_HF Sequence Count Failed. Should be', p19, ' Reporting ',(PAS_HF_SC[nn_PAS_HF-1]-PAS_HF_SC[0]+1)
total_pas_s_hf_length = total(length[pkt_PAS_HF]+7)
endif ELSE BEGIN
PAS_S_HF = -1 & PAS_HF_PKTCNT = -1 & PAS_HF_PKTARR = -1 & ENDELSE
total_hsbm_lf_length = 0
if nn_HSBM_LF GT 0 and nn_act_HSBM_LF GT 0 then BEGIN
t1=SYSTIME(1,/seconds)
FOR ni=0L,nn_HSBM_LF-1 do begin
i = pkt_HSBM_LF[ni]
counter = counter_specific[i]
dummy = string(newfile_unsigned[counter+place+offset1-1],format = '(B016)')
reads,dummy,orbmode_dummy,nothing,format = '(B04,B12)'
ORB_MD[i] = orbmode_dummy
if compressed EQ 1 then begin
ptr = 1L*(counter+place+offset1)
ptr_end = ptr+(floor(length[i]+1)/2+2+offset2-offset1+1)
nn_e = 0
decomp = mvn_lpw_r_block32(newfile_unsigned,ptr,nn_e,mask16,bin_c,index_arr,32,edac_on)
if edac_on EQ 1 then print,'The compression check EDAC failed in packet no ',p7,i,ni,' pointer ',ptr,nn_e,' Packat HSBM_LF'
while ((ptr_end-ptr)*16-nn_e) ge (16+7+(31*2)) do begin
decomp = [decomp,mvn_lpw_r_block32(newfile_unsigned,ptr,nn_e,mask16,bin_c,index_arr,32,edac_on)]
endwhile
p = ptr_new(decomp)
endif else p = ptr_new(d)
if ni EQ 0 then BEGIN
hsbm_lf_i = i
hsbm_lf_comp_t = sc_clk1[i]+sc_clk2[i]/65536d
hsbm_lf_comp_p = p
ENDIF ELSE BEGIN
hsbm_lf_i = [hsbm_lf_i, i]
hsbm_lf_comp_t = [hsbm_lf_comp_t,sc_clk1[i]+sc_clk2[i]/65536d]
hsbm_lf_comp_p = [hsbm_lf_comp_p,p]
ENDELSE
ENDFOR
t2=SYSTIME(1,/seconds)
print,'#### HSBM LF ',ni,i,' time ', t2-t1,' seconds'
HSBM_LF_SC = SC[HSBM_LF_i]
nn=n_elements(HSBM_LF_i)
for seqIndx = 1, nn-1 do $
if HSBM_LF_SC[seqIndx] NE HSBM_LF_SC[seqIndx-1]+1 then print, 'HSBM_LF Sequence Count Skipped. seqIndex =', seqIndx, ' SC(seqIndx-1) =', HSBM_LF_SC[seqIndx-1], ' SC(seqIndx) =', HSBM_LF_SC[seqIndx]
if (HSBM_LF_SC[nn-1]-HSBM_LF_SC[0]+1) NE nn then print, 'HSBM_LF Sequence Count Failed. Should be', nn, ' Reporting ',(HSBM_LF_SC[nn-1]-HSBM_LF_SC[0]+1)
total_hsbm_lf_length = total(length[HSBM_LF_i]+7)
endif
total_hsbm_mf_length = 0
if nn_HSBM_MF GT 0 and nn_act_HSBM_MF GT 0 then BEGIN
t1=SYSTIME(1,/seconds)
FOR ni=0L,nn_HSBM_MF-1 do begin
i = pkt_HSBM_MF[ni]
counter = counter_specific[i]
dummy = string(newfile_unsigned[counter+place+offset1-1],format = '(B016)')
reads,dummy,orbmode_dummy,nothing,format = '(B04,B12)'
ORB_MD[i] = orbmode_dummy
if compressed EQ 1 then begin
ptr = 1L*(counter+place+offset1)
ptr_end = ptr+(floor(length[i]+1)/2+2+offset2-offset1+1)
nn_e = 0
decomp = mvn_lpw_r_block32(newfile_unsigned,ptr,nn_e,mask16,bin_c,index_arr,32,edac_on)
if edac_on EQ 1 then print,'The compression check EDAC failed in packet no ',p7,i,ni,' pointer ',ptr,nn_e,' Packat HSBM_MF'
while ((ptr_end-ptr)*16-nn_e) ge (16+7+(31*2)) do decomp = [decomp,mvn_lpw_r_block32(newfile_unsigned,ptr,nn_e,mask16,bin_c,index_arr,32,edac_on)]
p = ptr_new(decomp)
endif else p = ptr_new(d)
if ni EQ 0 then BEGIN
hsbm_mf_i = i
hsbm_mf_comp_t = sc_clk1[i]+sc_clk2[i]/65536d
hsbm_mf_comp_p = p
ENDIF ELSE BEGIN
hsbm_mf_i = [hsbm_mf_i, i]
hsbm_mf_comp_t = [hsbm_mf_comp_t,sc_clk1[i]+sc_clk2[i]/65536d]
hsbm_mf_comp_p = [hsbm_mf_comp_p,p]
ENDELSE
ENDFOR
t2=SYSTIME(1,/seconds)
print,'#### HSBM MF ',ni,i,' time ', t2-t1 ,' seconds'
HSBM_MF_SC = SC[HSBM_MF_i]
nn=n_elements(HSBM_MF_i)
for seqIndx = 1, nn-1 do $
if HSBM_MF_SC[seqIndx] NE HSBM_MF_SC[seqIndx-1]+1 then print, 'HSBM_MF Sequence Count Skipped. seqIndex =', seqIndx, ' SC(seqIndx-1) =', HSBM_MF_SC[seqIndx-1], ' SC(seqIndx) =', HSBM_MF_SC[seqIndx]
if (HSBM_MF_SC[nn-1]-HSBM_MF_SC[0]+1) NE nn then print, 'HSBM_MF Sequence Count Failed. Should be', nn, ' Reporting ',(HSBM_MF_SC[nn-1]-HSBM_MF_SC[0]+1)
total_hsbm_mf_length = total(length[HSBM_MF_i]+7)
endif
total_hsbm_hf_length = 0
if nn_HSBM_HF GT 0 and nn_act_HSBM_HF GT 0 then BEGIN
t1=SYSTIME(1,/seconds)
FOR ni=0L,nn_HSBM_HF-1 do begin
i = pkt_HSBM_HF[ni]
counter = counter_specific[i]
dummy = string(newfile_unsigned[counter+place+offset1-1],format = '(B016)')
reads,dummy,orbmode_dummy,nothing,format = '(B04,B12)'
ORB_MD[i] = orbmode_dummy
if compressed EQ 1 then begin
ptr = 1L*(counter+place+offset1)
ptr_end = ptr+(floor(length[i]+1)/2+2+offset2-offset1+1)
nn_e = 0
decomp = mvn_lpw_r_block32(newfile_unsigned,ptr,nn_e,mask16,bin_c,index_arr,32,edac_on)
if edac_on EQ 1 then print,'The compression check EDAC failed in packet no ',p7,i,ni,' pointer ',ptr,nn_e,' Packat HSBM_HF'
while ((ptr_end-ptr)*16-nn_e) ge (16+7+(31*2)) do decomp = [decomp,mvn_lpw_r_block32(newfile_unsigned,ptr,nn_e,mask16,bin_c,index_arr,32,edac_on)]
p = ptr_new(decomp)
endif else p = ptr_new(d)
if ni EQ 0 then BEGIN
hsbm_hf_i = i
hsbm_hf_comp_t = sc_clk1[i]+sc_clk2[i]/65536d
hsbm_hf_comp_p = p
ENDIF ELSE BEGIN
hsbm_hf_i = [hsbm_hf_i, i]
hsbm_hf_comp_t = [hsbm_hf_comp_t,sc_clk1[i]+sc_clk2[i]/65536d]
hsbm_hf_comp_p = [hsbm_hf_comp_p,p]
ENDELSE
ENDFOR
t2=SYSTIME(1,/seconds)
print,'#### HSBM HF ',ni,i,' time ', t2-t1 ,' seconds'
HSBM_HF_SC = SC[HSBM_HF_i]
nn=n_elements(HSBM_HF_i)
for seqIndx = 1, nn-1 do $
if HSBM_HF_SC[seqIndx] NE HSBM_HF_SC[seqIndx-1]+1 then print, 'HSBM_HF Sequence Count Skipped. seqIndex =', seqIndx, ' SC(seqIndx-1) =', HSBM_HF_SC[seqIndx-1], ' SC(seqIndx) =', HSBM_HF_SC[seqIndx]
if (HSBM_HF_SC[nn-1]-HSBM_HF_SC[0]+1) NE nn then print, 'HSBM_HF Sequence Count Failed. Should be', nn, ' Reporting ',(HSBM_HF_SC[nn-1]-HSBM_HF_SC[0]+1)
total_hsbm_hf_length = total(length[HSBM_HF_i]+7)
endif
total_htime_length = 0
if nn_htime GT 0 and nn_act_htime GT 0 then begin
t1=SYSTIME(1,/seconds)
FOR ni=0L,nn_htime-1 do begin
i = pkt_htime[ni]
counter = counter_specific[i]
for iii = 0,(((length[i]-1)/2)-7)/2 do begin
if (p23 EQ 0) AND (iii EQ 0) then cap_time = newfile_signed[counter+place+offset1+2*iii] else cap_time = [cap_time,newfile_signed[counter+place+offset1+2*iii]]
dummy = string(newfile_unsigned[counter+place+offset1+2*iii+1],format = '(B016)')
reads,dummy,type_dummy,xfertime_dummy,format = '(B02,B014)'
if (p23 EQ 0) AND (iii EQ 0) then htime_type = type_dummy else htime_type = [htime_type, type_dummy]
if (p23 EQ 0) AND (iii EQ 0) then xfer_time = xfertime_dummy else xfer_time = [xfer_time, xfertime_dummy]
endfor
p23 = p23 + 1
ENDFOR
t2=SYSTIME(1,/seconds)
print,'#### htime ',ni,i,' time ', t2-t1 ,' seconds'
HTIME_SC = SC[pkt_htime]
for seqIndx = 1, nn_htime-1 do $
if HTIME_SC[seqIndx] NE HTIME_SC[seqIndx-1]+1 then print, 'HTIME Sequence Count Skipped. seqIndex =', seqIndx, ' SC(seqIndx-1) =', HTIME_SC[seqIndx-1], ' SC(seqIndx) =', HTIME_SC[seqIndx]
if (HTIME_SC[nn_htime-1]-HTIME_SC[0]+1) NE p23 then print, 'HTIME Sequence Count Failed. Should be', p23, ' Reporting ',(HTIME_SC[nn_htime-1]-HTIME_SC[0]+1)
total_htime_length = total(length[pkt_htime]+7)
endif
if nn_w2 GT 1 then w2_length = floor(length(pkt_w2)+1)/2+3+offset3 else w2_length = 1
if nn_w4 GT 1 then w4_length = floor(length(pkt_w4)+1)/2+3+offset3 else w4_length = 1
if nn_w5 GT 1 then w5_length = floor(length(pkt_w5)+1)/2+3+offset3 else w5_length = 1
if nn_w2 GT 1 then waveform2_array = fltarr(n_elements(w2_length),w2_length(0)-8) else waveform2_array = fltarr(1)
if nn_w4 GT 1 then waveform4_array = fltarr(n_elements(w4_length),w4_length(0)-8) else waveform4_array = fltarr(1)
if nn_w5 GT 1 then waveform5_array = fltarr(n_elements(w5_length),w5_length(0)-8) else waveform5_array = fltarr(1)
total_w1_length = 0
if nn_w1 GT 0 and nn_act_w1 GT 0 then begin
t1=SYSTIME(1,/seconds)
w1_length = floor(length[pkt_w1]+1)/2+3+offset3
waveform1_array = fltarr(nn_w1,w1_length[0]-8)
wave_config = newfile_unsigned[counter_all1[pkt_w1]+place+offset1-1]
FOR ni=0,nn_w1-1 do begin
w_length_ni = floor(length[pkt_w1[ni]]+1)/2-5+offset2+offset3+1
if w_length_ni EQ (w1_length[0]-8) THEN $
waveform1_array[ni,*] = newfile_signed[counter_all1[pkt_w1[ni]] +place+offset1:counter_all1[pkt_w1[ni]] +place+offset1+floor(length[pkt_w1[ni]]+1)/2-5+offset2+offset3] $
ELSE Print,' THIS packet w1 had something strange in it ',APID(pkt_w1(ni)),ni,' this ', w_length_ni,' should be this ',(w1_length(0)-8)
ENDFOR
p1 = nn_w1
t2=SYSTIME(1,/seconds)
print,'#### w1 ',ni,i,' time ', t2-t1 ,' seconds'
W1_SC = SC[pkt_w1]
nn=n_elements(pkt_w1)
for seqIndx = 1, nn-1 do $
if W1_SC[seqIndx] NE W1_SC[seqIndx-1]+1 then print, 'Waveform 1 Sequence Count Skipped. seqIndex =', seqIndx, ' SC(seqIndx-1) =', W1_SC[seqIndx-1], ' SC(seqIndx) =', W1_SC[seqIndx]
if (W1_SC[nn-1]-W1_SC[0]+1) NE p1 then print, 'Waveform 1 Sequence Count Failed. Should be', p1, ' Reporting ',(W1_SC[nn-1]-W1_SC[0]+1)
total_w1_length = total(length[pkt_w1]+7)
endif else waveform1_array = fltarr(1)
total_w2_length = 0
if nn_w2 GT 0 and nn_act_w2 GT 0 then begin
t1=SYSTIME(1,/seconds)
w2_length = floor(length[pkt_w2]+1)/2+3+offset3
waveform2_array = fltarr(nn_w2,w2_length[0]-8)
wave_config = newfile_unsigned[counter_all1[pkt_w2]+place+offset1-1]
FOR ni=0,nn_w2-1 do begin
w_length_ni = floor(length[pkt_w2[ni]]+1)/2-5+offset2+offset3+1
if w_length_ni EQ (w2_length[0]-8) THEN $
waveform2_array[ni,*] = newfile_signed[counter_all1[pkt_w2[ni]] +place+offset1:counter_all1[pkt_w2[ni]] +place+offset1+floor(length[pkt_w2[ni]]+1)/2-5+offset2+offset3] $
ELSE Print,' THIS packet w2 had something strange in it ',APID[pkt_w2[ni]],ni,' this ', w_length_ni,' should be this ',(w2_length[0]-8)
ENDFOR
p2 = nn_w2
t2=SYSTIME(1,/seconds)
print,'#### w2 ',ni,i,' time ', t2-t1 ,' seconds'
W2_SC = SC[pkt_w2]
nn=n_elements(pkt_w2)
for seqIndx = 1, nn-1 do $
if W2_SC[seqIndx] NE W2_SC[seqIndx-1]+1 then print, 'Waveform 2 Sequence Count Skipped. seqIndex =', seqIndx, ' SC(seqIndx-1) =', W2_SC[seqIndx-1], ' SC(seqIndx) =', W2_SC[seqIndx]
if (W2_SC[nn-1]-W2_SC[0]+1) NE p2 then print, 'Waveform 2 Sequence Count Failed. Should be', p2, ' Reporting ',(W2_SC[nn-1]-W2_SC[0]+1)
total_w2_length = total(length[pkt_w2]+7)
endif else waveform2_array = fltarr(1)
total_w3_length = 0
if nn_w3 GT 0 and nn_act_w3 GT 0 then begin
t1=SYSTIME(1,/seconds)
w3_length = floor(length[pkt_w3]+1)/2+3+offset3
waveform3_array = fltarr(nn_w3,w3_length[0]-8)
wave_config = newfile_unsigned[counter_all1[pkt_w3]+place+offset1-1]
FOR ni=0,nn_w3-1 do begin
w_length_ni = floor(length[pkt_w3[ni]]+1)/2-5+offset2+offset3+1
if w_length_ni EQ (w3_length[0]-8) THEN $
waveform3_array[ni,*] = newfile_signed[counter_all1[pkt_w3[ni]] +place+offset1:counter_all1[pkt_w3[ni]] +place+offset1+floor(length[pkt_w3[ni]]+1)/2-5+offset2+offset3] $
ELSE Print,' THIS packet w3 had something strange in it ',APID[pkt_w3[ni]],ni,' this ', w_length_ni,' should be this ',(w3_length[0]-8)
ENDFOR
p3 = nn_w3
t2=SYSTIME(1,/seconds)
print,'#### w3 ',ni,i,' time ', t2-t1 ,' seconds'
W3_SC = SC[pkt_w3]
nn=n_elements(pkt_w3)
for seqIndx = 1, nn-1 do $
if W3_SC[seqIndx] NE W3_SC[seqIndx-1]+1 then print, 'Waveform 3 Sequence Count Skipped. seqIndex =', seqIndx, ' SC(seqIndx-1) =', W3_SC[seqIndx-1], ' SC(seqIndx) =', W3_SC[seqIndx]
if (W3_SC[nn-1]-W3_SC[0]+1) NE p3 then print, 'Waveform 3 Sequence Count Failed. Should be', p3, ' Reporting ',(W3_SC[nn-1]-W3_SC[0]+1)
total_w3_length = total(length[pkt_w3]+7)
endif else waveform3_array = fltarr(1)
total_w4_length = 0
if nn_w4 GT 0 and nn_act_w4 GT 0 then begin
t1=SYSTIME(1,/seconds)
w4_length = floor(length[pkt_w4]+1)/2+3+offset3
waveform4_array = fltarr(nn_w4,w4_length[0]-8)
wave_config = newfile_unsigned[counter_all1[pkt_w4]+place+offset1-1]
FOR ni=0,nn_w4-1 do begin
w_length_ni = floor(length[pkt_w4[ni]]+1)/2-5+offset2+offset3+1
if w_length_ni EQ (w4_length[0]-8) THEN $
waveform4_array[ni,*] = newfile_signed[counter_all1[pkt_w4[ni]] +place+offset1:counter_all1[pkt_w4[ni]] +place+offset1+floor(length[pkt_w4[ni]]+1)/2-5+offset2+offset3] $
ELSE Print,' THIS packet w4 had something strange in it ',APID[pkt_w4[ni]],ni,' this ', w_length_ni,' should be this ',(w4_length[0]-8)
ENDFOR
p4 = nn_w4
t2=SYSTIME(1,/seconds)
print,'#### w4 ',ni,i,' time ', t2-t1 ,' seconds'
W4_SC = SC[pkt_w4]
nn=n_elements(pkt_w4)
for seqIndx = 1, nn-1 do $
if W4_SC[seqIndx] NE W4_SC[seqIndx-1]+1 then print, 'Waveform 4 Sequence Count Skipped. seqIndex =', seqIndx, ' SC(seqIndx-1) =', W4_SC[seqIndx-1], ' SC(seqIndx) =', W4_SC[seqIndx]
if (W4_SC[nn-1]-W4_SC[0]+1) NE p4 then print, 'Waveform 4 Sequence Count Failed. Should be', p4, ' Reporting ',(W4_SC[nn-1]-W4_SC[0]+1)
total_w4_length = total(length[pkt_w4]+7)
endif else waveform4_array = fltarr(1)
total_w5_length = 0
if nn_w5 GT 0 and nn_act_w5 GT 0 then begin
t1=SYSTIME(1,/seconds)
w5_length = floor(length[pkt_w5]+1)/2+3+offset3
waveform5_array = fltarr(nn_w5,w5_length[0]-8)
wave_config = newfile_unsigned[counter_all1[pkt_w5]+place+offset1-1]
FOR ni=0,nn_w5-1 do begin
w_length_ni = floor(length[pkt_w5[ni]]+1)/2-5+offset2+offset3+1
if w_length_ni EQ (w5_length[0]-8) THEN $
waveform5_array[ni,*] = newfile_signed[counter_all1[pkt_w5[ni]] +place+offset1:counter_all1[pkt_w5[ni]] +place+offset1+floor(length[pkt_w5[ni]]+1)/2-5+offset2+offset3] $
ELSE Print,' THIS packet w5 had something strange in it ',APID[pkt_w5[ni]],ni,' this ', w_length_ni,' should be this ',(w5_length[0]-8)
ENDFOR
p5 = nn_w5
t2=SYSTIME(1,/seconds)
print,'#### w5 ',ni,i,' time ', t2-t1 ,' seconds'
W5_SC = SC[pkt_w5]
nn=n_elements(pkt_w5)
for seqIndx = 1, nn-1 do $
if W5_SC[seqIndx] NE W5_SC[seqIndx-1]+1 then print, 'Waveform 5 Sequence Count Skipped. seqIndex =', seqIndx, ' SC(seqIndx-1) =', W5_SC[seqIndx-1], ' SC(seqIndx) =', W5_SC[seqIndx]
if (W5_SC[nn-1]-W5_SC[0]+1) NE p5 then print, 'Waveform 5 Sequence Count Failed. Should be', p5, ' Reporting ',(W5_SC[nn-1]-W5_SC[0]+1)
total_w5_length = total(length[pkt_w5]+7)
endif else waveform5_array = fltarr(1)
t1=SYSTIME(1,/seconds)
hsbm_lf = !values.f_nan
hsbm_mf = !values.f_nan
hsbm_hf = !values.f_nan
if n_elements(hsbm_lf_comp_t) gt 0 and nn_act_HSBM_LF GT 0 then mvn_lpw_r_group_hsbm,hsbm_lf_comp_t,hsbm_lf_comp_p,1024,hsbm_lf,p20,hsbm_lf_i
if n_elements(hsbm_mf_comp_t) gt 0 and nn_act_HSBM_MF GT 0 then mvn_lpw_r_group_hsbm,hsbm_mf_comp_t,hsbm_mf_comp_p,4096,hsbm_mf,p21,hsbm_mf_i
if n_elements(hsbm_hf_comp_t) gt 0 and nn_act_HSBM_HF GT 0 then mvn_lpw_r_group_hsbm,hsbm_hf_comp_t,hsbm_hf_comp_p,4096,hsbm_hf,p22,hsbm_hf_i
t2=SYSTIME(1,/seconds)
print,'#### HSBM grouping ',' time ', t2-t1 ,' seconds'
output=create_struct( $
'name' , filename ,$
'counter_all' , counter_all1 ,$
'length' , length ,$
'p1' , p1 ,$
'p2' , p2 ,$
'p3' , p3 ,$
'p4' , p4 ,$
'p5' , p5 ,$
'p6' , p6 ,$
'p7' , p7 ,$
'p8' , p8 ,$
'p9' , p9 ,$
'p10' , p10 ,$
'p11' , p11 ,$
'p12' , p12 ,$
'p13' , p13 ,$
'p14' , p14 ,$
'p15' , p15 ,$
'p16' , p16 ,$
'p17' , p17 ,$
'p18' , p18 ,$
'p19' , p19 ,$
'p20' , p20 ,$
'p21' , p21 ,$
'p22' , p22 ,$
'p23' , p23 ,$
'i' , i ,$
'ADR_i' , pkt_ADR ,$
'ATR_i' , pkt_ATR ,$
'HSK_i' , pkt_HSK ,$
'EUV_i' , pkt_EUV ,$
'SWP1_i' , pkt_SWP1 ,$
'SWP2_i' , pkt_SWP2 ,$
'PAS_i' , pkt_PAS ,$
'ACT_i' , pkt_ACT ,$
'ACT_S_HF_i' , pkt_ACT_HF ,$
'ACT_S_MF_i' , pkt_ACT_MF ,$
'ACT_S_LF_i' , pkt_ACT_LF ,$
'PAS_S_HF_i' , pkt_PAS_HF ,$
'PAS_S_MF_i' , pkt_PAS_MF ,$
'PAS_S_LF_i' , pkt_PAS_LF ,$
'W1_i' , pkt_w1 ,$
'W2_i' , pkt_w2 ,$
'W3_i' , pkt_w3 ,$
'W4_i' , pkt_w4 ,$
'W5_i' , pkt_w5 ,$
'HSBM_LF_i' , hsbm_LF_i ,$
'HSBM_MF_i' , hsbm_MF_i ,$
'HSBM_HF_i' , hsbm_HF_i ,$
'HTIME_i' , pkt_htime ,$
'APID' , APID ,$
'SC_CLK1' , SC_CLK1 ,$
'SC_CLK2' , SC_CLK2 ,$
'DFB_header' , DFB_header ,$
'waveform1_array' , waveform1_array ,$
'waveform2_array' , waveform2_array ,$
'waveform3_array' , waveform3_array ,$
'waveform4_array' , waveform4_array ,$
'waveform5_array' , waveform5_array ,$
'ATR_SWP' , SWP ,$
'ATR_W_BIAS1' , ATR_W_BIAS1 ,$
'ATR_W_GUARD1' , ATR_W_GUARD1 ,$
'ATR_W_STUB1' , ATR_W_STUB1 ,$
'Reserved1' , Reserved1 ,$
'ATR_LP_BIAS1' , ATR_LP_BIAS1 ,$
'ATR_LP_GUARD1' , ATR_LP_GUARD1 ,$
'ATR_LP_STUB1' , ATR_LP_STUB1 ,$
'Reserved2' , Reserved2 ,$
'ATR_W_BIAS2' , ATR_W_BIAS2 ,$
'ATR_W_GUARD2' , ATR_W_GUARD2 ,$
'ATR_W_STUB2' , ATR_W_STUB2 ,$
'Reserved3' , Reserved3 ,$
'ATR_LP_BIAS2' , ATR_LP_BIAS2 ,$
'ATR_LP_GUARD2' , ATR_LP_GUARD2 ,$
'ATR_LP_STUB2' , ATR_LP_STUB2 ,$
'Reserved4' , Reserved4 ,$
'THERM' , THERM ,$
'DIODE_A' , DIODE_A ,$
'DIODE_B' , DIODE_B ,$
'DIODE_C' , DIODE_C ,$
'DIODE_D' , DIODE_D ,$
'ADR_DYN_OFFSET1' , ADR_DYN_OFFSET1 ,$
'ADR_LP_BIAS1' , ADR_LP_BIAS1 ,$
'ADR_DYN_OFFSET2' , ADR_DYN_OFFSET2 ,$
'ADR_LP_BIAS2' , ADR_LP_BIAS2 ,$
'ADR_W_BIAS1' , ADR_W_BIAS1 ,$
'ADR_W_GUARD1' , ADR_W_GUARD1 ,$
'ADR_W_STUB1' , ADR_W_STUB1 ,$
'ADR_W_V1' , ADR_W_V1 ,$
'ADR_LP_GUARD1' , ADR_LP_GUARD1 ,$
'ADR_LP_STUB1' , ADR_LP_STUB1 ,$
'ADR_W_BIAS2' , ADR_W_BIAS2 ,$
'ADR_W_GUARD2' , ADR_W_GUARD2 ,$
'ADR_W_STUB2' , ADR_W_STUB2 ,$
'ADR_W_V2' , ADR_W_V2 ,$
'ADR_LP_GUARD2' , ADR_LP_GUARD2 ,$
'ADR_LP_STUB2' , ADR_LP_STUB2 ,$
'Preamp_Temp1' , Preamp_Temp1 ,$
'Preamp_Temp2' , Preamp_Temp2 ,$
'Beb_Temp' , Beb_Temp ,$
'plus12va' , plus12va ,$
'minus12va' , minus12va ,$
'plus5va' , plus5va ,$
'minus5va' , minus5va ,$
'plus90va' , plus90va ,$
'minus90va' , minus90va ,$
'CMD_ACCEPT' , CMD_ACCEPT ,$
'CMD_REJECT' , CMD_REJECT ,$
'MEM_SEU_COUNTER' , MEM_SEU_COUNTER ,$
'INT_STAT' , INT_STAT ,$
'CHKSUM' , CHKSUM ,$
'EXT_STAT' , EXT_STAT ,$
'DPLY1_CNT' , DPLY1_CNT ,$
'DPLY2_CNT' , DPLY2_CNT ,$
'SWP1_I1' , SWP1_I1 ,$
'SWP1_V2' , SWP1_V2 ,$
'I_ZERO1' , I_ZERO1 ,$
'SWP1_DYN_OFFSET1', SWP1_DYN_OFFSET1,$
'SWP2_I2' , SWP2_I2 ,$
'SWP2_V1' , SWP2_V1 ,$
'I_ZERO2' , I_ZERO2 ,$
'SWP2_DYN_OFFSET2', SWP2_DYN_OFFSET2,$
'ACT_V1' , ACT_V1 ,$
'ACT_V2' , ACT_V2 ,$
'ACT_E12_LF' , ACT_E12_LF ,$
'PAS_V1' , PAS_V1 ,$
'PAS_V2' , PAS_V2 ,$
'PAS_E12_LF' , PAS_E12_LF ,$
'course_clk' , course_clk ,$
'ACT_S_HF' , ACT_S_HF ,$
'ACT_S_MF' , ACT_S_MF ,$
'ACT_S_LF' , ACT_S_LF ,$
'PAS_S_HF' , PAS_S_HF ,$
'PAS_S_MF' , PAS_S_MF ,$
'PAS_S_LF' , PAS_S_LF ,$
'ORB_MD' , ORB_MD ,$
'E12_HF_GB' , E12_HF_GB ,$
'MC_LEN' , MC_LEN ,$
'SMP_AVG' , SMP_AVG ,$
'wave_config' , wave_config ,$
'EUV_config' , EUV_config ,$
'ADR_config' , ADR_config ,$
'HSK_config' , HSK_config ,$
'ATR_config' , ATR_config ,$
'ACT_LF_PKTCNT' , ACT_LF_PKTCNT ,$
'ACT_MF_PKTCNT' , ACT_MF_PKTCNT ,$
'ACT_HF_PKTCNT' , ACT_HF_PKTCNT ,$
'PAS_LF_PKTCNT' , PAS_LF_PKTCNT ,$
'PAS_MF_PKTCNT' , PAS_MF_PKTCNT ,$
'PAS_HF_PKTCNT' , PAS_HF_PKTCNT ,$
'ACT_LF_PKTARR' , ACT_LF_PKTARR ,$
'ACT_MF_PKTARR' , ACT_MF_PKTARR ,$
'ACT_HF_PKTARR' , ACT_HF_PKTARR ,$
'PAS_LF_PKTARR' , PAS_LF_PKTARR ,$
'PAS_MF_PKTARR' , PAS_MF_PKTARR ,$
'PAS_HF_PKTARR' , PAS_HF_PKTARR ,$
'HSBM_LF' , hsbm_lf ,$
'HSBM_MF' , hsbm_mf ,$
'HSBM_HF' , hsbm_hf ,$
'xfer_time' , xfer_time ,$
'htime_type' , htime_type ,$
'cap_time' , cap_time , $
'SC_CLK1_gst' , SC_CLK1_gst , $
'SC_CLK2_gst' , SC_CLK2_gst , $
'APID2' , APID2 , $
'length2' , length2 , $
'SC_CLK3_gst' , SC_CLK3_gst , $
'SC_CLK4_gst' , SC_CLK4_gst )
print,'Waveform 1:', p1, ' packets ',total_w1_length,' bytes'
print,'Waveform 2:', p2, ' packets ',total_w2_length,' bytes'
print,'Waveform 3:', p3, ' packets ',total_w3_length,' bytes'
print,'Waveform 4:', p4, ' packets ',total_w4_length,' bytes'
print,'Waveform 5:', p5, ' packets ',total_w5_length,' bytes'
print,'ATR: ', p6, ' packets ',total_ATR_length,' bytes'
print,'EUV: ', p7, ' packets ',total_euv_length,' bytes'
print,'ADR: ', p8, ' packets ',total_adr_length,' bytes'
print,'HSK: ', p9, ' packets ',total_hsk_length,' bytes'
print,'SWP1_AVG: ', p10, ' packets ',total_swp1_length,' bytes'
print,'SWP2_AVG: ', p11, ' packets ',total_swp2_length,' bytes'
print,'ACT_AVG: ', p12, ' packets ',total_act_length,' bytes'
print,'PAS_AVG: ', p13, ' packets ',total_pas_length,' bytes'
print,'ACT_S_LF: ', p14, ' packets ',total_act_s_lf_length,' bytes'
print,'ACT_S_MF: ', p15, ' packets ',total_act_s_mf_length,' bytes'
print,'ACT_S_HF: ', p16, ' packets ',total_act_s_hf_length,' bytes'
print,'PAS_S_LF: ', p17, ' packets ',total_pas_s_lf_length,' bytes'
print,'PAS_S_MF: ', p18, ' packets ',total_pas_s_mf_length,' bytes'
print,'PAS_S_HF: ', p19, ' packets ',total_pas_s_hf_length,' bytes'
print,'HSBM_LF: ', p20, ' buffers ',total_hsbm_lf_length,' bytes'
print,'HSBM_MF: ', p21, ' buffers ',total_hsbm_mf_length,' bytes'
print,'HSBM_HF: ', p22, ' buffers ',total_hsbm_hf_length,' bytes'
print,'HTIME: ', p23, ' packets ',total_htime_length,' bytes'
t_end=SYSTIME(1,/seconds)
print,' TOTAL time to read ',t_end-t_start, ' seconds'
end