##// END OF EJS Templates
infinite loop suppressed...
leroy -
r18:b2eb1d610650 default
parent child
Show More
@@ -1,342 +1,342
1 1 <?xml version="1.0" encoding="UTF-8"?>
2 2 <!DOCTYPE QtCreatorProject>
3 <!-- Written by Qt Creator 2.4.1, 2013-04-23T10:22:08. -->
3 <!-- Written by Qt Creator 2.4.1, 2013-04-23T11:06:46. -->
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 <valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.0">
15 15 <value type="QString" key="language">Cpp</value>
16 16 <valuemap type="QVariantMap" key="value">
17 17 <value type="QString" key="CurrentPreferences">CppGlobal</value>
18 18 </valuemap>
19 19 </valuemap>
20 20 <valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.1">
21 21 <value type="QString" key="language">QmlJS</value>
22 22 <valuemap type="QVariantMap" key="value">
23 23 <value type="QString" key="CurrentPreferences">QmlJSGlobal</value>
24 24 </valuemap>
25 25 </valuemap>
26 26 <value type="int" key="EditorConfiguration.CodeStyle.Count">2</value>
27 27 <value type="QByteArray" key="EditorConfiguration.Codec">System</value>
28 28 <value type="bool" key="EditorConfiguration.ConstrainTooltips">false</value>
29 29 <value type="int" key="EditorConfiguration.IndentSize">4</value>
30 30 <value type="bool" key="EditorConfiguration.MouseNavigation">true</value>
31 31 <value type="int" key="EditorConfiguration.PaddingMode">1</value>
32 32 <value type="bool" key="EditorConfiguration.ScrollWheelZooming">true</value>
33 33 <value type="int" key="EditorConfiguration.SmartBackspaceBehavior">0</value>
34 34 <value type="bool" key="EditorConfiguration.SpacesForTabs">true</value>
35 35 <value type="int" key="EditorConfiguration.TabKeyBehavior">0</value>
36 36 <value type="int" key="EditorConfiguration.TabSize">8</value>
37 37 <value type="bool" key="EditorConfiguration.UseGlobal">true</value>
38 38 <value type="int" key="EditorConfiguration.Utf8BomBehavior">1</value>
39 39 <value type="bool" key="EditorConfiguration.addFinalNewLine">true</value>
40 40 <value type="bool" key="EditorConfiguration.cleanIndentation">true</value>
41 41 <value type="bool" key="EditorConfiguration.cleanWhitespace">true</value>
42 42 <value type="bool" key="EditorConfiguration.inEntireDocument">false</value>
43 43 </valuemap>
44 44 </data>
45 45 <data>
46 46 <variable>ProjectExplorer.Project.PluginSettings</variable>
47 47 <valuemap type="QVariantMap"/>
48 48 </data>
49 49 <data>
50 50 <variable>ProjectExplorer.Project.Target.0</variable>
51 51 <valuemap type="QVariantMap">
52 52 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Desktop</value>
53 53 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Desktop</value>
54 54 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Target.DesktopTarget</value>
55 55 <value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">0</value>
56 56 <value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
57 57 <value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
58 58 <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
59 59 <value type="QString" key="ProjectExplorer.BuildCOnfiguration.ToolChain">ProjectExplorer.ToolChain.Gcc:/usr/bin/g++.x86-linux-generic-elf-64bit./usr/bin/gdb</value>
60 60 <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
61 61 <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
62 62 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
63 63 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
64 64 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
65 65 <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">false</value>
66 66 <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibraryAuto">true</value>
67 67 <value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
68 68 <value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
69 69 </valuemap>
70 70 <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
71 71 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
72 72 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
73 73 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
74 74 <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
75 75 <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
76 76 <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
77 77 </valuemap>
78 78 <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
79 79 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
80 80 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
81 81 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
82 82 </valuemap>
83 83 <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
84 84 <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
85 85 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
86 86 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
87 87 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
88 88 <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
89 89 <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
90 90 <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
91 91 </valuemap>
92 92 <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
93 93 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
94 94 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
95 95 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
96 96 </valuemap>
97 97 <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
98 98 <value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
99 99 <valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
100 100 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Qt 4.8.2 in PATH (System) Release</value>
101 101 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
102 102 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
103 103 <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
104 104 <value type="QString" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildDirectory">/opt/LPPMON_PLUGINS_PAUL</value>
105 105 <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.QtVersionId">1</value>
106 106 <value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">false</value>
107 107 </valuemap>
108 108 <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.1">
109 109 <value type="QString" key="ProjectExplorer.BuildCOnfiguration.ToolChain">ProjectExplorer.ToolChain.Gcc:/usr/bin/g++.x86-linux-generic-elf-64bit./usr/bin/gdb</value>
110 110 <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
111 111 <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
112 112 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
113 113 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
114 114 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
115 115 <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">false</value>
116 116 <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibraryAuto">true</value>
117 117 <value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
118 118 <value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
119 119 </valuemap>
120 120 <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
121 121 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
122 122 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
123 123 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
124 124 <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
125 125 <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
126 126 <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
127 127 </valuemap>
128 128 <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
129 129 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
130 130 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
131 131 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
132 132 </valuemap>
133 133 <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
134 134 <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
135 135 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
136 136 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
137 137 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
138 138 <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
139 139 <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
140 140 <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
141 141 </valuemap>
142 142 <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
143 143 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
144 144 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
145 145 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
146 146 </valuemap>
147 147 <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
148 148 <value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
149 149 <valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
150 150 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Qt 4.8.2 in PATH (System) Debug</value>
151 151 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
152 152 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
153 153 <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value>
154 154 <value type="QString" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildDirectory">/opt/LPPMON_PLUGINS_PAUL</value>
155 155 <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.QtVersionId">1</value>
156 156 <value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">false</value>
157 157 </valuemap>
158 158 <value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">2</value>
159 159 <valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
160 160 <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
161 161 <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
162 162 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy</value>
163 163 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
164 164 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
165 165 </valuemap>
166 166 <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
167 167 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">No deployment</value>
168 168 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
169 169 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
170 170 </valuemap>
171 171 <value type="int" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
172 172 <valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
173 173 <value type="bool" key="Analyzer.Project.UseGlobal">true</value>
174 174 <value type="bool" key="Analyzer.Project.UseGlobal">true</value>
175 175 <valuelist type="QVariantList" key="Analyzer.Valgrind.AddedSuppressionFiles"/>
176 176 <valuelist type="QVariantList" key="Analyzer.Valgrind.AddedSuppressionFiles"/>
177 177 <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectBusEvents">false</value>
178 178 <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectBusEvents">false</value>
179 179 <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectSystime">false</value>
180 180 <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectSystime">false</value>
181 181 <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableBranchSim">false</value>
182 182 <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableBranchSim">false</value>
183 183 <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableCacheSim">false</value>
184 184 <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableCacheSim">false</value>
185 185 <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableEventToolTips">true</value>
186 186 <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableEventToolTips">true</value>
187 187 <value type="double" key="Analyzer.Valgrind.Callgrind.MinimumCostRatio">0.01</value>
188 188 <value type="double" key="Analyzer.Valgrind.Callgrind.MinimumCostRatio">0.01</value>
189 189 <value type="double" key="Analyzer.Valgrind.Callgrind.VisualisationMinimumCostRatio">10</value>
190 190 <value type="double" key="Analyzer.Valgrind.Callgrind.VisualisationMinimumCostRatio">10</value>
191 191 <value type="bool" key="Analyzer.Valgrind.FilterExternalIssues">true</value>
192 192 <value type="bool" key="Analyzer.Valgrind.FilterExternalIssues">true</value>
193 193 <value type="int" key="Analyzer.Valgrind.NumCallers">25</value>
194 194 <value type="int" key="Analyzer.Valgrind.NumCallers">25</value>
195 195 <valuelist type="QVariantList" key="Analyzer.Valgrind.RemovedSuppressionFiles"/>
196 196 <valuelist type="QVariantList" key="Analyzer.Valgrind.RemovedSuppressionFiles"/>
197 197 <value type="bool" key="Analyzer.Valgrind.TrackOrigins">true</value>
198 198 <value type="bool" key="Analyzer.Valgrind.TrackOrigins">true</value>
199 199 <value type="QString" key="Analyzer.Valgrind.ValgrindExecutable">valgrind</value>
200 200 <value type="QString" key="Analyzer.Valgrind.ValgrindExecutable">valgrind</value>
201 201 <valuelist type="QVariantList" key="Analyzer.Valgrind.VisibleErrorKinds">
202 202 <value type="int">0</value>
203 203 <value type="int">1</value>
204 204 <value type="int">2</value>
205 205 <value type="int">3</value>
206 206 <value type="int">4</value>
207 207 <value type="int">5</value>
208 208 <value type="int">6</value>
209 209 <value type="int">7</value>
210 210 <value type="int">8</value>
211 211 <value type="int">9</value>
212 212 <value type="int">10</value>
213 213 <value type="int">11</value>
214 214 <value type="int">12</value>
215 215 <value type="int">13</value>
216 216 <value type="int">14</value>
217 217 </valuelist>
218 218 <valuelist type="QVariantList" key="Analyzer.Valgrind.VisibleErrorKinds">
219 219 <value type="int">0</value>
220 220 <value type="int">1</value>
221 221 <value type="int">2</value>
222 222 <value type="int">3</value>
223 223 <value type="int">4</value>
224 224 <value type="int">5</value>
225 225 <value type="int">6</value>
226 226 <value type="int">7</value>
227 227 <value type="int">8</value>
228 228 <value type="int">9</value>
229 229 <value type="int">10</value>
230 230 <value type="int">11</value>
231 231 <value type="int">12</value>
232 232 <value type="int">13</value>
233 233 <value type="int">14</value>
234 234 </valuelist>
235 235 <value type="QString" key="ProjectExplorer.CustomExecutableRunConfiguration.Arguments"></value>
236 236 <value type="int" key="ProjectExplorer.CustomExecutableRunConfiguration.BaseEnvironmentBase">2</value>
237 237 <value type="QString" key="ProjectExplorer.CustomExecutableRunConfiguration.Executable">lppmon</value>
238 238 <value type="bool" key="ProjectExplorer.CustomExecutableRunConfiguration.UseTerminal">false</value>
239 239 <valuelist type="QVariantList" key="ProjectExplorer.CustomExecutableRunConfiguration.UserEnvironmentChanges"/>
240 240 <value type="QString" key="ProjectExplorer.CustomExecutableRunConfiguration.WorkingDirectory">%{buildDir}</value>
241 241 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Run lppmon</value>
242 242 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
243 243 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.CustomExecutableRunConfiguration</value>
244 244 <value type="uint" key="RunConfiguration.QmlDebugServerPort">3768</value>
245 245 <value type="bool" key="RunConfiguration.UseCppDebugger">true</value>
246 246 <value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
247 247 <value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">false</value>
248 248 </valuemap>
249 249 <valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.1">
250 250 <value type="bool" key="Analyzer.Project.UseGlobal">true</value>
251 251 <value type="bool" key="Analyzer.Project.UseGlobal">true</value>
252 252 <valuelist type="QVariantList" key="Analyzer.Valgrind.AddedSuppressionFiles"/>
253 253 <valuelist type="QVariantList" key="Analyzer.Valgrind.AddedSuppressionFiles"/>
254 254 <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectBusEvents">false</value>
255 255 <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectBusEvents">false</value>
256 256 <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectSystime">false</value>
257 257 <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectSystime">false</value>
258 258 <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableBranchSim">false</value>
259 259 <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableBranchSim">false</value>
260 260 <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableCacheSim">false</value>
261 261 <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableCacheSim">false</value>
262 262 <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableEventToolTips">true</value>
263 263 <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableEventToolTips">true</value>
264 264 <value type="double" key="Analyzer.Valgrind.Callgrind.MinimumCostRatio">0.01</value>
265 265 <value type="double" key="Analyzer.Valgrind.Callgrind.MinimumCostRatio">0.01</value>
266 266 <value type="double" key="Analyzer.Valgrind.Callgrind.VisualisationMinimumCostRatio">10</value>
267 267 <value type="double" key="Analyzer.Valgrind.Callgrind.VisualisationMinimumCostRatio">10</value>
268 268 <value type="bool" key="Analyzer.Valgrind.FilterExternalIssues">true</value>
269 269 <value type="bool" key="Analyzer.Valgrind.FilterExternalIssues">true</value>
270 270 <value type="int" key="Analyzer.Valgrind.NumCallers">25</value>
271 271 <value type="int" key="Analyzer.Valgrind.NumCallers">25</value>
272 272 <valuelist type="QVariantList" key="Analyzer.Valgrind.RemovedSuppressionFiles"/>
273 273 <valuelist type="QVariantList" key="Analyzer.Valgrind.RemovedSuppressionFiles"/>
274 274 <value type="bool" key="Analyzer.Valgrind.TrackOrigins">true</value>
275 275 <value type="bool" key="Analyzer.Valgrind.TrackOrigins">true</value>
276 276 <value type="QString" key="Analyzer.Valgrind.ValgrindExecutable">valgrind</value>
277 277 <value type="QString" key="Analyzer.Valgrind.ValgrindExecutable">valgrind</value>
278 278 <valuelist type="QVariantList" key="Analyzer.Valgrind.VisibleErrorKinds">
279 279 <value type="int">0</value>
280 280 <value type="int">1</value>
281 281 <value type="int">2</value>
282 282 <value type="int">3</value>
283 283 <value type="int">4</value>
284 284 <value type="int">5</value>
285 285 <value type="int">6</value>
286 286 <value type="int">7</value>
287 287 <value type="int">8</value>
288 288 <value type="int">9</value>
289 289 <value type="int">10</value>
290 290 <value type="int">11</value>
291 291 <value type="int">12</value>
292 292 <value type="int">13</value>
293 293 <value type="int">14</value>
294 294 </valuelist>
295 295 <valuelist type="QVariantList" key="Analyzer.Valgrind.VisibleErrorKinds">
296 296 <value type="int">0</value>
297 297 <value type="int">1</value>
298 298 <value type="int">2</value>
299 299 <value type="int">3</value>
300 300 <value type="int">4</value>
301 301 <value type="int">5</value>
302 302 <value type="int">6</value>
303 303 <value type="int">7</value>
304 304 <value type="int">8</value>
305 305 <value type="int">9</value>
306 306 <value type="int">10</value>
307 307 <value type="int">11</value>
308 308 <value type="int">12</value>
309 309 <value type="int">13</value>
310 310 <value type="int">14</value>
311 311 </valuelist>
312 312 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">spwtimegenerator</value>
313 313 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
314 314 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration</value>
315 315 <value type="int" key="Qt4ProjectManager.Qt4RunConfiguration.BaseEnvironmentBase">2</value>
316 316 <value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.CommandLineArguments"></value>
317 317 <value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.ProFile">spwtimegenerator/spwtimegenerator/spwtimegenerator.pro</value>
318 318 <value type="bool" key="Qt4ProjectManager.Qt4RunConfiguration.UseDyldImageSuffix">false</value>
319 319 <value type="bool" key="Qt4ProjectManager.Qt4RunConfiguration.UseTerminal">false</value>
320 320 <valuelist type="QVariantList" key="Qt4ProjectManager.Qt4RunConfiguration.UserEnvironmentChanges"/>
321 321 <value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.UserWorkingDirectory"></value>
322 322 <value type="uint" key="RunConfiguration.QmlDebugServerPort">3768</value>
323 323 <value type="bool" key="RunConfiguration.UseCppDebugger">true</value>
324 324 <value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
325 325 <value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
326 326 </valuemap>
327 327 <value type="int" key="ProjectExplorer.Target.RunConfigurationCount">2</value>
328 328 </valuemap>
329 329 </data>
330 330 <data>
331 331 <variable>ProjectExplorer.Project.TargetCount</variable>
332 332 <value type="int">1</value>
333 333 </data>
334 334 <data>
335 335 <variable>ProjectExplorer.Project.Updater.EnvironmentId</variable>
336 336 <value type="QString">{2e58a81f-9962-4bba-ae6b-760177f0656c}</value>
337 337 </data>
338 338 <data>
339 339 <variable>ProjectExplorer.Project.Updater.FileVersion</variable>
340 340 <value type="int">10</value>
341 341 </data>
342 342 </qtcreator>
@@ -1,459 +1,460
1 1 /*------------------------------------------------------------------------------
2 2 -- This file is a part of the LPPMON Software
3 3 -- Copyright (C) 2012, Laboratory of Plasma Physics - CNRS
4 4 --
5 5 -- This program is free software; you can redistribute it and/or modify
6 6 -- it under the terms of the GNU General Public License as published by
7 7 -- the Free Software Foundation; either version 3 of the License, or
8 8 -- (at your option) any later version.
9 9 --
10 10 -- This program is distributed in the hope that it will be useful,
11 11 -- but WITHOUT ANY WARRANTY; without even the implied warranty of
12 12 -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 13 -- GNU General Public License for more details.
14 14 --
15 15 -- You should have received a copy of the GNU General Public License
16 16 -- along with this program; if not, write to the Free Software
17 17 -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 18 -------------------------------------------------------------------------------*/
19 19 /*-- Author : Paul LEROY
20 20 -- Mail : paul.leroy@lpp.polytechnique.fr
21 21 ----------------------------------------------------------------------------*/
22 22 #include "rmapplugin.h"
23 23 #include <QHostAddress>
24 24 #include <QIODevice>
25 25 #include <QApplication>
26 26 #include <rmappluginpythonwrapper.h>
27 27 #include <PythonQt.h>
28 28 #include <QTimer>
29 29
30 30 rmapplugin::rmapplugin(QWidget *parent)
31 31 :lppmonplugin(parent,false)
32 32 {
33 33 this->UI = new rmapPluginUI();
34 34 this->setWindowTitle(tr("RMAP and SPW Communication"));
35 35 this->setWidget((QWidget*)this->UI);
36 36
37 37 timeCode = 0;
38 38 time_COARSE = 0;
39 39 time_FINE = 0;
40 40 currentBridge = selectedBridgeIsUnknown;
41 41
42 42 //**************
43 43 //Python wrapper
44 44 this->pyObject = new rmappluginPythonWrapper();
45 45 connect(this->pyObject,SIGNAL(ReadSig(uint*,uint,uint)),this,SLOT(Read(uint*,uint,uint)));
46 46 connect(this->pyObject,SIGNAL(WriteSig(uint*,uint,uint)),this,SLOT(Write(uint*,uint,uint)));
47 47 //**
48 48 connect( (rmappluginPythonWrapper*)this->pyObject, SIGNAL( WriteSPWSig(char*,uint,char,char) ),
49 49 this, SLOT( WriteSPW(char*,uint,char,char)), Qt::DirectConnection );
50 50 //**
51 51 connect( (rmappluginPythonWrapper*)this->pyObject, SIGNAL( updateTargetAddress(unsigned char) ),
52 52 this, SLOT( setValueTargetAddress(unsigned char)) );
53 53 //**
54 54 connect( (rmappluginPythonWrapper*)this->pyObject, SIGNAL( updateSourceAddress(unsigned char) ),
55 55 this, SLOT( setValueSourceAddress(unsigned char)) );
56 56 //**
57 57 connect( (rmappluginPythonWrapper*)this->pyObject, SIGNAL(sendMessage(QString)),
58 58 this, SLOT(displayOnConsole(QString)) );
59 59 //**
60 60 connect( (rmappluginPythonWrapper*)this->pyObject, SIGNAL(fetchPacketSig()),
61 61 this, SLOT(fetchPacket()), Qt::DirectConnection );
62 62 //**************
63 63
64 64 //**************
65 65 // get a smart pointer to the __main__ module of the Python interpreter
66 66 PythonQtObjectPtr context = PythonQt::self()->getMainModule();
67 67 // add a QObject as variable of name "BUTTON_rmapOpenCommunication" to the namespace of the __main__ module
68 68 context.addObject("BUTTON_rmapOpenCommunication", UI->rmapOpenCommunicationButton);
69 69 context.addObject("BUTTON_rmapCloseCommunication", UI->rmapCloseCommunicationButton);
70 70 context.addObject("BUTTON_selectStarDundee", UI->selectStarDundee_BUTTON);
71 71 context.addObject("BUTTON_selectGRESB", UI->selectGRESB_BUTTON);
72 72 context.addObject("GRESB_Bridge", UI->gresbBridge);
73 73 //**************
74 74
75 75 connect(UI->rmapOpenCommunicationButton, SIGNAL(clicked()), this, SLOT(openBridge()));
76 76 connect(UI->rmapCloseCommunicationButton, SIGNAL(clicked()), this, SLOT(closeBridge()));
77 77
78 78 // CCSDS
79 79 connect(this->UI->sendCCSDSCommandButton, SIGNAL(clicked()), this, SLOT(sendCCSDS()));
80 80 connect(this->UI->send_TC_LFR_UPDATE_TIME_Button, SIGNAL(clicked()), this, SLOT(send_TC_LFR_UPDATE_TIME()));
81 81 connect(this->UI->reset_TC_LFR_UPDATE_TIME_Button, SIGNAL(clicked()), this, SLOT(reset_TC_LFR_UPDATE_TIME()));
82 82
83 83 // spectralMAtricesDMASimulator
84 84 connect(this->UI->spectralMatricesDMASimulator, SIGNAL(rmapplugginRead(uint*,uint,uint)), this, SLOT(Read(uint*,uint,uint)));
85 85 connect(this->UI->spectralMatricesDMASimulator, SIGNAL(rmapplugginWrite(uint*,uint,uint)), this, SLOT(Write(uint*,uint,uint)));
86 86 connect(this->UI->spectralMatricesDMASimulator, SIGNAL(sendMessage(QString)), this, SLOT(displayOnConsole(QString)));
87 87
88 88 //******
89 89 // GRESB
90 90 connect(this->UI->gresbBridge, SIGNAL(sendMessage(QString)), this, SLOT(displayOnConsole(QString)));
91 91 connect(this->UI->gresbBridge, SIGNAL(isOpen(bool)), this, SLOT(activatePlugin(bool)));
92 92 connect(this->UI->gresbBridge, SIGNAL(RMAP_write_reply_setText(QString)), this, SLOT(RMAP_write_reply_setText(QString)));
93 93 connect(this->UI->gresbBridge, SIGNAL(appendToLog(QString)), this, SLOT(appendToLog(QString)));
94 94 connect(this, SIGNAL(ccsdsPacketIsProcessed()), this->UI->gresbBridge, SLOT(ccsdsPacketIsProcessed()));
95 95 connect(this->UI->rmapTargetLogicalAddressSpinBox, SIGNAL(valueChanged(int)),
96 96 this->UI->gresbBridge, SLOT(targetHasChanged(int)));
97 97 connect(this->UI->rmapSourceLogicalAddressSpinBox, SIGNAL(valueChanged(int)),
98 98 this->UI->gresbBridge, SLOT(sourceHasChanged(int)));
99 99 connect(this->UI->gresbBridge, SIGNAL(sendPacket(TMPacketToRead*)),
100 100 this, SLOT(receivePacketFromBridge(TMPacketToRead*)));
101 101
102 102 //************
103 103 // Star Dundee
104 104 connect(this->UI->starDundee, SIGNAL(sendMessage(QString)), this, SLOT(displayOnConsole(QString)));
105 105 connect(this->UI->starDundee, SIGNAL(isOpen(bool)), this, SLOT(activatePlugin(bool)));
106 106 connect(this->UI->starDundee, SIGNAL(RMAP_write_reply_setText(QString)), this, SLOT(RMAP_write_reply_setText(QString)));
107 107 connect(this->UI->starDundee, SIGNAL(appendToLog(QString)), this, SLOT(appendToLog(QString)));
108 108 connect(this, SIGNAL(ccsdsPacketIsProcessed()), this->UI->starDundee, SLOT(ccsdsPacketIsProcessed()));
109 109 connect(this->UI->rmapTargetLogicalAddressSpinBox, SIGNAL(valueChanged(int)),
110 110 this->UI->starDundee, SLOT(targetHasChanged(int)));
111 111 connect(this->UI->rmapSourceLogicalAddressSpinBox, SIGNAL(valueChanged(int)),
112 112 this->UI->starDundee, SLOT(sourceHasChanged(int)));
113 113 connect(this->UI->starDundee, SIGNAL(sendPacket(TMPacketToRead*)),
114 114 this, SLOT(receivePacketFromBridge(TMPacketToRead*)));
115 115
116 116 connect(this->UI, SIGNAL(bridgeHasChanged(selectedBridge)), this, SLOT(bridgeHasChanged(selectedBridge)));
117 117
118 118 ((rmappluginPythonWrapper*)this->pyObject)->ccsdsPacketStore = &(this->generalCCSDSPacketStore);
119 119 }
120 120
121 121 rmapplugin::~rmapplugin()
122 122 {
123 123 switch(currentBridge)
124 124 {
125 125 case selectedBridgeIsGRESB :
126 126 if (RMAPSend_SOCKET->isOpen()) RMAPSend_SOCKET->disconnectFromHost();
127 127 if (RMAPReceive_SOCKET->isOpen()) RMAPReceive_SOCKET->disconnectFromHost();
128 128 if (GRESBStatusQuery_SOCKET->isOpen()) GRESBStatusQuery_SOCKET->disconnectFromHost();
129 129 break;
130 130 case selectedBridgeIsStarDundee :
131 131 break;
132 132 default:
133 133 break;
134 134 }
135 135 }
136 136
137 137 unsigned int rmapplugin::Write(unsigned int *Value, unsigned int count, unsigned int address)
138 138 {
139 139 unsigned int result;
140 140 switch(currentBridge)
141 141 {
142 142 case selectedBridgeIsGRESB :
143 143 result = UI->gresbBridge->Write(Value, count, address);
144 144 break;
145 145 case selectedBridgeIsStarDundee :
146 146 result = UI->starDundee->Write(Value, count, address);
147 147 break;
148 148 default:
149 149 result = 1;
150 150 break;
151 151 }
152 152 return result;
153 153 }
154 154
155 155 unsigned int rmapplugin::Read(unsigned int *Value, unsigned int count, unsigned int address)
156 156 {
157 157 unsigned int result;
158 158 switch(currentBridge)
159 159 {
160 160 case selectedBridgeIsGRESB :
161 161 result = UI->gresbBridge->Read(Value, count, address);
162 162 break;
163 163 case selectedBridgeIsStarDundee :
164 164 result = UI->starDundee->Read(Value, count, address);
165 165 break;
166 166 default:
167 167 result = 1;
168 168 break;
169 169 }
170 170 return result;
171 171 }
172 172
173 173 ////////
174 174 // SLOTS
175 175
176 176 unsigned int rmapplugin::WriteSPW(char *Value, unsigned int count, char targetLogicalAddress, char userApplication) // SLOT
177 177 {
178 178 unsigned int result;
179 179 switch(currentBridge)
180 180 {
181 181 case selectedBridgeIsGRESB :
182 182 result = UI->gresbBridge->WriteSPW(Value, count, targetLogicalAddress, userApplication);
183 183 break;
184 184 case selectedBridgeIsStarDundee :
185 185 result = UI->starDundee->WriteSPW(Value, count, targetLogicalAddress, userApplication);
186 186 break;
187 187 default:
188 188 result = 1;
189 189 break;
190 190 }
191 191 return result;
192 192 }
193 193
194 194 void rmapplugin::sendCCSDS() // SLOT
195 195 {
196 196 unsigned int nbBYTES_application_data = 8;
197 197 unsigned int count;
198 198 char *tab;
199 199 unsigned char packetErrorControl1 = 0xaa;
200 200 unsigned char packetErrorControl0 = 0xbb;
201 201
202 202 ccsds_command = new ccsds(1, 0, 0, nbBYTES_application_data+12, 0, 0, 0, 0, 0); // +12 => packet header 6 bytes + data field header 4 bytes + packet error control 2 bytes
203 203 /* unsigned char data_field_header,
204 204 unsigned char processID,
205 205 unsigned int sequence_count,
206 206 unsigned int packet_length,
207 207 unsigned char acceptance,
208 208 unsigned int completion,
209 209 unsigned char service_type,
210 210 unsigned char service_subtype,
211 211 unsigned char sourceID*/
212 212
213 213 count = nbBYTES_application_data+12; // 12 is the size in bytes of the header
214 214 tab = (char*) malloc(count);
215 215 tab[0] = ccsds_command->ccsds_header->packetId1;
216 216 tab[1] = ccsds_command->ccsds_header->packetId0;
217 217 tab[2] = ccsds_command->ccsds_header->packetSequenceControl1;
218 218 tab[3] = ccsds_command->ccsds_header->packetSequenceControl0;
219 219 tab[4] = ccsds_command->ccsds_header->packetLength1;
220 220 tab[5] = ccsds_command->ccsds_header->packetLength0;
221 221 tab[6] = ccsds_command->ccsds_header->dataFieldHeader3;
222 222 tab[7] = ccsds_command->ccsds_header->dataFieldHeader2;
223 223 tab[8] = ccsds_command->ccsds_header->dataFieldHeader1;
224 224 tab[9] = ccsds_command->ccsds_header->dataFieldHeader0;
225 225 tab[10]=0x00;
226 226 tab[11]=0x00;
227 227 tab[12]=0x00;
228 228 tab[13]=0x00;
229 229 tab[14]=0x00;
230 230 tab[15]=0x00;
231 231 tab[nbBYTES_application_data+10] = packetErrorControl1;
232 232 tab[nbBYTES_application_data+11] = packetErrorControl0;
233 233
234 234 WriteSPW(tab, count, UI->CCSDSTargetLogicalAddressSpinBox->value(), 0x00);
235 235
236 236 free(tab);
237 237 }
238 238
239 239 void rmapplugin::openBridge()
240 240 {
241 241 switch(currentBridge)
242 242 {
243 243 case selectedBridgeIsGRESB :
244 244 this->UI->gresbBridge->Open();
245 245 break;
246 246 case selectedBridgeIsStarDundee :
247 247 this->UI->starDundee->Open();
248 248 break;
249 249 default:
250 250 break;
251 251 }
252 252 }
253 253
254 254 void rmapplugin::closeBridge()
255 255 {
256 256 switch(currentBridge)
257 257 {
258 258 case selectedBridgeIsGRESB :
259 259 this->UI->gresbBridge->Close();
260 260 break;
261 261 case selectedBridgeIsStarDundee :
262 262 this->UI->starDundee->Close();
263 263 break;
264 264 default:
265 265 break;
266 266 }
267 267 }
268 268
269 269 void rmapplugin::send_TC_LFR_UPDATE_TIME()
270 270 {
271 271 unsigned int nbBYTES_application_data = 6; // Time at CUC format is on 48 bits / 6 bytes
272 272 unsigned int count;
273 273 char *tab;
274 274 unsigned char packetErrorControl1 = 0xaa;
275 275 unsigned char packetErrorControl0 = 0xbb;
276 276
277 277 ccsds_command = new ccsds(1, 11, 0, nbBYTES_application_data, 1, 1, 9, 129, 0);
278 278 /* unsigned char data_field_header,
279 279 unsigned char processID,
280 280 unsigned int sequence_count,
281 281 unsigned int packet_length,
282 282 unsigned char acceptance,
283 283 unsigned int completion,
284 284 unsigned char service_type,
285 285 unsigned char service_subtype,
286 286 unsigned char sourceID*/
287 287
288 288 count = nbBYTES_application_data+12; // +12 => packet header 6 bytes + data field header 4 bytes + packet error control 2 bytes
289 289 tab = (char*) malloc(count);
290 290 tab[0] = ccsds_command->ccsds_header->packetId1;
291 291 tab[1] = ccsds_command->ccsds_header->packetId0;
292 292 tab[2] = ccsds_command->ccsds_header->packetSequenceControl1;
293 293 tab[3] = ccsds_command->ccsds_header->packetSequenceControl0;
294 294 tab[4] = ccsds_command->ccsds_header->packetLength1;
295 295 tab[5] = ccsds_command->ccsds_header->packetLength0;
296 296 tab[6] = ccsds_command->ccsds_header->dataFieldHeader3;
297 297 tab[7] = ccsds_command->ccsds_header->dataFieldHeader2;
298 298 tab[8] = ccsds_command->ccsds_header->dataFieldHeader1;
299 299 tab[9] = ccsds_command->ccsds_header->dataFieldHeader0;
300 300 tab[10] = (unsigned char) (time_COARSE>>24);
301 301 tab[11] = (unsigned char) (time_COARSE>>18);
302 302 tab[12] = (unsigned char) (time_COARSE>>8);
303 303 tab[13] = (unsigned char) (time_COARSE);
304 304 tab[14] = (unsigned char) (time_FINE>>8);
305 305 tab[15] = (unsigned char) (time_FINE);
306 306 tab[nbBYTES_application_data+10] = packetErrorControl1;
307 307 tab[nbBYTES_application_data+11] = packetErrorControl0;
308 308
309 309 WriteSPW(tab, count, UI->CCSDSTargetLogicalAddressSpinBox->value(), 0x00);
310 310
311 311 time_COARSE = time_COARSE+1;
312 312
313 313 free(tab);
314 314 }
315 315
316 316 void rmapplugin::reset_TC_LFR_UPDATE_TIME()
317 317 {
318 318 time_COARSE = 0;
319 319 time_FINE = 0;
320 320 }
321 321
322 322 void rmapplugin::RMAP_write_reply_setText(QString text)
323 323 {
324 324 this->UI->RMAP_write_reply->setText(text);
325 325 }
326 326
327 327 void rmapplugin::appendToLog(QString text)
328 328 {
329 329 APPENDTOLOG(text);
330 330 }
331 331
332 332 void rmapplugin::setValueTargetAddress(unsigned char newAddress)
333 333 {
334 334 this->UI->rmapTargetLogicalAddressSpinBox->setValue(newAddress);
335 335 }
336 336
337 337 void rmapplugin::setValueSourceAddress(unsigned char newAddress)
338 338 {
339 339 this->UI->rmapSourceLogicalAddressSpinBox->setValue(newAddress);
340 340 }
341 341
342 342 void rmapplugin::receivePacketFromBridge(TMPacketToRead *packet)
343 343 {
344 344 preProcessPacket(packet);
345 345 this->generalCCSDSPacketStore.append(packet);
346 this->UI->nbPacketInStore->setText("nb packets in store: " + QString::number(generalCCSDSPacketStore.count()));
346 347 processPacketStore();
347 348 }
348 349
349 350 void rmapplugin::preProcessPacket(TMPacketToRead *packet)
350 351 {
351 352 unsigned char typ = 0;
352 353 unsigned char sub = 0;
353 354 unsigned char sid = 0;
354 355 unsigned char pkt_nr = 0;
355 356 unsigned int blk_nr = 0;
356 357 unsigned int i = 0;
357 358 unsigned int j = 0;
358 359 unsigned char *data;
359 360
360 361 typ = packet->Value[11]; // TYPE
361 362 sub = packet->Value[12]; // SUBTYPE
362 363 if ( (typ == 21) & (sub == 3) )
363 364 {
364 365 sid = packet->Value[20]; // SID
365 366 pkt_nr = packet->Value[23]; // PKT_NR
366 367 blk_nr = packet->Value[24] * 256 + packet->Value[25];
367 368 switch (sid){
368 369 case SID_NORMAL_SWF_F0:
369 370 emit displayOnConsole("wf packet received, sid: " + QString::number(sid)
370 371 + ", pkt_nr: " + QString::number(pkt_nr)
371 372 + ", blk_nr: " + QString::number(blk_nr)
372 373 );
373 374 data = &packet->Value[26]; // start of the first data block;
374 375 j = (pkt_nr-1) * 340;
375 376 for ( i=0; i<blk_nr; i++ ){
376 377 normal_swf_f0_v[j + i] = (short) ( (data[i * BLK_SIZE ] << 8) + (data[i*BLK_SIZE + 1]) );
377 378 normal_swf_f0_e1[j + i] = (short) ( (data[i * BLK_SIZE + 2] << 8) + (data[i*BLK_SIZE + 3]) );
378 379 normal_swf_f0_e2[j + i] = (short) ( (data[i * BLK_SIZE + 4] << 8) + (data[i*BLK_SIZE + 5]) );
379 380 normal_swf_f0_b1[j + i] = (short) ( (data[i * BLK_SIZE + 6] << 8) + (data[i*BLK_SIZE + 7]) );
380 381 normal_swf_f0_b2[j + i] = (short) ( (data[i * BLK_SIZE + 8] << 8) + (data[i*BLK_SIZE + 9]) );
381 382 normal_swf_f0_b3[j + i] = (short) ( (data[i * BLK_SIZE + 10] << 8) + (data[i*BLK_SIZE + 11]) );
382 383 }
383 384 if (pkt_nr == 7)
384 385 {
385 386 emit displayOnConsole("all packets received, display waveform");
386 387 this->UI->wfDisplay->displayOnPlot(normal_swf_f0_v, 0);
387 388 this->UI->wfDisplay->displayOnPlot(normal_swf_f0_e1, 1);
388 389 this->UI->wfDisplay->displayOnPlot(normal_swf_f0_e2, 2);
389 390 this->UI->wfDisplay->displayOnPlot(normal_swf_f0_b1, 3);
390 391 }
391 392 break;
392 393 case SID_NORMAL_SWF_F1:
393 394 break;
394 395 case SID_NORMAL_SWF_F2:
395 396 break;
396 397 case SID_NORMAL_CWF_F3:
397 398 break;
398 399 }
399 400 }
400 401 }
401 402
402 403 /////////////////////
403 404 // INTERNAL FUNCTIONS
404 405
405 406 void rmapplugin::processCCSDSPacket(unsigned char *ccsdsPacket, unsigned int size) // SLOT
406 407 {
407 408 QString message;
408 409 unsigned int fine_time_value = 0;
409 410 fine_time_value = ((unsigned int) ccsdsPacket[7]<<24)
410 411 + ((unsigned int) ccsdsPacket[6]<<16)
411 412 + ((unsigned int) ccsdsPacket[5]<<8)
412 413 + ((unsigned int) ccsdsPacket[4]);
413 414 message.append(QTime::currentTime().toString() +":" + QString::number(QTime::currentTime().msec()) + ": ");
414 415 message.append("size "
415 416 + QString::number(size)
416 417 +" *** header "
417 418 + QString::number(ccsdsPacket[0], 16)
418 419 + " "
419 420 + QString::number(ccsdsPacket[1], 16)
420 421 + " "
421 422 + QString::number(ccsdsPacket[2], 16)
422 423 + " "
423 424 + QString::number(ccsdsPacket[3], 16)
424 425 + " *** coarse time "
425 426 + QString::number(fine_time_value));
426 427 //+ QString::number(ccsdsPacket[4], 16)
427 428 //+" "
428 429 //+ QString::number(ccsdsPacket[5], 16)
429 430 //+" "
430 431 //+ QString::number(ccsdsPacket[6], 16)
431 432 //+" "
432 433 //+ QString::number(ccsdsPacket[7], 16));
433 434 displayOnConsole(message);
434 435 //((rmappluginPythonWrapper*)this->pyObject)->storeCCSDSPacket(ccsdsPacket, size);
435 436 emit ccsdsPacketIsProcessed();
436 437 }
437 438
438 439 void rmapplugin::processPacketStore()
439 440 {
440 441 ((rmappluginPythonWrapper*)this->pyObject)->processPacketStore();
441 442 }
442 443
443 444 int rmapplugin::fetchPacket()
444 445 {
445 446 int ret = 0;
446 447
447 448 switch(currentBridge)
448 449 {
449 450 case selectedBridgeIsGRESB :
450 451 break;
451 452 case selectedBridgeIsStarDundee :
452 453 ret = this->UI->starDundee->receiveSPWPacketLoop();
453 454 break;
454 455 default:
455 456 break;
456 457 }
457 458
458 459 return ret;
459 460 }
@@ -1,165 +1,146
1 1 #include "rmappluginpythonwrapper.h"
2 2 #include <math.h>
3 3 #include <QApplication>
4 4
5 5 rmappluginPythonWrapper::rmappluginPythonWrapper(QObject *parent) :
6 6 genericPySysdriver(parent)
7 7 {
8 8 timer = new QTimer;
9 9 timer->setSingleShot(true);
10 10 connect(timer, SIGNAL(timeout()), this, SLOT(sendTC()));
11 11 connect(this, SIGNAL(activateTCLoopSig()), this, SLOT(sendTCLoop()));
12 12 }
13 13
14 14 QList<QVariant> rmappluginPythonWrapper::ReadSPW(unsigned int size) // size is not used
15 15 {
16 16 QList<QVariant> result;
17 17 TMPacketToRead *ccsdsPacket;
18 18
19 19 if (!ccsdsPacketStore->isEmpty())
20 20 {
21 21 ccsdsPacket = ccsdsPacketStore->takeFirst();
22 22 for(unsigned int i = 0;i<ccsdsPacket->size;i++)
23 23 {
24 24 result.append((QVariant)ccsdsPacket->Value[i]);
25 25 }
26 26 delete(ccsdsPacket);
27 27 }
28 28
29 29 return result;
30 30 }
31 31
32 32 void rmappluginPythonWrapper::WriteSPW(QList<int> dataList)
33 33 {
34 34 char targetLogicalAddress;
35 35 char userApplication;
36 36 unsigned int count;
37 37 char *Value;
38 38
39 39 unsigned char data[dataList.count()];
40 40
41 41 for(int i = 0; i<dataList.count(); i++) // get the data as unsigned char
42 42 {
43 43 data[i] = (unsigned char)dataList.at(i);
44 44 }
45 45 // read the first bytes of the data to get the targetLogicalAddress and the userApplication parameters
46 46 targetLogicalAddress = data[0];
47 47 userApplication = data[3];
48 48
49 49 count = dataList.count() - 4; // the CCSDS header (4 bytes) is added by LPPMON
50 50 Value = (char*) &data[4];
51 51
52 52 emit WriteSPWSig(Value, count, targetLogicalAddress, userApplication);
53 53 }
54 54
55 55 void rmappluginPythonWrapper::WriteSPWDelay(QList<int> dataList, unsigned int delay)
56 56 {
57 57 char targetLogicalAddress;
58 58 char userApplication;
59 59 unsigned int count;
60 60 char *Value;
61 61 TCPacketToSend *packet;
62 62
63 63 unsigned char data[dataList.count()];
64 64
65 65 for(int i = 0; i<dataList.count(); i++) // get the data as unsigned char
66 66 {
67 67 data[i] = (unsigned char)dataList.at(i);
68 68 }
69 69 // read the first bytes of the data to get the targetLogicalAddress and the userApplication parameters
70 70 targetLogicalAddress = data[0];
71 71 userApplication = data[3];
72 72
73 73 count = dataList.count() - 4; // the CCSDS header (4 bytes) is added by LPPMON
74 74 Value = (char*) &data[4];
75 75
76 76 packet = new TCPacketToSend(Value, count, targetLogicalAddress, userApplication, delay);
77 77 TCPacketStore.append(packet);
78 78
79 79 emit(activateTCLoopSig());
80 80
81 81 }
82 82
83 83 void rmappluginPythonWrapper::processPacketStoreLater(unsigned int delay)
84 84 {
85 85 emit sendMessage(
86 86 "*** process packet store in " + QString::number(delay) + " ms"
87 87 );
88 88 QTimer::singleShot(delay, this, SLOT(sendProcessPacketStoreNowSig()));
89 89 }
90 90
91 91 void rmappluginPythonWrapper::sendTCLoop()
92 92 {
93 93 unsigned int delay;
94 94
95 95 if (!timer->isActive())
96 96 {
97 97 if (!TCPacketStore.isEmpty())
98 98 {
99 99 delay = TCPacketStore.at(0)->delay;
100 100 timer->setInterval(delay);
101 101 timer->start();
102 102 }
103 103 }
104 104 }
105 105
106 106 void rmappluginPythonWrapper::sendTC()
107 107 {
108 108 TCPacketToSend *packet;
109 109 unsigned int delay;
110 110
111 111 packet = TCPacketStore.takeFirst();
112 112 // the signal is connected with the option Qt::DirectConnection, thus it is processed immediately
113 113 emit(WriteSPWSig(packet->Value, packet->count,packet->targetLogicalAddress, packet->userApplication));
114 114 delete(packet);
115 115 if (!TCPacketStore.isEmpty())
116 116 {
117 117 delay = TCPacketStore.at(0)->delay;
118 118 timer->setInterval(delay);
119 119 timer->start();
120 120 }
121 121 }
122 122
123 /*unsigned int rmappluginPythonWrapper::storeCCSDSPacket(unsigned char *ccsdsPacket, unsigned int size)
124 {
125 unsigned int i;
126 TMPacketToRead ccsdsPacketToStore;
127
128 ccsdsPacketToStore.size = size;
129 for(i=0; i<size; i++)
130 {
131 //ccsdsPacket0[i] = ccsdsPacket[i];
132 ccsdsPacketToStore.data[i] = ccsdsPacket[i];
133 }
134 ccsdsPacketStore->append(ccsdsPacketToStore);
135 emit ccsdsPacketIsAvailable(size);
136 return 1;
137 }*/
138
139 123 void rmappluginPythonWrapper::processPacketStore()
140 124 {
141 while (!ccsdsPacketStore->isEmpty())
142 {
143 emit ccsdsPacketIsAvailable(ccsdsPacketStore->at(0)->size);
144 }
125 emit ccsdsPacketIsAvailable(ccsdsPacketStore->at(0)->size);
145 126 }
146 127
147 128 void rmappluginPythonWrapper::setTargetAddressValue(unsigned int address)
148 129 {
149 130 unsigned char newAddress;
150 131 newAddress = (unsigned char) address;
151 132 emit updateTargetAddress(newAddress);
152 133 }
153 134
154 135 void rmappluginPythonWrapper::setSourceAddressValue(unsigned int address)
155 136 {
156 137 unsigned char newAddress;
157 138 newAddress = (unsigned char) address;
158 139 emit updateSourceAddress(newAddress);
159 140 }
160 141
161 142 void rmappluginPythonWrapper::ProcessPendingEvents()
162 143 {
163 144 QCoreApplication::processEvents();
164 145 }
165 146
General Comments 0
You need to be logged in to leave comments. Login now