##// END OF EJS Templates
Minor changes
paul -
r93:ffd04db5cce0 VHDLib206
parent child
Show More
@@ -1,6 +1,6
1 #############################################################################
1 #############################################################################
2 # Makefile for building: bin/fsw-vhdl-dev
2 # Makefile for building: bin/fsw-vhdl-dev
3 # Generated by qmake (2.01a) (Qt 4.8.5) on: Mon Jan 27 07:11:41 2014
3 # Generated by qmake (2.01a) (Qt 4.8.5) on: Thu Feb 6 09:29:25 2014
4 # Project: fsw-qt.pro
4 # Project: fsw-qt.pro
5 # Template: app
5 # Template: app
6 # Command: /usr/bin/qmake-qt4 -spec /usr/lib64/qt4/mkspecs/linux-g++ -o Makefile fsw-qt.pro
6 # Command: /usr/bin/qmake-qt4 -spec /usr/lib64/qt4/mkspecs/linux-g++ -o Makefile fsw-qt.pro
@@ -1,10 +1,10
1 <?xml version="1.0" encoding="UTF-8"?>
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!DOCTYPE QtCreatorProject>
2 <!DOCTYPE QtCreatorProject>
3 <!-- Written by QtCreator 3.0.0, 2014-01-28T06:58:48. -->
3 <!-- Written by QtCreator 3.0.0, 2014-02-06T15:45:54. -->
4 <qtcreator>
4 <qtcreator>
5 <data>
5 <data>
6 <variable>ProjectExplorer.Project.ActiveTarget</variable>
6 <variable>ProjectExplorer.Project.ActiveTarget</variable>
7 <value type="int">0</value>
7 <value type="int">1</value>
8 </data>
8 </data>
9 <data>
9 <data>
10 <variable>ProjectExplorer.Project.EditorSettings</variable>
10 <variable>ProjectExplorer.Project.EditorSettings</variable>
@@ -25,7 +25,7
25 </valuemap>
25 </valuemap>
26 </valuemap>
26 </valuemap>
27 <value type="int" key="EditorConfiguration.CodeStyle.Count">2</value>
27 <value type="int" key="EditorConfiguration.CodeStyle.Count">2</value>
28 <value type="QByteArray" key="EditorConfiguration.Codec">System</value>
28 <value type="QByteArray" key="EditorConfiguration.Codec">UTF-8</value>
29 <value type="bool" key="EditorConfiguration.ConstrainTooltips">false</value>
29 <value type="bool" key="EditorConfiguration.ConstrainTooltips">false</value>
30 <value type="int" key="EditorConfiguration.IndentSize">4</value>
30 <value type="int" key="EditorConfiguration.IndentSize">4</value>
31 <value type="bool" key="EditorConfiguration.KeyboardTooltips">false</value>
31 <value type="bool" key="EditorConfiguration.KeyboardTooltips">false</value>
@@ -51,14 +51,14
51 <data>
51 <data>
52 <variable>ProjectExplorer.Project.Target.0</variable>
52 <variable>ProjectExplorer.Project.Target.0</variable>
53 <valuemap type="QVariantMap">
53 <valuemap type="QVariantMap">
54 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Desktop-Qt 4.8.2 in PATH (System)</value>
54 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Desktop</value>
55 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Desktop-Qt 4.8.2 in PATH (System)</value>
55 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Desktop</value>
56 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">{5289e843-9ef2-45ce-88c6-ad27d8e08def}</value>
56 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">{e04e3924-0bd8-4708-be18-f1474e45608e}</value>
57 <value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">0</value>
57 <value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">0</value>
58 <value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
58 <value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
59 <value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">1</value>
59 <value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
60 <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
60 <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
61 <value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/opt/DEV_PLE/FSW-qt</value>
61 <value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory"></value>
62 <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
62 <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
63 <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
63 <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
64 <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
64 <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
@@ -66,7 +66,7
66 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
66 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
67 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
67 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
68 <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">false</value>
68 <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">false</value>
69 <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibraryAuto">true</value>
69 <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibraryAuto">false</value>
70 <value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
70 <value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
71 <value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
71 <value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
72 </valuemap>
72 </valuemap>
@@ -80,7 +80,7
80 <value type="QString">-r</value>
80 <value type="QString">-r</value>
81 </valuelist>
81 </valuelist>
82 <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
82 <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
83 <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">-r -w -j 4</value>
83 <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
84 <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
84 <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
85 </valuemap>
85 </valuemap>
86 <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
86 <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
@@ -99,7 +99,7
99 <value type="QString">-r</value>
99 <value type="QString">-r</value>
100 </valuelist>
100 </valuelist>
101 <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
101 <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
102 <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">-r -w clean</value>
102 <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
103 <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
103 <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
104 </valuemap>
104 </valuemap>
105 <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
105 <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
@@ -110,14 +110,93
110 <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
110 <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
111 <value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
111 <value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
112 <valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
112 <valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
113 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Qt 4.8.2 in PATH (System) Release</value>
113 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Release</value>
114 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
114 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
115 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
115 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
116 <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
116 <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
117 <value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">false</value>
117 <value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">true</value>
118 </valuemap>
119 <value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">1</value>
120 <valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
121 <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
122 <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
123 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy</value>
124 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
125 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
126 </valuemap>
127 <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
128 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy locally</value>
129 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
130 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
118 </valuemap>
131 </valuemap>
119 <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.1">
132 <value type="int" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
120 <value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/opt/DEV_PLE/FSW-qt</value>
133 <valuemap type="QVariantMap" key="ProjectExplorer.Target.PluginSettings"/>
134 <valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
135 <valuelist type="QVariantList" key="Analyzer.Valgrind.AddedSuppressionFiles"/>
136 <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectBusEvents">false</value>
137 <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectSystime">false</value>
138 <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableBranchSim">false</value>
139 <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableCacheSim">false</value>
140 <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableEventToolTips">true</value>
141 <value type="double" key="Analyzer.Valgrind.Callgrind.MinimumCostRatio">0.01</value>
142 <value type="double" key="Analyzer.Valgrind.Callgrind.VisualisationMinimumCostRatio">10</value>
143 <value type="bool" key="Analyzer.Valgrind.FilterExternalIssues">true</value>
144 <value type="int" key="Analyzer.Valgrind.LeakCheckOnFinish">1</value>
145 <value type="int" key="Analyzer.Valgrind.NumCallers">25</value>
146 <valuelist type="QVariantList" key="Analyzer.Valgrind.RemovedSuppressionFiles"/>
147 <value type="int" key="Analyzer.Valgrind.SelfModifyingCodeDetection">1</value>
148 <value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
149 <value type="bool" key="Analyzer.Valgrind.ShowReachable">false</value>
150 <value type="bool" key="Analyzer.Valgrind.TrackOrigins">true</value>
151 <value type="QString" key="Analyzer.Valgrind.ValgrindExecutable">valgrind</value>
152 <valuelist type="QVariantList" key="Analyzer.Valgrind.VisibleErrorKinds">
153 <value type="int">0</value>
154 <value type="int">1</value>
155 <value type="int">2</value>
156 <value type="int">3</value>
157 <value type="int">4</value>
158 <value type="int">5</value>
159 <value type="int">6</value>
160 <value type="int">7</value>
161 <value type="int">8</value>
162 <value type="int">9</value>
163 <value type="int">10</value>
164 <value type="int">11</value>
165 <value type="int">12</value>
166 <value type="int">13</value>
167 <value type="int">14</value>
168 </valuelist>
169 <value type="int" key="PE.EnvironmentAspect.Base">2</value>
170 <valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
171 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">fsw-qt</value>
172 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
173 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:/opt/DEV_PLE/FSW-qt/fsw-qt.pro</value>
174 <value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.CommandLineArguments"></value>
175 <value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.ProFile">fsw-qt.pro</value>
176 <value type="bool" key="Qt4ProjectManager.Qt4RunConfiguration.UseDyldImageSuffix">false</value>
177 <value type="bool" key="Qt4ProjectManager.Qt4RunConfiguration.UseTerminal">true</value>
178 <value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.UserWorkingDirectory"></value>
179 <value type="uint" key="RunConfiguration.QmlDebugServerPort">3768</value>
180 <value type="bool" key="RunConfiguration.UseCppDebugger">false</value>
181 <value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
182 <value type="bool" key="RunConfiguration.UseMultiProcess">false</value>
183 <value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
184 <value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
185 </valuemap>
186 <value type="int" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
187 </valuemap>
188 </data>
189 <data>
190 <variable>ProjectExplorer.Project.Target.1</variable>
191 <valuemap type="QVariantMap">
192 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Desktop-Qt 4.8.2 in PATH (System)</value>
193 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Desktop-Qt 4.8.2 in PATH (System)</value>
194 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">{5289e843-9ef2-45ce-88c6-ad27d8e08def}</value>
195 <value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">0</value>
196 <value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
197 <value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
198 <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
199 <value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory"></value>
121 <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
200 <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
122 <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
201 <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
123 <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
202 <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
@@ -125,7 +204,7
125 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
204 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
126 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
205 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
127 <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">false</value>
206 <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">false</value>
128 <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibraryAuto">true</value>
207 <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibraryAuto">false</value>
129 <value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
208 <value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
130 <value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
209 <value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
131 </valuemap>
210 </valuemap>
@@ -139,7 +218,7
139 <value type="QString">-r</value>
218 <value type="QString">-r</value>
140 </valuelist>
219 </valuelist>
141 <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
220 <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
142 <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">-r -w </value>
221 <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
143 <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
222 <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
144 </valuemap>
223 </valuemap>
145 <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
224 <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
@@ -158,7 +237,7
158 <value type="QString">-r</value>
237 <value type="QString">-r</value>
159 </valuelist>
238 </valuelist>
160 <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
239 <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
161 <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">-r -w clean</value>
240 <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
162 <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
241 <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
163 </valuemap>
242 </valuemap>
164 <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
243 <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
@@ -169,13 +248,13
169 <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
248 <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
170 <value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
249 <value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
171 <valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
250 <valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
172 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Qt 4.8.2 in PATH (System) Debug</value>
251 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Release</value>
173 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
252 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
174 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
253 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
175 <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value>
254 <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
176 <value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">false</value>
255 <value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">true</value>
177 </valuemap>
256 </valuemap>
178 <value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">2</value>
257 <value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">1</value>
179 <valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
258 <valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
180 <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
259 <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
181 <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
260 <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
@@ -184,7 +263,7
184 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
263 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
185 </valuemap>
264 </valuemap>
186 <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
265 <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
187 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">No deployment</value>
266 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy locally</value>
188 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
267 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
189 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
268 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
190 </valuemap>
269 </valuemap>
@@ -240,65 +319,14
240 <value type="bool" key="RunConfiguration.UseCppDebuggerAuto">false</value>
319 <value type="bool" key="RunConfiguration.UseCppDebuggerAuto">false</value>
241 <value type="bool" key="RunConfiguration.UseMultiProcess">false</value>
320 <value type="bool" key="RunConfiguration.UseMultiProcess">false</value>
242 <value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
321 <value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
243 <value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">false</value>
244 </valuemap>
245 <valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.1">
246 <valuelist type="QVariantList" key="Analyzer.Valgrind.AddedSuppressionFiles"/>
247 <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectBusEvents">false</value>
248 <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectSystime">false</value>
249 <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableBranchSim">false</value>
250 <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableCacheSim">false</value>
251 <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableEventToolTips">true</value>
252 <value type="double" key="Analyzer.Valgrind.Callgrind.MinimumCostRatio">0.01</value>
253 <value type="double" key="Analyzer.Valgrind.Callgrind.VisualisationMinimumCostRatio">10</value>
254 <value type="bool" key="Analyzer.Valgrind.FilterExternalIssues">true</value>
255 <value type="int" key="Analyzer.Valgrind.LeakCheckOnFinish">1</value>
256 <value type="int" key="Analyzer.Valgrind.NumCallers">25</value>
257 <valuelist type="QVariantList" key="Analyzer.Valgrind.RemovedSuppressionFiles"/>
258 <value type="int" key="Analyzer.Valgrind.SelfModifyingCodeDetection">1</value>
259 <value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
260 <value type="bool" key="Analyzer.Valgrind.ShowReachable">false</value>
261 <value type="bool" key="Analyzer.Valgrind.TrackOrigins">true</value>
262 <value type="QString" key="Analyzer.Valgrind.ValgrindExecutable">valgrind</value>
263 <valuelist type="QVariantList" key="Analyzer.Valgrind.VisibleErrorKinds">
264 <value type="int">0</value>
265 <value type="int">1</value>
266 <value type="int">2</value>
267 <value type="int">3</value>
268 <value type="int">4</value>
269 <value type="int">5</value>
270 <value type="int">6</value>
271 <value type="int">7</value>
272 <value type="int">8</value>
273 <value type="int">9</value>
274 <value type="int">10</value>
275 <value type="int">11</value>
276 <value type="int">12</value>
277 <value type="int">13</value>
278 <value type="int">14</value>
279 </valuelist>
280 <value type="int" key="PE.EnvironmentAspect.Base">2</value>
281 <valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
282 <value type="QString" key="ProjectExplorer.CustomExecutableRunConfiguration.Arguments"></value>
283 <value type="QString" key="ProjectExplorer.CustomExecutableRunConfiguration.Executable">doxygen</value>
284 <value type="bool" key="ProjectExplorer.CustomExecutableRunConfiguration.UseTerminal">true</value>
285 <value type="QString" key="ProjectExplorer.CustomExecutableRunConfiguration.WorkingDirectory">/opt/DEV_PLE/doc</value>
286 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Run doxygen</value>
287 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
288 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.CustomExecutableRunConfiguration</value>
289 <value type="uint" key="RunConfiguration.QmlDebugServerPort">3768</value>
290 <value type="bool" key="RunConfiguration.UseCppDebugger">true</value>
291 <value type="bool" key="RunConfiguration.UseCppDebuggerAuto">false</value>
292 <value type="bool" key="RunConfiguration.UseMultiProcess">false</value>
293 <value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
294 <value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
322 <value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
295 </valuemap>
323 </valuemap>
296 <value type="int" key="ProjectExplorer.Target.RunConfigurationCount">2</value>
324 <value type="int" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
297 </valuemap>
325 </valuemap>
298 </data>
326 </data>
299 <data>
327 <data>
300 <variable>ProjectExplorer.Project.TargetCount</variable>
328 <variable>ProjectExplorer.Project.TargetCount</variable>
301 <value type="int">1</value>
329 <value type="int">2</value>
302 </data>
330 </data>
303 <data>
331 <data>
304 <variable>ProjectExplorer.Project.Updater.EnvironmentId</variable>
332 <variable>ProjectExplorer.Project.Updater.EnvironmentId</variable>
@@ -210,19 +210,21 enum apid_destid{
210 // R1
210 // R1
211 #define TM_LEN_SCI_SWF_340 4101 // 340 * 12 + 10 + 12 - 1
211 #define TM_LEN_SCI_SWF_340 4101 // 340 * 12 + 10 + 12 - 1
212 #define TM_LEN_SCI_SWF_8 117 // 8 * 12 + 10 + 12 - 1
212 #define TM_LEN_SCI_SWF_8 117 // 8 * 12 + 10 + 12 - 1
213 // R2
214 #define TM_LEN_SCI_SWF_304 3669 // 304 * 12 + 10 + 12 - 1
215 #define TM_LEN_SCI_SWF_224 2709 // 224 * 12 + 10 + 12 - 1
216 //
217 #define TM_LEN_SCI_CWF_340 4099 // 340 * 12 + 10 + 10 - 1
213 #define TM_LEN_SCI_CWF_340 4099 // 340 * 12 + 10 + 10 - 1
218 #define TM_LEN_SCI_CWF_8 115 // 8 * 12 + 10 + 10 - 1
214 #define TM_LEN_SCI_CWF_8 115 // 8 * 12 + 10 + 10 - 1
219 #define TM_LEN_SCI_CWF3_LIGHT_340 2059 // 340 * 6 + 10 + 10 - 1
215 #define TM_LEN_SCI_CWF3_LIGHT_340 2059 // 340 * 6 + 10 + 10 - 1
220 #define TM_LEN_SCI_CWF3_LIGHT_8 67 // 8 * 6 + 10 + 10 - 1
216 #define TM_LEN_SCI_CWF3_LIGHT_8 67 // 8 * 6 + 10 + 10 - 1
217 // R2
218 #define TM_LEN_SCI_SWF_304 3669 // 304 * 12 + 10 + 12 - 1
219 #define TM_LEN_SCI_SWF_224 2709 // 224 * 12 + 10 + 12 - 1
220 #define TM_LEN_SCI_CWF_336 4051 // 336 * 12 + 10 + 10 - 1
221 #define TM_LEN_SCI_CWF_672 4051 // 672 * 6 + 10 + 10 - 1
222 //
221 #define DEFAULT_PKTCNT 0x07
223 #define DEFAULT_PKTCNT 0x07
222 #define BLK_NR_340 0x0154
223 #define BLK_NR_8 0x0008
224 #define BLK_NR_304 0x0130
224 #define BLK_NR_304 0x0130
225 #define BLK_NR_224 0x00e0
225 #define BLK_NR_224 0x00e0
226 #define BLK_NR_CWF 0x0150 // 336
227 #define BLK_NR_CWF_SHORT_F3 0x02a0 // 672
226
228
227 enum TM_TYPE{
229 enum TM_TYPE{
228 TM_LFR_TC_EXE_OK,
230 TM_LFR_TC_EXE_OK,
@@ -9,6 +9,14
9 #define GRSPW_DEVICE_NAME "/dev/grspw0"
9 #define GRSPW_DEVICE_NAME "/dev/grspw0"
10 #define UART_DEVICE_NAME "/dev/console"
10 #define UART_DEVICE_NAME "/dev/console"
11
11
12 typedef struct ring_node
13 {
14 struct ring_node *previous;
15 int buffer_address;
16 struct ring_node *next;
17 unsigned int status;
18 } ring_node;
19
12 //************************
20 //************************
13 // flight software version
21 // flight software version
14 // this parameters is handled by the Qt project options
22 // this parameters is handled by the Qt project options
@@ -16,6 +24,7
16 //#define NB_SAMPLES_PER_SNAPSHOT 2048
24 //#define NB_SAMPLES_PER_SNAPSHOT 2048
17 #define NB_SAMPLES_PER_SNAPSHOT 2352 // 336 * 7 = 2352
25 #define NB_SAMPLES_PER_SNAPSHOT 2352 // 336 * 7 = 2352
18 #define TIME_OFFSET 2
26 #define TIME_OFFSET 2
27 #define TIME_OFFSET_IN_BYTES 8
19 #define WAVEFORM_EXTENDED_HEADER_OFFSET 22
28 #define WAVEFORM_EXTENDED_HEADER_OFFSET 22
20 #define NB_BYTES_SWF_BLK (2 * 6)
29 #define NB_BYTES_SWF_BLK (2 * 6)
21 #define NB_WORDS_SWF_BLK 3
30 #define NB_WORDS_SWF_BLK 3
@@ -24,6 +33,9
24 #define NB_RING_NODES_F0 3 // AT LEAST 3
33 #define NB_RING_NODES_F0 3 // AT LEAST 3
25 #define NB_RING_NODES_F1 5 // AT LEAST 3
34 #define NB_RING_NODES_F1 5 // AT LEAST 3
26 #define NB_RING_NODES_F2 5 // AT LEAST 3
35 #define NB_RING_NODES_F2 5 // AT LEAST 3
36 #define NB_RING_NODES_ASM_F0 8 // AT LEAST 3
37 #define NB_RING_NODES_ASM_F1 2 // AT LEAST 3
38 #define NB_RING_NODES_ASM_F2 2 // AT LEAST 3
27
39
28 //**********
40 //**********
29 // LFR MODES
41 // LFR MODES
@@ -1,10 +1,10
1 #ifndef FSW_PARAMS_PROCESSING_H
1 #ifndef FSW_PARAMS_PROCESSING_H
2 #define FSW_PARAMS_PROCESSING_H
2 #define FSW_PARAMS_PROCESSING_H
3
3
4 #define NB_BINS_PER_SM 128
4 #define NB_BINS_PER_SM 128 //
5 #define NB_VALUES_PER_SM 25
5 #define NB_VALUES_PER_SM 25 //
6 #define TOTAL_SIZE_SM 0
6 #define TOTAL_SIZE_SM 3200 // 25 * 128
7 #define SM_HEADER 0
7 #define SM_HEADER 0 //
8
8
9 #define NB_BINS_COMPRESSED_SM_F0 11
9 #define NB_BINS_COMPRESSED_SM_F0 11
10 #define NB_BINS_COMPRESSED_SM_F1 13
10 #define NB_BINS_COMPRESSED_SM_F1 13
@@ -11,24 +11,9
11 #include "fsw_params.h"
11 #include "fsw_params.h"
12 #include "fsw_spacewire.h"
12 #include "fsw_spacewire.h"
13
13
14 extern volatile int spec_mat_f0_0[ ];
14 extern volatile int sm_f0[ ][ SM_HEADER + TOTAL_SIZE_SM ];
15 extern volatile int spec_mat_f0_1[ ];
15 extern volatile int sm_f1[ ][ SM_HEADER + TOTAL_SIZE_SM ];
16 extern volatile int spec_mat_f0_a[ ];
16 extern volatile int sm_f2[ ][ SM_HEADER + TOTAL_SIZE_SM ];
17 extern volatile int spec_mat_f0_b[ ];
18 extern volatile int spec_mat_f0_c[ ];
19 extern volatile int spec_mat_f0_d[ ];
20 extern volatile int spec_mat_f0_e[ ];
21 extern volatile int spec_mat_f0_f[ ];
22 extern volatile int spec_mat_f0_g[ ];
23 extern volatile int spec_mat_f0_h[ ];
24
25 extern volatile int spec_mat_f1[ ];
26 extern volatile int spec_mat_f2[ ];
27
28 extern volatile int spec_mat_f1_bis[ ];
29 extern volatile int spec_mat_f2_bis[ ];
30 extern volatile int spec_mat_f0_0_bis[ ];
31 extern volatile int spec_mat_f0_1_bis[ ];
32
17
33 // parameters
18 // parameters
34 extern struct param_local_str param_local;
19 extern struct param_local_str param_local;
@@ -40,6 +25,9 extern spectral_matrix_regs_t *spectral_
40 extern rtems_name misc_name[5];
25 extern rtems_name misc_name[5];
41 extern rtems_id Task_id[20]; /* array of task ids */
26 extern rtems_id Task_id[20]; /* array of task ids */
42
27
28 //
29 void init_asm_rings( void );
30
43 // ISR
31 // ISR
44 rtems_isr spectral_matrices_isr( rtems_vector_number vector );
32 rtems_isr spectral_matrices_isr( rtems_vector_number vector );
45 rtems_isr spectral_matrices_isr_simu( rtems_vector_number vector );
33 rtems_isr spectral_matrices_isr_simu( rtems_vector_number vector );
@@ -12,14 +12,6
12
12
13 #define pi 3.1415
13 #define pi 3.1415
14
14
15 typedef struct ring_node
16 {
17 struct ring_node *previous;
18 int buffer_address;
19 struct ring_node *next;
20 unsigned int status;
21 } ring_node;
22
23 extern int fdSPW;
15 extern int fdSPW;
24
16
25 //*****************
17 //*****************
@@ -73,6 +65,8 int send_waveform_CWF( volatile int *wa
73 int send_waveform_CWF3( volatile int *waveform, unsigned int sid, Header_TM_LFR_SCIENCE_CWF_t *headerCWF, rtems_id queue_id );
65 int send_waveform_CWF3( volatile int *waveform, unsigned int sid, Header_TM_LFR_SCIENCE_CWF_t *headerCWF, rtems_id queue_id );
74 int send_waveform_CWF3_light( volatile int *waveform, Header_TM_LFR_SCIENCE_CWF_t *headerCWF, rtems_id queue_id );
66 int send_waveform_CWF3_light( volatile int *waveform, Header_TM_LFR_SCIENCE_CWF_t *headerCWF, rtems_id queue_id );
75 //
67 //
68 void compute_acquisition_time(unsigned int *coarseTime, unsigned int *fineTime, unsigned int sid, unsigned char pa_lfr_pkt_nr );
69 //
76 rtems_id get_pkts_queue_id( void );
70 rtems_id get_pkts_queue_id( void );
77
71
78 //**************
72 //**************
@@ -39,29 +39,14 volatile int wf_snap_f0[ NB_RING_NODES_F
39 volatile int wf_snap_f1[ NB_RING_NODES_F1 ][ (NB_SAMPLES_PER_SNAPSHOT * NB_WORDS_SWF_BLK) + TIME_OFFSET + 46 ] __attribute__((aligned(0x100)));
39 volatile int wf_snap_f1[ NB_RING_NODES_F1 ][ (NB_SAMPLES_PER_SNAPSHOT * NB_WORDS_SWF_BLK) + TIME_OFFSET + 46 ] __attribute__((aligned(0x100)));
40 volatile int wf_snap_f2[ NB_RING_NODES_F2 ][ (NB_SAMPLES_PER_SNAPSHOT * NB_WORDS_SWF_BLK) + TIME_OFFSET + 46 ] __attribute__((aligned(0x100)));
40 volatile int wf_snap_f2[ NB_RING_NODES_F2 ][ (NB_SAMPLES_PER_SNAPSHOT * NB_WORDS_SWF_BLK) + TIME_OFFSET + 46 ] __attribute__((aligned(0x100)));
41 // F3
41 // F3
42 volatile int wf_cont_f3_a[ NB_SAMPLES_PER_SNAPSHOT * NB_WORDS_SWF_BLK + TIME_OFFSET ] __attribute__((aligned(0x100)));
42 volatile int wf_cont_f3_a [ (NB_SAMPLES_PER_SNAPSHOT) * NB_WORDS_SWF_BLK + TIME_OFFSET ] __attribute__((aligned(0x100)));
43 volatile int wf_cont_f3_b[ NB_SAMPLES_PER_SNAPSHOT * NB_WORDS_SWF_BLK + TIME_OFFSET ] __attribute__((aligned(0x100)));
43 volatile int wf_cont_f3_b [ (NB_SAMPLES_PER_SNAPSHOT) * NB_WORDS_SWF_BLK + TIME_OFFSET ] __attribute__((aligned(0x100)));
44 char wf_cont_f3_light[ NB_SAMPLES_PER_SNAPSHOT * NB_BYTES_CWF3_LIGHT_BLK ] __attribute__((aligned(0x100)));
44 char wf_cont_f3_light[ (NB_SAMPLES_PER_SNAPSHOT) * NB_BYTES_CWF3_LIGHT_BLK + TIME_OFFSET_IN_BYTES ] __attribute__((aligned(0x100)));
45
45
46 // SPECTRAL MATRICES GLOBAL VARIABLES
46 // SPECTRAL MATRICES GLOBAL VARIABLES
47 volatile int spec_mat_f0_0[ SM_HEADER + TOTAL_SIZE_SM ];
47 volatile int sm_f0[ NB_RING_NODES_ASM_F0 ][ SM_HEADER + TOTAL_SIZE_SM ];
48 volatile int spec_mat_f0_1[ SM_HEADER + TOTAL_SIZE_SM ];
48 volatile int sm_f1[ NB_RING_NODES_ASM_F1 ][ SM_HEADER + TOTAL_SIZE_SM ];
49 volatile int spec_mat_f0_a[ SM_HEADER + TOTAL_SIZE_SM ];
49 volatile int sm_f2[ NB_RING_NODES_ASM_F2 ][ SM_HEADER + TOTAL_SIZE_SM ];
50 volatile int spec_mat_f0_b[ SM_HEADER + TOTAL_SIZE_SM ];
51 volatile int spec_mat_f0_c[ SM_HEADER + TOTAL_SIZE_SM ];
52 volatile int spec_mat_f0_d[ SM_HEADER + TOTAL_SIZE_SM ];
53 volatile int spec_mat_f0_e[ SM_HEADER + TOTAL_SIZE_SM ];
54 volatile int spec_mat_f0_f[ SM_HEADER + TOTAL_SIZE_SM ];
55 volatile int spec_mat_f0_g[ SM_HEADER + TOTAL_SIZE_SM ];
56 volatile int spec_mat_f0_h[ SM_HEADER + TOTAL_SIZE_SM ];
57 volatile int spec_mat_f0_0_bis[ SM_HEADER + TOTAL_SIZE_SM ];
58 volatile int spec_mat_f0_1_bis[ SM_HEADER + TOTAL_SIZE_SM ];
59 //
60 volatile int spec_mat_f1[ SM_HEADER + TOTAL_SIZE_SM ];
61 volatile int spec_mat_f1_bis[ SM_HEADER + TOTAL_SIZE_SM ];
62 //
63 volatile int spec_mat_f2[ SM_HEADER + TOTAL_SIZE_SM ];
64 volatile int spec_mat_f2_bis[ SM_HEADER + TOTAL_SIZE_SM ];
65
50
66 // APB CONFIGURATION REGISTERS
51 // APB CONFIGURATION REGISTERS
67 time_management_regs_t *time_management_regs = (time_management_regs_t*) REGS_ADDR_TIME_MANAGEMENT;
52 time_management_regs_t *time_management_regs = (time_management_regs_t*) REGS_ADDR_TIME_MANAGEMENT;
@@ -11,10 +11,48
11
11
12 #include "fsw_processing_globals.c"
12 #include "fsw_processing_globals.c"
13
13
14 //************************
15 // spectral matrices rings
16 ring_node sm_ring_f0[NB_RING_NODES_ASM_F0];
17 ring_node sm_ring_f1[NB_RING_NODES_ASM_F1];
18 ring_node sm_ring_f2[NB_RING_NODES_ASM_F2];
19 ring_node *current_ring_node_sm_f0;
20 ring_node *current_ring_node_sm_f1;
21 ring_node *current_ring_node_sm_f2;
22
14 BP1_t data_BP1[ NB_BINS_COMPRESSED_SM_F0 ];
23 BP1_t data_BP1[ NB_BINS_COMPRESSED_SM_F0 ];
15 float averaged_spec_mat_f0[ TOTAL_SIZE_SM ];
24 float averaged_sm_f0[ TOTAL_SIZE_SM ];
16 char averaged_spec_mat_f0_char[ TOTAL_SIZE_SM * 2 ];
25 char averaged_sm_f0_char[ TOTAL_SIZE_SM * 2 ];
17 float compressed_spec_mat_f0[ TOTAL_SIZE_COMPRESSED_MATRIX_f0 ];
26 float compressed_sm_f0[ TOTAL_SIZE_COMPRESSED_MATRIX_f0 ];
27
28 void init_asm_rings( void )
29 {
30 unsigned char i;
31
32 // F0 RING
33 sm_ring_f0[0].next = (ring_node*) &sm_ring_f0[1];
34 sm_ring_f0[0].previous = (ring_node*) &sm_ring_f0[NB_RING_NODES_ASM_F0-1];
35 sm_ring_f0[0].buffer_address = (int) &sm_f0[0][0];
36
37 sm_ring_f0[NB_RING_NODES_ASM_F0-1].next = (ring_node*) &sm_ring_f0[0];
38 sm_ring_f0[NB_RING_NODES_ASM_F0-1].previous = (ring_node*) &sm_ring_f0[NB_RING_NODES_ASM_F0-2];
39 sm_ring_f0[NB_RING_NODES_ASM_F0-1].buffer_address = (int) &sm_f0[NB_RING_NODES_ASM_F0-1][0];
40
41 for(i=1; i<NB_RING_NODES_ASM_F0-1; i++)
42 {
43 sm_ring_f0[i].next = (ring_node*) &sm_ring_f0[i+1];
44 sm_ring_f0[i].previous = (ring_node*) &sm_ring_f0[i-1];
45 sm_ring_f0[i].buffer_address = (int) &sm_f0[i][0];
46 }
47
48 DEBUG_PRINTF1("asm_ring_f0 @%x\n", (unsigned int) sm_ring_f0)
49
50 }
51
52 void reset_current_sm_ring_nodes( void )
53 {
54 current_ring_node_sm_f0 = sm_ring_f0;
55 }
18
56
19 //***********************************************************
57 //***********************************************************
20 // Interrupt Service Routine for spectral matrices processing
58 // Interrupt Service Routine for spectral matrices processing
@@ -31,48 +69,13 rtems_isr spectral_matrices_isr( rtems_v
31 switch(i)
69 switch(i)
32 {
70 {
33 case 0:
71 case 0:
34 if (spectral_matrix_regs->matrixF0_Address0 == (int) spec_mat_f0_0)
72 current_ring_node_sm_f0 = current_ring_node_sm_f0->next;
35 {
73 spectral_matrix_regs->matrixF0_Address0 = current_ring_node_sm_f0->buffer_address;
36 spectral_matrix_regs->matrixF0_Address0 = (int) spec_mat_f0_0_bis;
37 }
38 else
39 {
40 spectral_matrix_regs->matrixF0_Address0 = (int) spec_mat_f0_0;
41 }
42 spectral_matrix_regs->status = spectral_matrix_regs->status & 0xfffffffe;
74 spectral_matrix_regs->status = spectral_matrix_regs->status & 0xfffffffe;
43 break;
75 break;
44 case 1:
76 case 1:
45 if (spectral_matrix_regs->matrixFO_Address1 == (int) spec_mat_f0_1)
46 {
47 spectral_matrix_regs->matrixFO_Address1 = (int) spec_mat_f0_1_bis;
48 }
49 else
50 {
51 spectral_matrix_regs->matrixFO_Address1 = (int) spec_mat_f0_1;
52 }
53 spectral_matrix_regs->status = spectral_matrix_regs->status & 0xfffffffd;
54 break;
77 break;
55 case 2:
78 case 2:
56 if (spectral_matrix_regs->matrixF1_Address == (int) spec_mat_f1)
57 {
58 spectral_matrix_regs->matrixF1_Address = (int) spec_mat_f1_bis;
59 }
60 else
61 {
62 spectral_matrix_regs->matrixF1_Address = (int) spec_mat_f1;
63 }
64 spectral_matrix_regs->status = spectral_matrix_regs->status & 0xfffffffb;
65 break;
66 case 3:
67 if (spectral_matrix_regs->matrixF2_Address == (int) spec_mat_f2)
68 {
69 spectral_matrix_regs->matrixF2_Address = (int) spec_mat_f2_bis;
70 }
71 else
72 {
73 spectral_matrix_regs->matrixF2_Address = (int) spec_mat_f2;
74 }
75 spectral_matrix_regs->status = spectral_matrix_regs->status & 0xfffffff7;
76 break;
79 break;
77 default:
80 default:
78 break;
81 break;
@@ -144,14 +147,14 rtems_task avf0_task(rtems_task_argument
144 while(1){
147 while(1){
145 rtems_event_receive(RTEMS_EVENT_0, RTEMS_WAIT, RTEMS_NO_TIMEOUT, &event_out); // wait for an RTEMS_EVENT0
148 rtems_event_receive(RTEMS_EVENT_0, RTEMS_WAIT, RTEMS_NO_TIMEOUT, &event_out); // wait for an RTEMS_EVENT0
146 for(i=0; i<TOTAL_SIZE_SM; i++){
149 for(i=0; i<TOTAL_SIZE_SM; i++){
147 averaged_spec_mat_f0[i] = averaged_spec_mat_f0[i] + spec_mat_f0_a[i]
150 averaged_sm_f0[i] = current_ring_node_sm_f0[0].buffer_address
148 + spec_mat_f0_b[i]
151 + current_ring_node_sm_f0[1].buffer_address
149 + spec_mat_f0_c[i]
152 + current_ring_node_sm_f0[2].buffer_address
150 + spec_mat_f0_d[i]
153 + current_ring_node_sm_f0[3].buffer_address
151 + spec_mat_f0_e[i]
154 + current_ring_node_sm_f0[4].buffer_address
152 + spec_mat_f0_f[i]
155 + current_ring_node_sm_f0[5].buffer_address
153 + spec_mat_f0_g[i]
156 + current_ring_node_sm_f0[6].buffer_address
154 + spec_mat_f0_h[i];
157 + current_ring_node_sm_f0[7].buffer_address;
155 }
158 }
156 nb_average = nb_average + NB_SM_TO_RECEIVE_BEFORE_AVF0;
159 nb_average = nb_average + NB_SM_TO_RECEIVE_BEFORE_AVF0;
157 if (nb_average == NB_AVERAGE_NORMAL_f0) {
160 if (nb_average == NB_AVERAGE_NORMAL_f0) {
@@ -173,8 +176,8 rtems_task bpf0_task(rtems_task_argument
173
176
174 while(1){
177 while(1){
175 rtems_event_receive(RTEMS_EVENT_0, RTEMS_WAIT, RTEMS_NO_TIMEOUT, &event_out); // wait for an RTEMS_EVENT0
178 rtems_event_receive(RTEMS_EVENT_0, RTEMS_WAIT, RTEMS_NO_TIMEOUT, &event_out); // wait for an RTEMS_EVENT0
176 matrix_compression(averaged_spec_mat_f0, 0, compressed_spec_mat_f0);
179 matrix_compression(averaged_sm_f0, 0, compressed_sm_f0);
177 BP1_set(compressed_spec_mat_f0, NB_BINS_COMPRESSED_SM_F0, LFR_BP1_F0);
180 BP1_set(compressed_sm_f0, NB_BINS_COMPRESSED_SM_F0, LFR_BP1_F0);
178 }
181 }
179 }
182 }
180
183
@@ -201,9 +204,9 rtems_task matr_task(rtems_task_argument
201 while(1){
204 while(1){
202 rtems_event_receive(RTEMS_EVENT_0, RTEMS_WAIT, RTEMS_NO_TIMEOUT, &event_out); // wait for an RTEMS_EVENT0
205 rtems_event_receive(RTEMS_EVENT_0, RTEMS_WAIT, RTEMS_NO_TIMEOUT, &event_out); // wait for an RTEMS_EVENT0
203 // 1) convert the float array in a char array
206 // 1) convert the float array in a char array
204 convert_averaged_spectral_matrix( averaged_spec_mat_f0, averaged_spec_mat_f0_char);
207 convert_averaged_spectral_matrix( averaged_sm_f0, averaged_sm_f0_char);
205 // 2) send the spectral matrix packets
208 // 2) send the spectral matrix packets
206 send_spectral_matrix( &headerASM, averaged_spec_mat_f0_char, SID_NORM_ASM_F0, &spw_ioctl_send_ASM, queue_id);
209 send_spectral_matrix( &headerASM, averaged_sm_f0_char, SID_NORM_ASM_F0, &spw_ioctl_send_ASM, queue_id);
207 }
210 }
208 }
211 }
209
212
@@ -545,70 +548,70 void fill_averaged_spectral_matrix(void)
545
548
546 offset = 10.;
549 offset = 10.;
547 coeff = 100000.;
550 coeff = 100000.;
548 averaged_spec_mat_f0[ 0 + 25 * 0 ] = 0. + offset;
551 averaged_sm_f0[ 0 + 25 * 0 ] = 0. + offset;
549 averaged_spec_mat_f0[ 0 + 25 * 1 ] = 1. + offset;
552 averaged_sm_f0[ 0 + 25 * 1 ] = 1. + offset;
550 averaged_spec_mat_f0[ 0 + 25 * 2 ] = 2. + offset;
553 averaged_sm_f0[ 0 + 25 * 2 ] = 2. + offset;
551 averaged_spec_mat_f0[ 0 + 25 * 3 ] = 3. + offset;
554 averaged_sm_f0[ 0 + 25 * 3 ] = 3. + offset;
552 averaged_spec_mat_f0[ 0 + 25 * 4 ] = 4. + offset;
555 averaged_sm_f0[ 0 + 25 * 4 ] = 4. + offset;
553 averaged_spec_mat_f0[ 0 + 25 * 5 ] = 5. + offset;
556 averaged_sm_f0[ 0 + 25 * 5 ] = 5. + offset;
554 averaged_spec_mat_f0[ 0 + 25 * 6 ] = 6. + offset;
557 averaged_sm_f0[ 0 + 25 * 6 ] = 6. + offset;
555 averaged_spec_mat_f0[ 0 + 25 * 7 ] = 7. + offset;
558 averaged_sm_f0[ 0 + 25 * 7 ] = 7. + offset;
556 averaged_spec_mat_f0[ 0 + 25 * 8 ] = 8. + offset;
559 averaged_sm_f0[ 0 + 25 * 8 ] = 8. + offset;
557 averaged_spec_mat_f0[ 0 + 25 * 9 ] = 9. + offset;
560 averaged_sm_f0[ 0 + 25 * 9 ] = 9. + offset;
558 averaged_spec_mat_f0[ 0 + 25 * 10 ] = 10. + offset;
561 averaged_sm_f0[ 0 + 25 * 10 ] = 10. + offset;
559 averaged_spec_mat_f0[ 0 + 25 * 11 ] = 11. + offset;
562 averaged_sm_f0[ 0 + 25 * 11 ] = 11. + offset;
560 averaged_spec_mat_f0[ 0 + 25 * 12 ] = 12. + offset;
563 averaged_sm_f0[ 0 + 25 * 12 ] = 12. + offset;
561 averaged_spec_mat_f0[ 0 + 25 * 13 ] = 13. + offset;
564 averaged_sm_f0[ 0 + 25 * 13 ] = 13. + offset;
562 averaged_spec_mat_f0[ 0 + 25 * 14 ] = 14. + offset;
565 averaged_sm_f0[ 0 + 25 * 14 ] = 14. + offset;
563 averaged_spec_mat_f0[ 9 + 25 * 0 ] = -(0. + offset)* coeff;
566 averaged_sm_f0[ 9 + 25 * 0 ] = -(0. + offset)* coeff;
564 averaged_spec_mat_f0[ 9 + 25 * 1 ] = -(1. + offset)* coeff;
567 averaged_sm_f0[ 9 + 25 * 1 ] = -(1. + offset)* coeff;
565 averaged_spec_mat_f0[ 9 + 25 * 2 ] = -(2. + offset)* coeff;
568 averaged_sm_f0[ 9 + 25 * 2 ] = -(2. + offset)* coeff;
566 averaged_spec_mat_f0[ 9 + 25 * 3 ] = -(3. + offset)* coeff;
569 averaged_sm_f0[ 9 + 25 * 3 ] = -(3. + offset)* coeff;
567 averaged_spec_mat_f0[ 9 + 25 * 4 ] = -(4. + offset)* coeff;
570 averaged_sm_f0[ 9 + 25 * 4 ] = -(4. + offset)* coeff;
568 averaged_spec_mat_f0[ 9 + 25 * 5 ] = -(5. + offset)* coeff;
571 averaged_sm_f0[ 9 + 25 * 5 ] = -(5. + offset)* coeff;
569 averaged_spec_mat_f0[ 9 + 25 * 6 ] = -(6. + offset)* coeff;
572 averaged_sm_f0[ 9 + 25 * 6 ] = -(6. + offset)* coeff;
570 averaged_spec_mat_f0[ 9 + 25 * 7 ] = -(7. + offset)* coeff;
573 averaged_sm_f0[ 9 + 25 * 7 ] = -(7. + offset)* coeff;
571 averaged_spec_mat_f0[ 9 + 25 * 8 ] = -(8. + offset)* coeff;
574 averaged_sm_f0[ 9 + 25 * 8 ] = -(8. + offset)* coeff;
572 averaged_spec_mat_f0[ 9 + 25 * 9 ] = -(9. + offset)* coeff;
575 averaged_sm_f0[ 9 + 25 * 9 ] = -(9. + offset)* coeff;
573 averaged_spec_mat_f0[ 9 + 25 * 10 ] = -(10. + offset)* coeff;
576 averaged_sm_f0[ 9 + 25 * 10 ] = -(10. + offset)* coeff;
574 averaged_spec_mat_f0[ 9 + 25 * 11 ] = -(11. + offset)* coeff;
577 averaged_sm_f0[ 9 + 25 * 11 ] = -(11. + offset)* coeff;
575 averaged_spec_mat_f0[ 9 + 25 * 12 ] = -(12. + offset)* coeff;
578 averaged_sm_f0[ 9 + 25 * 12 ] = -(12. + offset)* coeff;
576 averaged_spec_mat_f0[ 9 + 25 * 13 ] = -(13. + offset)* coeff;
579 averaged_sm_f0[ 9 + 25 * 13 ] = -(13. + offset)* coeff;
577 averaged_spec_mat_f0[ 9 + 25 * 14 ] = -(14. + offset)* coeff;
580 averaged_sm_f0[ 9 + 25 * 14 ] = -(14. + offset)* coeff;
578
581
579 offset = 10000000;
582 offset = 10000000;
580 averaged_spec_mat_f0[ 16 + 25 * 0 ] = (0. + offset)* coeff;
583 averaged_sm_f0[ 16 + 25 * 0 ] = (0. + offset)* coeff;
581 averaged_spec_mat_f0[ 16 + 25 * 1 ] = (1. + offset)* coeff;
584 averaged_sm_f0[ 16 + 25 * 1 ] = (1. + offset)* coeff;
582 averaged_spec_mat_f0[ 16 + 25 * 2 ] = (2. + offset)* coeff;
585 averaged_sm_f0[ 16 + 25 * 2 ] = (2. + offset)* coeff;
583 averaged_spec_mat_f0[ 16 + 25 * 3 ] = (3. + offset)* coeff;
586 averaged_sm_f0[ 16 + 25 * 3 ] = (3. + offset)* coeff;
584 averaged_spec_mat_f0[ 16 + 25 * 4 ] = (4. + offset)* coeff;
587 averaged_sm_f0[ 16 + 25 * 4 ] = (4. + offset)* coeff;
585 averaged_spec_mat_f0[ 16 + 25 * 5 ] = (5. + offset)* coeff;
588 averaged_sm_f0[ 16 + 25 * 5 ] = (5. + offset)* coeff;
586 averaged_spec_mat_f0[ 16 + 25 * 6 ] = (6. + offset)* coeff;
589 averaged_sm_f0[ 16 + 25 * 6 ] = (6. + offset)* coeff;
587 averaged_spec_mat_f0[ 16 + 25 * 7 ] = (7. + offset)* coeff;
590 averaged_sm_f0[ 16 + 25 * 7 ] = (7. + offset)* coeff;
588 averaged_spec_mat_f0[ 16 + 25 * 8 ] = (8. + offset)* coeff;
591 averaged_sm_f0[ 16 + 25 * 8 ] = (8. + offset)* coeff;
589 averaged_spec_mat_f0[ 16 + 25 * 9 ] = (9. + offset)* coeff;
592 averaged_sm_f0[ 16 + 25 * 9 ] = (9. + offset)* coeff;
590 averaged_spec_mat_f0[ 16 + 25 * 10 ] = (10. + offset)* coeff;
593 averaged_sm_f0[ 16 + 25 * 10 ] = (10. + offset)* coeff;
591 averaged_spec_mat_f0[ 16 + 25 * 11 ] = (11. + offset)* coeff;
594 averaged_sm_f0[ 16 + 25 * 11 ] = (11. + offset)* coeff;
592 averaged_spec_mat_f0[ 16 + 25 * 12 ] = (12. + offset)* coeff;
595 averaged_sm_f0[ 16 + 25 * 12 ] = (12. + offset)* coeff;
593 averaged_spec_mat_f0[ 16 + 25 * 13 ] = (13. + offset)* coeff;
596 averaged_sm_f0[ 16 + 25 * 13 ] = (13. + offset)* coeff;
594 averaged_spec_mat_f0[ 16 + 25 * 14 ] = (14. + offset)* coeff;
597 averaged_sm_f0[ 16 + 25 * 14 ] = (14. + offset)* coeff;
595
598
596 averaged_spec_mat_f0[ (TOTAL_SIZE_SM/2) + 0 ] = averaged_spec_mat_f0[ 0 ];
599 averaged_sm_f0[ (TOTAL_SIZE_SM/2) + 0 ] = averaged_sm_f0[ 0 ];
597 averaged_spec_mat_f0[ (TOTAL_SIZE_SM/2) + 1 ] = averaged_spec_mat_f0[ 1 ];
600 averaged_sm_f0[ (TOTAL_SIZE_SM/2) + 1 ] = averaged_sm_f0[ 1 ];
598 averaged_spec_mat_f0[ (TOTAL_SIZE_SM/2) + 2 ] = averaged_spec_mat_f0[ 2 ];
601 averaged_sm_f0[ (TOTAL_SIZE_SM/2) + 2 ] = averaged_sm_f0[ 2 ];
599 averaged_spec_mat_f0[ (TOTAL_SIZE_SM/2) + 3 ] = averaged_spec_mat_f0[ 3 ];
602 averaged_sm_f0[ (TOTAL_SIZE_SM/2) + 3 ] = averaged_sm_f0[ 3 ];
600 averaged_spec_mat_f0[ (TOTAL_SIZE_SM/2) + 4 ] = averaged_spec_mat_f0[ 4 ];
603 averaged_sm_f0[ (TOTAL_SIZE_SM/2) + 4 ] = averaged_sm_f0[ 4 ];
601 averaged_spec_mat_f0[ (TOTAL_SIZE_SM/2) + 5 ] = averaged_spec_mat_f0[ 5 ];
604 averaged_sm_f0[ (TOTAL_SIZE_SM/2) + 5 ] = averaged_sm_f0[ 5 ];
602 averaged_spec_mat_f0[ (TOTAL_SIZE_SM/2) + 6 ] = averaged_spec_mat_f0[ 6 ];
605 averaged_sm_f0[ (TOTAL_SIZE_SM/2) + 6 ] = averaged_sm_f0[ 6 ];
603 averaged_spec_mat_f0[ (TOTAL_SIZE_SM/2) + 7 ] = averaged_spec_mat_f0[ 7 ];
606 averaged_sm_f0[ (TOTAL_SIZE_SM/2) + 7 ] = averaged_sm_f0[ 7 ];
604 averaged_spec_mat_f0[ (TOTAL_SIZE_SM/2) + 8 ] = averaged_spec_mat_f0[ 8 ];
607 averaged_sm_f0[ (TOTAL_SIZE_SM/2) + 8 ] = averaged_sm_f0[ 8 ];
605 averaged_spec_mat_f0[ (TOTAL_SIZE_SM/2) + 9 ] = averaged_spec_mat_f0[ 9 ];
608 averaged_sm_f0[ (TOTAL_SIZE_SM/2) + 9 ] = averaged_sm_f0[ 9 ];
606 averaged_spec_mat_f0[ (TOTAL_SIZE_SM/2) + 10 ] = averaged_spec_mat_f0[ 10 ];
609 averaged_sm_f0[ (TOTAL_SIZE_SM/2) + 10 ] = averaged_sm_f0[ 10 ];
607 averaged_spec_mat_f0[ (TOTAL_SIZE_SM/2) + 11 ] = averaged_spec_mat_f0[ 11 ];
610 averaged_sm_f0[ (TOTAL_SIZE_SM/2) + 11 ] = averaged_sm_f0[ 11 ];
608 averaged_spec_mat_f0[ (TOTAL_SIZE_SM/2) + 12 ] = averaged_spec_mat_f0[ 12 ];
611 averaged_sm_f0[ (TOTAL_SIZE_SM/2) + 12 ] = averaged_sm_f0[ 12 ];
609 averaged_spec_mat_f0[ (TOTAL_SIZE_SM/2) + 13 ] = averaged_spec_mat_f0[ 13 ];
612 averaged_sm_f0[ (TOTAL_SIZE_SM/2) + 13 ] = averaged_sm_f0[ 13 ];
610 averaged_spec_mat_f0[ (TOTAL_SIZE_SM/2) + 14 ] = averaged_spec_mat_f0[ 14 ];
613 averaged_sm_f0[ (TOTAL_SIZE_SM/2) + 14 ] = averaged_sm_f0[ 14 ];
611 averaged_spec_mat_f0[ (TOTAL_SIZE_SM/2) + 15 ] = averaged_spec_mat_f0[ 15 ];
614 averaged_sm_f0[ (TOTAL_SIZE_SM/2) + 15 ] = averaged_sm_f0[ 15 ];
612 }
615 }
613
616
614 void reset_spectral_matrix_regs()
617 void reset_spectral_matrix_regs()
@@ -628,10 +631,10 void reset_spectral_matrix_regs()
628
631
629 #ifdef GSA
632 #ifdef GSA
630 #else
633 #else
631 spectral_matrix_regs->matrixF0_Address0 = (int) spec_mat_f0_0;
634 spectral_matrix_regs->matrixF0_Address0 = current_ring_node_sm_f0->buffer_address;
632 spectral_matrix_regs->matrixFO_Address1 = (int) spec_mat_f0_1;
635 spectral_matrix_regs->matrixFO_Address1 = current_ring_node_sm_f0->buffer_address;
633 spectral_matrix_regs->matrixF1_Address = (int) spec_mat_f1;
636 spectral_matrix_regs->matrixF1_Address = current_ring_node_sm_f1->buffer_address;
634 spectral_matrix_regs->matrixF2_Address = (int) spec_mat_f2;
637 spectral_matrix_regs->matrixF2_Address = current_ring_node_sm_f2->buffer_address;
635 #endif
638 #endif
636 }
639 }
637
640
@@ -36,8 +36,6 ring_node *current_ring_node_f2;
36 ring_node *ring_node_to_send_swf_f2;
36 ring_node *ring_node_to_send_swf_f2;
37 ring_node *ring_node_to_send_cwf_f2;
37 ring_node *ring_node_to_send_cwf_f2;
38
38
39 unsigned char doubleSendCWF2 = 0;
40
41 rtems_isr waveforms_isr( rtems_vector_number vector )
39 rtems_isr waveforms_isr( rtems_vector_number vector )
42 {
40 {
43 /** This is the interrupt sub routine called by the waveform picker core.
41 /** This is the interrupt sub routine called by the waveform picker core.
@@ -48,6 +46,8 rtems_isr waveforms_isr( rtems_vector_nu
48 *
46 *
49 */
47 */
50
48
49 static unsigned char nb_swf = 0;
50
51 if ( (lfrCurrentMode == LFR_MODE_NORMAL)
51 if ( (lfrCurrentMode == LFR_MODE_NORMAL)
52 || (lfrCurrentMode == LFR_MODE_SBM1) || (lfrCurrentMode == LFR_MODE_SBM2) )
52 || (lfrCurrentMode == LFR_MODE_SBM1) || (lfrCurrentMode == LFR_MODE_SBM2) )
53 { // in modes other than STANDBY and BURST, send the CWF_F3 data
53 { // in modes other than STANDBY and BURST, send the CWF_F3 data
@@ -94,9 +94,15 rtems_isr waveforms_isr( rtems_vector_nu
94 if (rtems_event_send( Task_id[TASKID_WFRM], RTEMS_EVENT_MODE_NORMAL ) != RTEMS_SUCCESSFUL) {
94 if (rtems_event_send( Task_id[TASKID_WFRM], RTEMS_EVENT_MODE_NORMAL ) != RTEMS_SUCCESSFUL) {
95 rtems_event_send( Task_id[TASKID_DUMB], RTEMS_EVENT_2 );
95 rtems_event_send( Task_id[TASKID_DUMB], RTEMS_EVENT_2 );
96 }
96 }
97 // nb_swf = nb_swf + 1;
98 // if (nb_swf == 2)
99 // {
100 // reset_wfp_burst_enable();
101 // }
102 // else
103 // {
97 waveform_picker_regs->status = waveform_picker_regs->status & 0xfffff888; // [1000 1000 1000]
104 waveform_picker_regs->status = waveform_picker_regs->status & 0xfffff888; // [1000 1000 1000]
98 // rtems_event_send( Task_id[TASKID_DUMB], RTEMS_EVENT_7 );
105 // }
99 // reset_wfp_burst_enable();
100 }
106 }
101 break;
107 break;
102
108
@@ -211,9 +217,11 rtems_task wfrm_task(rtems_task_argument
211 RTEMS_WAIT | RTEMS_EVENT_ANY, RTEMS_NO_TIMEOUT, &event_out);
217 RTEMS_WAIT | RTEMS_EVENT_ANY, RTEMS_NO_TIMEOUT, &event_out);
212 if (event_out == RTEMS_EVENT_MODE_NORMAL)
218 if (event_out == RTEMS_EVENT_MODE_NORMAL)
213 {
219 {
220 PRINTF1("status %x\n", waveform_picker_regs->status )
214 send_waveform_SWF((volatile int*) ring_node_to_send_swf_f0->buffer_address, SID_NORM_SWF_F0, headerSWF_F0, queue_id);
221 send_waveform_SWF((volatile int*) ring_node_to_send_swf_f0->buffer_address, SID_NORM_SWF_F0, headerSWF_F0, queue_id);
215 send_waveform_SWF((volatile int*) ring_node_to_send_swf_f1->buffer_address, SID_NORM_SWF_F1, headerSWF_F1, queue_id);
222 send_waveform_SWF((volatile int*) ring_node_to_send_swf_f1->buffer_address, SID_NORM_SWF_F1, headerSWF_F1, queue_id);
216 send_waveform_SWF((volatile int*) ring_node_to_send_swf_f2->buffer_address, SID_NORM_SWF_F2, headerSWF_F2, queue_id);
223 send_waveform_SWF((volatile int*) ring_node_to_send_swf_f2->buffer_address, SID_NORM_SWF_F2, headerSWF_F2, queue_id);
224 waveform_picker_regs->status = waveform_picker_regs->status & 0xfffff888; // [1000 1000 1000]
217 }
225 }
218 else
226 else
219 {
227 {
@@ -527,33 +535,12 int init_header_continuous_wf_table( uns
527 headerCWF[ i ].packetID[0] = (unsigned char) (TM_PACKET_ID_SCIENCE_NORMAL_BURST >> 8);
535 headerCWF[ i ].packetID[0] = (unsigned char) (TM_PACKET_ID_SCIENCE_NORMAL_BURST >> 8);
528 headerCWF[ i ].packetID[1] = (unsigned char) (TM_PACKET_ID_SCIENCE_NORMAL_BURST);
536 headerCWF[ i ].packetID[1] = (unsigned char) (TM_PACKET_ID_SCIENCE_NORMAL_BURST);
529 }
537 }
530 if (i == 0)
538 headerCWF[ i ].packetSequenceControl[0] = TM_PACKET_SEQ_CTRL_STANDALONE;
531 {
539 headerCWF[ i ].packetLength[0] = (unsigned char) (TM_LEN_SCI_CWF_336 >> 8);
532 headerCWF[ i ].packetSequenceControl[0] = TM_PACKET_SEQ_CTRL_FIRST;
540 headerCWF[ i ].packetLength[1] = (unsigned char) (TM_LEN_SCI_CWF_336 );
533 headerCWF[ i ].packetLength[0] = (unsigned char) (TM_LEN_SCI_CWF_340 >> 8);
541 headerCWF[ i ].blkNr[0] = (unsigned char) (BLK_NR_CWF >> 8);
534 headerCWF[ i ].packetLength[1] = (unsigned char) (TM_LEN_SCI_CWF_340 );
542 headerCWF[ i ].blkNr[1] = (unsigned char) (BLK_NR_CWF );
535 headerCWF[ i ].blkNr[0] = (unsigned char) (BLK_NR_340 >> 8);
536 headerCWF[ i ].blkNr[1] = (unsigned char) (BLK_NR_340 );
537 }
538 else if (i == 6)
539 {
540 headerCWF[ i ].packetSequenceControl[0] = TM_PACKET_SEQ_CTRL_LAST;
541 headerCWF[ i ].packetLength[0] = (unsigned char) (TM_LEN_SCI_CWF_8 >> 8);
542 headerCWF[ i ].packetLength[1] = (unsigned char) (TM_LEN_SCI_CWF_8 );
543 headerCWF[ i ].blkNr[0] = (unsigned char) (BLK_NR_8 >> 8);
544 headerCWF[ i ].blkNr[1] = (unsigned char) (BLK_NR_8 );
545 }
546 else
547 {
548 headerCWF[ i ].packetSequenceControl[0] = TM_PACKET_SEQ_CTRL_CONTINUATION;
549 headerCWF[ i ].packetLength[0] = (unsigned char) (TM_LEN_SCI_CWF_340 >> 8);
550 headerCWF[ i ].packetLength[1] = (unsigned char) (TM_LEN_SCI_CWF_340 );
551 headerCWF[ i ].blkNr[0] = (unsigned char) (BLK_NR_340 >> 8);
552 headerCWF[ i ].blkNr[1] = (unsigned char) (BLK_NR_340 );
553 }
554 headerCWF[ i ].packetSequenceControl[1] = TM_PACKET_SEQ_CNT_DEFAULT;
543 headerCWF[ i ].packetSequenceControl[1] = TM_PACKET_SEQ_CNT_DEFAULT;
555 // PKT_CNT
556 // PKT_NR
557 // DATA FIELD HEADER
544 // DATA FIELD HEADER
558 headerCWF[ i ].spare1_pusVersion_spare2 = DEFAULT_SPARE1_PUSVERSION_SPARE2;
545 headerCWF[ i ].spare1_pusVersion_spare2 = DEFAULT_SPARE1_PUSVERSION_SPARE2;
559 headerCWF[ i ].serviceType = TM_TYPE_LFR_SCIENCE; // service type
546 headerCWF[ i ].serviceType = TM_TYPE_LFR_SCIENCE; // service type
@@ -585,30 +572,13 int init_header_continuous_cwf3_light_ta
585
572
586 headerCWF[ i ].packetID[0] = (unsigned char) (TM_PACKET_ID_SCIENCE_NORMAL_BURST >> 8);
573 headerCWF[ i ].packetID[0] = (unsigned char) (TM_PACKET_ID_SCIENCE_NORMAL_BURST >> 8);
587 headerCWF[ i ].packetID[1] = (unsigned char) (TM_PACKET_ID_SCIENCE_NORMAL_BURST);
574 headerCWF[ i ].packetID[1] = (unsigned char) (TM_PACKET_ID_SCIENCE_NORMAL_BURST);
588 if (i == 0)
575
589 {
576 headerCWF[ i ].packetSequenceControl[0] = TM_PACKET_SEQ_CTRL_STANDALONE;
590 headerCWF[ i ].packetSequenceControl[0] = TM_PACKET_SEQ_CTRL_FIRST;
577 headerCWF[ i ].packetLength[0] = (unsigned char) (TM_LEN_SCI_CWF_672 >> 8);
591 headerCWF[ i ].packetLength[0] = (unsigned char) (TM_LEN_SCI_CWF3_LIGHT_340 >> 8);
578 headerCWF[ i ].packetLength[1] = (unsigned char) (TM_LEN_SCI_CWF_672 );
592 headerCWF[ i ].packetLength[1] = (unsigned char) (TM_LEN_SCI_CWF3_LIGHT_340 );
579 headerCWF[ i ].blkNr[0] = (unsigned char) (BLK_NR_CWF_SHORT_F3 >> 8);
593 headerCWF[ i ].blkNr[0] = (unsigned char) (BLK_NR_340 >> 8);
580 headerCWF[ i ].blkNr[1] = (unsigned char) (BLK_NR_CWF_SHORT_F3 );
594 headerCWF[ i ].blkNr[1] = (unsigned char) (BLK_NR_340 );
581
595 }
596 else if (i == 6)
597 {
598 headerCWF[ i ].packetSequenceControl[0] = TM_PACKET_SEQ_CTRL_LAST;
599 headerCWF[ i ].packetLength[0] = (unsigned char) (TM_LEN_SCI_CWF3_LIGHT_8 >> 8);
600 headerCWF[ i ].packetLength[1] = (unsigned char) (TM_LEN_SCI_CWF3_LIGHT_8 );
601 headerCWF[ i ].blkNr[0] = (unsigned char) (BLK_NR_8 >> 8);
602 headerCWF[ i ].blkNr[1] = (unsigned char) (BLK_NR_8 );
603 }
604 else
605 {
606 headerCWF[ i ].packetSequenceControl[0] = TM_PACKET_SEQ_CTRL_CONTINUATION;
607 headerCWF[ i ].packetLength[0] = (unsigned char) (TM_LEN_SCI_CWF3_LIGHT_340 >> 8);
608 headerCWF[ i ].packetLength[1] = (unsigned char) (TM_LEN_SCI_CWF3_LIGHT_340 );
609 headerCWF[ i ].blkNr[0] = (unsigned char) (BLK_NR_340 >> 8);
610 headerCWF[ i ].blkNr[1] = (unsigned char) (BLK_NR_340 );
611 }
612 headerCWF[ i ].packetSequenceControl[1] = TM_PACKET_SEQ_CNT_DEFAULT;
582 headerCWF[ i ].packetSequenceControl[1] = TM_PACKET_SEQ_CNT_DEFAULT;
613 // DATA FIELD HEADER
583 // DATA FIELD HEADER
614 headerCWF[ i ].spare1_pusVersion_spare2 = DEFAULT_SPARE1_PUSVERSION_SPARE2;
584 headerCWF[ i ].spare1_pusVersion_spare2 = DEFAULT_SPARE1_PUSVERSION_SPARE2;
@@ -645,6 +615,8 int send_waveform_SWF( volatile int *wav
645
615
646 unsigned int i;
616 unsigned int i;
647 int ret;
617 int ret;
618 unsigned int coarseTime;
619 unsigned int fineTime;
648 rtems_status_code status;
620 rtems_status_code status;
649 spw_ioctl_pkt_send spw_ioctl_send_SWF;
621 spw_ioctl_pkt_send spw_ioctl_send_SWF;
650
622
@@ -653,30 +625,46 int send_waveform_SWF( volatile int *wav
653
625
654 ret = LFR_DEFAULT;
626 ret = LFR_DEFAULT;
655
627
628 PRINTF1("sid = %d, ", sid)
629 PRINTF2("coarse = %x, fine = %x\n", waveform[0], waveform[1])
630
656 for (i=0; i<7; i++) // send waveform
631 for (i=0; i<7; i++) // send waveform
657 {
632 {
658 #ifdef VHDL_DEV
633 #ifdef VHDL_DEV
659 spw_ioctl_send_SWF.data = (char*) &waveform[ (i * 304 * NB_WORDS_SWF_BLK) + TIME_OFFSET];
634 spw_ioctl_send_SWF.data = (char*) &waveform[ (i * BLK_NR_304 * NB_WORDS_SWF_BLK) + TIME_OFFSET];
660 #else
635 #else
661 spw_ioctl_send_SWF.data = (char*) &waveform[ (i * 304 * NB_WORDS_SWF_BLK) ];
636 spw_ioctl_send_SWF.data = (char*) &waveform[ (i * BLK_NR_304 * NB_WORDS_SWF_BLK) ];
662 #endif
637 #endif
663 spw_ioctl_send_SWF.hdr = (char*) &headerSWF[ i ];
638 spw_ioctl_send_SWF.hdr = (char*) &headerSWF[ i ];
664 // BUILD THE DATA
639 // BUILD THE DATA
665 if (i==6) {
640 if (i==6) {
666 spw_ioctl_send_SWF.dlen = 224 * NB_BYTES_SWF_BLK;
641 spw_ioctl_send_SWF.dlen = BLK_NR_224 * NB_BYTES_SWF_BLK;
667 }
642 }
668 else {
643 else {
669 spw_ioctl_send_SWF.dlen = 304 * NB_BYTES_SWF_BLK;
644 spw_ioctl_send_SWF.dlen = BLK_NR_304 * NB_BYTES_SWF_BLK;
670 }
645 }
671 // SET PACKET SEQUENCE COUNTER
646 // SET PACKET SEQUENCE COUNTER
672 increment_seq_counter_source_id( headerSWF[ i ].packetSequenceControl, sid );
647 increment_seq_counter_source_id( headerSWF[ i ].packetSequenceControl, sid );
673 // SET PACKET TIME
648 // SET PACKET TIME
649 #ifdef VHDL_DEV
650 coarseTime = waveform[0];
651 fineTime = waveform[1];
652 compute_acquisition_time( &coarseTime, &fineTime, sid, i);
653
654 headerSWF[ i ].acquisitionTime[0] = (unsigned char) (coarseTime >> 24 );
655 headerSWF[ i ].acquisitionTime[1] = (unsigned char) (coarseTime >> 16 );
656 headerSWF[ i ].acquisitionTime[2] = (unsigned char) (coarseTime >> 8 );
657 headerSWF[ i ].acquisitionTime[3] = (unsigned char) (coarseTime );
658 headerSWF[ i ].acquisitionTime[4] = (unsigned char) (fineTime >> 8 );
659 headerSWF[ i ].acquisitionTime[5] = (unsigned char) (fineTime );
660 #else
674 headerSWF[ i ].acquisitionTime[0] = (unsigned char) (time_management_regs->coarse_time>>24);
661 headerSWF[ i ].acquisitionTime[0] = (unsigned char) (time_management_regs->coarse_time>>24);
675 headerSWF[ i ].acquisitionTime[1] = (unsigned char) (time_management_regs->coarse_time>>16);
662 headerSWF[ i ].acquisitionTime[1] = (unsigned char) (time_management_regs->coarse_time>>16);
676 headerSWF[ i ].acquisitionTime[2] = (unsigned char) (time_management_regs->coarse_time>>8);
663 headerSWF[ i ].acquisitionTime[2] = (unsigned char) (time_management_regs->coarse_time>>8);
677 headerSWF[ i ].acquisitionTime[3] = (unsigned char) (time_management_regs->coarse_time);
664 headerSWF[ i ].acquisitionTime[3] = (unsigned char) (time_management_regs->coarse_time);
678 headerSWF[ i ].acquisitionTime[4] = (unsigned char) (time_management_regs->fine_time>>8);
665 headerSWF[ i ].acquisitionTime[4] = (unsigned char) (time_management_regs->fine_time>>8);
679 headerSWF[ i ].acquisitionTime[5] = (unsigned char) (time_management_regs->fine_time);
666 headerSWF[ i ].acquisitionTime[5] = (unsigned char) (time_management_regs->fine_time);
667 #endif
680 headerSWF[ i ].time[0] = (unsigned char) (time_management_regs->coarse_time>>24);
668 headerSWF[ i ].time[0] = (unsigned char) (time_management_regs->coarse_time>>24);
681 headerSWF[ i ].time[1] = (unsigned char) (time_management_regs->coarse_time>>16);
669 headerSWF[ i ].time[1] = (unsigned char) (time_management_regs->coarse_time>>16);
682 headerSWF[ i ].time[2] = (unsigned char) (time_management_regs->coarse_time>>8);
670 headerSWF[ i ].time[2] = (unsigned char) (time_management_regs->coarse_time>>8);
@@ -712,6 +700,8 int send_waveform_CWF(volatile int *wave
712
700
713 unsigned int i;
701 unsigned int i;
714 int ret;
702 int ret;
703 unsigned char *coarseTimePtr;
704 unsigned char *fineTimePtr;
715 rtems_status_code status;
705 rtems_status_code status;
716 spw_ioctl_pkt_send spw_ioctl_send_CWF;
706 spw_ioctl_pkt_send spw_ioctl_send_CWF;
717
707
@@ -725,21 +715,26 int send_waveform_CWF(volatile int *wave
725 int coarseTime = 0x00;
715 int coarseTime = 0x00;
726 int fineTime = 0x00;
716 int fineTime = 0x00;
727 #ifdef VHDL_DEV
717 #ifdef VHDL_DEV
728 spw_ioctl_send_CWF.data = (char*) &waveform[ (i * 340 * NB_WORDS_SWF_BLK) + TIME_OFFSET];
718 spw_ioctl_send_CWF.data = (char*) &waveform[ (i * BLK_NR_CWF * NB_WORDS_SWF_BLK) + TIME_OFFSET];
729 #else
719 #else
730 spw_ioctl_send_CWF.data = (char*) &waveform[ (i * 340 * NB_WORDS_SWF_BLK) ];
720 spw_ioctl_send_CWF.data = (char*) &waveform[ (i * BLK_NR_CWF * NB_WORDS_SWF_BLK) ];
731 #endif
721 #endif
732 spw_ioctl_send_CWF.hdr = (char*) &headerCWF[ i ];
722 spw_ioctl_send_CWF.hdr = (char*) &headerCWF[ i ];
733 // BUILD THE DATA
723 // BUILD THE DATA
734 if (i==6) {
724 spw_ioctl_send_CWF.dlen = BLK_NR_CWF * NB_BYTES_SWF_BLK;
735 spw_ioctl_send_CWF.dlen = 8 * NB_BYTES_SWF_BLK;
736 }
737 else {
738 spw_ioctl_send_CWF.dlen = 340 * NB_BYTES_SWF_BLK;
739 }
740 // SET PACKET SEQUENCE COUNTER
725 // SET PACKET SEQUENCE COUNTER
741 increment_seq_counter_source_id( headerCWF[ i ].packetSequenceControl, sid );
726 increment_seq_counter_source_id( headerCWF[ i ].packetSequenceControl, sid );
742 // SET PACKET TIME
727 // SET PACKET TIME
728 #ifdef VHDL_DEV
729 coarseTimePtr = (unsigned char *) &waveform;
730 fineTimePtr = (unsigned char *) &waveform[1];
731 headerCWF[ i ].acquisitionTime[0] = coarseTimePtr[2];
732 headerCWF[ i ].acquisitionTime[1] = coarseTimePtr[3];
733 headerCWF[ i ].acquisitionTime[2] = coarseTimePtr[0];
734 headerCWF[ i ].acquisitionTime[3] = coarseTimePtr[1];
735 headerCWF[ i ].acquisitionTime[4] = fineTimePtr[0];
736 headerCWF[ i ].acquisitionTime[5] = fineTimePtr[1];
737 #else
743 coarseTime = time_management_regs->coarse_time;
738 coarseTime = time_management_regs->coarse_time;
744 fineTime = time_management_regs->fine_time;
739 fineTime = time_management_regs->fine_time;
745 headerCWF[ i ].acquisitionTime[0] = (unsigned char) (coarseTime>>24);
740 headerCWF[ i ].acquisitionTime[0] = (unsigned char) (coarseTime>>24);
@@ -748,6 +743,8 int send_waveform_CWF(volatile int *wave
748 headerCWF[ i ].acquisitionTime[3] = (unsigned char) (coarseTime);
743 headerCWF[ i ].acquisitionTime[3] = (unsigned char) (coarseTime);
749 headerCWF[ i ].acquisitionTime[4] = (unsigned char) (fineTime>>8);
744 headerCWF[ i ].acquisitionTime[4] = (unsigned char) (fineTime>>8);
750 headerCWF[ i ].acquisitionTime[5] = (unsigned char) (fineTime);
745 headerCWF[ i ].acquisitionTime[5] = (unsigned char) (fineTime);
746 #endif
747
751 headerCWF[ i ].time[0] = (unsigned char) (coarseTime>>24);
748 headerCWF[ i ].time[0] = (unsigned char) (coarseTime>>24);
752 headerCWF[ i ].time[1] = (unsigned char) (coarseTime>>16);
749 headerCWF[ i ].time[1] = (unsigned char) (coarseTime>>16);
753 headerCWF[ i ].time[2] = (unsigned char) (coarseTime>>8);
750 headerCWF[ i ].time[2] = (unsigned char) (coarseTime>>8);
@@ -793,6 +790,8 int send_waveform_CWF3_light(volatile in
793
790
794 unsigned int i;
791 unsigned int i;
795 int ret;
792 int ret;
793 unsigned char *coarseTimePtr;
794 unsigned char *fineTimePtr;
796 rtems_status_code status;
795 rtems_status_code status;
797 spw_ioctl_pkt_send spw_ioctl_send_CWF;
796 spw_ioctl_pkt_send spw_ioctl_send_CWF;
798 char *sample;
797 char *sample;
@@ -804,19 +803,25 int send_waveform_CWF3_light(volatile in
804
803
805 //**********************
804 //**********************
806 // BUILD CWF3_light DATA
805 // BUILD CWF3_light DATA
807 for ( i=0; i< 2048; i++)
806 for ( i=0; i< NB_SAMPLES_PER_SNAPSHOT; i++)
808 {
807 {
809 #ifdef VHDL_DEV
808 #ifdef VHDL_DEV
810 sample = (char*) &waveform[ (i * NB_WORDS_SWF_BLK) + TIME_OFFSET ];
809 sample = (char*) &waveform[ (i * NB_WORDS_SWF_BLK) + TIME_OFFSET ];
810 wf_cont_f3_light[ (i * NB_BYTES_CWF3_LIGHT_BLK) + TIME_OFFSET_IN_BYTES ] = sample[ 0 ];
811 wf_cont_f3_light[ (i * NB_BYTES_CWF3_LIGHT_BLK) + 1 + TIME_OFFSET_IN_BYTES ] = sample[ 1 ];
812 wf_cont_f3_light[ (i * NB_BYTES_CWF3_LIGHT_BLK) + 2 + TIME_OFFSET_IN_BYTES ] = sample[ 2 ];
813 wf_cont_f3_light[ (i * NB_BYTES_CWF3_LIGHT_BLK) + 3 + TIME_OFFSET_IN_BYTES ] = sample[ 3 ];
814 wf_cont_f3_light[ (i * NB_BYTES_CWF3_LIGHT_BLK) + 4 + TIME_OFFSET_IN_BYTES ] = sample[ 4 ];
815 wf_cont_f3_light[ (i * NB_BYTES_CWF3_LIGHT_BLK) + 5 + TIME_OFFSET_IN_BYTES ] = sample[ 5 ];
811 #else
816 #else
812 sample = (char*) &waveform[ i * NB_WORDS_SWF_BLK ];
817 sample = (char*) &waveform[ i * NB_WORDS_SWF_BLK ];
813 #endif
814 wf_cont_f3_light[ (i * NB_BYTES_CWF3_LIGHT_BLK) ] = sample[ 0 ];
818 wf_cont_f3_light[ (i * NB_BYTES_CWF3_LIGHT_BLK) ] = sample[ 0 ];
815 wf_cont_f3_light[ (i * NB_BYTES_CWF3_LIGHT_BLK) + 1 ] = sample[ 1 ];
819 wf_cont_f3_light[ (i * NB_BYTES_CWF3_LIGHT_BLK) + 1 ] = sample[ 1 ];
816 wf_cont_f3_light[ (i * NB_BYTES_CWF3_LIGHT_BLK) + 2 ] = sample[ 2 ];
820 wf_cont_f3_light[ (i * NB_BYTES_CWF3_LIGHT_BLK) + 2 ] = sample[ 2 ];
817 wf_cont_f3_light[ (i * NB_BYTES_CWF3_LIGHT_BLK) + 3 ] = sample[ 3 ];
821 wf_cont_f3_light[ (i * NB_BYTES_CWF3_LIGHT_BLK) + 3 ] = sample[ 3 ];
818 wf_cont_f3_light[ (i * NB_BYTES_CWF3_LIGHT_BLK) + 4 ] = sample[ 4 ];
822 wf_cont_f3_light[ (i * NB_BYTES_CWF3_LIGHT_BLK) + 4 ] = sample[ 4 ];
819 wf_cont_f3_light[ (i * NB_BYTES_CWF3_LIGHT_BLK) + 5 ] = sample[ 5 ];
823 wf_cont_f3_light[ (i * NB_BYTES_CWF3_LIGHT_BLK) + 5 ] = sample[ 5 ];
824 #endif
820 }
825 }
821
826
822 //*********************
827 //*********************
@@ -827,18 +832,27 int send_waveform_CWF3_light(volatile in
827 int coarseTime = 0x00;
832 int coarseTime = 0x00;
828 int fineTime = 0x00;
833 int fineTime = 0x00;
829
834
830 spw_ioctl_send_CWF.data = (char*) &wf_cont_f3_light[ (i * 340 * NB_BYTES_CWF3_LIGHT_BLK) ];
835 #ifdef VHDL_DEV
836 spw_ioctl_send_CWF.data = (char*) &wf_cont_f3_light[ (i * BLK_NR_CWF_SHORT_F3 * NB_BYTES_CWF3_LIGHT_BLK) + TIME_OFFSET_IN_BYTES];
837 #else
838 spw_ioctl_send_CWF.data = (char*) &wf_cont_f3_light[ (i * BLK_NR_CWF_SHORT_F3 * NB_BYTES_CWF3_LIGHT_BLK) ];
839 #endif
831 spw_ioctl_send_CWF.hdr = (char*) &headerCWF[ i ];
840 spw_ioctl_send_CWF.hdr = (char*) &headerCWF[ i ];
832 // BUILD THE DATA
841 // BUILD THE DATA
833 if ( i == WFRM_INDEX_OF_LAST_PACKET ) {
842 spw_ioctl_send_CWF.dlen = BLK_NR_CWF_SHORT_F3 * NB_BYTES_CWF3_LIGHT_BLK;
834 spw_ioctl_send_CWF.dlen = 8 * NB_BYTES_CWF3_LIGHT_BLK;
835 }
836 else {
837 spw_ioctl_send_CWF.dlen = 340 * NB_BYTES_CWF3_LIGHT_BLK;
838 }
839 // SET PACKET SEQUENCE COUNTER
843 // SET PACKET SEQUENCE COUNTER
840 increment_seq_counter_source_id( headerCWF[ i ].packetSequenceControl, SID_NORM_CWF_F3 );
844 increment_seq_counter_source_id( headerCWF[ i ].packetSequenceControl, SID_NORM_CWF_F3 );
841 // SET PACKET TIME
845 // SET PACKET TIME
846 #ifdef VHDL_DEV
847 coarseTimePtr = (unsigned char *) &waveform;
848 fineTimePtr = (unsigned char *) &waveform[1];
849 headerCWF[ i ].acquisitionTime[0] = coarseTimePtr[2];
850 headerCWF[ i ].acquisitionTime[1] = coarseTimePtr[3];
851 headerCWF[ i ].acquisitionTime[2] = coarseTimePtr[0];
852 headerCWF[ i ].acquisitionTime[3] = coarseTimePtr[1];
853 headerCWF[ i ].acquisitionTime[4] = fineTimePtr[0];
854 headerCWF[ i ].acquisitionTime[5] = fineTimePtr[1];
855 #else
842 coarseTime = time_management_regs->coarse_time;
856 coarseTime = time_management_regs->coarse_time;
843 fineTime = time_management_regs->fine_time;
857 fineTime = time_management_regs->fine_time;
844 headerCWF[ i ].acquisitionTime[0] = (unsigned char) (coarseTime>>24);
858 headerCWF[ i ].acquisitionTime[0] = (unsigned char) (coarseTime>>24);
@@ -847,6 +861,7 int send_waveform_CWF3_light(volatile in
847 headerCWF[ i ].acquisitionTime[3] = (unsigned char) (coarseTime);
861 headerCWF[ i ].acquisitionTime[3] = (unsigned char) (coarseTime);
848 headerCWF[ i ].acquisitionTime[4] = (unsigned char) (fineTime>>8);
862 headerCWF[ i ].acquisitionTime[4] = (unsigned char) (fineTime>>8);
849 headerCWF[ i ].acquisitionTime[5] = (unsigned char) (fineTime);
863 headerCWF[ i ].acquisitionTime[5] = (unsigned char) (fineTime);
864 #endif
850 headerCWF[ i ].time[0] = (unsigned char) (coarseTime>>24);
865 headerCWF[ i ].time[0] = (unsigned char) (coarseTime>>24);
851 headerCWF[ i ].time[1] = (unsigned char) (coarseTime>>16);
866 headerCWF[ i ].time[1] = (unsigned char) (coarseTime>>16);
852 headerCWF[ i ].time[2] = (unsigned char) (coarseTime>>8);
867 headerCWF[ i ].time[2] = (unsigned char) (coarseTime>>8);
@@ -865,6 +880,50 int send_waveform_CWF3_light(volatile in
865 return ret;
880 return ret;
866 }
881 }
867
882
883 void compute_acquisition_time( unsigned int *coarseTime, unsigned int *fineTime, unsigned int sid, unsigned char pa_lfr_pkt_nr )
884 {
885 unsigned long long int acquisitionTimeAsLong;
886 unsigned char acquisitionTime[6];
887 float deltaT = 0.;
888
889 acquisitionTime[0] = (unsigned char) ( *coarseTime >> 8 );
890 acquisitionTime[1] = (unsigned char) ( *coarseTime );
891 acquisitionTime[2] = (unsigned char) ( *coarseTime >> 24 );
892 acquisitionTime[3] = (unsigned char) ( *coarseTime >> 16 );
893 acquisitionTime[4] = (unsigned char) ( *fineTime >> 24 );
894 acquisitionTime[5] = (unsigned char) ( *fineTime >> 16 );
895
896 acquisitionTimeAsLong = ( (unsigned long long int) acquisitionTime[0] << 40 )
897 + ( (unsigned long long int) acquisitionTime[1] << 32 )
898 + ( acquisitionTime[2] << 24 )
899 + ( acquisitionTime[3] << 16 )
900 + ( acquisitionTime[4] << 8 )
901 + ( acquisitionTime[5] );
902
903 switch( sid )
904 {
905 case SID_NORM_SWF_F0:
906 deltaT = ( (float ) (pa_lfr_pkt_nr) ) * BLK_NR_304 * 65536. / 24576. ;
907 break;
908
909 case SID_NORM_SWF_F1:
910 deltaT = ( (float ) (pa_lfr_pkt_nr) ) * BLK_NR_304 * 65536. / 4096. ;
911 break;
912
913 case SID_NORM_SWF_F2:
914 deltaT = ( (float ) (pa_lfr_pkt_nr) ) * BLK_NR_304 * 65536. / 256. ;
915 break;
916
917 default:
918 deltaT = 0.;
919 break;
920 }
921
922 acquisitionTimeAsLong = acquisitionTimeAsLong + (unsigned long long int) deltaT;
923
924 *coarseTime = (unsigned int) (acquisitionTimeAsLong >> 16);
925 *fineTime = (unsigned int) (acquisitionTimeAsLong & 0xffff);
926 }
868
927
869 //**************
928 //**************
870 // wfp registers
929 // wfp registers
@@ -1066,18 +1125,28 void reset_waveform_picker_regs()
1066 waveform_picker_regs->addr_data_f2 = current_ring_node_f2->buffer_address; // 0x10
1125 waveform_picker_regs->addr_data_f2 = current_ring_node_f2->buffer_address; // 0x10
1067 waveform_picker_regs->addr_data_f3 = (int) (wf_cont_f3_a); // 0x14
1126 waveform_picker_regs->addr_data_f3 = (int) (wf_cont_f3_a); // 0x14
1068 waveform_picker_regs->status = 0x00; // 0x18
1127 waveform_picker_regs->status = 0x00; // 0x18
1069 // waveform_picker_regs->delta_snapshot = 0x12800; // 0x1c 296 * 256 = 75776
1128 //
1070 waveform_picker_regs->delta_snapshot = 0x1000; // 0x1c 16 * 256 = 4096
1129 // waveform_picker_regs->delta_snapshot = 0x1000; // 0x1c *** 4096 = 16 * 256
1071 //waveform_picker_regs->delta_snapshot = 0x2000; // 0x1c 32 * 256 = 8192
1130 // waveform_picker_regs->delta_f0 = 0xc0b; // 0x20 *** 3083 = 4096 - 1013
1072 waveform_picker_regs->delta_f0 = 0xbf5; // 0x20 *** 1013
1131 // waveform_picker_regs->delta_f0_2 = 0x7; // 0x24 *** 7 [7 bits]
1132 // waveform_picker_regs->delta_f1 = 0xc40; // 0x28 *** 3136 = 4096 - 960
1133 // waveform_picker_regs->delta_f2 = 0xc00; // 0x2c *** 3072 = 12 * 256
1134 //
1135 waveform_picker_regs->delta_snapshot = 0x1000; // 0x1c *** 4096 = 16 * 256
1136 waveform_picker_regs->delta_f0 = 0x1; // 0x20 ***
1073 waveform_picker_regs->delta_f0_2 = 0x7; // 0x24 *** 7 [7 bits]
1137 waveform_picker_regs->delta_f0_2 = 0x7; // 0x24 *** 7 [7 bits]
1074 waveform_picker_regs->delta_f1 = 0xbc0; // 0x28 *** 960
1138 waveform_picker_regs->delta_f1 = 0x1; // 0x28 ***
1075 // waveform_picker_regs->delta_f2 = 0x12200; // 0x2c *** 290 * 256 = 74240
1139 waveform_picker_regs->delta_f2 = 0x1; // 0x2c ***
1076 waveform_picker_regs->delta_f2 = 0xc00; // 0x2c *** 12 * 256 = 3072
1140 // 2048
1077 waveform_picker_regs->nb_data_by_buffer = 0x7ff; // 0x30 *** 2048 -1 => nb samples -1
1141 // waveform_picker_regs->nb_data_by_buffer = 0x7ff; // 0x30 *** 2048 -1 => nb samples -1
1078 waveform_picker_regs->snapshot_param = 0x800; // 0x34 *** 2048 => nb samples
1142 // waveform_picker_regs->snapshot_param = 0x800; // 0x34 *** 2048 => nb samples
1143 // waveform_picker_regs->start_date = 0x00; // 0x38
1144 // waveform_picker_regs->nb_word_in_buffer = 0x1802; // 0x3c *** 2048 * 3 + 2 = 6146
1145 // 2352 = 7 * 336
1146 waveform_picker_regs->nb_data_by_buffer = 0x92f; // 0x30 *** 2352 - 1 => nb samples -1
1147 waveform_picker_regs->snapshot_param = 0x930; // 0x34 *** 2352 => nb samples
1079 waveform_picker_regs->start_date = 0x00; // 0x38
1148 waveform_picker_regs->start_date = 0x00; // 0x38
1080 waveform_picker_regs->nb_word_in_buffer = 0x1802; // 0x3c *** 2048 * 3 + 2 = 6146
1149 waveform_picker_regs->nb_word_in_buffer = 0x1b92; // 0x3c *** 2352 * 3 + 2 = 7058
1081 }
1150 }
1082 #else
1151 #else
1083 void reset_waveform_picker_regs()
1152 void reset_waveform_picker_regs()
General Comments 0
You need to be logged in to leave comments. Login now