##// END OF EJS Templates
hg remove src/TC_handler_TEST.c
paul@pc-solar1.lab-lpp.local -
r24:013e82343013 default
parent child
Show More
1 NO CONTENT: modified file, binary diff hidden
NO CONTENT: modified file, binary diff hidden
@@ -1,51 +1,51
1 TEMPLATE = app
1 TEMPLATE = app
2 # CONFIG += console v8 sim
2 # CONFIG += console v8 sim
3 # CONFIG options = verbose *** cpu_usage_report *** gsa
3 # CONFIG options = verbose *** cpu_usage_report *** gsa
4 CONFIG += console verbose
4 CONFIG += console verbose
5 CONFIG -= qt
5 CONFIG -= qt
6
6
7 include(./sparc.pri)
7 include(./sparc.pri)
8
8
9 # flight software version
9 # flight software version
10 SWVERSION=-0-5
10 SWVERSION=-0-6
11 DEFINES += SW_VERSION_N1=0
11 DEFINES += SW_VERSION_N1=0
12 DEFINES += SW_VERSION_N2=0
12 DEFINES += SW_VERSION_N2=0
13 DEFINES += SW_VERSION_N3=0
13 DEFINES += SW_VERSION_N3=0
14 DEFINES += SW_VERSION_N4=5
14 DEFINES += SW_VERSION_N4=6
15
15
16 contains( CONFIG, verbose ) {
16 contains( CONFIG, verbose ) {
17 DEFINES += PRINT_MESSAGES_ON_CONSOLE
17 DEFINES += PRINT_MESSAGES_ON_CONSOLE
18 }
18 }
19
19
20 contains( CONFIG, cpu_usage_report ) {
20 contains( CONFIG, cpu_usage_report ) {
21 DEFINES += PRINT_TASK_STATISTICS
21 DEFINES += PRINT_TASK_STATISTICS
22 }
22 }
23
23
24 TARGET = fsw
24 TARGET = fsw
25 contains( CONFIG, gsa ) {
25 contains( CONFIG, gsa ) {
26 DEFINES += GSA
26 DEFINES += GSA
27 TARGET = fsw-gsa
27 TARGET = fsw-gsa
28 }
28 }
29
29
30 INCLUDEPATH += \
30 INCLUDEPATH += \
31 ../src \
31 ../src \
32 ../header
32 ../header
33
33
34 SOURCES += \
34 SOURCES += \
35 ../src/wf_handler.c \
35 ../src/wf_handler.c \
36 ../src/tc_handler.c \
36 ../src/tc_handler.c \
37 ../src/fsw_processing.c \
37 ../src/fsw_processing.c \
38 ../src/fsw_misc.c \
38 ../src/fsw_misc.c \
39 ../src/fsw_init.c \
39 ../src/fsw_init.c \
40 ../src/fsw_globals.c
40 ../src/fsw_globals.c
41
41
42 HEADERS += \
42 HEADERS += \
43 ../header/wf_handler.h \
43 ../header/wf_handler.h \
44 ../header/tc_handler.h \
44 ../header/tc_handler.h \
45 ../header/grlib_regs.h \
45 ../header/grlib_regs.h \
46 ../header/fsw_processing.h \
46 ../header/fsw_processing.h \
47 ../header/fsw_params.h \
47 ../header/fsw_params.h \
48 ../header/fsw_misc.h \
48 ../header/fsw_misc.h \
49 ../header/fsw_init.h \
49 ../header/fsw_init.h \
50 ../header/ccsds_types.h
50 ../header/ccsds_types.h
51
51
@@ -1,265 +1,265
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 Qt Creator 2.4.1, 2013-06-28T14:26:12. -->
3 <!-- Written by Qt Creator 2.4.1, 2013-07-05T07:07:58. -->
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">0</value>
8 </data>
8 </data>
9 <data>
9 <data>
10 <variable>ProjectExplorer.Project.EditorSettings</variable>
10 <variable>ProjectExplorer.Project.EditorSettings</variable>
11 <valuemap type="QVariantMap">
11 <valuemap type="QVariantMap">
12 <value type="bool" key="EditorConfiguration.AutoIndent">true</value>
12 <value type="bool" key="EditorConfiguration.AutoIndent">true</value>
13 <value type="bool" key="EditorConfiguration.AutoSpacesForTabs">false</value>
13 <value type="bool" key="EditorConfiguration.AutoSpacesForTabs">false</value>
14 <valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.0">
14 <valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.0">
15 <value type="QString" key="language">Cpp</value>
15 <value type="QString" key="language">Cpp</value>
16 <valuemap type="QVariantMap" key="value">
16 <valuemap type="QVariantMap" key="value">
17 <value type="QString" key="CurrentPreferences">CppGlobal</value>
17 <value type="QString" key="CurrentPreferences">CppGlobal</value>
18 </valuemap>
18 </valuemap>
19 </valuemap>
19 </valuemap>
20 <valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.1">
20 <valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.1">
21 <value type="QString" key="language">QmlJS</value>
21 <value type="QString" key="language">QmlJS</value>
22 <valuemap type="QVariantMap" key="value">
22 <valuemap type="QVariantMap" key="value">
23 <value type="QString" key="CurrentPreferences">QmlJSGlobal</value>
23 <value type="QString" key="CurrentPreferences">QmlJSGlobal</value>
24 </valuemap>
24 </valuemap>
25 </valuemap>
25 </valuemap>
26 <value type="int" key="EditorConfiguration.CodeStyle.Count">2</value>
26 <value type="int" key="EditorConfiguration.CodeStyle.Count">2</value>
27 <value type="QByteArray" key="EditorConfiguration.Codec">System</value>
27 <value type="QByteArray" key="EditorConfiguration.Codec">System</value>
28 <value type="bool" key="EditorConfiguration.ConstrainTooltips">false</value>
28 <value type="bool" key="EditorConfiguration.ConstrainTooltips">false</value>
29 <value type="int" key="EditorConfiguration.IndentSize">4</value>
29 <value type="int" key="EditorConfiguration.IndentSize">4</value>
30 <value type="bool" key="EditorConfiguration.MouseNavigation">true</value>
30 <value type="bool" key="EditorConfiguration.MouseNavigation">true</value>
31 <value type="int" key="EditorConfiguration.PaddingMode">1</value>
31 <value type="int" key="EditorConfiguration.PaddingMode">1</value>
32 <value type="bool" key="EditorConfiguration.ScrollWheelZooming">true</value>
32 <value type="bool" key="EditorConfiguration.ScrollWheelZooming">true</value>
33 <value type="int" key="EditorConfiguration.SmartBackspaceBehavior">0</value>
33 <value type="int" key="EditorConfiguration.SmartBackspaceBehavior">0</value>
34 <value type="bool" key="EditorConfiguration.SpacesForTabs">true</value>
34 <value type="bool" key="EditorConfiguration.SpacesForTabs">true</value>
35 <value type="int" key="EditorConfiguration.TabKeyBehavior">0</value>
35 <value type="int" key="EditorConfiguration.TabKeyBehavior">0</value>
36 <value type="int" key="EditorConfiguration.TabSize">8</value>
36 <value type="int" key="EditorConfiguration.TabSize">8</value>
37 <value type="bool" key="EditorConfiguration.UseGlobal">true</value>
37 <value type="bool" key="EditorConfiguration.UseGlobal">true</value>
38 <value type="int" key="EditorConfiguration.Utf8BomBehavior">1</value>
38 <value type="int" key="EditorConfiguration.Utf8BomBehavior">1</value>
39 <value type="bool" key="EditorConfiguration.addFinalNewLine">true</value>
39 <value type="bool" key="EditorConfiguration.addFinalNewLine">true</value>
40 <value type="bool" key="EditorConfiguration.cleanIndentation">true</value>
40 <value type="bool" key="EditorConfiguration.cleanIndentation">true</value>
41 <value type="bool" key="EditorConfiguration.cleanWhitespace">true</value>
41 <value type="bool" key="EditorConfiguration.cleanWhitespace">true</value>
42 <value type="bool" key="EditorConfiguration.inEntireDocument">false</value>
42 <value type="bool" key="EditorConfiguration.inEntireDocument">false</value>
43 </valuemap>
43 </valuemap>
44 </data>
44 </data>
45 <data>
45 <data>
46 <variable>ProjectExplorer.Project.PluginSettings</variable>
46 <variable>ProjectExplorer.Project.PluginSettings</variable>
47 <valuemap type="QVariantMap"/>
47 <valuemap type="QVariantMap"/>
48 </data>
48 </data>
49 <data>
49 <data>
50 <variable>ProjectExplorer.Project.Target.0</variable>
50 <variable>ProjectExplorer.Project.Target.0</variable>
51 <valuemap type="QVariantMap">
51 <valuemap type="QVariantMap">
52 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Desktop</value>
52 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Desktop</value>
53 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Desktop</value>
53 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Desktop</value>
54 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Target.DesktopTarget</value>
54 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Target.DesktopTarget</value>
55 <value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">0</value>
55 <value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">0</value>
56 <value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
56 <value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
57 <value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
57 <value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
58 <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
58 <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
59 <value type="QString" key="ProjectExplorer.BuildCOnfiguration.ToolChain">ProjectExplorer.ToolChain.Gcc:/usr/bin/g++.x86-linux-generic-elf-64bit./usr/bin/gdb</value>
59 <value type="QString" key="ProjectExplorer.BuildCOnfiguration.ToolChain">ProjectExplorer.ToolChain.Gcc:/usr/bin/g++.x86-linux-generic-elf-64bit./usr/bin/gdb</value>
60 <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
60 <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
61 <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
61 <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
62 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
62 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
63 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
63 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
64 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
64 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
65 <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">false</value>
65 <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">false</value>
66 <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibraryAuto">true</value>
66 <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibraryAuto">true</value>
67 <value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
67 <value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
68 <value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
68 <value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
69 </valuemap>
69 </valuemap>
70 <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
70 <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
71 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
71 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
72 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
72 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
73 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
73 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
74 <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
74 <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
75 <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
75 <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
76 <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
76 <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
77 </valuemap>
77 </valuemap>
78 <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
78 <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
79 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
79 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
80 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
80 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
81 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
81 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
82 </valuemap>
82 </valuemap>
83 <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
83 <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
84 <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
84 <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
85 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
85 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
86 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
86 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
87 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
87 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
88 <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
88 <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
89 <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
89 <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
90 <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
90 <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
91 </valuemap>
91 </valuemap>
92 <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
92 <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
93 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
93 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
94 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
94 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
95 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
95 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
96 </valuemap>
96 </valuemap>
97 <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
97 <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
98 <value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
98 <value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
99 <valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
99 <valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
100 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Qt 4.8.2 in PATH (System) Release</value>
100 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Qt 4.8.2 in PATH (System) Release</value>
101 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
101 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
102 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
102 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
103 <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
103 <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
104 <value type="QString" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildDirectory">/opt/DEV_PLE/FSW-qt</value>
104 <value type="QString" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildDirectory">/opt/DEV_PLE/FSW-qt</value>
105 <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.QtVersionId">1</value>
105 <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.QtVersionId">1</value>
106 <value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">false</value>
106 <value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">false</value>
107 </valuemap>
107 </valuemap>
108 <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.1">
108 <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.1">
109 <value type="QString" key="ProjectExplorer.BuildCOnfiguration.ToolChain">ProjectExplorer.ToolChain.Gcc:/usr/bin/g++.x86-linux-generic-elf-64bit./usr/bin/gdb</value>
109 <value type="QString" key="ProjectExplorer.BuildCOnfiguration.ToolChain">ProjectExplorer.ToolChain.Gcc:/usr/bin/g++.x86-linux-generic-elf-64bit./usr/bin/gdb</value>
110 <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
110 <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
111 <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
111 <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
112 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
112 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
113 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
113 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
114 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
114 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
115 <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">false</value>
115 <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">false</value>
116 <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibraryAuto">true</value>
116 <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibraryAuto">true</value>
117 <value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
117 <value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
118 <value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
118 <value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
119 </valuemap>
119 </valuemap>
120 <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
120 <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
121 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
121 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
122 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
122 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
123 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
123 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
124 <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
124 <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
125 <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
125 <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
126 <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
126 <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
127 </valuemap>
127 </valuemap>
128 <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
128 <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
129 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
129 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
130 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
130 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
131 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
131 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
132 </valuemap>
132 </valuemap>
133 <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
133 <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
134 <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
134 <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
135 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
135 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
136 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
136 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
137 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
137 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
138 <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
138 <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
139 <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
139 <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
140 <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
140 <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
141 </valuemap>
141 </valuemap>
142 <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
142 <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
143 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
143 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
144 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
144 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
145 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
145 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
146 </valuemap>
146 </valuemap>
147 <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
147 <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
148 <value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
148 <value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
149 <valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
149 <valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
150 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Qt 4.8.2 in PATH (System) Debug</value>
150 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Qt 4.8.2 in PATH (System) Debug</value>
151 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
151 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
152 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
152 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
153 <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value>
153 <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value>
154 <value type="QString" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildDirectory">/opt/DEV_PLE/FSW-qt</value>
154 <value type="QString" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildDirectory">/opt/DEV_PLE/FSW-qt</value>
155 <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.QtVersionId">1</value>
155 <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.QtVersionId">1</value>
156 <value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">false</value>
156 <value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">false</value>
157 </valuemap>
157 </valuemap>
158 <value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">2</value>
158 <value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">2</value>
159 <valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
159 <valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
160 <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
160 <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
161 <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
161 <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
162 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy</value>
162 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy</value>
163 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
163 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
164 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
164 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
165 </valuemap>
165 </valuemap>
166 <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
166 <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
167 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">No deployment</value>
167 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">No deployment</value>
168 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
168 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
169 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
169 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
170 </valuemap>
170 </valuemap>
171 <value type="int" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
171 <value type="int" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
172 <valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
172 <valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
173 <value type="bool" key="Analyzer.Project.UseGlobal">true</value>
173 <value type="bool" key="Analyzer.Project.UseGlobal">true</value>
174 <value type="bool" key="Analyzer.Project.UseGlobal">true</value>
174 <value type="bool" key="Analyzer.Project.UseGlobal">true</value>
175 <valuelist type="QVariantList" key="Analyzer.Valgrind.AddedSuppressionFiles"/>
175 <valuelist type="QVariantList" key="Analyzer.Valgrind.AddedSuppressionFiles"/>
176 <valuelist type="QVariantList" key="Analyzer.Valgrind.AddedSuppressionFiles"/>
176 <valuelist type="QVariantList" key="Analyzer.Valgrind.AddedSuppressionFiles"/>
177 <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectBusEvents">false</value>
177 <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectBusEvents">false</value>
178 <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectBusEvents">false</value>
178 <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectBusEvents">false</value>
179 <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectSystime">false</value>
179 <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectSystime">false</value>
180 <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectSystime">false</value>
180 <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectSystime">false</value>
181 <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableBranchSim">false</value>
181 <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableBranchSim">false</value>
182 <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableBranchSim">false</value>
182 <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableBranchSim">false</value>
183 <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableCacheSim">false</value>
183 <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableCacheSim">false</value>
184 <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableCacheSim">false</value>
184 <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableCacheSim">false</value>
185 <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableEventToolTips">true</value>
185 <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableEventToolTips">true</value>
186 <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableEventToolTips">true</value>
186 <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableEventToolTips">true</value>
187 <value type="double" key="Analyzer.Valgrind.Callgrind.MinimumCostRatio">0.01</value>
187 <value type="double" key="Analyzer.Valgrind.Callgrind.MinimumCostRatio">0.01</value>
188 <value type="double" key="Analyzer.Valgrind.Callgrind.MinimumCostRatio">0.01</value>
188 <value type="double" key="Analyzer.Valgrind.Callgrind.MinimumCostRatio">0.01</value>
189 <value type="double" key="Analyzer.Valgrind.Callgrind.VisualisationMinimumCostRatio">10</value>
189 <value type="double" key="Analyzer.Valgrind.Callgrind.VisualisationMinimumCostRatio">10</value>
190 <value type="double" key="Analyzer.Valgrind.Callgrind.VisualisationMinimumCostRatio">10</value>
190 <value type="double" key="Analyzer.Valgrind.Callgrind.VisualisationMinimumCostRatio">10</value>
191 <value type="bool" key="Analyzer.Valgrind.FilterExternalIssues">true</value>
191 <value type="bool" key="Analyzer.Valgrind.FilterExternalIssues">true</value>
192 <value type="bool" key="Analyzer.Valgrind.FilterExternalIssues">true</value>
192 <value type="bool" key="Analyzer.Valgrind.FilterExternalIssues">true</value>
193 <value type="int" key="Analyzer.Valgrind.NumCallers">25</value>
193 <value type="int" key="Analyzer.Valgrind.NumCallers">25</value>
194 <value type="int" key="Analyzer.Valgrind.NumCallers">25</value>
194 <value type="int" key="Analyzer.Valgrind.NumCallers">25</value>
195 <valuelist type="QVariantList" key="Analyzer.Valgrind.RemovedSuppressionFiles"/>
195 <valuelist type="QVariantList" key="Analyzer.Valgrind.RemovedSuppressionFiles"/>
196 <valuelist type="QVariantList" key="Analyzer.Valgrind.RemovedSuppressionFiles"/>
196 <valuelist type="QVariantList" key="Analyzer.Valgrind.RemovedSuppressionFiles"/>
197 <value type="bool" key="Analyzer.Valgrind.TrackOrigins">true</value>
197 <value type="bool" key="Analyzer.Valgrind.TrackOrigins">true</value>
198 <value type="bool" key="Analyzer.Valgrind.TrackOrigins">true</value>
198 <value type="bool" key="Analyzer.Valgrind.TrackOrigins">true</value>
199 <value type="QString" key="Analyzer.Valgrind.ValgrindExecutable">valgrind</value>
199 <value type="QString" key="Analyzer.Valgrind.ValgrindExecutable">valgrind</value>
200 <value type="QString" key="Analyzer.Valgrind.ValgrindExecutable">valgrind</value>
200 <value type="QString" key="Analyzer.Valgrind.ValgrindExecutable">valgrind</value>
201 <valuelist type="QVariantList" key="Analyzer.Valgrind.VisibleErrorKinds">
201 <valuelist type="QVariantList" key="Analyzer.Valgrind.VisibleErrorKinds">
202 <value type="int">0</value>
202 <value type="int">0</value>
203 <value type="int">1</value>
203 <value type="int">1</value>
204 <value type="int">2</value>
204 <value type="int">2</value>
205 <value type="int">3</value>
205 <value type="int">3</value>
206 <value type="int">4</value>
206 <value type="int">4</value>
207 <value type="int">5</value>
207 <value type="int">5</value>
208 <value type="int">6</value>
208 <value type="int">6</value>
209 <value type="int">7</value>
209 <value type="int">7</value>
210 <value type="int">8</value>
210 <value type="int">8</value>
211 <value type="int">9</value>
211 <value type="int">9</value>
212 <value type="int">10</value>
212 <value type="int">10</value>
213 <value type="int">11</value>
213 <value type="int">11</value>
214 <value type="int">12</value>
214 <value type="int">12</value>
215 <value type="int">13</value>
215 <value type="int">13</value>
216 <value type="int">14</value>
216 <value type="int">14</value>
217 </valuelist>
217 </valuelist>
218 <valuelist type="QVariantList" key="Analyzer.Valgrind.VisibleErrorKinds">
218 <valuelist type="QVariantList" key="Analyzer.Valgrind.VisibleErrorKinds">
219 <value type="int">0</value>
219 <value type="int">0</value>
220 <value type="int">1</value>
220 <value type="int">1</value>
221 <value type="int">2</value>
221 <value type="int">2</value>
222 <value type="int">3</value>
222 <value type="int">3</value>
223 <value type="int">4</value>
223 <value type="int">4</value>
224 <value type="int">5</value>
224 <value type="int">5</value>
225 <value type="int">6</value>
225 <value type="int">6</value>
226 <value type="int">7</value>
226 <value type="int">7</value>
227 <value type="int">8</value>
227 <value type="int">8</value>
228 <value type="int">9</value>
228 <value type="int">9</value>
229 <value type="int">10</value>
229 <value type="int">10</value>
230 <value type="int">11</value>
230 <value type="int">11</value>
231 <value type="int">12</value>
231 <value type="int">12</value>
232 <value type="int">13</value>
232 <value type="int">13</value>
233 <value type="int">14</value>
233 <value type="int">14</value>
234 </valuelist>
234 </valuelist>
235 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">fsw-qt</value>
235 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">fsw-qt</value>
236 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
236 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
237 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration</value>
237 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration</value>
238 <value type="int" key="Qt4ProjectManager.Qt4RunConfiguration.BaseEnvironmentBase">2</value>
238 <value type="int" key="Qt4ProjectManager.Qt4RunConfiguration.BaseEnvironmentBase">2</value>
239 <value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.CommandLineArguments"></value>
239 <value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.CommandLineArguments"></value>
240 <value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.ProFile">fsw-qt.pro</value>
240 <value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.ProFile">fsw-qt.pro</value>
241 <value type="bool" key="Qt4ProjectManager.Qt4RunConfiguration.UseDyldImageSuffix">false</value>
241 <value type="bool" key="Qt4ProjectManager.Qt4RunConfiguration.UseDyldImageSuffix">false</value>
242 <value type="bool" key="Qt4ProjectManager.Qt4RunConfiguration.UseTerminal">true</value>
242 <value type="bool" key="Qt4ProjectManager.Qt4RunConfiguration.UseTerminal">true</value>
243 <valuelist type="QVariantList" key="Qt4ProjectManager.Qt4RunConfiguration.UserEnvironmentChanges"/>
243 <valuelist type="QVariantList" key="Qt4ProjectManager.Qt4RunConfiguration.UserEnvironmentChanges"/>
244 <value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.UserWorkingDirectory"></value>
244 <value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.UserWorkingDirectory"></value>
245 <value type="uint" key="RunConfiguration.QmlDebugServerPort">3768</value>
245 <value type="uint" key="RunConfiguration.QmlDebugServerPort">3768</value>
246 <value type="bool" key="RunConfiguration.UseCppDebugger">true</value>
246 <value type="bool" key="RunConfiguration.UseCppDebugger">true</value>
247 <value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
247 <value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
248 <value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">false</value>
248 <value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">false</value>
249 </valuemap>
249 </valuemap>
250 <value type="int" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
250 <value type="int" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
251 </valuemap>
251 </valuemap>
252 </data>
252 </data>
253 <data>
253 <data>
254 <variable>ProjectExplorer.Project.TargetCount</variable>
254 <variable>ProjectExplorer.Project.TargetCount</variable>
255 <value type="int">1</value>
255 <value type="int">1</value>
256 </data>
256 </data>
257 <data>
257 <data>
258 <variable>ProjectExplorer.Project.Updater.EnvironmentId</variable>
258 <variable>ProjectExplorer.Project.Updater.EnvironmentId</variable>
259 <value type="QString">{2e58a81f-9962-4bba-ae6b-760177f0656c}</value>
259 <value type="QString">{2e58a81f-9962-4bba-ae6b-760177f0656c}</value>
260 </data>
260 </data>
261 <data>
261 <data>
262 <variable>ProjectExplorer.Project.Updater.FileVersion</variable>
262 <variable>ProjectExplorer.Project.Updater.FileVersion</variable>
263 <value type="int">10</value>
263 <value type="int">10</value>
264 </data>
264 </data>
265 </qtcreator>
265 </qtcreator>
@@ -1,664 +1,683
1 #include <wf_handler.h>
1 #include <wf_handler.h>
2
2
3 rtems_isr waveforms_isr( rtems_vector_number vector )
3 rtems_isr waveforms_isr( rtems_vector_number vector )
4 {
4 {
5 unsigned char lfrMode;
5 unsigned char lfrMode;
6 lfrMode = (housekeeping_packet.lfr_status_word[0] & 0xf0) >> 4;
6 lfrMode = (housekeeping_packet.lfr_status_word[0] & 0xf0) >> 4;
7
7
8 switch(lfrMode)
8 switch(lfrMode)
9 {
9 {
10 //********
10 //********
11 // STANDBY
11 // STANDBY
12 case(LFR_MODE_STANDBY):
12 case(LFR_MODE_STANDBY):
13 break;
13 break;
14
14
15 //******
15 //******
16 // NORMAL
16 // NORMAL
17 case(LFR_MODE_NORMAL):
17 case(LFR_MODE_NORMAL):
18 #ifdef GSA
18 #ifdef GSA
19 PRINTF("in waveform_isr *** unexpected waveform picker interruption\n")
19 PRINTF("in waveform_isr *** unexpected waveform picker interruption\n")
20 #else
20 #else
21 if ( (waveform_picker_regs->burst_enable & 0x7) == 0x0 ){// if no channel is enable
21 if ( (waveform_picker_regs->burst_enable & 0x7) == 0x0 ){// if no channel is enable
22 if (rtems_event_send( Task_id[TASKID_DUMB], RTEMS_EVENT_2 ) != RTEMS_SUCCESSFUL) {
22 if (rtems_event_send( Task_id[TASKID_DUMB], RTEMS_EVENT_2 ) != RTEMS_SUCCESSFUL) {
23 PRINTF("in waveform_isr *** Error sending event to DUMB\n");
23 PRINTF("in waveform_isr *** Error sending event to DUMB\n");
24 }
24 }
25 }
25 }
26 else {
26 else {
27 if ( (waveform_picker_regs->status & 0x7) == 0x7 ){ // f2 f1 and f0 are full
27 if ( (waveform_picker_regs->status & 0x7) == 0x7 ){ // f2 f1 and f0 are full
28 waveform_picker_regs->burst_enable = 0x00;
28 waveform_picker_regs->burst_enable = 0x00;
29 if (rtems_event_send( Task_id[TASKID_WFRM], RTEMS_EVENT_MODE_NORMAL ) != RTEMS_SUCCESSFUL) {
29 if (rtems_event_send( Task_id[TASKID_WFRM], RTEMS_EVENT_MODE_NORMAL ) != RTEMS_SUCCESSFUL) {
30 if (rtems_event_send( Task_id[TASKID_DUMB], RTEMS_EVENT_2 ) != RTEMS_SUCCESSFUL) {
30 if (rtems_event_send( Task_id[TASKID_DUMB], RTEMS_EVENT_2 ) != RTEMS_SUCCESSFUL) {
31 PRINTF("in waveform_isr *** Error sending event to DUMB\n");
31 PRINTF("in waveform_isr *** Error sending event to DUMB\n");
32 }
32 }
33 }
33 }
34 }
34 }
35 }
35 }
36 #endif
36 #endif
37 break;
37 break;
38
38
39 //******
39 //******
40 // BURST
40 // BURST
41 case(LFR_MODE_BURST):
41 case(LFR_MODE_BURST):
42 #ifdef GSA
42 #ifdef GSA
43 PRINTF("in waveform_isr *** unexpected waveform picker interruption\n")
43 PRINTF("in waveform_isr *** unexpected waveform picker interruption\n")
44 #else
44 #else
45 if (waveform_picker_regs->burst_enable == 0x44) {
45 if (waveform_picker_regs->burst_enable == 0x44) {
46 if (waveform_picker_regs->addr_data_f2 == (int) wf_snap_f2) {
46 if (waveform_picker_regs->addr_data_f2 == (int) wf_snap_f2) {
47 waveform_picker_regs->addr_data_f2 = (int) (wf_snap_f2_bis);
47 waveform_picker_regs->addr_data_f2 = (int) (wf_snap_f2_bis);
48 }
48 }
49 else {
49 else {
50 waveform_picker_regs->addr_data_f2 = (int) (wf_snap_f2);
50 waveform_picker_regs->addr_data_f2 = (int) (wf_snap_f2);
51 }
51 }
52 if (rtems_event_send( Task_id[TASKID_WFRM], RTEMS_EVENT_MODE_BURST ) != RTEMS_SUCCESSFUL) {
52 if (rtems_event_send( Task_id[TASKID_WFRM], RTEMS_EVENT_MODE_BURST ) != RTEMS_SUCCESSFUL) {
53 PRINTF("in waveforms_isr *** Error sending event to WFRM\n")
53 PRINTF("in waveforms_isr *** Error sending event to WFRM\n")
54 rtems_event_send( Task_id[TASKID_DUMB], RTEMS_EVENT_2 );
54 rtems_event_send( Task_id[TASKID_DUMB], RTEMS_EVENT_2 );
55 }
55 }
56 }
56 }
57 waveform_picker_regs->status = 0x00;
57 waveform_picker_regs->status = 0x00;
58 #endif
58 #endif
59 break;
59 break;
60
60
61 //*****
61 //*****
62 // SBM1
62 // SBM1
63 case(LFR_MODE_SBM1):
63 case(LFR_MODE_SBM1):
64 #ifdef GSA
64 #ifdef GSA
65 PRINTF("in waveform_isr *** unexpected waveform picker interruption\n")
65 PRINTF("in waveform_isr *** unexpected waveform picker interruption\n")
66 #else
66 #else
67 if ((waveform_picker_regs->status & 0x02) == 0x02){ // check the f1 full bit
67 if ((waveform_picker_regs->status & 0x02) == 0x02){ // check the f1 full bit
68 // (1) change the receiving buffer for the waveform picker
68 // (1) change the receiving buffer for the waveform picker
69 if (waveform_picker_regs->addr_data_f1 == (int) wf_snap_f1) {
69 if (waveform_picker_regs->addr_data_f1 == (int) wf_snap_f1) {
70 waveform_picker_regs->addr_data_f1 = (int) (wf_snap_f1_bis);
70 waveform_picker_regs->addr_data_f1 = (int) (wf_snap_f1_bis);
71 }
71 }
72 else {
72 else {
73 waveform_picker_regs->addr_data_f1 = (int) (wf_snap_f1);
73 waveform_picker_regs->addr_data_f1 = (int) (wf_snap_f1);
74 }
74 }
75 // (2) send an event for the waveforms transmission
75 // (2) send an event for the waveforms transmission
76 if (rtems_event_send( Task_id[TASKID_WFRM], RTEMS_EVENT_MODE_SBM1 ) != RTEMS_SUCCESSFUL) {
76 if (rtems_event_send( Task_id[TASKID_WFRM], RTEMS_EVENT_MODE_SBM1 ) != RTEMS_SUCCESSFUL) {
77 PRINTF("in waveforms_isr *** Error sending event to WFRM\n")
77 PRINTF("in waveforms_isr *** Error sending event to WFRM\n")
78 rtems_event_send( Task_id[TASKID_DUMB], RTEMS_EVENT_2 );
78 rtems_event_send( Task_id[TASKID_DUMB], RTEMS_EVENT_2 );
79 }
79 }
80 waveform_picker_regs->status = waveform_picker_regs->status & 0x000d; // reset the f1 full bit to 0
80 waveform_picker_regs->status = waveform_picker_regs->status & 0x000d; // reset the f1 full bit to 0
81 }
81 }
82 if ( ( (waveform_picker_regs->status & 0x05) == 0x05 ) ) { // [0101] f3 f2 f1 f0, check the f2 and f0 full bit
82 if ( ( (waveform_picker_regs->status & 0x05) == 0x05 ) ) { // [0101] f3 f2 f1 f0, check the f2 and f0 full bit
83 if (rtems_event_send( Task_id[TASKID_WFRM], RTEMS_EVENT_MODE_NORMAL ) != RTEMS_SUCCESSFUL) {
83 if (rtems_event_send( Task_id[TASKID_WFRM], RTEMS_EVENT_MODE_NORMAL ) != RTEMS_SUCCESSFUL) {
84 PRINTF("in waveforms_isr *** Error sending event to WFRM\n")
84 PRINTF("in waveforms_isr *** Error sending event to WFRM\n")
85 rtems_event_send( Task_id[TASKID_DUMB], RTEMS_EVENT_2 );
85 rtems_event_send( Task_id[TASKID_DUMB], RTEMS_EVENT_2 );
86 }
86 }
87 waveform_picker_regs->burst_enable = waveform_picker_regs->burst_enable | 0x05; // [0101] // enable f2 and f0
87 waveform_picker_regs->burst_enable = waveform_picker_regs->burst_enable | 0x05; // [0101] // enable f2 and f0
88 waveform_picker_regs->status = waveform_picker_regs->status & 0xfffffaaa; // set to 0 the bits related to f2 and f0
88 waveform_picker_regs->status = waveform_picker_regs->status & 0xfffffaaa; // set to 0 the bits related to f2 and f0
89 }
89 }
90 #endif
90 #endif
91 break;
91 break;
92
92
93 //*****
93 //*****
94 // SBM2
94 // SBM2
95 case(LFR_MODE_SBM2):
95 case(LFR_MODE_SBM2):
96 #ifdef GSA
96 #ifdef GSA
97 PRINTF("in waveform_isr *** unexpected waveform picker interruption\n")
97 PRINTF("in waveform_isr *** unexpected waveform picker interruption\n")
98 #else
98 #else
99 if ((waveform_picker_regs->status & 0x04) == 0x04){ // check the f2 full bit
99 if ((waveform_picker_regs->status & 0x04) == 0x04){ // check the f2 full bit
100 // (1) change the receiving buffer for the waveform picker
100 // (1) change the receiving buffer for the waveform picker
101 if (waveform_picker_regs->addr_data_f2 == (int) wf_snap_f2) {
101 if (waveform_picker_regs->addr_data_f2 == (int) wf_snap_f2) {
102 waveform_picker_regs->addr_data_f2 = (int) (wf_snap_f2_bis);
102 waveform_picker_regs->addr_data_f2 = (int) (wf_snap_f2_bis);
103 }
103 }
104 else {
104 else {
105 waveform_picker_regs->addr_data_f2 = (int) (wf_snap_f2);
105 waveform_picker_regs->addr_data_f2 = (int) (wf_snap_f2);
106 }
106 }
107 // (2) send an event for the waveforms transmission
107 // (2) send an event for the waveforms transmission
108 if (rtems_event_send( Task_id[TASKID_WFRM], RTEMS_EVENT_MODE_SBM2 ) != RTEMS_SUCCESSFUL) {
108 if (rtems_event_send( Task_id[TASKID_WFRM], RTEMS_EVENT_MODE_SBM2 ) != RTEMS_SUCCESSFUL) {
109 PRINTF("in waveforms_isr *** Error sending event to WFRM\n")
109 PRINTF("in waveforms_isr *** Error sending event to WFRM\n")
110 rtems_event_send( Task_id[TASKID_DUMB], RTEMS_EVENT_2 );
110 rtems_event_send( Task_id[TASKID_DUMB], RTEMS_EVENT_2 );
111 }
111 }
112 waveform_picker_regs->status = waveform_picker_regs->status & 0xfffffbbb; // [1011]
112 waveform_picker_regs->status = waveform_picker_regs->status & 0xfffffbbb; // [1011]
113 }
113 }
114 if ( ( (waveform_picker_regs->status & 0x03) == 0x03 ) ) { // [0011] f3 f2 f1 f0, check the f2 and f0 full bit
114 if ( ( (waveform_picker_regs->status & 0x03) == 0x03 ) ) { // [0011] f3 f2 f1 f0, check the f2 and f0 full bit
115 if (rtems_event_send( Task_id[TASKID_WFRM], RTEMS_EVENT_MODE_NORMAL ) != RTEMS_SUCCESSFUL) {
115 if (rtems_event_send( Task_id[TASKID_WFRM], RTEMS_EVENT_MODE_NORMAL ) != RTEMS_SUCCESSFUL) {
116 PRINTF("in waveforms_isr *** Error sending event to WFRM\n")
116 PRINTF("in waveforms_isr *** Error sending event to WFRM\n")
117 rtems_event_send( Task_id[TASKID_DUMB], RTEMS_EVENT_2 );
117 rtems_event_send( Task_id[TASKID_DUMB], RTEMS_EVENT_2 );
118 }
118 }
119 waveform_picker_regs->burst_enable = waveform_picker_regs->burst_enable | 0x03; // [0011] // enable f2 and f0
119 waveform_picker_regs->burst_enable = waveform_picker_regs->burst_enable | 0x03; // [0011] // enable f2 and f0
120 waveform_picker_regs->status = waveform_picker_regs->status & 0xfffffccc; // set to 0 the bits related to f1 and f0
120 waveform_picker_regs->status = waveform_picker_regs->status & 0xfffffccc; // set to 0 the bits related to f1 and f0
121 }
121 }
122 #endif
122 #endif
123 break;
123 break;
124
124
125 //********
125 //********
126 // DEFAULT
126 // DEFAULT
127 default:
127 default:
128 break;
128 break;
129 }
129 }
130 }
130 }
131
131
132 rtems_isr waveforms_simulator_isr( rtems_vector_number vector )
132 rtems_isr waveforms_simulator_isr( rtems_vector_number vector )
133 {
133 {
134 unsigned char lfrMode;
134 unsigned char lfrMode;
135 lfrMode = (housekeeping_packet.lfr_status_word[0] & 0xf0) >> 4;
135 lfrMode = (housekeeping_packet.lfr_status_word[0] & 0xf0) >> 4;
136
136
137 switch(lfrMode)
137 switch(lfrMode)
138 {
138 {
139 //********
139 //********
140 // STANDBY
140 // STANDBY
141 case(LFR_MODE_STANDBY):
141 case(LFR_MODE_STANDBY):
142 break;
142 break;
143
143
144 //******
144 //******
145 // NORMAL
145 // NORMAL
146 case(LFR_MODE_NORMAL):
146 case(LFR_MODE_NORMAL):
147 if (rtems_event_send( Task_id[TASKID_WFRM], RTEMS_EVENT_MODE_NORMAL ) != RTEMS_SUCCESSFUL) {
147 if (rtems_event_send( Task_id[TASKID_WFRM], RTEMS_EVENT_MODE_NORMAL ) != RTEMS_SUCCESSFUL) {
148 PRINTF("ERR *** in waveforms_isr *** error sending event to WFRM\n");
148 PRINTF("ERR *** in waveforms_isr *** error sending event to WFRM\n");
149 }
149 }
150 break;
150 break;
151
151
152 //******
152 //******
153 // BURST
153 // BURST
154 case(LFR_MODE_BURST):
154 case(LFR_MODE_BURST):
155 break;
155 break;
156
156
157 //*****
157 //*****
158 // SBM1
158 // SBM1
159 case(LFR_MODE_SBM1):
159 case(LFR_MODE_SBM1):
160 break;
160 break;
161
161
162 //*****
162 //*****
163 // SBM2
163 // SBM2
164 case(LFR_MODE_SBM2):
164 case(LFR_MODE_SBM2):
165 break;
165 break;
166
166
167 //********
167 //********
168 // DEFAULT
168 // DEFAULT
169 default:
169 default:
170 break;
170 break;
171 }
171 }
172 }
172 }
173
173
174 rtems_task wfrm_task(rtems_task_argument argument) //used with the waveform picker VHDL IP
174 rtems_task wfrm_task(rtems_task_argument argument) //used with the waveform picker VHDL IP
175 {
175 {
176 unsigned int i;
176 unsigned int i;
177 unsigned int intEventOut;
177 unsigned int intEventOut;
178 spw_ioctl_pkt_send spw_ioctl_send_SWF;
178 spw_ioctl_pkt_send spw_ioctl_send_SWF;
179 spw_ioctl_pkt_send spw_ioctl_send_CWF;
179 spw_ioctl_pkt_send spw_ioctl_send_CWF;
180 rtems_event_set event_out;
180 rtems_event_set event_out;
181 Header_TM_LFR_SCIENCE_SWF_t headerSWF;
181 Header_TM_LFR_SCIENCE_SWF_t headerSWF;
182 Header_TM_LFR_SCIENCE_CWF_t headerCWF;
182 Header_TM_LFR_SCIENCE_CWF_t headerCWF;
183
183
184 init_header_snapshot_wf( &headerSWF );
184 init_header_snapshot_wf( &headerSWF );
185 init_header_continuous_wf( &headerCWF );
185 init_header_continuous_wf( &headerCWF );
186
186
187 // BUILD THE PACKET HEADERS
187 // BUILD THE PACKET HEADERS
188 spw_ioctl_send_SWF.hlen = TM_HEADER_LEN + 4 + 12; // + 4 is for the protocole extra header, + 12 is for the auxiliary header
188 spw_ioctl_send_SWF.hlen = TM_HEADER_LEN + 4 + 12; // + 4 is for the protocole extra header, + 12 is for the auxiliary header
189 spw_ioctl_send_SWF.hdr = (char*) &headerSWF;
189 spw_ioctl_send_SWF.hdr = (char*) &headerSWF;
190 spw_ioctl_send_SWF.options = 0;
190 spw_ioctl_send_SWF.options = 0;
191
191
192 spw_ioctl_send_CWF.hlen = TM_HEADER_LEN + 4 + 10; // + 4 is for the protocole extra header, + 10 is for the auxiliary header
192 spw_ioctl_send_CWF.hlen = TM_HEADER_LEN + 4 + 10; // + 4 is for the protocole extra header, + 10 is for the auxiliary header
193 spw_ioctl_send_CWF.hdr = (char*) &headerCWF;
193 spw_ioctl_send_CWF.hdr = (char*) &headerCWF;
194 spw_ioctl_send_CWF.options = 0;
194 spw_ioctl_send_CWF.options = 0;
195
195
196 init_waveforms();
196 init_waveforms();
197
197
198 PRINTF("in WFRM ***\n")
198 PRINTF("in WFRM ***\n")
199
199
200 while(1){
200 while(1){
201 // wait for an RTEMS_EVENT
201 // wait for an RTEMS_EVENT
202 rtems_event_receive(RTEMS_EVENT_0 | RTEMS_EVENT_1 | RTEMS_EVENT_2 | RTEMS_EVENT_3 | RTEMS_EVENT_4,
202 rtems_event_receive(RTEMS_EVENT_0 | RTEMS_EVENT_1 | RTEMS_EVENT_2 | RTEMS_EVENT_3 | RTEMS_EVENT_4,
203 RTEMS_WAIT | RTEMS_EVENT_ANY, RTEMS_NO_TIMEOUT, &event_out);
203 RTEMS_WAIT | RTEMS_EVENT_ANY, RTEMS_NO_TIMEOUT, &event_out);
204 intEventOut = (unsigned int) event_out;
204 intEventOut = (unsigned int) event_out;
205 for (i = 0; i< 5; i++) {
205 for (i = 0; i< 5; i++) {
206 if ( ( (intEventOut >> i) & 0x0001) != 0 ) {
206 if ( ( (intEventOut >> i) & 0x0001) != 0 ) {
207 switch(i) {
207 switch(i) {
208 case(LFR_MODE_NORMAL):
208 case(LFR_MODE_NORMAL):
209 send_waveform_norm( &headerSWF, &spw_ioctl_send_SWF);
209 send_waveform_norm( &headerSWF, &spw_ioctl_send_SWF);
210 break;
210 break;
211 case(LFR_MODE_BURST):
211 case(LFR_MODE_BURST):
212 send_waveform_burst( &headerCWF, &spw_ioctl_send_CWF);
212 send_waveform_burst( &headerCWF, &spw_ioctl_send_CWF);
213 break;
213 break;
214 case(LFR_MODE_SBM1):
214 case(LFR_MODE_SBM1):
215 send_waveform_sbm1( &headerCWF, &spw_ioctl_send_CWF);
215 send_waveform_sbm1( &headerCWF, &spw_ioctl_send_CWF);
216 param_local.local_sbm1_nb_cwf_sent ++;
216 param_local.local_sbm1_nb_cwf_sent ++;
217 if ( param_local.local_sbm1_nb_cwf_sent == (param_local.local_sbm1_nb_cwf_max-1) ) {
217 if ( param_local.local_sbm1_nb_cwf_sent == (param_local.local_sbm1_nb_cwf_max-1) ) {
218 // send the f1 buffer as a NORM snapshot
218 // send the f1 buffer as a NORM snapshot
219 if (waveform_picker_regs->addr_data_f1 == (int) wf_snap_f1) {
219 if (waveform_picker_regs->addr_data_f1 == (int) wf_snap_f1) {
220 send_waveform_SWF( &headerSWF, wf_snap_f1_bis, SID_NORM_SWF_F1, &spw_ioctl_send_SWF );
220 send_waveform_SWF( &headerSWF, wf_snap_f1_bis, SID_NORM_SWF_F1, &spw_ioctl_send_SWF );
221 }
221 }
222 else {
222 else {
223 send_waveform_SWF( &headerSWF, wf_snap_f1, SID_NORM_SWF_F1, &spw_ioctl_send_SWF );
223 send_waveform_SWF( &headerSWF, wf_snap_f1, SID_NORM_SWF_F1, &spw_ioctl_send_SWF );
224 }
224 }
225 }
225 }
226 break;
226 break;
227 case(LFR_MODE_SBM2):
227 case(LFR_MODE_SBM2):
228 send_waveform_sbm2( &headerCWF, &spw_ioctl_send_CWF);
228 send_waveform_sbm2( &headerCWF, &spw_ioctl_send_CWF);
229 param_local.local_sbm2_nb_cwf_sent ++;
229 param_local.local_sbm2_nb_cwf_sent ++;
230 if ( param_local.local_sbm2_nb_cwf_sent == (param_local.local_sbm2_nb_cwf_max-1) ) {
230 if ( param_local.local_sbm2_nb_cwf_sent == (param_local.local_sbm2_nb_cwf_max-1) ) {
231 // send the f2 buffer as a NORM snapshot
231 // send the f2 buffer as a NORM snapshot
232 if (waveform_picker_regs->addr_data_f2 == (int) wf_snap_f2) {
232 if (waveform_picker_regs->addr_data_f2 == (int) wf_snap_f2) {
233 send_waveform_SWF( &headerSWF, wf_snap_f2_bis, SID_NORM_SWF_F2, &spw_ioctl_send_SWF );
233 send_waveform_SWF( &headerSWF, wf_snap_f2_bis, SID_NORM_SWF_F2, &spw_ioctl_send_SWF );
234 }
234 }
235 else {
235 else {
236 send_waveform_SWF( &headerSWF, wf_snap_f2, SID_NORM_SWF_F2, &spw_ioctl_send_SWF );
236 send_waveform_SWF( &headerSWF, wf_snap_f2, SID_NORM_SWF_F2, &spw_ioctl_send_SWF );
237 }
237 }
238 }
238 }
239 break;
239 break;
240 default:
240 default:
241 break;
241 break;
242 }
242 }
243 }
243 }
244 }
244 }
245 }
245 }
246 }
246 }
247
247
248 //******************
248 //******************
249 // general functions
249 // general functions
250 void init_waveforms( void )
250 void init_waveforms( void )
251 {
251 {
252 int i = 0;
252 int i = 0;
253
253
254 for (i=0; i< NB_SAMPLES_PER_SNAPSHOT; i++)
254 for (i=0; i< NB_SAMPLES_PER_SNAPSHOT; i++)
255 {
255 {
256 //***
256 //***
257 // F0
257 // F0
258 wf_snap_f0[ (i* NB_WORDS_SWF_BLK) + 0 + TIME_OFFSET ] = 0x88887777; //
258 wf_snap_f0[ (i* NB_WORDS_SWF_BLK) + 0 + TIME_OFFSET ] = 0x88887777; //
259 wf_snap_f0[ (i* NB_WORDS_SWF_BLK) + 1 + TIME_OFFSET ] = 0x22221111; //
259 wf_snap_f0[ (i* NB_WORDS_SWF_BLK) + 1 + TIME_OFFSET ] = 0x22221111; //
260 wf_snap_f0[ (i* NB_WORDS_SWF_BLK) + 2 + TIME_OFFSET ] = 0x44443333; //
260 wf_snap_f0[ (i* NB_WORDS_SWF_BLK) + 2 + TIME_OFFSET ] = 0x44443333; //
261
261
262 //***
262 //***
263 // F1
263 // F1
264 wf_snap_f1[ (i* NB_WORDS_SWF_BLK) + 0 + TIME_OFFSET ] = 0x22221111;
264 wf_snap_f1[ (i* NB_WORDS_SWF_BLK) + 0 + TIME_OFFSET ] = 0x22221111;
265 wf_snap_f1[ (i* NB_WORDS_SWF_BLK) + 1 + TIME_OFFSET ] = 0x44443333;
265 wf_snap_f1[ (i* NB_WORDS_SWF_BLK) + 1 + TIME_OFFSET ] = 0x44443333;
266 wf_snap_f1[ (i* NB_WORDS_SWF_BLK) + 2 + TIME_OFFSET ] = 0xaaaa0000;
266 wf_snap_f1[ (i* NB_WORDS_SWF_BLK) + 2 + TIME_OFFSET ] = 0xaaaa0000;
267
267
268 //***
268 //***
269 // F2
269 // F2
270 wf_snap_f2[ (i* NB_WORDS_SWF_BLK) + 0 + TIME_OFFSET ] = 0x44443333;
270 wf_snap_f2[ (i* NB_WORDS_SWF_BLK) + 0 + TIME_OFFSET ] = 0x44443333;
271 wf_snap_f2[ (i* NB_WORDS_SWF_BLK) + 1 + TIME_OFFSET ] = 0x22221111;
271 wf_snap_f2[ (i* NB_WORDS_SWF_BLK) + 1 + TIME_OFFSET ] = 0x22221111;
272 wf_snap_f2[ (i* NB_WORDS_SWF_BLK) + 2 + TIME_OFFSET ] = 0xaaaa0000;
272 wf_snap_f2[ (i* NB_WORDS_SWF_BLK) + 2 + TIME_OFFSET ] = 0xaaaa0000;
273
273
274 //***
274 //***
275 // F3
275 // F3
276 //wf_cont_f3[ (i* NB_WORDS_SWF_BLK) + 0 ] = val1;
276 //wf_cont_f3[ (i* NB_WORDS_SWF_BLK) + 0 ] = val1;
277 //wf_cont_f3[ (i* NB_WORDS_SWF_BLK) + 1 ] = val2;
277 //wf_cont_f3[ (i* NB_WORDS_SWF_BLK) + 1 ] = val2;
278 //wf_cont_f3[ (i* NB_WORDS_SWF_BLK) + 2 ] = 0xaaaa0000;
278 //wf_cont_f3[ (i* NB_WORDS_SWF_BLK) + 2 ] = 0xaaaa0000;
279 }
279 }
280 }
280 }
281
281
282 void init_header_snapshot_wf( Header_TM_LFR_SCIENCE_SWF_t *header)
282 void init_header_snapshot_wf( Header_TM_LFR_SCIENCE_SWF_t *header)
283 {
283 {
284 header->targetLogicalAddress = CCSDS_DESTINATION_ID;
284 header->targetLogicalAddress = CCSDS_DESTINATION_ID;
285 header->protocolIdentifier = CCSDS_PROTOCOLE_ID;
285 header->protocolIdentifier = CCSDS_PROTOCOLE_ID;
286 header->reserved = 0x00;
286 header->reserved = 0x00;
287 header->userApplication = CCSDS_USER_APP;
287 header->userApplication = CCSDS_USER_APP;
288 header->packetID[0] = (unsigned char) (TM_PACKET_ID_SCIENCE_NORMAL >> 8);
288 header->packetID[0] = (unsigned char) (TM_PACKET_ID_SCIENCE_NORMAL >> 8);
289 header->packetID[1] = (unsigned char) (TM_PACKET_ID_SCIENCE_NORMAL);
289 header->packetID[1] = (unsigned char) (TM_PACKET_ID_SCIENCE_NORMAL);
290 header->packetSequenceControl[0] = 0xc0;
290 header->packetSequenceControl[0] = 0xc0;
291 header->packetSequenceControl[1] = 0x00;
291 header->packetSequenceControl[1] = 0x00;
292 header->packetLength[0] = 0x00;
292 header->packetLength[0] = 0x00;
293 header->packetLength[1] = 0x00;
293 header->packetLength[1] = 0x00;
294 // DATA FIELD HEADER
294 // DATA FIELD HEADER
295 header->spare1_pusVersion_spare2 = 0x10;
295 header->spare1_pusVersion_spare2 = 0x10;
296 header->serviceType = TM_TYPE_LFR_SCIENCE; // service type
296 header->serviceType = TM_TYPE_LFR_SCIENCE; // service type
297 header->serviceSubType = TM_SUBTYPE_LFR_SCIENCE; // service subtype
297 header->serviceSubType = TM_SUBTYPE_LFR_SCIENCE; // service subtype
298 header->destinationID = TM_DESTINATION_ID_GROUND;
298 header->destinationID = TM_DESTINATION_ID_GROUND;
299 // AUXILIARY DATA HEADER
299 // AUXILIARY DATA HEADER
300 header->sid = 0x00;
300 header->sid = 0x00;
301 header->hkBIA = 0x1f;
301 header->hkBIA = 0x1f;
302 header->pktCnt = 0x07; // PKT_CNT
302 header->pktCnt = 0x07; // PKT_CNT
303 header->pktNr = 0x00; // PKT_NR
303 header->pktNr = 0x00; // PKT_NR
304 header->time[0] = 0x00;
304 header->time[0] = 0x00;
305 header->time[0] = 0x00;
305 header->time[0] = 0x00;
306 header->time[0] = 0x00;
306 header->time[0] = 0x00;
307 header->time[0] = 0x00;
307 header->time[0] = 0x00;
308 header->time[0] = 0x00;
308 header->time[0] = 0x00;
309 header->time[0] = 0x00;
309 header->time[0] = 0x00;
310 header->blkNr[0] = 0x00; // BLK_NR MSB
310 header->blkNr[0] = 0x00; // BLK_NR MSB
311 header->blkNr[1] = 0x00; // BLK_NR LSB
311 header->blkNr[1] = 0x00; // BLK_NR LSB
312 }
312 }
313
313
314 void init_header_continuous_wf( Header_TM_LFR_SCIENCE_CWF_t *header)
314 void init_header_continuous_wf( Header_TM_LFR_SCIENCE_CWF_t *header)
315 {
315 {
316 header->targetLogicalAddress = CCSDS_DESTINATION_ID;
316 header->targetLogicalAddress = CCSDS_DESTINATION_ID;
317 header->protocolIdentifier = CCSDS_PROTOCOLE_ID;
317 header->protocolIdentifier = CCSDS_PROTOCOLE_ID;
318 header->reserved = 0x00;
318 header->reserved = 0x00;
319 header->userApplication = CCSDS_USER_APP;
319 header->userApplication = CCSDS_USER_APP;
320 header->packetID[0] = 0x00;
320 header->packetID[0] = 0x00;
321 header->packetID[1] = 0x00;
321 header->packetID[1] = 0x00;
322 header->packetSequenceControl[0] = 0xc0;
322 header->packetSequenceControl[0] = 0xc0;
323 header->packetSequenceControl[1] = 0x00;
323 header->packetSequenceControl[1] = 0x00;
324 header->packetLength[0] = 0x00;
324 header->packetLength[0] = 0x00;
325 header->packetLength[1] = 0x00;
325 header->packetLength[1] = 0x00;
326 // DATA FIELD HEADER
326 // DATA FIELD HEADER
327 header->spare1_pusVersion_spare2 = 0x10;
327 header->spare1_pusVersion_spare2 = 0x10;
328 header->serviceType = TM_TYPE_LFR_SCIENCE; // service type
328 header->serviceType = TM_TYPE_LFR_SCIENCE; // service type
329 header->serviceSubType = TM_SUBTYPE_LFR_SCIENCE; // service subtype
329 header->serviceSubType = TM_SUBTYPE_LFR_SCIENCE; // service subtype
330 header->destinationID = TM_DESTINATION_ID_GROUND;
330 header->destinationID = TM_DESTINATION_ID_GROUND;
331 // AUXILIARY DATA HEADER
331 // AUXILIARY DATA HEADER
332 header->sid = 0x00;
332 header->sid = 0x00;
333 header->hkBIA = 0x1f;
333 header->hkBIA = 0x1f;
334 header->time[0] = 0x00;
334 header->time[0] = 0x00;
335 header->time[0] = 0x00;
335 header->time[0] = 0x00;
336 header->time[0] = 0x00;
336 header->time[0] = 0x00;
337 header->time[0] = 0x00;
337 header->time[0] = 0x00;
338 header->time[0] = 0x00;
338 header->time[0] = 0x00;
339 header->time[0] = 0x00;
339 header->time[0] = 0x00;
340 header->blkNr[0] = 0x00; // BLK_NR MSB
340 header->blkNr[0] = 0x00; // BLK_NR MSB
341 header->blkNr[1] = 0x00; // BLK_NR LSB
341 header->blkNr[1] = 0x00; // BLK_NR LSB
342 }
342 }
343
343
344 void reset_waveforms( void )
344 void reset_waveforms( void )
345 {
345 {
346 int i = 0;
346 int i = 0;
347
347
348 for (i=0; i< NB_SAMPLES_PER_SNAPSHOT; i++)
348 for (i=0; i< NB_SAMPLES_PER_SNAPSHOT; i++)
349 {
349 {
350 wf_snap_f0[ (i* NB_WORDS_SWF_BLK) + 0 + TIME_OFFSET] = 0x10002000;
350 wf_snap_f0[ (i* NB_WORDS_SWF_BLK) + 0 + TIME_OFFSET] = 0x10002000;
351 wf_snap_f0[ (i* NB_WORDS_SWF_BLK) + 1 + TIME_OFFSET] = 0x20001000;
351 wf_snap_f0[ (i* NB_WORDS_SWF_BLK) + 1 + TIME_OFFSET] = 0x20001000;
352 wf_snap_f0[ (i* NB_WORDS_SWF_BLK) + 2 + TIME_OFFSET] = 0x40008000;
352 wf_snap_f0[ (i* NB_WORDS_SWF_BLK) + 2 + TIME_OFFSET] = 0x40008000;
353
353
354 //***
354 //***
355 // F1
355 // F1
356 wf_snap_f1[ (i* NB_WORDS_SWF_BLK) + 0 + TIME_OFFSET] = 0x1000f000;
356 wf_snap_f1[ (i* NB_WORDS_SWF_BLK) + 0 + TIME_OFFSET] = 0x1000f000;
357 wf_snap_f1[ (i* NB_WORDS_SWF_BLK) + 1 + TIME_OFFSET] = 0xf0001000;
357 wf_snap_f1[ (i* NB_WORDS_SWF_BLK) + 1 + TIME_OFFSET] = 0xf0001000;
358 wf_snap_f1[ (i* NB_WORDS_SWF_BLK) + 2 + TIME_OFFSET] = 0x40008000;
358 wf_snap_f1[ (i* NB_WORDS_SWF_BLK) + 2 + TIME_OFFSET] = 0x40008000;
359
359
360 //***
360 //***
361 // F2
361 // F2
362 wf_snap_f2[ (i* NB_WORDS_SWF_BLK) + 0 + TIME_OFFSET] = 0x40008000;
362 wf_snap_f2[ (i* NB_WORDS_SWF_BLK) + 0 + TIME_OFFSET] = 0x40008000;
363 wf_snap_f2[ (i* NB_WORDS_SWF_BLK) + 1 + TIME_OFFSET] = 0x20001000;
363 wf_snap_f2[ (i* NB_WORDS_SWF_BLK) + 1 + TIME_OFFSET] = 0x20001000;
364 wf_snap_f2[ (i* NB_WORDS_SWF_BLK) + 2 + TIME_OFFSET] = 0x10002000;
364 wf_snap_f2[ (i* NB_WORDS_SWF_BLK) + 2 + TIME_OFFSET] = 0x10002000;
365
365
366 //***
366 //***
367 // F3
367 // F3
368 /*wf_cont_f3[ i* NB_WORDS_SWF_BLK + 0 ] = build_value( i, i ); // v and 1
368 /*wf_cont_f3[ i* NB_WORDS_SWF_BLK + 0 ] = build_value( i, i ); // v and 1
369 wf_cont_f3[ i* NB_WORDS_SWF_BLK + 1 ] = build_value( i, i ); // e2 and b1
369 wf_cont_f3[ i* NB_WORDS_SWF_BLK + 1 ] = build_value( i, i ); // e2 and b1
370 wf_cont_f3[ i* NB_WORDS_SWF_BLK + 2 ] = build_value( i, i ); // b2 and b3*/
370 wf_cont_f3[ i* NB_WORDS_SWF_BLK + 2 ] = build_value( i, i ); // b2 and b3*/
371 }
371 }
372 }
372 }
373
373
374 void send_waveform_SWF( Header_TM_LFR_SCIENCE_SWF_t *header, volatile int *waveform,
374 void send_waveform_SWF( Header_TM_LFR_SCIENCE_SWF_t *header, volatile int *waveform,
375 unsigned int sid, spw_ioctl_pkt_send *spw_ioctl_send)
375 unsigned int sid, spw_ioctl_pkt_send *spw_ioctl_send)
376 {
376 {
377 unsigned int i = 0;
377 unsigned int i = 0;
378 unsigned int length = 0;
378 unsigned int length = 0;
379 rtems_status_code status;
379 rtems_status_code status;
380
380
381 header->sid = (unsigned char) sid;
381 header->sid = (unsigned char) sid;
382
382
383 for (i=0; i<7; i++) // send waveform
383 for (i=0; i<7; i++) // send waveform
384 {
384 {
385 header->pktNr = (unsigned char) i+1; // PKT_NR
385 header->pktNr = (unsigned char) i+1; // PKT_NR
386 // BUILD THE DATA
386 // BUILD THE DATA
387 if (i==6) {
387 if (i==6) {
388 spw_ioctl_send->dlen = 8 * NB_BYTES_SWF_BLK;
388 spw_ioctl_send->dlen = 8 * NB_BYTES_SWF_BLK;
389 length = TM_LEN_SCI_SWF_8;
389 length = TM_LEN_SCI_SWF_8;
390 header->blkNr[0] = 0x00; // BLK_NR MSB
390 header->blkNr[0] = 0x00; // BLK_NR MSB
391 header->blkNr[1] = 0x08; // BLK_NR LSB
391 header->blkNr[1] = 0x08; // BLK_NR LSB
392 }
392 }
393 else {
393 else {
394 spw_ioctl_send->dlen = 340 * NB_BYTES_SWF_BLK;
394 spw_ioctl_send->dlen = 340 * NB_BYTES_SWF_BLK;
395 length = TM_LEN_SCI_SWF_340;
395 length = TM_LEN_SCI_SWF_340;
396 header->blkNr[0] = 0x01; // BLK_NR MSB
396 header->blkNr[0] = 0x01; // BLK_NR MSB
397 header->blkNr[1] = 0x54; // BLK_NR LSB
397 header->blkNr[1] = 0x54; // BLK_NR LSB
398 }
398 }
399 spw_ioctl_send->data = (char*) &waveform[ (i * 340 * NB_WORDS_SWF_BLK) ];
399 spw_ioctl_send->data = (char*) &waveform[ (i * 340 * NB_WORDS_SWF_BLK) ];
400 // BUILD THE HEADER
400 // BUILD THE HEADER
401 header->packetLength[0] = (unsigned char) (length>>8);
401 header->packetLength[0] = (unsigned char) (length>>8);
402 header->packetLength[1] = (unsigned char) (length);
402 header->packetLength[1] = (unsigned char) (length);
403 header->sid = (unsigned char) sid; // SID
403 header->sid = (unsigned char) sid; // SID
404 // SET PACKET TIME
404 // SET PACKET TIME
405 header->time[0] = (unsigned char) (time_management_regs->coarse_time>>24);
405 header->time[0] = (unsigned char) (time_management_regs->coarse_time>>24);
406 header->time[1] = (unsigned char) (time_management_regs->coarse_time>>16);
406 header->time[1] = (unsigned char) (time_management_regs->coarse_time>>16);
407 header->time[2] = (unsigned char) (time_management_regs->coarse_time>>8);
407 header->time[2] = (unsigned char) (time_management_regs->coarse_time>>8);
408 header->time[3] = (unsigned char) (time_management_regs->coarse_time);
408 header->time[3] = (unsigned char) (time_management_regs->coarse_time);
409 header->time[4] = (unsigned char) (time_management_regs->fine_time>>8);
409 header->time[4] = (unsigned char) (time_management_regs->fine_time>>8);
410 header->time[5] = (unsigned char) (time_management_regs->fine_time);
410 header->time[5] = (unsigned char) (time_management_regs->fine_time);
411 header->acquisitionTime[0] = (unsigned char) (time_management_regs->coarse_time>>24);
412 header->acquisitionTime[1] = (unsigned char) (time_management_regs->coarse_time>>16);
413 header->acquisitionTime[2] = (unsigned char) (time_management_regs->coarse_time>>8);
414 header->acquisitionTime[3] = (unsigned char) (time_management_regs->coarse_time);
415 header->acquisitionTime[4] = (unsigned char) (time_management_regs->fine_time>>8);
416 header->acquisitionTime[5] = (unsigned char) (time_management_regs->fine_time);
411 // SEND PACKET
417 // SEND PACKET
412 status = write_spw(spw_ioctl_send);
418 status = write_spw(spw_ioctl_send);
413 if (status != RTEMS_SUCCESSFUL) {
419 if (status != RTEMS_SUCCESSFUL) {
414 while (true) {
420 while (true) {
415 if (status != RTEMS_SUCCESSFUL) {
421 if (status != RTEMS_SUCCESSFUL) {
416 status = write_spw(spw_ioctl_send);
422 status = write_spw(spw_ioctl_send);
417 //PRINTF1("%d", i)
423 //PRINTF1("%d", i)
418 sched_yield();
424 sched_yield();
419 }
425 }
420 else {
426 else {
421 //PRINTF("\n")
427 //PRINTF("\n")
422 break;
428 break;
423 }
429 }
424 }
430 }
425 }
431 }
426 }
432 }
427 }
433 }
428
434
429 void send_waveform_CWF( Header_TM_LFR_SCIENCE_CWF_t *header, volatile int *waveform,
435 void send_waveform_CWF( Header_TM_LFR_SCIENCE_CWF_t *header, volatile int *waveform,
430 unsigned int sid, spw_ioctl_pkt_send *spw_ioctl_send)
436 unsigned int sid, spw_ioctl_pkt_send *spw_ioctl_send)
431 {
437 {
432 unsigned int i = 0;
438 unsigned int i = 0;
433 unsigned int length = 0;
439 unsigned int length = 0;
434 rtems_status_code status;
440 rtems_status_code status;
435
441
436 header->sid = (unsigned char) sid;
442 header->sid = (unsigned char) sid;
437
443
438 for (i=0; i<7; i++) // send waveform
444 for (i=0; i<7; i++) // send waveform
439 {
445 {
440 // BUILD THE DATA
446 // BUILD THE DATA
441 if (i==6) {
447 if (i==6) {
442 spw_ioctl_send->dlen = 8 * NB_BYTES_SWF_BLK;
448 spw_ioctl_send->dlen = 8 * NB_BYTES_SWF_BLK;
443 length = TM_LEN_SCI_CWF_8;
449 length = TM_LEN_SCI_CWF_8;
444 header->blkNr[0] = 0x00; // BLK_NR MSB
450 header->blkNr[0] = 0x00; // BLK_NR MSB
445 header->blkNr[1] = 0x08; // BLK_NR LSB
451 header->blkNr[1] = 0x08; // BLK_NR LSB
446 }
452 }
447 else {
453 else {
448 spw_ioctl_send->dlen = 340 * NB_BYTES_SWF_BLK;
454 spw_ioctl_send->dlen = 340 * NB_BYTES_SWF_BLK;
449 length = TM_LEN_SCI_CWF_340;
455 length = TM_LEN_SCI_CWF_340;
450 header->blkNr[0] = 0x01; // BLK_NR MSB
456 header->blkNr[0] = 0x01; // BLK_NR MSB
451 header->blkNr[1] = 0x54; // BLK_NR LSB
457 header->blkNr[1] = 0x54; // BLK_NR LSB
452 }
458 }
453 spw_ioctl_send->data = (char*) &waveform[ (i * 340 * NB_WORDS_SWF_BLK) ];
459 spw_ioctl_send->data = (char*) &waveform[ (i * 340 * NB_WORDS_SWF_BLK) ];
454 // BUILD THE HEADER
460 // BUILD THE HEADER
455 header->packetLength[0] = (unsigned char) (length>>8);
461 header->packetLength[0] = (unsigned char) (length>>8);
456 header->packetLength[1] = (unsigned char) (length);
462 header->packetLength[1] = (unsigned char) (length);
463 // SET PACKET TIME
464 header->time[0] = (unsigned char) (time_management_regs->coarse_time>>24);
465 header->time[1] = (unsigned char) (time_management_regs->coarse_time>>16);
466 header->time[2] = (unsigned char) (time_management_regs->coarse_time>>8);
467 header->time[3] = (unsigned char) (time_management_regs->coarse_time);
468 header->time[4] = (unsigned char) (time_management_regs->fine_time>>8);
469 header->time[5] = (unsigned char) (time_management_regs->fine_time);
470 header->acquisitionTime[0] = (unsigned char) (time_management_regs->coarse_time>>24);
471 header->acquisitionTime[1] = (unsigned char) (time_management_regs->coarse_time>>16);
472 header->acquisitionTime[2] = (unsigned char) (time_management_regs->coarse_time>>8);
473 header->acquisitionTime[3] = (unsigned char) (time_management_regs->coarse_time);
474 header->acquisitionTime[4] = (unsigned char) (time_management_regs->fine_time>>8);
475 header->acquisitionTime[5] = (unsigned char) (time_management_regs->fine_time);
457 // SEND PACKET
476 // SEND PACKET
458 status = write_spw(spw_ioctl_send);
477 status = write_spw(spw_ioctl_send);
459 if (status != RTEMS_SUCCESSFUL) {
478 if (status != RTEMS_SUCCESSFUL) {
460 while (true) {
479 while (true) {
461 if (status != RTEMS_SUCCESSFUL) {
480 if (status != RTEMS_SUCCESSFUL) {
462 status = write_spw(spw_ioctl_send);
481 status = write_spw(spw_ioctl_send);
463 //PRINTF1("%d", i)
482 //PRINTF1("%d", i)
464 sched_yield();
483 sched_yield();
465 }
484 }
466 else {
485 else {
467 //PRINTF("\n")
486 //PRINTF("\n")
468 break;
487 break;
469 }
488 }
470 }
489 }
471 }
490 }
472 }
491 }
473 }
492 }
474
493
475 int build_value(int value1, int value0)
494 int build_value(int value1, int value0)
476 {
495 {
477 int aux = 0;
496 int aux = 0;
478 int aux1 = 0;
497 int aux1 = 0;
479 int aux0 = 0;
498 int aux0 = 0;
480 int value1_aux = 0;
499 int value1_aux = 0;
481 int value0_aux = 0;
500 int value0_aux = 0;
482
501
483 value1_aux = value1;
502 value1_aux = value1;
484 value0_aux = value0;
503 value0_aux = value0;
485
504
486 //******
505 //******
487 // B3 B2
506 // B3 B2
488 if (value1_aux > 8191) value1_aux = 8191;
507 if (value1_aux > 8191) value1_aux = 8191;
489 if (value1_aux < -8192) value1_aux = -8192;
508 if (value1_aux < -8192) value1_aux = -8192;
490 aux1 = ( (int) ( ( (unsigned char) (value1_aux / 256 ) ) << 8 ) )
509 aux1 = ( (int) ( ( (unsigned char) (value1_aux / 256 ) ) << 8 ) )
491 + ( (int) ( (unsigned char) (value1_aux ) ) );
510 + ( (int) ( (unsigned char) (value1_aux ) ) );
492
511
493 //******
512 //******
494 // B1 B0
513 // B1 B0
495 if (value0_aux > 8191) value0_aux = 8191;
514 if (value0_aux > 8191) value0_aux = 8191;
496 if (value0_aux < -8192) value0_aux = -8192;
515 if (value0_aux < -8192) value0_aux = -8192;
497 aux0 = ( (int) ( ( (unsigned char) (value0_aux / 256) ) << 8 ) )
516 aux0 = ( (int) ( ( (unsigned char) (value0_aux / 256) ) << 8 ) )
498 + ( (int) ( (unsigned char) (value0_aux ) ) );
517 + ( (int) ( (unsigned char) (value0_aux ) ) );
499
518
500 aux = (aux1 << 16) + aux0;
519 aux = (aux1 << 16) + aux0;
501
520
502 return aux;
521 return aux;
503 }
522 }
504
523
505 void send_waveform_norm(Header_TM_LFR_SCIENCE_SWF_t *header, spw_ioctl_pkt_send *spw_ioctl_send)
524 void send_waveform_norm(Header_TM_LFR_SCIENCE_SWF_t *header, spw_ioctl_pkt_send *spw_ioctl_send)
506 {
525 {
507 unsigned char lfrMode;
526 unsigned char lfrMode;
508 lfrMode = (housekeeping_packet.lfr_status_word[0] & 0xf0) >> 4;
527 lfrMode = (housekeeping_packet.lfr_status_word[0] & 0xf0) >> 4;
509
528
510 header->packetID[0] = (unsigned char) (TM_PACKET_ID_SCIENCE_NORMAL >> 8);
529 header->packetID[0] = (unsigned char) (TM_PACKET_ID_SCIENCE_NORMAL >> 8);
511 header->packetID[1] = (unsigned char) (TM_PACKET_ID_SCIENCE_NORMAL);
530 header->packetID[1] = (unsigned char) (TM_PACKET_ID_SCIENCE_NORMAL);
512 // TIME
531 // TIME
513 header->time[0] = (unsigned char) (time_management_regs->coarse_time>>24);
532 header->time[0] = (unsigned char) (time_management_regs->coarse_time>>24);
514 header->time[1] = (unsigned char) (time_management_regs->coarse_time>>16);
533 header->time[1] = (unsigned char) (time_management_regs->coarse_time>>16);
515 header->time[2] = (unsigned char) (time_management_regs->coarse_time>>8);
534 header->time[2] = (unsigned char) (time_management_regs->coarse_time>>8);
516 header->time[3] = (unsigned char) (time_management_regs->coarse_time);
535 header->time[3] = (unsigned char) (time_management_regs->coarse_time);
517 header->time[4] = (unsigned char) (time_management_regs->fine_time>>8);
536 header->time[4] = (unsigned char) (time_management_regs->fine_time>>8);
518 header->time[5] = (unsigned char) (time_management_regs->fine_time);
537 header->time[5] = (unsigned char) (time_management_regs->fine_time);
519
538
520 //***************
539 //***************
521 // send snapshots
540 // send snapshots
522 // F0
541 // F0
523 send_waveform_SWF( header, wf_snap_f0, SID_NORM_SWF_F0, spw_ioctl_send);
542 send_waveform_SWF( header, wf_snap_f0, SID_NORM_SWF_F0, spw_ioctl_send);
524 // F1
543 // F1
525 if (lfrMode == LFR_MODE_NORMAL) // in SBM1 mode, the snapshot is sent by the send_waveform_sbm1 function
544 if (lfrMode == LFR_MODE_NORMAL) // in SBM1 mode, the snapshot is sent by the send_waveform_sbm1 function
526 {
545 {
527 send_waveform_SWF( header, wf_snap_f1, SID_NORM_SWF_F1, spw_ioctl_send);
546 send_waveform_SWF( header, wf_snap_f1, SID_NORM_SWF_F1, spw_ioctl_send);
528 }
547 }
529 // F2
548 // F2
530 send_waveform_SWF( header, wf_snap_f2, SID_NORM_SWF_F2, spw_ioctl_send);
549 send_waveform_SWF( header, wf_snap_f2, SID_NORM_SWF_F2, spw_ioctl_send);
531 #ifdef GSA
550 #ifdef GSA
532 // irq processed, reset the related register of the timer unit
551 // irq processed, reset the related register of the timer unit
533 gptimer_regs->timer[2].ctrl = gptimer_regs->timer[2].ctrl | 0x00000010;
552 gptimer_regs->timer[2].ctrl = gptimer_regs->timer[2].ctrl | 0x00000010;
534 #else
553 #else
535 // irq processed, reset the related register of the waveform picker
554 // irq processed, reset the related register of the waveform picker
536 if (lfrMode == LFR_MODE_SBM1) {
555 if (lfrMode == LFR_MODE_SBM1) {
537 param_local.local_sbm1_nb_cwf_sent = 0;
556 param_local.local_sbm1_nb_cwf_sent = 0;
538 // after the first transmission of the swf at F1, the period is set to local_sbm1_nb_cwf_max
557 // after the first transmission of the swf at F1, the period is set to local_sbm1_nb_cwf_max
539 param_local.local_sbm1_nb_cwf_max = 2 * param_norm.sy_lfr_n_swf_p;
558 param_local.local_sbm1_nb_cwf_max = 2 * param_norm.sy_lfr_n_swf_p;
540 }
559 }
541 else if (lfrMode == LFR_MODE_SBM2) {
560 else if (lfrMode == LFR_MODE_SBM2) {
542 param_local.local_sbm2_nb_cwf_sent = 0;
561 param_local.local_sbm2_nb_cwf_sent = 0;
543 // after the first transmission of the swf at F2, the period is set to local_sbm2_nb_cwf_max
562 // after the first transmission of the swf at F2, the period is set to local_sbm2_nb_cwf_max
544 param_local.local_sbm2_nb_cwf_max = param_norm.sy_lfr_n_swf_p / 8;
563 param_local.local_sbm2_nb_cwf_max = param_norm.sy_lfr_n_swf_p / 8;
545 }
564 }
546 else {
565 else {
547 waveform_picker_regs->status = waveform_picker_regs->status & 0x00;
566 waveform_picker_regs->status = waveform_picker_regs->status & 0x00;
548 waveform_picker_regs->burst_enable = 0x07; // [0111] enable f2 f1 f0
567 waveform_picker_regs->burst_enable = 0x07; // [0111] enable f2 f1 f0
549 }
568 }
550
569
551 #endif
570 #endif
552 }
571 }
553
572
554 void send_waveform_burst(Header_TM_LFR_SCIENCE_CWF_t *header, spw_ioctl_pkt_send *spw_ioctl_send)
573 void send_waveform_burst(Header_TM_LFR_SCIENCE_CWF_t *header, spw_ioctl_pkt_send *spw_ioctl_send)
555 {
574 {
556 header->packetID[0] = (unsigned char) (TM_PACKET_ID_SCIENCE_BURST_SBM1_SBM2 >> 8);
575 header->packetID[0] = (unsigned char) (TM_PACKET_ID_SCIENCE_BURST_SBM1_SBM2 >> 8);
557 header->packetID[1] = (unsigned char) (TM_PACKET_ID_SCIENCE_BURST_SBM1_SBM2);
576 header->packetID[1] = (unsigned char) (TM_PACKET_ID_SCIENCE_BURST_SBM1_SBM2);
558 // TIME
577 // TIME
559 header->time[0] = (unsigned char) (time_management_regs->coarse_time>>24);
578 header->time[0] = (unsigned char) (time_management_regs->coarse_time>>24);
560 header->time[1] = (unsigned char) (time_management_regs->coarse_time>>16);
579 header->time[1] = (unsigned char) (time_management_regs->coarse_time>>16);
561 header->time[2] = (unsigned char) (time_management_regs->coarse_time>>8);
580 header->time[2] = (unsigned char) (time_management_regs->coarse_time>>8);
562 header->time[3] = (unsigned char) (time_management_regs->coarse_time);
581 header->time[3] = (unsigned char) (time_management_regs->coarse_time);
563 header->time[4] = (unsigned char) (time_management_regs->fine_time>>8);
582 header->time[4] = (unsigned char) (time_management_regs->fine_time>>8);
564 header->time[5] = (unsigned char) (time_management_regs->fine_time);
583 header->time[5] = (unsigned char) (time_management_regs->fine_time);
565 // ACQUISITION TIME
584 // ACQUISITION TIME
566
585
567 // F2
586 // F2
568 if (waveform_picker_regs->addr_data_f2 == (int) wf_snap_f2) {
587 if (waveform_picker_regs->addr_data_f2 == (int) wf_snap_f2) {
569 send_waveform_CWF( header, wf_snap_f2_bis, SID_BURST_CWF_F2, spw_ioctl_send);
588 send_waveform_CWF( header, wf_snap_f2_bis, SID_BURST_CWF_F2, spw_ioctl_send);
570 }
589 }
571 else {
590 else {
572 send_waveform_CWF( header, wf_snap_f2, SID_BURST_CWF_F2, spw_ioctl_send);
591 send_waveform_CWF( header, wf_snap_f2, SID_BURST_CWF_F2, spw_ioctl_send);
573 }
592 }
574 }
593 }
575
594
576 void send_waveform_sbm1(Header_TM_LFR_SCIENCE_CWF_t *header, spw_ioctl_pkt_send *spw_ioctl_send)
595 void send_waveform_sbm1(Header_TM_LFR_SCIENCE_CWF_t *header, spw_ioctl_pkt_send *spw_ioctl_send)
577 {
596 {
578 header->packetID[0] = (unsigned char) (TM_PACKET_ID_SCIENCE_BURST_SBM1_SBM2 >> 8);
597 header->packetID[0] = (unsigned char) (TM_PACKET_ID_SCIENCE_BURST_SBM1_SBM2 >> 8);
579 header->packetID[1] = (unsigned char) (TM_PACKET_ID_SCIENCE_BURST_SBM1_SBM2);
598 header->packetID[1] = (unsigned char) (TM_PACKET_ID_SCIENCE_BURST_SBM1_SBM2);
580 // TIME
599 // TIME
581 header->time[0] = (unsigned char) (time_management_regs->coarse_time>>24);
600 header->time[0] = (unsigned char) (time_management_regs->coarse_time>>24);
582 header->time[1] = (unsigned char) (time_management_regs->coarse_time>>16);
601 header->time[1] = (unsigned char) (time_management_regs->coarse_time>>16);
583 header->time[2] = (unsigned char) (time_management_regs->coarse_time>>8);
602 header->time[2] = (unsigned char) (time_management_regs->coarse_time>>8);
584 header->time[3] = (unsigned char) (time_management_regs->coarse_time);
603 header->time[3] = (unsigned char) (time_management_regs->coarse_time);
585 header->time[4] = (unsigned char) (time_management_regs->fine_time>>8);
604 header->time[4] = (unsigned char) (time_management_regs->fine_time>>8);
586 header->time[5] = (unsigned char) (time_management_regs->fine_time);
605 header->time[5] = (unsigned char) (time_management_regs->fine_time);
587
606
588 // F1
607 // F1
589 if (waveform_picker_regs->addr_data_f1 == (int) wf_snap_f1) {
608 if (waveform_picker_regs->addr_data_f1 == (int) wf_snap_f1) {
590 send_waveform_CWF( header, wf_snap_f1_bis, SID_SBM1_CWF_F1, spw_ioctl_send );
609 send_waveform_CWF( header, wf_snap_f1_bis, SID_SBM1_CWF_F1, spw_ioctl_send );
591 }
610 }
592 else {
611 else {
593 send_waveform_CWF( header, wf_snap_f1, SID_SBM1_CWF_F1, spw_ioctl_send );
612 send_waveform_CWF( header, wf_snap_f1, SID_SBM1_CWF_F1, spw_ioctl_send );
594 }
613 }
595 }
614 }
596
615
597 void send_waveform_sbm2(Header_TM_LFR_SCIENCE_CWF_t *header, spw_ioctl_pkt_send *spw_ioctl_send)
616 void send_waveform_sbm2(Header_TM_LFR_SCIENCE_CWF_t *header, spw_ioctl_pkt_send *spw_ioctl_send)
598 {
617 {
599 header->packetID[0] = (unsigned char) (TM_PACKET_ID_SCIENCE_BURST_SBM1_SBM2 >> 8);
618 header->packetID[0] = (unsigned char) (TM_PACKET_ID_SCIENCE_BURST_SBM1_SBM2 >> 8);
600 header->packetID[1] = (unsigned char) (TM_PACKET_ID_SCIENCE_BURST_SBM1_SBM2);
619 header->packetID[1] = (unsigned char) (TM_PACKET_ID_SCIENCE_BURST_SBM1_SBM2);
601 // TIME
620 // TIME
602 header->time[0] = (unsigned char) (time_management_regs->coarse_time>>24);
621 header->time[0] = (unsigned char) (time_management_regs->coarse_time>>24);
603 header->time[1] = (unsigned char) (time_management_regs->coarse_time>>16);
622 header->time[1] = (unsigned char) (time_management_regs->coarse_time>>16);
604 header->time[2] = (unsigned char) (time_management_regs->coarse_time>>8);
623 header->time[2] = (unsigned char) (time_management_regs->coarse_time>>8);
605 header->time[3] = (unsigned char) (time_management_regs->coarse_time);
624 header->time[3] = (unsigned char) (time_management_regs->coarse_time);
606 header->time[4] = (unsigned char) (time_management_regs->fine_time>>8);
625 header->time[4] = (unsigned char) (time_management_regs->fine_time>>8);
607 header->time[5] = (unsigned char) (time_management_regs->fine_time);
626 header->time[5] = (unsigned char) (time_management_regs->fine_time);
608
627
609 // F2
628 // F2
610 if (waveform_picker_regs->addr_data_f2 == (int) wf_snap_f2) {
629 if (waveform_picker_regs->addr_data_f2 == (int) wf_snap_f2) {
611 send_waveform_CWF( header, wf_snap_f2_bis, SID_SBM2_CWF_F2, spw_ioctl_send);
630 send_waveform_CWF( header, wf_snap_f2_bis, SID_SBM2_CWF_F2, spw_ioctl_send);
612 }
631 }
613 else {
632 else {
614 send_waveform_CWF( header, wf_snap_f2, SID_SBM2_CWF_F2, spw_ioctl_send);
633 send_waveform_CWF( header, wf_snap_f2, SID_SBM2_CWF_F2, spw_ioctl_send);
615 }
634 }
616 }
635 }
617
636
618 //**************
637 //**************
619 // wfp registers
638 // wfp registers
620 void set_wfp_data_shaping(unsigned char data_shaping)
639 void set_wfp_data_shaping(unsigned char data_shaping)
621 {
640 {
622 // get the parameters for the data shaping [BW SP0 SP1 R0 R1] in sy_lfr_common1 and configure the register
641 // get the parameters for the data shaping [BW SP0 SP1 R0 R1] in sy_lfr_common1 and configure the register
623 // waveform picker : [R1 R0 SP1 SP0 BW]
642 // waveform picker : [R1 R0 SP1 SP0 BW]
624 waveform_picker_regs->data_shaping =
643 waveform_picker_regs->data_shaping =
625 ( (data_shaping & 0x10) >> 4 ) // BW
644 ( (data_shaping & 0x10) >> 4 ) // BW
626 + ( (data_shaping & 0x08) >> 2 ) // SP0
645 + ( (data_shaping & 0x08) >> 2 ) // SP0
627 + ( (data_shaping & 0x04) ) // SP1
646 + ( (data_shaping & 0x04) ) // SP1
628 + ( (data_shaping & 0x02) << 2 ) // R0
647 + ( (data_shaping & 0x02) << 2 ) // R0
629 + ( (data_shaping & 0x01) << 4 ); // R1
648 + ( (data_shaping & 0x01) << 4 ); // R1
630 }
649 }
631
650
632 void set_wfp_delta_snapshot(unsigned int delta_snapshot)
651 void set_wfp_delta_snapshot(unsigned int delta_snapshot)
633 {
652 {
634 unsigned char aux = 0;
653 unsigned char aux = 0;
635 aux = delta_snapshot / 2 ;
654 aux = delta_snapshot / 2 ;
636 waveform_picker_regs->delta_snapshot = aux; // max 2 bytes
655 waveform_picker_regs->delta_snapshot = aux; // max 2 bytes
637 //waveform_picker_regs->delta_snapshot = 0x5; // max 2 bytes
656 //waveform_picker_regs->delta_snapshot = 0x5; // max 2 bytes
638 }
657 }
639
658
640 void reset_wfp_burst_enable()
659 void reset_wfp_burst_enable()
641 {
660 {
642 waveform_picker_regs->burst_enable = 0x00; // burst f2, f1, f0 enable f3, f2, f1, f0
661 waveform_picker_regs->burst_enable = 0x00; // burst f2, f1, f0 enable f3, f2, f1, f0
643 }
662 }
644
663
645 void reset_wfp_regs()
664 void reset_wfp_regs()
646 {
665 {
647 set_wfp_data_shaping(param_common.sy_lfr_common1);
666 set_wfp_data_shaping(param_common.sy_lfr_common1);
648 reset_wfp_burst_enable();
667 reset_wfp_burst_enable();
649 waveform_picker_regs->addr_data_f0 = (int) (wf_snap_f0); //
668 waveform_picker_regs->addr_data_f0 = (int) (wf_snap_f0); //
650 waveform_picker_regs->addr_data_f1 = (int) (wf_snap_f1); //
669 waveform_picker_regs->addr_data_f1 = (int) (wf_snap_f1); //
651 waveform_picker_regs->addr_data_f2 = (int) (wf_snap_f2); //
670 waveform_picker_regs->addr_data_f2 = (int) (wf_snap_f2); //
652 waveform_picker_regs->addr_data_f3 = (int) (wf_cont_f3); //
671 waveform_picker_regs->addr_data_f3 = (int) (wf_cont_f3); //
653 waveform_picker_regs->status = 0x00; //
672 waveform_picker_regs->status = 0x00; //
654 set_wfp_delta_snapshot( param_norm.sy_lfr_n_swf_p ); // time in seconds between two snapshots
673 set_wfp_delta_snapshot( param_norm.sy_lfr_n_swf_p ); // time in seconds between two snapshots
655 waveform_picker_regs->delta_f2_f1 = 0xffff; // max 4 bytes
674 waveform_picker_regs->delta_f2_f1 = 0xffff; // max 4 bytes
656 waveform_picker_regs->delta_f2_f0 = 0x17c00; // max 5 bytes
675 waveform_picker_regs->delta_f2_f0 = 0x17c00; // max 5 bytes
657 waveform_picker_regs->nb_burst_available = 0x180; // max 3 bytes, size of the buffer in burst (1 burst = 16 x 4 octets)
676 waveform_picker_regs->nb_burst_available = 0x180; // max 3 bytes, size of the buffer in burst (1 burst = 16 x 4 octets)
658 waveform_picker_regs->nb_snapshot_param = 0x7ff; // max 3 octets, 2048 - 1
677 waveform_picker_regs->nb_snapshot_param = 0x7ff; // max 3 octets, 2048 - 1
659 //waveform_picker_regs->delta_snapshot = 0x2; // max 2 bytes, = period / 2
678 //waveform_picker_regs->delta_snapshot = 0x2; // max 2 bytes, = period / 2
660 //waveform_picker_regs->delta_f2_f1 = 0x2d00; // max 4 bytes
679 //waveform_picker_regs->delta_f2_f1 = 0x2d00; // max 4 bytes
661 //waveform_picker_regs->delta_f2_f0 = 0x2f80; // max 5 bytes
680 //waveform_picker_regs->delta_f2_f0 = 0x2f80; // max 5 bytes
662 //waveform_picker_regs->nb_burst_available = 0x30; // max 3 bytes, size of the buffer in burst (1 burst = 16 x 4 octets)
681 //waveform_picker_regs->nb_burst_available = 0x30; // max 3 bytes, size of the buffer in burst (1 burst = 16 x 4 octets)
663 //waveform_picker_regs->nb_snapshot_param = 0xff; // max 3 octets, 256 - 1
682 //waveform_picker_regs->nb_snapshot_param = 0xff; // max 3 octets, 256 - 1
664 }
683 }
1 NO CONTENT: file was removed
NO CONTENT: file was removed
General Comments 0
You need to be logged in to leave comments. Login now