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