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