##// END OF EJS Templates
Minor changes
leroy -
r5:ead10fa095b7 default
parent child
Show More
@@ -1,142 +1,142
1 1 #############################################################################
2 2 # Makefile for building: PAULs_LPPMON_PLUGINS
3 # Generated by qmake (2.01a) (Qt 4.8.3) on: Thu Nov 29 14:02:20 2012
3 # Generated by qmake (2.01a) (Qt 4.8.3) on: Mon Dec 10 07:51:52 2012
4 4 # Project: PAULs_LPPMON_PLUGINS.pro
5 5 # Template: subdirs
6 6 # Command: /usr/bin/qmake-qt4 -spec /usr/lib64/qt4/mkspecs/linux-g++ -o Makefile PAULs_LPPMON_PLUGINS.pro
7 7 #############################################################################
8 8
9 9 first: make_default
10 10 MAKEFILE = Makefile
11 11 QMAKE = /usr/bin/qmake-qt4
12 12 DEL_FILE = rm -f
13 13 CHK_DIR_EXISTS= test -d
14 14 MKDIR = mkdir -p
15 15 COPY = cp -f
16 16 COPY_FILE = $(COPY)
17 17 COPY_DIR = $(COPY) -r
18 18 INSTALL_FILE = install -m 644 -p
19 19 INSTALL_PROGRAM = install -m 755 -p
20 20 INSTALL_DIR = $(COPY_DIR)
21 21 DEL_FILE = rm -f
22 22 SYMLINK = ln -f -s
23 23 DEL_DIR = rmdir
24 24 MOVE = mv -f
25 25 CHK_DIR_EXISTS= test -d
26 26 MKDIR = mkdir -p
27 27 SUBTARGETS = \
28 28 sub-rmapplugin
29 29
30 30 rmapplugin/$(MAKEFILE):
31 31 @$(CHK_DIR_EXISTS) rmapplugin/ || $(MKDIR) rmapplugin/
32 32 cd rmapplugin/ && $(QMAKE) /opt/LPPMON_PLUGINS_PAUL/rmapplugin/rmapplugin.pro -spec /usr/lib64/qt4/mkspecs/linux-g++ -o $(MAKEFILE)
33 33 sub-rmapplugin-qmake_all: FORCE
34 34 @$(CHK_DIR_EXISTS) rmapplugin/ || $(MKDIR) rmapplugin/
35 35 cd rmapplugin/ && $(QMAKE) /opt/LPPMON_PLUGINS_PAUL/rmapplugin/rmapplugin.pro -spec /usr/lib64/qt4/mkspecs/linux-g++ -o $(MAKEFILE)
36 36 sub-rmapplugin: rmapplugin/$(MAKEFILE) FORCE
37 37 cd rmapplugin/ && $(MAKE) -f $(MAKEFILE)
38 38 sub-rmapplugin-make_default-ordered: rmapplugin/$(MAKEFILE) FORCE
39 39 cd rmapplugin/ && $(MAKE) -f $(MAKEFILE)
40 40 sub-rmapplugin-make_default: rmapplugin/$(MAKEFILE) FORCE
41 41 cd rmapplugin/ && $(MAKE) -f $(MAKEFILE)
42 42 sub-rmapplugin-make_first-ordered: rmapplugin/$(MAKEFILE) FORCE
43 43 cd rmapplugin/ && $(MAKE) -f $(MAKEFILE) first
44 44 sub-rmapplugin-make_first: rmapplugin/$(MAKEFILE) FORCE
45 45 cd rmapplugin/ && $(MAKE) -f $(MAKEFILE) first
46 46 sub-rmapplugin-all-ordered: rmapplugin/$(MAKEFILE) FORCE
47 47 cd rmapplugin/ && $(MAKE) -f $(MAKEFILE) all
48 48 sub-rmapplugin-all: rmapplugin/$(MAKEFILE) FORCE
49 49 cd rmapplugin/ && $(MAKE) -f $(MAKEFILE) all
50 50 sub-rmapplugin-clean-ordered: rmapplugin/$(MAKEFILE) FORCE
51 51 cd rmapplugin/ && $(MAKE) -f $(MAKEFILE) clean
52 52 sub-rmapplugin-clean: rmapplugin/$(MAKEFILE) FORCE
53 53 cd rmapplugin/ && $(MAKE) -f $(MAKEFILE) clean
54 54 sub-rmapplugin-distclean-ordered: rmapplugin/$(MAKEFILE) FORCE
55 55 cd rmapplugin/ && $(MAKE) -f $(MAKEFILE) distclean
56 56 sub-rmapplugin-distclean: rmapplugin/$(MAKEFILE) FORCE
57 57 cd rmapplugin/ && $(MAKE) -f $(MAKEFILE) distclean
58 58 sub-rmapplugin-install_subtargets-ordered: rmapplugin/$(MAKEFILE) FORCE
59 59 cd rmapplugin/ && $(MAKE) -f $(MAKEFILE) install
60 60 sub-rmapplugin-install_subtargets: rmapplugin/$(MAKEFILE) FORCE
61 61 cd rmapplugin/ && $(MAKE) -f $(MAKEFILE) install
62 62 sub-rmapplugin-uninstall_subtargets-ordered: rmapplugin/$(MAKEFILE) FORCE
63 63 cd rmapplugin/ && $(MAKE) -f $(MAKEFILE) uninstall
64 64 sub-rmapplugin-uninstall_subtargets: rmapplugin/$(MAKEFILE) FORCE
65 65 cd rmapplugin/ && $(MAKE) -f $(MAKEFILE) uninstall
66 66
67 67 Makefile: PAULs_LPPMON_PLUGINS.pro /usr/lib64/qt4/mkspecs/linux-g++/qmake.conf /usr/lib64/qt4/mkspecs/common/unix.conf \
68 68 /usr/lib64/qt4/mkspecs/common/linux.conf \
69 69 /usr/lib64/qt4/mkspecs/common/gcc-base.conf \
70 70 /usr/lib64/qt4/mkspecs/common/gcc-base-unix.conf \
71 71 /usr/lib64/qt4/mkspecs/common/g++-base.conf \
72 72 /usr/lib64/qt4/mkspecs/common/g++-unix.conf \
73 73 /usr/lib64/qt4/mkspecs/qconfig.pri \
74 74 /usr/lib64/qt4/mkspecs/modules/qt_webkit_version.pri \
75 75 /usr/lib64/qt4/mkspecs/features/qt_functions.prf \
76 76 /usr/lib64/qt4/mkspecs/features/qt_config.prf \
77 77 /usr/lib64/qt4/mkspecs/features/exclusive_builds.prf \
78 78 /usr/lib64/qt4/mkspecs/features/default_pre.prf \
79 79 /usr/lib64/qt4/mkspecs/features/release.prf \
80 80 /usr/lib64/qt4/mkspecs/features/default_post.prf \
81 81 /usr/lib64/qt4/mkspecs/features/unix/gdb_dwarf_index.prf \
82 82 /usr/lib64/qt4/mkspecs/features/warn_on.prf \
83 83 /usr/lib64/qt4/mkspecs/features/qt.prf \
84 84 /usr/lib64/qt4/mkspecs/features/unix/thread.prf \
85 85 /usr/lib64/qt4/mkspecs/features/moc.prf \
86 86 /usr/lib64/qt4/mkspecs/features/resources.prf \
87 87 /usr/lib64/qt4/mkspecs/features/uic.prf \
88 88 /usr/lib64/qt4/mkspecs/features/yacc.prf \
89 89 /usr/lib64/qt4/mkspecs/features/lex.prf \
90 90 /usr/lib64/qt4/mkspecs/features/include_source_dir.prf
91 91 $(QMAKE) -spec /usr/lib64/qt4/mkspecs/linux-g++ -o Makefile PAULs_LPPMON_PLUGINS.pro
92 92 /usr/lib64/qt4/mkspecs/common/unix.conf:
93 93 /usr/lib64/qt4/mkspecs/common/linux.conf:
94 94 /usr/lib64/qt4/mkspecs/common/gcc-base.conf:
95 95 /usr/lib64/qt4/mkspecs/common/gcc-base-unix.conf:
96 96 /usr/lib64/qt4/mkspecs/common/g++-base.conf:
97 97 /usr/lib64/qt4/mkspecs/common/g++-unix.conf:
98 98 /usr/lib64/qt4/mkspecs/qconfig.pri:
99 99 /usr/lib64/qt4/mkspecs/modules/qt_webkit_version.pri:
100 100 /usr/lib64/qt4/mkspecs/features/qt_functions.prf:
101 101 /usr/lib64/qt4/mkspecs/features/qt_config.prf:
102 102 /usr/lib64/qt4/mkspecs/features/exclusive_builds.prf:
103 103 /usr/lib64/qt4/mkspecs/features/default_pre.prf:
104 104 /usr/lib64/qt4/mkspecs/features/release.prf:
105 105 /usr/lib64/qt4/mkspecs/features/default_post.prf:
106 106 /usr/lib64/qt4/mkspecs/features/unix/gdb_dwarf_index.prf:
107 107 /usr/lib64/qt4/mkspecs/features/warn_on.prf:
108 108 /usr/lib64/qt4/mkspecs/features/qt.prf:
109 109 /usr/lib64/qt4/mkspecs/features/unix/thread.prf:
110 110 /usr/lib64/qt4/mkspecs/features/moc.prf:
111 111 /usr/lib64/qt4/mkspecs/features/resources.prf:
112 112 /usr/lib64/qt4/mkspecs/features/uic.prf:
113 113 /usr/lib64/qt4/mkspecs/features/yacc.prf:
114 114 /usr/lib64/qt4/mkspecs/features/lex.prf:
115 115 /usr/lib64/qt4/mkspecs/features/include_source_dir.prf:
116 116 qmake: qmake_all FORCE
117 117 @$(QMAKE) -spec /usr/lib64/qt4/mkspecs/linux-g++ -o Makefile PAULs_LPPMON_PLUGINS.pro
118 118
119 119 qmake_all: sub-rmapplugin-qmake_all FORCE
120 120
121 121 make_default: sub-rmapplugin-make_default-ordered FORCE
122 122 make_first: sub-rmapplugin-make_first-ordered FORCE
123 123 all: sub-rmapplugin-all-ordered FORCE
124 124 clean: sub-rmapplugin-clean-ordered FORCE
125 125 distclean: sub-rmapplugin-distclean-ordered FORCE
126 126 -$(DEL_FILE) Makefile
127 127 install_subtargets: sub-rmapplugin-install_subtargets-ordered FORCE
128 128 uninstall_subtargets: sub-rmapplugin-uninstall_subtargets-ordered FORCE
129 129
130 130 sub-rmapplugin-check_ordered: rmapplugin/$(MAKEFILE)
131 131 cd rmapplugin/ && $(MAKE) -f $(MAKEFILE) check
132 132 check: sub-rmapplugin-check_ordered
133 133
134 134 mocclean: compiler_moc_header_clean compiler_moc_source_clean
135 135
136 136 mocables: compiler_moc_header_make_all compiler_moc_source_make_all
137 137 install: install_subtargets FORCE
138 138
139 139 uninstall: uninstall_subtargets FORCE
140 140
141 141 FORCE:
142 142
@@ -1,11 +1,10
1 1 TEMPLATE = subdirs
2 2 CONFIG += ordered
3 3
4 4 win32:LPPMONCFG = /opt/lppmon
5 5 unix:LPPMONCFG = /etc/lppmon
6 6
7 7 SUBDIRS = \
8 8 rmapplugin
9 9
10
11 10 #include( $${LPPMONCFG}/lppmonplugin.prf)
@@ -1,264 +1,264
1 1 <?xml version="1.0" encoding="UTF-8"?>
2 2 <!DOCTYPE QtCreatorProject>
3 <!-- Written by Qt Creator 2.4.1, 2012-12-07T14:08:53. -->
3 <!-- Written by Qt Creator 2.4.1, 2012-12-10T08:03:59. -->
4 4 <qtcreator>
5 5 <data>
6 6 <variable>ProjectExplorer.Project.ActiveTarget</variable>
7 7 <value type="int">0</value>
8 8 </data>
9 9 <data>
10 10 <variable>ProjectExplorer.Project.EditorSettings</variable>
11 11 <valuemap type="QVariantMap">
12 12 <value type="bool" key="EditorConfiguration.AutoIndent">true</value>
13 13 <value type="bool" key="EditorConfiguration.AutoSpacesForTabs">false</value>
14 14 <valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.0">
15 15 <value type="QString" key="language">Cpp</value>
16 16 <valuemap type="QVariantMap" key="value">
17 17 <value type="QString" key="CurrentPreferences">CppGlobal</value>
18 18 </valuemap>
19 19 </valuemap>
20 20 <valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.1">
21 21 <value type="QString" key="language">QmlJS</value>
22 22 <valuemap type="QVariantMap" key="value">
23 23 <value type="QString" key="CurrentPreferences">QmlJSGlobal</value>
24 24 </valuemap>
25 25 </valuemap>
26 26 <value type="int" key="EditorConfiguration.CodeStyle.Count">2</value>
27 27 <value type="QByteArray" key="EditorConfiguration.Codec">System</value>
28 28 <value type="bool" key="EditorConfiguration.ConstrainTooltips">false</value>
29 29 <value type="int" key="EditorConfiguration.IndentSize">4</value>
30 30 <value type="bool" key="EditorConfiguration.MouseNavigation">true</value>
31 31 <value type="int" key="EditorConfiguration.PaddingMode">1</value>
32 32 <value type="bool" key="EditorConfiguration.ScrollWheelZooming">true</value>
33 33 <value type="int" key="EditorConfiguration.SmartBackspaceBehavior">0</value>
34 34 <value type="bool" key="EditorConfiguration.SpacesForTabs">true</value>
35 35 <value type="int" key="EditorConfiguration.TabKeyBehavior">0</value>
36 36 <value type="int" key="EditorConfiguration.TabSize">8</value>
37 37 <value type="bool" key="EditorConfiguration.UseGlobal">true</value>
38 38 <value type="int" key="EditorConfiguration.Utf8BomBehavior">1</value>
39 39 <value type="bool" key="EditorConfiguration.addFinalNewLine">true</value>
40 40 <value type="bool" key="EditorConfiguration.cleanIndentation">true</value>
41 41 <value type="bool" key="EditorConfiguration.cleanWhitespace">true</value>
42 42 <value type="bool" key="EditorConfiguration.inEntireDocument">false</value>
43 43 </valuemap>
44 44 </data>
45 45 <data>
46 46 <variable>ProjectExplorer.Project.PluginSettings</variable>
47 47 <valuemap type="QVariantMap"/>
48 48 </data>
49 49 <data>
50 50 <variable>ProjectExplorer.Project.Target.0</variable>
51 51 <valuemap type="QVariantMap">
52 52 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Desktop</value>
53 53 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Desktop</value>
54 54 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Target.DesktopTarget</value>
55 55 <value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">0</value>
56 56 <value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
57 57 <value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
58 58 <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
59 59 <value type="QString" key="ProjectExplorer.BuildCOnfiguration.ToolChain">ProjectExplorer.ToolChain.Gcc:/usr/bin/g++.x86-linux-generic-elf-64bit./usr/bin/gdb</value>
60 60 <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
61 61 <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
62 62 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
63 63 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
64 64 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
65 65 <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">false</value>
66 66 <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibraryAuto">true</value>
67 67 <value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
68 68 <value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
69 69 </valuemap>
70 70 <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
71 71 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
72 72 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
73 73 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
74 74 <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
75 75 <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
76 76 <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
77 77 </valuemap>
78 78 <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
79 79 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
80 80 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
81 81 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
82 82 </valuemap>
83 83 <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
84 84 <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
85 85 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
86 86 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
87 87 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
88 88 <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
89 89 <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
90 90 <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
91 91 </valuemap>
92 92 <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
93 93 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
94 94 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
95 95 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
96 96 </valuemap>
97 97 <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
98 98 <value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
99 99 <valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
100 100 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Qt 4.8.2 in PATH (System) Release</value>
101 101 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
102 102 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
103 103 <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
104 104 <value type="QString" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildDirectory">/opt/LPPMON_PLUGINS_PAUL</value>
105 105 <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.QtVersionId">1</value>
106 106 <value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">false</value>
107 107 </valuemap>
108 108 <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.1">
109 109 <value type="QString" key="ProjectExplorer.BuildCOnfiguration.ToolChain">ProjectExplorer.ToolChain.Gcc:/usr/bin/g++.x86-linux-generic-elf-64bit./usr/bin/gdb</value>
110 110 <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
111 111 <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
112 112 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
113 113 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
114 114 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
115 115 <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">false</value>
116 116 <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibraryAuto">true</value>
117 117 <value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
118 118 <value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
119 119 </valuemap>
120 120 <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
121 121 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
122 122 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
123 123 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
124 124 <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
125 125 <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
126 126 <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
127 127 </valuemap>
128 128 <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
129 129 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
130 130 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
131 131 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
132 132 </valuemap>
133 133 <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
134 134 <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
135 135 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
136 136 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
137 137 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
138 138 <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
139 139 <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
140 140 <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
141 141 </valuemap>
142 142 <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
143 143 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
144 144 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
145 145 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
146 146 </valuemap>
147 147 <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
148 148 <value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
149 149 <valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
150 150 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Qt 4.8.2 in PATH (System) Debug</value>
151 151 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
152 152 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
153 153 <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value>
154 154 <value type="QString" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildDirectory">/opt/LPPMON_PLUGINS_PAUL</value>
155 155 <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.QtVersionId">1</value>
156 156 <value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">false</value>
157 157 </valuemap>
158 158 <value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">2</value>
159 159 <valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
160 160 <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
161 161 <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
162 162 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy</value>
163 163 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
164 164 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
165 165 </valuemap>
166 166 <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
167 167 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">No deployment</value>
168 168 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
169 169 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
170 170 </valuemap>
171 171 <value type="int" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
172 172 <valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
173 173 <value type="bool" key="Analyzer.Project.UseGlobal">true</value>
174 174 <value type="bool" key="Analyzer.Project.UseGlobal">true</value>
175 175 <valuelist type="QVariantList" key="Analyzer.Valgrind.AddedSuppressionFiles"/>
176 176 <valuelist type="QVariantList" key="Analyzer.Valgrind.AddedSuppressionFiles"/>
177 177 <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectBusEvents">false</value>
178 178 <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectBusEvents">false</value>
179 179 <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectSystime">false</value>
180 180 <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectSystime">false</value>
181 181 <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableBranchSim">false</value>
182 182 <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableBranchSim">false</value>
183 183 <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableCacheSim">false</value>
184 184 <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableCacheSim">false</value>
185 185 <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableEventToolTips">true</value>
186 186 <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableEventToolTips">true</value>
187 187 <value type="double" key="Analyzer.Valgrind.Callgrind.MinimumCostRatio">0.01</value>
188 188 <value type="double" key="Analyzer.Valgrind.Callgrind.MinimumCostRatio">0.01</value>
189 189 <value type="double" key="Analyzer.Valgrind.Callgrind.VisualisationMinimumCostRatio">10</value>
190 190 <value type="double" key="Analyzer.Valgrind.Callgrind.VisualisationMinimumCostRatio">10</value>
191 191 <value type="bool" key="Analyzer.Valgrind.FilterExternalIssues">true</value>
192 192 <value type="bool" key="Analyzer.Valgrind.FilterExternalIssues">true</value>
193 193 <value type="int" key="Analyzer.Valgrind.NumCallers">25</value>
194 194 <value type="int" key="Analyzer.Valgrind.NumCallers">25</value>
195 195 <valuelist type="QVariantList" key="Analyzer.Valgrind.RemovedSuppressionFiles"/>
196 196 <valuelist type="QVariantList" key="Analyzer.Valgrind.RemovedSuppressionFiles"/>
197 197 <value type="bool" key="Analyzer.Valgrind.TrackOrigins">true</value>
198 198 <value type="bool" key="Analyzer.Valgrind.TrackOrigins">true</value>
199 199 <value type="QString" key="Analyzer.Valgrind.ValgrindExecutable">valgrind</value>
200 200 <value type="QString" key="Analyzer.Valgrind.ValgrindExecutable">valgrind</value>
201 201 <valuelist type="QVariantList" key="Analyzer.Valgrind.VisibleErrorKinds">
202 202 <value type="int">0</value>
203 203 <value type="int">1</value>
204 204 <value type="int">2</value>
205 205 <value type="int">3</value>
206 206 <value type="int">4</value>
207 207 <value type="int">5</value>
208 208 <value type="int">6</value>
209 209 <value type="int">7</value>
210 210 <value type="int">8</value>
211 211 <value type="int">9</value>
212 212 <value type="int">10</value>
213 213 <value type="int">11</value>
214 214 <value type="int">12</value>
215 215 <value type="int">13</value>
216 216 <value type="int">14</value>
217 217 </valuelist>
218 218 <valuelist type="QVariantList" key="Analyzer.Valgrind.VisibleErrorKinds">
219 219 <value type="int">0</value>
220 220 <value type="int">1</value>
221 221 <value type="int">2</value>
222 222 <value type="int">3</value>
223 223 <value type="int">4</value>
224 224 <value type="int">5</value>
225 225 <value type="int">6</value>
226 226 <value type="int">7</value>
227 227 <value type="int">8</value>
228 228 <value type="int">9</value>
229 229 <value type="int">10</value>
230 230 <value type="int">11</value>
231 231 <value type="int">12</value>
232 232 <value type="int">13</value>
233 233 <value type="int">14</value>
234 234 </valuelist>
235 235 <value type="QString" key="ProjectExplorer.CustomExecutableRunConfiguration.Arguments"></value>
236 236 <value type="int" key="ProjectExplorer.CustomExecutableRunConfiguration.BaseEnvironmentBase">2</value>
237 237 <value type="QString" key="ProjectExplorer.CustomExecutableRunConfiguration.Executable">lppmon</value>
238 238 <value type="bool" key="ProjectExplorer.CustomExecutableRunConfiguration.UseTerminal">false</value>
239 239 <valuelist type="QVariantList" key="ProjectExplorer.CustomExecutableRunConfiguration.UserEnvironmentChanges"/>
240 240 <value type="QString" key="ProjectExplorer.CustomExecutableRunConfiguration.WorkingDirectory">%{buildDir}</value>
241 241 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Run lppmon</value>
242 242 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
243 243 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.CustomExecutableRunConfiguration</value>
244 244 <value type="uint" key="RunConfiguration.QmlDebugServerPort">3768</value>
245 245 <value type="bool" key="RunConfiguration.UseCppDebugger">true</value>
246 246 <value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
247 247 <value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">false</value>
248 248 </valuemap>
249 249 <value type="int" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
250 250 </valuemap>
251 251 </data>
252 252 <data>
253 253 <variable>ProjectExplorer.Project.TargetCount</variable>
254 254 <value type="int">1</value>
255 255 </data>
256 256 <data>
257 257 <variable>ProjectExplorer.Project.Updater.EnvironmentId</variable>
258 258 <value type="QString">{2e58a81f-9962-4bba-ae6b-760177f0656c}</value>
259 259 </data>
260 260 <data>
261 261 <variable>ProjectExplorer.Project.Updater.FileVersion</variable>
262 262 <value type="int">10</value>
263 263 </data>
264 264 </qtcreator>
@@ -1,428 +1,449
1 1 #############################################################################
2 2 # Makefile for building: librmapplugin.so.1.0.0
3 # Generated by qmake (2.01a) (Qt 4.8.3) on: Mon Dec 3 13:45:43 2012
3 # Generated by qmake (2.01a) (Qt 4.8.3) on: Mon Dec 10 07:51:52 2012
4 4 # Project: rmapplugin.pro
5 5 # Template: lib
6 6 # Command: /usr/bin/qmake-qt4 -spec /usr/lib64/qt4/mkspecs/linux-g++ -o Makefile rmapplugin.pro
7 7 #############################################################################
8 8
9 9 ####### Compiler, tools and options
10 10
11 11 CC = gcc
12 12 CXX = g++
13 13 DEFINES = -DPLUGIN=rmapplugin -DPLUGINHEADER="\"rmapplugin.h\"" -Ddriver_Name="\"RMAPPlugin\"" -Ddriver_Author="\"Paul Leroy paul.leroy@lpp.polytechnique.fr\"" -Ddriver_Version="\"1.1.2\"" -Ddriver_Description="\"AHB bus controler, works with Gaisler's AHB plugn' play bus.\"" -Ddriver_can_be_root=1 -Ddriver_can_be_child=0 -Ddriver_VID=0 -Ddriver_PID=0 -DUNIXTRANSLATIONPATH -DLPPMON_PLUGINS_INSTALL_PATH="QDir::homePath()+\"/.lppmon/plugins\"" -DLPPMON_TRANSLATION_PATH="\"/etc/lppmon/translations\"" -DLPPMONPLUGIN_LIBRARY -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED
14 14 CFLAGS = -pipe -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -O2 -Wall -W -D_REENTRANT -fPIC $(DEFINES)
15 15 CXXFLAGS = -pipe -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -O2 -I/usr/include/python2.7 -I/usr/include/python2.7 -Wall -W -D_REENTRANT -fPIC $(DEFINES)
16 16 INCPATH = -I/usr/lib64/qt4/mkspecs/linux-g++ -I. -I/usr/include/QtCore -I/usr/include/QtNetwork -I/usr/include/QtGui -I/usr/include -I. -I../common_PLE -I../spw_usb_driver_v2.61/inc -I/usr/include/lppmon/pluginsInterface -I/usr/include/PythonQt -Imoc
17 17 LINK = g++
18 18 LFLAGS = -Wl,-O1 -Wl,-z,relro -shared -Wl,-soname,librmapplugin.so.1
19 19 LIBS = $(SUBLIBS) -L/usr/lib64 ../spw_usb_driver_v2.61/lib/x86_64/libSpaceWireUSBAPI.so ../spw_usb_driver_v2.61/lib/x86_64/libConfigLibraryUSB.so -ldl -lutil -lm -lpython2.7 -lPythonQt_QtAll -lPythonQt -lQtGui -lQtNetwork -lQtCore -lpthread
20 20 AR = ar cqs
21 21 RANLIB =
22 22 QMAKE = /usr/bin/qmake-qt4
23 23 TAR = tar -cf
24 24 COMPRESS = gzip -9f
25 25 COPY = cp -f
26 26 SED = sed
27 27 COPY_FILE = $(COPY)
28 28 COPY_DIR = $(COPY) -r
29 29 STRIP =
30 30 INSTALL_FILE = install -m 644 -p
31 31 INSTALL_DIR = $(COPY_DIR)
32 32 INSTALL_PROGRAM = install -m 755 -p
33 33 DEL_FILE = rm -f
34 34 SYMLINK = ln -f -s
35 35 DEL_DIR = rmdir
36 36 MOVE = mv -f
37 37 CHK_DIR_EXISTS= test -d
38 38 MKDIR = mkdir -p
39 39
40 40 ####### Output directory
41 41
42 42 OBJECTS_DIR = obj/
43 43
44 44 ####### Files
45 45
46 46 SOURCES = rmapplugin.cpp \
47 47 rmappluginui.cpp \
48 48 rmapoperations.cpp \
49 49 ccsds.cpp \
50 50 spwpacketreceiver.cpp \
51 51 ../common_PLE/qipdialogbox.cpp \
52 52 ../common_PLE/gresbstatusenquiry.cpp \
53 53 spectralmatricesdmasimulator.cpp \
54 54 rmappluginpythonwrapper.cpp \
55 55 stardundee.cpp \
56 56 gresb.cpp \
57 bridge.cpp \
57 58 /usr/include/lppmon/pluginsInterface/lppmonplugininterface.cpp moc/moc_rmappluginui.cpp \
58 59 moc/moc_rmapplugin.cpp \
59 60 moc/moc_spwpacketreceiver.cpp \
60 61 moc/moc_qipdialogbox.cpp \
61 62 moc/moc_gresbstatusenquiry.cpp \
62 63 moc/moc_spectralmatricesdmasimulator.cpp \
63 64 moc/moc_rmappluginpythonwrapper.cpp \
64 65 moc/moc_stardundee.cpp \
65 66 moc/moc_gresb.cpp \
67 moc/moc_bridge.cpp \
66 68 moc/moc_genericPySysdriver.cpp \
67 69 moc/moc_lppmonplugin.cpp
68 70 OBJECTS = obj/rmapplugin.o \
69 71 obj/rmappluginui.o \
70 72 obj/rmapoperations.o \
71 73 obj/ccsds.o \
72 74 obj/spwpacketreceiver.o \
73 75 obj/qipdialogbox.o \
74 76 obj/gresbstatusenquiry.o \
75 77 obj/spectralmatricesdmasimulator.o \
76 78 obj/rmappluginpythonwrapper.o \
77 79 obj/stardundee.o \
78 80 obj/gresb.o \
81 obj/bridge.o \
79 82 obj/lppmonplugininterface.o \
80 83 obj/moc_rmappluginui.o \
81 84 obj/moc_rmapplugin.o \
82 85 obj/moc_spwpacketreceiver.o \
83 86 obj/moc_qipdialogbox.o \
84 87 obj/moc_gresbstatusenquiry.o \
85 88 obj/moc_spectralmatricesdmasimulator.o \
86 89 obj/moc_rmappluginpythonwrapper.o \
87 90 obj/moc_stardundee.o \
88 91 obj/moc_gresb.o \
92 obj/moc_bridge.o \
89 93 obj/moc_genericPySysdriver.o \
90 94 obj/moc_lppmonplugin.o
91 95 DIST = /usr/lib64/qt4/mkspecs/common/unix.conf \
92 96 /usr/lib64/qt4/mkspecs/common/linux.conf \
93 97 /usr/lib64/qt4/mkspecs/common/gcc-base.conf \
94 98 /usr/lib64/qt4/mkspecs/common/gcc-base-unix.conf \
95 99 /usr/lib64/qt4/mkspecs/common/g++-base.conf \
96 100 /usr/lib64/qt4/mkspecs/common/g++-unix.conf \
97 101 /usr/lib64/qt4/mkspecs/qconfig.pri \
98 102 /usr/lib64/qt4/mkspecs/modules/qt_webkit_version.pri \
99 103 /usr/lib64/qt4/mkspecs/features/qt_functions.prf \
100 104 /usr/lib64/qt4/mkspecs/features/qt_config.prf \
101 105 /usr/lib64/qt4/mkspecs/features/exclusive_builds.prf \
102 106 /usr/lib64/qt4/mkspecs/features/default_pre.prf \
103 107 /usr/lib64/qt4/mkspecs/features/release.prf \
104 108 /usr/lib64/qt4/mkspecs/features/default_post.prf \
105 109 /usr/lib64/qt4/mkspecs/features/lppmonplugin.prf \
106 110 /usr/lib64/qt4/mkspecs/features/pythonqt.prf \
107 111 /usr/lib64/qt4/mkspecs/features/unix/gdb_dwarf_index.prf \
108 112 /usr/lib64/qt4/mkspecs/features/warn_on.prf \
109 113 /usr/lib64/qt4/mkspecs/features/qt.prf \
110 114 /usr/lib64/qt4/mkspecs/features/unix/thread.prf \
111 115 /usr/lib64/qt4/mkspecs/features/moc.prf \
112 116 /usr/lib64/qt4/mkspecs/features/resources.prf \
113 117 /usr/lib64/qt4/mkspecs/features/uic.prf \
114 118 /usr/lib64/qt4/mkspecs/features/yacc.prf \
115 119 /usr/lib64/qt4/mkspecs/features/lex.prf \
116 120 /usr/lib64/qt4/mkspecs/features/include_source_dir.prf \
117 121 rmapplugin.pro
118 122 QMAKE_TARGET = rmapplugin
119 123 DESTDIR = bin/
120 124 TARGET = librmapplugin.so.1.0.0
121 125 TARGETA = bin/librmapplugin.a
122 126 TARGETD = librmapplugin.so.1.0.0
123 127 TARGET0 = librmapplugin.so
124 128 TARGET1 = librmapplugin.so.1
125 129 TARGET2 = librmapplugin.so.1.0
126 130
127 131 first: all
128 132 ####### Implicit rules
129 133
130 134 .SUFFIXES: .o .c .cpp .cc .cxx .C
131 135
132 136 .cpp.o:
133 137 $(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<"
134 138
135 139 .cc.o:
136 140 $(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<"
137 141
138 142 .cxx.o:
139 143 $(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<"
140 144
141 145 .C.o:
142 146 $(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<"
143 147
144 148 .c.o:
145 149 $(CC) -c $(CFLAGS) $(INCPATH) -o "$@" "$<"
146 150
147 151 ####### Build rules
148 152
149 153 all: Makefile bin/$(TARGET)
150 154
151 155 bin/$(TARGET): $(OBJECTS) $(SUBLIBS) $(OBJCOMP)
152 156 @$(CHK_DIR_EXISTS) bin/ || $(MKDIR) bin/
153 157 -$(DEL_FILE) $(TARGET) $(TARGET0) $(TARGET1) $(TARGET2)
154 158 $(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(LIBS) $(OBJCOMP)
155 159 -ln -s $(TARGET) $(TARGET0)
156 160 -ln -s $(TARGET) $(TARGET1)
157 161 -ln -s $(TARGET) $(TARGET2)
158 162 -$(DEL_FILE) bin/$(TARGET)
159 163 -$(DEL_FILE) bin/$(TARGET0)
160 164 -$(DEL_FILE) bin/$(TARGET1)
161 165 -$(DEL_FILE) bin/$(TARGET2)
162 166 -$(MOVE) $(TARGET) $(TARGET0) $(TARGET1) $(TARGET2) bin/
163 167
164 168
165 169
166 170 staticlib: $(TARGETA)
167 171
168 172 $(TARGETA): $(OBJECTS) $(OBJCOMP)
169 173 -$(DEL_FILE) $(TARGETA)
170 174 $(AR) $(TARGETA) $(OBJECTS)
171 175
172 176 Makefile: rmapplugin.pro /usr/lib64/qt4/mkspecs/linux-g++/qmake.conf /usr/lib64/qt4/mkspecs/common/unix.conf \
173 177 /usr/lib64/qt4/mkspecs/common/linux.conf \
174 178 /usr/lib64/qt4/mkspecs/common/gcc-base.conf \
175 179 /usr/lib64/qt4/mkspecs/common/gcc-base-unix.conf \
176 180 /usr/lib64/qt4/mkspecs/common/g++-base.conf \
177 181 /usr/lib64/qt4/mkspecs/common/g++-unix.conf \
178 182 /usr/lib64/qt4/mkspecs/qconfig.pri \
179 183 /usr/lib64/qt4/mkspecs/modules/qt_webkit_version.pri \
180 184 /usr/lib64/qt4/mkspecs/features/qt_functions.prf \
181 185 /usr/lib64/qt4/mkspecs/features/qt_config.prf \
182 186 /usr/lib64/qt4/mkspecs/features/exclusive_builds.prf \
183 187 /usr/lib64/qt4/mkspecs/features/default_pre.prf \
184 188 /usr/lib64/qt4/mkspecs/features/release.prf \
185 189 /usr/lib64/qt4/mkspecs/features/default_post.prf \
186 190 /usr/lib64/qt4/mkspecs/features/lppmonplugin.prf \
187 191 /usr/lib64/qt4/mkspecs/features/pythonqt.prf \
188 192 /usr/lib64/qt4/mkspecs/features/unix/gdb_dwarf_index.prf \
189 193 /usr/lib64/qt4/mkspecs/features/warn_on.prf \
190 194 /usr/lib64/qt4/mkspecs/features/qt.prf \
191 195 /usr/lib64/qt4/mkspecs/features/unix/thread.prf \
192 196 /usr/lib64/qt4/mkspecs/features/moc.prf \
193 197 /usr/lib64/qt4/mkspecs/features/resources.prf \
194 198 /usr/lib64/qt4/mkspecs/features/uic.prf \
195 199 /usr/lib64/qt4/mkspecs/features/yacc.prf \
196 200 /usr/lib64/qt4/mkspecs/features/lex.prf \
197 201 /usr/lib64/qt4/mkspecs/features/include_source_dir.prf \
198 202 /usr/lib64/libQtGui.prl \
199 203 /usr/lib64/libQtCore.prl \
200 204 /usr/lib64/libQtNetwork.prl
201 205 $(QMAKE) -spec /usr/lib64/qt4/mkspecs/linux-g++ -o Makefile rmapplugin.pro
202 206 /usr/lib64/qt4/mkspecs/common/unix.conf:
203 207 /usr/lib64/qt4/mkspecs/common/linux.conf:
204 208 /usr/lib64/qt4/mkspecs/common/gcc-base.conf:
205 209 /usr/lib64/qt4/mkspecs/common/gcc-base-unix.conf:
206 210 /usr/lib64/qt4/mkspecs/common/g++-base.conf:
207 211 /usr/lib64/qt4/mkspecs/common/g++-unix.conf:
208 212 /usr/lib64/qt4/mkspecs/qconfig.pri:
209 213 /usr/lib64/qt4/mkspecs/modules/qt_webkit_version.pri:
210 214 /usr/lib64/qt4/mkspecs/features/qt_functions.prf:
211 215 /usr/lib64/qt4/mkspecs/features/qt_config.prf:
212 216 /usr/lib64/qt4/mkspecs/features/exclusive_builds.prf:
213 217 /usr/lib64/qt4/mkspecs/features/default_pre.prf:
214 218 /usr/lib64/qt4/mkspecs/features/release.prf:
215 219 /usr/lib64/qt4/mkspecs/features/default_post.prf:
216 220 /usr/lib64/qt4/mkspecs/features/lppmonplugin.prf:
217 221 /usr/lib64/qt4/mkspecs/features/pythonqt.prf:
218 222 /usr/lib64/qt4/mkspecs/features/unix/gdb_dwarf_index.prf:
219 223 /usr/lib64/qt4/mkspecs/features/warn_on.prf:
220 224 /usr/lib64/qt4/mkspecs/features/qt.prf:
221 225 /usr/lib64/qt4/mkspecs/features/unix/thread.prf:
222 226 /usr/lib64/qt4/mkspecs/features/moc.prf:
223 227 /usr/lib64/qt4/mkspecs/features/resources.prf:
224 228 /usr/lib64/qt4/mkspecs/features/uic.prf:
225 229 /usr/lib64/qt4/mkspecs/features/yacc.prf:
226 230 /usr/lib64/qt4/mkspecs/features/lex.prf:
227 231 /usr/lib64/qt4/mkspecs/features/include_source_dir.prf:
228 232 /usr/lib64/libQtGui.prl:
229 233 /usr/lib64/libQtCore.prl:
230 234 /usr/lib64/libQtNetwork.prl:
231 235 qmake: FORCE
232 236 @$(QMAKE) -spec /usr/lib64/qt4/mkspecs/linux-g++ -o Makefile rmapplugin.pro
233 237
234 238 dist:
235 239 @$(CHK_DIR_EXISTS) obj/rmapplugin1.0.0 || $(MKDIR) obj/rmapplugin1.0.0
236 $(COPY_FILE) --parents $(SOURCES) $(DIST) obj/rmapplugin1.0.0/ && $(COPY_FILE) --parents rmappluginui.h rmapplugin.h rmapoperations.h ccsds.h spwpacketreceiver.h ../common_PLE/qipdialogbox.h ../common_PLE/gresbstatusenquiry.h spectralmatricesdmasimulator.h rmappluginpythonwrapper.h stardundee.h ../spw_usb_driver_v2.61/inc/spw_usb_api.h ../spw_usb_driver_v2.61/inc/spw_config_library.h gresb.h /usr/include/genericPySysdriver.h /usr/include/lppmonplugin.h obj/rmapplugin1.0.0/ && $(COPY_FILE) --parents rmapplugin.cpp rmappluginui.cpp rmapoperations.cpp ccsds.cpp spwpacketreceiver.cpp ../common_PLE/qipdialogbox.cpp ../common_PLE/gresbstatusenquiry.cpp spectralmatricesdmasimulator.cpp rmappluginpythonwrapper.cpp stardundee.cpp gresb.cpp /usr/include/lppmon/pluginsInterface/lppmonplugininterface.cpp obj/rmapplugin1.0.0/ && (cd `dirname obj/rmapplugin1.0.0` && $(TAR) rmapplugin1.0.0.tar rmapplugin1.0.0 && $(COMPRESS) rmapplugin1.0.0.tar) && $(MOVE) `dirname obj/rmapplugin1.0.0`/rmapplugin1.0.0.tar.gz . && $(DEL_FILE) -r obj/rmapplugin1.0.0
240 $(COPY_FILE) --parents $(SOURCES) $(DIST) obj/rmapplugin1.0.0/ && $(COPY_FILE) --parents rmappluginui.h rmapplugin.h rmapoperations.h ccsds.h spwpacketreceiver.h ../common_PLE/qipdialogbox.h ../common_PLE/gresbstatusenquiry.h spectralmatricesdmasimulator.h rmappluginpythonwrapper.h stardundee.h ../spw_usb_driver_v2.61/inc/spw_usb_api.h ../spw_usb_driver_v2.61/inc/spw_config_library.h gresb.h bridge.h /usr/include/genericPySysdriver.h /usr/include/lppmonplugin.h obj/rmapplugin1.0.0/ && $(COPY_FILE) --parents rmapplugin.cpp rmappluginui.cpp rmapoperations.cpp ccsds.cpp spwpacketreceiver.cpp ../common_PLE/qipdialogbox.cpp ../common_PLE/gresbstatusenquiry.cpp spectralmatricesdmasimulator.cpp rmappluginpythonwrapper.cpp stardundee.cpp gresb.cpp bridge.cpp /usr/include/lppmon/pluginsInterface/lppmonplugininterface.cpp obj/rmapplugin1.0.0/ && (cd `dirname obj/rmapplugin1.0.0` && $(TAR) rmapplugin1.0.0.tar rmapplugin1.0.0 && $(COMPRESS) rmapplugin1.0.0.tar) && $(MOVE) `dirname obj/rmapplugin1.0.0`/rmapplugin1.0.0.tar.gz . && $(DEL_FILE) -r obj/rmapplugin1.0.0
237 241
238 242
239 243 clean:compiler_clean
240 244 -$(DEL_FILE) $(OBJECTS)
241 245 -$(DEL_FILE) *~ core *.core
242 246
243 247
244 248 ####### Sub-libraries
245 249
246 250 distclean: clean
247 251 -$(DEL_FILE) bin/$(TARGET)
248 252 -$(DEL_FILE) bin/$(TARGET0) bin/$(TARGET1) bin/$(TARGET2) $(TARGETA)
249 253 -$(DEL_FILE) Makefile
250 254
251 255
252 256 check: first
253 257
254 258 mocclean: compiler_moc_header_clean compiler_moc_source_clean
255 259
256 260 mocables: compiler_moc_header_make_all compiler_moc_source_make_all
257 261
258 compiler_moc_header_make_all: moc/moc_rmappluginui.cpp moc/moc_rmapplugin.cpp moc/moc_spwpacketreceiver.cpp moc/moc_qipdialogbox.cpp moc/moc_gresbstatusenquiry.cpp moc/moc_spectralmatricesdmasimulator.cpp moc/moc_rmappluginpythonwrapper.cpp moc/moc_stardundee.cpp moc/moc_gresb.cpp moc/moc_genericPySysdriver.cpp moc/moc_lppmonplugin.cpp
262 compiler_moc_header_make_all: moc/moc_rmappluginui.cpp moc/moc_rmapplugin.cpp moc/moc_spwpacketreceiver.cpp moc/moc_qipdialogbox.cpp moc/moc_gresbstatusenquiry.cpp moc/moc_spectralmatricesdmasimulator.cpp moc/moc_rmappluginpythonwrapper.cpp moc/moc_stardundee.cpp moc/moc_gresb.cpp moc/moc_bridge.cpp moc/moc_genericPySysdriver.cpp moc/moc_lppmonplugin.cpp
259 263 compiler_moc_header_clean:
260 -$(DEL_FILE) moc/moc_rmappluginui.cpp moc/moc_rmapplugin.cpp moc/moc_spwpacketreceiver.cpp moc/moc_qipdialogbox.cpp moc/moc_gresbstatusenquiry.cpp moc/moc_spectralmatricesdmasimulator.cpp moc/moc_rmappluginpythonwrapper.cpp moc/moc_stardundee.cpp moc/moc_gresb.cpp moc/moc_genericPySysdriver.cpp moc/moc_lppmonplugin.cpp
264 -$(DEL_FILE) moc/moc_rmappluginui.cpp moc/moc_rmapplugin.cpp moc/moc_spwpacketreceiver.cpp moc/moc_qipdialogbox.cpp moc/moc_gresbstatusenquiry.cpp moc/moc_spectralmatricesdmasimulator.cpp moc/moc_rmappluginpythonwrapper.cpp moc/moc_stardundee.cpp moc/moc_gresb.cpp moc/moc_bridge.cpp moc/moc_genericPySysdriver.cpp moc/moc_lppmonplugin.cpp
261 265 moc/moc_rmappluginui.cpp: rmapoperations.h \
262 266 spectralmatricesdmasimulator.h \
263 267 stardundee.h \
268 gresb.h \
264 269 rmappluginui.h
265 270 /usr/lib64/qt4/bin/moc $(DEFINES) $(INCPATH) rmappluginui.h -o moc/moc_rmappluginui.cpp
266 271
267 272 moc/moc_rmapplugin.cpp: rmappluginui.h \
268 273 rmapoperations.h \
269 274 spectralmatricesdmasimulator.h \
270 275 stardundee.h \
276 gresb.h \
271 277 ccsds.h \
272 278 spwpacketreceiver.h \
273 279 rmapplugin.h
274 280 /usr/lib64/qt4/bin/moc $(DEFINES) $(INCPATH) rmapplugin.h -o moc/moc_rmapplugin.cpp
275 281
276 282 moc/moc_spwpacketreceiver.cpp: spwpacketreceiver.h
277 283 /usr/lib64/qt4/bin/moc $(DEFINES) $(INCPATH) spwpacketreceiver.h -o moc/moc_spwpacketreceiver.cpp
278 284
279 285 moc/moc_qipdialogbox.cpp: ../common_PLE/qipdialogbox.h
280 286 /usr/lib64/qt4/bin/moc $(DEFINES) $(INCPATH) ../common_PLE/qipdialogbox.h -o moc/moc_qipdialogbox.cpp
281 287
282 288 moc/moc_gresbstatusenquiry.cpp: ../common_PLE/gresbstatusenquiry.h
283 289 /usr/lib64/qt4/bin/moc $(DEFINES) $(INCPATH) ../common_PLE/gresbstatusenquiry.h -o moc/moc_gresbstatusenquiry.cpp
284 290
285 291 moc/moc_spectralmatricesdmasimulator.cpp: spectralmatricesdmasimulator.h
286 292 /usr/lib64/qt4/bin/moc $(DEFINES) $(INCPATH) spectralmatricesdmasimulator.h -o moc/moc_spectralmatricesdmasimulator.cpp
287 293
288 294 moc/moc_rmappluginpythonwrapper.cpp: rmappluginpythonwrapper.h
289 295 /usr/lib64/qt4/bin/moc $(DEFINES) $(INCPATH) rmappluginpythonwrapper.h -o moc/moc_rmappluginpythonwrapper.cpp
290 296
291 moc/moc_stardundee.cpp: stardundee.h
297 moc/moc_stardundee.cpp: rmapoperations.h \
298 stardundee.h
292 299 /usr/lib64/qt4/bin/moc $(DEFINES) $(INCPATH) stardundee.h -o moc/moc_stardundee.cpp
293 300
294 301 moc/moc_gresb.cpp: gresb.h
295 302 /usr/lib64/qt4/bin/moc $(DEFINES) $(INCPATH) gresb.h -o moc/moc_gresb.cpp
296 303
304 moc/moc_bridge.cpp: rmapoperations.h \
305 bridge.h
306 /usr/lib64/qt4/bin/moc $(DEFINES) $(INCPATH) bridge.h -o moc/moc_bridge.cpp
307
297 308 moc/moc_genericPySysdriver.cpp: /usr/include/genericPySysdriver.h
298 309 /usr/lib64/qt4/bin/moc $(DEFINES) $(INCPATH) /usr/include/genericPySysdriver.h -o moc/moc_genericPySysdriver.cpp
299 310
300 311 moc/moc_lppmonplugin.cpp: /usr/include/lppmonplugin.h
301 312 /usr/lib64/qt4/bin/moc $(DEFINES) $(INCPATH) /usr/include/lppmonplugin.h -o moc/moc_lppmonplugin.cpp
302 313
303 314 compiler_rcc_make_all:
304 315 compiler_rcc_clean:
305 316 compiler_image_collection_make_all: qmake_image_collection.cpp
306 317 compiler_image_collection_clean:
307 318 -$(DEL_FILE) qmake_image_collection.cpp
308 319 compiler_moc_source_make_all:
309 320 compiler_moc_source_clean:
310 321 compiler_uic_make_all:
311 322 compiler_uic_clean:
312 323 compiler_yacc_decl_make_all:
313 324 compiler_yacc_decl_clean:
314 325 compiler_yacc_impl_make_all:
315 326 compiler_yacc_impl_clean:
316 327 compiler_lex_make_all:
317 328 compiler_lex_clean:
318 329 compiler_clean: compiler_moc_header_clean
319 330
320 331 ####### Compile
321 332
322 333 obj/rmapplugin.o: rmapplugin.cpp rmapplugin.h \
323 334 rmappluginui.h \
324 335 rmapoperations.h \
325 336 spectralmatricesdmasimulator.h \
326 337 stardundee.h \
338 gresb.h \
327 339 ccsds.h \
328 340 spwpacketreceiver.h \
329 341 rmappluginpythonwrapper.h
330 342 $(CXX) -c $(CXXFLAGS) $(INCPATH) -o obj/rmapplugin.o rmapplugin.cpp
331 343
332 344 obj/rmappluginui.o: rmappluginui.cpp rmapplugin.h \
333 345 rmappluginui.h \
334 346 rmapoperations.h \
335 347 spectralmatricesdmasimulator.h \
336 348 stardundee.h \
349 gresb.h \
337 350 ccsds.h \
338 351 spwpacketreceiver.h
339 352 $(CXX) -c $(CXXFLAGS) $(INCPATH) -o obj/rmappluginui.o rmappluginui.cpp
340 353
341 354 obj/rmapoperations.o: rmapoperations.cpp rmapoperations.h
342 355 $(CXX) -c $(CXXFLAGS) $(INCPATH) -o obj/rmapoperations.o rmapoperations.cpp
343 356
344 357 obj/ccsds.o: ccsds.cpp ccsds.h
345 358 $(CXX) -c $(CXXFLAGS) $(INCPATH) -o obj/ccsds.o ccsds.cpp
346 359
347 obj/spwpacketreceiver.o: spwpacketreceiver.cpp spwpacketreceiver.h
360 obj/spwpacketreceiver.o: spwpacketreceiver.cpp spwpacketreceiver.h \
361 rmapoperations.h
348 362 $(CXX) -c $(CXXFLAGS) $(INCPATH) -o obj/spwpacketreceiver.o spwpacketreceiver.cpp
349 363
350 364 obj/qipdialogbox.o: ../common_PLE/qipdialogbox.cpp ../common_PLE/qipdialogbox.h
351 365 $(CXX) -c $(CXXFLAGS) $(INCPATH) -o obj/qipdialogbox.o ../common_PLE/qipdialogbox.cpp
352 366
353 367 obj/gresbstatusenquiry.o: ../common_PLE/gresbstatusenquiry.cpp ../common_PLE/gresbstatusenquiry.h
354 368 $(CXX) -c $(CXXFLAGS) $(INCPATH) -o obj/gresbstatusenquiry.o ../common_PLE/gresbstatusenquiry.cpp
355 369
356 370 obj/spectralmatricesdmasimulator.o: spectralmatricesdmasimulator.cpp spectralmatricesdmasimulator.h
357 371 $(CXX) -c $(CXXFLAGS) $(INCPATH) -o obj/spectralmatricesdmasimulator.o spectralmatricesdmasimulator.cpp
358 372
359 373 obj/rmappluginpythonwrapper.o: rmappluginpythonwrapper.cpp rmappluginpythonwrapper.h
360 374 $(CXX) -c $(CXXFLAGS) $(INCPATH) -o obj/rmappluginpythonwrapper.o rmappluginpythonwrapper.cpp
361 375
362 376 obj/stardundee.o: stardundee.cpp stardundee.h \
363 377 rmapoperations.h
364 378 $(CXX) -c $(CXXFLAGS) $(INCPATH) -o obj/stardundee.o stardundee.cpp
365 379
366 380 obj/gresb.o: gresb.cpp gresb.h
367 381 $(CXX) -c $(CXXFLAGS) $(INCPATH) -o obj/gresb.o gresb.cpp
368 382
383 obj/bridge.o: bridge.cpp bridge.h \
384 rmapoperations.h
385 $(CXX) -c $(CXXFLAGS) $(INCPATH) -o obj/bridge.o bridge.cpp
386
369 387 obj/lppmonplugininterface.o: /usr/include/lppmon/pluginsInterface/lppmonplugininterface.cpp /usr/include/lppmon/pluginsInterface/lppmonplugininterface.h \
370 388 /usr/include/lppmon/pluginsInterface/lppmonplugininterface_global.h
371 389 $(CXX) -c $(CXXFLAGS) $(INCPATH) -o obj/lppmonplugininterface.o /usr/include/lppmon/pluginsInterface/lppmonplugininterface.cpp
372 390
373 391 obj/moc_rmappluginui.o: moc/moc_rmappluginui.cpp
374 392 $(CXX) -c $(CXXFLAGS) $(INCPATH) -o obj/moc_rmappluginui.o moc/moc_rmappluginui.cpp
375 393
376 394 obj/moc_rmapplugin.o: moc/moc_rmapplugin.cpp
377 395 $(CXX) -c $(CXXFLAGS) $(INCPATH) -o obj/moc_rmapplugin.o moc/moc_rmapplugin.cpp
378 396
379 397 obj/moc_spwpacketreceiver.o: moc/moc_spwpacketreceiver.cpp
380 398 $(CXX) -c $(CXXFLAGS) $(INCPATH) -o obj/moc_spwpacketreceiver.o moc/moc_spwpacketreceiver.cpp
381 399
382 400 obj/moc_qipdialogbox.o: moc/moc_qipdialogbox.cpp
383 401 $(CXX) -c $(CXXFLAGS) $(INCPATH) -o obj/moc_qipdialogbox.o moc/moc_qipdialogbox.cpp
384 402
385 403 obj/moc_gresbstatusenquiry.o: moc/moc_gresbstatusenquiry.cpp
386 404 $(CXX) -c $(CXXFLAGS) $(INCPATH) -o obj/moc_gresbstatusenquiry.o moc/moc_gresbstatusenquiry.cpp
387 405
388 406 obj/moc_spectralmatricesdmasimulator.o: moc/moc_spectralmatricesdmasimulator.cpp
389 407 $(CXX) -c $(CXXFLAGS) $(INCPATH) -o obj/moc_spectralmatricesdmasimulator.o moc/moc_spectralmatricesdmasimulator.cpp
390 408
391 409 obj/moc_rmappluginpythonwrapper.o: moc/moc_rmappluginpythonwrapper.cpp
392 410 $(CXX) -c $(CXXFLAGS) $(INCPATH) -o obj/moc_rmappluginpythonwrapper.o moc/moc_rmappluginpythonwrapper.cpp
393 411
394 412 obj/moc_stardundee.o: moc/moc_stardundee.cpp
395 413 $(CXX) -c $(CXXFLAGS) $(INCPATH) -o obj/moc_stardundee.o moc/moc_stardundee.cpp
396 414
397 415 obj/moc_gresb.o: moc/moc_gresb.cpp
398 416 $(CXX) -c $(CXXFLAGS) $(INCPATH) -o obj/moc_gresb.o moc/moc_gresb.cpp
399 417
418 obj/moc_bridge.o: moc/moc_bridge.cpp
419 $(CXX) -c $(CXXFLAGS) $(INCPATH) -o obj/moc_bridge.o moc/moc_bridge.cpp
420
400 421 obj/moc_genericPySysdriver.o: moc/moc_genericPySysdriver.cpp
401 422 $(CXX) -c $(CXXFLAGS) $(INCPATH) -o obj/moc_genericPySysdriver.o moc/moc_genericPySysdriver.cpp
402 423
403 424 obj/moc_lppmonplugin.o: moc/moc_lppmonplugin.cpp
404 425 $(CXX) -c $(CXXFLAGS) $(INCPATH) -o obj/moc_lppmonplugin.o moc/moc_lppmonplugin.cpp
405 426
406 427 ####### Install
407 428
408 429 install_target: first FORCE
409 430 @$(CHK_DIR_EXISTS) $(INSTALL_ROOT)/home/paul/.lppmon/plugins/ || $(MKDIR) $(INSTALL_ROOT)/home/paul/.lppmon/plugins/
410 431 -$(INSTALL_PROGRAM) "bin/$(TARGET)" "$(INSTALL_ROOT)/home/paul/.lppmon/plugins/$(TARGET)"
411 432 -$(SYMLINK) "$(TARGET)" "$(INSTALL_ROOT)/home/paul/.lppmon/plugins/$(TARGET0)"
412 433 -$(SYMLINK) "$(TARGET)" "$(INSTALL_ROOT)/home/paul/.lppmon/plugins/$(TARGET1)"
413 434 -$(SYMLINK) "$(TARGET)" "$(INSTALL_ROOT)/home/paul/.lppmon/plugins/$(TARGET2)"
414 435
415 436 uninstall_target: FORCE
416 437 -$(DEL_FILE) "$(INSTALL_ROOT)/home/paul/.lppmon/plugins/$(TARGET)"
417 438 -$(DEL_FILE) "$(INSTALL_ROOT)/home/paul/.lppmon/plugins/$(TARGET0)"
418 439 -$(DEL_FILE) "$(INSTALL_ROOT)/home/paul/.lppmon/plugins/$(TARGET1)"
419 440 -$(DEL_FILE) "$(INSTALL_ROOT)/home/paul/.lppmon/plugins/$(TARGET2)"
420 441 -$(DEL_DIR) $(INSTALL_ROOT)/home/paul/.lppmon/plugins/
421 442
422 443
423 444 install: install_target FORCE
424 445
425 446 uninstall: uninstall_target FORCE
426 447
427 448 FORCE:
428 449
@@ -1,6 +1,156
1 1 #include "bridge.h"
2 2
3 3 bridge::bridge(QWidget *parent) :
4 4 QWidget(parent)
5 5 {
6 // Packet receiver
7 rmapPacketSEMAPHORE = new QSemaphore;
8 ccsdsPacketSEMAPHORE = new QSemaphore;
9 rmapPacket = (char*) malloc(RMAP_MAX_PACKET_LENGTH);
10 ccsdsPacket = (unsigned char*) malloc(CCSDS_MAX_PACKET_LENGTH);
11 spwPacket = (char*) malloc( qMax(RMAP_MAX_PACKET_LENGTH, CCSDS_MAX_PACKET_LENGTH) );
12
13 bridge_LAYOUT = new QGridLayout;
6 14 }
15
16 bridge::~bridge()
17 {
18 free(rmapPacket);
19 free(ccsdsPacket);
20 free(spwPacket);
21 }
22
23 unsigned int bridge::Write(unsigned int *Value, unsigned int count, unsigned int address)
24 {
25 unsigned int remainingCount = count;
26 unsigned int iOffset = 0;
27 QString console_message;
28 char* data;
29
30 if(rmapPacketSEMAPHORE->available()!=0)
31 {
32 emit appendToLog("WARNING === in function WRITE of rmapplugin *** RMAP request already running, WRITE access stopped");
33 return 1;
34 }
35
36 emit this->RMAP_write_reply_setText("reply to the write command required\nlast reply status: unavailable");
37
38 data = (char*) malloc(READ_WRITE_MAX_COUNTS*4);
39
40 emit appendToLog(QString("*** START *** WRITE ")+ QString::number(count) + QString(" word(s) @0x")+ QString::number(address,16));
41
42 while (remainingCount > READ_WRITE_MAX_COUNTS)
43 {
44 for (int i = 0; i<READ_WRITE_MAX_COUNTS; i++)
45 {
46 data[i*4+3] = (char) ((unsigned int) Value[i+iOffset]);
47 data[i*4+2] = (char) ((unsigned int) Value[i+iOffset]>>8);
48 data[i*4+1] = (char) ((unsigned int) Value[i+iOffset]>>16);
49 data[i*4+0] = (char) ((unsigned int) Value[i+iOffset]>>24);
50 }
51
52 console_message.sprintf("remainingCount: %d => ", remainingCount);
53 emit appendToLog(console_message + QString("Write ")+ QString::number(READ_WRITE_MAX_COUNTS*4) + QString(" byte(s) @0x")+ QString::number(address,16));
54
55 if(WriteBLOCK(data, READ_WRITE_MAX_COUNTS*4, address)==0)
56 {
57 emit appendToLog("WARNING === in function WRITE of rmapplugin *** RMAP write command failed");
58 return 1;
59 }
60
61 remainingCount = remainingCount - READ_WRITE_MAX_COUNTS;
62 address = address + READ_WRITE_MAX_COUNTS * 4;
63 iOffset = iOffset + READ_WRITE_MAX_COUNTS;
64 }
65
66 if (remainingCount > 0)
67 {
68 for (unsigned int i = 0; i<remainingCount; i++)
69 {
70 data[i*4+3] = (char) ((unsigned int) Value[i+iOffset]);
71 data[i*4+2] = (char) ((unsigned int) Value[i+iOffset]>>8);
72 data[i*4+1] = (char) ((unsigned int) Value[i+iOffset]>>16);
73 data[i*4+0] = (char) ((unsigned int) Value[i+iOffset]>>24);
74 }
75
76 console_message.sprintf("remainingCount: %d => ", remainingCount);
77 emit appendToLog(console_message + QString("Write ")+ QString::number(remainingCount*4) + QString(" byte(s) @0x")+ QString::number(address,16));
78
79 if (WriteBLOCK(data, remainingCount*4, address)==0)
80 {
81 emit appendToLog("WARNING === in function WRITE of rmapplugin *** RMAP write command failed");
82 return 1;
83 }
84 }
85
86 emit appendToLog(QString("*** STOP *** WRITE"));
87 free(data);
88 return count;
89 }
90
91 unsigned int bridge::Read(unsigned int *Value, unsigned int count, unsigned int address)
92 {
93 unsigned int remainingCount = count;
94 unsigned int iOffset = 0;
95 QString console_message;
96
97 if(rmapPacketSEMAPHORE->available()!=0)
98 {
99 emit appendToLog("WARNING === in function READ of rmapplugin *** RMAP request already running, READ access stopped");
100 return 1;
101 }
102 emit appendToLog(QString("*** START *** READ ")+ QString::number(count) + QString(" word(s) @0x")+ QString::number(address,16));
103
104 while (remainingCount > READ_WRITE_MAX_COUNTS)
105 {
106 console_message.sprintf("remainingCount: %d => ", remainingCount);
107 emit appendToLog(console_message + QString("Read ")+ QString::number(4*READ_WRITE_MAX_COUNTS) + QString(" byte(s) @0x")+ QString::number(address,16));
108
109 if (this->ReadBLOCK(READ_WRITE_MAX_COUNTS*4, address)==0)
110 {
111 emit appendToLog("WARNING === in function READ of rmapplugin *** RMAP packet not received");
112 return 1;
113 }
114
115 for(int i=0;i<READ_WRITE_MAX_COUNTS;i++)
116 {
117 Value[i+iOffset] = (unsigned char) rmapPacket[i*4+RMAP_READ_REPLY_HEADER_LENGTH];
118 for(int j=1;j<4;j++)
119 {
120 Value[i+iOffset]= ((unsigned char) (rmapPacket[i*4+j+RMAP_READ_REPLY_HEADER_LENGTH]))
121 + Value[i+iOffset]*256;
122 }
123 }
124
125 remainingCount = remainingCount - READ_WRITE_MAX_COUNTS;
126 address = address + READ_WRITE_MAX_COUNTS * 4;
127 iOffset = iOffset + READ_WRITE_MAX_COUNTS;
128 rmapPacketSEMAPHORE->acquire();
129 }
130
131 if (remainingCount > 0)
132 {
133 console_message.sprintf("remainingCount: %d => ", remainingCount);
134 emit appendToLog(console_message + QString("Read ")+ QString::number(4*remainingCount) + QString(" byte(s) @0x")+ QString::number(address,16));
135
136 if (this->ReadBLOCK(4*remainingCount, address)==0)
137 {
138 emit appendToLog("WARNING === in function READ of rmapplugin *** RMAP packet not received");
139 return 1;
140 }
141
142 for(unsigned int i=0;i<remainingCount;i++)
143 {
144 Value[i+iOffset] = (unsigned char) rmapPacket[i*4+RMAP_READ_REPLY_HEADER_LENGTH];
145 for(int j=1;j<4;j++)
146 {
147 Value[i+iOffset]= ((unsigned char)(rmapPacket[i*4+j+RMAP_READ_REPLY_HEADER_LENGTH])) + Value[i+iOffset]*256;
148 }
149 }
150 rmapPacketSEMAPHORE->acquire();
151 }
152
153 emit appendToLog(QString("*** STOP *** READ "));
154 return count;
155 }
156
@@ -1,18 +1,54
1 1 #ifndef BRIDGE_H
2 2 #define BRIDGE_H
3 3
4 4 #include <QWidget>
5 #include <QSemaphore>
6 #include <QGridLayout>
7 #include "rmapoperations.h"
5 8
6 9 class bridge : public QWidget
7 10 {
8 11 Q_OBJECT
9 12 public:
10 13 explicit bridge(QWidget *parent = 0);
11
14 ~bridge();
15 unsigned int Write(unsigned int *Value,unsigned int count,unsigned int address=0);
16 unsigned int Read(unsigned int *Value,unsigned int count,unsigned int address=0);
17 virtual unsigned int WriteSPW(char *Value, unsigned int count, char targetLogicalAddress, char userApplication);
18 virtual unsigned int WriteBLOCK(char *data,unsigned int nbBytes,unsigned int address=0) = 0;
19 virtual unsigned int ReadBLOCK(unsigned int nbBytes,unsigned int address=0) = 0;
20 virtual unsigned int getLinkStatus(unsigned char link) = 0;
21
22 unsigned char rmapTargetLogicalAddress ;
23 unsigned char rmapSourceLogicalAddress ;
24
25 RMAP_command_codes commandCode;
26
27 QGridLayout *bridge_LAYOUT;
28
29 QSemaphore *rmapPacketSEMAPHORE;
30 QSemaphore *ccsdsPacketSEMAPHORE;
31
32 char *spwPacket;
33 char* rmapPacket;
34 unsigned char *ccsdsPacket;
35
12 36 signals:
37 void sendMessage(QString message);
38 void isOpen(bool);
39 void RMAP_write_reply_setText(QString);
40 void appendToLog(QString);
41 void ccsdsPacketAvailable(unsigned char*, unsigned int);
13 42
14 43 public slots:
15
44 unsigned int Open();
45 unsigned int Close();
46 virtual int receiveSPWPacket(unsigned char requestID) = 0;
47 void commandCodeHasChanged(RMAP_command_codes code) {this->commandCode = code;}
48 void targetHasChanged(int target) {rmapTargetLogicalAddress = (unsigned char) target;}
49 void sourceHasChanged(int target) {rmapSourceLogicalAddress = (unsigned char) target;}
50
51 private:
16 52 };
17 53
18 54 #endif // BRIDGE_H
@@ -1,40 +1,45
1 1 #ifndef GRESB_H
2 2 #define GRESB_H
3 3
4 4 #include <QWidget>
5 5 #include <QLabel>
6 6 #include <QPushButton>
7 7 #include <QSpinBox>
8 8 #include <QGridLayout>
9 9 #include "qipdialogbox.h"
10 10
11 11 class gresb : public QWidget
12 12 {
13 13 Q_OBJECT
14 14 public:
15 15 explicit gresb(QWidget *parent = 0);
16 16
17 17 signals:
18 18
19 19 public slots:
20 20
21 21 private:
22 //*******************
23 // specific functions
24
25 //*****************
26 // specific members
22 27 QLabel *gresbBridgeIPLabel;
23 28 QLabel *gresbVirtualLinkLabel;
24 29 QLabel *spwLinkLabel;
25 30 QLabel *rmapSourceLogicalAddressLabel;
26 31 QLabel *rmapSendStateLabel;
27 32 QLabel *rmapReceiveStateLabel;
28 33 QLabel *gresbStatusQueryLabel;
29 34
30 35 QIPDialogBox* gresbBridgeIPDialogBox;
31 36
32 37 QSpinBox *gresbVirtualLinkSpinBox;
33 38 QSpinBox *spwLinkSpinBox;
34 39 QSpinBox *rmapSourceLogicalAddressSpinBox;
35 40
36 41 QGridLayout *connectionLayout;
37 42
38 43 };
39 44
40 45 #endif // GRESB_H
@@ -1,75 +1,72
1 1 #
2 2 # Project created by QtCreator 2011-09-20T08:15:30
3 3 #
4 4 #-------------------------------------------------
5 5
6 6 #include(/etc/lppmon/lppmonplugin.prf)
7 7 CONFIG += lppmonplugin
8 8 TARGET = rmapplugin
9 9
10 10 DEFINES += PLUGIN=rmapplugin
11 11 DEFINES += PLUGINHEADER="\"\\\"rmapplugin.h"\\\"\"
12 12 DEFINES += driver_Name="\"\\\"RMAPPlugin"\\\"\"
13 13 DEFINES += driver_Author="\"\\\"Paul Leroy paul.leroy@lpp.polytechnique.fr"\\\"\"
14 14 DEFINES += driver_Version="\"\\\"1.1.2"\\\"\"
15 15 DEFINES += driver_Description="\"\\\"AHB bus controler, works with Gaisler's AHB plugn' play bus."\\\"\"
16 16 DEFINES += driver_can_be_root=1
17 17 DEFINES += driver_can_be_child=0
18 18 DEFINES += driver_VID=0
19 19 DEFINES += driver_PID=0
20 20
21
22 21 QT += network
23 22
24
25 23 LIBS += ../spw_usb_driver_v2.61/lib/x86_64/libSpaceWireUSBAPI.so \
26 24 ../spw_usb_driver_v2.61/lib/x86_64/libConfigLibraryUSB.so
27 25
28 26
29 27 INCLUDEPATH += \
30 28 $${PWD} \
31 29 ../common_PLE \
32 30 ../spw_usb_driver_v2.61/inc
33 31
34 32
35 33 HEADERS += \
36 34 rmappluginui.h \
37 35 rmapplugin.h \
38 36 rmapoperations.h \
39 37 ccsds.h \
40 38 spwpacketreceiver.h \
41 39 ../common_PLE/qipdialogbox.h \
42 40 ../common_PLE/gresbstatusenquiry.h \
43 41 spectralmatricesdmasimulator.h \
44 42 rmappluginpythonwrapper.h \
45 43 stardundee.h \
46 44 ../spw_usb_driver_v2.61/inc/spw_usb_api.h \
47 45 ../spw_usb_driver_v2.61/inc/spw_config_library.h \
48 46 gresb.h \
49 47 bridge.h
50 48
51 49
52 50 SOURCES += \
53 51 rmapplugin.cpp \
54 52 rmappluginui.cpp \
55 53 rmapoperations.cpp \
56 54 ccsds.cpp \
57 55 spwpacketreceiver.cpp \
58 56 ../common_PLE/qipdialogbox.cpp \
59 57 ../common_PLE/gresbstatusenquiry.cpp \
60 58 spectralmatricesdmasimulator.cpp \
61 59 rmappluginpythonwrapper.cpp \
62 60 stardundee.cpp \
63 61 gresb.cpp \
64 62 bridge.cpp
65 63
66 64
67 65
68 66
69 67
70 68
71 69
72 70
73 71
74 72
75
@@ -1,713 +1,712
1 1 #include "stardundee.h"
2 2 #include <QTime>
3 3 #include <math.h>
4 4
5 5 StarDundee::StarDundee(QWidget *parent) :
6 6 QWidget(parent)
7 7 {
8 8 // Packet receiver
9 9 rmapPacketSEMAPHORE = new QSemaphore;
10 10 ccsdsPacketSEMAPHORE = new QSemaphore;
11 11 rmapPacket = (char*) malloc(RMAP_MAX_PACKET_LENGTH);
12 12 ccsdsPacket = (unsigned char*) malloc(CCSDS_MAX_PACKET_LENGTH);
13 13 spwPacket = (char*) malloc( qMax(RMAP_MAX_PACKET_LENGTH, CCSDS_MAX_PACKET_LENGTH) );
14 14
15 15 commandCode = invalid0; // initialization of the cmmand code for the RMAP transfers
16 16
17 17 rmapSourceLogicalAddress = 0x20;
18 connection_LAYOUT = new QGridLayout;
18 bridge_LAYOUT = new QGridLayout;
19 19
20 20 usbDeviceNumber_LABEL = new QLabel(tr("USB device number: "));
21 21 linkNumber_LABEL = new QLabel(tr("SpaceWire link number: "));
22 22 sourceLogicalAddress_LABEL = new QLabel(tr("Source logical address: "));
23 23
24 24 usbDeviceNumber_SPINBOX = new QSpinBox;
25 25 usbDeviceNumber_SPINBOX->setRange(0,32);
26 26 usbDeviceNumber_SPINBOX->setValue(0);
27 27 linkNumber_SPINBOX = new QSpinBox;
28 28 linkNumber_SPINBOX->setRange(1,2);
29 29 linkNumber_SPINBOX->setValue(1);
30 30 sourceLogicalAddress_SPINBOX = new QSpinBox;
31 31 sourceLogicalAddress_SPINBOX->setRange(0,254);
32 32 sourceLogicalAddress_SPINBOX->setValue(32);
33 33
34 connection_LAYOUT->addWidget(usbDeviceNumber_LABEL, 0, 0, 1, 1);
35 connection_LAYOUT->addWidget(usbDeviceNumber_SPINBOX, 0, 1, 1, 1);
36 connection_LAYOUT->addWidget(linkNumber_LABEL, 1, 0, 1, 1);
37 connection_LAYOUT->addWidget(linkNumber_SPINBOX, 1, 1, 1, 1);
38 connection_LAYOUT->addWidget(sourceLogicalAddress_LABEL, 2, 0, 1, 1);
39 connection_LAYOUT->addWidget(sourceLogicalAddress_SPINBOX, 2, 1, 1, 1);
34 bridge_LAYOUT->addWidget(usbDeviceNumber_LABEL, 0, 0, 1, 1);
35 bridge_LAYOUT->addWidget(usbDeviceNumber_SPINBOX, 0, 1, 1, 1);
36 bridge_LAYOUT->addWidget(linkNumber_LABEL, 1, 0, 1, 1);
37 bridge_LAYOUT->addWidget(linkNumber_SPINBOX, 1, 1, 1, 1);
38 bridge_LAYOUT->addWidget(sourceLogicalAddress_LABEL, 2, 0, 1, 1);
39 bridge_LAYOUT->addWidget(sourceLogicalAddress_SPINBOX, 2, 1, 1, 1);
40 bridge_LAYOUT->setRowStretch(3, 1);
41 bridge_LAYOUT->setColumnStretch(2, 1);
40 42
41 connection_LAYOUT->setRowStretch(3, 1);
42 connection_LAYOUT->setColumnStretch(2, 1);
43
44 this->setLayout(connection_LAYOUT);
43 this->setLayout(bridge_LAYOUT);
45 44
46 45 connect(this->sourceLogicalAddress_SPINBOX, SIGNAL(valueChanged(int)), this, SLOT(sourceHasChanged(int)));
47 46 }
48 47
49 48 StarDundee::~StarDundee()
50 49 {
51 50 free(rmapPacket);
52 51 free(ccsdsPacket);
53 52 free(spwPacket);
54 53 USBSpaceWire_Close(hDevice); // Close the device
55 54 }
56 55
57 56 unsigned int StarDundee::Open()
58 57 {
59 58 int status;
60 59 U32 statusControl;
61 60 U32 routingTableEntry;
62 61 int tableEntry;
63 62
64 63 if (!USBSpaceWire_Open(&hDevice, usbDeviceNumber_SPINBOX->value())) // Open the USB device
65 64 {
66 65 emit sendMessage("stardundee *** Open *** ERROR: USBSpaceWire_Open(&hDevice, 0))");
67 66 return -1;
68 67 }
69 68 emit sendMessage("stardundee *** Open *** USBSpaceWire_Open successful, device number: "
70 69 + QString::number(usbDeviceNumber_SPINBOX->value()));
71 70
72 71 USBSpaceWire_EnableNetworkMode(hDevice, 0); // deactivate the network mode
73 72 CFGSpaceWire_EnableRMAP(1); // Enable the use of RMAP
74 73 CFGSpaceWire_SetRMAPDestinationKey(0x20); // Set the destination key expected by STAR-Dundee devices
75 74
76 75 // Set the path and return path to the device
77 76 CFGSpaceWire_StackClear();
78 77 CFGSpaceWire_AddrStackPush(0);
79 78 CFGSpaceWire_AddrStackPush(254);
80 79 CFGSpaceWire_RetAddrStackPush(254);
81 80
82 81 // set the base transmit rate to 100 MHz
83 82 status = CFGSpaceWire_SetBrickBaseTransmitRate( hDevice, CFG_BRK_CLK_100_MHZ, CFG_BRK_DVDR_1, 0xff);
84 83 if (status != CFG_TRANSFER_SUCCESS)
85 84 {
86 85 emit sendMessage("ERROR CFGSpaceWire_SetBrickBaseTransmitRate");
87 86 }
88 87 else emit sendMessage("OK CFGSpaceWire_SetBrickBaseTransmitRate, base rate = 100 MHz");
89 88 // read the link status
90 89 if (CFGSpaceWire_GetLinkStatusControl(hDevice, linkNumber_SPINBOX->value(), &statusControl) != CFG_TRANSFER_SUCCESS)
91 90 {
92 91 emit sendMessage("Could not read link status control for link " + QString::number(linkNumber_SPINBOX->value()));
93 92 }
94 93 else
95 94 {
96 95 emit sendMessage("OK CFGSpaceWire_GetLinkStatusControl of link " + QString::number(linkNumber_SPINBOX->value()));
97 96
98 97 // Set the link status control register properties
99 98 CFGSpaceWire_LSEnableAutoStart(&statusControl, 1);
100 99 CFGSpaceWire_LSEnableStart(&statusControl, 1);
101 100 CFGSpaceWire_LSEnableDisabled(&statusControl, 0);
102 101 CFGSpaceWire_LSEnableTristate(&statusControl, 0);
103 102 CFGSpaceWire_LSSetOperatingSpeed(&statusControl, 9); // sets the link speed to ( 100 MHz / (9+1) ) = 10 MHz
104 103
105 104 // Set the link status control register
106 105 if (CFGSpaceWire_SetLinkStatusControl(hDevice, linkNumber_SPINBOX->value(), statusControl) != CFG_TRANSFER_SUCCESS)
107 106 {
108 107 emit sendMessage("Could not set the link status control for link " + QString::number(linkNumber_SPINBOX->value()));
109 108 }
110 109 else emit sendMessage("Set the link status control for link " + QString::number(linkNumber_SPINBOX->value()));
111 110 }
112 111
113 112 // SET THE ROUTING TABLE ENTRY FOR LOGICAL ADDRESSING, TARGET 254 <=> 0xfe
114 113 tableEntry = rmapTargetLogicalAddress;
115 114 if (CFGSpaceWire_ClearRoutingTableEntry(hDevice, tableEntry) != CFG_TRANSFER_SUCCESS)
116 115 {
117 116 emit sendMessage("Could not clear routing table entry " + QString::number(tableEntry));
118 117 }
119 118 else emit sendMessage("Routing table entry [" + QString::number(tableEntry) + "] cleared");
120 119 // Build the routing table entry to route out of port 1 with header deletion disabled and priority normal
121 120 CFGSpaceWire_RTBuildRoutingTableEntry(&routingTableEntry,
122 121 (1<<linkNumber_SPINBOX->value()), // 0x02 = 0000 0010
123 122 0,
124 123 0);
125 124 // Set the routing table entry for logical address tableEntry
126 125 if (CFGSpaceWire_SetRoutingTableEntry(hDevice, tableEntry, routingTableEntry) != CFG_TRANSFER_SUCCESS)
127 126 {
128 127 emit sendMessage("Could not set routing table entry [" + QString::number(tableEntry) + "]");
129 128 }
130 129 else emit sendMessage("Routing table entry [" + QString::number(tableEntry) + "] set" );
131 130
132 131 // SET THE ROUTING TABLE ENTRY FOR LOGICAL ADDRESSING, TARGET 32 <=> 0x20
133 132 tableEntry = sourceLogicalAddress_SPINBOX->value();
134 133 if (CFGSpaceWire_ClearRoutingTableEntry(hDevice, tableEntry) != CFG_TRANSFER_SUCCESS)
135 134 {
136 135 emit sendMessage("Could not clear routing table entry " + QString::number(tableEntry));
137 136 }
138 137 else emit sendMessage("Routing table entry [" + QString::number(tableEntry) + "] cleared");
139 138
140 139 // Build the routing table entry to route out of port 3 with header deletion disabled and priority normal
141 140 CFGSpaceWire_RTBuildRoutingTableEntry(&routingTableEntry,
142 141 (1<<3), // 0x02 = 0000 0010
143 142 0,
144 143 0);
145 144 // Set the routing table entry for logical address tableEntry
146 145 if (CFGSpaceWire_SetRoutingTableEntry(hDevice, tableEntry, routingTableEntry) != CFG_TRANSFER_SUCCESS)
147 146 {
148 147 emit sendMessage("Could not set routing table entry [" + QString::number(tableEntry) + "]");
149 148 }
150 149 else emit sendMessage("Routing table entry [" + QString::number(tableEntry) + "] set" );
151 150
152 151 emit sendMessage("The driver's current send buffer size is " + QString::number(USBSpaceWire_GetDriverSendBufferSize(hDevice)) + " bytes");
153 152
154 153 USBSpaceWire_RegisterReceiveOnAllPorts(hDevice); // Register to receive on all ports
155 154 USBSpaceWire_ClearEndpoints(hDevice); // clear the USB endpoints
156 155
157 156 // initialize SPW packet semaphores
158 157 while (rmapPacketSEMAPHORE->available()!=0) rmapPacketSEMAPHORE->acquire();
159 158 while (ccsdsPacketSEMAPHORE->available()!=0) ccsdsPacketSEMAPHORE->acquire();
160 159
161 160 emit isOpen(true);
162 161
163 162 return 1;
164 163 }
165 164
166 165 unsigned int StarDundee::Close()
167 166 {
168 167 USBSpaceWire_Close(hDevice); // Close the device
169 168 emit sendMessage("stardundee *** Close *** USBSpaceWire_Close, device: " + QString::number(usbDeviceNumber_SPINBOX->value()));
170 169
171 170 USBSpaceWire_UnregisterReceiveOnAllPorts(hDevice); // Stop receiving on all ports
172 171
173 172 emit isOpen(false);
174 173
175 174 return 1;
176 175 }
177 176
178 177 unsigned int StarDundee::GetRoutingTableEntry()
179 178 {
180 179 U32 routingTableEntry, outputPorts;
181 180 char enabled, delHead, priority;
182 181 int portNum;
183 182 int tableEntry;
184 183
185 184 tableEntry = rmapTargetLogicalAddress;
186 185
187 186 // Set the path and return path to the device
188 187 CFGSpaceWire_StackClear();
189 188 CFGSpaceWire_AddrStackPush(0);
190 189 CFGSpaceWire_AddrStackPush(254);
191 190 CFGSpaceWire_RetAddrStackPush(254);
192 191
193 192 // Read the routing table entry
194 193 if (CFGSpaceWire_GetRoutingTableEntry(hDevice, tableEntry, &routingTableEntry) != CFG_TRANSFER_SUCCESS)
195 194 {
196 195 emit sendMessage("Could not read routing table entry [" + QString::number(tableEntry) + "]");
197 196 }
198 197 else
199 198 {
200 199 // Display the routing table entry properties
201 200 CFGSpaceWire_RTIsEnabled(routingTableEntry, &enabled);
202 201 CFGSpaceWire_RTIsDelHead(routingTableEntry, &delHead);
203 202 CFGSpaceWire_RTIsPriority(routingTableEntry, &priority);
204 203 CFGSpaceWire_RTGetOutputPorts(routingTableEntry, &outputPorts);
205 204 emit sendMessage("CFGSpaceWire_RTIsEnabled : " + QString::number(enabled));
206 205 emit sendMessage("CFGSpaceWire_RTIsDelHead : " + QString::number(delHead));
207 206 emit sendMessage("CFGSpaceWire_RTIsPriority : " + QString::number(priority));
208 207 emit sendMessage("CFGSpaceWire_RTGetOutputPorts : ");
209 208 for (portNum = 0; portNum < 32; portNum++)
210 209 {
211 210 if (outputPorts & (1 << portNum))
212 211 {
213 212 emit sendMessage(QString::number(portNum));
214 213 }
215 214 }
216 215 }
217 216
218 217 return 1;
219 218 }
220 219
221 220 unsigned int StarDundee::Write(unsigned int *Value, unsigned int count, unsigned int address)
222 221 {
223 222 unsigned int remainingCount = count;
224 223 unsigned int iOffset = 0;
225 224 QString console_message;
226 225 char* data;
227 226
228 227 if(rmapPacketSEMAPHORE->available()!=0)
229 228 {
230 229 emit appendToLog("WARNING === in function WRITE of rmapplugin *** RMAP request already running, WRITE access stopped");
231 230 return 1;
232 231 }
233 232
234 233 emit this->RMAP_write_reply_setText("reply to the write command required\nlast reply status: unavailable");
235 234
236 235 data = (char*) malloc(READ_WRITE_MAX_COUNTS*4);
237 236
238 237 emit appendToLog(QString("*** START *** WRITE ")+ QString::number(count) + QString(" word(s) @0x")+ QString::number(address,16));
239 238
240 239 while (remainingCount > READ_WRITE_MAX_COUNTS)
241 240 {
242 241 for (int i = 0; i<READ_WRITE_MAX_COUNTS; i++)
243 242 {
244 243 data[i*4+3] = (char) ((unsigned int) Value[i+iOffset]);
245 244 data[i*4+2] = (char) ((unsigned int) Value[i+iOffset]>>8);
246 245 data[i*4+1] = (char) ((unsigned int) Value[i+iOffset]>>16);
247 246 data[i*4+0] = (char) ((unsigned int) Value[i+iOffset]>>24);
248 247 }
249 248
250 249 console_message.sprintf("remainingCount: %d => ", remainingCount);
251 250 emit appendToLog(console_message + QString("Write ")+ QString::number(READ_WRITE_MAX_COUNTS*4) + QString(" byte(s) @0x")+ QString::number(address,16));
252 251
253 252 if(WriteBLOCK(data, READ_WRITE_MAX_COUNTS*4, address)==0)
254 253 {
255 254 emit appendToLog("WARNING === in function WRITE of rmapplugin *** RMAP write command failed");
256 255 return 1;
257 256 }
258 257
259 258 remainingCount = remainingCount - READ_WRITE_MAX_COUNTS;
260 259 address = address + READ_WRITE_MAX_COUNTS * 4;
261 260 iOffset = iOffset + READ_WRITE_MAX_COUNTS;
262 261 }
263 262
264 263 if (remainingCount > 0)
265 264 {
266 265 for (unsigned int i = 0; i<remainingCount; i++)
267 266 {
268 267 data[i*4+3] = (char) ((unsigned int) Value[i+iOffset]);
269 268 data[i*4+2] = (char) ((unsigned int) Value[i+iOffset]>>8);
270 269 data[i*4+1] = (char) ((unsigned int) Value[i+iOffset]>>16);
271 270 data[i*4+0] = (char) ((unsigned int) Value[i+iOffset]>>24);
272 271 }
273 272
274 273 console_message.sprintf("remainingCount: %d => ", remainingCount);
275 274 emit appendToLog(console_message + QString("Write ")+ QString::number(remainingCount*4) + QString(" byte(s) @0x")+ QString::number(address,16));
276 275
277 276 if (WriteBLOCK(data, remainingCount*4, address)==0)
278 277 {
279 278 emit appendToLog("WARNING === in function WRITE of rmapplugin *** RMAP write command failed");
280 279 return 1;
281 280 }
282 281 }
283 282
284 283 emit appendToLog(QString("*** STOP *** WRITE"));
285 284 free(data);
286 285 return count;
287 286 }
288 287
289 288 unsigned int StarDundee::Read(unsigned int *Value, unsigned int count, unsigned int address)
290 289 {
291 290 unsigned int remainingCount = count;
292 291 unsigned int iOffset = 0;
293 292 QString console_message;
294 293
295 294 if(rmapPacketSEMAPHORE->available()!=0)
296 295 {
297 296 emit appendToLog("WARNING === in function READ of rmapplugin *** RMAP request already running, READ access stopped");
298 297 return 1;
299 298 }
300 299 emit appendToLog(QString("*** START *** READ ")+ QString::number(count) + QString(" word(s) @0x")+ QString::number(address,16));
301 300
302 301 while (remainingCount > READ_WRITE_MAX_COUNTS)
303 302 {
304 303 console_message.sprintf("remainingCount: %d => ", remainingCount);
305 304 emit appendToLog(console_message + QString("Read ")+ QString::number(4*READ_WRITE_MAX_COUNTS) + QString(" byte(s) @0x")+ QString::number(address,16));
306 305
307 306 if (this->ReadBLOCK(READ_WRITE_MAX_COUNTS*4, address)==0)
308 307 {
309 308 emit appendToLog("WARNING === in function READ of rmapplugin *** RMAP packet not received");
310 309 return 1;
311 310 }
312 311
313 312 for(int i=0;i<READ_WRITE_MAX_COUNTS;i++)
314 313 {
315 314 Value[i+iOffset] = (unsigned char) rmapPacket[i*4+RMAP_READ_REPLY_HEADER_LENGTH];
316 315 for(int j=1;j<4;j++)
317 316 {
318 317 Value[i+iOffset]= ((unsigned char) (rmapPacket[i*4+j+RMAP_READ_REPLY_HEADER_LENGTH]))
319 318 + Value[i+iOffset]*256;
320 319 }
321 320 }
322 321
323 322 remainingCount = remainingCount - READ_WRITE_MAX_COUNTS;
324 323 address = address + READ_WRITE_MAX_COUNTS * 4;
325 324 iOffset = iOffset + READ_WRITE_MAX_COUNTS;
326 325 this->acquireRMAPSemaphore();
327 326 }
328 327
329 328 if (remainingCount > 0)
330 329 {
331 330 console_message.sprintf("remainingCount: %d => ", remainingCount);
332 331 emit appendToLog(console_message + QString("Read ")+ QString::number(4*remainingCount) + QString(" byte(s) @0x")+ QString::number(address,16));
333 332
334 333 if (this->ReadBLOCK(4*remainingCount, address)==0)
335 334 {
336 335 emit appendToLog("WARNING === in function READ of rmapplugin *** RMAP packet not received");
337 336 return 1;
338 337 }
339 338
340 339 for(unsigned int i=0;i<remainingCount;i++)
341 340 {
342 341 Value[i+iOffset] = (unsigned char) rmapPacket[i*4+RMAP_READ_REPLY_HEADER_LENGTH];
343 342 for(int j=1;j<4;j++)
344 343 {
345 344 Value[i+iOffset]= ((unsigned char)(rmapPacket[i*4+j+RMAP_READ_REPLY_HEADER_LENGTH])) + Value[i+iOffset]*256;
346 345 }
347 346 }
348 347 this->acquireRMAPSemaphore();
349 348 }
350 349
351 350 emit appendToLog(QString("*** STOP *** READ "));
352 351 return count;
353 352 }
354 353
355 354 unsigned int StarDundee::WriteBLOCK(char *data, unsigned int nbBytes, unsigned int address)
356 355 {
357 356 RMAP *RMAPCommand;
358 357 char * packet;
359 358 unsigned char offset, headerSize, CRCSize;
360 359 char* aux;
361 360 unsigned int totalSize;
362 361 int errorCode;
363 362 QString console_message;
364 363
365 364 if (getLinkStatus(this->linkNumber_SPINBOX->value()) == 0)
366 365 {
367 366 this->Close();
368 367 return 1;
369 368 }
370 369
371 370 RMAPCommand = new RMAP(this->commandCode,
372 371 rmapTargetLogicalAddress,
373 372 rmapSourceLogicalAddress,
374 373 address,
375 374 nbBytes,
376 375 data);
377 376 headerSize = sizeof(RMAPCommand->RMAPHeader);
378 377 CRCSize = 1;
379 378
380 379 //*************************
381 380 // BUILD THE PACKET TO SEND
382 381 totalSize = headerSize + nbBytes + CRCSize;
383 382 packet = (char*) malloc( totalSize );
384 383 aux = (char*) ((void*) &RMAPCommand->RMAPHeader);
385 384 for(unsigned int i = 0; i<headerSize; i++) packet[i] = aux[i];
386 385 offset = headerSize;
387 386 for(unsigned int i = 0; i<nbBytes; i++)
388 387 {
389 388 packet[i+offset] = data[i];
390 389 }
391 390 packet[nbBytes+offset] = RMAPCommand->dataCRC;
392 391
393 392 //****************
394 393 // SEND THE PACKET
395 394 result = USBSpaceWire_SendPacket(hDevice,
396 395 packet,
397 396 totalSize,
398 397 BWAIT_1, &pIdentifier);
399 398 if (result != TRANSFER_SUCCESS)
400 399 {
401 400 emit sendMessage("ERROR *** WriteStarDundee when sending packet of size "
402 401 + QString::number(totalSize) +", with code: " + QString::number(result));
403 402 USBSpaceWire_FreeSend(hDevice, pIdentifier);
404 403 free(data);
405 404 return 1;
406 405 }
407 406 else emit sendMessage("OK *** WriteStarDundee when sending packet of size " + QString::number(totalSize));
408 407
409 408 //**************
410 409 // Free the send
411 410 USBSpaceWire_FreeSend(hDevice, pIdentifier);
412 411 free(packet);
413 412
414 413 if ( (commandCode == writeSingle_noVer_Rep) | (commandCode == writeInc_noVer_Rep) |
415 414 (commandCode == writeSingle_ver_rep) | (commandCode == writeInc_ver_rep) )
416 415 {
417 416 // WAIT FOR THE RMAP REPLY PACKET
418 417 errorCode = this->receiveSPWPacket(1);
419 418 if (errorCode<=0)
420 419 {
421 420 emit appendToLog("WARNING === in function WriteBLOCK of rmapplugin *** RMAP packet reception failed with code " + QString::number(errorCode));
422 421 return 0;
423 422 }
424 423 if(rmapPacketSize != 8)
425 424 {
426 425 console_message.sprintf("WARNING === in function WRITE (with reply) of rmapplugin *** write reply format not compliant\n");
427 426 emit appendToLog(console_message);
428 427 return 0;
429 428 }
430 429 switch (this->rmapPacket[3]) // byte 4 is the status byte in the reply
431 430 {
432 431 case 0:
433 432 emit RMAP_write_reply_setText("reply to the write command required\nlast reply status: 0 Successfull");
434 433 break;
435 434 case 1:
436 435 emit appendToLog("WARNING === in function WRITE (with reply) of rmapplugin *** General error code");
437 436 emit RMAP_write_reply_setText("reply to the write command required\nlast reply status: 1 General error code");
438 437 break;
439 438 case 2:
440 439 emit appendToLog("WARNING === in function WRITE (with reply) of rmapplugin *** Unused RMAP packet type or command code");
441 440 emit RMAP_write_reply_setText("reply to the write command required\nlast reply status: 2 Unused RMAP packet type or command code");
442 441 break;
443 442 case 3:
444 443 emit appendToLog("WARNING === in function WRITE (with reply) of rmapplugin *** Invalid key");
445 444 emit RMAP_write_reply_setText("reply to the write command required\nlast reply status: 3 Invalid key");
446 445 break;
447 446 case 4:
448 447 emit appendToLog("WARNING === in function WRITE (with reply) of rmapplugin *** Invalid data CRC");
449 448 emit RMAP_write_reply_setText("reply to the write command required\nlast reply status: 4 Invalid data CRC");
450 449 break;
451 450 case 5:
452 451 emit appendToLog("WARNING === in function WRITE (with reply) of rmapplugin *** Early EOP");
453 452 emit RMAP_write_reply_setText("reply to the write command required\nlast reply status: 5 Early EOP");
454 453 break;
455 454 case 6:
456 455 emit appendToLog("WARNING === in function WRITE (with reply) of rmapplugin *** Too much data");
457 456 emit RMAP_write_reply_setText("reply to the write command required\nlast reply status: 6 Too much data");
458 457 break;
459 458 case 7:
460 459 emit appendToLog("WARNING === in function WRITE (with reply) of rmapplugin *** EEP");
461 460 emit RMAP_write_reply_setText("reply to the write command required\nlast reply status: 7 EEP");
462 461 break;
463 462 case 8:
464 463 emit appendToLog("WARNING === in function WRITE (with reply) of rmapplugin *** Reserved");
465 464 emit RMAP_write_reply_setText("reply to the write command required\nlast reply status: 8 Reserved");
466 465 break;
467 466 case 9:
468 467 emit appendToLog("WARNING === in function WRITE (with reply) of rmapplugin *** Verify buffer overrun");
469 468 emit RMAP_write_reply_setText("reply to the write command required\nlast reply status: 9 Verify buffer overrun");
470 469 break;
471 470 case 10:
472 471 emit appendToLog("WARNING === in function WRITE (with reply) of rmapplugin *** RMAP command not implemented or not authorised");
473 472 emit RMAP_write_reply_setText("reply to the write command required\nlast reply status: 10 RMAP command not implemented or not authorised");
474 473 break;
475 474 case 11:
476 475 emit appendToLog("WARNING === in function WRITE (with reply) of rmapplugin *** RMW data length error");
477 476 emit RMAP_write_reply_setText("reply to the write command required\nlast reply status: 11 RMAP RMW data length error");
478 477 break;
479 478 case 12:
480 479 emit appendToLog("WARNING === in function WRITE (with reply) of rmapplugin *** Invalid target logical address");
481 480 emit RMAP_write_reply_setText("reply to the write command required\nlast reply status: 12 Invalid target logical address");
482 481 break;
483 482 }
484 483 this->acquireRMAPSemaphore();
485 484 }
486 485 else
487 486 emit RMAP_write_reply_setText("reply to the write command required\nlast reply status: unavailable");
488 487
489 488 return nbBytes;
490 489 }
491 490
492 491 unsigned int StarDundee::ReadBLOCK(unsigned int nbBytes, unsigned int address)
493 492 {
494 493 int errorCode;
495 494 RMAP *RMAPCommand;
496 495 unsigned int dataLength;
497 496
498 497 //**********************
499 498 // Check the link status
500 499 if ( getLinkStatus( this->linkNumber_SPINBOX->value() ) == 0 )
501 500 {
502 501 this->Close();
503 502 emit appendToLog("WARNING === in function WriteSPW of StarDundee *** SPW link not running\n");
504 503 return 0;
505 504 }
506 505
507 506 //**********************
508 507 // SEND THE READ COMMAND
509 508 if (nbBytes > 4)
510 509 {
511 510 RMAPCommand = new RMAP(read_Inc,
512 511 rmapTargetLogicalAddress,
513 512 rmapSourceLogicalAddress,
514 513 address,
515 514 nbBytes,
516 515 NULL);
517 516 }
518 517 else
519 518 {
520 519 RMAPCommand = new RMAP(read_Single,
521 520 rmapTargetLogicalAddress,
522 521 rmapSourceLogicalAddress,
523 522 address,
524 523 nbBytes,
525 524 NULL);
526 525 }
527 526 result = USBSpaceWire_SendPacket(hDevice,
528 527 (unsigned char*) ((void*) &RMAPCommand->RMAPHeader),
529 528 sizeof(RMAPCommand->RMAPHeader),
530 529 BWAIT_1, &pIdentifier);
531 530 if (result != TRANSFER_SUCCESS) emit sendMessage("ERR *** ReadStarDundee *** ReadBLOCK *** sending the READ command ");
532 531 else emit sendMessage("OK *** ReadStarDundee *** ReadBLOCK *** sending the READ command");
533 532
534 533 //*********************************
535 534 // RECEIVE THE INCOMING RMAP PACKET
536 535 errorCode = this->receiveSPWPacket(1); // request ID 1 is for RMAP packet
537 536 if (errorCode<=0)
538 537 {
539 538 emit appendToLog("WARNING === in function ReadBLOCK of StarDundee *** RMAP packet reception failed with code " + QString::number(errorCode));
540 539 return 0;
541 540 }
542 541 dataLength = rmapPacketSize - RMAP_READ_REPLY_HEADER_LENGTH - RMAP_DATA_CRC_LENGTH;
543 542 if(dataLength != nbBytes)
544 543 {
545 544 emit appendToLog("WARNING === in function READ of StarDundee *** number of data received ("
546 545 +QString::number(dataLength)
547 546 +") not equal to number of data requested ("
548 547 +QString::number(nbBytes)
549 548 +")");
550 549 return 0;
551 550 }
552 551 return dataLength;
553 552 }
554 553
555 554 unsigned int StarDundee::WriteSPW(char *Value, unsigned int count, char targetLogicalAddress, char userApplication)
556 555 {
557 556 char protocoleIdentifier = 0x02;
558 557 char reserved = 0x00;
559 558 char *SPWData;
560 559 unsigned int totalSize;
561 560
562 561 if (count>248)
563 562 {
564 563 emit appendToLog("WARNING === in function WRITE of rmapplugin *** CCSDS packet size > 248 bytes\n");
565 564 return 1;
566 565 }
567 566
568 567 emit appendToLog("*** START *** Send CCSDS packet of "+ QString::number(count) + " byte(s)");
569 568
570 569 if ( getLinkStatus( this->linkNumber_SPINBOX->value() ) == 0 )
571 570 {
572 571 this->Close();
573 572 emit appendToLog("WARNING === in function WriteSPW of StarDundee *** SPW link not running\n");
574 573 return 1;
575 574 }
576 575
577 576 totalSize = count + 4;
578 577 SPWData = (char*) malloc(totalSize);
579 578 // SPW HEADER
580 579 SPWData[0] = targetLogicalAddress;
581 580 SPWData[1] = protocoleIdentifier;
582 581 SPWData[2] = reserved;
583 582 SPWData[3] = userApplication;
584 583 // CCSDS PACKET
585 584 for (unsigned int i = 0; i<count; i++)
586 585 {
587 586 SPWData[i+4] = Value[i];
588 587 }
589 588
590 589 //************
591 590 // SEND THE PACKET
592 591 result = USBSpaceWire_SendPacket(hDevice,
593 592 SPWData,
594 593 totalSize,
595 594 BWAIT_1, &pIdentifier);
596 595 if (result != TRANSFER_SUCCESS)
597 596 {
598 597 emit sendMessage("ERROR *** WriteSPW when sending packet of size "
599 598 + QString::number(totalSize) +", with code: " + QString::number(result));
600 599 USBSpaceWire_FreeSend(hDevice, pIdentifier);
601 600 free(SPWData);
602 601 return 0;
603 602 }
604 603 else emit sendMessage("OK *** WriteSPW when sending packet of size " + QString::number(totalSize));
605 604
606 605 //**************
607 606 // Free the send
608 607 USBSpaceWire_FreeSend(hDevice, pIdentifier);
609 608 free(SPWData);
610 609
611 610 emit appendToLog(QString("*** CCSDS packet sent"));
612 611
613 612 return 1;
614 613 }
615 614
616 615 unsigned int StarDundee::getLinkStatus(unsigned char link)
617 616 {
618 617 U32 statusControl, errorStatus, portType;
619 618 U32 linkStatus, operatingSpeed, outputPortConnection;
620 619 char isLinkRunning, isAutoStart, isStart, isDisabled, isTristate;
621 620
622 621 // Read the link status control register
623 622 if (CFGSpaceWire_GetLinkStatusControl(hDevice, 1, &statusControl) != CFG_TRANSFER_SUCCESS)
624 623 {
625 624 emit appendToLog("Could not read link status control for link" + QString::number(link));
626 625 }
627 626 else
628 627 {
629 628 // Display the link status control register properties
630 629 CFGSpaceWire_LSPortType(statusControl, &portType);
631 630 if (portType == CFG_CONFIGURATION_PORT)
632 631 {
633 632 CFGSpaceWire_LSConfigErrorStatus(statusControl, &errorStatus);
634 633 //emit appendToLog("Configuration port error status = " + QString::number(errorStatus));
635 634 }
636 635 else if (portType == CFG_SPACEWIRE_EXTERNAL_PORT)
637 636 {
638 637 CFGSpaceWire_LSExternalErrorStatus(statusControl, &errorStatus);
639 638 //emit appendToLog("External port error status = " + QString::number(errorStatus));
640 639 }
641 640 else
642 641 {
643 642 CFGSpaceWire_LSErrorStatus(statusControl, &errorStatus);
644 643 //emit appendToLog("SpaceWire link error status = " + QString::number(errorStatus));
645 644 }
646 645 CFGSpaceWire_LSLinkState(statusControl, &linkStatus);
647 646 CFGSpaceWire_LSIsLinkRunning(statusControl, &isLinkRunning);
648 647 CFGSpaceWire_LSIsAutoStart(statusControl, &isAutoStart);
649 648 CFGSpaceWire_LSIsStart(statusControl, &isStart);
650 649 CFGSpaceWire_LSIsDisabled(statusControl, &isDisabled);
651 650 CFGSpaceWire_LSIsTristate(statusControl, &isTristate);
652 651 CFGSpaceWire_LSOperatingSpeed(statusControl, &operatingSpeed);
653 652 CFGSpaceWire_LSOutputPortConnection(statusControl, &outputPortConnection);
654 653 //emit appendToLog("The link state is = " + QString::number(linkStatus));
655 654 //emit appendToLog("The link is running = " + QString::number(isLinkRunning));
656 655 //emit appendToLog("The autostart bit is enabled = " + QString::number(isAutoStart));
657 656 //emit appendToLog("The start bit is enabled = " + QString::number(isStart));
658 657 //emit appendToLog("The link is disabled = " + QString::number(isDisabled));
659 658 //emit appendToLog("The tri-state bit is enabled = " + QString::number(isAutoStart));
660 659 //emit appendToLog("The operating speed is = " + QString::number(operatingSpeed));
661 660 //emit appendToLog("This port is currently connected to output port = " + QString::number(outputPortConnection));
662 661 }
663 662 if (linkStatus == 5) return 1;
664 663 else return 0;
665 664 }
666 665
667 666 int StarDundee::receiveSPWPacket(unsigned char requestID) // SLOT
668 667 {
669 668 unsigned int packetLength;
670 669 unsigned int nbBytes;
671 670 unsigned nPacketNum;
672 671 USB_SPACEWIRE_PACKET_PROPERTIES properties; // The properties of the read
673 672
674 673 if (requestID==1)
675 674 {
676 675 if (rmapPacketSEMAPHORE->available()) return rmapPacketSize;
677 676 }
678 677
679 678 //********************
680 679 // TRY TO RECEIVE DATA
681 680 nbBytes = qMax(RMAP_MAX_PACKET_LENGTH, CCSDS_MAX_PACKET_LENGTH); // maximum size of the packet to receive
682 681 nPacketNum = 1;
683 682 result = USBSpaceWire_ReadPackets(hDevice, spwPacket, nbBytes, nPacketNum, BWAIT_1, &properties, &pIdentifier);
684 683 if (result != TRANSFER_SUCCESS) emit sendMessage("Error: Could not receive the packet");
685 684 else
686 685 {
687 686 emit sendMessage("A packet of length " + QString::number(properties.len) + " has been successfully received");
688 687 USBSpaceWire_FreeRead(hDevice, pIdentifier); // Free the receive
689 688 }
690 689 packetLength = properties.len;
691 690
692 691 switch(spwPacket[1]) // byte 1 is the protocole identifier in the SPW packet
693 692 {
694 693 case 1: // 0x01 is the protocole identifier for RMAP packets
695 694 if (rmapPacketSEMAPHORE->available()!=0) return -3; // ERROR === previous RMAP packet not processed yet
696 695 for(unsigned int i=0; i<packetLength; i++) rmapPacket[i] = spwPacket[i];
697 696 rmapPacketSize = packetLength;
698 697 rmapPacketSEMAPHORE->release();
699 698 emit sendMessage("RMAP packet of size " + QString::number(packetLength) + " received");
700 699 return packetLength;
701 700
702 701 case 2: // 0x02 is the protocole identifier for CCSDS packets
703 702 if (ccsdsPacketSEMAPHORE->available()!=0) return -4; // ERROR === previous CCSDS packet not processed yet
704 703 for(unsigned int i=0; i<packetLength; i++) ccsdsPacket[i] = spwPacket[i];
705 704 ccsdsPacketSize = packetLength;
706 705 ccsdsPacketSEMAPHORE->release();
707 706 emit(ccsdsPacketAvailable(ccsdsPacket, packetLength));
708 707 return packetLength;
709 708 }
710 709 return 0;
711 710 }
712 711
713 712
@@ -1,82 +1,84
1 1 #ifndef STARDUNDEE_H
2 2 #define STARDUNDEE_H
3 3
4 4 #include <QWidget>
5 5 #include "spw_usb_api.h"
6 6 #include "spw_config_library.h"
7 7 #include <QPushButton>
8 8 #include <QGridLayout>
9 9 #include <QSpinBox>
10 10 #include <QLabel>
11 11 #include <QSemaphore>
12 12 #include "rmapoperations.h"
13 13
14 14 #define BWAIT_0 0
15 15 #define BWAIT_1 1
16 16
17 17 class StarDundee : public QWidget
18 18 {
19 19 Q_OBJECT
20 20 public:
21 21 explicit StarDundee(QWidget *parent = 0);
22 22 ~StarDundee();
23 23 unsigned int Write(unsigned int *Value,unsigned int count,unsigned int address=0);
24 24 unsigned int Read(unsigned int *Value,unsigned int count,unsigned int address=0);
25 unsigned int WriteStarDundee(unsigned int *Value, unsigned int count, unsigned int address);
26 25 unsigned int WriteSPW(char *Value, unsigned int count, char targetLogicalAddress, char userApplication);
27 26 unsigned int getLinkStatus(unsigned char link);
28 27
29 28 signals:
30 29 void sendMessage(QString message);
31 30 void isOpen(bool);
32 31 void RMAP_write_reply_setText(QString);
33 32 void appendToLog(QString);
34 33 void ccsdsPacketAvailable(unsigned char*, unsigned int);
35 34
36 35 public slots:
37 36 unsigned int Open();
38 37 unsigned int Close();
39 38 int receiveSPWPacket(unsigned char requestID);
40 39 void commandCodeHasChanged(RMAP_command_codes code) {this->commandCode = code;}
41 40 void targetHasChanged(int target) {rmapTargetLogicalAddress = (unsigned char) target;}
42 41 void sourceHasChanged(int target) {rmapSourceLogicalAddress = (unsigned char) target;}
43 42
44 43 private:
45 unsigned int GetRoutingTableEntry();
44 //******************
45 // general functions
46 46 unsigned int WriteBLOCK(char *data,unsigned int nbBytes,unsigned int address=0);
47 47 unsigned int ReadBLOCK(unsigned int nbBytes,unsigned int address=0);
48 48 void acquireRMAPSemaphore() {rmapPacketSEMAPHORE->acquire();}
49 49 void acquireCCSDSSemaphore() {ccsdsPacketSEMAPHORE->acquire();}
50 50
51 //****************
52 // general members
51 53 unsigned char rmapTargetLogicalAddress ;
52 54 unsigned char rmapSourceLogicalAddress ;
55 RMAP_command_codes commandCode;
56 QGridLayout *bridge_LAYOUT;
57 QSemaphore *rmapPacketSEMAPHORE;
58 QSemaphore *ccsdsPacketSEMAPHORE;
59 char* rmapPacket;
60 unsigned char *ccsdsPacket;
61 char *spwPacket;
62 unsigned int rmapPacketSize;
63 unsigned int ccsdsPacketSize;
53 64
54 RMAP_command_codes commandCode;
65 //**************************
66 // specific member functions
67 unsigned int GetRoutingTableEntry();
55 68
69 //**************************
70 // specific member variables
56 71 QLabel *usbDeviceNumber_LABEL;
57 72 QLabel *linkNumber_LABEL;
58 73 QLabel *sourceLogicalAddress_LABEL;
59 74
60 75 QSpinBox *usbDeviceNumber_SPINBOX;
61 76 QSpinBox *linkNumber_SPINBOX;
62 77 QSpinBox *sourceLogicalAddress_SPINBOX;
63 78
64 QGridLayout *connection_LAYOUT;
65
66 unsigned char pBuffer[10]; // Pointer to the start of the user buffer from which to transmit data
67 USB_SPACEWIRE_ID pIdentifier; // A pointer to a variable which will be set to contain a unique identifier for the send
68
79 USB_SPACEWIRE_ID pIdentifier; // unique identifier for the send/receive operations
69 80 star_device_handle hDevice; // Handle to the SpaceWire device
70 81 USB_SPACEWIRE_STATUS result; // The result of the send operation
71
72 // Packet receiver
73 QSemaphore *rmapPacketSEMAPHORE;
74 QSemaphore *ccsdsPacketSEMAPHORE;
75 char* rmapPacket; // The buffer to receive RMAP READ packets
76 unsigned char *ccsdsPacket;
77 char *spwPacket;
78 unsigned int rmapPacketSize;
79 unsigned int ccsdsPacketSize;
80 82 };
81 83
82 84 #endif // STARDUNDEE_H
General Comments 0
You need to be logged in to leave comments. Login now