get_ica_spec.pro
1.61 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
;===========================================================
;=============================================================
pro Get_Ica_Spec, StartTime, TimeInt
common IcaSpecCom, Spec
common GraphC, Graph, GraphN, Item
common Etab, Flag, Tab
;------------Get data-----------------------------
ID = Long(graph[GraphN].DataID[Item])
Size = Spec.DefSize
TimeArr = dblarr(Size);
Spectra = fltarr(96, 16, 16, Size)
; PaccArr = lonarr(Size);
EnergyTab = intarr(Size);
VI = "ros:ica:all";
paramName = "no_counts_summed";
RetSize = call_external(!PROJLIB + '/libParam.so', 'getLocalData', $
ID, VI, paramName, $
StartTime, TimeInt, Size, $
TimeArr, Spectra)
RetSize = call_external(!PROJLIB + '/libParam.so', 'getLocalData', $
ID, VI, "energyTab", $
StartTime, TimeInt, Size, $
TimeArr, EnergyTab)
if (ID GE 0) then Graph[GraphN].DataID[Item] = ID
if (RetSize GT 0) then begin
Spectra = temporary(reform(Spectra[*,*,*,0:RetSize-1], 96L*16L*16L, RetSize));
TimeArr -= graph[GraphN].TimeBase
graph[GraphN].DataFlags[Item] = 1
graph[GraphN].dataTime[Item] = TimeArr[0]
average, Spec, TimeArr[0:RetSize-1], Spectra
if (Flag eq GraphN) then immediate, Tab, TimeArr[0:RetSize-1], float(EnergyTab[0:RetSize-1]);
endif; else Graph[GraphN].ErrorFlag = 1
return
end
;------------------------------------------------------------