Mercurial > hg > fxanalyse
annotate FXAnalyse.c @ 88:9b7588cd4013
Move data acquisition into separate thread
The data acquisition thread transfers data to the main thread trough a Thread
Safe Queue. This separation allows for making the data acquisition system
pluggable. The old file based communication to the KK counter is implemented
along with a very simple fake data provider.
author | Daniele Nicolodi <daniele.nicolodi@obspm.fr> |
---|---|
date | Thu, 21 Mar 2013 18:24:45 +0100 |
parents | 0950d4b3a45c |
children | c9e4f63c2033 |
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 "DDS4xAD9912.h" | |
14 #include "DDS_Fox.h" | |
15 #include "muParserDLL.h" | |
16 | |
79
930acf691aa4
Update data logging folder to "z:\Measures-2013"
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
78
diff
changeset
|
17 #define DATAFOLDER "Z:\\Measures-2013" |
0 | 18 |
29
585c60175bd5
Cleanup AD9956 DDS parameters setting code
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
28
diff
changeset
|
19 #define DEDRIFT_DDS_FREQUENCY 70000000 |
0 | 20 |
85 | 21 // panels |
22 static int MainPanel; | |
23 static int CalcNPanel; | |
24 static int EstimateN3Panel; | |
25 static int LoggingPanel; | |
0 | 26 |
88
9b7588cd4013
Move data acquisition into separate thread
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
87
diff
changeset
|
27 // data acquisition status |
9b7588cd4013
Move data acquisition into separate thread
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
87
diff
changeset
|
28 int acquiring; |
9b7588cd4013
Move data acquisition into separate thread
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
87
diff
changeset
|
29 // data queue |
9b7588cd4013
Move data acquisition into separate thread
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
87
diff
changeset
|
30 CmtTSQHandle dataQueue; |
9b7588cd4013
Move data acquisition into separate thread
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
87
diff
changeset
|
31 // data provider thread |
9b7588cd4013
Move data acquisition into separate thread
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
87
diff
changeset
|
32 CmtThreadFunctionID dataProviderThread; |
0 | 33 |
88
9b7588cd4013
Move data acquisition into separate thread
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
87
diff
changeset
|
34 // data providers |
9b7588cd4013
Move data acquisition into separate thread
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
87
diff
changeset
|
35 int CVICALLBACK FakeDataProvider (void *functionData); |
9b7588cd4013
Move data acquisition into separate thread
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
87
diff
changeset
|
36 int CVICALLBACK FileDataProvider (void *functionData); |
0 | 37 |
88
9b7588cd4013
Move data acquisition into separate thread
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
87
diff
changeset
|
38 // select which data provider to use |
9b7588cd4013
Move data acquisition into separate thread
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
87
diff
changeset
|
39 #define DataProvider FileDataProvider |
9b7588cd4013
Move data acquisition into separate thread
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
87
diff
changeset
|
40 |
9b7588cd4013
Move data acquisition into separate thread
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
87
diff
changeset
|
41 |
9b7588cd4013
Move data acquisition into separate thread
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
87
diff
changeset
|
42 double utc; |
37 | 43 double Ch1, Ch2, Ch3, Ch4; |
44 double Math1, Math2, Math3, Math4, Math5; | |
45 double N1, N2, N3, N4; | |
0 | 46 |
47 Plot_Data PlotCh1, PlotCh2, PlotCh3, PlotCh4, PlotMath1, PlotMath2, PlotMath3, PlotMath4, PlotMath5 ; | |
48 Allan_Data AllanCh1, AllanCh2, AllanCh3, AllanCh4, AllanMath1, AllanMath2, AllanMath3, AllanMath4, AllanMath5 ; | |
49 | |
29
585c60175bd5
Cleanup AD9956 DDS parameters setting code
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
28
diff
changeset
|
50 // 1xAD9956 DDS box |
585c60175bd5
Cleanup AD9956 DDS parameters setting code
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
28
diff
changeset
|
51 DDSParameter DDS1xAD9956; |
585c60175bd5
Cleanup AD9956 DDS parameters setting code
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
28
diff
changeset
|
52 // 4xAD9912 DDS box |
585c60175bd5
Cleanup AD9956 DDS parameters setting code
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
28
diff
changeset
|
53 DDS4xAD9912_Data DDS4xAD9912; |
0 | 54 |
37 | 55 muParserHandle_t MathParser1, MathParser2, MathParser3, MathParser4, MathParser5; |
0 | 56 |
57 | |
88
9b7588cd4013
Move data acquisition into separate thread
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
87
diff
changeset
|
58 |
37 | 59 double Ndiv = 8.0; |
0 | 60 |
84
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
61 int settling = 0; |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
62 |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
63 enum { |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
64 MEASURING_N_NONE, |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
65 MEASURING_N_Lo, |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
66 MEASURING_N_Hg, |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
67 MEASURING_N_Sr, |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
68 }; |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
69 |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
70 int measuring = MEASURING_N_NONE; |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
71 |
17
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
72 enum { |
26
4bb197635664
Cleanup N1 measurement code
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
25
diff
changeset
|
73 N_MEASUREMENT_NONE, |
4bb197635664
Cleanup N1 measurement code
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
25
diff
changeset
|
74 N_MEASUREMENT_INIT, |
4bb197635664
Cleanup N1 measurement code
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
25
diff
changeset
|
75 N_MEASUREMENT_SLOPE, |
4bb197635664
Cleanup N1 measurement code
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
25
diff
changeset
|
76 N_MEASUREMENT_ADJUST_FREQ_PLUS, |
4bb197635664
Cleanup N1 measurement code
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
25
diff
changeset
|
77 N_MEASUREMENT_FREP_PLUS, |
4bb197635664
Cleanup N1 measurement code
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
25
diff
changeset
|
78 N_MEASUREMENT_ADJUST_FREQ_MINUS, |
4bb197635664
Cleanup N1 measurement code
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
25
diff
changeset
|
79 N_MEASUREMENT_FREP_MINUS, |
4bb197635664
Cleanup N1 measurement code
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
25
diff
changeset
|
80 }; |
4bb197635664
Cleanup N1 measurement code
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
25
diff
changeset
|
81 |
84
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
82 int Measuring_1 = N_MEASUREMENT_NONE; |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
83 int Measuring_2 = N_MEASUREMENT_NONE; |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
84 int Measuring_3 = N_MEASUREMENT_NONE; |
0 | 85 |
62
53dbce5f0745
Further simplification
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
61
diff
changeset
|
86 double FrequDDS1=110000000.0, FrequDDS4=110000000.0; |
84
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
87 double Slope_1=0.0, Slope_2=0.0, Slope_3=0.0, Beatslope_2=0.0; |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
88 double SlopeTime1=40.0, SlopeTime2=40.0, SlopeTime3=40.0; |
73
1dfaf5ef0352
Refactor mean and slope measurement
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
70
diff
changeset
|
89 double Ch4Slope = 0.0; |
0 | 90 |
17
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
91 double N_1=0.0, N_2=0.0, N_3=0.0; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
92 double DeltaT_1=20.0, DeltakHz_1=500.0, t1_1=0.0, t2_1=0.0, t3_1=0.0, Frepplus_1=0.0, Frepminus_1=0.0; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
93 double DeltaT_2=20.0, DeltakHz_2=500.0, t1_2=0.0, t2_2=0.0, t3_2=0.0, Frepplus_2=0.0, Frepminus_2=0.0; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
94 double DeltaT_3=20.0, DeltakHz_3=500.0, t1_3=0.0, t2_3=0.0, t3_3=0.0, Frepplus_3=0.0, Frepminus_3=0.0; |
0 | 95 |
24
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
96 int n_1=0, n_2=0, n_3=0; |
0 | 97 |
61
37075b60408b
Fix N2 measurement after cleanup. Further simplification
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
60
diff
changeset
|
98 double FrequencyDDSBesInit = 0.0; |
37075b60408b
Fix N2 measurement after cleanup. Further simplification
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
60
diff
changeset
|
99 double FrequencyDDS3Init = 0.0; |
0 | 100 |
101 double DeltaDDS3=0.0,Delta10K_Plus=0.0,Delta10K_Minus=0.0; | |
102 double Nu1=0.0, Nu2= 200000-147000+282143746.557455e6; | |
103 | |
104 double Step1=800000.0,Step2=800000.0; | |
105 | |
106 double Ch4Plus=0.0,Ch4Minus=0.0; | |
107 | |
17
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
108 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
|
109 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
|
110 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
|
111 |
0 | 112 volatile bool Getsign1=FALSE,Getsign2=FALSE,Getsign3=FALSE; |
113 double Signe1=1.0,Signe2=1.0,Signe3=0.0; | |
114 | |
37 | 115 // slope cancelling |
0 | 116 |
37 | 117 int SlopeMeasuring = FALSE; |
56
6e73fb3d94fa
Simplyfy slope measurement code
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
55
diff
changeset
|
118 int StopSlopeCancellingOnUnlocked = TRUE; |
37 | 119 double TimetoSlope = 60.0; |
120 double SlopeMeasuringTimeBegin = 0.0; | |
73
1dfaf5ef0352
Refactor mean and slope measurement
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
70
diff
changeset
|
121 double appliedSlope = 0.0; // currently applied frequency dedrifiting slope |
0 | 122 |
24
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
123 double limitotakoff=70.0; |
0 | 124 |
125 int ratio=10; //Recentre la frequence tous les ratios | |
126 | |
37 | 127 int FrequCorrec = FALSE, KeepFrequ = TRUE, KeepSlope = TRUE; |
128 int Nratio = -1; | |
1 | 129 double MoyMath2 = 0.0, CenterFrequencyCh2 = 0.0; |
37 | 130 int CenterFrequencyCh2ToDetermine = FALSE; |
0 | 131 |
2
bd7501b65f56
Implement reference selection (microwave or Hg cavity) for slope cancelling
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
1
diff
changeset
|
132 enum { |
bd7501b65f56
Implement reference selection (microwave or Hg cavity) for slope cancelling
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
1
diff
changeset
|
133 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
|
134 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
|
135 }; |
0 | 136 |
39
2e1b3148d6e6
Add setting to invert the sign of the measured slope on dedrifting
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
37
diff
changeset
|
137 int invertSlopeSign = 0; |
2
bd7501b65f56
Implement reference selection (microwave or Hg cavity) for slope cancelling
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
1
diff
changeset
|
138 int slopeReference = SLOPE_REFERENCE_MICROWAVE; |
0 | 139 |
52
30146cc6cd77
Cleanup. Remove some C abominations
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
51
diff
changeset
|
140 int KeepCentering = FALSE; |
30146cc6cd77
Cleanup. Remove some C abominations
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
51
diff
changeset
|
141 double Timetorecenter275K = 3600.0 * 10; |
30146cc6cd77
Cleanup. Remove some C abominations
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
51
diff
changeset
|
142 double Timetorecenter10K = 3600.0 * 3; |
30146cc6cd77
Cleanup. Remove some C abominations
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
51
diff
changeset
|
143 double CenteringTimeBegin275K = 0.0; |
30146cc6cd77
Cleanup. Remove some C abominations
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
51
diff
changeset
|
144 double CenteringTimeBegin10K = 0.0; |
0 | 145 |
146 | |
73
1dfaf5ef0352
Refactor mean and slope measurement
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
70
diff
changeset
|
147 struct stat { |
1dfaf5ef0352
Refactor mean and slope measurement
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
70
diff
changeset
|
148 int samples; |
1dfaf5ef0352
Refactor mean and slope measurement
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
70
diff
changeset
|
149 double mean; |
1dfaf5ef0352
Refactor mean and slope measurement
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
70
diff
changeset
|
150 double slope; |
1dfaf5ef0352
Refactor mean and slope measurement
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
70
diff
changeset
|
151 double previous; |
1dfaf5ef0352
Refactor mean and slope measurement
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
70
diff
changeset
|
152 }; |
1dfaf5ef0352
Refactor mean and slope measurement
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
70
diff
changeset
|
153 |
1dfaf5ef0352
Refactor mean and slope measurement
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
70
diff
changeset
|
154 void stat_zero(struct stat *s) |
1dfaf5ef0352
Refactor mean and slope measurement
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
70
diff
changeset
|
155 { |
1dfaf5ef0352
Refactor mean and slope measurement
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
70
diff
changeset
|
156 s->samples = 0; |
1dfaf5ef0352
Refactor mean and slope measurement
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
70
diff
changeset
|
157 s->mean = 0.0; |
1dfaf5ef0352
Refactor mean and slope measurement
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
70
diff
changeset
|
158 s->slope = 0.0; |
1dfaf5ef0352
Refactor mean and slope measurement
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
70
diff
changeset
|
159 s->previous = 0.0; |
1dfaf5ef0352
Refactor mean and slope measurement
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
70
diff
changeset
|
160 } |
1dfaf5ef0352
Refactor mean and slope measurement
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
70
diff
changeset
|
161 |
1dfaf5ef0352
Refactor mean and slope measurement
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
70
diff
changeset
|
162 void stat_accumulate(struct stat *s, double value) |
1dfaf5ef0352
Refactor mean and slope measurement
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
70
diff
changeset
|
163 { |
1dfaf5ef0352
Refactor mean and slope measurement
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
70
diff
changeset
|
164 s->samples += 1; |
1dfaf5ef0352
Refactor mean and slope measurement
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
70
diff
changeset
|
165 |
1dfaf5ef0352
Refactor mean and slope measurement
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
70
diff
changeset
|
166 if (s->samples > 1) |
1dfaf5ef0352
Refactor mean and slope measurement
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
70
diff
changeset
|
167 s->slope = (s->slope * (s->samples - 2) + 6 * (value - s->mean) / s->samples) / (s->samples + 1); |
1dfaf5ef0352
Refactor mean and slope measurement
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
70
diff
changeset
|
168 |
1dfaf5ef0352
Refactor mean and slope measurement
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
70
diff
changeset
|
169 s->mean = ((s->samples - 1) * s->mean + value) / s->samples; |
1dfaf5ef0352
Refactor mean and slope measurement
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
70
diff
changeset
|
170 |
1dfaf5ef0352
Refactor mean and slope measurement
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
70
diff
changeset
|
171 s->previous = value; |
1dfaf5ef0352
Refactor mean and slope measurement
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
70
diff
changeset
|
172 } |
1dfaf5ef0352
Refactor mean and slope measurement
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
70
diff
changeset
|
173 |
1dfaf5ef0352
Refactor mean and slope measurement
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
70
diff
changeset
|
174 struct stat stat_math1, stat_ch2, stat_ch4, freq; |
1dfaf5ef0352
Refactor mean and slope measurement
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
70
diff
changeset
|
175 |
82
47860259afe2
Implement logging
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
80
diff
changeset
|
176 #define MIN(x, y) (x) < (y) ? (x) : (y) |
47860259afe2
Implement logging
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
80
diff
changeset
|
177 |
47860259afe2
Implement logging
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
80
diff
changeset
|
178 void logmsg(const char *frmt, ...) |
47860259afe2
Implement logging
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
80
diff
changeset
|
179 { |
47860259afe2
Implement logging
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
80
diff
changeset
|
180 char msg[1024]; |
47860259afe2
Implement logging
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
80
diff
changeset
|
181 int len = 0; |
47860259afe2
Implement logging
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
80
diff
changeset
|
182 |
47860259afe2
Implement logging
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
80
diff
changeset
|
183 // timestamp |
47860259afe2
Implement logging
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
80
diff
changeset
|
184 len += sprintf(msg, "%014.3f ", utc); |
47860259afe2
Implement logging
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
80
diff
changeset
|
185 time_t now = time(NULL); |
47860259afe2
Implement logging
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
80
diff
changeset
|
186 struct tm *t = localtime(&now); |
47860259afe2
Implement logging
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
80
diff
changeset
|
187 len += strftime(msg + len, sizeof(msg) - len, "%d-%m-%Y %H:%M:%S ", t); |
47860259afe2
Implement logging
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
80
diff
changeset
|
188 |
47860259afe2
Implement logging
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
80
diff
changeset
|
189 // message |
47860259afe2
Implement logging
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
80
diff
changeset
|
190 va_list args; |
47860259afe2
Implement logging
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
80
diff
changeset
|
191 va_start(args, frmt); |
47860259afe2
Implement logging
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
80
diff
changeset
|
192 len += vsnprintf(msg + len, sizeof(msg) - len, frmt, args); |
47860259afe2
Implement logging
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
80
diff
changeset
|
193 va_end(args); |
47860259afe2
Implement logging
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
80
diff
changeset
|
194 |
47860259afe2
Implement logging
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
80
diff
changeset
|
195 // add newline |
47860259afe2
Implement logging
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
80
diff
changeset
|
196 len = MIN(len, sizeof(msg) - 2); |
47860259afe2
Implement logging
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
80
diff
changeset
|
197 msg[len] = '\n'; |
47860259afe2
Implement logging
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
80
diff
changeset
|
198 msg[len + 1] = '\0'; |
47860259afe2
Implement logging
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
80
diff
changeset
|
199 |
47860259afe2
Implement logging
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
80
diff
changeset
|
200 // display message |
84
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
201 SetCtrlVal(LoggingPanel, LOGGING_LOGGING, msg); |
82
47860259afe2
Implement logging
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
80
diff
changeset
|
202 } |
47860259afe2
Implement logging
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
80
diff
changeset
|
203 |
73
1dfaf5ef0352
Refactor mean and slope measurement
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
70
diff
changeset
|
204 |
52
30146cc6cd77
Cleanup. Remove some C abominations
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
51
diff
changeset
|
205 muParserHandle_t initMathParser() |
0 | 206 { |
52
30146cc6cd77
Cleanup. Remove some C abominations
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
51
diff
changeset
|
207 muParserHandle_t parser = mupCreate(); |
30146cc6cd77
Cleanup. Remove some C abominations
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
51
diff
changeset
|
208 mupDefineOprtChars(parser, "abcdefghijklmnopqrstuvwxyzµ" |
30146cc6cd77
Cleanup. Remove some C abominations
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
51
diff
changeset
|
209 "ABCDEFGHIJKLMNOPQRSTUVWXYZ" |
30146cc6cd77
Cleanup. Remove some C abominations
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
51
diff
changeset
|
210 "+-*^/?<>=#!$%&|~'_"); |
30146cc6cd77
Cleanup. Remove some C abominations
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
51
diff
changeset
|
211 mupDefineVar(parser, "UTC", &utc); |
30146cc6cd77
Cleanup. Remove some C abominations
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
51
diff
changeset
|
212 mupDefineVar(parser, "Ch1", &Ch1); |
30146cc6cd77
Cleanup. Remove some C abominations
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
51
diff
changeset
|
213 mupDefineVar(parser, "Ch2", &Ch2); |
30146cc6cd77
Cleanup. Remove some C abominations
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
51
diff
changeset
|
214 mupDefineVar(parser, "Ch3", &Ch3); |
30146cc6cd77
Cleanup. Remove some C abominations
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
51
diff
changeset
|
215 mupDefineVar(parser, "Ch4", &Ch4); |
30146cc6cd77
Cleanup. Remove some C abominations
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
51
diff
changeset
|
216 mupDefineVar(parser, "DDS1", &(DDS4xAD9912.Frequency1)); |
30146cc6cd77
Cleanup. Remove some C abominations
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
51
diff
changeset
|
217 mupDefineVar(parser, "DDS2", &(DDS4xAD9912.Frequency2)); |
30146cc6cd77
Cleanup. Remove some C abominations
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
51
diff
changeset
|
218 mupDefineVar(parser, "DDS3", &(DDS4xAD9912.Frequency3)); |
30146cc6cd77
Cleanup. Remove some C abominations
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
51
diff
changeset
|
219 mupDefineVar(parser, "DDS4", &(DDS4xAD9912.Frequency4)); |
30146cc6cd77
Cleanup. Remove some C abominations
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
51
diff
changeset
|
220 mupDefineVar(parser, "N1", &N1); |
30146cc6cd77
Cleanup. Remove some C abominations
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
51
diff
changeset
|
221 mupDefineVar(parser, "N2", &N2); |
30146cc6cd77
Cleanup. Remove some C abominations
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
51
diff
changeset
|
222 mupDefineVar(parser, "N3", &N3); |
30146cc6cd77
Cleanup. Remove some C abominations
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
51
diff
changeset
|
223 mupDefineVar(parser, "Nu1", &Nu1); |
30146cc6cd77
Cleanup. Remove some C abominations
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
51
diff
changeset
|
224 mupDefineVar(parser, "Nu2", &Nu2); |
30146cc6cd77
Cleanup. Remove some C abominations
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
51
diff
changeset
|
225 mupDefineVar(parser, "DeltaDDS3", &DeltaDDS3); |
30146cc6cd77
Cleanup. Remove some C abominations
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
51
diff
changeset
|
226 mupDefineVar(parser, "Signe1", &Signe1); |
30146cc6cd77
Cleanup. Remove some C abominations
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
51
diff
changeset
|
227 mupDefineVar(parser, "Signe2", &Signe2); |
30146cc6cd77
Cleanup. Remove some C abominations
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
51
diff
changeset
|
228 mupDefineVar(parser, "Ndiv", &Ndiv); |
30146cc6cd77
Cleanup. Remove some C abominations
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
51
diff
changeset
|
229 mupDefinePostfixOprt(parser, "P", &Peta, 1); |
30146cc6cd77
Cleanup. Remove some C abominations
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
51
diff
changeset
|
230 mupDefinePostfixOprt(parser, "T", &Tera, 1); |
30146cc6cd77
Cleanup. Remove some C abominations
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
51
diff
changeset
|
231 mupDefinePostfixOprt(parser, "G", &Giga, 1); |
30146cc6cd77
Cleanup. Remove some C abominations
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
51
diff
changeset
|
232 mupDefinePostfixOprt(parser, "M", &Mega, 1); |
30146cc6cd77
Cleanup. Remove some C abominations
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
51
diff
changeset
|
233 mupDefinePostfixOprt(parser, "k", &kilo, 1); |
30146cc6cd77
Cleanup. Remove some C abominations
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
51
diff
changeset
|
234 mupDefinePostfixOprt(parser, "m", &milli, 1); |
30146cc6cd77
Cleanup. Remove some C abominations
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
51
diff
changeset
|
235 mupDefinePostfixOprt(parser, "u", µ, 1); |
30146cc6cd77
Cleanup. Remove some C abominations
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
51
diff
changeset
|
236 mupDefinePostfixOprt(parser, "µ", µ, 1); |
30146cc6cd77
Cleanup. Remove some C abominations
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
51
diff
changeset
|
237 mupDefinePostfixOprt(parser, "n", &nano, 1); |
30146cc6cd77
Cleanup. Remove some C abominations
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
51
diff
changeset
|
238 mupDefinePostfixOprt(parser, "p", &pico, 1); |
30146cc6cd77
Cleanup. Remove some C abominations
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
51
diff
changeset
|
239 mupDefinePostfixOprt(parser, "f", &femto, 1); |
30146cc6cd77
Cleanup. Remove some C abominations
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
51
diff
changeset
|
240 |
30146cc6cd77
Cleanup. Remove some C abominations
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
51
diff
changeset
|
241 return parser; |
0 | 242 } |
243 | |
46
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
244 |
88
9b7588cd4013
Move data acquisition into separate thread
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
87
diff
changeset
|
245 void writeData(const char *folder, const char *name, const char *id, |
9b7588cd4013
Move data acquisition into separate thread
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
87
diff
changeset
|
246 const char *timestr, double utc, double value) |
76
5e0c314528bf
Refactor data writing to disk. Implement dayly chunking to separate files
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
75
diff
changeset
|
247 { |
5e0c314528bf
Refactor data writing to disk. Implement dayly chunking to separate files
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
75
diff
changeset
|
248 char line[1024]; |
5e0c314528bf
Refactor data writing to disk. Implement dayly chunking to separate files
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
75
diff
changeset
|
249 char filename[FILENAME_MAX]; |
5e0c314528bf
Refactor data writing to disk. Implement dayly chunking to separate files
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
75
diff
changeset
|
250 |
5e0c314528bf
Refactor data writing to disk. Implement dayly chunking to separate files
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
75
diff
changeset
|
251 // construct filename in the form folder\\id-name.txt |
5e0c314528bf
Refactor data writing to disk. Implement dayly chunking to separate files
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
75
diff
changeset
|
252 snprintf(filename, sizeof(filename), "%s\\%s-%s.txt", folder, id, name); |
5e0c314528bf
Refactor data writing to disk. Implement dayly chunking to separate files
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
75
diff
changeset
|
253 |
78
3aa1f1c18961
Fix data logging to disc. Shorten file names
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
76
diff
changeset
|
254 int fd = OpenFile(filename, VAL_WRITE_ONLY, VAL_APPEND, VAL_ASCII); |
88
9b7588cd4013
Move data acquisition into separate thread
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
87
diff
changeset
|
255 Fmt(line, "%s\t%f[p3]\t%f[p3]", timestr, utc, value); |
76
5e0c314528bf
Refactor data writing to disk. Implement dayly chunking to separate files
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
75
diff
changeset
|
256 WriteLine(fd, line, -1); |
5e0c314528bf
Refactor data writing to disk. Implement dayly chunking to separate files
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
75
diff
changeset
|
257 CloseFile(fd); |
5e0c314528bf
Refactor data writing to disk. Implement dayly chunking to separate files
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
75
diff
changeset
|
258 } |
5e0c314528bf
Refactor data writing to disk. Implement dayly chunking to separate files
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
75
diff
changeset
|
259 |
5e0c314528bf
Refactor data writing to disk. Implement dayly chunking to separate files
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
75
diff
changeset
|
260 |
88
9b7588cd4013
Move data acquisition into separate thread
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
87
diff
changeset
|
261 #define NCHAN 4 |
9b7588cd4013
Move data acquisition into separate thread
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
87
diff
changeset
|
262 #define DATA_EVENT_SIZE (NCHAN + 1) |
9b7588cd4013
Move data acquisition into separate thread
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
87
diff
changeset
|
263 #define DATA_QUEUE_SIZE (128 * DATA_EVENT_SIZE) |
9b7588cd4013
Move data acquisition into separate thread
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
87
diff
changeset
|
264 |
9b7588cd4013
Move data acquisition into separate thread
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
87
diff
changeset
|
265 void CVICALLBACK DataAvailableCB (CmtTSQHandle queueHandle, unsigned int event, |
9b7588cd4013
Move data acquisition into separate thread
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
87
diff
changeset
|
266 int value, void *callbackData); |
9b7588cd4013
Move data acquisition into separate thread
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
87
diff
changeset
|
267 |
9b7588cd4013
Move data acquisition into separate thread
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
87
diff
changeset
|
268 |
0 | 269 int main (int argc, char *argv[]) |
270 { | |
52
30146cc6cd77
Cleanup. Remove some C abominations
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
51
diff
changeset
|
271 double frequency; |
30146cc6cd77
Cleanup. Remove some C abominations
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
51
diff
changeset
|
272 char expr[1024]; |
0 | 273 |
274 if (InitCVIRTE (0, argv, 0) == 0) | |
52
30146cc6cd77
Cleanup. Remove some C abominations
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
51
diff
changeset
|
275 return -1; |
78
3aa1f1c18961
Fix data logging to disc. Shorten file names
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
76
diff
changeset
|
276 |
0 | 277 if ((MainPanel = LoadPanel (0, "FXAnalyse.uir", PANEL)) < 0) |
278 return -1; | |
84
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
279 if ((CalcNPanel = LoadPanel (MainPanel, "FXAnalyse.uir", CALCN)) < 0) |
0 | 280 return -1; |
17
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
281 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
|
282 return -1; |
84
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
283 if ((LoggingPanel = LoadPanel (0, "FXAnalyse.uir", LOGGING)) < 0) |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
284 return -1; |
0 | 285 |
29
585c60175bd5
Cleanup AD9956 DDS parameters setting code
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
28
diff
changeset
|
286 // initialize 4x AD9959 DDS box |
52
30146cc6cd77
Cleanup. Remove some C abominations
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
51
diff
changeset
|
287 DDS4xAD9912_Reset(&DDS4xAD9912); |
30146cc6cd77
Cleanup. Remove some C abominations
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
51
diff
changeset
|
288 GetCtrlVal(MainPanel, PANEL_DDS1, &frequency); |
30146cc6cd77
Cleanup. Remove some C abominations
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
51
diff
changeset
|
289 DDS4xAD9912_SetFrequency(&DDS4xAD9912, 1, frequency); |
30146cc6cd77
Cleanup. Remove some C abominations
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
51
diff
changeset
|
290 GetCtrlVal(MainPanel, PANEL_DDS2, &frequency); |
30146cc6cd77
Cleanup. Remove some C abominations
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
51
diff
changeset
|
291 DDS4xAD9912_SetFrequency(&DDS4xAD9912, 2, frequency); |
30146cc6cd77
Cleanup. Remove some C abominations
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
51
diff
changeset
|
292 GetCtrlVal(MainPanel, PANEL_DDS3, &frequency); |
30146cc6cd77
Cleanup. Remove some C abominations
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
51
diff
changeset
|
293 DDS4xAD9912_SetFrequency(&DDS4xAD9912, 3, frequency); |
30146cc6cd77
Cleanup. Remove some C abominations
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
51
diff
changeset
|
294 GetCtrlVal(MainPanel, PANEL_DDS4, &frequency); |
30146cc6cd77
Cleanup. Remove some C abominations
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
51
diff
changeset
|
295 DDS4xAD9912_SetFrequency(&DDS4xAD9912, 4, frequency); |
0 | 296 |
29
585c60175bd5
Cleanup AD9956 DDS parameters setting code
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
28
diff
changeset
|
297 // initialyze 1x AD9956 DDS box |
69
94cb4b29bb47
Use cleaned up AD9956 DDS driver functionalities
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
67
diff
changeset
|
298 DDSFox_Initialize(&DDS1xAD9956, "145.238.205.58", 6665, DEDRIFT_DDS_FREQUENCY); |
0 | 299 |
52
30146cc6cd77
Cleanup. Remove some C abominations
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
51
diff
changeset
|
300 Ch1 = Ch2 = Ch3 = Ch4 = 0.0; |
30146cc6cd77
Cleanup. Remove some C abominations
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
51
diff
changeset
|
301 |
30146cc6cd77
Cleanup. Remove some C abominations
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
51
diff
changeset
|
302 GetCtrlVal(MainPanel, PANEL_N1CHOICE, &N1); |
30146cc6cd77
Cleanup. Remove some C abominations
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
51
diff
changeset
|
303 GetCtrlVal(MainPanel, PANEL_N2CHOICE, &N2); |
30146cc6cd77
Cleanup. Remove some C abominations
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
51
diff
changeset
|
304 GetCtrlVal(MainPanel, PANEL_N3CHOICE, &N3); |
0 | 305 |
52
30146cc6cd77
Cleanup. Remove some C abominations
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
51
diff
changeset
|
306 MathParser1 = initMathParser(); |
30146cc6cd77
Cleanup. Remove some C abominations
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
51
diff
changeset
|
307 GetCtrlVal(MainPanel, PANEL_MATHSTRING1, expr); |
30146cc6cd77
Cleanup. Remove some C abominations
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
51
diff
changeset
|
308 mupSetExpr(MathParser1, expr); |
0 | 309 |
52
30146cc6cd77
Cleanup. Remove some C abominations
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
51
diff
changeset
|
310 MathParser2 = initMathParser(); |
30146cc6cd77
Cleanup. Remove some C abominations
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
51
diff
changeset
|
311 mupDefineVar(MathParser2, "Math1", &Math1); |
30146cc6cd77
Cleanup. Remove some C abominations
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
51
diff
changeset
|
312 mupDefineVar(MathParser2, "DDS", &(DDS4xAD9912.Frequency1)); |
30146cc6cd77
Cleanup. Remove some C abominations
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
51
diff
changeset
|
313 GetCtrlVal(MainPanel, PANEL_MATHSTRING2, expr); |
30146cc6cd77
Cleanup. Remove some C abominations
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
51
diff
changeset
|
314 mupSetExpr(MathParser2, expr); |
0 | 315 |
52
30146cc6cd77
Cleanup. Remove some C abominations
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
51
diff
changeset
|
316 MathParser3 = initMathParser(); |
30146cc6cd77
Cleanup. Remove some C abominations
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
51
diff
changeset
|
317 mupDefineVar(MathParser3, "Math1", &Math1); |
30146cc6cd77
Cleanup. Remove some C abominations
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
51
diff
changeset
|
318 mupDefineVar(MathParser3, "Math2", &Math2); |
30146cc6cd77
Cleanup. Remove some C abominations
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
51
diff
changeset
|
319 mupDefineVar(MathParser3, "DDS", &(DDS4xAD9912.Frequency2)); |
30146cc6cd77
Cleanup. Remove some C abominations
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
51
diff
changeset
|
320 GetCtrlVal(MainPanel, PANEL_MATHSTRING3, expr); |
30146cc6cd77
Cleanup. Remove some C abominations
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
51
diff
changeset
|
321 mupSetExpr(MathParser3, expr); |
0 | 322 |
52
30146cc6cd77
Cleanup. Remove some C abominations
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
51
diff
changeset
|
323 MathParser4 = initMathParser(); |
30146cc6cd77
Cleanup. Remove some C abominations
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
51
diff
changeset
|
324 mupDefineVar(MathParser4, "Math1", &Math1); |
30146cc6cd77
Cleanup. Remove some C abominations
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
51
diff
changeset
|
325 mupDefineVar(MathParser4, "Math2", &Math2); |
30146cc6cd77
Cleanup. Remove some C abominations
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
51
diff
changeset
|
326 mupDefineVar(MathParser4, "Math3", &Math3); |
30146cc6cd77
Cleanup. Remove some C abominations
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
51
diff
changeset
|
327 GetCtrlVal(MainPanel, PANEL_MATHSTRING4, expr); |
30146cc6cd77
Cleanup. Remove some C abominations
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
51
diff
changeset
|
328 mupSetExpr(MathParser4, expr); |
0 | 329 |
52
30146cc6cd77
Cleanup. Remove some C abominations
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
51
diff
changeset
|
330 MathParser5 = initMathParser(); |
30146cc6cd77
Cleanup. Remove some C abominations
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
51
diff
changeset
|
331 mupDefineVar(MathParser5, "Math1", &Math1); |
30146cc6cd77
Cleanup. Remove some C abominations
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
51
diff
changeset
|
332 mupDefineVar(MathParser5, "Math2", &Math2); |
30146cc6cd77
Cleanup. Remove some C abominations
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
51
diff
changeset
|
333 mupDefineVar(MathParser5, "Math3", &Math3); |
30146cc6cd77
Cleanup. Remove some C abominations
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
51
diff
changeset
|
334 mupDefineVar(MathParser5, "Math4", &Math4); |
30146cc6cd77
Cleanup. Remove some C abominations
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
51
diff
changeset
|
335 GetCtrlVal(MainPanel, PANEL_MATHSTRING5, expr); |
30146cc6cd77
Cleanup. Remove some C abominations
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
51
diff
changeset
|
336 mupSetExpr(MathParser5, expr); |
88
9b7588cd4013
Move data acquisition into separate thread
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
87
diff
changeset
|
337 |
9b7588cd4013
Move data acquisition into separate thread
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
87
diff
changeset
|
338 // data queue |
9b7588cd4013
Move data acquisition into separate thread
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
87
diff
changeset
|
339 CmtNewTSQ(DATA_QUEUE_SIZE, sizeof(double), 0, &dataQueue); |
9b7588cd4013
Move data acquisition into separate thread
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
87
diff
changeset
|
340 |
9b7588cd4013
Move data acquisition into separate thread
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
87
diff
changeset
|
341 // register callback to execute when data will be in the data queue |
9b7588cd4013
Move data acquisition into separate thread
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
87
diff
changeset
|
342 CmtInstallTSQCallback(dataQueue, EVENT_TSQ_ITEMS_IN_QUEUE, DATA_EVENT_SIZE, |
9b7588cd4013
Move data acquisition into separate thread
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
87
diff
changeset
|
343 DataAvailableCB, NULL, CmtGetCurrentThreadID(), NULL); |
9b7588cd4013
Move data acquisition into separate thread
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
87
diff
changeset
|
344 |
9b7588cd4013
Move data acquisition into separate thread
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
87
diff
changeset
|
345 DisplayPanel(MainPanel); |
0 | 346 |
52
30146cc6cd77
Cleanup. Remove some C abominations
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
51
diff
changeset
|
347 RunUserInterface(); |
0 | 348 |
52
30146cc6cd77
Cleanup. Remove some C abominations
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
51
diff
changeset
|
349 DiscardPanel(MainPanel); |
0 | 350 return 0; |
351 } | |
352 | |
353 | |
354 void OnCloseViewPanel(int panel){ | |
355 | |
356 if (panel==PlotCh1.PlotPanel) { SetCtrlVal(MainPanel,PANEL_CHECKBOX_FREQ1PLOT, FALSE) ; } ; | |
357 if (panel==PlotCh2.PlotPanel) { SetCtrlVal(MainPanel,PANEL_CHECKBOX_FREQ2PLOT, FALSE) ; } ; | |
358 if (panel==PlotCh3.PlotPanel) { SetCtrlVal(MainPanel,PANEL_CHECKBOX_FREQ3PLOT, FALSE) ; } ; | |
359 if (panel==PlotCh4.PlotPanel) { SetCtrlVal(MainPanel,PANEL_CHECKBOX_FREQ4PLOT, FALSE) ; } ; | |
360 if (panel==PlotMath1.PlotPanel) { SetCtrlVal(MainPanel,PANEL_CHECKBOX_MATH1PLOT, FALSE) ; } ; | |
361 if (panel==PlotMath2.PlotPanel) { SetCtrlVal(MainPanel,PANEL_CHECKBOX_MATH2PLOT, FALSE) ; } ; | |
362 if (panel==PlotMath3.PlotPanel) { SetCtrlVal(MainPanel,PANEL_CHECKBOX_MATH3PLOT, FALSE) ; } ; | |
363 if (panel==PlotMath4.PlotPanel) { SetCtrlVal(MainPanel,PANEL_CHECKBOX_MATH4PLOT, FALSE) ; } ; | |
364 if (panel==PlotMath5.PlotPanel) { SetCtrlVal(MainPanel,PANEL_CHECKBOX_MATH5PLOT, FALSE) ; } ; | |
365 | |
366 if (panel==AllanCh1.AllanPanel) { SetCtrlVal(MainPanel,PANEL_CHECKBOX_FREQ1ALLAN, FALSE) ; } ; | |
367 if (panel==AllanCh2.AllanPanel) { SetCtrlVal(MainPanel,PANEL_CHECKBOX_FREQ2ALLAN, FALSE) ; } ; | |
368 if (panel==AllanCh3.AllanPanel) { SetCtrlVal(MainPanel,PANEL_CHECKBOX_FREQ3ALLAN, FALSE) ; } ; | |
369 if (panel==AllanCh4.AllanPanel) { SetCtrlVal(MainPanel,PANEL_CHECKBOX_FREQ4ALLAN, FALSE) ; } ; | |
370 if (panel==AllanMath1.AllanPanel) { SetCtrlVal(MainPanel,PANEL_CHECKBOX_MATH1ALLAN, FALSE) ; } ; | |
371 if (panel==AllanMath2.AllanPanel) { SetCtrlVal(MainPanel,PANEL_CHECKBOX_MATH2ALLAN, FALSE) ; } ; | |
372 if (panel==AllanMath3.AllanPanel) { SetCtrlVal(MainPanel,PANEL_CHECKBOX_MATH3ALLAN, FALSE) ; } ; | |
373 if (panel==AllanMath4.AllanPanel) { SetCtrlVal(MainPanel,PANEL_CHECKBOX_MATH4ALLAN, FALSE) ; } ; | |
374 if (panel==AllanMath5.AllanPanel) { SetCtrlVal(MainPanel,PANEL_CHECKBOX_MATH5ALLAN, FALSE) ; } ; | |
375 | |
376 return ; | |
377 } | |
378 | |
379 int CVICALLBACK QuitCallback (int panel, int control, int event, | |
380 void *callbackData, int eventData1, int eventData2) | |
381 { | |
382 switch (event) | |
40
50544ecfcfc7
Handle application quit just once
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
39
diff
changeset
|
383 { |
0 | 384 case EVENT_COMMIT: |
52
30146cc6cd77
Cleanup. Remove some C abominations
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
51
diff
changeset
|
385 QuitUserInterface(0); |
0 | 386 mupRelease(MathParser1); |
387 mupRelease(MathParser2); | |
388 mupRelease(MathParser3); | |
389 mupRelease(MathParser4); | |
390 mupRelease(MathParser5); | |
391 break; | |
40
50544ecfcfc7
Handle application quit just once
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
39
diff
changeset
|
392 } |
0 | 393 return 0; |
394 } | |
395 | |
84
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
396 int CVICALLBACK CB_OnEventMain(int panel, int event, |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
397 void *callbackData, int eventData1, int eventData2) |
0 | 398 { |
399 int ActiveControl ; | |
400 int StepIndex ; | |
401 double Step ; | |
402 | |
403 switch (event) { | |
404 case EVENT_KEYPRESS: | |
405 switch (eventData1) // ie the code of the key which has been stroke | |
406 { | |
407 case VAL_RIGHT_ARROW_VKEY : | |
408 ActiveControl = GetActiveCtrl(panel); | |
409 if (ActiveControl==PANEL_DDS1 || ActiveControl==PANEL_DDS1STEP) { | |
410 GetCtrlIndex(MainPanel, PANEL_DDS1STEP, &StepIndex); | |
411 if (StepIndex<14){ | |
412 SetCtrlIndex(MainPanel, PANEL_DDS1STEP, ++StepIndex) ; | |
413 GetCtrlVal(MainPanel, PANEL_DDS1STEP, &Step); | |
414 SetCtrlAttribute(MainPanel, PANEL_DDS1, ATTR_INCR_VALUE, Step) ; | |
415 }; | |
416 }; | |
417 if (ActiveControl==PANEL_DDS2 || ActiveControl==PANEL_DDS2STEP) { | |
418 GetCtrlIndex(MainPanel, PANEL_DDS2STEP, &StepIndex); | |
419 if (StepIndex<14){ | |
420 SetCtrlIndex(MainPanel, PANEL_DDS2STEP, ++StepIndex) ; | |
421 GetCtrlVal(MainPanel, PANEL_DDS2STEP, &Step); | |
422 SetCtrlAttribute(MainPanel, PANEL_DDS2, ATTR_INCR_VALUE, Step) ; | |
423 }; | |
424 }; | |
425 if (ActiveControl==PANEL_DDS3|| ActiveControl==PANEL_DDS3STEP) { | |
426 GetCtrlIndex(MainPanel, PANEL_DDS3STEP, &StepIndex); | |
427 if (StepIndex<14){ | |
428 SetCtrlIndex(MainPanel, PANEL_DDS3STEP, ++StepIndex) ; | |
429 GetCtrlVal(MainPanel, PANEL_DDS3STEP, &Step); | |
430 SetCtrlAttribute(MainPanel, PANEL_DDS3, ATTR_INCR_VALUE, Step) ; | |
431 }; | |
432 }; | |
433 if (ActiveControl==PANEL_DDS4|| ActiveControl==PANEL_DDS4STEP) { | |
434 GetCtrlIndex(MainPanel, PANEL_DDS4STEP, &StepIndex); | |
435 if (StepIndex<14){ | |
436 SetCtrlIndex(MainPanel, PANEL_DDS4STEP, ++StepIndex) ; | |
437 GetCtrlVal(MainPanel, PANEL_DDS4STEP, &Step); | |
438 SetCtrlAttribute(MainPanel, PANEL_DDS4, ATTR_INCR_VALUE, Step) ; | |
439 }; | |
440 }; | |
441 break; | |
442 case VAL_LEFT_ARROW_VKEY : | |
443 ActiveControl = GetActiveCtrl(panel); | |
444 if (ActiveControl==PANEL_DDS1 || ActiveControl==PANEL_DDS1STEP) { | |
445 GetCtrlIndex(MainPanel, PANEL_DDS1STEP, &StepIndex); | |
446 if (StepIndex>0){ | |
447 SetCtrlIndex(MainPanel, PANEL_DDS1STEP, --StepIndex) ; | |
448 GetCtrlVal(MainPanel, PANEL_DDS1STEP, &Step); | |
449 SetCtrlAttribute(MainPanel, PANEL_DDS1, ATTR_INCR_VALUE, Step) ; | |
450 }; | |
451 }; | |
452 if (ActiveControl==PANEL_DDS2 || ActiveControl==PANEL_DDS2STEP) { | |
453 GetCtrlIndex(MainPanel, PANEL_DDS2STEP, &StepIndex); | |
454 if (StepIndex>0){ | |
455 SetCtrlIndex(MainPanel, PANEL_DDS2STEP, --StepIndex) ; | |
456 GetCtrlVal(MainPanel, PANEL_DDS2STEP, &Step); | |
457 SetCtrlAttribute(MainPanel, PANEL_DDS2, ATTR_INCR_VALUE, Step) ; | |
458 }; | |
459 }; | |
460 if (ActiveControl==PANEL_DDS3 || ActiveControl==PANEL_DDS3STEP) { | |
461 GetCtrlIndex(MainPanel, PANEL_DDS3STEP, &StepIndex); | |
462 if (StepIndex>0){ | |
463 SetCtrlIndex(MainPanel, PANEL_DDS3STEP, --StepIndex) ; | |
464 GetCtrlVal(MainPanel, PANEL_DDS3STEP, &Step); | |
465 SetCtrlAttribute(MainPanel, PANEL_DDS3, ATTR_INCR_VALUE, Step) ; | |
466 }; | |
467 }; | |
468 if (ActiveControl==PANEL_DDS4 || ActiveControl==PANEL_DDS4STEP) { | |
469 GetCtrlIndex(MainPanel, PANEL_DDS4STEP, &StepIndex); | |
470 if (StepIndex>0){ | |
471 SetCtrlIndex(MainPanel, PANEL_DDS4STEP, --StepIndex) ; | |
472 GetCtrlVal(MainPanel, PANEL_DDS4STEP, &Step); | |
473 SetCtrlAttribute(MainPanel, PANEL_DDS4, ATTR_INCR_VALUE, Step) ; | |
474 }; | |
475 }; | |
476 break; | |
477 case VAL_F2_VKEY : | |
478 SetActiveCtrl(MainPanel, PANEL_DDS1); | |
479 break; | |
480 case VAL_F3_VKEY : | |
481 SetActiveCtrl(MainPanel, PANEL_DDS2); | |
482 break; | |
483 case VAL_F4_VKEY : | |
484 SetActiveCtrl(MainPanel, PANEL_DDS3); | |
485 break; | |
486 case VAL_F5_VKEY : | |
487 SetActiveCtrl(MainPanel, PANEL_DDS4); | |
488 break; | |
489 }; | |
490 break; | |
491 | |
492 } | |
493 return 0; | |
494 } | |
495 | |
25
fde495ba28d2
Correct DDS3 frequency adjustement on N3 measurement. Cleanup
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
24
diff
changeset
|
496 |
0 | 497 int CVICALLBACK CB_OnStart (int panel, int control, int event, |
498 void *callbackData, int eventData1, int eventData2) | |
499 { | |
500 switch (event) | |
20
3a7f088d4960
Get rid of unused variables. Some minor coding style improvements
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
17
diff
changeset
|
501 { |
0 | 502 case EVENT_COMMIT: |
88
9b7588cd4013
Move data acquisition into separate thread
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
87
diff
changeset
|
503 if (acquiring) |
9b7588cd4013
Move data acquisition into separate thread
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
87
diff
changeset
|
504 break; |
82
47860259afe2
Implement logging
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
80
diff
changeset
|
505 |
47860259afe2
Implement logging
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
80
diff
changeset
|
506 logmsg("Start"); |
88
9b7588cd4013
Move data acquisition into separate thread
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
87
diff
changeset
|
507 acquiring = 1; |
82
47860259afe2
Implement logging
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
80
diff
changeset
|
508 |
88
9b7588cd4013
Move data acquisition into separate thread
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
87
diff
changeset
|
509 // start data provider thread |
9b7588cd4013
Move data acquisition into separate thread
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
87
diff
changeset
|
510 CmtScheduleThreadPoolFunctionAdv( |
9b7588cd4013
Move data acquisition into separate thread
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
87
diff
changeset
|
511 DEFAULT_THREAD_POOL_HANDLE, DataProvider, NULL, |
9b7588cd4013
Move data acquisition into separate thread
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
87
diff
changeset
|
512 THREAD_PRIORITY_HIGHEST, NULL, 0, NULL, 0, &dataProviderThread); |
9b7588cd4013
Move data acquisition into separate thread
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
87
diff
changeset
|
513 |
0 | 514 break; |
82
47860259afe2
Implement logging
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
80
diff
changeset
|
515 } |
0 | 516 return 0; |
517 } | |
518 | |
519 int CVICALLBACK CB_OnStop (int panel, int control, int event, | |
520 void *callbackData, int eventData1, int eventData2) | |
521 { | |
52
30146cc6cd77
Cleanup. Remove some C abominations
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
51
diff
changeset
|
522 switch (event) { |
0 | 523 case EVENT_COMMIT: |
88
9b7588cd4013
Move data acquisition into separate thread
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
87
diff
changeset
|
524 if (! acquiring) |
9b7588cd4013
Move data acquisition into separate thread
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
87
diff
changeset
|
525 break; |
9b7588cd4013
Move data acquisition into separate thread
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
87
diff
changeset
|
526 |
9b7588cd4013
Move data acquisition into separate thread
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
87
diff
changeset
|
527 logmsg("Stop"); |
9b7588cd4013
Move data acquisition into separate thread
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
87
diff
changeset
|
528 acquiring = 0; |
9b7588cd4013
Move data acquisition into separate thread
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
87
diff
changeset
|
529 |
9b7588cd4013
Move data acquisition into separate thread
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
87
diff
changeset
|
530 // wait for data provider thread to terminate |
9b7588cd4013
Move data acquisition into separate thread
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
87
diff
changeset
|
531 CmtWaitForThreadPoolFunctionCompletion( |
9b7588cd4013
Move data acquisition into separate thread
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
87
diff
changeset
|
532 DEFAULT_THREAD_POOL_HANDLE, dataProviderThread, |
9b7588cd4013
Move data acquisition into separate thread
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
87
diff
changeset
|
533 OPT_TP_PROCESS_EVENTS_WHILE_WAITING); |
9b7588cd4013
Move data acquisition into separate thread
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
87
diff
changeset
|
534 CmtReleaseThreadPoolFunctionID( |
9b7588cd4013
Move data acquisition into separate thread
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
87
diff
changeset
|
535 DEFAULT_THREAD_POOL_HANDLE, dataProviderThread); |
9b7588cd4013
Move data acquisition into separate thread
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
87
diff
changeset
|
536 |
0 | 537 break; |
52
30146cc6cd77
Cleanup. Remove some C abominations
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
51
diff
changeset
|
538 } |
0 | 539 return 0; |
540 } | |
541 | |
88
9b7588cd4013
Move data acquisition into separate thread
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
87
diff
changeset
|
542 |
9b7588cd4013
Move data acquisition into separate thread
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
87
diff
changeset
|
543 void CVICALLBACK DataAvailableCB (CmtTSQHandle queueHandle, unsigned int event, |
9b7588cd4013
Move data acquisition into separate thread
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
87
diff
changeset
|
544 int value, void *callbackData) |
0 | 545 { |
88
9b7588cd4013
Move data acquisition into separate thread
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
87
diff
changeset
|
546 double data[DATA_EVENT_SIZE]; |
9b7588cd4013
Move data acquisition into separate thread
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
87
diff
changeset
|
547 int BoxChecked = FALSE; |
9b7588cd4013
Move data acquisition into separate thread
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
87
diff
changeset
|
548 int read; |
0 | 549 |
56
6e73fb3d94fa
Simplyfy slope measurement code
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
55
diff
changeset
|
550 switch (event) { |
88
9b7588cd4013
Move data acquisition into separate thread
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
87
diff
changeset
|
551 case EVENT_TSQ_ITEMS_IN_QUEUE: |
9b7588cd4013
Move data acquisition into separate thread
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
87
diff
changeset
|
552 /* read data from the data queue */ |
9b7588cd4013
Move data acquisition into separate thread
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
87
diff
changeset
|
553 while (value >= DATA_EVENT_SIZE) { |
44
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
554 |
88
9b7588cd4013
Move data acquisition into separate thread
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
87
diff
changeset
|
555 read = CmtReadTSQData(queueHandle, data, DATA_EVENT_SIZE, TSQ_INFINITE_TIMEOUT, 0); |
9b7588cd4013
Move data acquisition into separate thread
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
87
diff
changeset
|
556 if (read != DATA_EVENT_SIZE) |
9b7588cd4013
Move data acquisition into separate thread
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
87
diff
changeset
|
557 logmsg("Error!"); |
9b7588cd4013
Move data acquisition into separate thread
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
87
diff
changeset
|
558 value = value - read; |
9b7588cd4013
Move data acquisition into separate thread
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
87
diff
changeset
|
559 |
9b7588cd4013
Move data acquisition into separate thread
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
87
diff
changeset
|
560 utc = data[0]; |
9b7588cd4013
Move data acquisition into separate thread
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
87
diff
changeset
|
561 Ch1 = data[1]; |
9b7588cd4013
Move data acquisition into separate thread
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
87
diff
changeset
|
562 Ch2 = data[2]; |
9b7588cd4013
Move data acquisition into separate thread
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
87
diff
changeset
|
563 Ch3 = data[3]; |
9b7588cd4013
Move data acquisition into separate thread
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
87
diff
changeset
|
564 Ch4 = data[4]; |
9b7588cd4013
Move data acquisition into separate thread
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
87
diff
changeset
|
565 |
44
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
566 SetCtrlVal(MainPanel, PANEL_UTC, utc); |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
567 SetCtrlVal(MainPanel, PANEL_FREQ1, Ch1); |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
568 SetCtrlVal(MainPanel, PANEL_FREQ2, Ch2); |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
569 SetCtrlVal(MainPanel, PANEL_FREQ3, Ch3); |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
570 SetCtrlVal(MainPanel, PANEL_FREQ4, Ch4); |
54
73e23c879d6e
Do not update beatnote sign indicators at each time tick
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
53
diff
changeset
|
571 |
46
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
572 SetCtrlVal(MainPanel, PANEL_CENTERFREQUENCY, CenterFrequencyCh2); |
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
573 |
44
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
574 // Treat data |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
575 |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
576 Math1 = mupEval(MathParser1); |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
577 SetCtrlVal(MainPanel,PANEL_MATH1, Math1); |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
578 |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
579 Math2 = mupEval(MathParser2); |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
580 SetCtrlVal(MainPanel,PANEL_MATH2, Math2); |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
581 |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
582 Math3 = mupEval(MathParser3); |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
583 SetCtrlVal(MainPanel,PANEL_MATH3, Math3); |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
584 |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
585 Math4 = mupEval(MathParser4); |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
586 SetCtrlVal(MainPanel,PANEL_MATH4, Math4); |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
587 |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
588 Math5 = mupEval(MathParser5); |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
589 SetCtrlVal(MainPanel,PANEL_MATH5, Math5); |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
590 |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
591 // Plot Data and calculus if required |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
592 |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
593 GetCtrlVal(MainPanel, PANEL_CHECKBOX_FREQ1PLOT, &BoxChecked); |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
594 if (BoxChecked) { |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
595 Plot_AddFrequency(&PlotCh1, Ch1); |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
596 } |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
597 GetCtrlVal(MainPanel, PANEL_CHECKBOX_FREQ1ALLAN, &BoxChecked); |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
598 if (BoxChecked) { |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
599 Allan_AddFrequency(&AllanCh1, Ch1); |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
600 } |
0 | 601 |
44
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
602 GetCtrlVal(MainPanel, PANEL_CHECKBOX_FREQ2PLOT, &BoxChecked); |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
603 if (BoxChecked) { |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
604 Plot_AddFrequency(&PlotCh2, Ch2); |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
605 } |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
606 GetCtrlVal(MainPanel, PANEL_CHECKBOX_FREQ2ALLAN, &BoxChecked); |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
607 if (BoxChecked) { |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
608 Allan_AddFrequency(&AllanCh2, Ch2); |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
609 } |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
610 |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
611 GetCtrlVal(MainPanel, PANEL_CHECKBOX_FREQ3PLOT, &BoxChecked); |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
612 if (BoxChecked) { |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
613 Plot_AddFrequency(&PlotCh3, Ch3); |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
614 } |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
615 GetCtrlVal(MainPanel, PANEL_CHECKBOX_FREQ3ALLAN, &BoxChecked); |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
616 if (BoxChecked) { |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
617 Allan_AddFrequency(&AllanCh3, Ch3); |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
618 } |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
619 |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
620 GetCtrlVal(MainPanel, PANEL_CHECKBOX_FREQ4PLOT, &BoxChecked); |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
621 if (BoxChecked) { |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
622 Plot_AddFrequency(&PlotCh4, Ch4); |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
623 } |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
624 GetCtrlVal(MainPanel, PANEL_CHECKBOX_FREQ4ALLAN, &BoxChecked); |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
625 if (BoxChecked) { |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
626 Allan_AddFrequency(&AllanCh4, Ch4); |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
627 } |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
628 |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
629 GetCtrlVal(MainPanel, PANEL_CHECKBOX_MATH1PLOT, &BoxChecked); |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
630 if (BoxChecked) { |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
631 Plot_AddFrequency(&PlotMath1, Math1); |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
632 } |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
633 GetCtrlVal(MainPanel, PANEL_CHECKBOX_MATH1ALLAN, &BoxChecked); |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
634 if (BoxChecked) { |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
635 Allan_AddFrequency(&AllanMath1, Math1); |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
636 } |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
637 |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
638 GetCtrlVal(MainPanel, PANEL_CHECKBOX_MATH2PLOT, &BoxChecked); |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
639 if (BoxChecked) { |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
640 Plot_AddFrequency(&PlotMath2, Math2); |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
641 } |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
642 GetCtrlVal(MainPanel, PANEL_CHECKBOX_MATH2ALLAN, &BoxChecked); |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
643 if (BoxChecked) { |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
644 Allan_AddFrequency(&AllanMath2, Math2); |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
645 } |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
646 |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
647 GetCtrlVal(MainPanel, PANEL_CHECKBOX_MATH3PLOT, &BoxChecked); |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
648 if (BoxChecked) { |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
649 Plot_AddFrequency(&PlotMath3, Math3); |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
650 } |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
651 GetCtrlVal(MainPanel, PANEL_CHECKBOX_MATH3ALLAN, &BoxChecked); |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
652 if (BoxChecked) { |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
653 Allan_AddFrequency(&AllanMath3, Math3); |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
654 } |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
655 |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
656 GetCtrlVal(MainPanel, PANEL_CHECKBOX_MATH4PLOT, &BoxChecked); |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
657 if (BoxChecked) { |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
658 Plot_AddFrequency(&PlotMath4, Math4); |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
659 } |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
660 GetCtrlVal(MainPanel, PANEL_CHECKBOX_MATH4ALLAN, &BoxChecked); |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
661 if (BoxChecked) { |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
662 Allan_AddFrequency(&AllanMath4, Math4); |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
663 } |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
664 |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
665 GetCtrlVal(MainPanel, PANEL_CHECKBOX_MATH5PLOT, &BoxChecked); |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
666 if (BoxChecked) { |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
667 Plot_AddFrequency(&PlotMath5, Math5); |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
668 } |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
669 GetCtrlVal(MainPanel, PANEL_CHECKBOX_MATH5ALLAN, &BoxChecked); |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
670 if (BoxChecked) { |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
671 Allan_AddFrequency(&AllanMath5, Math5); |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
672 } |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
673 |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
674 // Calcul de N |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
675 |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
676 switch (Measuring_1) { |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
677 |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
678 case N_MEASUREMENT_NONE: |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
679 // not measuring |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
680 break; |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
681 |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
682 case N_MEASUREMENT_INIT: |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
683 // initialization step |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
684 |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
685 // set DDS1 to nominal frequency |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
686 SetCtrlVal(MainPanel, PANEL_DDS1, FrequDDS1); |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
687 DDS4xAD9912_SetFrequency(&DDS4xAD9912, 1, FrequDDS1); |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
688 |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
689 GetCtrlVal(MainPanel, PANEL_DDS2, &FrequencyDDSBesInit); |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
690 t2_1 = t3_1 = 0.0; |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
691 t1_1 = utc; |
73
1dfaf5ef0352
Refactor mean and slope measurement
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
70
diff
changeset
|
692 |
1dfaf5ef0352
Refactor mean and slope measurement
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
70
diff
changeset
|
693 stat_zero(&stat_math1); |
1dfaf5ef0352
Refactor mean and slope measurement
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
70
diff
changeset
|
694 stat_zero(&stat_ch4); |
44
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
695 |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
696 // next step |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
697 Measuring_1 += 1; |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
698 break; |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
699 |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
700 case N_MEASUREMENT_SLOPE: |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
701 // slope measurement |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
702 |
73
1dfaf5ef0352
Refactor mean and slope measurement
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
70
diff
changeset
|
703 stat_accumulate(&stat_math1, Math1); |
1dfaf5ef0352
Refactor mean and slope measurement
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
70
diff
changeset
|
704 stat_accumulate(&stat_ch4, Ch4); |
44
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
705 |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
706 if ((utc - t1_1) > SlopeTime1) { |
73
1dfaf5ef0352
Refactor mean and slope measurement
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
70
diff
changeset
|
707 Slope_1 = stat_math1.slope; |
1dfaf5ef0352
Refactor mean and slope measurement
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
70
diff
changeset
|
708 Ch4Slope = stat_ch4.slope; |
84
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
709 SetCtrlVal(CalcNPanel, CALCN_SLOPE, Slope_1); |
44
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
710 |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
711 // frep positive step |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
712 DDS4xAD9912_FrequencyRampe(&DDS4xAD9912,1, FrequDDS1,(FrequDDS1+DeltakHz_1*1000), Step1/Ndiv); |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
713 SetCtrlVal(MainPanel, PANEL_DDS1, (FrequDDS1+DeltakHz_1*1000)); |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
714 DDS4xAD9912_SetFrequency(&DDS4xAD9912, 1, (FrequDDS1+DeltakHz_1*1000)); |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
715 |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
716 // allow counter to settle |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
717 settling = 3; |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
718 |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
719 // next step |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
720 Measuring_1 += 1; |
46
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
721 } |
44
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
722 break; |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
723 |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
724 case N_MEASUREMENT_ADJUST_FREQ_PLUS: |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
725 case N_MEASUREMENT_ADJUST_FREQ_MINUS: |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
726 // adjust DDS frequency to keep beatnote within the bandpass filter |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
727 |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
728 if (settling > 0) { |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
729 settling--; |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
730 break; |
26
4bb197635664
Cleanup N1 measurement code
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
25
diff
changeset
|
731 } |
0 | 732 |
44
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
733 double fDDS2; |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
734 GetCtrlVal(MainPanel, PANEL_DDS2, &fDDS2); |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
735 fDDS2 += 275000 - Ch4; |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
736 SetCtrlVal(MainPanel, PANEL_DDS2, fDDS2); |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
737 DDS4xAD9912_SetFrequency(&DDS4xAD9912, 2, fDDS2); |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
738 |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
739 // allow counter to settle |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
740 settling = 3; |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
741 |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
742 // next step |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
743 Measuring_1 += 1; |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
744 break; |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
745 |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
746 case N_MEASUREMENT_FREP_PLUS: |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
747 // frep positive step |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
748 |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
749 if (settling > 0) { |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
750 settling--; |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
751 break; |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
752 } |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
753 |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
754 if (t2_1 == 0.0) |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
755 t2_1 = utc; |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
756 |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
757 Frepplus_1 = Frepplus_1 + Math1 - Slope_1 * (utc - t2_1); |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
758 Ch4Plus = Ch4Plus + Ch4 - Ch4Slope * (utc - t2_1); |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
759 n_1 += 1; |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
760 |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
761 if ((utc - t2_1) > DeltaT_1) { |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
762 Frepplus_1 = Frepplus_1 / n_1; |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
763 Ch4Plus = Ch4Plus / n_1; |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
764 n_1 = 0; |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
765 |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
766 // frep negative step |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
767 DDS4xAD9912_FrequencyRampe(&DDS4xAD9912,1, (FrequDDS1+DeltakHz_1*1000),(FrequDDS1-DeltakHz_1*1000), Step1/Ndiv); |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
768 SetCtrlVal(MainPanel, PANEL_DDS1, (FrequDDS1-DeltakHz_1*1000)); |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
769 DDS4xAD9912_SetFrequency(&DDS4xAD9912, 1, (FrequDDS1-DeltakHz_1*1000)); |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
770 |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
771 // allow counter to settle |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
772 settling = 3; |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
773 |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
774 // next step |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
775 Measuring_1 += 1; |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
776 } |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
777 break; |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
778 |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
779 case N_MEASUREMENT_FREP_MINUS: |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
780 // frep negative step |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
781 |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
782 if (settling > 0) { |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
783 settling--; |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
784 break; |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
785 } |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
786 |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
787 if (t3_1 == 0.0) |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
788 t3_1 = utc; |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
789 |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
790 Frepminus_1 = Frepminus_1 + Math1 - Slope_1 * (utc - t3_1); |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
791 Ch4Minus = Ch4Minus + Ch4 - Ch4Slope * (utc - t3_1); |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
792 n_1 += 1; |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
793 |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
794 if ((utc - t3_1) > DeltaT_1) { |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
795 Frepminus_1 = Frepminus_1 / n_1; |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
796 Ch4Minus = Ch4Minus / n_1; |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
797 n_1 = 0; |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
798 |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
799 // compute N1 |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
800 N_1 = Signe1 * (2*Ndiv * DeltakHz_1 * 1000)/(Frepminus_1 - Frepplus_1 - Slope_1 * (t3_1 - t2_1)); |
84
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
801 SetCtrlVal(CalcNPanel, CALCN_N, N_1); |
44
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
802 |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
803 t1_1 = 0.0; |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
804 t2_1 = 0.0; |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
805 t3_1 = 0.0; |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
806 Frepminus_1 = 0.0; |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
807 Frepplus_1 = 0.0; |
0 | 808 |
44
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
809 // back to nominal frep |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
810 DDS4xAD9912_FrequencyRampe(&DDS4xAD9912, 1, FrequDDS1-DeltakHz_1*1000,FrequDDS1, Step1/Ndiv ); |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
811 SetCtrlVal(MainPanel, PANEL_DDS1, FrequDDS1); |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
812 DDS4xAD9912_SetFrequency(&DDS4xAD9912, 1, FrequDDS1); |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
813 SetCtrlVal(MainPanel, PANEL_DDS2, FrequencyDDSBesInit); |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
814 DDS4xAD9912_SetFrequency(&DDS4xAD9912, 2, FrequencyDDSBesInit); |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
815 |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
816 // done |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
817 Measuring_1 = N_MEASUREMENT_NONE; |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
818 } |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
819 break; |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
820 } |
46
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
821 |
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
822 switch (Measuring_2) { |
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
823 |
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
824 case N_MEASUREMENT_NONE: |
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
825 // not measuring |
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
826 break; |
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
827 |
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
828 case N_MEASUREMENT_INIT: |
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
829 // initialization step |
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
830 |
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
831 // set DDS1 to nominal frequency |
44
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
832 SetCtrlVal(MainPanel, PANEL_DDS1, FrequDDS1); |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
833 DDS4xAD9912_SetFrequency(&DDS4xAD9912, 1, FrequDDS1); |
0 | 834 |
44
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
835 GetCtrlVal(MainPanel, PANEL_DDS2, &FrequencyDDSBesInit); |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
836 GetCtrlVal(MainPanel, PANEL_DDS3, &FrequencyDDS3Init); |
46
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
837 t1_2 = utc; |
73
1dfaf5ef0352
Refactor mean and slope measurement
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
70
diff
changeset
|
838 |
1dfaf5ef0352
Refactor mean and slope measurement
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
70
diff
changeset
|
839 stat_zero(&stat_math1); |
1dfaf5ef0352
Refactor mean and slope measurement
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
70
diff
changeset
|
840 stat_zero(&stat_ch2); |
1dfaf5ef0352
Refactor mean and slope measurement
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
70
diff
changeset
|
841 |
46
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
842 Nu1 = N1 * (250000000 + Math1); |
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
843 |
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
844 // next step |
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
845 Measuring_2 += 1; |
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
846 break; |
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
847 |
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
848 case N_MEASUREMENT_SLOPE: |
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
849 // slope measurement |
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
850 |
73
1dfaf5ef0352
Refactor mean and slope measurement
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
70
diff
changeset
|
851 stat_accumulate(&stat_math1, Math1); |
1dfaf5ef0352
Refactor mean and slope measurement
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
70
diff
changeset
|
852 stat_accumulate(&stat_ch2, Ch2); |
46
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
853 |
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
854 if ((utc - t1_2) > SlopeTime2) { |
73
1dfaf5ef0352
Refactor mean and slope measurement
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
70
diff
changeset
|
855 Slope_2 = stat_math1.slope; |
1dfaf5ef0352
Refactor mean and slope measurement
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
70
diff
changeset
|
856 Beatslope_2 = stat_ch2.slope; |
84
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
857 SetCtrlVal(CalcNPanel, CALCN_SLOPE, Beatslope_2); |
46
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
858 |
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
859 // frep positive step |
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
860 double fDDS1 = FrequDDS1 + DeltakHz_2 * 1000; |
61
37075b60408b
Fix N2 measurement after cleanup. Further simplification
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
60
diff
changeset
|
861 printf("fDDS1 = %g\n", fDDS1); |
46
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
862 DDS4xAD9912_FrequencyRampe(&DDS4xAD9912,1, FrequDDS1, fDDS1, Step2/Ndiv); |
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
863 SetCtrlVal(MainPanel, PANEL_DDS1, fDDS1); |
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
864 DDS4xAD9912_SetFrequency(&DDS4xAD9912, 1, fDDS1); |
62
53dbce5f0745
Further simplification
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
61
diff
changeset
|
865 |
61
37075b60408b
Fix N2 measurement after cleanup. Further simplification
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
60
diff
changeset
|
866 // adjust DDS3 to keep beatnote within the bandpass filter. prediction |
62
53dbce5f0745
Further simplification
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
61
diff
changeset
|
867 double fDDS3 = FrequencyDDS3Init - DeltakHz_2*1000*(-Signe1/Signe2)*Ndiv*(Nu2)/(Nu1) - Beatslope_2*(utc-t1_2); |
53dbce5f0745
Further simplification
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
61
diff
changeset
|
868 DeltaDDS3 = fDDS3 - DDS4xAD9912.Frequency3; |
61
37075b60408b
Fix N2 measurement after cleanup. Further simplification
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
60
diff
changeset
|
869 printf("deltaDDS3 = %g\n", DeltaDDS3); |
62
53dbce5f0745
Further simplification
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
61
diff
changeset
|
870 SetCtrlVal(MainPanel, PANEL_DDS3, fDDS3); |
53dbce5f0745
Further simplification
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
61
diff
changeset
|
871 DDS4xAD9912_SetFrequency(&DDS4xAD9912, 3, fDDS3); |
46
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
872 |
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
873 // allow counter to settle |
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
874 settling = 3; |
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
875 |
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
876 // next step |
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
877 Measuring_2 += 1; |
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
878 } |
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
879 break; |
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
880 |
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
881 case N_MEASUREMENT_ADJUST_FREQ_PLUS: |
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
882 case N_MEASUREMENT_ADJUST_FREQ_MINUS: |
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
883 // adjust DDS frequency to keep beatnote within the bandpass filter |
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
884 |
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
885 if (settling > 0) { |
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
886 settling--; |
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
887 break; |
44
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
888 } |
61
37075b60408b
Fix N2 measurement after cleanup. Further simplification
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
60
diff
changeset
|
889 |
37075b60408b
Fix N2 measurement after cleanup. Further simplification
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
60
diff
changeset
|
890 double fDDS2 = DDS4xAD9912.Frequency2 + 275000 - Ch4; |
37075b60408b
Fix N2 measurement after cleanup. Further simplification
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
60
diff
changeset
|
891 SetCtrlVal(MainPanel, PANEL_DDS2, fDDS2); |
37075b60408b
Fix N2 measurement after cleanup. Further simplification
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
60
diff
changeset
|
892 DDS4xAD9912_SetFrequency(&DDS4xAD9912, 2, fDDS2); |
46
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
893 |
61
37075b60408b
Fix N2 measurement after cleanup. Further simplification
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
60
diff
changeset
|
894 double fDDS3 = DDS4xAD9912.Frequency3 + 10000 - Ch2; |
37075b60408b
Fix N2 measurement after cleanup. Further simplification
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
60
diff
changeset
|
895 DeltaDDS3 = DeltaDDS3 + 10000 - Ch2; |
37075b60408b
Fix N2 measurement after cleanup. Further simplification
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
60
diff
changeset
|
896 SetCtrlVal(MainPanel, PANEL_DDS3, fDDS3); |
37075b60408b
Fix N2 measurement after cleanup. Further simplification
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
60
diff
changeset
|
897 DDS4xAD9912_SetFrequency(&DDS4xAD9912, 3, fDDS3); |
46
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
898 |
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
899 // allow counter to settle |
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
900 settling = 3; |
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
901 |
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
902 // next step |
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
903 Measuring_2 += 1; |
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
904 break; |
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
905 |
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
906 case N_MEASUREMENT_FREP_PLUS: |
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
907 // frep positive step |
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
908 |
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
909 if (settling > 0) { |
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
910 settling--; |
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
911 break; |
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
912 } |
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
913 |
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
914 if (t2_1 == 0.0) |
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
915 t2_1 = utc; |
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
916 |
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
917 Frepplus_2 = Frepplus_2 + Math1 + 250000000 - Slope_2 * (utc - t2_2); |
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
918 Delta10K_Plus = Delta10K_Plus + 10000 - (Ch2 - Beatslope_2 * (utc - t2_2)); |
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
919 n_2 += 1; |
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
920 |
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
921 if ((utc - t2_2) > DeltaT_2) { |
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
922 Frepplus_2 = Frepplus_2 / n_2; |
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
923 Delta10K_Plus = Delta10K_Plus / n_2; |
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
924 n_2 = 0; |
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
925 |
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
926 // negative frequency step |
62
53dbce5f0745
Further simplification
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
61
diff
changeset
|
927 double fDDS1 = FrequDDS1 - DeltakHz_2 * 1000; |
53dbce5f0745
Further simplification
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
61
diff
changeset
|
928 DDS4xAD9912_FrequencyRampe(&DDS4xAD9912, 1, DDS4xAD9912.Frequency1, fDDS1, Step2/Ndiv); |
53dbce5f0745
Further simplification
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
61
diff
changeset
|
929 SetCtrlVal(MainPanel, PANEL_DDS1, fDDS1); |
53dbce5f0745
Further simplification
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
61
diff
changeset
|
930 DDS4xAD9912_SetFrequency(&DDS4xAD9912, 1, fDDS1); |
53dbce5f0745
Further simplification
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
61
diff
changeset
|
931 |
53dbce5f0745
Further simplification
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
61
diff
changeset
|
932 // adjust DDS3 to keep beatnote within the bandpass filter. prediction |
53dbce5f0745
Further simplification
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
61
diff
changeset
|
933 double fDDS3 = FrequencyDDS3Init + DeltakHz_2*1000*(-Signe1/Signe2)*Ndiv*(Nu2)/(Nu1); |
61
37075b60408b
Fix N2 measurement after cleanup. Further simplification
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
60
diff
changeset
|
934 DeltaDDS3 = fDDS3 - DDS4xAD9912.Frequency3; |
37075b60408b
Fix N2 measurement after cleanup. Further simplification
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
60
diff
changeset
|
935 SetCtrlVal(MainPanel, PANEL_DDS3, fDDS3); |
37075b60408b
Fix N2 measurement after cleanup. Further simplification
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
60
diff
changeset
|
936 DDS4xAD9912_SetFrequency(&DDS4xAD9912, 3, fDDS3); |
17
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
937 |
46
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
938 // allow counter to settle |
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
939 settling = 3; |
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
940 |
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
941 // next step |
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
942 Measuring_2 += 1; |
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
943 } |
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
944 break; |
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
945 |
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
946 case N_MEASUREMENT_FREP_MINUS: |
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
947 // frep negative step |
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
948 |
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
949 if (settling > 0) { |
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
950 settling--; |
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
951 break; |
0 | 952 } |
46
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
953 |
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
954 if (t3_1 == 0.0) |
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
955 t3_1 = utc; |
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
956 |
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
957 Frepminus_2 = Frepminus_2 + Math1 + 250000000 - Slope_2 * (utc - t3_2); |
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
958 Delta10K_Minus= Delta10K_Minus + 10000 - (Ch2 - Beatslope_2 * (utc - t3_2)); |
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
959 n_2 += 1; |
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
960 |
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
961 if ((utc -t3_2) > DeltaT_2) { |
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
962 Frepminus_2 = Frepminus_2 / n_2; |
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
963 Delta10K_Minus = Delta10K_Minus / n_2; |
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
964 n_2 = 0; |
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
965 |
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
966 // compute N2 |
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
967 N_2 = (Signe2)*(-DeltaDDS3+Delta10K_Plus-Delta10K_Minus-Beatslope_2*(t3_2-t2_2) )/(Frepminus_2-Frepplus_2-Slope_2*(t3_2-t2_2)); |
84
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
968 SetCtrlVal(CalcNPanel, CALCN_N, N_2); |
46
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
969 |
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
970 // back to nominal frequency |
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
971 DDS4xAD9912_FrequencyRampe (&DDS4xAD9912, 1, FrequDDS1-DeltakHz_2*1000,FrequDDS1, Step2/Ndiv ); |
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
972 SetCtrlVal(MainPanel, PANEL_DDS1, FrequDDS1); |
62
53dbce5f0745
Further simplification
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
61
diff
changeset
|
973 DDS4xAD9912_SetFrequency(&DDS4xAD9912, 1, FrequDDS1); |
46
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
974 SetCtrlVal(MainPanel, PANEL_DDS2, FrequencyDDSBesInit); |
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
975 DDS4xAD9912_SetFrequency (&DDS4xAD9912, 2, FrequencyDDSBesInit ); |
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
976 SetCtrlVal(MainPanel, PANEL_DDS3, FrequencyDDS3Init-Beatslope_2*(utc-t1_2)); |
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
977 DDS4xAD9912_SetFrequency (&DDS4xAD9912, 3, FrequencyDDS3Init-Beatslope_2*(utc-t1_2) ); |
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
978 |
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
979 t1_2 = 0.0; |
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
980 t2_2 = 0.0; |
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
981 t3_2 = 0.0; |
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
982 Frepminus_2 = 0.0; |
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
983 Frepplus_2 = 0.0; |
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
984 Delta10K_Minus = 0.0; |
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
985 Delta10K_Plus = 0.0; |
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
986 |
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
987 // done |
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
988 Measuring_2 = N_MEASUREMENT_NONE; |
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
989 } |
6503feae1809
Cleanup. Convert N2 measurement logic to state machine like structure
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
44
diff
changeset
|
990 break; |
44
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
991 } |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
992 |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
993 switch (Measuring_3) { |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
994 |
47
1d3cd8260cbb
Uniform N3 measurement code to N1 and N2
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
46
diff
changeset
|
995 case N_MEASUREMENT_NONE: |
44
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
996 // not measuring N3 |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
997 break; |
0 | 998 |
47
1d3cd8260cbb
Uniform N3 measurement code to N1 and N2
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
46
diff
changeset
|
999 case N_MEASUREMENT_INIT: |
44
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1000 // init |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1001 |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1002 SetCtrlVal(MainPanel, PANEL_DDS4, FrequDDS4); |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1003 DDS4xAD9912_SetFrequency(&DDS4xAD9912, 4, FrequDDS4); |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1004 settling = 3; |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1005 |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1006 t1_3 = utc; |
73
1dfaf5ef0352
Refactor mean and slope measurement
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
70
diff
changeset
|
1007 stat_zero(&stat_ch2); |
1dfaf5ef0352
Refactor mean and slope measurement
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
70
diff
changeset
|
1008 |
44
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1009 // record current DDS3 frequency |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1010 GetCtrlVal(MainPanel, PANEL_DDS3, &FrequencyDDS3Init); |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1011 |
47
1d3cd8260cbb
Uniform N3 measurement code to N1 and N2
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
46
diff
changeset
|
1012 // next step |
1d3cd8260cbb
Uniform N3 measurement code to N1 and N2
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
46
diff
changeset
|
1013 Measuring_3 += 1; |
44
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1014 break; |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1015 |
47
1d3cd8260cbb
Uniform N3 measurement code to N1 and N2
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
46
diff
changeset
|
1016 case N_MEASUREMENT_SLOPE: |
44
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1017 // slope measurement |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1018 |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1019 if (settling > 0) { |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1020 settling--; |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1021 break; |
24
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1022 } |
0 | 1023 |
73
1dfaf5ef0352
Refactor mean and slope measurement
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
70
diff
changeset
|
1024 stat_accumulate(&stat_ch2, Ch2); |
44
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1025 |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1026 if (utc - t1_3 > SlopeTime3) { |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1027 // slope measurement |
73
1dfaf5ef0352
Refactor mean and slope measurement
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
70
diff
changeset
|
1028 Slope_3 = stat_ch2.slope; |
44
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1029 |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1030 t2_3 = utc; |
73
1dfaf5ef0352
Refactor mean and slope measurement
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
70
diff
changeset
|
1031 stat_zero(&stat_ch2); |
44
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1032 |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1033 // frep positive step |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1034 SetCtrlVal(MainPanel, PANEL_DDS4, FrequDDS4 + DeltakHz_3 * 1000); |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1035 DDS4xAD9912_SetFrequency(&DDS4xAD9912, 4, FrequDDS4 + DeltakHz_3 * 1000); |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1036 // compensate with DDS3 to keep measured beatnote in counter box range |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1037 double fDDS3 = FrequencyDDS3Init + N3/N1 * Ndiv * DeltakHz_3 * 1000; |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1038 SetCtrlVal(MainPanel, PANEL_DDS3, fDDS3); |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1039 DDS4xAD9912_SetFrequency(&DDS4xAD9912, 3, fDDS3); |
47
1d3cd8260cbb
Uniform N3 measurement code to N1 and N2
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
46
diff
changeset
|
1040 |
44
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1041 // allow counter to settle |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1042 settling = 3; |
47
1d3cd8260cbb
Uniform N3 measurement code to N1 and N2
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
46
diff
changeset
|
1043 |
1d3cd8260cbb
Uniform N3 measurement code to N1 and N2
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
46
diff
changeset
|
1044 // next step |
1d3cd8260cbb
Uniform N3 measurement code to N1 and N2
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
46
diff
changeset
|
1045 Measuring_3 += 1; |
44
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1046 } |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1047 break; |
47
1d3cd8260cbb
Uniform N3 measurement code to N1 and N2
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
46
diff
changeset
|
1048 |
1d3cd8260cbb
Uniform N3 measurement code to N1 and N2
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
46
diff
changeset
|
1049 case N_MEASUREMENT_ADJUST_FREQ_PLUS: |
1d3cd8260cbb
Uniform N3 measurement code to N1 and N2
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
46
diff
changeset
|
1050 case N_MEASUREMENT_ADJUST_FREQ_MINUS: |
1d3cd8260cbb
Uniform N3 measurement code to N1 and N2
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
46
diff
changeset
|
1051 // adjust DDS frequency to keep beatnote within the bandpass filter |
1d3cd8260cbb
Uniform N3 measurement code to N1 and N2
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
46
diff
changeset
|
1052 |
1d3cd8260cbb
Uniform N3 measurement code to N1 and N2
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
46
diff
changeset
|
1053 // next step |
1d3cd8260cbb
Uniform N3 measurement code to N1 and N2
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
46
diff
changeset
|
1054 Measuring_3 += 1; |
1d3cd8260cbb
Uniform N3 measurement code to N1 and N2
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
46
diff
changeset
|
1055 break; |
44
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1056 |
47
1d3cd8260cbb
Uniform N3 measurement code to N1 and N2
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
46
diff
changeset
|
1057 case N_MEASUREMENT_FREP_PLUS: |
44
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1058 // frep positive step |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1059 |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1060 if (settling > 0) { |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1061 settling--; |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1062 break; |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1063 } |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1064 |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1065 n_3++; |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1066 Frepplus_3 += Ch2 - Slope_3 * (utc - t2_3); |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1067 |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1068 if (utc - t2_3 > DeltaT_3) { |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1069 // positive step measurement |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1070 Frepplus_3 = Frepplus_3 / n_3; |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1071 |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1072 n_3 = 0; |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1073 t3_3 = utc; |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1074 |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1075 // frep negative step |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1076 SetCtrlVal(MainPanel, PANEL_DDS4, FrequDDS4 - DeltakHz_3 * 1000); |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1077 DDS4xAD9912_SetFrequency(&DDS4xAD9912, 4, FrequDDS4 - DeltakHz_3 * 1000); |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1078 // compensate with DDS3 to keep measured beatnote in counter box range |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1079 double fDDS3 = FrequencyDDS3Init - N3/N1 * Ndiv * DeltakHz_3 * 1000; |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1080 SetCtrlVal(MainPanel, PANEL_DDS3, fDDS3); |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1081 DDS4xAD9912_SetFrequency(&DDS4xAD9912, 3, fDDS3); |
47
1d3cd8260cbb
Uniform N3 measurement code to N1 and N2
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
46
diff
changeset
|
1082 |
44
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1083 // allow counter to settle |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1084 settling = 3; |
47
1d3cd8260cbb
Uniform N3 measurement code to N1 and N2
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
46
diff
changeset
|
1085 |
1d3cd8260cbb
Uniform N3 measurement code to N1 and N2
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
46
diff
changeset
|
1086 // next step |
1d3cd8260cbb
Uniform N3 measurement code to N1 and N2
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
46
diff
changeset
|
1087 Measuring_3 += 1; |
44
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1088 } |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1089 break; |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1090 |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1091 |
47
1d3cd8260cbb
Uniform N3 measurement code to N1 and N2
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
46
diff
changeset
|
1092 case N_MEASUREMENT_FREP_MINUS: |
44
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1093 // frep negative step |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1094 |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1095 if (settling > 0) { |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1096 settling--; |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1097 break; |
24
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1098 } |
0 | 1099 |
44
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1100 n_3++; |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1101 Frepminus_3 += Ch2 - Slope_3 * (utc - t3_3); |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1102 |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1103 if (utc - t3_3 > DeltaT_3) { |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1104 // positive step measurement |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1105 Frepminus_3 = Frepminus_3 / n_3; |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1106 |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1107 // compute N3 |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1108 N_3 = 1000.0 * DeltakHz_3 / (Frepplus_3 - Frepminus_3 + (2 * N3/N1 * Ndiv * DeltakHz_3 * 1000)); |
84
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
1109 SetCtrlVal(CalcNPanel, CALCN_N, N_3); |
44
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1110 |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1111 t1_3=0.0; |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1112 t2_3=0.0; |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1113 t3_3=0.0; |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1114 n_3 = 0; |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1115 Frepminus_3 = 0.0; |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1116 Frepplus_3 = 0.0; |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1117 |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1118 // back to nominal frep |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1119 SetCtrlVal(MainPanel, PANEL_DDS4, FrequDDS4); |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1120 DDS4xAD9912_SetFrequency(&DDS4xAD9912, 4, FrequDDS4); |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1121 // back to initial DDS3 frequency |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1122 SetCtrlVal(MainPanel, PANEL_DDS3, FrequencyDDS3Init); |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1123 DDS4xAD9912_SetFrequency(&DDS4xAD9912, 3, FrequencyDDS3Init); |
47
1d3cd8260cbb
Uniform N3 measurement code to N1 and N2
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
46
diff
changeset
|
1124 |
1d3cd8260cbb
Uniform N3 measurement code to N1 and N2
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
46
diff
changeset
|
1125 // done |
1d3cd8260cbb
Uniform N3 measurement code to N1 and N2
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
46
diff
changeset
|
1126 Measuring_3 = N_MEASUREMENT_NONE; |
44
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1127 } |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1128 break; |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1129 } |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1130 |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1131 // Calcul du signe de fb |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1132 |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1133 if (Getsign1 == TRUE) { |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1134 if (utc > tbegin1+2) { |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1135 if (Math1 > Frepbefore1) |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1136 Signe1 = -1.0; |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1137 else |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1138 Signe1 = +1.0; |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1139 SetCtrlVal(MainPanel, PANEL_DDS1, Frequency1); |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1140 DDS4xAD9912_SetFrequency(&DDS4xAD9912, 1, Frequency1); |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1141 Getsign1 = FALSE; |
54
73e23c879d6e
Do not update beatnote sign indicators at each time tick
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
53
diff
changeset
|
1142 SetCtrlVal(MainPanel, PANEL_SIGN1, Signe1); |
44
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1143 } |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1144 } |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1145 if (Getsign2 == TRUE) { |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1146 if (utc > tbegin2+2){ |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1147 if (Math1 > Frepbefore2) { |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1148 if (Ch2 > Ch2before) |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1149 Signe2 = +1.0; |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1150 else |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1151 Signe2 = -1.0; |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1152 } else { |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1153 if (Ch2 > Ch2before) |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1154 Signe2 = -1.0; |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1155 else |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1156 Signe2 = +1.0; |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1157 } |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1158 SetCtrlVal(MainPanel, PANEL_DDS1, Frequency2); |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1159 DDS4xAD9912_SetFrequency(&DDS4xAD9912, 1, Frequency2); |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1160 Getsign2 = FALSE; |
54
73e23c879d6e
Do not update beatnote sign indicators at each time tick
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
53
diff
changeset
|
1161 SetCtrlVal(MainPanel, PANEL_SIGN2, Signe2); |
44
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1162 } |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1163 } |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1164 if (Getsign3 == TRUE) { |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1165 if (utc > tbegin3+2){ |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1166 if (Ch3 > Frepbefore3) |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1167 Signe3 = -1.0; |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1168 else |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1169 Signe3 = +1.0; |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1170 SetCtrlVal(MainPanel, PANEL_DDS3, Frequency3); |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1171 DDS4xAD9912_SetFrequency(&DDS4xAD9912, 4, Frequency3); |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1172 Getsign3 = FALSE; |
54
73e23c879d6e
Do not update beatnote sign indicators at each time tick
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
53
diff
changeset
|
1173 SetCtrlVal(MainPanel, PANEL_SIGN3, Signe3); |
44
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1174 } |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1175 } |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1176 |
70
a945f2b7bef6
Fix slope measurement again
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
69
diff
changeset
|
1177 // select reference |
73
1dfaf5ef0352
Refactor mean and slope measurement
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
70
diff
changeset
|
1178 double current = 0.0; |
70
a945f2b7bef6
Fix slope measurement again
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
69
diff
changeset
|
1179 switch (slopeReference) { |
44
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1180 case SLOPE_REFERENCE_MICROWAVE: |
73
1dfaf5ef0352
Refactor mean and slope measurement
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
70
diff
changeset
|
1181 current = Math2; |
44
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1182 break; |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1183 case SLOPE_REFERENCE_HG_CAVITY: |
73
1dfaf5ef0352
Refactor mean and slope measurement
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
70
diff
changeset
|
1184 current = Ch2 * 1062.5 / 1542.2; |
44
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1185 break; |
70
a945f2b7bef6
Fix slope measurement again
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
69
diff
changeset
|
1186 } |
a945f2b7bef6
Fix slope measurement again
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
69
diff
changeset
|
1187 |
a945f2b7bef6
Fix slope measurement again
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
69
diff
changeset
|
1188 // stop slope cancelling if the comb is not locked |
a945f2b7bef6
Fix slope measurement again
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
69
diff
changeset
|
1189 if (SlopeMeasuring & StopSlopeCancellingOnUnlocked |
73
1dfaf5ef0352
Refactor mean and slope measurement
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
70
diff
changeset
|
1190 & (freq.previous != 0.0) |
1dfaf5ef0352
Refactor mean and slope measurement
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
70
diff
changeset
|
1191 & (fabs(current - freq.previous) > limitotakoff)) { |
56
6e73fb3d94fa
Simplyfy slope measurement code
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
55
diff
changeset
|
1192 |
70
a945f2b7bef6
Fix slope measurement again
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
69
diff
changeset
|
1193 if (! KeepSlope) { |
a945f2b7bef6
Fix slope measurement again
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
69
diff
changeset
|
1194 appliedSlope = 0.0; |
a945f2b7bef6
Fix slope measurement again
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
69
diff
changeset
|
1195 DDSFox_SetSweepRate(&DDS1xAD9956, appliedSlope); |
66
aa125ad6e842
Clarify variables names in dedrifting code
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
65
diff
changeset
|
1196 SetCtrlVal(MainPanel, PANEL_SLOPE_APPLIED, appliedSlope); |
70
a945f2b7bef6
Fix slope measurement again
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
69
diff
changeset
|
1197 } |
a945f2b7bef6
Fix slope measurement again
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
69
diff
changeset
|
1198 if (! KeepFrequ) { |
a945f2b7bef6
Fix slope measurement again
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
69
diff
changeset
|
1199 DDSFox_Set(&DDS1xAD9956, DEDRIFT_DDS_FREQUENCY, appliedSlope); |
56
6e73fb3d94fa
Simplyfy slope measurement code
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
55
diff
changeset
|
1200 } |
73
1dfaf5ef0352
Refactor mean and slope measurement
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
70
diff
changeset
|
1201 |
1dfaf5ef0352
Refactor mean and slope measurement
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
70
diff
changeset
|
1202 stat_zero(&freq); |
1dfaf5ef0352
Refactor mean and slope measurement
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
70
diff
changeset
|
1203 SetCtrlVal(MainPanel, PANEL_SLOPE_MEASURED, freq.slope); |
70
a945f2b7bef6
Fix slope measurement again
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
69
diff
changeset
|
1204 SlopeMeasuring = FALSE; |
a945f2b7bef6
Fix slope measurement again
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
69
diff
changeset
|
1205 SetCtrlVal(MainPanel, PANEL_MEASURE_SLOPE, 0); |
a945f2b7bef6
Fix slope measurement again
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
69
diff
changeset
|
1206 } |
a945f2b7bef6
Fix slope measurement again
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
69
diff
changeset
|
1207 |
a945f2b7bef6
Fix slope measurement again
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
69
diff
changeset
|
1208 // slope measurement |
a945f2b7bef6
Fix slope measurement again
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
69
diff
changeset
|
1209 if (SlopeMeasuring) |
a945f2b7bef6
Fix slope measurement again
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
69
diff
changeset
|
1210 { |
56
6e73fb3d94fa
Simplyfy slope measurement code
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
55
diff
changeset
|
1211 // update slope measurement |
73
1dfaf5ef0352
Refactor mean and slope measurement
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
70
diff
changeset
|
1212 stat_accumulate(&freq, current); |
1dfaf5ef0352
Refactor mean and slope measurement
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
70
diff
changeset
|
1213 |
60
cd7b5903f168
Display measured slope
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
59
diff
changeset
|
1214 // update indicator |
73
1dfaf5ef0352
Refactor mean and slope measurement
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
70
diff
changeset
|
1215 SetCtrlVal(MainPanel, PANEL_SLOPE_MEASURED, freq.slope); |
56
6e73fb3d94fa
Simplyfy slope measurement code
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
55
diff
changeset
|
1216 |
6e73fb3d94fa
Simplyfy slope measurement code
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
55
diff
changeset
|
1217 // update applied slope |
6e73fb3d94fa
Simplyfy slope measurement code
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
55
diff
changeset
|
1218 if ((utc - SlopeMeasuringTimeBegin) > TimetoSlope) { |
0 | 1219 |
52
30146cc6cd77
Cleanup. Remove some C abominations
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
51
diff
changeset
|
1220 if (invertSlopeSign) |
73
1dfaf5ef0352
Refactor mean and slope measurement
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
70
diff
changeset
|
1221 appliedSlope = appliedSlope - freq.slope; |
52
30146cc6cd77
Cleanup. Remove some C abominations
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
51
diff
changeset
|
1222 else |
73
1dfaf5ef0352
Refactor mean and slope measurement
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
70
diff
changeset
|
1223 appliedSlope = appliedSlope + freq.slope; |
0 | 1224 |
56
6e73fb3d94fa
Simplyfy slope measurement code
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
55
diff
changeset
|
1225 if (FrequCorrec) { |
6e73fb3d94fa
Simplyfy slope measurement code
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
55
diff
changeset
|
1226 // proportional correction |
6e73fb3d94fa
Simplyfy slope measurement code
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
55
diff
changeset
|
1227 |
6e73fb3d94fa
Simplyfy slope measurement code
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
55
diff
changeset
|
1228 Nratio += 1; |
6e73fb3d94fa
Simplyfy slope measurement code
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
55
diff
changeset
|
1229 if (Nratio >= 1) { |
73
1dfaf5ef0352
Refactor mean and slope measurement
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
70
diff
changeset
|
1230 MoyMath2 = MoyMath2 + freq.mean; |
56
6e73fb3d94fa
Simplyfy slope measurement code
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
55
diff
changeset
|
1231 } |
6e73fb3d94fa
Simplyfy slope measurement code
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
55
diff
changeset
|
1232 if (Nratio == 1 && CenterFrequencyCh2ToDetermine == TRUE) { |
6e73fb3d94fa
Simplyfy slope measurement code
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
55
diff
changeset
|
1233 CenterFrequencyCh2 = MoyMath2; |
6e73fb3d94fa
Simplyfy slope measurement code
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
55
diff
changeset
|
1234 CenterFrequencyCh2ToDetermine = FALSE; |
6e73fb3d94fa
Simplyfy slope measurement code
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
55
diff
changeset
|
1235 } |
6e73fb3d94fa
Simplyfy slope measurement code
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
55
diff
changeset
|
1236 if (Nratio == ratio) { |
55
54add101fdca
Cleanup. Remove unnecessary global variable
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
54
diff
changeset
|
1237 double correction = (MoyMath2/ratio-CenterFrequencyCh2)/TimetoSlope; |
66
aa125ad6e842
Clarify variables names in dedrifting code
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
65
diff
changeset
|
1238 appliedSlope = appliedSlope + correction; |
56
6e73fb3d94fa
Simplyfy slope measurement code
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
55
diff
changeset
|
1239 Nratio = 0; |
6e73fb3d94fa
Simplyfy slope measurement code
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
55
diff
changeset
|
1240 MoyMath2 = 0.0; |
44
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1241 } |
24
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1242 } |
0 | 1243 |
66
aa125ad6e842
Clarify variables names in dedrifting code
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
65
diff
changeset
|
1244 SetCtrlVal(MainPanel, PANEL_SLOPE_APPLIED, appliedSlope); |
aa125ad6e842
Clarify variables names in dedrifting code
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
65
diff
changeset
|
1245 DDSFox_SetSweepRate(&DDS1xAD9956, appliedSlope); |
44
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1246 |
82
47860259afe2
Implement logging
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
80
diff
changeset
|
1247 logmsg("Slope correction update (%+6g) %6g", freq.slope, appliedSlope); |
47860259afe2
Implement logging
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
80
diff
changeset
|
1248 |
73
1dfaf5ef0352
Refactor mean and slope measurement
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
70
diff
changeset
|
1249 stat_zero(&freq); |
44
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1250 SlopeMeasuringTimeBegin = utc; |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1251 } |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1252 } |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1253 |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1254 // re-centering |
52
30146cc6cd77
Cleanup. Remove some C abominations
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
51
diff
changeset
|
1255 if (KeepCentering) { |
30146cc6cd77
Cleanup. Remove some C abominations
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
51
diff
changeset
|
1256 if ((utc - CenteringTimeBegin275K) > Timetorecenter275K && CenteringTimeBegin275K > 10) { |
30146cc6cd77
Cleanup. Remove some C abominations
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
51
diff
changeset
|
1257 double frequency; |
30146cc6cd77
Cleanup. Remove some C abominations
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
51
diff
changeset
|
1258 GetCtrlVal(MainPanel, PANEL_DDS2, &frequency); |
30146cc6cd77
Cleanup. Remove some C abominations
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
51
diff
changeset
|
1259 // adjust DDS2 frequency to keep Ch4 reading around 275000 |
30146cc6cd77
Cleanup. Remove some C abominations
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
51
diff
changeset
|
1260 frequency = frequency + 275000 - Ch4; |
30146cc6cd77
Cleanup. Remove some C abominations
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
51
diff
changeset
|
1261 SetCtrlVal(MainPanel, PANEL_DDS2, frequency); |
30146cc6cd77
Cleanup. Remove some C abominations
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
51
diff
changeset
|
1262 DDS4xAD9912_SetFrequency(&DDS4xAD9912, 2, frequency); |
30146cc6cd77
Cleanup. Remove some C abominations
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
51
diff
changeset
|
1263 CenteringTimeBegin275K = utc; |
44
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1264 } |
0 | 1265 |
52
30146cc6cd77
Cleanup. Remove some C abominations
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
51
diff
changeset
|
1266 if ((utc - CenteringTimeBegin10K) > Timetorecenter10K && CenteringTimeBegin10K > 10) { |
30146cc6cd77
Cleanup. Remove some C abominations
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
51
diff
changeset
|
1267 double frequency; |
30146cc6cd77
Cleanup. Remove some C abominations
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
51
diff
changeset
|
1268 GetCtrlVal(MainPanel, PANEL_DDS3, &frequency); |
30146cc6cd77
Cleanup. Remove some C abominations
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
51
diff
changeset
|
1269 // adjust DDS3 frequency to keep Ch2 reading around 10000 |
30146cc6cd77
Cleanup. Remove some C abominations
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
51
diff
changeset
|
1270 frequency = frequency + 10000 - Ch2; |
30146cc6cd77
Cleanup. Remove some C abominations
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
51
diff
changeset
|
1271 SetCtrlVal(MainPanel, PANEL_DDS3, frequency); |
30146cc6cd77
Cleanup. Remove some C abominations
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
51
diff
changeset
|
1272 DDS4xAD9912_SetFrequency(&DDS4xAD9912, 3, frequency); |
30146cc6cd77
Cleanup. Remove some C abominations
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
51
diff
changeset
|
1273 CenteringTimeBegin10K = utc; |
30146cc6cd77
Cleanup. Remove some C abominations
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
51
diff
changeset
|
1274 } |
44
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1275 } |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1276 |
76
5e0c314528bf
Refactor data writing to disk. Implement dayly chunking to separate files
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
75
diff
changeset
|
1277 int save; |
88
9b7588cd4013
Move data acquisition into separate thread
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
87
diff
changeset
|
1278 |
76
5e0c314528bf
Refactor data writing to disk. Implement dayly chunking to separate files
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
75
diff
changeset
|
1279 // run id derived from current date in the form YYMMDD |
5e0c314528bf
Refactor data writing to disk. Implement dayly chunking to separate files
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
75
diff
changeset
|
1280 char id[7]; |
88
9b7588cd4013
Move data acquisition into separate thread
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
87
diff
changeset
|
1281 FormatDateTimeString(utc, "%y%m%d", id, sizeof(id)); |
9b7588cd4013
Move data acquisition into separate thread
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
87
diff
changeset
|
1282 |
9b7588cd4013
Move data acquisition into separate thread
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
87
diff
changeset
|
1283 // time |
9b7588cd4013
Move data acquisition into separate thread
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
87
diff
changeset
|
1284 char timestr[24]; |
9b7588cd4013
Move data acquisition into separate thread
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
87
diff
changeset
|
1285 FormatDateTimeString(utc, "%d/%m/%Y %H:%M:%S.%3f", timestr, sizeof(timestr)); |
9b7588cd4013
Move data acquisition into separate thread
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
87
diff
changeset
|
1286 SetCtrlVal(MainPanel, PANEL_TIME, timestr); |
76
5e0c314528bf
Refactor data writing to disk. Implement dayly chunking to separate files
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
75
diff
changeset
|
1287 |
5e0c314528bf
Refactor data writing to disk. Implement dayly chunking to separate files
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
75
diff
changeset
|
1288 // write LO frequency (Math2) to disk |
5e0c314528bf
Refactor data writing to disk. Implement dayly chunking to separate files
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
75
diff
changeset
|
1289 GetCtrlVal(MainPanel, PANEL_CHECKBOX_MATH2SAVE, &save); |
5e0c314528bf
Refactor data writing to disk. Implement dayly chunking to separate files
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
75
diff
changeset
|
1290 if (save) { |
88
9b7588cd4013
Move data acquisition into separate thread
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
87
diff
changeset
|
1291 writeData(DATAFOLDER, "Lo", id, timestr, utc, Math2); |
9b7588cd4013
Move data acquisition into separate thread
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
87
diff
changeset
|
1292 writeData("C:\\Femto\\Results", "OptCavity", id, timestr, utc, Math2); |
44
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1293 } |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1294 |
76
5e0c314528bf
Refactor data writing to disk. Implement dayly chunking to separate files
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
75
diff
changeset
|
1295 // write Hg frequency (Math3) to disk |
5e0c314528bf
Refactor data writing to disk. Implement dayly chunking to separate files
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
75
diff
changeset
|
1296 GetCtrlVal(MainPanel, PANEL_CHECKBOX_MATH3SAVE, &save); |
5e0c314528bf
Refactor data writing to disk. Implement dayly chunking to separate files
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
75
diff
changeset
|
1297 if (save) { |
88
9b7588cd4013
Move data acquisition into separate thread
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
87
diff
changeset
|
1298 writeData(DATAFOLDER, "Hg", id, timestr, utc, Math3); |
9b7588cd4013
Move data acquisition into separate thread
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
87
diff
changeset
|
1299 writeData("C:\\Femto\\Results", "HgCavity", id, timestr, utc, Math3); |
44
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1300 } |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1301 |
76
5e0c314528bf
Refactor data writing to disk. Implement dayly chunking to separate files
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
75
diff
changeset
|
1302 // write ExtraMath (Math5) to disk |
5e0c314528bf
Refactor data writing to disk. Implement dayly chunking to separate files
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
75
diff
changeset
|
1303 GetCtrlVal(MainPanel, PANEL_CHECKBOX_MATH5SAVE, &save); |
5e0c314528bf
Refactor data writing to disk. Implement dayly chunking to separate files
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
75
diff
changeset
|
1304 if (save) { |
88
9b7588cd4013
Move data acquisition into separate thread
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
87
diff
changeset
|
1305 writeData(DATAFOLDER, "Ex", id, timestr, utc, Math5); |
44
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1306 } |
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1307 } |
0 | 1308 break; |
44
2e37910b28bc
Simplify logic and reindent
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
43
diff
changeset
|
1309 } |
0 | 1310 } |
1311 | |
1312 | |
1313 int CVICALLBACK CB_OnFreqPlot (int panel, int control, int event, | |
1314 void *callbackData, int eventData1, int eventData2) | |
1315 { | |
1316 int BoxChecked ; | |
1317 Plot_Data * pPlot = NULL; | |
1318 char PlotTitle[] = "Ch? Frequency Plot" ; | |
1319 double PlotMin = 10e6 ; | |
1320 double PlotMax = 65e6 ; | |
1321 | |
52
30146cc6cd77
Cleanup. Remove some C abominations
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
51
diff
changeset
|
1322 switch (event) { |
0 | 1323 case EVENT_COMMIT: |
1324 | |
1325 GetCtrlVal(MainPanel, control, &BoxChecked); | |
1326 switch (control) { | |
1327 case PANEL_CHECKBOX_FREQ1PLOT : | |
1328 pPlot = &PlotCh1 ; | |
1329 Fmt(PlotTitle, "Ch1 Frequency Plot") ; | |
1330 PlotMin = 54.999e6 ; PlotMax = 55.001e6 ; | |
1331 break ; | |
1332 case PANEL_CHECKBOX_FREQ2PLOT : | |
1333 pPlot = &PlotCh2 ; | |
1334 Fmt(PlotTitle, "Ch2 Frequency Plot") ; | |
1335 PlotMin = 8.0e3 ; PlotMax = 12.0e3 ; | |
1336 break ; | |
1337 case PANEL_CHECKBOX_FREQ3PLOT : | |
1338 pPlot = &PlotCh3 ; | |
1339 Fmt(PlotTitle, "Ch3 Frequency Plot") ; | |
1340 PlotMin = 8.0e3 ; PlotMax = 12.0e3 ; | |
1341 break ; | |
1342 case PANEL_CHECKBOX_FREQ4PLOT : | |
1343 pPlot = &PlotCh4 ; | |
1344 Fmt(PlotTitle, "Ch4 Frequency Plot") ; | |
1345 break ; | |
1346 case PANEL_CHECKBOX_MATH1PLOT : | |
1347 pPlot = &PlotMath1 ; | |
1348 Fmt(PlotTitle, "Math1 Plot") ; | |
1349 PlotMin = 765.0e6 ; PlotMax = 775.0e6 ; | |
1350 break ; | |
1351 case PANEL_CHECKBOX_MATH2PLOT : | |
1352 pPlot = &PlotMath2 ; | |
1353 Fmt(PlotTitle, "Math2 Plot") ; | |
1354 PlotMin = -1.0e9 ; PlotMax = 1.0e9 ; | |
1355 break ; | |
1356 case PANEL_CHECKBOX_MATH3PLOT : | |
1357 pPlot = &PlotMath3 ; | |
1358 Fmt(PlotTitle, "Math3 Plot") ; | |
1359 PlotMin = -1.0e9 ; PlotMax = 1.0e9 ; | |
1360 break ; | |
1361 case PANEL_CHECKBOX_MATH4PLOT : | |
1362 pPlot = &PlotMath4 ; | |
1363 Fmt(PlotTitle, "Math4 Plot") ; | |
1364 PlotMin = -1.0e9 ; PlotMax = 1.0e9 ; | |
1365 break ; | |
1366 case PANEL_CHECKBOX_MATH5PLOT : | |
1367 pPlot = &PlotMath5 ; | |
1368 Fmt(PlotTitle, "Math5 Plot") ; | |
1369 PlotMin = -1.0e9 ; PlotMax = 1.0e9 ; | |
1370 break ; | |
1371 } | |
1372 | |
52
30146cc6cd77
Cleanup. Remove some C abominations
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
51
diff
changeset
|
1373 if (BoxChecked) |
30146cc6cd77
Cleanup. Remove some C abominations
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
51
diff
changeset
|
1374 Plot_InitPanel(pPlot, PlotTitle, PlotMin, PlotMax, &OnCloseViewPanel); |
30146cc6cd77
Cleanup. Remove some C abominations
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
51
diff
changeset
|
1375 else |
30146cc6cd77
Cleanup. Remove some C abominations
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
51
diff
changeset
|
1376 Plot_ClosePanel(pPlot); |
0 | 1377 break; |
52
30146cc6cd77
Cleanup. Remove some C abominations
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
51
diff
changeset
|
1378 } |
0 | 1379 return 0; |
1380 } | |
1381 | |
1382 | |
1383 int CVICALLBACK CB_OnAllanPlot (int panel, int control, int event, | |
1384 void *callbackData, int eventData1, int eventData2) | |
1385 { | |
1386 int BoxChecked ; | |
1387 Allan_Data * pAllan = NULL; | |
1388 char AllanTitle[] = "Ch? Allan Deviation " ; | |
1389 double Normalizer = 300e12 ; | |
1390 | |
1391 switch (event) | |
1392 { | |
1393 case EVENT_COMMIT: | |
1394 | |
1395 GetCtrlVal(MainPanel, control, &BoxChecked); | |
1396 switch (control) { | |
1397 case PANEL_CHECKBOX_FREQ1ALLAN : | |
1398 pAllan = &AllanCh1 ; | |
1399 Fmt(AllanTitle, "Ch1 Allan Deviation") ; | |
1400 Normalizer = 1.84e12 ; | |
1401 break ; | |
1402 case PANEL_CHECKBOX_FREQ2ALLAN : | |
1403 pAllan = &AllanCh2 ; | |
1404 Fmt(AllanTitle, "Ch2 Allan Deviation") ; | |
1405 Normalizer = 10.e3 ; | |
1406 break ; | |
1407 case PANEL_CHECKBOX_FREQ3ALLAN : | |
1408 pAllan = &AllanCh3 ; | |
1409 Fmt(AllanTitle, "Ch3 Allan Deviation") ; | |
1410 Normalizer = 429.228e12 ; | |
1411 break ; | |
1412 case PANEL_CHECKBOX_FREQ4ALLAN : | |
1413 pAllan = &AllanCh4 ; | |
1414 Fmt(AllanTitle, "Ch4 Allan Deviation") ; | |
1415 Normalizer = 275.0e3 ; | |
1416 break ; | |
1417 case PANEL_CHECKBOX_MATH1ALLAN : | |
1418 pAllan = &AllanMath1 ; | |
1419 Fmt(AllanTitle, "Math1 Allan Deviation") ; | |
1420 Normalizer = 250.0e6 ; | |
1421 break ; | |
1422 case PANEL_CHECKBOX_MATH2ALLAN : | |
1423 pAllan = &AllanMath2 ; | |
1424 Fmt(AllanTitle, "Math2 Allan Deviation") ; | |
1425 Normalizer = 194.395e12 ; | |
1426 break ; | |
1427 case PANEL_CHECKBOX_MATH3ALLAN : | |
1428 pAllan = &AllanMath3 ; | |
1429 Fmt(AllanTitle, "Math3 Allan Deviation") ; | |
1430 Normalizer = 282.143e12 ; | |
1431 break ; | |
1432 case PANEL_CHECKBOX_MATH4ALLAN : | |
1433 pAllan = &AllanMath4 ; | |
1434 Fmt(AllanTitle, "Math4 Allan Deviation") ; | |
1435 Normalizer = 429.228e12 ; | |
1436 break ; | |
1437 case PANEL_CHECKBOX_MATH5ALLAN : | |
1438 pAllan = &AllanMath5 ; | |
1439 Fmt(AllanTitle, "Math5 Allan Deviation") ; | |
1440 Normalizer = 429.228e12 ; | |
1441 break ; | |
1442 } | |
1443 | |
1444 if (BoxChecked) { | |
1445 Allan_InitPanel(pAllan, AllanTitle, Normalizer, &OnCloseViewPanel) ; | |
1446 } | |
1447 else { | |
1448 Allan_ClosePanel(pAllan) ; | |
1449 } ; | |
1450 break; | |
1451 | |
1452 case EVENT_RIGHT_CLICK: | |
1453 | |
1454 break; | |
1455 | |
1456 } | |
1457 return 0; | |
1458 } | |
1459 | |
1460 int CVICALLBACK CB_ChangeDDSOut (int panel, int control, int event, | |
1461 void *callbackData, int eventData1, int eventData2) | |
1462 { | |
28
1e4ecf64b485
Remove references to unused DDSBes
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
27
diff
changeset
|
1463 double frequency ; |
0 | 1464 |
28
1e4ecf64b485
Remove references to unused DDSBes
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
27
diff
changeset
|
1465 switch (event) { |
0 | 1466 case EVENT_COMMIT: |
28
1e4ecf64b485
Remove references to unused DDSBes
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
27
diff
changeset
|
1467 GetCtrlVal(MainPanel, control, &frequency); |
0 | 1468 |
28
1e4ecf64b485
Remove references to unused DDSBes
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
27
diff
changeset
|
1469 switch (control) { |
1e4ecf64b485
Remove references to unused DDSBes
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
27
diff
changeset
|
1470 case PANEL_DDS1: |
1e4ecf64b485
Remove references to unused DDSBes
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
27
diff
changeset
|
1471 DDS4xAD9912_SetFrequency(&DDS4xAD9912, 1, frequency); |
1e4ecf64b485
Remove references to unused DDSBes
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
27
diff
changeset
|
1472 break; |
1e4ecf64b485
Remove references to unused DDSBes
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
27
diff
changeset
|
1473 case PANEL_DDS2: |
1e4ecf64b485
Remove references to unused DDSBes
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
27
diff
changeset
|
1474 DDS4xAD9912_SetFrequency(&DDS4xAD9912, 2, frequency); |
1e4ecf64b485
Remove references to unused DDSBes
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
27
diff
changeset
|
1475 break; |
1e4ecf64b485
Remove references to unused DDSBes
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
27
diff
changeset
|
1476 case PANEL_DDS3: |
1e4ecf64b485
Remove references to unused DDSBes
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
27
diff
changeset
|
1477 DDS4xAD9912_SetFrequency(&DDS4xAD9912, 3, frequency); |
1e4ecf64b485
Remove references to unused DDSBes
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
27
diff
changeset
|
1478 break; |
1e4ecf64b485
Remove references to unused DDSBes
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
27
diff
changeset
|
1479 case PANEL_DDS4: |
1e4ecf64b485
Remove references to unused DDSBes
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
27
diff
changeset
|
1480 DDS4xAD9912_SetFrequency(&DDS4xAD9912, 4, frequency); |
1e4ecf64b485
Remove references to unused DDSBes
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
27
diff
changeset
|
1481 break; |
1e4ecf64b485
Remove references to unused DDSBes
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
27
diff
changeset
|
1482 } |
1e4ecf64b485
Remove references to unused DDSBes
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
27
diff
changeset
|
1483 } |
0 | 1484 return 0; |
1485 } | |
1486 | |
1487 int CVICALLBACK CB_ChangeDDSStep (int panel, int control, int event, | |
1488 void *callbackData, int eventData1, int eventData2) | |
1489 { | |
1490 double Step ; | |
1491 | |
1492 switch (event) | |
1493 { | |
1494 case EVENT_COMMIT: | |
28
1e4ecf64b485
Remove references to unused DDSBes
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
27
diff
changeset
|
1495 GetCtrlVal(MainPanel, control, &Step); |
1e4ecf64b485
Remove references to unused DDSBes
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
27
diff
changeset
|
1496 if (control==PANEL_DDS1STEP) { SetCtrlAttribute(panel, PANEL_DDS1, ATTR_INCR_VALUE, Step); } |
1e4ecf64b485
Remove references to unused DDSBes
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
27
diff
changeset
|
1497 if (control==PANEL_DDS2STEP) { SetCtrlAttribute(panel, PANEL_DDS2, ATTR_INCR_VALUE, Step); } |
1e4ecf64b485
Remove references to unused DDSBes
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
27
diff
changeset
|
1498 if (control==PANEL_DDS3STEP) { SetCtrlAttribute(panel, PANEL_DDS3, ATTR_INCR_VALUE, Step); } |
1e4ecf64b485
Remove references to unused DDSBes
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
27
diff
changeset
|
1499 if (control==PANEL_DDS4STEP) { SetCtrlAttribute(panel, PANEL_DDS4, ATTR_INCR_VALUE, Step); } |
0 | 1500 break; |
1501 case EVENT_RIGHT_CLICK: | |
1502 | |
1503 break; | |
1504 | |
1505 } | |
1506 return 0; | |
1507 } | |
1508 | |
1509 int CVICALLBACK CB_ChangeMath (int panel, int control, int event, | |
1510 void *callbackData, int eventData1, int eventData2) | |
1511 { | |
24
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1512 int len; |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1513 char *string; |
0 | 1514 |
1515 switch (event) | |
1516 { | |
1517 case EVENT_COMMIT: | |
24
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1518 GetCtrlAttribute(panel, control, ATTR_STRING_TEXT_LENGTH, &len); |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1519 string = (char *)malloc(sizeof(char) * (len + 1)); |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1520 GetCtrlVal(panel, control, string); |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1521 switch (control) { |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1522 case PANEL_MATHSTRING1: |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1523 mupSetExpr(MathParser1, string); |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1524 break; |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1525 case PANEL_MATHSTRING2: |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1526 mupSetExpr(MathParser2, string); |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1527 break; |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1528 case PANEL_MATHSTRING3: |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1529 mupSetExpr(MathParser3, string); |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1530 break; |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1531 case PANEL_MATHSTRING4: |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1532 mupSetExpr(MathParser4, string); |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1533 break; |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1534 case PANEL_MATHSTRING5: |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1535 mupSetExpr(MathParser5, string); |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1536 break; |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1537 } |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1538 free(string); |
0 | 1539 break; |
1540 } | |
1541 return 0; | |
1542 } | |
1543 | |
1544 int CVICALLBACK CB_ChangeN (int panel, int control, int event, | |
1545 void *callbackData, int eventData1, int eventData2) | |
1546 { | |
1547 | |
1548 switch (event) | |
1549 { | |
1550 case EVENT_COMMIT: | |
1551 if (control==PANEL_N1CHOICE) GetCtrlVal(MainPanel, control, &N1) ; | |
1552 if (control==PANEL_N2CHOICE) GetCtrlVal(MainPanel, control, &N2) ; | |
1553 if (control==PANEL_N3CHOICE) GetCtrlVal(MainPanel, control, &N3) ; | |
1554 break; | |
1555 } | |
1556 return 0; | |
1557 } | |
1558 | |
1559 int CVICALLBACK CB_OnPlus10k (int panel, int control, int event, | |
1560 void *callbackData, int eventData1, int eventData2) | |
1561 { | |
1562 double Frequency ; | |
1563 | |
1564 switch (event) | |
24
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1565 { |
0 | 1566 case EVENT_COMMIT: |
24
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1567 switch (control) |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1568 { |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1569 case PANEL_PLUS10KDDS1: |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1570 GetCtrlVal(MainPanel, PANEL_DDS1, &Frequency); |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1571 Frequency += 10000.0; |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1572 DDS4xAD9912_SetFrequency(&DDS4xAD9912, 1, Frequency); |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1573 SetCtrlVal(MainPanel, PANEL_DDS1, Frequency); |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1574 break; |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1575 case PANEL_PLUS10KDDS2: |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1576 GetCtrlVal(MainPanel, PANEL_DDS2, &Frequency); |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1577 Frequency += 10000.0; |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1578 DDS4xAD9912_SetFrequency(&DDS4xAD9912, 2, Frequency); |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1579 SetCtrlVal(MainPanel, PANEL_DDS2, Frequency); |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1580 break; |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1581 case PANEL_PLUS10KDDS3: |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1582 GetCtrlVal(MainPanel, PANEL_DDS3, &Frequency); |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1583 Frequency += 10000.0; |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1584 DDS4xAD9912_SetFrequency(&DDS4xAD9912, 3, Frequency); |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1585 SetCtrlVal(MainPanel, PANEL_DDS3, Frequency); |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1586 break; |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1587 case PANEL_PLUS10KDDS4: |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1588 GetCtrlVal(MainPanel, PANEL_DDS4, &Frequency); |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1589 Frequency += 10000.0; |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1590 DDS4xAD9912_SetFrequency(&DDS4xAD9912, 4, Frequency); |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1591 SetCtrlVal(MainPanel, PANEL_DDS4, Frequency); |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1592 break; |
0 | 1593 } |
1594 break; | |
24
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1595 } |
0 | 1596 return 0; |
1597 } | |
1598 | |
24
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1599 |
0 | 1600 int CVICALLBACK CB_OnMinus10k (int panel, int control, int event, |
1601 void *callbackData, int eventData1, int eventData2) | |
1602 { | |
24
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1603 double Frequency; |
0 | 1604 |
1605 switch (event) | |
24
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1606 { |
0 | 1607 case EVENT_COMMIT: |
24
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1608 switch (control) |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1609 { |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1610 case PANEL_MINUS10KDDS1: |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1611 GetCtrlVal(MainPanel, PANEL_DDS1, &Frequency); |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1612 Frequency -= 10000.0; |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1613 DDS4xAD9912_SetFrequency(&DDS4xAD9912, 1, Frequency); |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1614 SetCtrlVal(MainPanel, PANEL_DDS1, Frequency); |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1615 break; |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1616 case PANEL_MINUS10KDDS2: |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1617 GetCtrlVal(MainPanel, PANEL_DDS2, &Frequency); |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1618 Frequency -= 10000.0; |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1619 DDS4xAD9912_SetFrequency(&DDS4xAD9912, 2, Frequency); |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1620 SetCtrlVal(MainPanel, PANEL_DDS2, Frequency); |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1621 break; |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1622 case PANEL_MINUS10KDDS3: |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1623 GetCtrlVal(MainPanel, PANEL_DDS3, &Frequency); |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1624 Frequency -= 10000.0; |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1625 DDS4xAD9912_SetFrequency(&DDS4xAD9912, 3, Frequency); |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1626 SetCtrlVal(MainPanel, PANEL_DDS3, Frequency); |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1627 break; |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1628 case PANEL_MINUS10KDDS4: |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1629 GetCtrlVal(MainPanel, PANEL_DDS4, &Frequency); |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1630 Frequency -= 10000.0; |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1631 DDS4xAD9912_SetFrequency(&DDS4xAD9912, 4, Frequency); |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1632 SetCtrlVal(MainPanel, PANEL_DDS4, Frequency); |
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1633 break; |
0 | 1634 } |
1635 break; | |
24
b838371c7a91
Code cleanup and dead code removal
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
23
diff
changeset
|
1636 } |
0 | 1637 return 0; |
1638 } | |
1639 | |
1640 | |
17
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1641 int CVICALLBACK CB_OnAcceptN (int panel, int control, int event, |
0 | 1642 void *callbackData, int eventData1, int eventData2) |
1643 { | |
84
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
1644 switch (event) { |
0 | 1645 case EVENT_COMMIT: |
84
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
1646 switch (measuring) { |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
1647 case MEASURING_N_Lo: |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
1648 N1 = round(N_1); |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
1649 SetCtrlVal(MainPanel, PANEL_N1CHOICE, N1); |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
1650 break; |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
1651 case MEASURING_N_Hg: |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
1652 N2 = round(N_2); |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
1653 SetCtrlVal(MainPanel, PANEL_N2CHOICE, N2); |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
1654 break; |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
1655 case MEASURING_N_Sr: |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
1656 N3 = round(N_3); |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
1657 SetCtrlVal(MainPanel, PANEL_N3CHOICE, N3); |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
1658 break; |
17
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1659 } |
0 | 1660 break; |
17
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1661 } |
0 | 1662 return 0; |
1663 } | |
1664 | |
1665 | |
1666 int CVICALLBACK CB_OnNCalculus (int panel, int control, int event, | |
1667 void *callbackData, int eventData1, int eventData2) | |
1668 { | |
1669 | |
84
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
1670 int visible; |
0 | 1671 |
84
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
1672 switch (event) { |
0 | 1673 case EVENT_COMMIT: |
84
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
1674 switch (control) { |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
1675 case PANEL_N1CALCULUS: |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
1676 GetPanelAttribute(CalcNPanel, ATTR_VISIBLE, &visible); |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
1677 if (! visible) { |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
1678 measuring = MEASURING_N_Lo; |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
1679 SetCtrlVal(CalcNPanel, CALCN_INTEGRATIONTIME, DeltaT_1); |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
1680 SetCtrlVal(CalcNPanel, CALCN_SLOPETIME, SlopeTime1); |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
1681 SetCtrlVal(CalcNPanel, CALCN_DELTAFREQ, DeltakHz_1); |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
1682 SetPanelAttribute(CalcNPanel, ATTR_TITLE, "Calculate N_Lo"); |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
1683 DisplayPanel(CalcNPanel); |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
1684 } |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
1685 break; |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
1686 case PANEL_N2CALCULUS: |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
1687 GetPanelAttribute(CalcNPanel, ATTR_VISIBLE, &visible); |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
1688 if (! visible) { |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
1689 measuring = MEASURING_N_Hg; |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
1690 SetCtrlVal(CalcNPanel, CALCN_INTEGRATIONTIME, DeltaT_2); |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
1691 SetCtrlVal(CalcNPanel, CALCN_SLOPETIME, SlopeTime2); |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
1692 SetCtrlVal(CalcNPanel, CALCN_DELTAFREQ, DeltakHz_2); |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
1693 SetPanelAttribute(CalcNPanel, ATTR_TITLE, "Calculate N_Hg"); |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
1694 DisplayPanel(CalcNPanel); |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
1695 } |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
1696 break; |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
1697 case PANEL_N3CALCULUS: |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
1698 GetPanelAttribute(CalcNPanel, ATTR_VISIBLE, &visible); |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
1699 if (! visible) { |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
1700 measuring = MEASURING_N_Sr; |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
1701 SetCtrlVal(CalcNPanel, CALCN_INTEGRATIONTIME, DeltaT_3); |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
1702 SetCtrlVal(CalcNPanel, CALCN_SLOPETIME, SlopeTime3); |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
1703 SetCtrlVal(CalcNPanel, CALCN_DELTAFREQ, DeltakHz_3); |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
1704 SetPanelAttribute(CalcNPanel, ATTR_TITLE, "Calculate N_Sr"); |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
1705 DisplayPanel(CalcNPanel); |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
1706 } |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
1707 break; |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
1708 } |
0 | 1709 break; |
84
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
1710 } |
0 | 1711 return 0; |
1712 } | |
1713 | |
1714 | |
1715 int CVICALLBACK CB_OnStartNCalculus (int panel, int control, int event, | |
1716 void *callbackData, int eventData1, int eventData2) | |
1717 { | |
84
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
1718 switch (event) { |
0 | 1719 case EVENT_COMMIT: |
84
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
1720 switch (measuring) { |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
1721 case MEASURING_N_Lo: |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
1722 GetCtrlVal(CalcNPanel, CALCN_INTEGRATIONTIME, &DeltaT_1); |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
1723 GetCtrlVal(CalcNPanel, CALCN_SLOPETIME, &SlopeTime1); |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
1724 GetCtrlVal(CalcNPanel, CALCN_DELTAFREQ, &DeltakHz_1); |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
1725 Measuring_1 = TRUE; |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
1726 break; |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
1727 case MEASURING_N_Hg: |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
1728 GetCtrlVal(CalcNPanel, CALCN_INTEGRATIONTIME, &DeltaT_2); |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
1729 GetCtrlVal(CalcNPanel, CALCN_SLOPETIME, &SlopeTime2); |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
1730 GetCtrlVal(CalcNPanel, CALCN_DELTAFREQ, &DeltakHz_2); |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
1731 Measuring_2 = TRUE; |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
1732 break; |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
1733 case MEASURING_N_Sr: |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
1734 GetCtrlVal(CalcNPanel, CALCN_INTEGRATIONTIME, &DeltaT_3); |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
1735 GetCtrlVal(CalcNPanel, CALCN_SLOPETIME, &SlopeTime3); |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
1736 GetCtrlVal(CalcNPanel, CALCN_DELTAFREQ, &DeltakHz_3); |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
1737 Measuring_3 = TRUE; |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
1738 break; |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
1739 } |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
1740 break; |
17
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1741 } |
0 | 1742 return 0; |
1743 } | |
1744 | |
1745 | |
1746 | |
1747 int CVICALLBACK CB_OnNStop (int panel, int control, int event, | |
1748 void *callbackData, int eventData1, int eventData2) | |
1749 { | |
17
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1750 switch (event) { |
0 | 1751 case EVENT_COMMIT: |
84
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
1752 HidePanel(CalcNPanel); |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
1753 switch (measuring) { |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
1754 case MEASURING_N_Lo: |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
1755 Measuring_1 = FALSE; |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
1756 SetCtrlVal(MainPanel, PANEL_DDS1, FrequDDS1); |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
1757 DDS4xAD9912_SetFrequency(&DDS4xAD9912, 1, FrequDDS1); |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
1758 SetCtrlVal(MainPanel, PANEL_DDS2, FrequencyDDSBesInit); |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
1759 DDS4xAD9912_SetFrequency(&DDS4xAD9912, 2, FrequencyDDSBesInit); |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
1760 break; |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
1761 case MEASURING_N_Hg: |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
1762 Measuring_2 = FALSE; |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
1763 SetCtrlVal(MainPanel, PANEL_DDS1, FrequDDS1); |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
1764 DDS4xAD9912_SetFrequency(&DDS4xAD9912, 1, FrequDDS1); |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
1765 SetCtrlVal(MainPanel, PANEL_DDS2, FrequencyDDSBesInit); |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
1766 DDS4xAD9912_SetFrequency(&DDS4xAD9912, 2, FrequencyDDSBesInit); |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
1767 SetCtrlVal(MainPanel, PANEL_DDS3, FrequencyDDS3Init); |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
1768 DDS4xAD9912_SetFrequency(&DDS4xAD9912, 3, FrequencyDDS3Init); |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
1769 break; |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
1770 case MEASURING_N_Sr: |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
1771 Measuring_3 = FALSE; |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
1772 break; |
0 | 1773 } |
1774 break; | |
17
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1775 } |
0 | 1776 return 0; |
1777 } | |
1778 | |
1779 | |
1780 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
|
1781 void *callbackData, int eventData1, int eventData2) |
0 | 1782 { |
1783 | |
17
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1784 switch (event) { |
0 | 1785 case EVENT_COMMIT: |
17
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1786 switch (control) |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1787 { |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1788 case PANEL_FINDSIGN1: |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1789 tbegin1 = utc; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1790 Frepbefore1 = Math1; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1791 GetCtrlVal(MainPanel, PANEL_DDS1, &Frequency1) ; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1792 SetCtrlVal(MainPanel, PANEL_DDS1, Frequency1+Frequencystep1) ; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1793 DDS4xAD9912_SetFrequency(&DDS4xAD9912, 1, Frequency1+Frequencystep1); |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1794 Getsign1 = TRUE; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1795 break; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1796 case PANEL_FINDSIGN2: |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1797 tbegin2 = utc; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1798 Frepbefore2 = Math1; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1799 Ch2before = Ch2; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1800 GetCtrlVal(MainPanel, PANEL_DDS1, &Frequency2) ; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1801 SetCtrlVal(MainPanel, PANEL_DDS1, Frequency2+Frequencystep2) ; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1802 DDS4xAD9912_SetFrequency(&DDS4xAD9912, 1, Frequency2+Frequencystep2); |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1803 Getsign2 = TRUE; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1804 break; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1805 case PANEL_FINDSIGN3: |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1806 tbegin3 = utc; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1807 Frepbefore3 = Math1; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1808 GetCtrlVal(MainPanel, PANEL_DDS4, &Frequency3) ; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1809 SetCtrlVal(MainPanel, PANEL_DDS4, Frequency3+Frequencystep3) ; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1810 DDS4xAD9912_SetFrequency(&DDS4xAD9912, 4, Frequency3+Frequencystep3); |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1811 Getsign3 = TRUE; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1812 break; |
0 | 1813 } |
1814 break; | |
17
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1815 } |
0 | 1816 return 0; |
17
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
1817 } |
0 | 1818 |
1819 | |
1820 int CVICALLBACK CB_OnFind275K (int panel, int control, int event, | |
1821 void *callbackData, int eventData1, int eventData2) | |
42 | 1822 { |
1823 double frequency; | |
0 | 1824 |
1825 switch (event) | |
42 | 1826 { |
0 | 1827 case EVENT_COMMIT: |
42 | 1828 switch (control) |
1829 { | |
1830 case PANEL_FIND275K2: | |
1831 GetCtrlVal(MainPanel, PANEL_DDS2, &frequency); | |
1832 frequency = frequency + 275000 - Ch4; | |
1833 SetCtrlVal(MainPanel, PANEL_DDS2, frequency) ; | |
1834 DDS4xAD9912_SetFrequency(&DDS4xAD9912, 2, frequency); | |
1835 break; | |
0 | 1836 |
42 | 1837 case PANEL_FIND10K3: |
1838 GetCtrlVal(MainPanel, PANEL_DDS3, &frequency); | |
1839 frequency = frequency + 10000 - Ch2; | |
1840 SetCtrlVal(MainPanel, PANEL_DDS3, frequency); | |
1841 DDS4xAD9912_SetFrequency(&DDS4xAD9912, 3, frequency); | |
1842 break; | |
1843 } | |
1844 break; | |
1845 } | |
0 | 1846 return 0; |
42 | 1847 } |
0 | 1848 |
1849 | |
1850 int CVICALLBACK CB_OnChangeNdiv (int panel, int control, int event, | |
1851 void *callbackData, int eventData1, int eventData2) | |
1852 { | |
84
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
1853 switch (event) { |
0 | 1854 case EVENT_COMMIT: |
84
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
1855 GetCtrlVal(MainPanel, PANEL_CHANGENDIV, &Ndiv); |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
1856 FrequDDS1 = 880000000.0 / Ndiv; |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
1857 SetCtrlVal(MainPanel, PANEL_DDS1, FrequDDS1); |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
1858 DDS4xAD9912_SetFrequency(&DDS4xAD9912, 1, FrequDDS1); |
0 | 1859 break; |
84
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
1860 } |
0 | 1861 return 0; |
1862 } | |
1863 | |
1864 | |
48
70980f27e1a4
Simplify dedrifting interface
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
47
diff
changeset
|
1865 int CVICALLBACK CB_MeasureSlope (int panel, int control, int event, |
0 | 1866 void *callbackData, int eventData1, int eventData2) |
1867 { | |
70
a945f2b7bef6
Fix slope measurement again
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
69
diff
changeset
|
1868 switch (event) { |
0 | 1869 case EVENT_COMMIT: |
1870 | |
70
a945f2b7bef6
Fix slope measurement again
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
69
diff
changeset
|
1871 GetCtrlVal(panel, control, &SlopeMeasuring); |
a945f2b7bef6
Fix slope measurement again
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
69
diff
changeset
|
1872 if (SlopeMeasuring) { |
35
914e0f16b19a
Update displayed dedrifting slope when it is modified and not at each timer tick
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
34
diff
changeset
|
1873 |
914e0f16b19a
Update displayed dedrifting slope when it is modified and not at each timer tick
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
34
diff
changeset
|
1874 SlopeMeasuringTimeBegin = utc; |
70
a945f2b7bef6
Fix slope measurement again
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
69
diff
changeset
|
1875 |
73
1dfaf5ef0352
Refactor mean and slope measurement
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
70
diff
changeset
|
1876 stat_zero(&freq); |
35
914e0f16b19a
Update displayed dedrifting slope when it is modified and not at each timer tick
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
34
diff
changeset
|
1877 |
914e0f16b19a
Update displayed dedrifting slope when it is modified and not at each timer tick
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
34
diff
changeset
|
1878 Nratio = -1; |
70
a945f2b7bef6
Fix slope measurement again
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
69
diff
changeset
|
1879 MoyMath2 = 0.0; |
35
914e0f16b19a
Update displayed dedrifting slope when it is modified and not at each timer tick
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
34
diff
changeset
|
1880 CenterFrequencyCh2ToDetermine = TRUE ; |
914e0f16b19a
Update displayed dedrifting slope when it is modified and not at each timer tick
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
34
diff
changeset
|
1881 CenterFrequencyCh2 = 0.0; |
33 | 1882 |
82
47860259afe2
Implement logging
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
80
diff
changeset
|
1883 logmsg("Start slope measurement"); |
47860259afe2
Implement logging
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
80
diff
changeset
|
1884 |
33 | 1885 } else { |
70
a945f2b7bef6
Fix slope measurement again
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
69
diff
changeset
|
1886 if (! KeepSlope) { |
66
aa125ad6e842
Clarify variables names in dedrifting code
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
65
diff
changeset
|
1887 appliedSlope = 0.0; |
70
a945f2b7bef6
Fix slope measurement again
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
69
diff
changeset
|
1888 DDSFox_SetSweepRate(&DDS1xAD9956, appliedSlope); |
a945f2b7bef6
Fix slope measurement again
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
69
diff
changeset
|
1889 SetCtrlVal(MainPanel, PANEL_SLOPE_APPLIED, appliedSlope); |
a945f2b7bef6
Fix slope measurement again
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
69
diff
changeset
|
1890 } |
a945f2b7bef6
Fix slope measurement again
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
69
diff
changeset
|
1891 if (! KeepFrequ) { |
a945f2b7bef6
Fix slope measurement again
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
69
diff
changeset
|
1892 DDSFox_Set(&DDS1xAD9956, DEDRIFT_DDS_FREQUENCY, appliedSlope); |
a945f2b7bef6
Fix slope measurement again
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
69
diff
changeset
|
1893 } |
73
1dfaf5ef0352
Refactor mean and slope measurement
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
70
diff
changeset
|
1894 stat_zero(&freq); |
1dfaf5ef0352
Refactor mean and slope measurement
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
70
diff
changeset
|
1895 SetCtrlVal(panel, PANEL_SLOPE_MEASURED, freq.slope); |
82
47860259afe2
Implement logging
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
80
diff
changeset
|
1896 |
47860259afe2
Implement logging
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
80
diff
changeset
|
1897 logmsg("Stop slope measurement"); |
33 | 1898 } |
0 | 1899 break; |
33 | 1900 } |
0 | 1901 return 0; |
1902 } | |
1903 | |
1904 | |
14
783407954cdf
Minor code cleanup
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
10
diff
changeset
|
1905 int CVICALLBACK CB_OnResetSlope (int panel, int control, int event, |
783407954cdf
Minor code cleanup
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
10
diff
changeset
|
1906 void *callbackData, int eventData1, int eventData2) |
0 | 1907 { |
1908 | |
14
783407954cdf
Minor code cleanup
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
10
diff
changeset
|
1909 switch (event) { |
0 | 1910 case EVENT_COMMIT: |
14
783407954cdf
Minor code cleanup
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
10
diff
changeset
|
1911 CenterFrequencyCh2 = 0.0; |
783407954cdf
Minor code cleanup
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
10
diff
changeset
|
1912 MoyMath2 = 0.0; |
783407954cdf
Minor code cleanup
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
10
diff
changeset
|
1913 Nratio = -1; |
783407954cdf
Minor code cleanup
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
10
diff
changeset
|
1914 CenterFrequencyCh2ToDetermine = TRUE ; |
66
aa125ad6e842
Clarify variables names in dedrifting code
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
65
diff
changeset
|
1915 appliedSlope = 0.0; |
aa125ad6e842
Clarify variables names in dedrifting code
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
65
diff
changeset
|
1916 SetCtrlVal(panel, PANEL_SLOPE_APPLIED, appliedSlope); |
aa125ad6e842
Clarify variables names in dedrifting code
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
65
diff
changeset
|
1917 DDSFox_Set(&DDS1xAD9956, DEDRIFT_DDS_FREQUENCY, appliedSlope); |
82
47860259afe2
Implement logging
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
80
diff
changeset
|
1918 logmsg("Reset slope measurement"); |
0 | 1919 break; |
14
783407954cdf
Minor code cleanup
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
10
diff
changeset
|
1920 } |
0 | 1921 return 0; |
1922 } | |
1923 | |
1924 | |
14
783407954cdf
Minor code cleanup
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
10
diff
changeset
|
1925 int CVICALLBACK CB_ChangeSlopeTime (int panel, int control, int event, |
783407954cdf
Minor code cleanup
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
10
diff
changeset
|
1926 void *callbackData, int eventData1, int eventData2) |
0 | 1927 { |
1928 | |
14
783407954cdf
Minor code cleanup
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
10
diff
changeset
|
1929 switch (event) { |
0 | 1930 case EVENT_COMMIT: |
14
783407954cdf
Minor code cleanup
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
10
diff
changeset
|
1931 GetCtrlVal(MainPanel, PANEL_SLOPETIME, &TimetoSlope); |
0 | 1932 break; |
14
783407954cdf
Minor code cleanup
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
10
diff
changeset
|
1933 } |
0 | 1934 return 0; |
1935 } | |
1936 | |
1937 | |
1938 int CVICALLBACK CB_OnCROX (int panel, int control, int event, | |
1939 void *callbackData, int eventData1, int eventData2) | |
1940 { | |
34
1e4b8ba97faf
Cleanup code handling dedrifing options
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
33
diff
changeset
|
1941 switch (event) { |
0 | 1942 case EVENT_COMMIT: |
34
1e4b8ba97faf
Cleanup code handling dedrifing options
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
33
diff
changeset
|
1943 switch (control) { |
1e4b8ba97faf
Cleanup code handling dedrifing options
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
33
diff
changeset
|
1944 |
1e4b8ba97faf
Cleanup code handling dedrifing options
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
33
diff
changeset
|
1945 case PANEL_CHECKBOX_CORRFREQU: |
1e4b8ba97faf
Cleanup code handling dedrifing options
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
33
diff
changeset
|
1946 // enable frequency correction |
1e4b8ba97faf
Cleanup code handling dedrifing options
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
33
diff
changeset
|
1947 GetCtrlVal(MainPanel, PANEL_CHECKBOX_CORRFREQU, &FrequCorrec); |
1e4b8ba97faf
Cleanup code handling dedrifing options
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
33
diff
changeset
|
1948 break; |
0 | 1949 |
34
1e4b8ba97faf
Cleanup code handling dedrifing options
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
33
diff
changeset
|
1950 case PANEL_CHECKBOX_KEEP: |
1e4b8ba97faf
Cleanup code handling dedrifing options
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
33
diff
changeset
|
1951 // keep current dedrifting frequency when dedrifting is disabled |
1e4b8ba97faf
Cleanup code handling dedrifing options
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
33
diff
changeset
|
1952 GetCtrlVal(MainPanel, PANEL_CHECKBOX_KEEP, &KeepFrequ); |
1e4b8ba97faf
Cleanup code handling dedrifing options
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
33
diff
changeset
|
1953 break; |
1e4b8ba97faf
Cleanup code handling dedrifing options
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
33
diff
changeset
|
1954 |
1e4b8ba97faf
Cleanup code handling dedrifing options
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
33
diff
changeset
|
1955 case PANEL_CHECKBOX_KEEPSLOPE: |
1e4b8ba97faf
Cleanup code handling dedrifing options
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
33
diff
changeset
|
1956 // keep current dedrifting slope when dedrifting is disabled |
1e4b8ba97faf
Cleanup code handling dedrifing options
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
33
diff
changeset
|
1957 GetCtrlVal(MainPanel, PANEL_CHECKBOX_KEEPSLOPE, &KeepSlope); |
1e4b8ba97faf
Cleanup code handling dedrifing options
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
33
diff
changeset
|
1958 break; |
0 | 1959 } |
1960 break; | |
34
1e4b8ba97faf
Cleanup code handling dedrifing options
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
33
diff
changeset
|
1961 } |
0 | 1962 return 0; |
1963 } | |
1964 | |
1965 | |
1966 | |
1967 int CVICALLBACK CB_OnReCentering (int panel, int control, int event, | |
1968 void *callbackData, int eventData1, int eventData2) | |
1969 { | |
1970 bool BoxChecked = FALSE; | |
1971 | |
1972 switch (event) | |
1973 { | |
1974 case EVENT_COMMIT: | |
1975 | |
1976 if (control== PANEL_CHECKBOX_RECENTER) | |
1977 { | |
1978 GetCtrlVal(MainPanel, PANEL_CHECKBOX_RECENTER, &BoxChecked) ; | |
1979 if (BoxChecked) { | |
1980 KeepCentering=TRUE ; | |
1981 CenteringTimeBegin275K=utc; | |
1982 CenteringTimeBegin10K=utc; | |
1983 } | |
1984 else {KeepCentering=FALSE ;} | |
1985 | |
1986 } | |
1987 | |
1988 | |
1989 break; | |
1990 | |
1991 } | |
1992 return 0; | |
1993 } | |
1994 | |
1995 | |
56
6e73fb3d94fa
Simplyfy slope measurement code
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
55
diff
changeset
|
1996 int CVICALLBACK CB_OnStopSlopeCancellingOnUnlocked (int panel, int control, int event, |
0 | 1997 void *callbackData, int eventData1, int eventData2) |
1998 { | |
1999 switch (event) | |
20
3a7f088d4960
Get rid of unused variables. Some minor coding style improvements
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
17
diff
changeset
|
2000 { |
0 | 2001 case EVENT_COMMIT: |
56
6e73fb3d94fa
Simplyfy slope measurement code
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
55
diff
changeset
|
2002 GetCtrlVal(MainPanel, PANEL_CHECKBOX_STOPIFAUTODE, &StopSlopeCancellingOnUnlocked); |
20
3a7f088d4960
Get rid of unused variables. Some minor coding style improvements
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
17
diff
changeset
|
2003 break; |
3a7f088d4960
Get rid of unused variables. Some minor coding style improvements
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
17
diff
changeset
|
2004 } |
0 | 2005 return 0; |
2006 } | |
2
bd7501b65f56
Implement reference selection (microwave or Hg cavity) for slope cancelling
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
1
diff
changeset
|
2007 |
17
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2008 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
|
2009 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
|
2010 { |
bd7501b65f56
Implement reference selection (microwave or Hg cavity) for slope cancelling
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
1
diff
changeset
|
2011 switch (event) |
bd7501b65f56
Implement reference selection (microwave or Hg cavity) for slope cancelling
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
1
diff
changeset
|
2012 { |
bd7501b65f56
Implement reference selection (microwave or Hg cavity) for slope cancelling
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
1
diff
changeset
|
2013 case EVENT_COMMIT: |
bd7501b65f56
Implement reference selection (microwave or Hg cavity) for slope cancelling
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
1
diff
changeset
|
2014 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
|
2015 break; |
bd7501b65f56
Implement reference selection (microwave or Hg cavity) for slope cancelling
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
1
diff
changeset
|
2016 } |
bd7501b65f56
Implement reference selection (microwave or Hg cavity) for slope cancelling
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
1
diff
changeset
|
2017 return 0; |
bd7501b65f56
Implement reference selection (microwave or Hg cavity) for slope cancelling
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
1
diff
changeset
|
2018 } |
17
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2019 |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2020 |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2021 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
|
2022 void *callbackData, int eventData1, int eventData2) |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2023 { |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2024 int visible; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2025 double wl; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2026 |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2027 switch (event) |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2028 { |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2029 case EVENT_COMMIT: |
64 | 2030 // be prepared to support more N estimates for different beat notes |
17
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2031 switch (control) |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2032 { |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2033 case PANEL_ESTIMATE_N3: |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2034 GetPanelAttribute(EstimateN3Panel, ATTR_VISIBLE , &visible); |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2035 if (! visible) { |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2036 DisplayPanel(EstimateN3Panel); |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2037 } |
64 | 2038 // set current frep |
17
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2039 SetCtrlVal(EstimateN3Panel, ESTIMATEN3_FREP, 250e6 + Math1); |
64 | 2040 // default wavelenght for Sr cavity |
17
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2041 GetCtrlVal(EstimateN3Panel, ESTIMATEN3_WAVELENGTH, &wl); |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2042 if (wl == 0.0) |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2043 SetCtrlVal(EstimateN3Panel, ESTIMATEN3_WAVELENGTH, 698.50); |
64 | 2044 // reset N3 estimate |
17
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2045 SetCtrlVal(EstimateN3Panel, ESTIMATEN3_N, 0.0); |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2046 break; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2047 } |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2048 break; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2049 } |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2050 |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2051 return 0; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2052 } |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2053 |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2054 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
|
2055 void *callbackData, int eventData1, int eventData2) |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2056 { |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2057 int visible; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2058 |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2059 switch (event) |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2060 { |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2061 case EVENT_COMMIT: |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2062 GetPanelAttribute(panel, ATTR_VISIBLE, &visible); |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2063 if (visible) |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2064 HidePanel(panel); |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2065 break; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2066 } |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2067 return 0; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2068 } |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2069 |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2070 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
|
2071 void *callbackData, int eventData1, int eventData2) |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2072 { |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2073 switch (event) |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2074 { |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2075 case EVENT_COMMIT: |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2076 GetCtrlVal(panel, ESTIMATEN3_N, &N3); |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2077 SetCtrlVal(MainPanel, PANEL_N3CHOICE, N3); |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2078 HidePanel(panel); |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2079 break; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2080 } |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2081 return 0; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2082 } |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2083 |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2084 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
|
2085 void *callbackData, int eventData1, int eventData2) |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2086 { |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2087 double frep, wl, N; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2088 |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2089 switch (event) |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2090 { |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2091 case EVENT_COMMIT: |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2092 GetCtrlVal(panel, ESTIMATEN3_FREP, &frep); |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2093 GetCtrlVal(panel, ESTIMATEN3_WAVELENGTH, &wl); |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2094 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
|
2095 SetCtrlVal(panel, ESTIMATEN3_N, N); |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2096 break; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2097 } |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2098 return 0; |
9cadd12e7722
Implement N3 measurement. Large code cleanup.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
14
diff
changeset
|
2099 } |
30
56095062acd4
Allow manual setting of frequency dedrifting rate
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
29
diff
changeset
|
2100 |
56095062acd4
Allow manual setting of frequency dedrifting rate
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
29
diff
changeset
|
2101 int CVICALLBACK CB_SetSlope (int panel, int control, int event, |
56095062acd4
Allow manual setting of frequency dedrifting rate
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
29
diff
changeset
|
2102 void *callbackData, int eventData1, int eventData2) |
56095062acd4
Allow manual setting of frequency dedrifting rate
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
29
diff
changeset
|
2103 { |
56095062acd4
Allow manual setting of frequency dedrifting rate
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
29
diff
changeset
|
2104 switch (event) |
56095062acd4
Allow manual setting of frequency dedrifting rate
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
29
diff
changeset
|
2105 { |
56095062acd4
Allow manual setting of frequency dedrifting rate
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
29
diff
changeset
|
2106 case EVENT_COMMIT: |
66
aa125ad6e842
Clarify variables names in dedrifting code
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
65
diff
changeset
|
2107 GetCtrlVal(panel, control, &appliedSlope); |
aa125ad6e842
Clarify variables names in dedrifting code
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
65
diff
changeset
|
2108 DDSFox_SetSweepRate(&DDS1xAD9956, appliedSlope); |
30
56095062acd4
Allow manual setting of frequency dedrifting rate
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
29
diff
changeset
|
2109 break; |
56095062acd4
Allow manual setting of frequency dedrifting rate
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
29
diff
changeset
|
2110 } |
56095062acd4
Allow manual setting of frequency dedrifting rate
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
29
diff
changeset
|
2111 return 0; |
56095062acd4
Allow manual setting of frequency dedrifting rate
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
29
diff
changeset
|
2112 } |
39
2e1b3148d6e6
Add setting to invert the sign of the measured slope on dedrifting
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
37
diff
changeset
|
2113 |
2e1b3148d6e6
Add setting to invert the sign of the measured slope on dedrifting
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
37
diff
changeset
|
2114 int CVICALLBACK CB_InvertSlopeSign (int panel, int control, int event, |
2e1b3148d6e6
Add setting to invert the sign of the measured slope on dedrifting
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
37
diff
changeset
|
2115 void *callbackData, int eventData1, int eventData2) |
2e1b3148d6e6
Add setting to invert the sign of the measured slope on dedrifting
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
37
diff
changeset
|
2116 { |
2e1b3148d6e6
Add setting to invert the sign of the measured slope on dedrifting
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
37
diff
changeset
|
2117 switch (event) |
2e1b3148d6e6
Add setting to invert the sign of the measured slope on dedrifting
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
37
diff
changeset
|
2118 { |
2e1b3148d6e6
Add setting to invert the sign of the measured slope on dedrifting
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
37
diff
changeset
|
2119 case EVENT_COMMIT: |
2e1b3148d6e6
Add setting to invert the sign of the measured slope on dedrifting
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
37
diff
changeset
|
2120 GetCtrlVal(panel, control, &invertSlopeSign); |
2e1b3148d6e6
Add setting to invert the sign of the measured slope on dedrifting
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
37
diff
changeset
|
2121 break; |
2e1b3148d6e6
Add setting to invert the sign of the measured slope on dedrifting
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
37
diff
changeset
|
2122 } |
2e1b3148d6e6
Add setting to invert the sign of the measured slope on dedrifting
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
37
diff
changeset
|
2123 return 0; |
2e1b3148d6e6
Add setting to invert the sign of the measured slope on dedrifting
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
37
diff
changeset
|
2124 } |
48
70980f27e1a4
Simplify dedrifting interface
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
47
diff
changeset
|
2125 |
80
46fe62febcd0
Add dedrifting DDS reset functionality
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
79
diff
changeset
|
2126 int CVICALLBACK CB_ResetDedriftDDS (int panel, int control, int event, |
46fe62febcd0
Add dedrifting DDS reset functionality
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
79
diff
changeset
|
2127 void *callbackData, int eventData1, int eventData2) |
46fe62febcd0
Add dedrifting DDS reset functionality
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
79
diff
changeset
|
2128 { |
46fe62febcd0
Add dedrifting DDS reset functionality
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
79
diff
changeset
|
2129 switch (event) |
46fe62febcd0
Add dedrifting DDS reset functionality
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
79
diff
changeset
|
2130 { |
46fe62febcd0
Add dedrifting DDS reset functionality
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
79
diff
changeset
|
2131 case EVENT_COMMIT: |
46fe62febcd0
Add dedrifting DDS reset functionality
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
79
diff
changeset
|
2132 // stop slope measurement and reset slope |
46fe62febcd0
Add dedrifting DDS reset functionality
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
79
diff
changeset
|
2133 SlopeMeasuring = 0; |
46fe62febcd0
Add dedrifting DDS reset functionality
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
79
diff
changeset
|
2134 SetCtrlVal(panel, PANEL_MEASURE_SLOPE, SlopeMeasuring); |
46fe62febcd0
Add dedrifting DDS reset functionality
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
79
diff
changeset
|
2135 CenterFrequencyCh2 = 0.0; |
46fe62febcd0
Add dedrifting DDS reset functionality
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
79
diff
changeset
|
2136 MoyMath2 = 0.0; |
46fe62febcd0
Add dedrifting DDS reset functionality
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
79
diff
changeset
|
2137 Nratio = -1; |
46fe62febcd0
Add dedrifting DDS reset functionality
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
79
diff
changeset
|
2138 CenterFrequencyCh2ToDetermine = TRUE ; |
46fe62febcd0
Add dedrifting DDS reset functionality
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
79
diff
changeset
|
2139 appliedSlope = 0.0; |
46fe62febcd0
Add dedrifting DDS reset functionality
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
79
diff
changeset
|
2140 SetCtrlVal(panel, PANEL_SLOPE_APPLIED, appliedSlope); |
46fe62febcd0
Add dedrifting DDS reset functionality
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
79
diff
changeset
|
2141 // reset DDS |
46fe62febcd0
Add dedrifting DDS reset functionality
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
79
diff
changeset
|
2142 DDSFox_Reset(&DDS1xAD9956); |
46fe62febcd0
Add dedrifting DDS reset functionality
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
79
diff
changeset
|
2143 DDSFox_SetProfile(&DDS1xAD9956); |
46fe62febcd0
Add dedrifting DDS reset functionality
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
79
diff
changeset
|
2144 DDSFox_SetDiv(&DDS1xAD9956, 1); |
46fe62febcd0
Add dedrifting DDS reset functionality
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
79
diff
changeset
|
2145 DDSFox_Set(&DDS1xAD9956, DEDRIFT_DDS_FREQUENCY, appliedSlope); |
46fe62febcd0
Add dedrifting DDS reset functionality
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
79
diff
changeset
|
2146 break; |
46fe62febcd0
Add dedrifting DDS reset functionality
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
79
diff
changeset
|
2147 } |
46fe62febcd0
Add dedrifting DDS reset functionality
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
79
diff
changeset
|
2148 return 0; |
46fe62febcd0
Add dedrifting DDS reset functionality
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
79
diff
changeset
|
2149 } |
46fe62febcd0
Add dedrifting DDS reset functionality
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
79
diff
changeset
|
2150 |
84
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
2151 int CVICALLBACK CB_ShowLog (int panel, int control, int event, |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
2152 void *callbackData, int eventData1, int eventData2) |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
2153 { |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
2154 switch (event) |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
2155 { |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
2156 case EVENT_COMMIT: |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
2157 SetPanelAttribute(LoggingPanel, ATTR_VISIBLE, 1); |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
2158 break; |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
2159 } |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
2160 return 0; |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
2161 } |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
2162 |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
2163 int CVICALLBACK CB_OnLoggingPanelEvent(int panel, int event, |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
2164 void *callbackData, int eventData1, int eventData2) |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
2165 { |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
2166 switch (event) |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
2167 { |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
2168 case EVENT_CLOSE: |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
2169 SetPanelAttribute(LoggingPanel, ATTR_VISIBLE, 0); |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
2170 break; |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
2171 } |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
2172 return 0; |
c03263186dd7
Rework and cleanup N measurement panels handling. Move logs to dedicated panel.
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
82
diff
changeset
|
2173 } |