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