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