##// END OF EJS Templates
tmstatistics updated
leroy -
r74:98a2ff79bb0a default
parent child
Show More
@@ -1,1088 +1,1112
1 1 #include "tmstatistics.h"
2 2 #include <QtWidgets>
3 3 #include <QFontInfo>
4 4 #include <stdio.h>
5 5 #include <QFileDialog>
6 6
7 7 TMStatistics::TMStatistics(QWidget *parent) :
8 8 QWidget(parent)
9 9 {
10 10 // Create Fonts
11 11 QFont font;
12 12 font = QFont(this->fontInfo().family(), STATISTICS_FONT_SIZE, QFont::Light);
13 13
14 14 label_UNKNOWN = new QLabel("UNKNOWN");
15 15 label_UNKNOWN_nb = new QLabel("-");
16 16 label_TC_LFR_UPDATE_TIME = new QLabel("TC_LFR_UPDATE_TIME");
17 17 label_TC_LFR_UPDATE_TIME_nb = new QLabel("-");
18 18
19 19 mainLayout = new QGridLayout();
20 20 layout_stat = new QGridLayout(); // TM stastictics
21 21 layout_NORM = new QGridLayout(); // TM_LFR_SCIENCE_NORMAL_
22 22 layout_BURST = new QGridLayout(); // TM_LFR_SCIENCE_BURST_
23 23 layout_SBM1 = new QGridLayout(); // TM_LFR_SCIENCE_SBM1_
24 24 layout_SBM2 = new QGridLayout(); // TM_LFR_SCIENCE_SBM2_
25 25 layout_last = new QGridLayout(); // last TM description
26 26 layout_record = new QVBoxLayout();
27 27
28 28 //***************
29 29 // TM_LFR_TC_EXE_
30 30 label_SUCC = new QLabel("SUCCESS");
31 31 label_INCO = new QLabel("INCONSISTENT");
32 32 label_NOTE = new QLabel("NOT_EXECUTABLE");
33 33 label_NOTI = new QLabel("NOT_IMPLEMENTED");
34 34 label_ERRO = new QLabel("ERROR");
35 35 label_CORR = new QLabel("CORRUPTED");
36 36 label_HK = new QLabel("TM_LFR_HK");
37 37 label_DUMP = new QLabel("TM_LFR_PARAMETER_DUMP");
38 38 //
39 39 label_SUCC_nb = new QLabel("-");
40 40 label_INCO_nb = new QLabel("-");
41 41 label_NOTE_nb = new QLabel("-");
42 42 label_NOTI_nb = new QLabel("-");
43 43 label_ERRO_nb = new QLabel("-");
44 44 label_CORR_nb = new QLabel("-");
45 45 label_HK_nb = new QLabel("-");
46 46 label_DUMP_nb = new QLabel("-");
47 47
48 48 //***********************
49 49 // TM_LFR_SCIENCE_NORMAL_
50 50 label_NORM_SWF_F0 = new QLabel("SWF_F0");
51 51 label_NORM_SWF_F1 = new QLabel("SWF_F1");
52 52 label_NORM_SWF_F2 = new QLabel("SWF_F2");
53 53 label_NORM_CWF_F3 = new QLabel("CWF_F3");
54 54 label_NORM_CWF_LONG_F3 = new QLabel("LONG_F3");
55 55 label_NORM_ASM_F0 = new QLabel("ASM_F0");
56 56 label_NORM_ASM_F1 = new QLabel("ASM_F1");
57 57 label_NORM_ASM_F2 = new QLabel("ASM_F2");
58 58 label_NORM_BP1_F0 = new QLabel("BP1_F0");
59 59 label_NORM_BP1_F1 = new QLabel("BP1_F1");
60 60 label_NORM_BP1_F2 = new QLabel("BP1_F2");
61 61 label_NORM_BP2_F0 = new QLabel("BP2_F0");
62 62 label_NORM_BP2_F1 = new QLabel("BP2_F1");
63 63 label_NORM_BP2_F2 = new QLabel("BP2_F2");
64 64 //
65 65 label_NORM_SWF_F0_nb = new QLabel("-");
66 66 label_NORM_SWF_F1_nb = new QLabel("-");
67 67 label_NORM_SWF_F2_nb = new QLabel("-");
68 68 label_NORM_CWF_F3_nb = new QLabel("-");
69 69 label_NORM_CWF_LONG_F3_nb = new QLabel("-");
70 70 label_NORM_ASM_F0_nb = new QLabel("-");
71 71 label_NORM_ASM_F1_nb = new QLabel("-");
72 72 label_NORM_ASM_F2_nb = new QLabel("-");
73 73 label_NORM_BP1_F0_nb = new QLabel("-");
74 74 label_NORM_BP1_F1_nb = new QLabel("-");
75 75 label_NORM_BP1_F2_nb = new QLabel("-");
76 76 label_NORM_BP2_F0_nb = new QLabel("-");
77 77 label_NORM_BP2_F1_nb = new QLabel("-");
78 78 label_NORM_BP2_F2_nb = new QLabel("-");
79 79
80 80 //**********************
81 81 // TM_LFR_SCIENCE_BURST_
82 82 label_BURST_CWF_F2 = new QLabel("CWF_F2");
83 83 label_BURST_BP1_F0 = new QLabel("BP1_F0");
84 84 label_BURST_BP2_F0 = new QLabel("BP2_F0");
85 85 label_BURST_BP1_F1 = new QLabel("BP1_F1");
86 86 label_BURST_BP2_F1 = new QLabel("BP2_F1");
87 87 //
88 88 label_BURST_CWF_F2_nb = new QLabel("-");
89 89 label_BURST_BP1_F0_nb = new QLabel("-");
90 90 label_BURST_BP2_F0_nb = new QLabel("-");
91 91 label_BURST_BP1_F1_nb = new QLabel("-");
92 92 label_BURST_BP2_F1_nb = new QLabel("-");
93 93
94 94 //*********************
95 95 // TM_LFR_SCIENCE_SBM1_
96 96 label_SBM1_CWF_F1 = new QLabel("CWF_F1");
97 97 label_SBM1_BP1_F0 = new QLabel("BP1_F0");
98 98 label_SBM1_BP2_F0 = new QLabel("BP2_F0");
99 99 //
100 100 label_SBM1_CWF_F1_nb = new QLabel("-");
101 101 label_SBM1_BP1_F0_nb = new QLabel("-");
102 102 label_SBM1_BP2_F0_nb = new QLabel("-");
103 103
104 104 //*********************
105 105 // TM_LFR_SCIENCE_SBM2_
106 106 label_SBM2_CWF_F2 = new QLabel("CWF_F2");
107 107 label_SBM2_BP1_F0 = new QLabel("BP1_F0");
108 108 label_SBM2_BP2_F0 = new QLabel("BP2_F0");
109 109 label_SBM2_BP1_F1 = new QLabel("BP1_F1");
110 110 label_SBM2_BP2_F1 = new QLabel("BP2_F1");
111 111 //
112 112 label_SBM2_CWF_F2_nb = new QLabel("-");
113 113 label_SBM2_BP1_F0_nb = new QLabel("-");
114 114 label_SBM2_BP2_F0_nb = new QLabel("-");
115 115 label_SBM2_BP1_F1_nb = new QLabel("-");
116 116 label_SBM2_BP2_F1_nb = new QLabel("-");
117 117
118 118 //********
119 119 // LAST TM
120 120 label_PID = new QLabel("PID");
121 121 label_CAT = new QLabel("CAT");
122 122 label_TYP = new QLabel("Type");
123 123 label_SUB = new QLabel("Subtype");
124 124 label_SID = new QLabel("SID");
125 125 label_SIZ = new QLabel("Length");
126 126 label_coarse_time = new QLabel("Coarse time: ");
127 127 label_fine_time = new QLabel("Fine time: ");
128 128 //
129 129 label_PID_is = new QLabel("-");
130 130 label_CAT_is = new QLabel("-");
131 131 label_TYP_is = new QLabel("-");
132 132 label_SUB_is = new QLabel("-");
133 133 label_SID_is = new QLabel("-");
134 134 label_SIZ_is = new QLabel("-");
135 135 label_coarse_time_val = new QLabel("-");
136 136 label_fine_time_val = new QLabel("-");
137 137
138 138 // QPushButton
139 139 button_reset_stat = new QPushButton("reset stat");
140 140 button_chooseDir = new QPushButton("choose dir");
141 141
142 142 //QCheckBox
143 143 checkbox_packetLog = new QCheckBox("Log packets");
144 144 checkbox_packetRecording = new QCheckBox("Store packets (RAW)");
145 145 checkbox_CSVPacketRecording = new QCheckBox("Store Packets (CSV)");
146 146 label_currentDir = new QLabel("Current Dir: -");
147 147
148 148 //**********
149 149 // QGroupBox
150 150 this->setStyleSheet("QGroupBox {border: 1px solid black; }");
151 151
152 152 groupbox_stat = new QGroupBox("TM_LFR_TC_EXE_");
153 153 groupbox_NORM = new QGroupBox("TM_LFR_SCIENCE_NORMAL_");
154 154 groupbox_BURST = new QGroupBox("TM_LFR_SCIENCE_BURST_");
155 155 groupbox_SBM1 = new QGroupBox("TM_LFR_SCIENCE_SBM1_");
156 156 groupbox_SBM2 = new QGroupBox("TM_LFR_SCIENCE_SBM2_");
157 157 groupbox_last = new QGroupBox("Last TM received");
158 158 groupbox_record = new QGroupBox("Packet recording");
159 159
160 160 this->readSettings();
161 161 logFile = new QFile();
162 162 packetLogFile = new QFile();
163 163 csvPacketRecordFile = new QFile();
164 164 logFileEn = false;
165 165 packetLogFileEn = false;
166 166 csvPacketRecordFileEn = false;
167 167
168 168 initConstants();
169 169
170 170 buildMonitor_NORM();
171 171 buildMonitor_BURST();
172 172 buildMonitor_SBM1();
173 173 buildMonitor_SBM2();
174 174 buildMonitor();
175 175
176 176 groupbox_stat->setFont(font);
177 177 groupbox_NORM->setFont(font);
178 178 groupbox_BURST->setFont(font);
179 179 groupbox_SBM1->setFont(font);
180 180 groupbox_SBM2->setFont(font);
181 181 groupbox_last->setFont(font);
182 182 groupbox_record->setFont(font);
183 183
184 184 connect(this->button_reset_stat, SIGNAL(clicked()), this, SLOT(resetStatistics()));
185 185 connect(this->button_chooseDir, SIGNAL(clicked()), this, SLOT(chooseDir()));
186 186
187 187 connect(this->checkbox_packetLog, SIGNAL(stateChanged(int)),
188 188 this, SLOT(logPackets(int)));
189 189 connect(this->checkbox_packetRecording, SIGNAL(stateChanged(int)),
190 190 this, SLOT(storePackets(int)));
191 191 connect(this->checkbox_CSVPacketRecording, SIGNAL(stateChanged(int)),
192 192 this, SLOT(storeCSVPackets(int)));
193 193 }
194 194
195 195 TMStatistics::~TMStatistics()
196 196 {
197 197 this->writeSettings();
198 198 }
199 199
200 200 void TMStatistics::initConstants()
201 201 {
202 202 UNKNOWN_nb = 0;
203 203 TC_LFR_UPDATE_TIME_nb = 0;
204 204
205 205 // TM_LFR_TC_EXE_
206 206 SUCC_nb = 0;
207 207 INCO_nb = 0;
208 208 NOTE_nb = 0;
209 209 NOTI_nb = 0;
210 210 ERRO_nb = 0;
211 211 CORR_nb = 0;
212 212 HK_nb = 0;
213 213 DUMP_nb = 0;
214 214
215 215 // TM_LFR_SCIENCE_NORMAL_
216 216 NORM_SWF_F0_nb = 0;
217 217 NORM_SWF_F1_nb = 0;
218 218 NORM_SWF_F2_nb = 0;
219 219 NORM_CWF_F3_nb = 0;
220 220 NORM_CWF_LONG_F3_nb = 0;
221 221 NORM_ASM_F0_nb = 0;
222 222 NORM_ASM_F1_nb = 0;
223 223 NORM_ASM_F2_nb = 0;
224 224 NORM_BP1_F0_nb = 0;
225 225 NORM_BP1_F1_nb = 0;
226 226 NORM_BP1_F2_nb = 0;
227 227 NORM_BP2_F0_nb = 0;
228 228 NORM_BP2_F1_nb = 0;
229 229 NORM_BP2_F2_nb = 0;
230 230
231 231 BURST_CWF_F2_nb = 0;
232 232 BURST_BP1_F0_nb = 0;
233 233 BURST_BP2_F0_nb = 0;
234 234 BURST_BP1_F1_nb = 0;
235 235 BURST_BP2_F1_nb = 0;
236 236 SBM1_CWF_F1_nb = 0;
237 237 SBM1_BP1_F0_nb = 0;
238 238 SBM1_BP2_F0_nb = 0;
239 239 SBM2_CWF_F2_nb = 0;
240 240 SBM2_BP1_F0_nb = 0;
241 241 SBM2_BP2_F0_nb = 0;
242 242 SBM2_BP1_F1_nb = 0;
243 243 SBM2_BP2_F1_nb = 0;
244 244 }
245 245
246 246 void TMStatistics::buildMonitor_NORM()
247 247 {
248 248 layout_NORM->addWidget(label_NORM_SWF_F0, 0, 0, 1, 1);
249 249 layout_NORM->addWidget(label_NORM_SWF_F1, 1, 0, 1, 1);
250 250 layout_NORM->addWidget(label_NORM_SWF_F2, 2, 0, 1, 1);
251 251 layout_NORM->addWidget(label_NORM_CWF_F3, 3, 0, 1, 1);
252 252 //
253 253 layout_NORM->addWidget(label_NORM_SWF_F0_nb, 0, 1, 1, 1);
254 254 layout_NORM->addWidget(label_NORM_SWF_F1_nb, 1, 1, 1, 1);
255 255 layout_NORM->addWidget(label_NORM_SWF_F2_nb, 2, 1, 1, 1);
256 256 layout_NORM->addWidget(label_NORM_CWF_F3_nb, 3, 1, 1, 1);
257 257 //
258 258 layout_NORM->addWidget(label_NORM_ASM_F0, 4, 0, 1, 1);
259 259 layout_NORM->addWidget(label_NORM_ASM_F1, 5, 0, 1, 1);
260 260 layout_NORM->addWidget(label_NORM_ASM_F2, 6, 0, 1, 1);
261 261 //
262 262 layout_NORM->addWidget(label_NORM_ASM_F0_nb, 4, 1, 1, 1);
263 263 layout_NORM->addWidget(label_NORM_ASM_F1_nb, 5, 1, 1, 1);
264 264 layout_NORM->addWidget(label_NORM_ASM_F2_nb, 6, 1, 1, 1);
265 265 //
266 266 layout_NORM->addWidget(label_NORM_BP1_F0, 0, 2, 1, 1);
267 267 layout_NORM->addWidget(label_NORM_BP1_F1, 1, 2, 1, 1);
268 268 layout_NORM->addWidget(label_NORM_BP1_F2, 2, 2, 1, 1);
269 269 layout_NORM->addWidget(label_NORM_CWF_LONG_F3, 3, 2, 1, 1);
270 270 layout_NORM->addWidget(label_NORM_BP2_F0, 4, 2, 1, 1);
271 271 layout_NORM->addWidget(label_NORM_BP2_F1, 5, 2, 1, 1);
272 272 layout_NORM->addWidget(label_NORM_BP2_F2, 6, 2, 1, 1);
273 273 //
274 274 layout_NORM->addWidget(label_NORM_BP1_F0_nb, 0, 3, 1, 1);
275 275 layout_NORM->addWidget(label_NORM_BP1_F1_nb, 1, 3, 1, 1);
276 276 layout_NORM->addWidget(label_NORM_BP1_F2_nb, 2, 3, 1, 1);
277 277 layout_NORM->addWidget(label_NORM_CWF_LONG_F3_nb, 3, 3, 1, 1);
278 278 layout_NORM->addWidget(label_NORM_BP2_F0_nb, 4, 3, 1, 1);
279 279 layout_NORM->addWidget(label_NORM_BP2_F1_nb, 5, 3, 1, 1);
280 280 layout_NORM->addWidget(label_NORM_BP2_F2_nb, 6, 3, 1, 1);
281 281 }
282 282
283 283 void TMStatistics::buildMonitor_BURST()
284 284 {
285 285 layout_BURST->addWidget(label_BURST_CWF_F2, 0, 0, 1, 1);
286 286 layout_BURST->addWidget(label_BURST_BP1_F0, 1, 0, 1, 1);
287 287 layout_BURST->addWidget(label_BURST_BP2_F0, 2, 0, 1, 1);
288 288 layout_BURST->addWidget(label_BURST_BP1_F1, 3, 0, 1, 1);
289 289 layout_BURST->addWidget(label_BURST_BP2_F1, 4, 0, 1, 1);
290 290 //
291 291 layout_BURST->addWidget(label_BURST_CWF_F2_nb, 0, 1, 1, 1);
292 292 layout_BURST->addWidget(label_BURST_BP1_F0_nb, 1, 1, 1, 1);
293 293 layout_BURST->addWidget(label_BURST_BP2_F0_nb, 2, 1, 1, 1);
294 294 layout_BURST->addWidget(label_BURST_BP1_F1_nb, 3, 1, 1, 1);
295 295 layout_BURST->addWidget(label_BURST_BP2_F1_nb, 4, 1, 1, 1);
296 296 //
297 297 layout_BURST->setRowStretch(5, 1);
298 298 layout_BURST->setColumnStretch(2,1);
299 299 }
300 300
301 301 void TMStatistics::buildMonitor_SBM1()
302 302 {
303 303 layout_SBM1->addWidget(label_SBM1_CWF_F1, 0, 0, 1, 1);
304 304 layout_SBM1->addWidget(label_SBM1_BP1_F0, 1, 0, 1, 1);
305 305 layout_SBM1->addWidget(label_SBM1_BP2_F0, 2, 0, 1, 1);
306 306 //
307 307 layout_SBM1->addWidget(label_SBM1_CWF_F1_nb, 0, 1, 1, 1);
308 308 layout_SBM1->addWidget(label_SBM1_BP1_F0_nb, 1, 1, 1, 1);
309 309 layout_SBM1->addWidget(label_SBM1_BP2_F0_nb, 2, 1, 1, 1);
310 310 //
311 311 layout_SBM1->setRowStretch(3, 1);
312 312 layout_SBM1->setColumnStretch(2,1);
313 313 }
314 314
315 315 void TMStatistics::buildMonitor_SBM2()
316 316 {
317 317 layout_SBM2->addWidget(label_SBM2_CWF_F2, 0, 0, 1, 1);
318 318 layout_SBM2->addWidget(label_SBM2_BP1_F0, 1, 0, 1, 1);
319 319 layout_SBM2->addWidget(label_SBM2_BP2_F0, 2, 0, 1, 1);
320 320 layout_SBM2->addWidget(label_SBM2_BP1_F1, 3, 0, 1, 1);
321 321 layout_SBM2->addWidget(label_SBM2_BP2_F1, 4, 0, 1, 1);
322 322 //
323 323 layout_SBM2->addWidget(label_SBM2_CWF_F2_nb, 0, 1, 1, 1);
324 324 layout_SBM2->addWidget(label_SBM2_BP1_F0_nb, 1, 1, 1, 1);
325 325 layout_SBM2->addWidget(label_SBM2_BP2_F0_nb, 2, 1, 1, 1);
326 326 layout_SBM2->addWidget(label_SBM2_BP1_F1_nb, 3, 1, 1, 1);
327 327 layout_SBM2->addWidget(label_SBM2_BP2_F1_nb, 4, 1, 1, 1);
328 328 //
329 329 layout_SBM2->setRowStretch(5, 1);
330 330 layout_SBM2->setColumnStretch(2,1);
331 331 }
332 332
333 333 void TMStatistics::buildMonitor()
334 334 {
335 335 //***************
336 336 // TM_LFR_TC_EXE_
337 337 layout_stat->addWidget(label_SUCC, 0, 0, 1, 1);
338 338 layout_stat->addWidget(label_INCO, 1, 0, 1, 1);
339 339 layout_stat->addWidget(label_NOTE, 2, 0, 1, 1);
340 340 layout_stat->addWidget(label_NOTI, 3, 0, 1, 1);
341 341 layout_stat->addWidget(label_ERRO, 4, 0, 1, 1);
342 342 layout_stat->addWidget(label_CORR, 5, 0, 1, 1);
343 343 layout_stat->addWidget(label_HK, 6, 0, 1, 1);
344 344 layout_stat->addWidget(label_DUMP, 7, 0, 1, 1);
345 345 //
346 346 layout_stat->addWidget(label_SUCC_nb, 0, 1, 1, 1);
347 347 layout_stat->addWidget(label_INCO_nb, 1, 1, 1, 1);
348 348 layout_stat->addWidget(label_NOTE_nb, 2, 1, 1, 1);
349 349 layout_stat->addWidget(label_NOTI_nb, 3, 1, 1, 1);
350 350 layout_stat->addWidget(label_ERRO_nb, 4, 1, 1, 1);
351 351 layout_stat->addWidget(label_CORR_nb, 5, 1, 1, 1);
352 352 layout_stat->addWidget(label_HK_nb, 6, 1, 1, 1);
353 353 layout_stat->addWidget(label_DUMP_nb, 7, 1, 1, 1);
354 354
355 355 //********
356 356 // LAST TM
357 357 layout_last->addWidget(label_PID, 0, 0, 1, 1);
358 358 layout_last->addWidget(label_CAT, 0, 1, 1, 1);
359 359 layout_last->addWidget(label_TYP, 0, 2, 1, 1);
360 360 layout_last->addWidget(label_SUB, 0, 3, 1, 1);
361 361 layout_last->addWidget(label_SID, 0, 4, 1, 1);
362 362 layout_last->addWidget(label_SIZ, 0, 5, 1, 1);
363 363 //
364 364 layout_last->addWidget(label_PID_is, 1, 0, 1, 1);
365 365 layout_last->addWidget(label_CAT_is, 1, 1, 1, 1);
366 366 layout_last->addWidget(label_TYP_is, 1, 2, 1, 1);
367 367 layout_last->addWidget(label_SUB_is, 1, 3, 1, 1);
368 368 layout_last->addWidget(label_SID_is, 1, 4, 1, 1);
369 369 layout_last->addWidget(label_SIZ_is, 1, 5, 1, 1);
370 370 //
371 371 layout_last->addWidget(label_coarse_time, 2, 0, 1, 1);
372 372 layout_last->addWidget(label_coarse_time_val, 2, 1, 1, 1);
373 373 layout_last->addWidget(label_fine_time, 2, 2, 1, 1);
374 374 layout_last->addWidget(label_fine_time_val, 2, 3, 1, 1);
375 375 //
376 376 layout_last->addWidget(label_UNKNOWN, 3, 0, 1, 1);
377 377 layout_last->addWidget(label_UNKNOWN_nb, 3, 1, 1, 1);
378 378 layout_last->addWidget(label_TC_LFR_UPDATE_TIME, 3, 2, 1, 1);
379 379 layout_last->addWidget(label_TC_LFR_UPDATE_TIME_nb, 3, 3, 1, 1);
380 380
381 381 layout_record->addWidget(checkbox_packetLog);
382 382 layout_record->addWidget(checkbox_packetRecording);
383 383 layout_record->addWidget(checkbox_CSVPacketRecording);
384 384 layout_record->addWidget(button_chooseDir);
385 385 layout_record->addWidget(label_currentDir);
386 386 layout_record->insertStretch(4, 1);
387 387
388 388 //***********
389 389 // groupboxes
390 390 groupbox_stat->setLayout(layout_stat);
391 391 groupbox_NORM->setLayout(layout_NORM);
392 392 groupbox_BURST->setLayout(layout_BURST);
393 393 groupbox_SBM1->setLayout(layout_SBM1);
394 394 groupbox_SBM2->setLayout(layout_SBM2);
395 395 groupbox_last->setLayout(layout_last);
396 396 groupbox_record->setLayout(layout_record);
397 397 //
398 398 mainLayout->addWidget(groupbox_stat, 0, 0, 1, 1);
399 399 mainLayout->addWidget(groupbox_NORM, 1, 0, 1, 1);
400 400 mainLayout->addWidget(groupbox_last, 2, 0, 1, 3);
401 401 mainLayout->addWidget(groupbox_SBM1, 0, 1, 1, 1);
402 402 mainLayout->addWidget(groupbox_SBM2, 0, 2, 1, 1);
403 403 mainLayout->addWidget(groupbox_BURST, 1, 1, 1, 1);
404 404 mainLayout->addWidget(groupbox_record, 1, 2, 1, 1);
405 405 mainLayout->addWidget(button_reset_stat, 3, 0, 1, 3);
406 406 mainLayout->setColumnStretch(3, 1);
407 407 mainLayout->setRowStretch(4, 1);
408 408 //
409 409 this->setLayout(mainLayout);
410 410 }
411 411
412 412 void TMStatistics::resetStatistics()
413 413 {
414 414 initConstants();
415 415 //
416 416 label_UNKNOWN_nb->setText("-");
417 417 label_TC_LFR_UPDATE_TIME_nb->setText("-");
418 418 label_SUCC_nb->setText("-");
419 419 label_INCO_nb->setText("-");
420 420 label_NOTE_nb->setText("-");
421 421 label_NOTI_nb->setText("-");
422 422 label_ERRO_nb->setText("-");
423 423 label_CORR_nb->setText("-");
424 424 label_HK_nb->setText("-");
425 425 label_DUMP_nb->setText("-");
426 426 //
427 427 label_NORM_SWF_F0_nb->setText("-");
428 428 label_NORM_SWF_F1_nb->setText("-");
429 429 label_NORM_SWF_F2_nb->setText("-");
430 430 label_NORM_CWF_F3_nb->setText("-");
431 431 label_NORM_CWF_LONG_F3_nb->setText("-");
432 432 label_NORM_BP1_F0_nb->setText("-");
433 433 label_NORM_BP1_F1_nb->setText("-");
434 434 label_NORM_BP1_F2_nb->setText("-");
435 435 label_NORM_BP2_F0_nb->setText("-");
436 436 label_NORM_BP2_F1_nb->setText("-");
437 437 label_NORM_BP2_F2_nb->setText("-");
438 438 label_NORM_ASM_F0_nb->setText("-");
439 439 label_NORM_ASM_F1_nb->setText("-");
440 440 label_NORM_ASM_F2_nb->setText("-");
441 441 //
442 442 label_BURST_CWF_F2_nb->setText("-");
443 443 label_BURST_BP1_F0_nb->setText("-");
444 444 label_BURST_BP2_F0_nb->setText("-");
445 label_BURST_BP1_F1_nb->setText("-");
446 label_BURST_BP2_F1_nb->setText("-");
445 447 //
446 448 label_SBM1_CWF_F1_nb->setText("-");
447 449 label_SBM1_BP1_F0_nb->setText("-");
448 450 label_SBM1_BP2_F0_nb->setText("-");
449 451 //
450 452 label_SBM2_CWF_F2_nb->setText("-");
451 453 label_SBM2_BP1_F0_nb->setText("-");
452 454 label_SBM2_BP2_F0_nb->setText("-");
455 label_SBM2_BP1_F1_nb->setText("-");
456 label_SBM2_BP2_F1_nb->setText("-");
453 457 //
454 458 label_PID_is->setText("-");
455 459 label_CAT_is->setText("-");
456 460 label_TYP_is->setText("-");
457 461 label_SUB_is->setText("-");
458 462 label_SID_is->setText("-");
459 463 label_SIZ_is->setText("-");
460 464 //
461 465 label_coarse_time_val->setText("-");
462 466 label_fine_time_val->setText("-");
463 467 }
464 468
465 469 void TMStatistics::updateStatistics(unsigned char pid, unsigned char cat,
466 470 unsigned char typ, unsigned char sub,
467 471 unsigned int sid, unsigned int length,
468 472 unsigned int coarse_t, unsigned int fine_t)
469 473 {
470 474 if (cat == TM_PACKET_CAT_TC_EXE)
471 475 {
472 476 if (typ == TM_TYPE_TC_EXE)
473 477 {
474 478 if (sub == TM_SUBTYPE_EXE_OK)
475 479 {
476 480 SUCC_nb = SUCC_nb + 1;
477 481 label_SUCC_nb->setText(QString::number(SUCC_nb));
478 482 }
479 483 else if (sub == TM_SUBTYPE_EXE_NOK)
480 484 {
481 485 if (sid == WRONG_APP_DATA)
482 486 {
483 487 INCO_nb = INCO_nb + 1;
484 488 label_INCO_nb->setText(QString::number(INCO_nb));
485 489 }
486 490 else if (sid == TC_NOT_EXE)
487 491 {
488 492 NOTE_nb = NOTE_nb + 1;
489 493 label_NOTE_nb->setText(QString::number(NOTE_nb));
490 494 }
491 495 else if (sid == FUNCT_NOT_IMPL)
492 496 {
493 497 NOTI_nb = NOTI_nb + 1;
494 498 label_NOTI_nb->setText(QString::number(NOTI_nb));
495 499 }
496 500 else if (sid == FAIL_DETECTED)
497 501 {
498 502 ERRO_nb = ERRO_nb + 1;
499 503 label_ERRO_nb->setText(QString::number(ERRO_nb));
500 504 }
501 505 else if (sid == CORRUPTED)
502 506 {
503 507 CORR_nb = CORR_nb + 1;
504 508 label_CORR_nb->setText(QString::number(CORR_nb));
505 509 }
506 510 else incrementUnknown();
507 511 }
508 512 else incrementUnknown();
509 513 }
510 514 else
511 515 incrementUnknown();
512 516 }
513 517 else if (cat == TM_PACKET_CAT_HK)
514 518 {
515 519 if (typ == TM_TYPE_HK)
516 520 {
517 521 if (sub == TM_SUBTYPE_HK)
518 522 if (sid == SID_HK)
519 523 {
520 524 HK_nb = HK_nb + 1;
521 525 label_HK_nb->setText(QString::number(HK_nb));
522 526 }
523 527 else
524 528 {
525 529 incrementUnknown();
526 530 }
527 531 else
528 532 {
529 533 incrementUnknown();
530 534 }
531 535 }
532 536 else
533 537 {
534 538 incrementUnknown();
535 539 }
536 540 }
537 541 else if (cat == TM_PACKET_CAT_PARAMETER_DUMP)
538 542 {
539 543 if (typ == TM_TYPE_PARAMETER_DUMP)
540 544 {
541 545 if (sub == TM_SUBTYPE_PARAMETER_DUMP)
542 546 if (sid == SID_PARAMETER_DUMP)
543 547 {
544 548 DUMP_nb = DUMP_nb + 1;
545 549 label_DUMP_nb->setText(QString::number(DUMP_nb));
546 550 }
547 551 else
548 552 {
549 553 incrementUnknown();
550 554 }
551 555 else
552 556 {
553 557 incrementUnknown();
554 558 }
555 559 }
556 560 else
557 561 {
558 562 incrementUnknown();
559 563 }
560 564 }
561 565 else if (cat == TM_PACKET_CAT_SCIENCE)
562 566 {
563 567 if (typ == TM_TYPE_LFR_SCIENCE)
564 568 {
565 569 if (sub == TM_SUBTYPE_SCIENCE)
566 570 {
567 571 if (sid == SID_NORM_CWF_F3)
568 572 {
569 573 NORM_CWF_F3_nb = NORM_CWF_F3_nb + 1;
570 574 label_NORM_CWF_F3_nb->setText(QString::number(NORM_CWF_F3_nb));
571 575 }
572 if (sid == SID_NORM_CWF_LONG_F3)
576 else if (sid == SID_NORM_CWF_LONG_F3)
573 577 {
574 578 NORM_CWF_LONG_F3_nb = NORM_CWF_LONG_F3_nb + 1;
575 579 label_NORM_CWF_LONG_F3_nb->setText(QString::number(NORM_CWF_LONG_F3_nb));
576 580 }
577 581 else if (sid == SID_BURST_CWF_F2)
578 582 {
579 583 BURST_CWF_F2_nb = BURST_CWF_F2_nb + 1;
580 584 label_BURST_CWF_F2_nb->setText(QString::number(BURST_CWF_F2_nb));
581 585 }
582 586 else if (sid == SID_NORM_SWF_F0)
583 587 {
584 588 NORM_SWF_F0_nb = NORM_SWF_F0_nb + 1;
585 589 label_NORM_SWF_F0_nb->setText(QString::number(NORM_SWF_F0_nb));
586 590 }
587 591 else if (sid == SID_NORM_SWF_F1)
588 592 {
589 593 NORM_SWF_F1_nb = NORM_SWF_F1_nb + 1;
590 594 label_NORM_SWF_F1_nb->setText(QString::number(NORM_SWF_F1_nb));
591 595 }
592 596 else if (sid == SID_NORM_SWF_F2)
593 597 {
594 598 NORM_SWF_F2_nb = NORM_SWF_F2_nb + 1;
595 599 label_NORM_SWF_F2_nb->setText(QString::number(NORM_SWF_F2_nb));
596 600 }
597 601 else if (sid == SID_NORM_ASM_F0)
598 602 {
599 603 NORM_ASM_F0_nb = NORM_ASM_F0_nb + 1;
600 604 label_NORM_ASM_F0_nb->setText(QString::number(NORM_ASM_F0_nb));
601 605 }
602 606 else if (sid == SID_NORM_ASM_F1)
603 607 {
604 608 NORM_ASM_F1_nb = NORM_ASM_F1_nb + 1;
605 609 label_NORM_ASM_F1_nb->setText(QString::number(NORM_ASM_F1_nb));
606 610 }
607 611 else if (sid == SID_NORM_ASM_F2)
608 612 {
609 613 NORM_ASM_F2_nb = NORM_ASM_F2_nb + 1;
610 614 label_NORM_ASM_F2_nb->setText(QString::number(NORM_ASM_F2_nb));
611 615 }
612 616 else if (sid == SID_NORM_BP1_F0)
613 617 {
614 618 NORM_BP1_F0_nb = NORM_BP1_F0_nb + 1;
615 619 label_NORM_BP1_F0_nb->setText(QString::number(NORM_BP1_F0_nb));
616 620 }
617 621 else if (sid == SID_NORM_BP1_F1)
618 622 {
619 623 NORM_BP1_F1_nb = NORM_BP1_F1_nb + 1;
620 624 label_NORM_BP1_F1_nb->setText(QString::number(NORM_BP1_F1_nb));
621 625 }
622 626 else if (sid == SID_NORM_BP1_F2)
623 627 {
624 628 NORM_BP1_F2_nb = NORM_BP1_F2_nb + 1;
625 629 label_NORM_BP1_F2_nb->setText(QString::number(NORM_BP1_F2_nb));
626 630 }
627 631 else if (sid == SID_NORM_BP2_F0)
628 632 {
629 633 NORM_BP2_F0_nb = NORM_BP2_F0_nb + 1;
630 634 label_NORM_BP2_F0_nb->setText(QString::number(NORM_BP2_F0_nb));
631 635 }
632 636 else if (sid == SID_NORM_BP2_F1)
633 637 {
634 638 NORM_BP2_F1_nb = NORM_BP2_F1_nb + 1;
635 639 label_NORM_BP2_F1_nb->setText(QString::number(NORM_BP2_F1_nb));
636 640 }
637 641 else if (sid == SID_NORM_BP2_F2)
638 642 {
639 643 NORM_BP2_F2_nb = NORM_BP2_F2_nb + 1;
640 644 label_NORM_BP2_F2_nb->setText(QString::number(NORM_BP2_F2_nb));
641 645 }
642 646 else if (sid == SID_BURST_BP1_F0)
643 647 {
644 648 BURST_BP1_F0_nb = BURST_BP1_F0_nb + 1;
645 649 label_BURST_BP1_F0_nb->setText(QString::number(BURST_BP1_F0_nb));
646 650 }
647 651 else if (sid == SID_BURST_BP2_F0)
648 652 {
649 653 BURST_BP2_F0_nb = BURST_BP2_F0_nb + 1;
650 654 label_BURST_BP2_F0_nb->setText(QString::number(BURST_BP2_F0_nb));
651 655 }
656 else if (sid == SID_BURST_BP1_F1)
657 {
658 BURST_BP1_F1_nb = BURST_BP1_F1_nb + 1;
659 label_BURST_BP1_F1_nb->setText(QString::number(BURST_BP1_F1_nb));
660 }
661 else if (sid == SID_BURST_BP2_F1)
662 {
663 BURST_BP2_F1_nb = BURST_BP2_F1_nb + 1;
664 label_BURST_BP2_F1_nb->setText(QString::number(BURST_BP2_F1_nb));
665 }
652 666 else if (sid == SID_SBM1_CWF_F1)
653 667 {
654 668 SBM1_CWF_F1_nb = SBM1_CWF_F1_nb + 1;
655 669 label_SBM1_CWF_F1_nb->setText(QString::number(SBM1_CWF_F1_nb));
656 670 }
657 671 else if (sid == SID_SBM2_CWF_F2)
658 672 {
659 673 SBM2_CWF_F2_nb = SBM2_CWF_F2_nb + 1;
660 674 label_SBM2_CWF_F2_nb->setText(QString::number(SBM2_CWF_F2_nb));
661 675 }
662 676 else if (sid == SID_SBM1_BP1_F0)
663 677 {
664 678 SBM1_BP1_F0_nb = SBM1_BP1_F0_nb + 1;
665 679 label_SBM1_BP1_F0_nb->setText(QString::number(SBM1_BP1_F0_nb));
666 680 }
667 681 else if (sid == SID_SBM1_BP2_F0)
668 682 {
669 683 SBM1_BP2_F0_nb = SBM1_BP2_F0_nb + 1;
670 684 label_SBM1_BP2_F0_nb->setText(QString::number(SBM1_BP2_F0_nb));
671 685 }
672 686 else if (sid == SID_SBM2_BP1_F0)
673 687 {
674 688 SBM2_BP1_F0_nb = SBM2_BP1_F0_nb + 1;
675 689 label_SBM2_BP1_F0_nb->setText(QString::number(SBM2_BP1_F0_nb));
676 690 }
677 691 else if (sid == SID_SBM2_BP2_F0)
678 692 {
679 693 SBM2_BP2_F0_nb = SBM2_BP2_F0_nb + 1;
680 694 label_SBM2_BP2_F0_nb->setText(QString::number(SBM2_BP2_F0_nb));
681 695 }
696 else if (sid == SID_SBM2_BP1_F1)
697 {
698 SBM2_BP1_F1_nb = SBM2_BP1_F1_nb + 1;
699 label_SBM2_BP1_F1_nb->setText(QString::number(SBM2_BP1_F1_nb));
700 }
701 else if (sid == SID_SBM2_BP2_F1)
702 {
703 SBM2_BP2_F1_nb = SBM2_BP2_F1_nb + 1;
704 label_SBM2_BP2_F1_nb->setText(QString::number(SBM2_BP2_F1_nb));
705 }
682 706 else
683 707 {
684 708 incrementUnknown();
685 709 }
686 710 }
687 711 }
688 712 else if (typ == TC_TYPE_TIME)
689 713 {
690 714 increment_TC_LFR_UPDATE_TIME();
691 715 }
692 716 else
693 717 {
694 718 incrementUnknown();
695 719 }
696 720 }
697 721 else
698 722 {
699 723 incrementUnknown();
700 724 }
701 725
702 726 if ( !( (typ==TC_TYPE_TIME) & (sub==TC_SUBTYPE_UPDT_TIME) ) )
703 727 {
704 728 label_PID_is->setText(QString::number(pid));
705 729 label_CAT_is->setText(QString::number(cat));
706 730 label_TYP_is->setText(QString::number(typ));
707 731 label_SUB_is->setText(QString::number(sub));
708 732 label_SID_is->setText(QString::number(sid));
709 733 label_SIZ_is->setText(QString::number(length));
710 734 label_coarse_time_val->setText(QString::number(coarse_t, 16));
711 735 label_fine_time_val->setText(QString::number(fine_t, 16));
712 736
713 737 emit lastTMTimeHasChanged( coarse_t );
714 738 }
715 739 }
716 740
717 741 void TMStatistics::incrementUnknown()
718 742 {
719 743 UNKNOWN_nb = UNKNOWN_nb + 1;
720 744 label_UNKNOWN_nb->setText(QString::number(UNKNOWN_nb));
721 745 }
722 746
723 747 void TMStatistics::increment_TC_LFR_UPDATE_TIME()
724 748 {
725 749 TC_LFR_UPDATE_TIME_nb = TC_LFR_UPDATE_TIME_nb + 1;
726 750 label_TC_LFR_UPDATE_TIME_nb->setText(QString::number(TC_LFR_UPDATE_TIME_nb));
727 751 }
728 752
729 753 unsigned char TMStatistics::getPID(TMPacketToRead *packet)
730 754 {
731 755 unsigned char pid = 0;
732 756
733 757 pid = ((packet->Value[4] & 0x07) << 4) + ((packet->Value[5] & 0xf0) >> 4);
734 758
735 759 return pid;
736 760 }
737 761
738 762 unsigned char TMStatistics::getCAT(TMPacketToRead *packet)
739 763 {
740 764 unsigned char cat = 0;
741 765
742 766 cat = packet->Value[5] & 0x0f;
743 767
744 768 return cat;
745 769 }
746 770
747 771 unsigned char TMStatistics::getSegmentationGroupingFlag(TMPacketToRead *packet)
748 772 {
749 773 unsigned char segmentationGroupingFlag;
750 774
751 775 segmentationGroupingFlag = (unsigned char) (packet->Value[6] >> 6);
752 776
753 777 return segmentationGroupingFlag;
754 778 }
755 779
756 780 unsigned char TMStatistics::getTYPE(TMPacketToRead *packet)
757 781 {
758 782 unsigned char typ = 0;
759 783
760 784 typ = packet->Value[11]; // TYPE
761 785
762 786 return typ;
763 787 }
764 788
765 789 unsigned char TMStatistics::getSUBTYPE(TMPacketToRead *packet)
766 790 {
767 791 unsigned char sub = 0;
768 792
769 793 sub = packet->Value[12]; // SUBTYPE
770 794
771 795 return sub;
772 796 }
773 797
774 798 unsigned int TMStatistics::getLENGTH(TMPacketToRead *packet)
775 799 {
776 800 unsigned int length = 0;
777 801
778 802 length = packet->Value[8] * 256 + packet->Value[9];
779 803
780 804 return length;
781 805 }
782 806
783 807 unsigned int TMStatistics::getCoarseTime(TMPacketToRead *packet)
784 808 {
785 809 unsigned int coarse = 0;
786 810
787 811 coarse = packet->Value[14] * pow(2, 24) + packet->Value[15] * pow(2, 16)
788 812 + packet->Value[16] * pow(2, 8) + packet->Value[17];
789 813
790 814 return coarse;
791 815 }
792 816
793 817 unsigned int TMStatistics::getFineTime(TMPacketToRead *packet)
794 818 {
795 819 unsigned int fine = 0;
796 820
797 821 fine = packet->Value[18] * pow(2, 8) + packet->Value[19];
798 822
799 823 return fine;
800 824 }
801 825
802 826 unsigned int TMStatistics::getSID(TMPacketToRead *packet,
803 827 unsigned char pid, unsigned char cat,
804 828 unsigned char typ, unsigned char sub)
805 829 {
806 830 unsigned int sid = 0;
807 831 QString packetName;
808 832 QTime currentTime;
809 833 QDate currentDate;
810 834 unsigned int i;
811 835
812 836 if ((pid == TM_PACKET_PID_DEFAULT) & (cat == TM_PACKET_CAT_TC_EXE)
813 837 & (typ == TM_TYPE_TC_EXE) & (sub == TM_SUBTYPE_EXE_NOK))
814 838 sid = packet->Value[20] * 256 + packet->Value[21];
815 839 else if ((pid == TM_PACKET_PID_DEFAULT) & (cat == TM_PACKET_CAT_HK)
816 840 & (typ == TM_TYPE_HK) & (sub == TM_SUBTYPE_HK))
817 841 sid = SID_HK;
818 842 else if ((pid == TM_PACKET_PID_DEFAULT) & (cat == TM_PACKET_CAT_PARAMETER_DUMP)
819 843 & (typ == TM_TYPE_PARAMETER_DUMP) & (sub == TM_SUBTYPE_PARAMETER_DUMP))
820 844 sid = SID_PARAMETER_DUMP;
821 845 else if ((pid == TM_PACKET_PID_DEFAULT) & (cat == TM_PACKET_CAT_SCIENCE)
822 846 & (typ == TM_TYPE_LFR_SCIENCE) & (sub == TM_SUBTYPE_LFR_SCIENCE))
823 847 sid = packet->Value[20];
824 848 else if ((pid == TM_PACKET_PID_BURST_SBM1_SBM2) & (cat == TM_PACKET_CAT_SCIENCE)
825 849 & (typ == TM_TYPE_LFR_SCIENCE) & (sub == TM_SUBTYPE_LFR_SCIENCE))
826 850 sid = packet->Value[20];
827 851
828 852 if (logFileEn == true)
829 853 {
830 854 logFile->write((char *) &packet->Value[4], (packet->size-4));
831 855 }
832 856
833 857 currentTime = QTime::currentTime();
834 858 currentDate = QDate::currentDate();
835 859
836 860 if (packetLogFileEn == true)
837 861 {
838 862 packetName = getPacketName( typ, sub, sid);
839 863
840 864 *(this->packetLogFileStrm)
841 865 << QString::number(currentDate.year()) + " "
842 866 << QString::number(currentDate.month()) + " "
843 867 << QString::number(currentDate.day()) + " "
844 868 << QTime::currentTime().toString() + ":"
845 869 << QString::number(currentTime.msec()) + " "
846 870 << packetName
847 871 << " time = 0x " + QString::number(
848 872 (packet->Value[14] << 24) + (packet->Value[15] << 16) + (packet->Value[16] << 8) + packet->Value[17],
849 873 16).right(8)
850 874 << " " + QString::number( (packet->Value[18] << 8) + packet->Value[19], 16)
851 875 << endl;
852 876 }
853 877
854 878 if (csvPacketRecordFileEn == true)
855 879 {
856 880 *(this->csvPacketRecordFileStrm)
857 881 << QString::number(currentDate.year()) + " "
858 882 << QString::number(currentDate.month()) + " "
859 883 << QString::number(currentDate.day()) + " "
860 884 << QTime::currentTime().toString() + ":"
861 885 << QString::number(currentTime.msec());
862 886 for (i=0; i< packet->size; i++)
863 887 {
864 888 *(this->csvPacketRecordFileStrm)
865 889 << ", " + QString::number( packet->Value[i] );
866 890 }
867 891 *(this->csvPacketRecordFileStrm)
868 892 << endl;
869 893 }
870 894
871 895 return sid;
872 896 }
873 897
874 898 void TMStatistics::buildFileName()
875 899 {
876 900 QTime time;
877 901 QDate date;
878 902 QString dateTime;
879 903 QString prefix;
880 904
881 905 date = QDate::currentDate();
882 906 time = QTime::currentTime();
883 907
884 908 dateTime = QString::number( date.year() ) + "_"
885 909 + QString::number( date.month() ) + "_"
886 910 + QString::number( date.day() ) + "-"
887 911 + QString::number( time.hour() ) + "_"
888 912 + QString::number( time.minute() ) + "_"
889 913 + QString::number( time.second() );
890 914
891 915 prefix = defaultStorageDirectory + "/" + dateTime + "_" ;
892 916
893 917 if(this->logFile->isOpen()) this->logFile->close();
894 918 this->logFile->setFileName( prefix + "packet_record.data");
895 919 if(this->logFile->open(QIODevice::WriteOnly))
896 920 this->logFileStrm = new QTextStream(this->logFile);
897 921 }
898 922
899 923 void TMStatistics::buildPacketLogFileName()
900 924 {
901 925 QTime time;
902 926 QDate date;
903 927 QString dateTime;
904 928 QString prefix;
905 929
906 930 date = QDate::currentDate();
907 931 time = QTime::currentTime();
908 932
909 933 dateTime = QString::number( date.year() ) + "_"
910 934 + QString::number( date.month() ) + "_"
911 935 + QString::number( date.day() ) + "-"
912 936 + QString::number( time.hour() ) + "_"
913 937 + QString::number( time.minute() ) + "_"
914 938 + QString::number( time.second() );
915 939
916 940 prefix = defaultStorageDirectory + "/" + dateTime + "_" ;
917 941
918 942 if(this->packetLogFile->isOpen()) this->packetLogFile->close();
919 943 this->packetLogFile->setFileName( prefix + "packet_log.data");
920 944 if(this->packetLogFile->open(QIODevice::WriteOnly))
921 945 this->packetLogFileStrm = new QTextStream(this->packetLogFile);
922 946 }
923 947
924 948 void TMStatistics::buildCSVPacketRecordFileName()
925 949 {
926 950 QTime time;
927 951 QDate date;
928 952 QString dateTime;
929 953 QString prefix;
930 954
931 955 date = QDate::currentDate();
932 956 time = QTime::currentTime();
933 957
934 958 dateTime = QString::number( date.year() ) + "_"
935 959 + QString::number( date.month() ) + "_"
936 960 + QString::number( date.day() ) + "-"
937 961 + QString::number( time.hour() ) + "_"
938 962 + QString::number( time.minute() ) + "_"
939 963 + QString::number( time.second() );
940 964
941 965 prefix = defaultStorageDirectory + "/" + dateTime + "_" ;
942 966
943 967 if(this->csvPacketRecordFile->isOpen()) this->csvPacketRecordFile->close();
944 968 this->csvPacketRecordFile->setFileName( prefix + "packet_record.csv");
945 969 if(this->csvPacketRecordFile->open(QIODevice::WriteOnly))
946 970 this->csvPacketRecordFileStrm = new QTextStream(this->csvPacketRecordFile);
947 971 }
948 972
949 973 void TMStatistics::storePackets( int state )
950 974 {
951 975 if (state == Qt::Checked)
952 976 {
953 977 buildFileName();
954 978 logFileEn = true;
955 979 }
956 980 else
957 981 {
958 982 if(this->logFile->isOpen()) this->logFile->close();
959 983 logFileEn = false;
960 984 }
961 985 }
962 986
963 987 void TMStatistics::storeCSVPackets( int state )
964 988 {
965 989 if (state == Qt::Checked)
966 990 {
967 991 buildCSVPacketRecordFileName();
968 992 csvPacketRecordFileEn = true;
969 993 }
970 994 else
971 995 {
972 996 if(this->csvPacketRecordFile->isOpen()) this->csvPacketRecordFile->close();
973 997 csvPacketRecordFileEn = false;
974 998 }
975 999 }
976 1000
977 1001 void TMStatistics::logPackets( int state )
978 1002 {
979 1003 if (state == Qt::Checked)
980 1004 {
981 1005 buildPacketLogFileName();
982 1006 packetLogFileEn = true;
983 1007 }
984 1008 else
985 1009 {
986 1010 if(this->packetLogFile->isOpen()) this->packetLogFile->close();
987 1011 packetLogFileEn = false;
988 1012 }
989 1013 }
990 1014
991 1015 void TMStatistics::chooseDir()
992 1016 {
993 1017 QString tmpDefaultStorageDirectory;
994 1018 tmpDefaultStorageDirectory = QFileDialog::getExistingDirectory(this,
995 1019 "choose the directory",
996 1020 QDir::homePath(),
997 1021 QFileDialog::ShowDirsOnly);
998 1022
999 1023 if( !tmpDefaultStorageDirectory.isEmpty() )
1000 1024 {
1001 1025 defaultStorageDirectory = tmpDefaultStorageDirectory;
1002 1026 }
1003 1027
1004 1028 label_currentDir->setText(defaultStorageDirectory);
1005 1029 }
1006 1030
1007 1031 void TMStatistics::closeEvent(QCloseEvent *event)
1008 1032 {
1009 1033 if(this->logFile->isOpen())
1010 1034 {
1011 1035 this->logFileStrm->flush();
1012 1036 this->logFile->waitForBytesWritten(3000);
1013 1037 this->logFile->close();
1014 1038 }
1015 1039 event->accept();
1016 1040 }
1017 1041
1018 1042 QString TMStatistics::getPacketName(unsigned char type, unsigned char subtype, unsigned int sid)
1019 1043 {
1020 1044 QString packetName = "default";
1021 1045 if (type == TM_TYPE_TC_EXE)
1022 1046 {
1023 1047 if (subtype== TM_SUBTYPE_EXE_OK) packetName = "TM_LFR_TC_EXE_SUCCESS";
1024 1048 if (subtype == TM_SUBTYPE_EXE_NOK)
1025 1049 {
1026 1050 if (sid == WRONG_APP_DATA) packetName = "TM_LFR_TC_EXE_INCONSISTENT";
1027 1051 if (sid == TC_NOT_EXE) packetName = "TM_LFR_TC_EXE_NOT_EXECUTABLE";
1028 1052 if (sid == FUNCT_NOT_IMPL) packetName = "TM_LFR_TC_EXE_NOT_IMPLEMENTED";
1029 1053 if (sid == FAIL_DETECTED) packetName = "TM_LFR_TC_EXE_ERROR";
1030 1054 if (sid == CORRUPTED) packetName = "TM_LFR_TC_EXE_CORRUPTED";
1031 1055 }
1032 1056 }
1033 1057 if (type == TM_TYPE_HK)
1034 1058 {
1035 1059 if (subtype == TM_SUBTYPE_HK)
1036 1060 {
1037 1061 if (sid == SID_HK) packetName = "TM_LFR_HK";
1038 1062 if (sid == SID_PARAMETER_DUMP) packetName = "TM_LFR_PARAMETER_DUMP";
1039 1063 }
1040 1064 }
1041 1065 if (type == TM_TYPE_LFR_SCIENCE)
1042 1066 {
1043 1067 if (subtype == TM_SUBTYPE_SCIENCE)
1044 1068 {
1045 1069 if (sid == SID_NORM_SWF_F0) packetName = "TM_LFR_SCIENCE_NORMAL_SWF_F0";
1046 1070 if (sid == SID_NORM_SWF_F1) packetName = "TM_LFR_SCIENCE_NORMAL_SWF_F1";
1047 1071 if (sid == SID_NORM_SWF_F2) packetName = "TM_LFR_SCIENCE_NORMAL_SWF_F2";
1048 1072 if (sid == SID_NORM_CWF_F3) packetName = "TM_LFR_SCIENCE_NORMAL_CWF_F3";
1049 1073 if (sid == SID_BURST_CWF_F2) packetName = "TM_LFR_SCIENCE_BURST_CWF_F2";
1050 1074 if (sid == SID_SBM1_CWF_F1) packetName = "TM_LFR_SCIENCE_SBM1_CWF_F1";
1051 1075 if (sid == SID_SBM2_CWF_F2) packetName = "TM_LFR_SCIENCE_SBM2_CWF_F2";
1052 1076 if (sid == SID_NORM_ASM_F0) packetName = "TM_LFR_SCIENCE_NORMAL_ASM_F0";
1053 1077 if (sid == SID_NORM_ASM_F1) packetName = "TM_LFR_SCIENCE_NORMAL_ASM_F1";
1054 1078 if (sid == SID_NORM_ASM_F2) packetName = "TM_LFR_SCIENCE_NORMAL_ASM_F2";
1055 1079 if (sid == SID_NORM_BP1_F0) packetName = "TM_LFR_SCIENCE_NORMAL_BP1_F0";
1056 1080 if (sid == SID_NORM_BP1_F1) packetName = "TM_LFR_SCIENCE_NORMAL_BP1_F1";
1057 1081 if (sid == SID_NORM_BP1_F2) packetName = "TM_LFR_SCIENCE_NORMAL_BP1_F2";
1058 1082 if (sid == SID_NORM_BP2_F0) packetName = "TM_LFR_SCIENCE_NORMAL_BP2_F0";
1059 1083 if (sid == SID_NORM_BP2_F1) packetName = "TM_LFR_SCIENCE_NORMAL_BP2_F1";
1060 1084 if (sid == SID_NORM_BP2_F2) packetName = "TM_LFR_SCIENCE_NORMAL_BP2_F2";
1061 1085 if (sid == SID_BURST_BP1_F0) packetName = "TM_LFR_SCIENCE_BURST_BP1_F0";
1062 1086 if (sid == SID_BURST_BP2_F0) packetName = "TM_LFR_SCIENCE_BURST_BP2_F0";
1063 1087 if (sid == SID_BURST_BP1_F1) packetName = "TM_LFR_SCIENCE_BURST_BP1_F1";
1064 1088 if (sid == SID_BURST_BP2_F1) packetName = "TM_LFR_SCIENCE_BURST_BP2_F1";
1065 1089 if (sid == SID_SBM1_BP1_F0) packetName = "TM_LFR_SCIENCE_SBM1_BP1_F0";
1066 1090 if (sid == SID_SBM1_BP2_F0) packetName = "TM_LFR_SCIENCE_SBM1_BP2_F0";
1067 1091 if (sid == SID_SBM2_BP1_F0) packetName = "TM_LFR_SCIENCE_SBM2_BP1_F0";
1068 1092 if (sid == SID_SBM2_BP2_F0) packetName = "TM_LFR_SCIENCE_SBM2_BP2_F0";
1069 1093 if (sid == SID_SBM2_BP1_F1) packetName = "TM_LFR_SCIENCE_SBM2_BP1_F1";
1070 1094 if (sid == SID_SBM2_BP2_F1) packetName = "TM_LFR_SCIENCE_SBM2_BP2_F1";
1071 1095 }
1072 1096 }
1073 1097
1074 1098 return packetName;
1075 1099 }
1076 1100
1077 1101 void TMStatistics::readSettings()
1078 1102 {
1079 1103 QSettings settings("lpp", "lfrsgse");
1080 1104 defaultStorageDirectory = settings.value( "defaultStorageDirectory", QDir::homePath() ).toString();
1081 1105 label_currentDir->setText(defaultStorageDirectory);
1082 1106 }
1083 1107
1084 1108 void TMStatistics::writeSettings()
1085 1109 {
1086 1110 QSettings settings("lpp", "lfrsgse");
1087 1111 settings.setValue("defaultStorageDirectory", defaultStorageDirectory);
1088 1112 }
General Comments 0
You need to be logged in to leave comments. Login now