##// END OF EJS Templates
Commit before binary format packet storage
leroy -
r51:4524f64c9393 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.0, 2013-10-01T11:19:54. -->
3 <!-- Written by QtCreator 2.8.0, 2013-10-03T07:18:57. -->
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,874 +1,881
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_record = new QCheckBox("Record packets");
139 139 checkbox_packetLog = new QCheckBox("Log packets");
140 140 label_currentDir = new QLabel("Current Dir: -");
141 141
142 142 //**********
143 143 // QGroupBox
144 144 this->setStyleSheet("QGroupBox {border: 1px solid black; }");
145 145
146 146 groupbox_stat = new QGroupBox("TM_LFR_TC_EXE_");
147 147 groupbox_NORM = new QGroupBox("TM_LFR_SCIENCE_NORMAL_");
148 148 groupbox_BURST = new QGroupBox("TM_LFR_SCIENCE_BURST_");
149 149 groupbox_SBM1 = new QGroupBox("TM_LFR_SCIENCE_SBM1_");
150 150 groupbox_SBM2 = new QGroupBox("TM_LFR_SCIENCE_SBM2_");
151 151 groupbox_last = new QGroupBox("Last TM received");
152 152 groupbox_record = new QGroupBox("Packet recording");
153 153
154 154 readSettings();
155 155 logFile = new QFile();
156 156 packetLogFile = new QFile();
157 157 logFileEn = false;
158 158 packetLogFileEn = false;
159 159
160 160 initConstants();
161 161
162 162 buildMonitor_NORM();
163 163 buildMonitor_BURST();
164 164 buildMonitor_SBM1();
165 165 buildMonitor_SBM2();
166 166 buildMonitor();
167 167
168 168 groupbox_stat->setFont(font);
169 169 groupbox_NORM->setFont(font);
170 170 groupbox_BURST->setFont(font);
171 171 groupbox_SBM1->setFont(font);
172 172 groupbox_SBM2->setFont(font);
173 173 groupbox_last->setFont(font);
174 174 groupbox_record->setFont(font);
175 175
176 176 connect(this->button_reset_stat, SIGNAL(clicked()), this, SLOT(resetStatistics()));
177 177 connect(this->button_chooseDir, SIGNAL(clicked()), this, SLOT(chooseDir()));
178 178
179 179 connect(this->checkbox_record, SIGNAL(stateChanged(int)), this, SLOT(storePackets(int)));
180 180 connect(this->checkbox_packetLog, SIGNAL(stateChanged(int)), this, SLOT(logPackets(int)));
181 181 }
182 182
183 183 void TMStatistics::initConstants()
184 184 {
185 185 UNKNOWN_nb = 0;
186 186
187 187 // TM_LFR_TC_EXE_
188 188 SUCC_nb = 0;
189 189 INCO_nb = 0;
190 190 NOTE_nb = 0;
191 191 NOTI_nb = 0;
192 192 ERRO_nb = 0;
193 193 CORR_nb = 0;
194 194 HK_nb = 0;
195 195 DUMP_nb = 0;
196 196
197 197 // TM_LFR_SCIENCE_NORMAL_
198 198 NORM_SWF_F0_nb = 0;
199 199 NORM_SWF_F1_nb = 0;
200 200 NORM_SWF_F2_nb = 0;
201 201 NORM_CWF_F3_nb = 0;
202 202 NORM_ASM_F0_nb = 0;
203 203 NORM_ASM_F1_nb = 0;
204 204 NORM_ASM_F2_nb = 0;
205 205 NORM_BP1_F0_nb = 0;
206 206 NORM_BP1_F1_nb = 0;
207 207 NORM_BP1_F2_nb = 0;
208 208 NORM_BP2_F0_nb = 0;
209 209 NORM_BP2_F1_nb = 0;
210 210 NORM_BP2_F2_nb = 0;
211 211
212 212 BURST_CWF_F2_nb = 0;
213 213 BURST_BP1_F0_nb = 0;
214 214 BURST_BP2_F0_nb = 0;
215 215 BURST_BP1_F1_nb = 0;
216 216 BURST_BP2_F1_nb = 0;
217 217 SBM1_CWF_F1_nb = 0;
218 218 SBM1_BP1_F0_nb = 0;
219 219 SBM1_BP2_F0_nb = 0;
220 220 SBM2_CWF_F2_nb = 0;
221 221 SBM2_BP1_F0_nb = 0;
222 222 SBM2_BP2_F0_nb = 0;
223 223 SBM2_BP1_F1_nb = 0;
224 224 SBM2_BP2_F1_nb = 0;
225 225 }
226 226
227 227 void TMStatistics::buildMonitor_NORM()
228 228 {
229 229 layout_NORM->addWidget(label_NORM_SWF_F0, 0, 0, 1, 1);
230 230 layout_NORM->addWidget(label_NORM_SWF_F1, 1, 0, 1, 1);
231 231 layout_NORM->addWidget(label_NORM_SWF_F2, 2, 0, 1, 1);
232 232 layout_NORM->addWidget(label_NORM_CWF_F3, 3, 0, 1, 1);
233 233 //
234 234 layout_NORM->addWidget(label_NORM_SWF_F0_nb, 0, 1, 1, 1);
235 235 layout_NORM->addWidget(label_NORM_SWF_F1_nb, 1, 1, 1, 1);
236 236 layout_NORM->addWidget(label_NORM_SWF_F2_nb, 2, 1, 1, 1);
237 237 layout_NORM->addWidget(label_NORM_CWF_F3_nb, 3, 1, 1, 1);
238 238 //
239 239 layout_NORM->addWidget(label_NORM_ASM_F0, 4, 0, 1, 1);
240 240 layout_NORM->addWidget(label_NORM_ASM_F1, 5, 0, 1, 1);
241 241 layout_NORM->addWidget(label_NORM_ASM_F2, 6, 0, 1, 1);
242 242 //
243 243 layout_NORM->addWidget(label_NORM_ASM_F0_nb, 4, 1, 1, 1);
244 244 layout_NORM->addWidget(label_NORM_ASM_F1_nb, 5, 1, 1, 1);
245 245 layout_NORM->addWidget(label_NORM_ASM_F2_nb, 6, 1, 1, 1);
246 246 //
247 247 layout_NORM->addWidget(label_NORM_BP1_F0, 0, 2, 1, 1);
248 248 layout_NORM->addWidget(label_NORM_BP1_F1, 1, 2, 1, 1);
249 249 layout_NORM->addWidget(label_NORM_BP1_F2, 2, 2, 1, 1);
250 250 layout_NORM->addWidget(label_NORM_BP2_F0, 3, 2, 1, 1);
251 251 layout_NORM->addWidget(label_NORM_BP2_F1, 4, 2, 1, 1);
252 252 layout_NORM->addWidget(label_NORM_BP2_F2, 5, 2, 1, 1);
253 253 //
254 254 layout_NORM->addWidget(label_NORM_BP1_F0_nb, 0, 3, 1, 1);
255 255 layout_NORM->addWidget(label_NORM_BP1_F1_nb, 1, 3, 1, 1);
256 256 layout_NORM->addWidget(label_NORM_BP1_F2_nb, 2, 3, 1, 1);
257 257 layout_NORM->addWidget(label_NORM_BP2_F0_nb, 3, 3, 1, 1);
258 258 layout_NORM->addWidget(label_NORM_BP2_F1_nb, 4, 3, 1, 1);
259 259 layout_NORM->addWidget(label_NORM_BP2_F2_nb, 5, 3, 1, 1);
260 260 }
261 261
262 262 void TMStatistics::buildMonitor_BURST()
263 263 {
264 264 layout_BURST->addWidget(label_BURST_CWF_F2, 0, 0, 1, 1);
265 265 layout_BURST->addWidget(label_BURST_BP1_F0, 1, 0, 1, 1);
266 266 layout_BURST->addWidget(label_BURST_BP2_F0, 2, 0, 1, 1);
267 267 layout_BURST->addWidget(label_BURST_BP1_F1, 3, 0, 1, 1);
268 268 layout_BURST->addWidget(label_BURST_BP2_F1, 4, 0, 1, 1);
269 269 //
270 270 layout_BURST->addWidget(label_BURST_CWF_F2_nb, 0, 1, 1, 1);
271 271 layout_BURST->addWidget(label_BURST_BP1_F0_nb, 1, 1, 1, 1);
272 272 layout_BURST->addWidget(label_BURST_BP2_F0_nb, 2, 1, 1, 1);
273 273 layout_BURST->addWidget(label_BURST_BP1_F1_nb, 3, 1, 1, 1);
274 274 layout_BURST->addWidget(label_BURST_BP2_F1_nb, 4, 1, 1, 1);
275 275 //
276 276 layout_BURST->setRowStretch(5, 1);
277 277 layout_BURST->setColumnStretch(2,1);
278 278 }
279 279
280 280 void TMStatistics::buildMonitor_SBM1()
281 281 {
282 282 layout_SBM1->addWidget(label_SBM1_CWF_F1, 0, 0, 1, 1);
283 283 layout_SBM1->addWidget(label_SBM1_BP1_F0, 1, 0, 1, 1);
284 284 layout_SBM1->addWidget(label_SBM1_BP2_F0, 2, 0, 1, 1);
285 285 //
286 286 layout_SBM1->addWidget(label_SBM1_CWF_F1_nb, 0, 1, 1, 1);
287 287 layout_SBM1->addWidget(label_SBM1_BP1_F0_nb, 1, 1, 1, 1);
288 288 layout_SBM1->addWidget(label_SBM1_BP2_F0_nb, 2, 1, 1, 1);
289 289 //
290 290 layout_SBM1->setRowStretch(3, 1);
291 291 layout_SBM1->setColumnStretch(2,1);
292 292 }
293 293
294 294 void TMStatistics::buildMonitor_SBM2()
295 295 {
296 296 layout_SBM2->addWidget(label_SBM2_CWF_F2, 0, 0, 1, 1);
297 297 layout_SBM2->addWidget(label_SBM2_BP1_F0, 1, 0, 1, 1);
298 298 layout_SBM2->addWidget(label_SBM2_BP2_F0, 2, 0, 1, 1);
299 299 layout_SBM2->addWidget(label_SBM2_BP1_F1, 3, 0, 1, 1);
300 300 layout_SBM2->addWidget(label_SBM2_BP2_F1, 4, 0, 1, 1);
301 301 //
302 302 layout_SBM2->addWidget(label_SBM2_CWF_F2_nb, 0, 1, 1, 1);
303 303 layout_SBM2->addWidget(label_SBM2_BP1_F0_nb, 1, 1, 1, 1);
304 304 layout_SBM2->addWidget(label_SBM2_BP2_F0_nb, 2, 1, 1, 1);
305 305 layout_SBM2->addWidget(label_SBM2_BP1_F1_nb, 3, 1, 1, 1);
306 306 layout_SBM2->addWidget(label_SBM2_BP2_F1_nb, 4, 1, 1, 1);
307 307 //
308 308 layout_SBM2->setRowStretch(5, 1);
309 309 layout_SBM2->setColumnStretch(2,1);
310 310 }
311 311
312 312 void TMStatistics::buildMonitor()
313 313 {
314 314 //***************
315 315 // TM_LFR_TC_EXE_
316 316 layout_stat->addWidget(label_SUCC, 0, 0, 1, 1);
317 317 layout_stat->addWidget(label_INCO, 1, 0, 1, 1);
318 318 layout_stat->addWidget(label_NOTE, 2, 0, 1, 1);
319 319 layout_stat->addWidget(label_NOTI, 3, 0, 1, 1);
320 320 layout_stat->addWidget(label_ERRO, 4, 0, 1, 1);
321 321 layout_stat->addWidget(label_CORR, 5, 0, 1, 1);
322 322 layout_stat->addWidget(label_HK, 6, 0, 1, 1);
323 323 layout_stat->addWidget(label_DUMP, 7, 0, 1, 1);
324 324 //
325 325 layout_stat->addWidget(label_SUCC_nb, 0, 1, 1, 1);
326 326 layout_stat->addWidget(label_INCO_nb, 1, 1, 1, 1);
327 327 layout_stat->addWidget(label_NOTE_nb, 2, 1, 1, 1);
328 328 layout_stat->addWidget(label_NOTI_nb, 3, 1, 1, 1);
329 329 layout_stat->addWidget(label_ERRO_nb, 4, 1, 1, 1);
330 330 layout_stat->addWidget(label_CORR_nb, 5, 1, 1, 1);
331 331 layout_stat->addWidget(label_HK_nb, 6, 1, 1, 1);
332 332 layout_stat->addWidget(label_DUMP_nb, 7, 1, 1, 1);
333 333
334 334 //********
335 335 // LAST TM
336 336 layout_last->addWidget(label_PID, 0, 0, 1, 1);
337 337 layout_last->addWidget(label_CAT, 0, 1, 1, 1);
338 338 layout_last->addWidget(label_TYP, 0, 2, 1, 1);
339 339 layout_last->addWidget(label_SUB, 0, 3, 1, 1);
340 340 layout_last->addWidget(label_SID, 0, 4, 1, 1);
341 341 layout_last->addWidget(label_SIZ, 0, 5, 1, 1);
342 342 //
343 343 layout_last->addWidget(label_PID_is, 1, 0, 1, 1);
344 344 layout_last->addWidget(label_CAT_is, 1, 1, 1, 1);
345 345 layout_last->addWidget(label_TYP_is, 1, 2, 1, 1);
346 346 layout_last->addWidget(label_SUB_is, 1, 3, 1, 1);
347 347 layout_last->addWidget(label_SID_is, 1, 4, 1, 1);
348 348 layout_last->addWidget(label_SIZ_is, 1, 5, 1, 1);
349 349 //
350 350 layout_last->addWidget(label_coarse_time, 2, 0, 1, 1);
351 351 layout_last->addWidget(label_coarse_time_val, 2, 1, 1, 1);
352 352 layout_last->addWidget(label_fine_time, 2, 2, 1, 1);
353 353 layout_last->addWidget(label_fine_time_val, 2, 3, 1, 1);
354 354 //
355 355 layout_last->addWidget(label_UNKNOWN, 3, 0, 1, 1);
356 356 layout_last->addWidget(label_UNKNOWN_nb, 3, 1, 1, 1);
357 357
358 358 layout_record->addWidget(checkbox_record);
359 359 layout_record->addWidget(checkbox_packetLog);
360 360 layout_record->addWidget(button_chooseDir);
361 361 layout_record->addWidget(label_currentDir);
362 362 layout_record->insertStretch(4, 1);
363 363
364 364 //***********
365 365 // groupboxes
366 366 groupbox_stat->setLayout(layout_stat);
367 367 groupbox_NORM->setLayout(layout_NORM);
368 368 groupbox_BURST->setLayout(layout_BURST);
369 369 groupbox_SBM1->setLayout(layout_SBM1);
370 370 groupbox_SBM2->setLayout(layout_SBM2);
371 371 groupbox_last->setLayout(layout_last);
372 372 groupbox_record->setLayout(layout_record);
373 373 //
374 374 mainLayout->addWidget(groupbox_stat, 0, 0, 1, 1);
375 375 mainLayout->addWidget(groupbox_NORM, 1, 0, 1, 1);
376 376 mainLayout->addWidget(groupbox_last, 2, 0, 1, 2);
377 377 mainLayout->addWidget(groupbox_SBM1, 0, 1, 1, 1);
378 378 mainLayout->addWidget(groupbox_SBM2, 0, 2, 1, 1);
379 379 mainLayout->addWidget(groupbox_BURST, 1, 1, 1, 1);
380 380 mainLayout->addWidget(groupbox_record, 1, 2, 1, 1);
381 381 mainLayout->addWidget(button_reset_stat, 3, 0, 1, 3);
382 382 mainLayout->setColumnStretch(3, 1);
383 383 mainLayout->setRowStretch(4, 1);
384 384 //
385 385 this->setLayout(mainLayout);
386 386 }
387 387
388 388 void TMStatistics::resetStatistics()
389 389 {
390 390 initConstants();
391 391 //
392 392 label_UNKNOWN_nb->setText("-");
393 393 label_SUCC_nb->setText("-");
394 394 label_INCO_nb->setText("-");
395 395 label_NOTE_nb->setText("-");
396 396 label_NOTI_nb->setText("-");
397 397 label_ERRO_nb->setText("-");
398 398 label_CORR_nb->setText("-");
399 399 label_HK_nb->setText("-");
400 400 label_DUMP_nb->setText("-");
401 401 //
402 402 label_NORM_SWF_F0_nb->setText("-");
403 403 label_NORM_SWF_F1_nb->setText("-");
404 404 label_NORM_SWF_F2_nb->setText("-");
405 405 label_NORM_CWF_F3_nb->setText("-");
406 406 label_NORM_ASM_F0_nb->setText("-");
407 407 //
408 408 label_BURST_CWF_F2_nb->setText("-");
409 409 //
410 410 label_SBM1_CWF_F1_nb->setText("-");
411 411 //
412 412 label_SBM2_CWF_F2_nb->setText("-");
413 413 //
414 414 label_PID_is->setText("-");
415 415 label_CAT_is->setText("-");
416 416 label_TYP_is->setText("-");
417 417 label_SUB_is->setText("-");
418 418 label_SID_is->setText("-");
419 419 label_SIZ_is->setText("-");
420 420 //
421 421 label_coarse_time_val->setText("-");
422 422 label_fine_time_val->setText("-");
423 423 }
424 424
425 425 void TMStatistics::updateStatistics(unsigned char pid, unsigned char cat,
426 426 unsigned char typ, unsigned char sub,
427 427 unsigned int sid, unsigned int length,
428 428 unsigned int coarse_t, unsigned int fine_t)
429 429 {
430 430 if (cat == TM_PACKET_CAT_TC_EXE)
431 431 {
432 432 if (typ == TM_TYPE_TC_EXE)
433 433 {
434 434 if (sub == TM_SUBTYPE_EXE_OK)
435 435 {
436 436 SUCC_nb = SUCC_nb + 1;
437 437 label_SUCC_nb->setText(QString::number(SUCC_nb));
438 438 }
439 439 else if (sub == TM_SUBTYPE_EXE_NOK)
440 440 {
441 441 if (sid == SID_EXE_INC)
442 442 {
443 443 INCO_nb = INCO_nb + 1;
444 444 label_INCO_nb->setText(QString::number(INCO_nb));
445 445 }
446 446 else if (sid == SID_NOT_EXE)
447 447 {
448 448 NOTE_nb = NOTE_nb + 1;
449 449 label_NOTE_nb->setText(QString::number(NOTE_nb));
450 450 }
451 451 else if (sid == SID_NOT_IMP)
452 452 {
453 453 NOTI_nb = NOTI_nb + 1;
454 454 label_NOTI_nb->setText(QString::number(NOTI_nb));
455 455 }
456 456 else if (sid == SID_EXE_ERR)
457 457 {
458 458 ERRO_nb = ERRO_nb + 1;
459 459 label_ERRO_nb->setText(QString::number(ERRO_nb));
460 460 }
461 461 else if (sid == SID_EXE_CORR)
462 462 {
463 463 CORR_nb = CORR_nb + 1;
464 464 label_CORR_nb->setText(QString::number(CORR_nb));
465 465 }
466 466 else incrementUnknown();
467 467 }
468 468 else incrementUnknown();
469 469 }
470 470 else
471 471 incrementUnknown();
472 472 }
473 473 else if (cat == TM_PACKET_CAT_HK)
474 474 {
475 475 if (typ == TM_TYPE_HK)
476 476 {
477 477 if (sub == TM_SUBTYPE_HK)
478 478 if (sid == SID_HK)
479 479 {
480 480 HK_nb = HK_nb + 1;
481 481 label_HK_nb->setText(QString::number(HK_nb));
482 482 }
483 483 else
484 484 {
485 485 incrementUnknown();
486 486 }
487 487 else
488 488 {
489 489 incrementUnknown();
490 490 }
491 491 }
492 492 else
493 493 {
494 494 incrementUnknown();
495 495 }
496 496 }
497 497 else if (cat == TM_PACKET_CAT_PARAMETER_DUMP)
498 498 {
499 499 if (typ == TM_TYPE_PARAMETER_DUMP)
500 500 {
501 501 if (sub == TM_SUBTYPE_PARAMETER_DUMP)
502 502 if (sid == SID_PARAMETER_DUMP)
503 503 {
504 504 DUMP_nb = DUMP_nb + 1;
505 505 label_DUMP_nb->setText(QString::number(DUMP_nb));
506 506 }
507 507 else
508 508 {
509 509 incrementUnknown();
510 510 }
511 511 else
512 512 {
513 513 incrementUnknown();
514 514 }
515 515 }
516 516 else
517 517 {
518 518 incrementUnknown();
519 519 }
520 520 }
521 521 else if (cat == TM_PACKET_CAT_SCIENCE)
522 522 {
523 523 if (typ == TM_TYPE_LFR_SCIENCE)
524 524 {
525 525 if (sub == TM_SUBTYPE_SCIENCE)
526 526 {
527 527 if (sid == SID_NORM_CWF_F3)
528 528 {
529 529 NORM_CWF_F3_nb = NORM_CWF_F3_nb + 1;
530 530 label_NORM_CWF_F3_nb->setText(QString::number(NORM_CWF_F3_nb));
531 531 }
532 532 else if (sid == SID_BURST_CWF_F2)
533 533 {
534 534 BURST_CWF_F2_nb = BURST_CWF_F2_nb + 1;
535 535 label_BURST_CWF_F2_nb->setText(QString::number(BURST_CWF_F2_nb));
536 536 }
537 537 else if (sid == SID_NORM_SWF_F0)
538 538 {
539 539 NORM_SWF_F0_nb = NORM_SWF_F0_nb + 1;
540 540 label_NORM_SWF_F0_nb->setText(QString::number(NORM_SWF_F0_nb));
541 541 }
542 542 else if (sid == SID_NORM_SWF_F1)
543 543 {
544 544 NORM_SWF_F1_nb = NORM_SWF_F1_nb + 1;
545 545 label_NORM_SWF_F1_nb->setText(QString::number(NORM_SWF_F1_nb));
546 546 }
547 547 else if (sid == SID_NORM_SWF_F2)
548 548 {
549 549 NORM_SWF_F2_nb = NORM_SWF_F2_nb + 1;
550 550 label_NORM_SWF_F2_nb->setText(QString::number(NORM_SWF_F2_nb));
551 551 }
552 552 else if (sid == SID_NORM_ASM_F0)
553 553 {
554 554 NORM_ASM_F0_nb = NORM_ASM_F0_nb + 1;
555 555 label_NORM_ASM_F0_nb->setText(QString::number(NORM_ASM_F0_nb));
556 556 }
557 557 else if (sid == SID_SBM1_CWF_F1)
558 558 {
559 559 SBM1_CWF_F1_nb = SBM1_CWF_F1_nb + 1;
560 560 label_SBM1_CWF_F1_nb->setText(QString::number(SBM1_CWF_F1_nb));
561 561 }
562 562 else if (sid == SID_SBM2_CWF_F2)
563 563 {
564 564 SBM2_CWF_F2_nb = SBM2_CWF_F2_nb + 1;
565 565 label_SBM2_CWF_F2_nb->setText(QString::number(SBM2_CWF_F2_nb));
566 566 }
567 567 else
568 568 {
569 569 incrementUnknown();
570 570 }
571 571 }
572 572 }
573 573 else
574 574 {
575 575 incrementUnknown();
576 576 }
577 577 }
578 578 else
579 579 {
580 580 incrementUnknown();
581 581 }
582 582
583 583 label_PID_is->setText(QString::number(pid));
584 584 label_CAT_is->setText(QString::number(cat));
585 585 label_TYP_is->setText(QString::number(typ));
586 586 label_SUB_is->setText(QString::number(sub));
587 587 label_SID_is->setText(QString::number(sid));
588 588 label_SIZ_is->setText(QString::number(length));
589 589 label_coarse_time_val->setText(QString::number(coarse_t, 16));
590 590 label_fine_time_val->setText(QString::number(fine_t, 16));
591 591 }
592 592
593 593 void TMStatistics::incrementUnknown()
594 594 {
595 595 UNKNOWN_nb = UNKNOWN_nb + 1;
596 596 label_UNKNOWN_nb->setText(QString::number(UNKNOWN_nb));
597 597 }
598 598
599 599 unsigned char TMStatistics::getPID(TMPacketToRead *packet)
600 600 {
601 601 unsigned char pid = 0;
602 602
603 603 pid = ((packet->Value[4] & 0x07) << 4) + ((packet->Value[5] & 0xf0) >> 4);
604 604
605 605 return pid;
606 606 }
607 607
608 608 unsigned char TMStatistics::getCAT(TMPacketToRead *packet)
609 609 {
610 610 unsigned char cat = 0;
611 611
612 612 cat = packet->Value[5] & 0x0f;
613 613
614 614 return cat;
615 615 }
616 616
617 617 unsigned char TMStatistics::getTYPE(TMPacketToRead *packet)
618 618 {
619 619 unsigned char typ = 0;
620 620
621 621 typ = packet->Value[11]; // TYPE
622 622
623 623 return typ;
624 624 }
625 625
626 626 unsigned char TMStatistics::getSUBTYPE(TMPacketToRead *packet)
627 627 {
628 628 unsigned char sub = 0;
629 629
630 630 sub = packet->Value[12]; // SUBTYPE
631 631
632 632 return sub;
633 633 }
634 634
635 635 unsigned int TMStatistics::getLENGTH(TMPacketToRead *packet)
636 636 {
637 637 unsigned int length = 0;
638 638
639 639 length = packet->Value[8] * 256 + packet->Value[9];
640 640
641 641 return length;
642 642 }
643 643
644 644 unsigned int TMStatistics::getCoarseTime(TMPacketToRead *packet)
645 645 {
646 646 unsigned int coarse = 0;
647 647
648 648 coarse = packet->Value[14] * pow(2, 24) + packet->Value[15] * pow(2, 16)
649 649 + packet->Value[16] * pow(2, 8) + packet->Value[17];
650 650
651 651 return coarse;
652 652 }
653 653
654 654 unsigned int TMStatistics::getFineTime(TMPacketToRead *packet)
655 655 {
656 656 unsigned int fine = 0;
657 657
658 658 fine = packet->Value[18] * pow(2, 8) + packet->Value[19];
659 659
660 660 return fine;
661 661 }
662 662
663 663 unsigned int TMStatistics::getSID(TMPacketToRead *packet,
664 664 unsigned char pid, unsigned char cat,
665 665 unsigned char typ, unsigned char sub)
666 666 {
667 667 unsigned int sid = 0;
668 668 QByteArray packetAsAnArray;
669 669 QString packetName;
670 670 QTime currentTime;
671 671 QDate currentDate;
672 672
673 673 if ((pid == TM_PACKET_PID_DEFAULT) & (cat == TM_PACKET_CAT_TC_EXE)
674 674 & (typ == TM_TYPE_TC_EXE) & (sub == TM_SUBTYPE_EXE_NOK))
675 675 sid = packet->Value[20] * 256 + packet->Value[21];
676 676 else if ((pid == TM_PACKET_PID_DEFAULT) & (cat == TM_PACKET_CAT_HK)
677 677 & (typ == TM_TYPE_HK) & (sub == TM_SUBTYPE_HK))
678 678 sid = SID_HK;
679 679 else if ((pid == TM_PACKET_PID_DEFAULT) & (cat == TM_PACKET_CAT_PARAMETER_DUMP)
680 680 & (typ == TM_TYPE_PARAMETER_DUMP) & (sub == TM_SUBTYPE_PARAMETER_DUMP))
681 681 sid = SID_PARAMETER_DUMP;
682 682 else if ((pid == TM_PACKET_PID_DEFAULT) & (cat == TM_PACKET_CAT_SCIENCE)
683 683 & (typ == TM_TYPE_LFR_SCIENCE) & (sub == TM_SUBTYPE_LFR_SCIENCE))
684 684 sid = packet->Value[20];
685 685 else if ((pid == TM_PACKET_PID_BURST_SBM1_SBM2) & (cat == TM_PACKET_CAT_SCIENCE)
686 686 & (typ == TM_TYPE_LFR_SCIENCE) & (sub == TM_SUBTYPE_LFR_SCIENCE))
687 687 sid = packet->Value[20];
688 688
689 689 if (logFileEn == true)
690 690 {
691 691 packetAsAnArray = QByteArray::fromRawData((char *) &packet->Value[4], (packet->size-4)).toHex();
692 692 *(this->logFileStrm)
693 693 << QDate::currentDate().toString() + " "
694 694 << QTime::currentTime().toString() << endl
695 695 << packetAsAnArray
696 696 << endl
697 697 << endl;
698 698 }
699 699
700 700 if (packetLogFileEn == true)
701 701 {
702 702 currentTime = QTime::currentTime();
703 703 currentDate = QDate::currentDate();
704 704 packetName = getPacketName( typ, sub, sid);
705 705
706 706 *(this->packetLogFileStrm)
707 707 << QString::number(currentDate.year()) + " "
708 708 << QString::number(currentDate.month()) + " "
709 709 << QString::number(currentDate.day()) + " "
710 710 << QTime::currentTime().toString() + ":"
711 711 << QString::number(currentTime.msec()) + " "
712 712 << packetName
713 713 << " time = 0x " + QString::number(
714 714 (packet->Value[14] << 24) + (packet->Value[15] << 16) + (packet->Value[16] << 8) + packet->Value[17],
715 715 16).right(8)
716 716 << " " + QString::number( (packet->Value[18] << 8) + packet->Value[19], 16)
717 717 << endl;
718 718 }
719 719
720 720 return sid;
721 721 }
722 722
723 723 void TMStatistics::buildFileName()
724 724 {
725 725 QString date;
726 726 QString time;
727 727 QString prefix;
728 728
729 729 date = QDate::currentDate().toString();
730 730 time = QTime::currentTime().toString();
731 731
732 732 prefix = defaultStorageDirectory + "/" + date + "_" + time + "_" ;
733 733
734 734 if(this->logFile->isOpen()) this->logFile->close();
735 735 this->logFile->setFileName( prefix + "packet_record.data");
736 736 if(this->logFile->open(QIODevice::WriteOnly)) this->logFileStrm = new QTextStream(this->logFile);
737 737 }
738 738
739 739 void TMStatistics::buildPacketLogFileName()
740 740 {
741 741 QString date;
742 742 QString time;
743 743 QString prefix;
744 744
745 745 date = QDate::currentDate().toString();
746 746 time = QTime::currentTime().toString();
747 747
748 748 prefix = defaultStorageDirectory + "/" + date + "_" + time + "_" ;
749 749
750 750 if(this->packetLogFile->isOpen()) this->packetLogFile->close();
751 751 this->packetLogFile->setFileName( prefix + "packet_log.data");
752 752 if(this->packetLogFile->open(QIODevice::WriteOnly)) this->packetLogFileStrm = new QTextStream(this->packetLogFile);
753 753 }
754 754
755 755 void TMStatistics::storePackets( int state )
756 756 {
757 757 if (state == Qt::Checked)
758 758 {
759 759 buildFileName();
760 760 logFileEn = true;
761 761 }
762 762 else
763 763 {
764 764 if(this->logFile->isOpen()) this->logFile->close();
765 765 logFileEn = false;
766 766 }
767 767 }
768 768
769 769 void TMStatistics::logPackets( int state )
770 770 {
771 771 if (state == Qt::Checked)
772 772 {
773 773 buildPacketLogFileName();
774 774 packetLogFileEn = true;
775 775 }
776 776 else
777 777 {
778 778 if(this->packetLogFile->isOpen()) this->packetLogFile->close();
779 779 packetLogFileEn = false;
780 780 }
781 781 }
782 782
783 void TMStatistics::readSettings()
784 {
785 QSettings settings("lpp", "lfrsgse");
786 defaultStorageDirectory = settings.value("defaultStorageDirectory", QDir::homePath()).toString();
787 label_currentDir->setText(defaultStorageDirectory);
788 }
789
790 void TMStatistics::writeSettings()
791 {
792 QSettings settings("lpp", "lfrsgse");
793 settings.setValue("defaultStorageDirectory", defaultStorageDirectory);
794 }
795
796 783 void TMStatistics::chooseDir()
797 784 {
798 defaultStorageDirectory = QFileDialog::getExistingDirectory(this,
785 QString tmpDefaultStorageDirectory;
786 tmpDefaultStorageDirectory = QFileDialog::getExistingDirectory(this,
799 787 "choose the directory",
800 788 QDir::homePath(),
801 789 QFileDialog::ShowDirsOnly);
790
791 if( !tmpDefaultStorageDirectory.isEmpty() )
792 {
793 defaultStorageDirectory = tmpDefaultStorageDirectory;
794 }
795
802 796 label_currentDir->setText(defaultStorageDirectory);
803 797 }
804 798
805 799 void TMStatistics::closeEvent(QCloseEvent *event)
806 800 {
807 801 if(this->logFile->isOpen())
808 802 {
809 803 this->logFileStrm->flush();
810 804 this->logFile->waitForBytesWritten(3000);
811 805 this->logFile->close();
812 806 }
813 807 writeSettings();
814 808 event->accept();
815 809 }
816 810
817 811 QString TMStatistics::getPacketName(unsigned char type, unsigned char subtype, unsigned int sid)
818 812 {
819 813 QString packetName = "default";
820 814 if (type == TM_TYPE_TC_EXE)
821 815 {
822 816 if (subtype== TM_SUBTYPE_EXE_OK) packetName = "TM_LFR_TC_EXE_SUCCESS";
823 817 if (subtype == TM_SUBTYPE_EXE_NOK)
824 818 {
825 819 if (sid == SID_EXE_INC) packetName = "TM_LFR_TC_EXE_INCONSISTENT";
826 820 if (sid == SID_NOT_EXE) packetName = "TM_LFR_TC_EXE_NOT_EXECUTABLE";
827 821 if (sid == SID_NOT_IMP) packetName = "TM_LFR_TC_EXE_NOT_IMPLEMENTED";
828 822 if (sid == SID_EXE_ERR) packetName = "TM_LFR_TC_EXE_ERROR";
829 823 if (sid == SID_EXE_CORR) packetName = "TM_LFR_TC_EXE_CORRUPTED";
830 824 }
831 825 }
832 826 if (type == TM_TYPE_HK)
833 827 {
834 828 if (subtype == TM_SUBTYPE_HK)
835 829 {
836 830 if (sid == SID_HK) packetName = "TM_LFR_HK";
837 831 if (sid == SID_PARAMETER_DUMP) packetName = "TM_LFR_PARAMETER_DUMP";
838 832 }
839 833 }
840 834 if (type == TM_TYPE_LFR_SCIENCE)
841 835 {
842 836 if (subtype == TM_SUBTYPE_SCIENCE)
843 837 {
844 838 if (sid == SID_NORM_SWF_F0) packetName = "TM_LFR_SCIENCE_NORMAL_SWF_F0";
845 839 if (sid == SID_NORM_SWF_F1) packetName = "TM_LFR_SCIENCE_NORMAL_SWF_F1";
846 840 if (sid == SID_NORM_SWF_F2) packetName = "TM_LFR_SCIENCE_NORMAL_SWF_F2";
847 841 if (sid == SID_NORM_CWF_F3) packetName = "TM_LFR_SCIENCE_NORMAL_CWF_F3";
848 842 if (sid == SID_BURST_CWF_F2) packetName = "TM_LFR_SCIENCE_BURST_CWF_F2";
849 843 if (sid == SID_SBM1_CWF_F1) packetName = "TM_LFR_SCIENCE_SBM1_CWF_F1";
850 844 if (sid == SID_SBM2_CWF_F2) packetName = "TM_LFR_SCIENCE_SBM2_CWF_F2";
851 845 if (sid == SID_NORM_ASM_F0) packetName = "TM_LFR_SCIENCE_NORMAL_ASM_F0";
852 846 if (sid == SID_NORM_ASM_F1) packetName = "TM_LFR_SCIENCE_NORMAL_ASM_F1";
853 847 if (sid == SID_NORM_ASM_F2) packetName = "TM_LFR_SCIENCE_NORMAL_ASM_F2";
854 848 if (sid == SID_NORM_BP1_F0) packetName = "TM_LFR_SCIENCE_NORMAL_BP1_F0";
855 849 if (sid == SID_NORM_BP1_F1) packetName = "TM_LFR_SCIENCE_NORMAL_BP1_F1";
856 850 if (sid == SID_NORM_BP1_F2) packetName = "TM_LFR_SCIENCE_NORMAL_BP1_F2";
857 851 if (sid == SID_NORM_BP2_F0) packetName = "TM_LFR_SCIENCE_NORMAL_BP2_F0";
858 852 if (sid == SID_NORM_BP2_F1) packetName = "TM_LFR_SCIENCE_NORMAL_BP2_F1";
859 853 if (sid == SID_NORM_BP2_F2) packetName = "TM_LFR_SCIENCE_NORMAL_BP2_F2";
860 854 if (sid == SID_BURST_BP1_F0) packetName = "TM_LFR_SCIENCE_BURST_BP1_F0";
861 855 if (sid == SID_BURST_BP2_F0) packetName = "TM_LFR_SCIENCE_BURST_BP2_F0";
862 856 if (sid == SID_BURST_BP1_F1) packetName = "TM_LFR_SCIENCE_BURST_BP1_F1";
863 857 if (sid == SID_BURST_BP2_F1) packetName = "TM_LFR_SCIENCE_BURST_BP2_F1";
864 858 if (sid == SID_SBM1_BP1_F0) packetName = "TM_LFR_SCIENCE_SBM1_BP1_F0";
865 859 if (sid == SID_SBM1_BP2_F0) packetName = "TM_LFR_SCIENCE_SBM1_BP2_F0";
866 860 if (sid == SID_SBM2_BP1_F0) packetName = "TM_LFR_SCIENCE_SBM2_BP1_F0";
867 861 if (sid == SID_SBM2_BP2_F0) packetName = "TM_LFR_SCIENCE_SBM2_BP2_F0";
868 862 if (sid == SID_SBM2_BP1_F1) packetName = "TM_LFR_SCIENCE_SBM2_BP1_F1";
869 863 if (sid == SID_SBM2_BP2_F1) packetName = "TM_LFR_SCIENCE_SBM2_BP2_F1";
870 864 }
871 865 }
872 866
873 867 return packetName;
874 868 }
869
870 void TMStatistics::readSettings()
871 {
872 QSettings settings("lpp", "lfrsgse");
873 defaultStorageDirectory = settings.value("defaultStorageDirectory", QDir::homePath()).toString();
874 label_currentDir->setText(defaultStorageDirectory);
875 }
876
877 void TMStatistics::writeSettings()
878 {
879 QSettings settings("lpp", "lfrsgse");
880 settings.setValue("defaultStorageDirectory", defaultStorageDirectory);
881 }
General Comments 0
You need to be logged in to leave comments. Login now