Mercurial > hg > fxanalyse
annotate FXAnalyse.c @ 24:b838371c7a91
Code cleanup and dead code removal
author | Daniele Nicolodi <daniele.nicolodi@obspm.fr> |
---|---|
date | Fri, 20 Jul 2012 17:38:15 +0200 |
parents | 65e277fdf01f |
children | fde495ba28d2 |
rev | line source |
---|---|
0 | 1 #include <utility.h> |
2 #include <ansi_c.h> | |
3 #include <cvirte.h> | |
4 #include <userint.h> | |
5 #include <formatio.h> | |
6 #include <string.h> | |
17
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
7 #include <future.h> |
0 | 8 |
9 #include "YLCStuff.h" | |
10 #include "FXAnalyse.h" | |
11 #include "Plot.h" | |
12 #include "Allan.h" | |
13 #include "DDSBes.h" | |
14 #include "DDS4xAD9912.h" | |
15 #include "DDS_Fox.h" | |
16 #include "muParserDLL.h" | |
17 | |
18 | |
19 #define FXLINELENGTH 123 | |
24
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
20 #define LOGFILEPATH "C:\\Femto\\Software\\FXQE80" |
0 | 21 |
24
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
22 #define DDSBESCLOCK (200.e6) // 200MHz de clock pour la DDS de Besancon... |
0 | 23 #define FACTORDDSBES 36*(8/770000) |
24 | |
25 //============================================================================== | |
26 // Static global variables | |
27 | |
28 /* multi threading stuff */ // to be used when I will replace timer by thread for counder readout | |
29 //static int ghPool; | |
30 //static volatile int vgExiting = 0; | |
31 | |
32 /* panel handling stuff */ | |
33 static PanelHandle MainPanel ; | |
34 static PanelHandle CalcN1Panel ; | |
35 static PanelHandle CalcN2Panel ; | |
36 static PanelHandle CalcN3Panel ; | |
17
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
37 static PanelHandle EstimateN3Panel; |
0 | 38 |
39 //============================================================================== | |
40 // Static functions | |
41 | |
42 //static int CVICALLBACK ReadCounterThread(void *functionData); // to be used when I will replace timer by thread for counder readout | |
43 | |
44 //============================================================================== | |
45 // Global variables | |
46 | |
47 char * LogFileName ; | |
48 char ExtraMathFileName[MAX_PATHNAME_LEN] ; | |
49 | |
24
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
50 double utc = 0; |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
51 double mjd = 0; |
0 | 52 |
53 double Ch1, Ch2, Ch3, Ch4 ; // le type long double est identique au double (8 octets) sous CVI !!! | |
54 double Math1, Math2, Math3, Math4, Math5; // N est en fait un entier en pratique... | |
17
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
55 double N1, N2, N3, N4 ; |
0 | 56 |
57 Plot_Data PlotCh1, PlotCh2, PlotCh3, PlotCh4, PlotMath1, PlotMath2, PlotMath3, PlotMath4, PlotMath5 ; | |
58 Allan_Data AllanCh1, AllanCh2, AllanCh3, AllanCh4, AllanMath1, AllanMath2, AllanMath3, AllanMath4, AllanMath5 ; | |
59 | |
60 DDSBes_Data DDSBes ; | |
61 DDS4xAD9912_Data DDS4xAD9912 ; | |
62 | |
63 muParserHandle_t MathParser1, MathParser2, MathParser3, MathParser4, MathParser5 ; | |
64 | |
65 volatile bool Acquiring = FALSE ; | |
66 | |
67 long OldLogFilePtr = 0 ; | |
68 double Ndiv=8.0; | |
69 | |
70 /////////////////// | |
71 //Pour les calculs des N | |
72 | |
17
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
73 enum { |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
74 N_MEASUREMENT_STEP_0, |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
75 N_MEASUREMENT_STEP_1, |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
76 N_MEASUREMENT_STEP_2, |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
77 N_MEASUREMENT_STEP_3, |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
78 N_MEASUREMENT_STEP_4, |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
79 }; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
80 |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
81 int settling = 0; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
82 |
0 | 83 volatile bool Measuring_1 = FALSE,Step1_1 = FALSE,Step2_1 = FALSE,Step3_1 = FALSE, Measuring_2 = FALSE,Step1_2 = FALSE,Step2_2 = FALSE,Step3_2 = FALSE; |
84 volatile bool Measuring_3 = FALSE,Step1_3 = FALSE,Step2_3 = FALSE,Step3_3 = FALSE; | |
85 volatile bool TimetoBegin=FALSE; | |
86 | |
17
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
87 double FrequDDS1=110000000.0, FrequDDS2=15300000.0, FrequDDS3=150400000.0, FrequDDS4=110000000.0; |
0 | 88 double Slope_1=0.0,Slope_2=0.0,Slope_3=0.0,Beatslope_2=0.0; |
17
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
89 double SlopeTime1=40.0, SlopeTime2=40.0; SlopeTime3=40.0; |
0 | 90 |
17
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
91 double N_1=0.0, N_2=0.0, N_3=0.0; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
92 double DeltaT_1=20.0, DeltakHz_1=500.0, t1_1=0.0, t2_1=0.0, t3_1=0.0, Frepplus_1=0.0, Frepminus_1=0.0; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
93 double DeltaT_2=20.0, DeltakHz_2=500.0, t1_2=0.0, t2_2=0.0, t3_2=0.0, Frepplus_2=0.0, Frepminus_2=0.0; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
94 double DeltaT_3=20.0, DeltakHz_3=500.0, t1_3=0.0, t2_3=0.0, t3_3=0.0, Frepplus_3=0.0, Frepminus_3=0.0; |
0 | 95 |
24
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
96 int n_1=0, n_2=0, n_3=0; |
0 | 97 double Frequ_slope_1=0.0,Moy_slope_1=0.0,Slope_slope_1=0.0,Frequ_slope_2=0.0,Moy_slope_2=0.0,Slope_slope_2=0.0,Frequ_slope_3=0.0,Moy_slope_3=0.0,Slope_slope_3=0.0; |
98 int N_slope_1=0,N_slope_2=0,N_slope_3=0; | |
99 double Beat_slope_2=0.0 ,Moy_Beatslope_2=0.0,Slope_Beatslope_2=0.0; | |
100 double Ch4_slope=0.0,Moy_Ch4slope_1=0.0,Slope_Ch4slope_1=0.0,Ch4Slope=0.0; | |
101 | |
102 double FrequencyDDSBes=0.0,FrequencyDDSBesInit=0.0; | |
103 double FrequencyDDS3=0.0,FrequencyDDS3Init=0.0; | |
104 double DeltaFrep275=0.0,DeltaFrep10=0.0; ; | |
105 double DDSBesChanged1=FALSE,DDSBesChanged2=FALSE; | |
106 | |
107 double DeltaDDS3=0.0,Delta10K_Plus=0.0,Delta10K_Minus=0.0; | |
108 double Nu1=0.0, Nu2= 200000-147000+282143746.557455e6; | |
109 | |
110 double Step1=800000.0,Step2=800000.0; | |
111 | |
112 double Ch4Plus=0.0,Ch4Minus=0.0; | |
113 | |
24
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
114 int nDDSChange=0, nstabilization=0; |
0 | 115 |
116 ////// | |
117 //Pour les signes de fb | |
118 | |
17
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
119 double Frequencystep1=10000.0, tbegin1=0.0, Frepbefore1=0.0, Frequency1=0.0; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
120 double Frequencystep2=10.0, tbegin2=0.0, Frepbefore2=0.0, Ch2before=0.0, Frequency2=0.0; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
121 double Frequencystep3=100000.0, tbegin3=0.0, Frepbefore3=0.0, Frequency3=0.0; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
122 |
0 | 123 volatile bool Getsign1=FALSE,Getsign2=FALSE,Getsign3=FALSE; |
124 double Signe1=1.0,Signe2=1.0,Signe3=0.0; | |
125 | |
126 | |
127 | |
128 | |
129 | |
130 ///////////////////////// | |
131 // Slope Cancelling Variables | |
132 | |
133 volatile bool SlopeMeasuring=FALSE; | |
134 volatile bool AutoStopSlopeCancellingIfDelock=TRUE; | |
135 volatile bool OnSlopeCancelling =FALSE; | |
136 double SlopeMath2=0.0; | |
137 double TimetoSlope=60.0; | |
138 double SlopeMeasuringTimeBegin=0.0; | |
139 | |
140 char DDSFoxName[255] = "DDS Fox Control" ; | |
141 double DDSFoxClock=200000000; | |
142 int DDSFoxSweepSign=0; | |
143 double DDSFoxFrequency=70000000.0; | |
144 char DDSFoxip[255]="145.238.205.58"; | |
145 int DDSFoxPort=6665 ; | |
146 unsigned int DDSFoxProfil=7; | |
147 double DDSFoxSweeprate=0.0;// numéro de profil de la DDS : single freq=0, sweep=7 ; | |
148 double DDSFoxDeltaT=0.01; | |
149 | |
150 double Slope_Math2slope=0.0,Math2_slope=0.0,Moy_Math2slope=0.0; | |
151 int N_Math2slope=0.0,nstabilisationSlopeMeasuring=0; | |
152 | |
153 double LimitToDelock=5.0; | |
24
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
154 double limitotakoff=70.0; |
0 | 155 |
156 int ratio=10; //Recentre la frequence tous les ratios | |
157 | |
158 volatile bool FrequCorrec=FALSE,KeepFrequ=TRUE, KeepSlope=TRUE ; | |
159 int Nratio=-1; | |
1 | 160 double MoyMath2 = 0.0, CenterFrequencyCh2 = 0.0; |
0 | 161 volatile bool CenterFrequencyCh2ToDetermine=FALSE; |
162 | |
24
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
163 |
0 | 164 |
2
bd7501b65f56
Implement reference selection (microwave or Hg cavity) for slope cancelling
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
1
diff
changeset
|
165 enum { |
bd7501b65f56
Implement reference selection (microwave or Hg cavity) for slope cancelling
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
1
diff
changeset
|
166 SLOPE_REFERENCE_MICROWAVE = 0, |
bd7501b65f56
Implement reference selection (microwave or Hg cavity) for slope cancelling
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
1
diff
changeset
|
167 SLOPE_REFERENCE_HG_CAVITY = 1, |
bd7501b65f56
Implement reference selection (microwave or Hg cavity) for slope cancelling
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
1
diff
changeset
|
168 }; |
0 | 169 |
2
bd7501b65f56
Implement reference selection (microwave or Hg cavity) for slope cancelling
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
1
diff
changeset
|
170 int slopeReference = SLOPE_REFERENCE_MICROWAVE; |
0 | 171 |
172 ////////////////////////////////// | |
173 // Keep Centered Variables | |
174 | |
175 volatile bool KeepCentering=FALSE; | |
176 double Timetorecenter275K=3600.0*10; | |
177 double Timetorecenter10K=3600.0*3; | |
178 double CenteringTimeBegin275K=0.0; | |
179 double CenteringTimeBegin10K=0.0; | |
180 | |
181 | |
182 | |
183 //============================================================================== | |
184 // Functions | |
185 int LaunchDDSFOX (char *Name,char *ip,int Port,unsigned int Profil,double Clock,double DeltaT,double Frequency,double Sweeprate,int mode) ; | |
186 double ReadDDSFOX (char *Name,char *ip,int Port,unsigned int Profil,double Clock,double DeltaT,double Frequency,double Sweeprate) ; | |
187 | |
188 | |
189 | |
190 | |
191 | |
192 void initMathParser(muParserHandle_t * pMathParser) | |
193 { | |
194 (* pMathParser) = mupCreate() ; // Math parser number 1, normally used for frep | |
195 mupDefineOprtChars( * pMathParser, "abcdefghijklmnopqrstuvwxyzµ" | |
196 "ABCDEFGHIJKLMNOPQRSTUVWXYZ" | |
197 "+-*^/?<>=#!$%&|~'_"); | |
198 mupDefineVar( * pMathParser, "UTC", &utc); | |
199 mupDefineVar( * pMathParser, "MJD", &mjd); | |
200 mupDefineVar( * pMathParser, "Ch1", &Ch1); | |
201 mupDefineVar( * pMathParser, "Ch2", &Ch2); | |
202 mupDefineVar( * pMathParser, "Ch3", &Ch3); | |
203 mupDefineVar( * pMathParser, "Ch4", &Ch4); | |
204 mupDefineVar( * pMathParser, "DDS_Frep", &(DDSBes.Frequency)); | |
205 mupDefineVar( * pMathParser, "DDS1", &(DDS4xAD9912.Frequency1)); | |
206 mupDefineVar( * pMathParser, "DDS2", &(DDS4xAD9912.Frequency2)); | |
207 mupDefineVar( * pMathParser, "DDS3", &(DDS4xAD9912.Frequency3)); | |
208 mupDefineVar( * pMathParser, "DDS4", &(DDS4xAD9912.Frequency4)); | |
209 mupDefineVar( * pMathParser, "N1", &N1); | |
210 mupDefineVar( * pMathParser, "N2", &N2); | |
211 mupDefineVar( * pMathParser, "N3", &N3); | |
212 mupDefineVar( * pMathParser, "Nu1", &Nu1); | |
213 mupDefineVar( * pMathParser, "Nu2", &Nu2); | |
214 mupDefineVar( * pMathParser, "DeltaDDS3", &DeltaDDS3); | |
215 mupDefineVar( * pMathParser, "Signe1", &Signe1); | |
216 mupDefineVar( * pMathParser, "Signe2", &Signe2); | |
217 mupDefineVar( * pMathParser, "Ndiv", &Ndiv); | |
218 mupDefinePostfixOprt( * pMathParser, "P", &Peta , 1); | |
219 mupDefinePostfixOprt( * pMathParser, "T", &Tera , 1); | |
220 mupDefinePostfixOprt( * pMathParser, "G", &Giga , 1); | |
221 mupDefinePostfixOprt( * pMathParser, "M", &Mega , 1); | |
222 mupDefinePostfixOprt( * pMathParser, "k", &kilo , 1); | |
223 mupDefinePostfixOprt( * pMathParser, "m", &milli, 1); | |
224 mupDefinePostfixOprt( * pMathParser, "u", µ, 1); | |
225 mupDefinePostfixOprt( * pMathParser, "µ", µ, 1); | |
226 mupDefinePostfixOprt( * pMathParser, "n_1", &nano, 1); | |
227 mupDefinePostfixOprt( * pMathParser, "p", &pico, 1); | |
228 mupDefinePostfixOprt( * pMathParser, "f", &femto, 1); | |
229 } | |
230 | |
231 int main (int argc, char *argv[]) | |
232 { | |
233 //int ThreadId ; // to be used when I will replace timer by thread for counder readout | |
234 | |
235 char FileNamePrototype[MAX_PATHNAME_LEN] ; | |
236 double initfreqDDS ; | |
237 char * MathString1 = " " ; | |
238 char * MathString2 = " " ; | |
239 char * MathString3 = " " ; | |
240 char * MathString4 = " " ; | |
241 char * MathString5 = " " ; | |
242 | |
243 if (InitCVIRTE (0, argv, 0) == 0) | |
244 return -1; /* out of memory */ | |
245 if ((MainPanel = LoadPanel (0, "FXAnalyse.uir", PANEL)) < 0) | |
246 return -1; | |
247 if ((CalcN1Panel = LoadPanel (0, "FXAnalyse.uir", CALCN1)) < 0) | |
248 return -1; | |
249 if ((CalcN2Panel = LoadPanel (0, "FXAnalyse.uir", CALCN2)) < 0) | |
250 return -1; | |
251 if ((CalcN3Panel = LoadPanel (0, "FXAnalyse.uir", CALCN3)) < 0) | |
252 return -1; | |
17
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
253 if ((EstimateN3Panel = LoadPanel (MainPanel, "FXAnalyse.uir", ESTIMATEN3)) < 0) |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
254 return -1; |
0 | 255 |
256 DisplayPanel (MainPanel); | |
257 | |
258 // Initialize LogFileName pointer | |
259 | |
260 LogFileName = FileNamePrototype ; | |
261 | |
262 // Initialyze the DDS Besancon Output | |
263 | |
264 DDSBes_Initialize(&DDSBes) ; | |
265 DDSBes_SetClockFrequency(&DDSBes, DDSBESCLOCK) ; // Peut etre passer tout ca dans DDSBes-Initialize ? | |
266 DDSBes_SetAmplitude(&DDSBes, 4095) ; | |
267 GetCtrlVal(MainPanel, PANEL_DDSFREPOUT,&initfreqDDS) ; | |
268 DDSBes_SetFrequency(&DDSBes, initfreqDDS) ; | |
269 | |
270 // Initialize the quadruple AD9959 DDS (Fox board interface) | |
271 | |
272 DDS4xAD9912_Reset(&DDS4xAD9912) ; | |
273 GetCtrlVal(MainPanel, PANEL_DDS1, &initfreqDDS) ; | |
274 DDS4xAD9912_SetFrequency(&DDS4xAD9912, 1, initfreqDDS) ; | |
275 GetCtrlVal(MainPanel, PANEL_DDS2, &initfreqDDS) ; | |
276 DDS4xAD9912_SetFrequency(&DDS4xAD9912, 2, initfreqDDS) ; | |
277 GetCtrlVal(MainPanel, PANEL_DDS3, &initfreqDDS) ; | |
278 DDS4xAD9912_SetFrequency(&DDS4xAD9912, 3, initfreqDDS) ; | |
279 GetCtrlVal(MainPanel, PANEL_DDS4, &initfreqDDS) ; | |
280 DDS4xAD9912_SetFrequency(&DDS4xAD9912, 4, initfreqDDS) ; | |
281 | |
282 | |
283 // Initialyze the DDSFOX Output | |
284 LaunchDDSFOX (DDSFoxName,DDSFoxip,DDSFoxPort,DDSFoxProfil,DDSFoxClock,DDSFoxDeltaT,DDSFoxFrequency,DDSFoxSweeprate,1); | |
285 | |
286 // Initialize the 5 (separate) math parsers for frep, Nu_Hg, Nu_Sr, N3 and ExtraMath | |
287 | |
288 Ch1=0.0 ; Ch2=0.0 ; Ch3=0.0 ; Ch4=0.0 ; | |
289 GetCtrlVal(MainPanel, PANEL_N1CHOICE, &N1) ; | |
290 GetCtrlVal(MainPanel, PANEL_N2CHOICE, &N2) ; | |
291 | |
292 GetCtrlVal(MainPanel, PANEL_N3CHOICE, &N3) ; | |
293 | |
294 initMathParser(&MathParser1) ; | |
295 mupDefineVar(MathParser1, "DDS", &(DDSBes.Frequency)); | |
296 GetCtrlVal(MainPanel, PANEL_MATHSTRING1, MathString1) ; | |
297 mupSetExpr(MathParser1, MathString1); | |
298 | |
299 initMathParser(&MathParser2) ; | |
300 mupDefineVar( MathParser2, "Math1", &Math1); | |
301 mupDefineVar( MathParser2, "DDS", &(DDS4xAD9912.Frequency1)); | |
302 GetCtrlVal(MainPanel, PANEL_MATHSTRING2, MathString2) ; | |
303 mupSetExpr(MathParser2, MathString2); | |
304 | |
305 initMathParser(&MathParser3) ; | |
306 mupDefineVar( MathParser3, "Math1", &Math1); | |
307 mupDefineVar( MathParser3, "Math2", &Math2); | |
308 mupDefineVar( MathParser3, "DDS", &(DDS4xAD9912.Frequency2)); | |
309 GetCtrlVal(MainPanel, PANEL_MATHSTRING3, MathString3) ; | |
310 mupSetExpr(MathParser3, MathString3); | |
311 | |
312 initMathParser(&MathParser4) ; | |
313 mupDefineVar( MathParser4, "Math1", &Math1); | |
314 mupDefineVar( MathParser4, "Math2", &Math2); | |
315 mupDefineVar( MathParser4, "Math3", &Math3); | |
316 GetCtrlVal(MainPanel, PANEL_MATHSTRING4, MathString4) ; | |
317 mupSetExpr(MathParser4, MathString4); | |
318 | |
319 initMathParser(&MathParser5) ; | |
320 mupDefineVar( MathParser5, "Math1", &Math1); | |
321 mupDefineVar( MathParser5, "Math2", &Math2); | |
322 mupDefineVar( MathParser5, "Math3", &Math3); | |
323 mupDefineVar( MathParser5, "Math4", &Math4); | |
324 GetCtrlVal(MainPanel, PANEL_MATHSTRING5, MathString5) ; | |
325 mupSetExpr(MathParser5, MathString5); | |
326 | |
327 | |
328 RunUserInterface (); | |
329 | |
330 // Stops everything at the end | |
331 | |
332 DiscardPanel (MainPanel); | |
333 return 0; | |
334 } | |
335 | |
336 | |
337 void OnCloseViewPanel(int panel){ | |
338 | |
339 if (panel==PlotCh1.PlotPanel) { SetCtrlVal(MainPanel,PANEL_CHECKBOX_FREQ1PLOT, FALSE) ; } ; | |
340 if (panel==PlotCh2.PlotPanel) { SetCtrlVal(MainPanel,PANEL_CHECKBOX_FREQ2PLOT, FALSE) ; } ; | |
341 if (panel==PlotCh3.PlotPanel) { SetCtrlVal(MainPanel,PANEL_CHECKBOX_FREQ3PLOT, FALSE) ; } ; | |
342 if (panel==PlotCh4.PlotPanel) { SetCtrlVal(MainPanel,PANEL_CHECKBOX_FREQ4PLOT, FALSE) ; } ; | |
343 if (panel==PlotMath1.PlotPanel) { SetCtrlVal(MainPanel,PANEL_CHECKBOX_MATH1PLOT, FALSE) ; } ; | |
344 if (panel==PlotMath2.PlotPanel) { SetCtrlVal(MainPanel,PANEL_CHECKBOX_MATH2PLOT, FALSE) ; } ; | |
345 if (panel==PlotMath3.PlotPanel) { SetCtrlVal(MainPanel,PANEL_CHECKBOX_MATH3PLOT, FALSE) ; } ; | |
346 if (panel==PlotMath4.PlotPanel) { SetCtrlVal(MainPanel,PANEL_CHECKBOX_MATH4PLOT, FALSE) ; } ; | |
347 if (panel==PlotMath5.PlotPanel) { SetCtrlVal(MainPanel,PANEL_CHECKBOX_MATH5PLOT, FALSE) ; } ; | |
348 | |
349 if (panel==AllanCh1.AllanPanel) { SetCtrlVal(MainPanel,PANEL_CHECKBOX_FREQ1ALLAN, FALSE) ; } ; | |
350 if (panel==AllanCh2.AllanPanel) { SetCtrlVal(MainPanel,PANEL_CHECKBOX_FREQ2ALLAN, FALSE) ; } ; | |
351 if (panel==AllanCh3.AllanPanel) { SetCtrlVal(MainPanel,PANEL_CHECKBOX_FREQ3ALLAN, FALSE) ; } ; | |
352 if (panel==AllanCh4.AllanPanel) { SetCtrlVal(MainPanel,PANEL_CHECKBOX_FREQ4ALLAN, FALSE) ; } ; | |
353 if (panel==AllanMath1.AllanPanel) { SetCtrlVal(MainPanel,PANEL_CHECKBOX_MATH1ALLAN, FALSE) ; } ; | |
354 if (panel==AllanMath2.AllanPanel) { SetCtrlVal(MainPanel,PANEL_CHECKBOX_MATH2ALLAN, FALSE) ; } ; | |
355 if (panel==AllanMath3.AllanPanel) { SetCtrlVal(MainPanel,PANEL_CHECKBOX_MATH3ALLAN, FALSE) ; } ; | |
356 if (panel==AllanMath4.AllanPanel) { SetCtrlVal(MainPanel,PANEL_CHECKBOX_MATH4ALLAN, FALSE) ; } ; | |
357 if (panel==AllanMath5.AllanPanel) { SetCtrlVal(MainPanel,PANEL_CHECKBOX_MATH5ALLAN, FALSE) ; } ; | |
358 | |
359 return ; | |
360 } | |
361 | |
362 | |
363 | |
364 | |
365 | |
366 int CVICALLBACK QuitCallback (int panel, int control, int event, | |
367 void *callbackData, int eventData1, int eventData2) | |
368 { | |
369 switch (event) | |
370 { | |
371 case EVENT_COMMIT: | |
372 QuitUserInterface (0); | |
373 DDSBes_Close(&DDSBes); | |
374 mupRelease(MathParser1); | |
375 mupRelease(MathParser2); | |
376 mupRelease(MathParser3); | |
377 mupRelease(MathParser4); | |
378 mupRelease(MathParser5); | |
379 break; | |
380 case EVENT_RIGHT_CLICK: | |
381 | |
382 break; | |
383 } | |
384 return 0; | |
385 } | |
386 | |
387 int CVICALLBACK CB_OnEventMain(int panel, int event, void *callbackData, int eventData1, int eventData2) | |
388 { | |
389 int ActiveControl ; | |
390 int StepIndex ; | |
391 double Step ; | |
392 | |
393 switch (event) { | |
394 case EVENT_CLOSE: | |
395 QuitUserInterface (0); | |
396 DDSBes_Close(&DDSBes); | |
397 mupRelease(MathParser1); | |
398 mupRelease(MathParser2); | |
399 mupRelease(MathParser3); | |
400 break; | |
401 case EVENT_KEYPRESS: | |
402 switch (eventData1) // ie the code of the key which has been stroke | |
403 { | |
404 case VAL_RIGHT_ARROW_VKEY : | |
405 ActiveControl = GetActiveCtrl(panel); | |
406 if (ActiveControl==PANEL_DDSFREPOUT || ActiveControl==PANEL_DDSFREPSTEP) { | |
407 GetCtrlIndex(MainPanel, PANEL_DDSFREPSTEP, &StepIndex); | |
408 if (StepIndex<14){ | |
409 SetCtrlIndex(MainPanel, PANEL_DDSFREPSTEP, ++StepIndex) ; | |
410 GetCtrlVal(MainPanel, PANEL_DDSFREPSTEP, &Step); | |
411 SetCtrlAttribute(MainPanel, PANEL_DDSFREPOUT, ATTR_INCR_VALUE, Step) ; | |
412 }; | |
413 }; | |
414 if (ActiveControl==PANEL_DDS1 || ActiveControl==PANEL_DDS1STEP) { | |
415 GetCtrlIndex(MainPanel, PANEL_DDS1STEP, &StepIndex); | |
416 if (StepIndex<14){ | |
417 SetCtrlIndex(MainPanel, PANEL_DDS1STEP, ++StepIndex) ; | |
418 GetCtrlVal(MainPanel, PANEL_DDS1STEP, &Step); | |
419 SetCtrlAttribute(MainPanel, PANEL_DDS1, ATTR_INCR_VALUE, Step) ; | |
420 }; | |
421 }; | |
422 if (ActiveControl==PANEL_DDS2 || ActiveControl==PANEL_DDS2STEP) { | |
423 GetCtrlIndex(MainPanel, PANEL_DDS2STEP, &StepIndex); | |
424 if (StepIndex<14){ | |
425 SetCtrlIndex(MainPanel, PANEL_DDS2STEP, ++StepIndex) ; | |
426 GetCtrlVal(MainPanel, PANEL_DDS2STEP, &Step); | |
427 SetCtrlAttribute(MainPanel, PANEL_DDS2, ATTR_INCR_VALUE, Step) ; | |
428 }; | |
429 }; | |
430 if (ActiveControl==PANEL_DDS3|| ActiveControl==PANEL_DDS3STEP) { | |
431 GetCtrlIndex(MainPanel, PANEL_DDS3STEP, &StepIndex); | |
432 if (StepIndex<14){ | |
433 SetCtrlIndex(MainPanel, PANEL_DDS3STEP, ++StepIndex) ; | |
434 GetCtrlVal(MainPanel, PANEL_DDS3STEP, &Step); | |
435 SetCtrlAttribute(MainPanel, PANEL_DDS3, ATTR_INCR_VALUE, Step) ; | |
436 }; | |
437 }; | |
438 if (ActiveControl==PANEL_DDS4|| ActiveControl==PANEL_DDS4STEP) { | |
439 GetCtrlIndex(MainPanel, PANEL_DDS4STEP, &StepIndex); | |
440 if (StepIndex<14){ | |
441 SetCtrlIndex(MainPanel, PANEL_DDS4STEP, ++StepIndex) ; | |
442 GetCtrlVal(MainPanel, PANEL_DDS4STEP, &Step); | |
443 SetCtrlAttribute(MainPanel, PANEL_DDS4, ATTR_INCR_VALUE, Step) ; | |
444 }; | |
445 }; | |
446 break; | |
447 case VAL_LEFT_ARROW_VKEY : | |
448 ActiveControl = GetActiveCtrl(panel); | |
449 if (ActiveControl==PANEL_DDSFREPOUT || ActiveControl==PANEL_DDSFREPSTEP) { | |
450 GetCtrlIndex(MainPanel, PANEL_DDSFREPSTEP, &StepIndex); | |
451 if (StepIndex>0){ | |
452 SetCtrlIndex(MainPanel, PANEL_DDSFREPSTEP, --StepIndex) ; | |
453 GetCtrlVal(MainPanel, PANEL_DDSFREPSTEP, &Step); | |
454 SetCtrlAttribute(MainPanel, PANEL_DDSFREPOUT, ATTR_INCR_VALUE, Step) ; | |
455 }; | |
456 }; | |
457 if (ActiveControl==PANEL_DDS1 || ActiveControl==PANEL_DDS1STEP) { | |
458 GetCtrlIndex(MainPanel, PANEL_DDS1STEP, &StepIndex); | |
459 if (StepIndex>0){ | |
460 SetCtrlIndex(MainPanel, PANEL_DDS1STEP, --StepIndex) ; | |
461 GetCtrlVal(MainPanel, PANEL_DDS1STEP, &Step); | |
462 SetCtrlAttribute(MainPanel, PANEL_DDS1, ATTR_INCR_VALUE, Step) ; | |
463 }; | |
464 }; | |
465 if (ActiveControl==PANEL_DDS2 || ActiveControl==PANEL_DDS2STEP) { | |
466 GetCtrlIndex(MainPanel, PANEL_DDS2STEP, &StepIndex); | |
467 if (StepIndex>0){ | |
468 SetCtrlIndex(MainPanel, PANEL_DDS2STEP, --StepIndex) ; | |
469 GetCtrlVal(MainPanel, PANEL_DDS2STEP, &Step); | |
470 SetCtrlAttribute(MainPanel, PANEL_DDS2, ATTR_INCR_VALUE, Step) ; | |
471 }; | |
472 }; | |
473 if (ActiveControl==PANEL_DDS3 || ActiveControl==PANEL_DDS3STEP) { | |
474 GetCtrlIndex(MainPanel, PANEL_DDS3STEP, &StepIndex); | |
475 if (StepIndex>0){ | |
476 SetCtrlIndex(MainPanel, PANEL_DDS3STEP, --StepIndex) ; | |
477 GetCtrlVal(MainPanel, PANEL_DDS3STEP, &Step); | |
478 SetCtrlAttribute(MainPanel, PANEL_DDS3, ATTR_INCR_VALUE, Step) ; | |
479 }; | |
480 }; | |
481 if (ActiveControl==PANEL_DDS4 || ActiveControl==PANEL_DDS4STEP) { | |
482 GetCtrlIndex(MainPanel, PANEL_DDS4STEP, &StepIndex); | |
483 if (StepIndex>0){ | |
484 SetCtrlIndex(MainPanel, PANEL_DDS4STEP, --StepIndex) ; | |
485 GetCtrlVal(MainPanel, PANEL_DDS4STEP, &Step); | |
486 SetCtrlAttribute(MainPanel, PANEL_DDS4, ATTR_INCR_VALUE, Step) ; | |
487 }; | |
488 }; | |
489 break; | |
490 case VAL_F1_VKEY : | |
491 SetActiveCtrl(MainPanel, PANEL_DDSFREPOUT); | |
492 break; | |
493 case VAL_F2_VKEY : | |
494 SetActiveCtrl(MainPanel, PANEL_DDS1); | |
495 break; | |
496 case VAL_F3_VKEY : | |
497 SetActiveCtrl(MainPanel, PANEL_DDS2); | |
498 break; | |
499 case VAL_F4_VKEY : | |
500 SetActiveCtrl(MainPanel, PANEL_DDS3); | |
501 break; | |
502 case VAL_F5_VKEY : | |
503 SetActiveCtrl(MainPanel, PANEL_DDS4); | |
504 break; | |
505 }; | |
506 break; | |
507 | |
508 } | |
509 return 0; | |
510 } | |
511 | |
512 void FindCurrentFileName(void) | |
513 { | |
514 char * date, day[3], month[3], year[3]; // DD ; MM ; 20YY plus one space for NULL termination character | |
515 | |
516 date = DateStr(); | |
517 Scan(date, "%s>%s[w2]-%s[w2]-20%s[w2]", month, day, year); | |
518 Fmt(LogFileName, "%s<%s\\%s%s%s_Frequ.txt", LOGFILEPATH, year, month, day); | |
519 return ; | |
520 } | |
521 | |
522 | |
523 | |
524 int CVICALLBACK CB_OnStart (int panel, int control, int event, | |
525 void *callbackData, int eventData1, int eventData2) | |
526 { | |
527 switch (event) | |
20
3a7f088d4960
Get rid of unused variables. Some minor coding style improvements
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
17
diff
changeset
|
528 { |
0 | 529 case EVENT_COMMIT: |
530 if (Acquiring) { | |
20
3a7f088d4960
Get rid of unused variables. Some minor coding style improvements
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
17
diff
changeset
|
531 PlotCh1.IndexPoint = 0; |
3a7f088d4960
Get rid of unused variables. Some minor coding style improvements
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
17
diff
changeset
|
532 PlotCh2.IndexPoint = 0; |
3a7f088d4960
Get rid of unused variables. Some minor coding style improvements
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
17
diff
changeset
|
533 PlotCh3.IndexPoint = 0; |
3a7f088d4960
Get rid of unused variables. Some minor coding style improvements
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
17
diff
changeset
|
534 PlotCh4.IndexPoint = 0; |
3a7f088d4960
Get rid of unused variables. Some minor coding style improvements
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
17
diff
changeset
|
535 PlotMath1.IndexPoint = 0; |
3a7f088d4960
Get rid of unused variables. Some minor coding style improvements
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
17
diff
changeset
|
536 PlotMath2.IndexPoint = 0; |
3a7f088d4960
Get rid of unused variables. Some minor coding style improvements
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
17
diff
changeset
|
537 PlotMath3.IndexPoint = 0; |
3a7f088d4960
Get rid of unused variables. Some minor coding style improvements
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
17
diff
changeset
|
538 PlotMath4.IndexPoint = 0; |
3a7f088d4960
Get rid of unused variables. Some minor coding style improvements
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
17
diff
changeset
|
539 PlotMath5.IndexPoint = 0; |
3a7f088d4960
Get rid of unused variables. Some minor coding style improvements
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
17
diff
changeset
|
540 Allan_Reset(&AllanCh1); |
3a7f088d4960
Get rid of unused variables. Some minor coding style improvements
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
17
diff
changeset
|
541 Allan_Reset(&AllanCh2); |
3a7f088d4960
Get rid of unused variables. Some minor coding style improvements
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
17
diff
changeset
|
542 Allan_Reset(&AllanCh3); |
3a7f088d4960
Get rid of unused variables. Some minor coding style improvements
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
17
diff
changeset
|
543 Allan_Reset(&AllanCh4); |
3a7f088d4960
Get rid of unused variables. Some minor coding style improvements
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
17
diff
changeset
|
544 Allan_Reset(&AllanMath1); |
3a7f088d4960
Get rid of unused variables. Some minor coding style improvements
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
17
diff
changeset
|
545 Allan_Reset(&AllanMath2); |
3a7f088d4960
Get rid of unused variables. Some minor coding style improvements
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
17
diff
changeset
|
546 Allan_Reset(&AllanMath3); |
3a7f088d4960
Get rid of unused variables. Some minor coding style improvements
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
17
diff
changeset
|
547 Allan_Reset(&AllanMath4); |
3a7f088d4960
Get rid of unused variables. Some minor coding style improvements
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
17
diff
changeset
|
548 Allan_Reset(&AllanMath5); |
3a7f088d4960
Get rid of unused variables. Some minor coding style improvements
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
17
diff
changeset
|
549 } |
3a7f088d4960
Get rid of unused variables. Some minor coding style improvements
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
17
diff
changeset
|
550 Acquiring = TRUE; |
0 | 551 SetCtrlAttribute(MainPanel, PANEL_STARTBUTTON, ATTR_LABEL_TEXT, "__RESET"); |
552 | |
20
3a7f088d4960
Get rid of unused variables. Some minor coding style improvements
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
17
diff
changeset
|
553 FindCurrentFileName(); // LogFileName is the one corresponding to the date of today... |
3a7f088d4960
Get rid of unused variables. Some minor coding style improvements
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
17
diff
changeset
|
554 GetFileInfo(LogFileName, &OldLogFilePtr); |
0 | 555 OldLogFilePtr -= OldLogFilePtr%FXLINELENGTH + FXLINELENGTH - 2; |
556 break; | |
557 } | |
558 return 0; | |
559 } | |
560 | |
561 int CVICALLBACK CB_OnStop (int panel, int control, int event, | |
562 void *callbackData, int eventData1, int eventData2) | |
563 { | |
564 switch (event) | |
565 { | |
566 case EVENT_COMMIT: | |
567 Acquiring = FALSE ; | |
568 SetCtrlAttribute(MainPanel, PANEL_STARTBUTTON, ATTR_LABEL_TEXT, "__START"); | |
569 break; | |
570 case EVENT_RIGHT_CLICK: | |
571 | |
572 break; | |
573 } | |
574 return 0; | |
575 } | |
576 | |
577 int CVICALLBACK CB_OnTimer (int panel, int control, int event, | |
578 void *callbackData, int eventData1, int eventData2) | |
579 { | |
20
3a7f088d4960
Get rid of unused variables. Some minor coding style improvements
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
17
diff
changeset
|
580 int LogFile, FileOpt, FileHg, FileExtraMath; |
3a7f088d4960
Get rid of unused variables. Some minor coding style improvements
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
17
diff
changeset
|
581 long LogFileSize; |
0 | 582 char LineBuffer[FXLINELENGTH+10] = "\r\n_1 "; |
583 | |
20
3a7f088d4960
Get rid of unused variables. Some minor coding style improvements
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
17
diff
changeset
|
584 char TimeTag[] = "100103 000000.000"; // K+K time tag meaning here 2010 january the 3rd at 00:00:00.000 |
0 | 585 char Date[] = "03/01/2010" ; |
586 char Time[] = "00:00:00.000" ; | |
587 char Year[] = "2010"; | |
588 char ShortYear[] = "10"; // the last 2 digits of calendar year only | |
589 char Month[] = "01"; | |
590 char Day[] = "03"; | |
591 char Hour[] = "00"; | |
592 char Min[] = "00" ; | |
593 char Sec[] = "00.000"; | |
594 struct tm LocalTime ; | |
20
3a7f088d4960
Get rid of unused variables. Some minor coding style improvements
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
17
diff
changeset
|
595 time_t utcTime; |
3a7f088d4960
Get rid of unused variables. Some minor coding style improvements
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
17
diff
changeset
|
596 char * ReportString = "dd.mm.yy\t00:00:00\t3481610838.000\t0000000000000.00000000"; |
0 | 597 |
20
3a7f088d4960
Get rid of unused variables. Some minor coding style improvements
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
17
diff
changeset
|
598 int BoxChecked = FALSE; |
0 | 599 |
600 double FoxFrequ=0.0; | |
601 | |
602 double FrequencyToChange=0.0; | |
603 double DeltaCh2=0.0; | |
604 double DeltaCh4=0.0; | |
605 | |
606 double ActualFrequ=0.0; | |
607 double ActualSlope=0.0; | |
608 | |
609 switch (event) | |
20
3a7f088d4960
Get rid of unused variables. Some minor coding style improvements
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
17
diff
changeset
|
610 { |
0 | 611 case EVENT_TIMER_TICK: |
612 switch(Acquiring) | |
613 { | |
614 case TRUE: | |
615 | |
616 GetFileInfo(LogFileName, &LogFileSize) ; | |
617 | |
618 if (LogFileSize > OldLogFilePtr+2*FXLINELENGTH-2) { // if a complete newline has been written | |
619 | |
2
bd7501b65f56
Implement reference selection (microwave or Hg cavity) for slope cancelling
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
1
diff
changeset
|
620 SuspendTimerCallbacks() ; |
0 | 621 |
622 // Open Log file and get to the beginning of newly completed line | |
623 LogFile = OpenFile(LogFileName, VAL_READ_ONLY, VAL_OPEN_AS_IS, VAL_ASCII) ; | |
624 OldLogFilePtr += FXLINELENGTH; | |
625 SetFilePtr(LogFile, OldLogFilePtr, 0) ; | |
626 | |
627 // return the last complete string from the log file and scan it for date and time information | |
628 | |
629 // first, the time tag, and store it in various formats | |
630 ReadFile(LogFile, TimeTag, 17); | |
631 | |
632 CopyBytes(Date,0,TimeTag,4,2); | |
633 CopyBytes(Date,3,TimeTag,2,2); | |
634 CopyBytes(Date,8,TimeTag,0,2); | |
635 CopyBytes(Time,0,TimeTag,7,2); | |
636 CopyBytes(Time,3,TimeTag,9,2); | |
637 CopyBytes(Time,6,TimeTag,11,6); | |
638 SetCtrlVal(MainPanel, PANEL_DATE, Date) ; | |
639 SetCtrlVal(MainPanel, PANEL_TIME, Time) ; | |
640 | |
641 CopyBytes(Year,2,TimeTag,0,2); // first 2 bytes of year string remains "20" | |
642 CopyBytes(ShortYear,0,TimeTag,0,2); | |
643 CopyBytes(Month,0,TimeTag,2,2); | |
644 CopyBytes(Day,0,TimeTag,4,2); | |
645 CopyBytes(Hour,0,TimeTag,7,2); | |
646 CopyBytes(Min,0,TimeTag,9,2); | |
647 CopyBytes(Sec,0,TimeTag,11,6); | |
648 Fmt(&LocalTime.tm_year, "%d<%s", Year); | |
649 Fmt(&LocalTime.tm_mon, "%d<%s", Month); | |
650 Fmt(&LocalTime.tm_mday, "%d<%s", Day); | |
651 Fmt(&LocalTime.tm_hour, "%d<%s", Hour); | |
652 Fmt(&LocalTime.tm_min, "%d<%s", Min); | |
653 Fmt(&LocalTime.tm_sec, "%d<%s", "00"); // special case to handle non integer number of UTC seconds | |
654 LocalTime.tm_hour += 0; | |
655 LocalTime.tm_min -= 0; | |
656 LocalTime.tm_sec -= 0; | |
657 LocalTime.tm_mon -= 1 ; // january is month 0 for tm struct | |
658 LocalTime.tm_year -= 1900 ; // year is number of years since 1900 for tm struct | |
659 LocalTime.tm_isdst = -1; // daylight saving flag MUST be set to -1 (unallocated is bugging and +1 is making 1 hour error in summer) | |
660 utcTime = mktime (&LocalTime); | |
661 utc = (double) utcTime + strtod(Sec,NULL) ; | |
662 mjd=utc/86400.; //nb de jours depuis l'origine d'UTC (01/01/1900 à 00h00 GMT) | |
663 mjd+=15020; //date MJD de la date origine d'UTC | |
664 SetCtrlVal(MainPanel, PANEL_UTC, utc); | |
665 SetCtrlVal(MainPanel, PANEL_MJD, mjd); | |
666 | |
667 // scan the line for counters's channels information | |
668 | |
669 ReadLine(LogFile, LineBuffer, FXLINELENGTH+9) ; | |
670 CloseFile(LogFile); | |
671 | |
672 Scan(LineBuffer, "%f%f%f%f", &Ch1, &Ch2, &Ch3, &Ch4) ; | |
673 Ch1 = 1000*Ch1; | |
674 Ch2 = 1000*Ch2; | |
675 Ch3 = 1000*Ch3; | |
676 Ch4 = 1000*Ch4; | |
677 | |
678 SetCtrlVal(MainPanel, PANEL_FREQ1, Ch1) ; | |
679 SetCtrlVal(MainPanel, PANEL_FREQ2, Ch2) ; | |
680 SetCtrlVal(MainPanel, PANEL_FREQ3, Ch3) ; | |
681 SetCtrlVal(MainPanel, PANEL_FREQ4, Ch4) ; | |
682 SetCtrlVal(MainPanel, PANEL_SIGN1, Signe1); | |
683 SetCtrlVal(MainPanel, PANEL_SIGN2, Signe2); | |
684 SetCtrlVal(MainPanel, PANEL_SIGN3, Signe3); | |
22
b7b3b5f1c5a6
Remove unused widgets from N1 measurement panel. Harmonize widgets names
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
20
diff
changeset
|
685 SetCtrlVal(CalcN1Panel, CALCN1_N, N_1) ; |
0 | 686 SetCtrlVal(CalcN1Panel, CALCN1_SLOPE, Slope_1) ; |
22
b7b3b5f1c5a6
Remove unused widgets from N1 measurement panel. Harmonize widgets names
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
20
diff
changeset
|
687 SetCtrlVal(CalcN2Panel, CALCN2_N, N_2) ; |
0 | 688 SetCtrlVal(CalcN2Panel, CALCN2_SLOPE, Beatslope_2) ; |
22
b7b3b5f1c5a6
Remove unused widgets from N1 measurement panel. Harmonize widgets names
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
20
diff
changeset
|
689 SetCtrlVal(CalcN3Panel, CALCN3_N, N_3) ; |
0 | 690 SetCtrlVal(CalcN3Panel, CALCN3_SLOPE, Slope_3) ; |
691 SetCtrlVal(MainPanel, PANEL_SLOPETOCANCEL, SlopeMath2); | |
692 SetCtrlVal(MainPanel, PANEL_CENTERFREQUENCY, CenterFrequencyCh2); | |
693 SetCtrlVal(MainPanel, PANEL_LED1, SlopeMeasuring); | |
694 SetCtrlVal(MainPanel, PANEL_LED2, OnSlopeCancelling); | |
695 // Treat data | |
696 | |
697 Math1 = mupEval(MathParser1) ; | |
698 SetCtrlVal(MainPanel,PANEL_MATH1, Math1) ; | |
699 | |
700 Math2 = mupEval(MathParser2) ; | |
701 SetCtrlVal(MainPanel,PANEL_MATH2, Math2) ; | |
702 | |
703 Math3 = mupEval(MathParser3) ; | |
704 SetCtrlVal(MainPanel,PANEL_MATH3, Math3) ; | |
705 | |
706 Math4 = mupEval(MathParser4) ; | |
707 SetCtrlVal(MainPanel,PANEL_MATH4, Math4) ; | |
708 | |
709 Math5 = mupEval(MathParser5) ; | |
710 SetCtrlVal(MainPanel,PANEL_MATH5, Math5) ; | |
711 | |
712 // Plot Data and calculus if required | |
713 | |
714 GetCtrlVal(MainPanel, PANEL_CHECKBOX_FREQ1PLOT, &BoxChecked) ; | |
715 if (BoxChecked) { | |
716 Plot_AddFrequency(&PlotCh1, Ch1) ; | |
717 } | |
718 GetCtrlVal(MainPanel, PANEL_CHECKBOX_FREQ1ALLAN, &BoxChecked) ; | |
719 if (BoxChecked) { | |
720 Allan_AddFrequency(&AllanCh1, Ch1) ; | |
721 } | |
722 | |
723 GetCtrlVal(MainPanel, PANEL_CHECKBOX_FREQ2PLOT, &BoxChecked) ; | |
724 if (BoxChecked) { | |
725 Plot_AddFrequency(&PlotCh2, Ch2) ; | |
726 } | |
727 GetCtrlVal(MainPanel, PANEL_CHECKBOX_FREQ2ALLAN, &BoxChecked) ; | |
728 if (BoxChecked) { | |
729 Allan_AddFrequency(&AllanCh2, Ch2) ; | |
730 } | |
731 | |
732 GetCtrlVal(MainPanel, PANEL_CHECKBOX_FREQ3PLOT, &BoxChecked) ; | |
733 if (BoxChecked) { | |
734 Plot_AddFrequency(&PlotCh3, Ch3) ; | |
735 } | |
736 GetCtrlVal(MainPanel, PANEL_CHECKBOX_FREQ3ALLAN, &BoxChecked) ; | |
737 if (BoxChecked) { | |
738 Allan_AddFrequency(&AllanCh3, Ch3) ; | |
739 } | |
740 | |
741 GetCtrlVal(MainPanel, PANEL_CHECKBOX_FREQ4PLOT, &BoxChecked) ; | |
742 if (BoxChecked) { | |
743 Plot_AddFrequency(&PlotCh4, Ch4) ; | |
744 } | |
745 GetCtrlVal(MainPanel, PANEL_CHECKBOX_FREQ4ALLAN, &BoxChecked) ; | |
746 if (BoxChecked) { | |
747 Allan_AddFrequency(&AllanCh4, Ch4) ; | |
748 } | |
749 | |
750 GetCtrlVal(MainPanel, PANEL_CHECKBOX_MATH1PLOT, &BoxChecked) ; | |
751 if (BoxChecked) { | |
752 Plot_AddFrequency(&PlotMath1, Math1) ; | |
753 } | |
754 GetCtrlVal(MainPanel, PANEL_CHECKBOX_MATH1ALLAN, &BoxChecked) ; | |
755 if (BoxChecked) { | |
756 Allan_AddFrequency(&AllanMath1, Math1) ; | |
757 } | |
758 | |
759 GetCtrlVal(MainPanel, PANEL_CHECKBOX_MATH2PLOT, &BoxChecked) ; | |
760 if (BoxChecked) { | |
761 Plot_AddFrequency(&PlotMath2, Math2) ; | |
762 } | |
763 GetCtrlVal(MainPanel, PANEL_CHECKBOX_MATH2ALLAN, &BoxChecked) ; | |
764 if (BoxChecked) { | |
765 Allan_AddFrequency(&AllanMath2, Math2) ; | |
766 } | |
767 | |
768 GetCtrlVal(MainPanel, PANEL_CHECKBOX_MATH3PLOT, &BoxChecked) ; | |
769 if (BoxChecked) { | |
770 Plot_AddFrequency(&PlotMath3, Math3) ; | |
771 } | |
772 GetCtrlVal(MainPanel, PANEL_CHECKBOX_MATH3ALLAN, &BoxChecked) ; | |
773 if (BoxChecked) { | |
774 Allan_AddFrequency(&AllanMath3, Math3) ; | |
775 } | |
776 | |
777 GetCtrlVal(MainPanel, PANEL_CHECKBOX_MATH4PLOT, &BoxChecked) ; | |
778 if (BoxChecked) { | |
779 Plot_AddFrequency(&PlotMath4, Math4) ; | |
780 } | |
781 GetCtrlVal(MainPanel, PANEL_CHECKBOX_MATH4ALLAN, &BoxChecked) ; | |
782 if (BoxChecked) { | |
783 Allan_AddFrequency(&AllanMath4, Math4) ; | |
784 } | |
785 | |
786 GetCtrlVal(MainPanel, PANEL_CHECKBOX_MATH5PLOT, &BoxChecked) ; | |
787 if (BoxChecked) { | |
788 Plot_AddFrequency(&PlotMath5, Math5) ; | |
789 } | |
790 GetCtrlVal(MainPanel, PANEL_CHECKBOX_MATH5ALLAN, &BoxChecked) ; | |
791 if (BoxChecked) { | |
792 Allan_AddFrequency(&AllanMath5, Math5) ; | |
793 } | |
794 // Calcul de N | |
795 | |
796 if (Measuring_1==TRUE) | |
797 { | |
798 if (Step1_1==FALSE) { | |
799 SetCtrlVal(MainPanel, PANEL_DDS1, FrequDDS1) ; | |
800 DDS4xAD9912_SetFrequency(&DDS4xAD9912, 1, FrequDDS1); | |
801 | |
802 GetCtrlVal(MainPanel, PANEL_DDS2, &FrequencyDDSBesInit) ; | |
803 t1_1=utc; | |
804 Frequ_slope_1=Math1; | |
805 Moy_slope_1= Frequ_slope_1; | |
806 Ch4_slope=Ch4; | |
807 Moy_Ch4slope_1= Ch4_slope; | |
808 N_slope_1=1; | |
809 Step1_1=TRUE ; | |
810 } | |
811 else { | |
812 if(Step2_1==FALSE){ | |
813 N_slope_1=N_slope_1+1; | |
814 Frequ_slope_1=Math1; | |
815 Ch4_slope=Ch4; | |
816 Moy_slope_1=((N_slope_1-1)*Moy_slope_1 + Frequ_slope_1)/N_slope_1; | |
817 Moy_Ch4slope_1=((N_slope_1-1)*Moy_Ch4slope_1 + Ch4_slope)/N_slope_1; | |
818 Slope_slope_1 = (Slope_slope_1*(N_slope_1-2) + 6*(Frequ_slope_1-Moy_slope_1)/N_slope_1)/(N_slope_1+1) ; | |
819 Slope_Ch4slope_1 = (Slope_Ch4slope_1*(N_slope_1-2) + 6*(Ch4_slope-Moy_Ch4slope_1)/N_slope_1)/(N_slope_1+1) ; | |
820 if (utc-t1_1>SlopeTime1) { | |
821 Slope_1 = Slope_slope_1; | |
822 Ch4Slope = Slope_Ch4slope_1; | |
823 Step2_1=TRUE ; | |
824 N_slope_1=0; | |
825 Frequ_slope_1=0.0; | |
826 Moy_slope_1=0.0; | |
827 Slope_slope_1 =0.0; | |
828 Ch4_slope=0.0; | |
829 Moy_Ch4slope_1=0.0; | |
830 Slope_Ch4slope_1=0.0; | |
831 | |
832 DDS4xAD9912_FrequencyRampe (&DDS4xAD9912,1, FrequDDS1,(FrequDDS1+DeltakHz_1*1000), Step1/Ndiv ) ; | |
833 SetCtrlVal(MainPanel, PANEL_DDS1, (FrequDDS1+DeltakHz_1*1000)) ; | |
834 DDS4xAD9912_SetFrequency(&DDS4xAD9912, 1, (FrequDDS1+DeltakHz_1*1000)); | |
835 | |
836 } | |
837 } | |
838 else { | |
839 if (DDSBesChanged1==FALSE){ | |
840 | |
841 if (nDDSChange<3) | |
842 { nDDSChange=nDDSChange+1;} | |
843 | |
844 else | |
845 { | |
846 nDDSChange=0; | |
847 | |
848 DeltaFrep275=275000-Ch4; | |
849 FrequencyDDSBes=FrequencyDDSBesInit+(DeltaFrep275); | |
850 SetCtrlVal(MainPanel, PANEL_DDS2, FrequencyDDSBes) ; | |
851 DDS4xAD9912_SetFrequency(&DDS4xAD9912,2,FrequencyDDSBes); | |
852 DDSBesChanged1=TRUE; | |
853 t2_1=utc; | |
854 | |
855 } | |
856 | |
857 } | |
858 else{ | |
859 | |
860 if(Step3_1==FALSE){ | |
861 if (nstabilization<3) | |
862 {nstabilization= nstabilization+1; | |
863 TimetoBegin=TRUE;} | |
864 else | |
865 { | |
866 if (utc-t2_1<DeltaT_1) { | |
867 if (TimetoBegin==TRUE) | |
868 { | |
869 t2_1=utc; | |
870 TimetoBegin=FALSE; | |
871 } | |
872 Frepplus_1=Frepplus_1 +Math1-Slope_1*(utc-t2_1); | |
873 Ch4Plus=Ch4Plus + Ch4 -Ch4Slope*(utc-t2_1); | |
874 n_1=n_1+1; | |
875 } | |
876 else{ | |
877 Frepplus_1=Frepplus_1/n_1; | |
878 Ch4Plus=Ch4Plus/n_1; | |
879 n_1=0; | |
880 Step3_1=TRUE ; | |
881 nstabilization=0; | |
882 DDS4xAD9912_FrequencyRampe ( &DDS4xAD9912,1, (FrequDDS1+DeltakHz_1*1000),(FrequDDS1-DeltakHz_1*1000), Step1/Ndiv ) ; | |
883 SetCtrlVal(MainPanel, PANEL_DDS1, (FrequDDS1-DeltakHz_1*1000)) ; | |
884 DDS4xAD9912_SetFrequency(&DDS4xAD9912, 1, (FrequDDS1-DeltakHz_1*1000)); | |
885 } | |
886 } | |
887 } | |
888 | |
889 else { | |
890 if (DDSBesChanged2==FALSE){ | |
891 | |
892 if (nDDSChange<3) | |
893 { nDDSChange=nDDSChange+1;} | |
894 | |
895 else | |
896 { | |
897 nDDSChange=0; | |
898 | |
899 | |
900 DeltaFrep275=275000-Ch4; | |
901 FrequencyDDSBes=FrequencyDDSBes+(DeltaFrep275) ; | |
902 SetCtrlVal(MainPanel, PANEL_DDS2, FrequencyDDSBes) ; | |
903 DDS4xAD9912_SetFrequency(&DDS4xAD9912,2,FrequencyDDSBes); | |
904 DDSBesChanged2=TRUE; | |
905 t3_1=utc; | |
906 | |
907 | |
908 } | |
909 } | |
910 | |
911 else{ | |
912 if (nstabilization<3) | |
913 { nstabilization=nstabilization+1; | |
914 TimetoBegin=TRUE;} | |
915 else | |
916 { | |
917 if (utc-t3_1<DeltaT_1) { | |
918 if (TimetoBegin==TRUE) | |
919 { | |
920 t3_1=utc; | |
921 TimetoBegin=FALSE; | |
922 } | |
923 | |
924 Frepminus_1=Frepminus_1 +Math1-Slope_1*(utc-t3_1); | |
925 Ch4Minus=Ch4Minus+Ch4-Ch4Slope*(utc-t3_1); | |
926 n_1=n_1+1; | |
927 } | |
928 else{ | |
929 Frepminus_1=Frepminus_1/(n_1); | |
930 Ch4Minus=Ch4Minus/(n_1); | |
931 N_1 = Signe1*(2*Ndiv*DeltakHz_1*1000 /*-(Ch4Plus-Ch4Minus)-Ch4Slope*(t3_1-t2_1)*/)/(Frepminus_1-Frepplus_1-Slope_1*(t3_1-t2_1)); | |
932 n_1=0; | |
933 Frepminus_1=0.0; | |
934 Frepplus_1=0.0; | |
935 DDS4xAD9912_FrequencyRampe (&DDS4xAD9912, 1, FrequDDS1-DeltakHz_1*1000,FrequDDS1, Step1/Ndiv ) ; | |
936 SetCtrlVal(MainPanel, PANEL_DDS1, FrequDDS1) ; | |
937 DDS4xAD9912_SetFrequency(&DDS4xAD9912,1,FrequDDS1); | |
938 DDS4xAD9912_SetFrequency(&DDS4xAD9912,2,FrequencyDDSBesInit); | |
939 SetCtrlVal(MainPanel, PANEL_DDS2, FrequencyDDSBesInit) ; | |
940 Measuring_1=FALSE ; | |
941 Step1_1=FALSE ; | |
942 Step2_1=FALSE ; | |
943 Step3_1=FALSE ; | |
944 t1_1=0.0; | |
945 t2_1=0.0; | |
946 t3_1=0.0; | |
947 DDSBesChanged1=FALSE; | |
948 DDSBesChanged2=FALSE; | |
949 FrequencyDDSBes=0.0; | |
950 nstabilization=0; | |
951 | |
952 } | |
953 } | |
954 } | |
955 } | |
956 } | |
957 } | |
958 } | |
959 } | |
960 | |
961 | |
962 | |
963 | |
964 | |
965 | |
966 if (Measuring_2==TRUE) | |
967 { | |
968 if (Step1_2==FALSE) { | |
969 SetCtrlVal(MainPanel, PANEL_DDS1, FrequDDS1) ; | |
970 DDS4xAD9912_SetFrequency(&DDS4xAD9912, 1, FrequDDS1); | |
971 | |
972 GetCtrlVal(MainPanel, PANEL_DDS2, &FrequencyDDSBesInit) ; | |
973 GetCtrlVal(MainPanel, PANEL_DDS3, &FrequencyDDS3Init) ; | |
974 t1_2=utc; | |
975 Frequ_slope_2=Math1; | |
976 Beat_slope_2=Ch2; | |
977 Moy_slope_2= Frequ_slope_2; | |
978 Moy_Beatslope_2= Beat_slope_2; | |
979 N_slope_2=1; | |
980 Step1_2=TRUE ; | |
981 Nu1=(250000000+Math1)*N1; | |
982 } | |
983 else { | |
984 if(Step2_2==FALSE){ | |
985 N_slope_2=N_slope_2+1; | |
986 Frequ_slope_2=Math1; | |
987 Beat_slope_2=Ch2; | |
988 Moy_slope_2=((N_slope_2-1)*Moy_slope_2 + Frequ_slope_2)/N_slope_2; | |
989 Moy_Beatslope_2=((N_slope_2-1)*Moy_Beatslope_2 + Beat_slope_2)/N_slope_2; | |
990 Slope_slope_2 = (Slope_slope_2*(N_slope_2-2) + 6*(Frequ_slope_2-Moy_slope_2)/N_slope_2)/(N_slope_2+1) ; | |
991 Slope_Beatslope_2 = (Slope_Beatslope_2*(N_slope_2-2) + 6*(Beat_slope_2-Moy_Beatslope_2)/N_slope_2)/(N_slope_2+1) ; | |
992 if (utc-t1_2>SlopeTime2) { | |
993 Slope_2 = Slope_slope_2; | |
994 Beatslope_2 = Slope_Beatslope_2; | |
995 Step2_2=TRUE ; | |
996 N_slope_2=0; | |
997 Frequ_slope_2=0.0; | |
998 Moy_slope_2=0.0; | |
999 Slope_slope_2 =0.0; | |
1000 Moy_Beatslope_2=0.0; | |
1001 Slope_Beatslope_2 =0.0; | |
1002 Beat_slope_2=0.0; | |
1003 | |
1004 DDS4xAD9912_FrequencyRampe (&DDS4xAD9912,1, FrequDDS1,(FrequDDS1+DeltakHz_2*1000), Step2/Ndiv ) ; | |
1005 SetCtrlVal(MainPanel, PANEL_DDS1, (FrequDDS1+DeltakHz_2*1000)) ; | |
1006 DDS4xAD9912_SetFrequency(&DDS4xAD9912, 1, (FrequDDS1+DeltakHz_2*1000)); | |
1007 Delay(0.1); | |
1008 DeltaDDS3 = -DeltakHz_2*1000*(-Signe1/Signe2)*Ndiv*(Nu2)/(Nu1) - Beatslope_2*(utc-t1_2); | |
1009 SetCtrlVal(MainPanel, PANEL_DDS3, (FrequencyDDS3Init+DeltaDDS3)) ; | |
1010 DDS4xAD9912_SetFrequency (&DDS4xAD9912,3,(FrequencyDDS3Init+DeltaDDS3)) ; | |
1011 | |
1012 } | |
1013 } | |
1014 else { | |
1015 if (DDSBesChanged1==FALSE){ | |
1016 | |
1017 if (nDDSChange<3) | |
1018 { nDDSChange=nDDSChange+1;} | |
1019 | |
1020 else | |
1021 { | |
1022 nDDSChange=0; | |
1023 | |
1024 DeltaFrep275=275000-Ch4; | |
1025 DeltaFrep10=10000-Ch2; | |
1026 DeltaDDS3= DeltaDDS3 +(DeltaFrep10); | |
1027 FrequencyDDSBes=FrequencyDDSBesInit+(DeltaFrep275); | |
1028 FrequencyDDS3=FrequencyDDS3Init+DeltaDDS3; | |
1029 | |
1030 SetCtrlVal(MainPanel, PANEL_DDS2, FrequencyDDSBes) ; | |
1031 DDS4xAD9912_SetFrequency(&DDS4xAD9912,2,FrequencyDDSBes); | |
1032 | |
1033 Delay(0.1); | |
1034 SetCtrlVal(MainPanel, PANEL_DDS3, FrequencyDDS3) ; | |
1035 DDS4xAD9912_SetFrequency(&DDS4xAD9912,3,FrequencyDDS3); | |
1036 | |
1037 DDSBesChanged1=TRUE; | |
1038 t2_2=utc; | |
1039 | |
1040 } | |
1041 | |
1042 } | |
1043 else{ | |
1044 | |
1045 if(Step3_2==FALSE){ | |
1046 if (nstabilization<3) | |
1047 {nstabilization= nstabilization+1;} | |
1048 else | |
1049 { | |
1050 if (utc-t2_2<DeltaT_2) { | |
1051 Frepplus_2=Frepplus_2 +Math1+250000000-Slope_2*(utc-t2_2); | |
1052 Delta10K_Plus= Delta10K_Plus + 10000 - (Ch2 -Beatslope_2*(utc-t2_2)); | |
1053 n_2=n_2+1; | |
1054 } | |
1055 else{ | |
1056 Frepplus_2=Frepplus_2/n_2; | |
1057 Delta10K_Plus=Delta10K_Plus/n_2; | |
1058 n_2=0; | |
1059 Step3_2=TRUE ; | |
1060 nstabilization=0; | |
1061 DDS4xAD9912_FrequencyRampe ( &DDS4xAD9912,1, (FrequDDS1+DeltakHz_2*1000),(FrequDDS1-DeltakHz_2*1000), Step2/Ndiv ) ; | |
1062 SetCtrlVal(MainPanel, PANEL_DDS1, (FrequDDS1-DeltakHz_2*1000)) ; | |
1063 DDS4xAD9912_SetFrequency (&DDS4xAD9912,1, (FrequDDS1-DeltakHz_2*1000) ) ; | |
1064 | |
1065 Delay(0.1); | |
1066 DeltaDDS3 = (FrequencyDDS3Init+DeltakHz_2*1000*(-Signe1/Signe2)*Ndiv*(Nu2)/(Nu1)) - FrequencyDDS3; | |
1067 SetCtrlVal(MainPanel, PANEL_DDS3, FrequencyDDS3+DeltaDDS3) ; | |
1068 DDS4xAD9912_SetFrequency (&DDS4xAD9912,3, FrequencyDDS3+DeltaDDS3 ) ; | |
1069 | |
1070 } | |
1071 } | |
1072 } | |
1073 | |
1074 else { | |
1075 if (DDSBesChanged2==FALSE){ | |
1076 | |
1077 if (nDDSChange<3) | |
1078 { nDDSChange=nDDSChange+1;} | |
1079 | |
1080 else | |
1081 { | |
1082 nDDSChange=0; | |
1083 | |
1084 | |
1085 DeltaFrep275=275000-Ch4; | |
1086 DeltaFrep10=10000-Ch2; | |
1087 DeltaDDS3 = DeltaDDS3+(DeltaFrep10) ; | |
1088 FrequencyDDSBes=FrequencyDDSBes+(DeltaFrep275) ; | |
1089 FrequencyDDS3=FrequencyDDS3+DeltaDDS3 ; | |
1090 DDS4xAD9912_SetFrequency(&DDS4xAD9912,2,FrequencyDDSBes); | |
1091 SetCtrlVal(MainPanel, PANEL_DDS2, FrequencyDDSBes); | |
1092 | |
1093 Delay(0.1); | |
1094 SetCtrlVal(MainPanel, PANEL_DDS3, FrequencyDDS3) ; | |
1095 DDS4xAD9912_SetFrequency(&DDS4xAD9912,3,FrequencyDDS3); | |
1096 | |
1097 DDSBesChanged2=TRUE; | |
1098 t3_2=utc; | |
1099 | |
1100 | |
1101 } | |
1102 } | |
1103 | |
1104 else{ | |
1105 if (nstabilization<3) | |
1106 { nstabilization=nstabilization+1;} | |
1107 else | |
1108 { | |
1109 if (utc-t3_2<DeltaT_2) { | |
1110 Frepminus_2=Frepminus_2 +Math1+250000000-Slope_2*(utc-t3_2); | |
1111 Delta10K_Minus= Delta10K_Minus +10000 - ( Ch2 -Beatslope_2*(utc-t3_2)); | |
1112 n_2=n_2+1; | |
1113 } | |
1114 else{ | |
1115 Frepminus_2=Frepminus_2/(n_2); | |
1116 Delta10K_Minus= Delta10K_Minus/n_2; | |
1117 N_2 = (Signe2)*(-DeltaDDS3+Delta10K_Plus-Delta10K_Minus-Beatslope_2*(t3_2-t2_2) )/(Frepminus_2-Frepplus_2-Slope_2*(t3_2-t2_2)); | |
1118 n_2=0; | |
1119 Frepminus_2=0.0; | |
1120 Frepplus_2=0.0; | |
1121 Delta10K_Minus=0.0; | |
1122 Delta10K_Plus=0.0; | |
1123 DDS4xAD9912_FrequencyRampe (&DDS4xAD9912, 1, FrequDDS1-DeltakHz_2*1000,FrequDDS1, Step2/Ndiv ) ; | |
1124 SetCtrlVal(MainPanel, PANEL_DDS1, FrequDDS1) ; | |
1125 DDS4xAD9912_SetFrequency(&DDS4xAD9912,1,FrequDDS1); | |
1126 | |
1127 Delay(0.1); | |
1128 | |
1129 SetCtrlVal(MainPanel, PANEL_DDS2, FrequencyDDSBesInit) ; | |
1130 DDS4xAD9912_SetFrequency (&DDS4xAD9912, 2, FrequencyDDSBesInit ) ; | |
1131 | |
1132 Delay(0.1); | |
1133 | |
1134 SetCtrlVal(MainPanel, PANEL_DDS3, FrequencyDDS3Init-Beatslope_2*(utc-t1_2)) ; | |
1135 DDS4xAD9912_SetFrequency (&DDS4xAD9912, 3, FrequencyDDS3Init-Beatslope_2*(utc-t1_2) ) ; | |
1136 | |
1137 Measuring_2=FALSE ; | |
1138 Step1_2=FALSE ; | |
1139 Step2_2=FALSE ; | |
1140 Step3_2=FALSE ; | |
1141 t1_2=0.0; | |
1142 t2_2=0.0; | |
1143 t3_2=0.0; | |
1144 DDSBesChanged1=FALSE; | |
1145 DDSBesChanged2=FALSE; | |
1146 FrequencyDDSBes=0.0; | |
1147 nstabilization=0; | |
1148 | |
1149 } | |
1150 } | |
1151 } | |
1152 } | |
1153 } | |
1154 } | |
1155 } | |
1156 } | |
1157 | |
17
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1158 switch (Measuring_3) { |
0 | 1159 |
17
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1160 case N_MEASUREMENT_STEP_0: |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1161 // not measuring N3 |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1162 break; |
0 | 1163 |
17
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1164 case N_MEASUREMENT_STEP_1: // init |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1165 |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1166 SetCtrlVal(MainPanel, PANEL_DDS4, FrequDDS4); |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1167 DDS4xAD9912_SetFrequency(&DDS4xAD9912, 4, FrequDDS4); |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1168 settling = 3; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1169 |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1170 t1_3 = utc; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1171 N_slope_3 = 0; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1172 // record current DDS3 frequency |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1173 GetCtrlVal(MainPanel, PANEL_DDS3, &FrequencyDDS3Init); |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1174 |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1175 // step 1 done |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1176 Measuring_3 = N_MEASUREMENT_STEP_2; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1177 break; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1178 |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1179 case N_MEASUREMENT_STEP_2: // slope measurement |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1180 |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1181 if (settling > 0) { |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1182 settling--; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1183 break; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1184 } |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1185 |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1186 N_slope_3++; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1187 Frequ_slope_3 = Ch2; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1188 Moy_slope_3 = ((N_slope_3-1)*Moy_slope_3 + Frequ_slope_3)/N_slope_3; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1189 Slope_slope_3 = (Slope_slope_3*(N_slope_3-2) + 6*(Frequ_slope_3-Moy_slope_3)/N_slope_3)/(N_slope_3+1) ; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1190 |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1191 if (utc - t1_3 > SlopeTime3) { |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1192 // slope measurement |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1193 Slope_3 = Slope_slope_3; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1194 |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1195 t2_3 = utc; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1196 N_slope_3 = 0; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1197 Frequ_slope_3 = 0.0; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1198 Moy_slope_3 = 0.0; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1199 Slope_slope_3 = 0.0; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1200 |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1201 // step 2 done |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1202 Measuring_3 = N_MEASUREMENT_STEP_3; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1203 |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1204 // frep positive step |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1205 SetCtrlVal(MainPanel, PANEL_DDS4, FrequDDS4 + DeltakHz_3 * 1000); |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1206 DDS4xAD9912_SetFrequency(&DDS4xAD9912, 4, FrequDDS4 + DeltakHz_3 * 1000); |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1207 // compensate with DDS3 to keep measured beatnote in counter box range |
23
65e277fdf01f
Correct DDS3 frequency adjustement on N3 measurement
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
22
diff
changeset
|
1208 double fDDS3 = FrequencyDDS3Init + N3/N1 * Ndiv * DeltakHz_3; |
17
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1209 SetCtrlVal(MainPanel, PANEL_DDS3, fDDS3); |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1210 DDS4xAD9912_SetFrequency(&DDS4xAD9912, 3, fDDS3); |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1211 // allow counter to settle |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1212 settling = 3; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1213 } |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1214 break; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1215 |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1216 case N_MEASUREMENT_STEP_3: // frep positive step |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1217 |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1218 if (settling > 0) { |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1219 settling--; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1220 break; |
0 | 1221 } |
17
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1222 |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1223 n_3++; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1224 Frepplus_3 += Ch2 - Slope_3 * (utc - t2_3); |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1225 |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1226 if (utc - t2_3 > DeltaT_3) { |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1227 // positive step measurement |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1228 Frepplus_3 = Frepplus_3 / n_3; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1229 |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1230 n_3 = 0; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1231 t3_3 = utc; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1232 |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1233 // step 3 done |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1234 Measuring_3 = N_MEASUREMENT_STEP_4; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1235 |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1236 // frep negative step |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1237 SetCtrlVal(MainPanel, PANEL_DDS4, FrequDDS4 - DeltakHz_3 * 1000); |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1238 DDS4xAD9912_SetFrequency(&DDS4xAD9912, 4, FrequDDS4 - DeltakHz_3 * 1000); |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1239 // compensate with DDS3 to keep measured beatnote in counter box range |
23
65e277fdf01f
Correct DDS3 frequency adjustement on N3 measurement
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
22
diff
changeset
|
1240 double fDDS3 = FrequencyDDS3Init - N3/N1 * Ndiv * DeltakHz_3; |
17
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1241 SetCtrlVal(MainPanel, PANEL_DDS3, fDDS3); |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1242 DDS4xAD9912_SetFrequency(&DDS4xAD9912, 3, fDDS3); |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1243 // allow counter to settle |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1244 settling = 3; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1245 } |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1246 break; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1247 |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1248 |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1249 case N_MEASUREMENT_STEP_4: // frep negative step |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1250 |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1251 if (settling > 0) { |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1252 settling--; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1253 break; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1254 } |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1255 |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1256 n_3++; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1257 Frepminus_3 += Ch2 - Slope_3 * (utc - t3_3); |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1258 |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1259 if (utc - t3_3 > DeltaT_3) { |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1260 // positive step measurement |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1261 Frepminus_3 = Frepminus_3 / n_3; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1262 |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1263 // compute N3 |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1264 N_3 = 1000.0 * DeltakHz_3 / (Frepplus_3 - Frepminus_3); |
22
b7b3b5f1c5a6
Remove unused widgets from N1 measurement panel. Harmonize widgets names
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
20
diff
changeset
|
1265 SetCtrlVal(CalcN3Panel, CALCN3_N, N_3); |
17
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1266 |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1267 t1_3=0.0; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1268 t2_3=0.0; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1269 t3_3=0.0; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1270 n_3 = 0; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1271 Frepminus_3 = 0.0; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1272 Frepplus_3 = 0.0; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1273 |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1274 // step 4 done |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1275 Measuring_3 = N_MEASUREMENT_STEP_0; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1276 |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1277 // back to nominal frep |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1278 SetCtrlVal(MainPanel, PANEL_DDS4, FrequDDS4); |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1279 DDS4xAD9912_SetFrequency(&DDS4xAD9912, 4, FrequDDS4); |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1280 } |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1281 break; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1282 } |
0 | 1283 |
1284 // Calcul du signe de fb | |
1285 | |
17
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1286 if (Getsign1 == TRUE) { |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1287 if (utc > tbegin1+2) { |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1288 if (Math1 > Frepbefore1) |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1289 Signe1 = -1.0; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1290 else |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1291 Signe1 = +1.0; |
0 | 1292 SetCtrlVal(MainPanel, PANEL_DDS1, Frequency1) ; |
1293 DDS4xAD9912_SetFrequency(&DDS4xAD9912, 1, Frequency1); | |
17
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1294 Getsign1 = FALSE; |
0 | 1295 } |
17
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1296 } |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1297 if (Getsign2 == TRUE) { |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1298 if (utc > tbegin2+2){ |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1299 if (Math1 > Frepbefore2) { |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1300 if (Ch2 > Ch2before) |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1301 Signe2 = +1.0; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1302 else |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1303 Signe2 = -1.0; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1304 } else { |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1305 if (Ch2 > Ch2before) |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1306 Signe2 = -1.0; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1307 else |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1308 Signe2 = +1.0; |
0 | 1309 } |
1310 SetCtrlVal(MainPanel, PANEL_DDS1, Frequency2) ; | |
1311 DDS4xAD9912_SetFrequency(&DDS4xAD9912, 1, Frequency2); | |
17
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1312 Getsign2 = FALSE; |
0 | 1313 } |
17
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1314 } |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1315 if (Getsign3 == TRUE) { |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1316 if (utc > tbegin3+2){ |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1317 if (Ch3 > Frepbefore3) |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1318 Signe3 = -1.0; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1319 else |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1320 Signe3 = +1.0; |
0 | 1321 SetCtrlVal(MainPanel, PANEL_DDS3, Frequency3) ; |
17
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1322 DDS4xAD9912_SetFrequency(&DDS4xAD9912, 4, Frequency3); |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1323 Getsign3 = FALSE; |
0 | 1324 } |
17
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1325 } |
0 | 1326 |
1327 | |
1328 | |
1329 | |
1 | 1330 /* |
1331 * Slope Cancelling | |
1332 */ | |
0 | 1333 |
1 | 1334 if (SlopeMeasuring == TRUE) |
1335 { | |
20
3a7f088d4960
Get rid of unused variables. Some minor coding style improvements
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
17
diff
changeset
|
1336 double currentFreq = 0.0; |
2
bd7501b65f56
Implement reference selection (microwave or Hg cavity) for slope cancelling
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
1
diff
changeset
|
1337 |
bd7501b65f56
Implement reference selection (microwave or Hg cavity) for slope cancelling
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
1
diff
changeset
|
1338 /* select reference */ |
bd7501b65f56
Implement reference selection (microwave or Hg cavity) for slope cancelling
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
1
diff
changeset
|
1339 switch (slopeReference) { |
bd7501b65f56
Implement reference selection (microwave or Hg cavity) for slope cancelling
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
1
diff
changeset
|
1340 case SLOPE_REFERENCE_MICROWAVE: |
bd7501b65f56
Implement reference selection (microwave or Hg cavity) for slope cancelling
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
1
diff
changeset
|
1341 currentFreq = Math2; |
bd7501b65f56
Implement reference selection (microwave or Hg cavity) for slope cancelling
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
1
diff
changeset
|
1342 break; |
bd7501b65f56
Implement reference selection (microwave or Hg cavity) for slope cancelling
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
1
diff
changeset
|
1343 case SLOPE_REFERENCE_HG_CAVITY: |
10
239f2fe67cc0
Fix slope cancelling following Hg cavity
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
8
diff
changeset
|
1344 currentFreq = Ch2 * 1062.5 / 1542.2; |
2
bd7501b65f56
Implement reference selection (microwave or Hg cavity) for slope cancelling
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
1
diff
changeset
|
1345 break; |
bd7501b65f56
Implement reference selection (microwave or Hg cavity) for slope cancelling
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
1
diff
changeset
|
1346 } |
bd7501b65f56
Implement reference selection (microwave or Hg cavity) for slope cancelling
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
1
diff
changeset
|
1347 |
1 | 1348 if (utc-SlopeMeasuringTimeBegin > TimetoSlope) |
0 | 1349 { |
1 | 1350 Nratio = Nratio + 1; |
0 | 1351 |
1 | 1352 if (Nratio >= 1) |
0 | 1353 { |
1 | 1354 MoyMath2 = MoyMath2 + Moy_Math2slope; |
0 | 1355 } |
1 | 1356 SlopeMath2 = SlopeMath2 + Slope_Math2slope; |
1357 N_Math2slope = 0.0; | |
1358 Math2_slope = 0.0; | |
1359 Moy_Math2slope = 0.0; | |
1360 Slope_Math2slope = 0.0; | |
0 | 1361 |
1 | 1362 if (Nratio == 1 && CenterFrequencyCh2ToDetermine == TRUE) |
1363 { | |
1364 CenterFrequencyCh2 = MoyMath2; | |
1365 CenterFrequencyCh2ToDetermine = FALSE; | |
1366 } | |
0 | 1367 |
1 | 1368 OnSlopeCancelling = TRUE; |
0 | 1369 |
1 | 1370 FoxFrequ = ReadDDSFOX (DDSFoxName,DDSFoxip,DDSFoxPort,DDSFoxProfil,DDSFoxClock,DDSFoxDeltaT,DDSFoxFrequency,DDSFoxSweeprate); |
1371 | |
1372 if (Nratio == ratio) | |
1373 { | |
1374 if (FrequCorrec == TRUE) | |
0 | 1375 { |
1 | 1376 SlopeCorrection = (MoyMath2/ratio-CenterFrequencyCh2)/TimetoSlope; |
1377 SlopeMath2 = SlopeMath2 + SlopeCorrection; | |
0 | 1378 } |
1 | 1379 Nratio = 0; |
1380 MoyMath2 = 0.0; | |
1381 } | |
0 | 1382 |
1383 LaunchDDSFOX (DDSFoxName,DDSFoxip,DDSFoxPort,DDSFoxProfil,DDSFoxClock,DDSFoxDeltaT,FoxFrequ,SlopeMath2,0); | |
1384 | |
1 | 1385 nstabilisationSlopeMeasuring = 0; |
1386 SlopeMeasuringTimeBegin = utc; | |
0 | 1387 |
1388 } | |
1389 else | |
1390 { | |
1 | 1391 if (nstabilisationSlopeMeasuring < 5) |
1392 { | |
1393 nstabilisationSlopeMeasuring = nstabilisationSlopeMeasuring + 1; | |
2
bd7501b65f56
Implement reference selection (microwave or Hg cavity) for slope cancelling
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
1
diff
changeset
|
1394 Math2_slope = currentFreq; |
1 | 1395 } |
1396 else | |
1397 { | |
2
bd7501b65f56
Implement reference selection (microwave or Hg cavity) for slope cancelling
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
1
diff
changeset
|
1398 if ((currentFreq-Math2_slope) < limitotakoff && (currentFreq-Math2_slope) > -limitotakoff) |
0 | 1399 { |
1 | 1400 N_Math2slope = N_Math2slope + 1; |
2
bd7501b65f56
Implement reference selection (microwave or Hg cavity) for slope cancelling
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
1
diff
changeset
|
1401 Math2_slope = currentFreq; |
1 | 1402 Moy_Math2slope = ((N_Math2slope-1)*Moy_Math2slope + Math2_slope)/N_Math2slope; |
1403 Slope_Math2slope = (Slope_Math2slope*(N_Math2slope-2) + 6*(Math2_slope-Moy_Math2slope)/N_Math2slope)/(N_Math2slope+1) ; | |
0 | 1404 } |
1405 else | |
1406 { | |
1407 if (AutoStopSlopeCancellingIfDelock) | |
1408 { | |
1 | 1409 |
1410 /* | |
1411 * stop slope cancelling if the comb is not locked | |
1412 */ | |
1413 | |
1414 if (KeepFrequ == TRUE) | |
1415 { | |
1416 ActualFrequ = ReadDDSFOX (DDSFoxName,DDSFoxip,DDSFoxPort,DDSFoxProfil,DDSFoxClock,DDSFoxDeltaT,DDSFoxFrequency,DDSFoxSweeprate); | |
1417 } | |
1418 else | |
1419 { | |
1420 ActualFrequ = DDSFoxFrequency; | |
1421 } | |
1422 | |
1423 if (KeepSlope == TRUE) | |
1424 { | |
1425 ActualSlope = SlopeMath2; | |
1426 } | |
1427 else | |
1428 { | |
1429 ActualSlope = DDSFoxSweeprate; | |
1430 OnSlopeCancelling = FALSE; | |
1431 } | |
1432 | |
0 | 1433 LaunchDDSFOX (DDSFoxName,DDSFoxip,DDSFoxPort,DDSFoxProfil,DDSFoxClock,DDSFoxDeltaT,ActualFrequ,ActualSlope,0); |
1434 | |
1 | 1435 SlopeMeasuring = FALSE; |
1436 N_Math2slope = 0.0; | |
1437 Math2_slope = 0.0; | |
1438 MoyMath2 = 0.0; | |
1439 Moy_Math2slope = 0.0; | |
1440 Slope_Math2slope = 0.0; | |
1441 CenterFrequencyCh2 = 0.0; | |
1442 CenterFrequencyCh2ToDetermine = TRUE; | |
1443 Nratio = -1; | |
1444 nstabilisationSlopeMeasuring = 0; | |
1445 | |
1446 SetCtrlVal(MainPanel, PANEL_STARTCANCEL, 0); | |
0 | 1447 } |
1448 } | |
1 | 1449 } |
0 | 1450 } |
1451 } | |
1452 | |
1453 | |
1454 //// For re-centering | |
1455 | |
1456 if (KeepCentering) | |
1457 { | |
1458 | |
1459 DeltaCh4=275000-Ch4; | |
1460 DeltaCh2=10000-Ch2; | |
1461 | |
1462 if (utc- CenteringTimeBegin275K > Timetorecenter275K && CenteringTimeBegin275K>10) | |
1463 { | |
1464 GetCtrlVal(MainPanel, PANEL_DDS2, &FrequencyToChange) ; | |
1465 SetCtrlVal(MainPanel, PANEL_DDS2, FrequencyToChange+DeltaCh4) ; | |
1466 DDS4xAD9912_SetFrequency(&DDS4xAD9912, 2, FrequencyToChange+DeltaCh4); | |
1467 CenteringTimeBegin275K=utc; | |
1468 | |
1469 | |
1470 } | |
1471 | |
1472 if (utc- CenteringTimeBegin10K > Timetorecenter10K && CenteringTimeBegin10K>10) | |
1473 { | |
1474 GetCtrlVal(MainPanel, PANEL_DDS3, &FrequencyToChange) ; | |
1475 SetCtrlVal(MainPanel, PANEL_DDS3, FrequencyToChange+DeltaCh2) ; | |
1476 DDS4xAD9912_SetFrequency(&DDS4xAD9912, 3, FrequencyToChange+DeltaCh2); | |
1477 CenteringTimeBegin10K=utc; | |
1478 | |
1479 | |
1480 } | |
1481 | |
1482 | |
1483 } | |
1484 | |
1485 GetCtrlVal(MainPanel, PANEL_CHECKBOX_MATH2AUTOSAV, &BoxChecked) ; // AutoSave OL | |
1486 if (BoxChecked) { | |
1487 SetCtrlVal(MainPanel, PANEL_CHECKBOX_MATH2SAVE, TRUE) ; // so that it will try to write it (at next block) if it seems reasonnable, even though it was off before | |
24
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1488 } |
0 | 1489 |
1490 GetCtrlVal(MainPanel, PANEL_CHECKBOX_MATH2SAVE, &BoxChecked) ; // Save OL (Math2) | |
1491 if (BoxChecked) { | |
1492 FileOpt = OpenFile("z:\\MeasuresFifi1\\OptCavity.txt", VAL_WRITE_ONLY, VAL_APPEND, VAL_ASCII) ; | |
1493 Fmt(ReportString, "%s\t%s\t%f[p3]\t%f[p3]", Date, Time, utc, Math2); | |
1494 WriteLine(FileOpt, ReportString, -1) ; | |
1495 CloseFile(FileOpt) ; | |
1496 FileOpt = OpenFile("C:\\Femto\\Results\\OptCavity.txt", VAL_WRITE_ONLY, VAL_APPEND, VAL_ASCII) ; // a local backup for debugging | |
1497 Fmt(ReportString, "%s\t%s\t%f[p3]\t%f[p3]", Date, Time, utc, Math2); | |
1498 WriteLine(FileOpt, ReportString, -1) ; | |
1499 CloseFile(FileOpt) ; | |
24
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1500 } |
0 | 1501 |
1502 GetCtrlVal(MainPanel, PANEL_CHECKBOX_MATH3AUTOSAV, &BoxChecked) ; // AutoSave Hg (Math3) | |
1503 if (BoxChecked) { | |
1504 SetCtrlVal(MainPanel, PANEL_CHECKBOX_MATH3SAVE, TRUE) ; // so that it will try to write it (at next block) if it seems reasonnable, even though it was off before | |
24
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1505 } |
0 | 1506 |
1507 GetCtrlVal(MainPanel, PANEL_CHECKBOX_MATH3SAVE, &BoxChecked) ; // Save Hg | |
1508 | |
1509 if (BoxChecked) { | |
1510 FileHg = OpenFile("z:\\MeasuresFifi1\\HgCavity.txt", VAL_WRITE_ONLY, VAL_APPEND, VAL_ASCII) ; | |
1511 Fmt(ReportString, "%s\t%s\t%f[p3]\t%f[p3]", Date, Time, utc, Math3); | |
1512 WriteLine(FileHg, ReportString, -1) ; | |
1513 CloseFile(FileHg) ; | |
1514 FileHg = OpenFile("C:\\Femto\\Results\\HgCavity.txt", VAL_WRITE_ONLY, VAL_APPEND, VAL_ASCII) ; | |
1515 Fmt(ReportString, "%s\t%s\t%f[p3]\t%f[p3]", Date, Time, utc, Math3); | |
1516 WriteLine(FileHg, ReportString, -1) ; | |
1517 CloseFile(FileHg) ; | |
24
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1518 } |
0 | 1519 |
1520 GetCtrlVal(MainPanel, PANEL_CHECKBOX_MATH5SAVE, &BoxChecked) ; // Save ExtraMath (Math5) | |
1521 if (BoxChecked) { | |
1522 FileExtraMath = OpenFile(ExtraMathFileName, VAL_WRITE_ONLY, VAL_APPEND, VAL_ASCII) ; | |
1523 Fmt(ReportString, "%s\t%s\t%f[p3]\t%f[p7]", Date, Time, utc, Math5); | |
1524 WriteLine(FileExtraMath, ReportString, -1) ; | |
1525 CloseFile(FileExtraMath) ; | |
24
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1526 } |
0 | 1527 |
1528 // Special case to handle change of day at next second | |
1529 if ( LocalTime.tm_hour==23 && LocalTime.tm_min==59 && strtod(Sec,NULL)>=58 ) { | |
1530 printf("Entering change of date substructure\r\n"); | |
1531 printf("old file : %s %s %s \r\n",Date, Time, LogFileName); | |
1532 Acquiring = FALSE ; | |
1533 do { | |
1534 Delay(5.1); | |
1535 FindCurrentFileName() ; | |
1536 } | |
1537 while (!GetFileInfo(LogFileName, &OldLogFilePtr)) ; | |
1538 printf("new file : %s \r\n\r\n",Date, Time, LogFileName); | |
1539 Acquiring = TRUE ; | |
1540 OldLogFilePtr = 2; | |
1541 } | |
1542 | |
2
bd7501b65f56
Implement reference selection (microwave or Hg cavity) for slope cancelling
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
1
diff
changeset
|
1543 ResumeTimerCallbacks() ; |
0 | 1544 |
1545 } ; | |
1546 | |
1547 break; | |
1548 case FALSE: | |
1549 break; | |
1550 } | |
1551 break; | |
1552 } | |
1553 return 0; | |
1554 } | |
1555 | |
1556 | |
1557 | |
1558 | |
1559 int CVICALLBACK CB_OnFreqPlot (int panel, int control, int event, | |
1560 void *callbackData, int eventData1, int eventData2) | |
1561 { | |
1562 int BoxChecked ; | |
1563 Plot_Data * pPlot = NULL; | |
1564 char PlotTitle[] = "Ch? Frequency Plot" ; | |
1565 double PlotMin = 10e6 ; | |
1566 double PlotMax = 65e6 ; | |
1567 | |
1568 switch (event) | |
1569 { | |
1570 case EVENT_COMMIT: | |
1571 | |
1572 GetCtrlVal(MainPanel, control, &BoxChecked); | |
1573 switch (control) { | |
1574 case PANEL_CHECKBOX_FREQ1PLOT : | |
1575 pPlot = &PlotCh1 ; | |
1576 Fmt(PlotTitle, "Ch1 Frequency Plot") ; | |
1577 PlotMin = 54.999e6 ; PlotMax = 55.001e6 ; | |
1578 break ; | |
1579 case PANEL_CHECKBOX_FREQ2PLOT : | |
1580 pPlot = &PlotCh2 ; | |
1581 Fmt(PlotTitle, "Ch2 Frequency Plot") ; | |
1582 PlotMin = 8.0e3 ; PlotMax = 12.0e3 ; | |
1583 break ; | |
1584 case PANEL_CHECKBOX_FREQ3PLOT : | |
1585 pPlot = &PlotCh3 ; | |
1586 Fmt(PlotTitle, "Ch3 Frequency Plot") ; | |
1587 PlotMin = 8.0e3 ; PlotMax = 12.0e3 ; | |
1588 break ; | |
1589 case PANEL_CHECKBOX_FREQ4PLOT : | |
1590 pPlot = &PlotCh4 ; | |
1591 Fmt(PlotTitle, "Ch4 Frequency Plot") ; | |
1592 break ; | |
1593 case PANEL_CHECKBOX_MATH1PLOT : | |
1594 pPlot = &PlotMath1 ; | |
1595 Fmt(PlotTitle, "Math1 Plot") ; | |
1596 PlotMin = 765.0e6 ; PlotMax = 775.0e6 ; | |
1597 break ; | |
1598 case PANEL_CHECKBOX_MATH2PLOT : | |
1599 pPlot = &PlotMath2 ; | |
1600 Fmt(PlotTitle, "Math2 Plot") ; | |
1601 PlotMin = -1.0e9 ; PlotMax = 1.0e9 ; | |
1602 break ; | |
1603 case PANEL_CHECKBOX_MATH3PLOT : | |
1604 pPlot = &PlotMath3 ; | |
1605 Fmt(PlotTitle, "Math3 Plot") ; | |
1606 PlotMin = -1.0e9 ; PlotMax = 1.0e9 ; | |
1607 break ; | |
1608 case PANEL_CHECKBOX_MATH4PLOT : | |
1609 pPlot = &PlotMath4 ; | |
1610 Fmt(PlotTitle, "Math4 Plot") ; | |
1611 PlotMin = -1.0e9 ; PlotMax = 1.0e9 ; | |
1612 break ; | |
1613 case PANEL_CHECKBOX_MATH5PLOT : | |
1614 pPlot = &PlotMath5 ; | |
1615 Fmt(PlotTitle, "Math5 Plot") ; | |
1616 PlotMin = -1.0e9 ; PlotMax = 1.0e9 ; | |
1617 break ; | |
1618 } | |
1619 | |
1620 if (BoxChecked) { | |
1621 Plot_InitPanel(pPlot, PlotTitle, PlotMin, PlotMax, &OnCloseViewPanel) ; | |
1622 } | |
1623 else { | |
1624 Plot_ClosePanel(pPlot) ; | |
1625 } ; | |
1626 break; | |
1627 | |
1628 case EVENT_RIGHT_CLICK: | |
1629 | |
1630 break; | |
1631 | |
1632 } | |
1633 return 0; | |
1634 } | |
1635 | |
1636 | |
1637 int CVICALLBACK CB_OnAllanPlot (int panel, int control, int event, | |
1638 void *callbackData, int eventData1, int eventData2) | |
1639 { | |
1640 int BoxChecked ; | |
1641 Allan_Data * pAllan = NULL; | |
1642 char AllanTitle[] = "Ch? Allan Deviation " ; | |
1643 double Normalizer = 300e12 ; | |
1644 | |
1645 switch (event) | |
1646 { | |
1647 case EVENT_COMMIT: | |
1648 | |
1649 GetCtrlVal(MainPanel, control, &BoxChecked); | |
1650 switch (control) { | |
1651 case PANEL_CHECKBOX_FREQ1ALLAN : | |
1652 pAllan = &AllanCh1 ; | |
1653 Fmt(AllanTitle, "Ch1 Allan Deviation") ; | |
1654 Normalizer = 1.84e12 ; | |
1655 break ; | |
1656 case PANEL_CHECKBOX_FREQ2ALLAN : | |
1657 pAllan = &AllanCh2 ; | |
1658 Fmt(AllanTitle, "Ch2 Allan Deviation") ; | |
1659 Normalizer = 10.e3 ; | |
1660 break ; | |
1661 case PANEL_CHECKBOX_FREQ3ALLAN : | |
1662 pAllan = &AllanCh3 ; | |
1663 Fmt(AllanTitle, "Ch3 Allan Deviation") ; | |
1664 Normalizer = 429.228e12 ; | |
1665 break ; | |
1666 case PANEL_CHECKBOX_FREQ4ALLAN : | |
1667 pAllan = &AllanCh4 ; | |
1668 Fmt(AllanTitle, "Ch4 Allan Deviation") ; | |
1669 Normalizer = 275.0e3 ; | |
1670 break ; | |
1671 case PANEL_CHECKBOX_MATH1ALLAN : | |
1672 pAllan = &AllanMath1 ; | |
1673 Fmt(AllanTitle, "Math1 Allan Deviation") ; | |
1674 Normalizer = 250.0e6 ; | |
1675 break ; | |
1676 case PANEL_CHECKBOX_MATH2ALLAN : | |
1677 pAllan = &AllanMath2 ; | |
1678 Fmt(AllanTitle, "Math2 Allan Deviation") ; | |
1679 Normalizer = 194.395e12 ; | |
1680 break ; | |
1681 case PANEL_CHECKBOX_MATH3ALLAN : | |
1682 pAllan = &AllanMath3 ; | |
1683 Fmt(AllanTitle, "Math3 Allan Deviation") ; | |
1684 Normalizer = 282.143e12 ; | |
1685 break ; | |
1686 case PANEL_CHECKBOX_MATH4ALLAN : | |
1687 pAllan = &AllanMath4 ; | |
1688 Fmt(AllanTitle, "Math4 Allan Deviation") ; | |
1689 Normalizer = 429.228e12 ; | |
1690 break ; | |
1691 case PANEL_CHECKBOX_MATH5ALLAN : | |
1692 pAllan = &AllanMath5 ; | |
1693 Fmt(AllanTitle, "Math5 Allan Deviation") ; | |
1694 Normalizer = 429.228e12 ; | |
1695 break ; | |
1696 } | |
1697 | |
1698 if (BoxChecked) { | |
1699 Allan_InitPanel(pAllan, AllanTitle, Normalizer, &OnCloseViewPanel) ; | |
1700 } | |
1701 else { | |
1702 Allan_ClosePanel(pAllan) ; | |
1703 } ; | |
1704 break; | |
1705 | |
1706 case EVENT_RIGHT_CLICK: | |
1707 | |
1708 break; | |
1709 | |
1710 } | |
1711 return 0; | |
1712 } | |
1713 | |
1714 int CVICALLBACK CB_ChangeDDSOut (int panel, int control, int event, | |
1715 void *callbackData, int eventData1, int eventData2) | |
1716 { | |
1717 double Frequency ; | |
1718 | |
1719 switch (event) | |
1720 { | |
1721 case EVENT_COMMIT: | |
1722 GetCtrlVal(MainPanel, control, &Frequency) ; | |
1723 if (control==PANEL_DDSFREPOUT) { DDSBes_SetFrequency(&DDSBes, Frequency) ;} | |
1724 if (control==PANEL_DDS1) { DDS4xAD9912_SetFrequency(&DDS4xAD9912, 1, Frequency);} | |
1725 if (control==PANEL_DDS2) { DDS4xAD9912_SetFrequency(&DDS4xAD9912, 2, Frequency);} | |
1726 if (control==PANEL_DDS3) { DDS4xAD9912_SetFrequency(&DDS4xAD9912, 3, Frequency);} | |
1727 if (control==PANEL_DDS4) { DDS4xAD9912_SetFrequency(&DDS4xAD9912, 4, Frequency);} | |
1728 case EVENT_RIGHT_CLICK: | |
1729 | |
1730 break; | |
1731 | |
1732 } | |
1733 return 0; | |
1734 } | |
1735 | |
1736 int CVICALLBACK CB_ChangeDDSStep (int panel, int control, int event, | |
1737 void *callbackData, int eventData1, int eventData2) | |
1738 { | |
1739 double Step ; | |
1740 | |
1741 switch (event) | |
1742 { | |
1743 case EVENT_COMMIT: | |
1744 GetCtrlVal(MainPanel, control, &Step) ; | |
1745 if (control==PANEL_DDSFREPSTEP) { SetCtrlAttribute(panel, PANEL_DDSFREPOUT, ATTR_INCR_VALUE, Step) ;} | |
1746 if (control==PANEL_DDS1STEP) { SetCtrlAttribute(panel, PANEL_DDS1, ATTR_INCR_VALUE, Step) ;} | |
1747 if (control==PANEL_DDS2STEP) { SetCtrlAttribute(panel, PANEL_DDS2, ATTR_INCR_VALUE, Step) ;} | |
1748 if (control==PANEL_DDS3STEP) { SetCtrlAttribute(panel, PANEL_DDS3, ATTR_INCR_VALUE, Step) ;} | |
1749 if (control==PANEL_DDS4STEP) { SetCtrlAttribute(panel, PANEL_DDS4, ATTR_INCR_VALUE, Step) ;} | |
1750 break; | |
1751 case EVENT_RIGHT_CLICK: | |
1752 | |
1753 break; | |
1754 | |
1755 } | |
1756 return 0; | |
1757 } | |
1758 | |
1759 int CVICALLBACK CB_ChangeDDSAmpli (int panel, int control, int event, | |
1760 void *callbackData, int eventData1, int eventData2) | |
1761 { | |
1762 unsigned short int Amplitude ; | |
1763 | |
1764 switch (event) | |
1765 { | |
1766 case EVENT_COMMIT: | |
1767 GetCtrlVal(MainPanel, control, &Amplitude) ; | |
1768 if (control==PANEL_DDSFREPAMP) { DDSBes_SetAmplitude(&DDSBes, Amplitude) ;} | |
1769 case EVENT_RIGHT_CLICK: | |
1770 | |
1771 break; | |
1772 | |
1773 } | |
1774 return 0; | |
1775 } | |
1776 | |
1777 int CVICALLBACK CB_ChangeMath (int panel, int control, int event, | |
1778 void *callbackData, int eventData1, int eventData2) | |
1779 { | |
24
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1780 int len; |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1781 char *string; |
0 | 1782 |
1783 switch (event) | |
1784 { | |
1785 case EVENT_COMMIT: | |
24
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1786 GetCtrlAttribute(panel, control, ATTR_STRING_TEXT_LENGTH, &len); |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1787 string = (char *)malloc(sizeof(char) * (len + 1)); |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1788 GetCtrlVal(panel, control, string); |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1789 switch (control) { |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1790 case PANEL_MATHSTRING1: |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1791 mupSetExpr(MathParser1, string); |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1792 break; |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1793 case PANEL_MATHSTRING2: |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1794 mupSetExpr(MathParser2, string); |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1795 break; |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1796 case PANEL_MATHSTRING3: |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1797 mupSetExpr(MathParser3, string); |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1798 break; |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1799 case PANEL_MATHSTRING4: |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1800 mupSetExpr(MathParser4, string); |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1801 break; |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1802 case PANEL_MATHSTRING5: |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1803 mupSetExpr(MathParser5, string); |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1804 break; |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1805 } |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1806 free(string); |
0 | 1807 break; |
1808 } | |
1809 return 0; | |
1810 } | |
1811 | |
1812 int CVICALLBACK CB_ChangeN (int panel, int control, int event, | |
1813 void *callbackData, int eventData1, int eventData2) | |
1814 { | |
1815 | |
1816 switch (event) | |
1817 { | |
1818 case EVENT_COMMIT: | |
1819 if (control==PANEL_N1CHOICE) GetCtrlVal(MainPanel, control, &N1) ; | |
1820 if (control==PANEL_N2CHOICE) GetCtrlVal(MainPanel, control, &N2) ; | |
1821 if (control==PANEL_N3CHOICE) GetCtrlVal(MainPanel, control, &N3) ; | |
1822 break; | |
1823 } | |
1824 return 0; | |
1825 } | |
1826 | |
24
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1827 |
0 | 1828 int CVICALLBACK CB_OnPlus275k (int panel, int control, int event, |
1829 void *callbackData, int eventData1, int eventData2) | |
1830 { | |
1831 double Frequency ; | |
1832 | |
1833 switch (event) | |
24
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1834 { |
0 | 1835 case EVENT_COMMIT: |
24
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1836 GetCtrlVal(MainPanel, PANEL_DDSFREPOUT, &Frequency); |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1837 Frequency += 275000.0; |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1838 DDSBes_SetFrequency(&DDSBes, Frequency); |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1839 SetCtrlVal(MainPanel, PANEL_DDSFREPOUT, Frequency); |
0 | 1840 break; |
24
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1841 } |
0 | 1842 return 0; |
1843 } | |
1844 | |
24
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1845 |
0 | 1846 int CVICALLBACK CB_OnMinus275k (int panel, int control, int event, |
1847 void *callbackData, int eventData1, int eventData2) | |
1848 { | |
1849 double Frequency ; | |
1850 | |
1851 switch (event) | |
24
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1852 { |
0 | 1853 case EVENT_COMMIT: |
24
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1854 GetCtrlVal(MainPanel, PANEL_DDSFREPOUT, &Frequency); |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1855 Frequency -= 275000.0; |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1856 DDSBes_SetFrequency(&DDSBes, Frequency); |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1857 SetCtrlVal(MainPanel, PANEL_DDSFREPOUT, Frequency); |
0 | 1858 break; |
24
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1859 } |
0 | 1860 return 0; |
1861 } | |
1862 | |
24
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1863 |
0 | 1864 int CVICALLBACK CB_OnPlus10k (int panel, int control, int event, |
1865 void *callbackData, int eventData1, int eventData2) | |
1866 { | |
1867 double Frequency ; | |
1868 | |
1869 switch (event) | |
24
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1870 { |
0 | 1871 case EVENT_COMMIT: |
24
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1872 switch (control) |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1873 { |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1874 case PANEL_PLUS10KDDS1: |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1875 GetCtrlVal(MainPanel, PANEL_DDS1, &Frequency); |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1876 Frequency += 10000.0; |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1877 DDS4xAD9912_SetFrequency(&DDS4xAD9912, 1, Frequency); |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1878 SetCtrlVal(MainPanel, PANEL_DDS1, Frequency); |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1879 break; |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1880 case PANEL_PLUS10KDDS2: |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1881 GetCtrlVal(MainPanel, PANEL_DDS2, &Frequency); |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1882 Frequency += 10000.0; |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1883 DDS4xAD9912_SetFrequency(&DDS4xAD9912, 2, Frequency); |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1884 SetCtrlVal(MainPanel, PANEL_DDS2, Frequency); |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1885 break; |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1886 case PANEL_PLUS10KDDS3: |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1887 GetCtrlVal(MainPanel, PANEL_DDS3, &Frequency); |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1888 Frequency += 10000.0; |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1889 DDS4xAD9912_SetFrequency(&DDS4xAD9912, 3, Frequency); |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1890 SetCtrlVal(MainPanel, PANEL_DDS3, Frequency); |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1891 break; |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1892 case PANEL_PLUS10KDDS4: |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1893 GetCtrlVal(MainPanel, PANEL_DDS4, &Frequency); |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1894 Frequency += 10000.0; |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1895 DDS4xAD9912_SetFrequency(&DDS4xAD9912, 4, Frequency); |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1896 SetCtrlVal(MainPanel, PANEL_DDS4, Frequency); |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1897 break; |
0 | 1898 } |
1899 break; | |
24
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1900 } |
0 | 1901 return 0; |
1902 } | |
1903 | |
24
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1904 |
0 | 1905 int CVICALLBACK CB_OnMinus10k (int panel, int control, int event, |
1906 void *callbackData, int eventData1, int eventData2) | |
1907 { | |
24
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1908 double Frequency; |
0 | 1909 |
1910 switch (event) | |
24
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1911 { |
0 | 1912 case EVENT_COMMIT: |
24
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1913 switch (control) |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1914 { |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1915 case PANEL_MINUS10KDDS1: |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1916 GetCtrlVal(MainPanel, PANEL_DDS1, &Frequency); |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1917 Frequency -= 10000.0; |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1918 DDS4xAD9912_SetFrequency(&DDS4xAD9912, 1, Frequency); |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1919 SetCtrlVal(MainPanel, PANEL_DDS1, Frequency); |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1920 break; |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1921 case PANEL_MINUS10KDDS2: |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1922 GetCtrlVal(MainPanel, PANEL_DDS2, &Frequency); |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1923 Frequency -= 10000.0; |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1924 DDS4xAD9912_SetFrequency(&DDS4xAD9912, 2, Frequency); |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1925 SetCtrlVal(MainPanel, PANEL_DDS2, Frequency); |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1926 break; |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1927 case PANEL_MINUS10KDDS3: |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1928 GetCtrlVal(MainPanel, PANEL_DDS3, &Frequency); |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1929 Frequency -= 10000.0; |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1930 DDS4xAD9912_SetFrequency(&DDS4xAD9912, 3, Frequency); |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1931 SetCtrlVal(MainPanel, PANEL_DDS3, Frequency); |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1932 break; |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1933 case PANEL_MINUS10KDDS4: |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1934 GetCtrlVal(MainPanel, PANEL_DDS4, &Frequency); |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1935 Frequency -= 10000.0; |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1936 DDS4xAD9912_SetFrequency(&DDS4xAD9912, 4, Frequency); |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1937 SetCtrlVal(MainPanel, PANEL_DDS4, Frequency); |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1938 break; |
0 | 1939 } |
1940 break; | |
24
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1941 } |
0 | 1942 return 0; |
1943 } | |
1944 | |
1945 | |
1946 | |
1947 int CVICALLBACK CB_OnSaveOpt (int panel, int control, int event, | |
1948 void *callbackData, int eventData1, int eventData2) | |
1949 { | |
1950 bool BoxChecked = FALSE ; | |
1951 | |
1952 switch (event) | |
1953 { | |
1954 case EVENT_COMMIT: | |
1955 | |
1956 GetCtrlVal(MainPanel, control, &BoxChecked); | |
1957 | |
1958 if (BoxChecked) { | |
1959 SetCtrlAttribute(MainPanel, PANEL_CHECKBOX_MATH2AUTOSAV, ATTR_DIMMED, FALSE) ; | |
1960 } | |
1961 | |
1962 if (!BoxChecked) { | |
1963 SetCtrlAttribute(MainPanel, PANEL_CHECKBOX_MATH2AUTOSAV, ATTR_DIMMED, TRUE) ; | |
1964 } | |
1965 | |
1966 break; | |
1967 } | |
1968 return 0; | |
1969 } | |
1970 | |
1971 | |
1972 | |
1973 | |
1974 int CVICALLBACK CB_OnSaveHg (int panel, int control, int event, | |
1975 void *callbackData, int eventData1, int eventData2) | |
1976 { | |
1977 bool BoxChecked = FALSE ; | |
1978 | |
1979 switch (event) | |
1980 { | |
1981 case EVENT_COMMIT: | |
1982 | |
1983 GetCtrlVal(MainPanel, control, &BoxChecked); | |
1984 | |
1985 if (BoxChecked) { | |
1986 SetCtrlAttribute(MainPanel, PANEL_CHECKBOX_MATH3AUTOSAV, ATTR_DIMMED, FALSE) ; | |
1987 } | |
1988 | |
1989 if (!BoxChecked) { | |
1990 SetCtrlAttribute(MainPanel, PANEL_CHECKBOX_MATH3AUTOSAV, ATTR_DIMMED, TRUE) ; | |
1991 } | |
1992 | |
1993 break; | |
1994 } | |
1995 return 0; | |
1996 } | |
1997 | |
1998 int CVICALLBACK CB_OnAutoSaveHg (int panel, int control, int event, | |
1999 void *callbackData, int eventData1, int eventData2) | |
2000 { | |
2001 bool BoxChecked = FALSE ; | |
2002 | |
2003 switch (event) | |
2004 { | |
2005 case EVENT_COMMIT: | |
2006 | |
2007 GetCtrlVal(MainPanel, control, &BoxChecked); | |
2008 | |
2009 if (BoxChecked) { | |
2010 SetCtrlAttribute(MainPanel, PANEL_CHECKBOX_MATH2SAVE, ATTR_DIMMED, TRUE) ; | |
2011 } | |
2012 | |
2013 if (!BoxChecked) { | |
2014 SetCtrlAttribute(MainPanel, PANEL_CHECKBOX_MATH2SAVE, ATTR_DIMMED, FALSE) ; | |
2015 } | |
2016 | |
2017 break; | |
2018 } | |
2019 return 0; | |
2020 } | |
2021 | |
2022 int CVICALLBACK CB_OnSaveSr (int panel, int control, int event, | |
2023 void *callbackData, int eventData1, int eventData2) | |
2024 { | |
2025 bool BoxChecked = FALSE ; | |
2026 | |
2027 switch (event) | |
2028 { | |
2029 case EVENT_COMMIT: | |
2030 | |
2031 GetCtrlVal(MainPanel, control, &BoxChecked); | |
2032 | |
2033 if (BoxChecked) { | |
2034 SetCtrlAttribute(MainPanel, PANEL_CHECKBOX_MATH3AUTOSAV, ATTR_DIMMED, FALSE) ; | |
2035 } | |
2036 | |
2037 if (!BoxChecked) { | |
2038 SetCtrlAttribute(MainPanel, PANEL_CHECKBOX_MATH3AUTOSAV, ATTR_DIMMED, TRUE) ; | |
2039 } | |
2040 break; | |
2041 } | |
2042 return 0; | |
2043 } | |
2044 | |
2045 int CVICALLBACK CB_OnAutoSaveSr (int panel, int control, int event, | |
2046 void *callbackData, int eventData1, int eventData2) | |
2047 { | |
2048 bool BoxChecked = FALSE ; | |
2049 | |
2050 switch (event) | |
2051 { | |
2052 case EVENT_COMMIT: | |
2053 | |
2054 GetCtrlVal(MainPanel, control, &BoxChecked); | |
2055 | |
2056 if (BoxChecked) { | |
2057 SetCtrlAttribute(MainPanel, PANEL_CHECKBOX_MATH3SAVE, ATTR_DIMMED, TRUE) ; | |
2058 } | |
2059 | |
2060 if (!BoxChecked) { | |
2061 SetCtrlAttribute(MainPanel, PANEL_CHECKBOX_MATH3SAVE, ATTR_DIMMED, FALSE) ; | |
2062 } | |
2063 | |
2064 break; | |
2065 } | |
2066 return 0; | |
2067 } | |
2068 | |
2069 | |
17
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2070 int CVICALLBACK CB_OnAcceptN (int panel, int control, int event, |
0 | 2071 void *callbackData, int eventData1, int eventData2) |
2072 { | |
2073 switch (event) | |
17
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2074 { |
0 | 2075 case EVENT_COMMIT: |
2076 if (panel == CalcN1Panel) { | |
17
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2077 N1 = round(N_1); |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2078 SetCtrlVal(MainPanel, PANEL_N1CHOICE, N1); |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2079 } |
0 | 2080 if (panel == CalcN2Panel) { |
17
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2081 N2 = round(N_2); |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2082 SetCtrlVal(MainPanel, PANEL_N2CHOICE, N2); |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2083 } |
0 | 2084 if (panel == CalcN3Panel) { |
17
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2085 N3 = round(N_3); |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2086 SetCtrlVal(MainPanel, PANEL_N3CHOICE, N3); |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2087 } |
0 | 2088 break; |
17
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2089 } |
0 | 2090 return 0; |
2091 } | |
2092 | |
2093 | |
2094 int CVICALLBACK OnChooseSaveFile (int panel, int control, int event, | |
2095 void *callbackData, int eventData1, int eventData2) | |
2096 { | |
2097 switch (event) | |
2098 { | |
2099 case EVENT_COMMIT: | |
2100 | |
2101 FileSelectPopup("D:\\Manip Femto", "*.txt", "*.txt", "Selection of the ExtraMath saving file", VAL_SAVE_BUTTON, 0, 0, 0, FALSE, ExtraMathFileName) ; | |
2102 SetCtrlAttribute(MainPanel, PANEL_CHECKBOX_MATH5SAVE, ATTR_DIMMED, FALSE) ; | |
2103 | |
2104 break; | |
2105 } | |
2106 return 0; | |
2107 } | |
2108 | |
2109 | |
2110 int CVICALLBACK CB_OnNCalculus (int panel, int control, int event, | |
2111 void *callbackData, int eventData1, int eventData2) | |
2112 { | |
2113 | |
2114 int PanelIsVisible, PanelTop, PanelLeft, PanelWidth ; | |
2115 | |
2116 switch (event) | |
2117 { | |
2118 case EVENT_COMMIT: | |
2119 | |
2120 if (control==PANEL_N1CALCULUS){ | |
2121 GetPanelAttribute (CalcN1Panel, ATTR_VISIBLE , &PanelIsVisible); | |
2122 if (PanelIsVisible) { | |
2123 } | |
2124 else { | |
2125 GetPanelAttribute (MainPanel, ATTR_TOP, &PanelTop) ; | |
2126 GetPanelAttribute (MainPanel, ATTR_LEFT, &PanelLeft) ; | |
2127 GetPanelAttribute (MainPanel, ATTR_WIDTH, &PanelWidth) ; | |
2128 SetPanelAttribute (CalcN1Panel, ATTR_TOP, PanelTop+170 ) ; | |
2129 SetPanelAttribute (CalcN1Panel, ATTR_LEFT, PanelLeft+PanelWidth+4 ) ; | |
2130 DisplayPanel(CalcN1Panel) ; | |
2131 } | |
2132 } | |
2133 if (control==PANEL_N2CALCULUS){ | |
2134 GetPanelAttribute (CalcN2Panel, ATTR_VISIBLE , &PanelIsVisible); | |
2135 if (PanelIsVisible) { | |
2136 } | |
2137 else { | |
2138 GetPanelAttribute (MainPanel, ATTR_TOP, &PanelTop) ; | |
2139 GetPanelAttribute (MainPanel, ATTR_LEFT, &PanelLeft) ; | |
2140 GetPanelAttribute (MainPanel, ATTR_WIDTH, &PanelWidth) ; | |
2141 SetPanelAttribute (CalcN2Panel, ATTR_TOP, PanelTop+310 ) ; | |
2142 SetPanelAttribute (CalcN2Panel, ATTR_LEFT, PanelLeft+PanelWidth+4 ) ; | |
2143 DisplayPanel(CalcN2Panel) ; | |
2144 } | |
2145 } | |
2146 if (control==PANEL_N3CALCULUS){ | |
2147 GetPanelAttribute (CalcN3Panel, ATTR_VISIBLE , &PanelIsVisible); | |
2148 if (PanelIsVisible) { | |
2149 } | |
2150 else { | |
2151 GetPanelAttribute (MainPanel, ATTR_TOP, &PanelTop) ; | |
2152 GetPanelAttribute (MainPanel, ATTR_LEFT, &PanelLeft) ; | |
2153 GetPanelAttribute (MainPanel, ATTR_WIDTH, &PanelWidth) ; | |
2154 SetPanelAttribute (CalcN3Panel, ATTR_TOP, PanelTop+480 ) ; | |
2155 SetPanelAttribute (CalcN3Panel, ATTR_LEFT, PanelLeft+PanelWidth+4 ) ; | |
2156 DisplayPanel(CalcN3Panel) ; | |
2157 } | |
2158 } | |
2159 break; | |
2160 } | |
2161 | |
2162 return 0; | |
2163 } | |
2164 | |
2165 | |
2166 int CVICALLBACK CB_OnStartNCalculus (int panel, int control, int event, | |
2167 void *callbackData, int eventData1, int eventData2) | |
2168 { | |
2169 | |
2170 switch (event) | |
17
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2171 { |
0 | 2172 case EVENT_COMMIT: |
17
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2173 if (panel == CalcN1Panel) |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2174 Measuring_1 = TRUE; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2175 if (panel == CalcN2Panel) |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2176 Measuring_2 = TRUE; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2177 if (panel == CalcN3Panel) |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2178 Measuring_3 = TRUE; |
0 | 2179 break; |
17
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2180 } |
0 | 2181 |
2182 return 0; | |
2183 } | |
2184 | |
2185 | |
2186 | |
2187 int CVICALLBACK CB_OnNStop (int panel, int control, int event, | |
2188 void *callbackData, int eventData1, int eventData2) | |
2189 { | |
2190 int PanelIsVisible; | |
2191 | |
2192 switch (event) | |
17
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2193 { |
0 | 2194 case EVENT_COMMIT: |
17
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2195 if (panel == CalcN1Panel) { |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2196 GetPanelAttribute (CalcN1Panel, ATTR_VISIBLE, &PanelIsVisible); |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2197 if (PanelIsVisible) |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2198 HidePanel(CalcN1Panel); |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2199 |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2200 Measuring_1=FALSE; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2201 Step1_1=FALSE ; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2202 Step2_1=FALSE ; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2203 Step3_1=FALSE ; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2204 Frepminus_1=0.0; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2205 Frepplus_1=0.0; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2206 t1_1=0.0; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2207 t2_1=0.0; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2208 t3_1=0.0; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2209 N_slope_1=0; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2210 Frequ_slope_1=0.0; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2211 Moy_slope_1=0.0; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2212 Slope_slope_1 =0.0; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2213 Ch4_slope=0.0; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2214 Moy_Ch4slope_1=0.0; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2215 Slope_Ch4slope_1=0.0; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2216 DDSBesChanged1=FALSE; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2217 DDSBesChanged2=FALSE; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2218 nDDSChange=0.0; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2219 |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2220 SetCtrlVal(MainPanel, PANEL_DDS1, FrequDDS1) ; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2221 DDS4xAD9912_SetFrequency(&DDS4xAD9912, 1, FrequDDS1); |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2222 SetCtrlVal(MainPanel, PANEL_DDS2, FrequencyDDSBesInit) ; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2223 DDS4xAD9912_SetFrequency(&DDS4xAD9912, 2, FrequencyDDSBesInit); |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2224 nstabilization=0; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2225 } |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2226 if (panel == CalcN2Panel) { |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2227 GetPanelAttribute (CalcN2Panel, ATTR_VISIBLE, &PanelIsVisible); |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2228 if (PanelIsVisible) |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2229 HidePanel(CalcN2Panel); |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2230 |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2231 Measuring_2=FALSE; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2232 Step1_2=FALSE ; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2233 Step2_2=FALSE ; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2234 Step3_2=FALSE ; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2235 Frepminus_2=0.0; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2236 Delta10K_Minus=0.0; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2237 Frepplus_2=0.0; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2238 Delta10K_Plus=0.0; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2239 DeltaDDS3=0.0; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2240 t1_2=0.0; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2241 t2_2=0.0; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2242 t3_2=0.0; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2243 N_slope_2=0; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2244 Frequ_slope_2=0.0; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2245 Moy_slope_2=0.0; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2246 Beat_slope_2=0.0; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2247 Moy_Beatslope_2=0.0; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2248 Slope_Beatslope_2 =0.0; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2249 Slope_slope_2 =0.0; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2250 DDSBesChanged1=FALSE; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2251 DDSBesChanged2=FALSE; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2252 nDDSChange=0.0; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2253 |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2254 SetCtrlVal(MainPanel, PANEL_DDS1, FrequDDS1) ; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2255 DDS4xAD9912_SetFrequency(&DDS4xAD9912, 1, FrequDDS1); |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2256 SetCtrlVal(MainPanel, PANEL_DDS2, FrequencyDDSBesInit) ; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2257 DDS4xAD9912_SetFrequency(&DDS4xAD9912, 2, FrequencyDDSBesInit); |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2258 SetCtrlVal(MainPanel, PANEL_DDS3, FrequencyDDS3Init) ; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2259 DDS4xAD9912_SetFrequency(&DDS4xAD9912, 3, FrequencyDDS3Init); |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2260 nstabilization=0; |
0 | 2261 } |
17
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2262 if (panel == CalcN3Panel) { |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2263 GetPanelAttribute (CalcN3Panel, ATTR_VISIBLE, &PanelIsVisible); |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2264 if (PanelIsVisible) |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2265 HidePanel(CalcN3Panel); |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2266 |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2267 Measuring_3 = FALSE; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2268 Frepminus_3 = 0.0; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2269 Frepplus_3 = 0.0; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2270 t1_3 = 0.0; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2271 t2_3 = 0.0; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2272 t3_3 = 0.0; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2273 N_slope_3 = 0; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2274 Frequ_slope_3 = 0.0; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2275 Moy_slope_3 = 0.0; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2276 Slope_slope_3 = 0.0; |
0 | 2277 } |
2278 break; | |
17
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2279 } |
0 | 2280 return 0; |
2281 } | |
2282 | |
2283 | |
2284 int CVICALLBACK CB_OnIntegrationTime (int panel, int control, int event, | |
2285 void *callbackData, int eventData1, int eventData2) | |
2286 { | |
2287 double Time ; | |
2288 | |
17
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2289 switch (event) { |
0 | 2290 case EVENT_COMMIT: |
17
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2291 if (panel == CalcN1Panel) { |
0 | 2292 GetCtrlVal(CalcN1Panel, CALCN1_INTEGRATIONTIME, &Time) ; |
2293 DeltaT_1=Time; | |
2294 } | |
17
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2295 if (panel == CalcN2Panel) { |
0 | 2296 GetCtrlVal(CalcN2Panel, CALCN2_INTEGRATIONTIME, &Time) ; |
2297 DeltaT_2=Time; | |
2298 } | |
17
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2299 if (panel == CalcN3Panel) { |
0 | 2300 GetCtrlVal(CalcN3Panel, CALCN3_INTEGRATIONTIME, &Time) ; |
2301 DeltaT_3=Time; | |
2302 } | |
2303 break; | |
17
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2304 } |
0 | 2305 return 0; |
2306 } | |
2307 | |
2308 | |
2309 int CVICALLBACK CB_OnDeltaFreq (int panel, int control, int event, | |
2310 void *callbackData, int eventData1, int eventData2) | |
2311 { | |
2312 double Frequ ; | |
2313 | |
2314 switch (event) | |
17
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2315 { |
0 | 2316 case EVENT_COMMIT: |
17
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2317 if (panel == CalcN1Panel) { |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2318 GetCtrlVal(CalcN1Panel, CALCN1_DELTAFREQ, &Frequ); |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2319 DeltakHz_1 = Frequ; |
0 | 2320 } |
17
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2321 if (panel == CalcN2Panel) { |
0 | 2322 GetCtrlVal(CalcN2Panel, CALCN2_DELTAFREQ, &Frequ) ; |
2323 DeltakHz_2=Frequ; | |
2324 } | |
17
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2325 if (panel == CalcN3Panel) { |
0 | 2326 GetCtrlVal(CalcN3Panel, CALCN3_DELTAFREQ, &Frequ) ; |
2327 DeltakHz_3=Frequ; | |
2328 } | |
2329 break; | |
17
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2330 } |
0 | 2331 return 0; |
2332 } | |
2333 | |
2334 | |
2335 int CVICALLBACK CB_OnFindSign (int panel, int control, int event, | |
17
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2336 void *callbackData, int eventData1, int eventData2) |
0 | 2337 { |
2338 | |
17
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2339 switch (event) { |
0 | 2340 case EVENT_COMMIT: |
17
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2341 switch (control) |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2342 { |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2343 case PANEL_FINDSIGN1: |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2344 tbegin1 = utc; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2345 Frepbefore1 = Math1; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2346 GetCtrlVal(MainPanel, PANEL_DDS1, &Frequency1) ; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2347 SetCtrlVal(MainPanel, PANEL_DDS1, Frequency1+Frequencystep1) ; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2348 DDS4xAD9912_SetFrequency(&DDS4xAD9912, 1, Frequency1+Frequencystep1); |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2349 Getsign1 = TRUE; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2350 break; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2351 case PANEL_FINDSIGN2: |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2352 tbegin2 = utc; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2353 Frepbefore2 = Math1; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2354 Ch2before = Ch2; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2355 GetCtrlVal(MainPanel, PANEL_DDS1, &Frequency2) ; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2356 SetCtrlVal(MainPanel, PANEL_DDS1, Frequency2+Frequencystep2) ; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2357 DDS4xAD9912_SetFrequency(&DDS4xAD9912, 1, Frequency2+Frequencystep2); |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2358 Getsign2 = TRUE; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2359 break; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2360 case PANEL_FINDSIGN3: |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2361 tbegin3 = utc; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2362 Frepbefore3 = Math1; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2363 GetCtrlVal(MainPanel, PANEL_DDS4, &Frequency3) ; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2364 SetCtrlVal(MainPanel, PANEL_DDS4, Frequency3+Frequencystep3) ; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2365 DDS4xAD9912_SetFrequency(&DDS4xAD9912, 4, Frequency3+Frequencystep3); |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2366 Getsign3 = TRUE; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2367 break; |
0 | 2368 } |
2369 break; | |
17
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2370 } |
0 | 2371 return 0; |
17
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2372 } |
0 | 2373 |
2374 | |
2375 int CVICALLBACK CB_OnFind275K (int panel, int control, int event, | |
2376 void *callbackData, int eventData1, int eventData2) | |
2377 { | |
2378 | |
2379 | |
2380 double FrequencyToChange,DeltaCh4,DeltaCh2; | |
2381 | |
2382 DeltaCh4=275000-Ch4; | |
2383 DeltaCh2=10000-Ch2; | |
2384 | |
2385 switch (event) | |
2386 { | |
2387 case EVENT_COMMIT: | |
2388 if (control==PANEL_FIND275K2){ | |
2389 GetCtrlVal(MainPanel, PANEL_DDS2, &FrequencyToChange) ; | |
2390 SetCtrlVal(MainPanel, PANEL_DDS2, FrequencyToChange+DeltaCh4) ; | |
2391 DDS4xAD9912_SetFrequency(&DDS4xAD9912, 2, FrequencyToChange+DeltaCh4); | |
2392 | |
2393 } | |
2394 | |
2395 if (control==PANEL_FIND10K3){ | |
2396 GetCtrlVal(MainPanel, PANEL_DDS3, &FrequencyToChange) ; | |
2397 SetCtrlVal(MainPanel, PANEL_DDS3, FrequencyToChange+DeltaCh2) ; | |
2398 DDS4xAD9912_SetFrequency(&DDS4xAD9912, 3, FrequencyToChange+DeltaCh2); | |
2399 | |
2400 } | |
2401 | |
2402 break; | |
2403 | |
2404 } | |
2405 return 0; | |
2406 } | |
2407 | |
2408 | |
2409 int CVICALLBACK CB_OnSlopeTime (int panel, int control, int event, | |
2410 void *callbackData, int eventData1, int eventData2) | |
2411 { | |
2412 double Time ; | |
2413 | |
2414 switch (event) | |
17
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2415 { |
0 | 2416 case EVENT_COMMIT: |
17
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2417 if (panel == CalcN1Panel) { |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2418 GetCtrlVal(CalcN1Panel, CALCN1_SLOPETIME, &Time); |
0 | 2419 SlopeTime1=Time; |
2420 } | |
17
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2421 if (panel == CalcN2Panel) { |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2422 GetCtrlVal(CalcN2Panel, CALCN2_SLOPETIME, &Time); |
0 | 2423 SlopeTime2=Time; |
2424 } | |
17
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2425 if (panel == CalcN3Panel) { |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2426 GetCtrlVal(CalcN3Panel, CALCN3_SLOPETIME, &Time); |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2427 SlopeTime3=Time; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2428 } |
0 | 2429 break; |
17
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2430 } |
0 | 2431 return 0; |
2432 } | |
2433 | |
2434 | |
2435 int CVICALLBACK CB_OnChangeNdiv (int panel, int control, int event, | |
2436 void *callbackData, int eventData1, int eventData2) | |
2437 { | |
2438 double NewN ; | |
2439 | |
2440 switch (event) | |
2441 { | |
2442 case EVENT_COMMIT: | |
2443 if (control==PANEL_CHANGENDIV){ | |
2444 GetCtrlVal(MainPanel, PANEL_CHANGENDIV, &NewN) ; | |
2445 Ndiv=NewN; | |
2446 FrequDDS1=880000000.0/Ndiv; | |
2447 DeltakHz_1=1800.0*8/Ndiv; | |
2448 DeltakHz_2=1500.0*8/Ndiv; | |
2449 SetCtrlVal(MainPanel, PANEL_DDS1, FrequDDS1) ; | |
2450 DDS4xAD9912_SetFrequency(&DDS4xAD9912,1,FrequDDS1); | |
2451 SetCtrlVal(CalcN1Panel, CALCN1_DELTAFREQ, DeltakHz_1) ; | |
2452 SetCtrlVal(CalcN2Panel, CALCN2_DELTAFREQ, DeltakHz_2) ; | |
2453 } | |
2454 | |
2455 break; | |
2456 | |
2457 } | |
2458 return 0; | |
2459 } | |
2460 | |
2461 | |
2462 int CVICALLBACK CB_OnStartSlopeCancelling (int panel, int control, int event, | |
2463 void *callbackData, int eventData1, int eventData2) | |
2464 { | |
2465 | |
2466 double ActualFrequ=0.0; | |
2467 double ActualSlope=0.0; | |
2468 int buttonstatu=0; | |
2469 | |
2470 switch (event) | |
2471 { | |
2472 case EVENT_COMMIT: | |
2473 if (control==PANEL_STARTCANCEL){ | |
2474 | |
2475 GetCtrlVal(MainPanel, PANEL_STARTCANCEL, &buttonstatu) ; | |
2476 | |
2477 if (buttonstatu==1) | |
2478 { | |
2479 SlopeMeasuringTimeBegin=utc; | |
2480 SlopeMeasuring=TRUE; | |
2481 ActualFrequ=ReadDDSFOX (DDSFoxName,DDSFoxip,DDSFoxPort,DDSFoxProfil,DDSFoxClock,DDSFoxDeltaT,DDSFoxFrequency,DDSFoxSweeprate); | |
2482 ActualSlope= SlopeMath2; | |
2483 LaunchDDSFOX (DDSFoxName,DDSFoxip,DDSFoxPort,DDSFoxProfil,DDSFoxClock,DDSFoxDeltaT,ActualFrequ,ActualSlope,0); | |
2484 Nratio=-1; | |
2485 CenterFrequencyCh2ToDetermine=TRUE ; | |
2486 CenterFrequencyCh2=0.0; | |
2487 | |
2488 } | |
2489 else | |
2490 { | |
2491 if (KeepFrequ==TRUE) {ActualFrequ=ReadDDSFOX (DDSFoxName,DDSFoxip,DDSFoxPort,DDSFoxProfil,DDSFoxClock,DDSFoxDeltaT,DDSFoxFrequency,DDSFoxSweeprate);} | |
2492 else { ActualFrequ= DDSFoxFrequency;} | |
2493 if (KeepSlope==TRUE) {ActualSlope= SlopeMath2; | |
2494 OnSlopeCancelling =TRUE; } | |
2495 else { ActualSlope= DDSFoxSweeprate; | |
2496 OnSlopeCancelling =FALSE; } | |
2497 LaunchDDSFOX (DDSFoxName,DDSFoxip,DDSFoxPort,DDSFoxProfil,DDSFoxClock,DDSFoxDeltaT,ActualFrequ,ActualSlope,0); | |
2498 SlopeMeasuring=FALSE; | |
2499 N_Math2slope=0.0; | |
2500 Math2_slope=0.0; | |
2501 Moy_Math2slope=0.0; | |
2502 Slope_Math2slope=0.0; | |
2503 MoyMath2=0.0; | |
2504 Slope_Math2slope=0.0; | |
2505 CenterFrequencyCh2= 0.0; | |
2506 Nratio=-1; | |
2507 nstabilisationSlopeMeasuring=0; | |
2508 } | |
2509 } | |
2510 | |
2511 break; | |
2512 | |
2513 } | |
2514 return 0; | |
2515 } | |
2516 | |
2517 | |
14
783407954cdf
Minor code cleanup
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
10
diff
changeset
|
2518 int CVICALLBACK CB_OnResetSlope (int panel, int control, int event, |
783407954cdf
Minor code cleanup
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
10
diff
changeset
|
2519 void *callbackData, int eventData1, int eventData2) |
0 | 2520 { |
2521 | |
14
783407954cdf
Minor code cleanup
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
10
diff
changeset
|
2522 switch (event) { |
0 | 2523 case EVENT_COMMIT: |
14
783407954cdf
Minor code cleanup
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
10
diff
changeset
|
2524 SlopeMath2 = 0.0; |
783407954cdf
Minor code cleanup
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
10
diff
changeset
|
2525 CenterFrequencyCh2 = 0.0; |
783407954cdf
Minor code cleanup
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
10
diff
changeset
|
2526 MoyMath2 = 0.0; |
783407954cdf
Minor code cleanup
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
10
diff
changeset
|
2527 Nratio = -1; |
783407954cdf
Minor code cleanup
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
10
diff
changeset
|
2528 CenterFrequencyCh2ToDetermine = TRUE ; |
783407954cdf
Minor code cleanup
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
10
diff
changeset
|
2529 OnSlopeCancelling = FALSE; |
783407954cdf
Minor code cleanup
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
10
diff
changeset
|
2530 LaunchDDSFOX (DDSFoxName,DDSFoxip,DDSFoxPort,DDSFoxProfil,DDSFoxClock,DDSFoxDeltaT,DDSFoxFrequency,DDSFoxSweeprate,0); |
0 | 2531 break; |
14
783407954cdf
Minor code cleanup
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
10
diff
changeset
|
2532 } |
0 | 2533 return 0; |
2534 } | |
2535 | |
2536 | |
14
783407954cdf
Minor code cleanup
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
10
diff
changeset
|
2537 int CVICALLBACK CB_ChangeSlopeTime (int panel, int control, int event, |
783407954cdf
Minor code cleanup
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
10
diff
changeset
|
2538 void *callbackData, int eventData1, int eventData2) |
0 | 2539 { |
2540 | |
14
783407954cdf
Minor code cleanup
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
10
diff
changeset
|
2541 switch (event) { |
0 | 2542 case EVENT_COMMIT: |
14
783407954cdf
Minor code cleanup
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
10
diff
changeset
|
2543 GetCtrlVal(MainPanel, PANEL_SLOPETIME, &TimetoSlope); |
0 | 2544 break; |
14
783407954cdf
Minor code cleanup
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
10
diff
changeset
|
2545 } |
0 | 2546 return 0; |
2547 } | |
2548 | |
2549 | |
14
783407954cdf
Minor code cleanup
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
10
diff
changeset
|
2550 int LaunchDDSFOX (char *Name,char *ip,int Port,unsigned int Profil,double Clock,double DeltaT,double Frequency,double Sweeprate,int mode) |
0 | 2551 { |
14
783407954cdf
Minor code cleanup
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
10
diff
changeset
|
2552 //mode =0 pour normal |
783407954cdf
Minor code cleanup
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
10
diff
changeset
|
2553 //mode =1 pour reset |
783407954cdf
Minor code cleanup
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
10
diff
changeset
|
2554 |
0 | 2555 DDSParameter DDSState; |
14
783407954cdf
Minor code cleanup
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
10
diff
changeset
|
2556 |
783407954cdf
Minor code cleanup
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
10
diff
changeset
|
2557 strcpy(DDSState.Name, Name); |
783407954cdf
Minor code cleanup
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
10
diff
changeset
|
2558 DDSState.Profil = Profil; |
783407954cdf
Minor code cleanup
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
10
diff
changeset
|
2559 strcpy(DDSState.ip, ip); |
783407954cdf
Minor code cleanup
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
10
diff
changeset
|
2560 DDSState.Port = Port; |
783407954cdf
Minor code cleanup
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
10
diff
changeset
|
2561 DDSState.Clock = Clock; |
783407954cdf
Minor code cleanup
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
10
diff
changeset
|
2562 DDSState.Delta_T = DeltaT; |
783407954cdf
Minor code cleanup
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
10
diff
changeset
|
2563 DDSState.Frequency = Frequency; |
783407954cdf
Minor code cleanup
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
10
diff
changeset
|
2564 DDSState.SweepRate = Sweeprate; |
783407954cdf
Minor code cleanup
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
10
diff
changeset
|
2565 |
783407954cdf
Minor code cleanup
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
10
diff
changeset
|
2566 if (mode == 1) { |
783407954cdf
Minor code cleanup
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
10
diff
changeset
|
2567 DDS_Initialize (&DDSState); |
783407954cdf
Minor code cleanup
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
10
diff
changeset
|
2568 } else { |
783407954cdf
Minor code cleanup
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
10
diff
changeset
|
2569 DDS_ReInitialize (&DDSState); |
783407954cdf
Minor code cleanup
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
10
diff
changeset
|
2570 } |
0 | 2571 |
2572 return 0; | |
2573 } | |
2574 | |
14
783407954cdf
Minor code cleanup
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
10
diff
changeset
|
2575 double ReadDDSFOX (char *Name,char *ip,int Port,unsigned int Profil,double Clock,double DeltaT,double Frequency,double Sweeprate) |
0 | 2576 { |
2577 | |
2578 DDSParameter DDSState; | |
14
783407954cdf
Minor code cleanup
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
10
diff
changeset
|
2579 |
783407954cdf
Minor code cleanup
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
10
diff
changeset
|
2580 strcpy(DDSState.Name, Name); |
783407954cdf
Minor code cleanup
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
10
diff
changeset
|
2581 DDSState.Profil = Profil; |
783407954cdf
Minor code cleanup
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
10
diff
changeset
|
2582 strcpy(DDSState.ip, ip); |
783407954cdf
Minor code cleanup
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
10
diff
changeset
|
2583 DDSState.Port = Port; |
783407954cdf
Minor code cleanup
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
10
diff
changeset
|
2584 DDSState.Clock = Clock; |
783407954cdf
Minor code cleanup
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
10
diff
changeset
|
2585 DDSState.Delta_T = DeltaT; |
783407954cdf
Minor code cleanup
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
10
diff
changeset
|
2586 DDSState.Frequency = Frequency; |
783407954cdf
Minor code cleanup
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
10
diff
changeset
|
2587 DDSState.SweepRate = Sweeprate; |
0 | 2588 |
14
783407954cdf
Minor code cleanup
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
10
diff
changeset
|
2589 return DDSFox_ReadFreq(&DDSState); |
0 | 2590 } |
2591 | |
2592 | |
2593 int CVICALLBACK CB_OnCROX (int panel, int control, int event, | |
2594 void *callbackData, int eventData1, int eventData2) | |
2595 { | |
2596 bool BoxChecked = FALSE; | |
2597 double ActualFrequ=0.0; | |
2598 | |
2599 switch (event) | |
2600 { | |
2601 case EVENT_COMMIT: | |
2602 | |
2603 if (control== PANEL_CHECKBOX_CORRFREQU) | |
2604 { | |
2605 GetCtrlVal(MainPanel, PANEL_CHECKBOX_CORRFREQU, &BoxChecked) ; | |
2606 if (BoxChecked) { | |
2607 FrequCorrec=TRUE ; | |
2608 } | |
2609 else {FrequCorrec=FALSE ;} | |
2610 | |
2611 } | |
2612 | |
2613 if (control== PANEL_CHECKBOX_KEEP) | |
2614 { | |
2615 GetCtrlVal(MainPanel, PANEL_CHECKBOX_KEEP, &BoxChecked) ; | |
2616 if (BoxChecked) { | |
2617 KeepFrequ=TRUE ; | |
2618 } | |
2619 else {KeepFrequ=FALSE ;} | |
2620 | |
2621 } | |
2622 | |
2623 | |
2624 if (control== PANEL_CHECKBOX_KEEPSLOPE) | |
2625 { | |
2626 GetCtrlVal(MainPanel, PANEL_CHECKBOX_KEEPSLOPE, &BoxChecked) ; | |
2627 if (BoxChecked) { | |
2628 KeepSlope=TRUE ; | |
2629 if (SlopeMeasuring==FALSE && OnSlopeCancelling==FALSE) | |
2630 { | |
2631 ActualFrequ=ReadDDSFOX (DDSFoxName,DDSFoxip,DDSFoxPort,DDSFoxProfil,DDSFoxClock,DDSFoxDeltaT,DDSFoxFrequency,DDSFoxSweeprate); | |
2632 LaunchDDSFOX (DDSFoxName,DDSFoxip,DDSFoxPort,DDSFoxProfil,DDSFoxClock,DDSFoxDeltaT,ActualFrequ,SlopeMath2,0); | |
2633 OnSlopeCancelling=TRUE; | |
2634 | |
2635 | |
2636 } | |
2637 } | |
2638 else {KeepSlope=FALSE ; | |
2639 if (SlopeMeasuring==FALSE && OnSlopeCancelling==TRUE) | |
2640 { | |
2641 ActualFrequ=ReadDDSFOX (DDSFoxName,DDSFoxip,DDSFoxPort,DDSFoxProfil,DDSFoxClock,DDSFoxDeltaT,DDSFoxFrequency,DDSFoxSweeprate); | |
2642 LaunchDDSFOX (DDSFoxName,DDSFoxip,DDSFoxPort,DDSFoxProfil,DDSFoxClock,DDSFoxDeltaT,ActualFrequ,DDSFoxSweeprate,0); | |
2643 OnSlopeCancelling=FALSE; | |
2644 } | |
2645 | |
2646 } | |
2647 | |
2648 } | |
2649 | |
2650 break; | |
2651 | |
2652 } | |
2653 return 0; | |
2654 } | |
2655 | |
2656 | |
2657 | |
2658 int CVICALLBACK CB_OnReCentering (int panel, int control, int event, | |
2659 void *callbackData, int eventData1, int eventData2) | |
2660 { | |
2661 bool BoxChecked = FALSE; | |
2662 | |
2663 switch (event) | |
2664 { | |
2665 case EVENT_COMMIT: | |
2666 | |
2667 if (control== PANEL_CHECKBOX_RECENTER) | |
2668 { | |
2669 GetCtrlVal(MainPanel, PANEL_CHECKBOX_RECENTER, &BoxChecked) ; | |
2670 if (BoxChecked) { | |
2671 KeepCentering=TRUE ; | |
2672 CenteringTimeBegin275K=utc; | |
2673 CenteringTimeBegin10K=utc; | |
2674 } | |
2675 else {KeepCentering=FALSE ;} | |
2676 | |
2677 } | |
2678 | |
2679 | |
2680 break; | |
2681 | |
2682 } | |
2683 return 0; | |
2684 } | |
2685 | |
2686 | |
2687 int CVICALLBACK CB_OnAutoStopSlopeCancellingIfDelock (int panel, int control, int event, | |
2688 void *callbackData, int eventData1, int eventData2) | |
2689 { | |
2690 switch (event) | |
20
3a7f088d4960
Get rid of unused variables. Some minor coding style improvements
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
17
diff
changeset
|
2691 { |
0 | 2692 case EVENT_COMMIT: |
20
3a7f088d4960
Get rid of unused variables. Some minor coding style improvements
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
17
diff
changeset
|
2693 GetCtrlVal(MainPanel, PANEL_CHECKBOX_STOPIFAUTODE, &AutoStopSlopeCancellingIfDelock); |
3a7f088d4960
Get rid of unused variables. Some minor coding style improvements
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
17
diff
changeset
|
2694 break; |
3a7f088d4960
Get rid of unused variables. Some minor coding style improvements
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
17
diff
changeset
|
2695 } |
0 | 2696 return 0; |
2697 } | |
2
bd7501b65f56
Implement reference selection (microwave or Hg cavity) for slope cancelling
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
1
diff
changeset
|
2698 |
17
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2699 int CVICALLBACK CB_OnSlopeReference (int panel, int control, int event, |
2
bd7501b65f56
Implement reference selection (microwave or Hg cavity) for slope cancelling
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
1
diff
changeset
|
2700 void *callbackData, int eventData1, int eventData2) |
bd7501b65f56
Implement reference selection (microwave or Hg cavity) for slope cancelling
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
1
diff
changeset
|
2701 { |
bd7501b65f56
Implement reference selection (microwave or Hg cavity) for slope cancelling
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
1
diff
changeset
|
2702 switch (event) |
bd7501b65f56
Implement reference selection (microwave or Hg cavity) for slope cancelling
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
1
diff
changeset
|
2703 { |
bd7501b65f56
Implement reference selection (microwave or Hg cavity) for slope cancelling
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
1
diff
changeset
|
2704 case EVENT_COMMIT: |
bd7501b65f56
Implement reference selection (microwave or Hg cavity) for slope cancelling
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
1
diff
changeset
|
2705 GetCtrlVal(MainPanel, PANEL_SLOPE_REFERENCE, &slopeReference); |
bd7501b65f56
Implement reference selection (microwave or Hg cavity) for slope cancelling
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
1
diff
changeset
|
2706 break; |
bd7501b65f56
Implement reference selection (microwave or Hg cavity) for slope cancelling
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
1
diff
changeset
|
2707 } |
bd7501b65f56
Implement reference selection (microwave or Hg cavity) for slope cancelling
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
1
diff
changeset
|
2708 return 0; |
bd7501b65f56
Implement reference selection (microwave or Hg cavity) for slope cancelling
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
1
diff
changeset
|
2709 } |
17
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2710 |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2711 |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2712 int CVICALLBACK CB_OnEstimateN (int panel, int control, int event, |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2713 void *callbackData, int eventData1, int eventData2) |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2714 { |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2715 int visible; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2716 double wl; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2717 |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2718 switch (event) |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2719 { |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2720 case EVENT_COMMIT: |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2721 /* be prepaid to support more N estimates for different beat notes */ |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2722 switch (control) |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2723 { |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2724 case PANEL_ESTIMATE_N3: |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2725 GetPanelAttribute(EstimateN3Panel, ATTR_VISIBLE , &visible); |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2726 if (! visible) { |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2727 DisplayPanel(EstimateN3Panel); |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2728 } |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2729 /* set current frep */ |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2730 SetCtrlVal(EstimateN3Panel, ESTIMATEN3_FREP, 250e6 + Math1); |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2731 /* default wavelenght for Sr cavity */ |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2732 GetCtrlVal(EstimateN3Panel, ESTIMATEN3_WAVELENGTH, &wl); |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2733 if (wl == 0.0) |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2734 SetCtrlVal(EstimateN3Panel, ESTIMATEN3_WAVELENGTH, 698.50); |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2735 /* reset N3 estimate */ |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2736 SetCtrlVal(EstimateN3Panel, ESTIMATEN3_N, 0.0); |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2737 break; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2738 } |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2739 break; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2740 } |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2741 |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2742 return 0; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2743 } |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2744 |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2745 int CVICALLBACK CB_OnNEstimateCancel (int panel, int control, int event, |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2746 void *callbackData, int eventData1, int eventData2) |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2747 { |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2748 int visible; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2749 |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2750 switch (event) |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2751 { |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2752 case EVENT_COMMIT: |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2753 GetPanelAttribute(panel, ATTR_VISIBLE, &visible); |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2754 if (visible) |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2755 HidePanel(panel); |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2756 break; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2757 } |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2758 return 0; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2759 } |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2760 |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2761 int CVICALLBACK CB_OnNEstimateSet (int panel, int control, int event, |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2762 void *callbackData, int eventData1, int eventData2) |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2763 { |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2764 switch (event) |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2765 { |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2766 case EVENT_COMMIT: |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2767 GetCtrlVal(panel, ESTIMATEN3_N, &N3); |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2768 SetCtrlVal(MainPanel, PANEL_N3CHOICE, N3); |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2769 HidePanel(panel); |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2770 break; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2771 } |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2772 return 0; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2773 } |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2774 |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2775 int CVICALLBACK CB_OnNEstimate (int panel, int control, int event, |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2776 void *callbackData, int eventData1, int eventData2) |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2777 { |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2778 double frep, wl, N; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2779 |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2780 switch (event) |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2781 { |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2782 case EVENT_COMMIT: |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2783 GetCtrlVal(panel, ESTIMATEN3_FREP, &frep); |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2784 GetCtrlVal(panel, ESTIMATEN3_WAVELENGTH, &wl); |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2785 N = round(299792458.0 / wl / 1e-9 / frep); |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2786 SetCtrlVal(panel, ESTIMATEN3_N, N); |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2787 break; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2788 } |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2789 return 0; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2790 } |