##// END OF EJS Templates
First version of the gse-lesia module...
leroy -
r23:23c09fe5a8b6 default
parent child
Show More
@@ -0,0 +1,6
1 #include "hkdisplay.h"
2
3 HKDisplay::HKDisplay(QWidget *parent) :
4 QWidget(parent)
5 {
6 }
@@ -0,0 +1,116
1 #ifndef HKDISPLAY_H
2 #define HKDISPLAY_H
3
4 #include <QWidget>
5 #include <QLabel>
6
7 class HKDisplay : public QWidget
8 {
9 Q_OBJECT
10 public:
11 explicit HKDisplay(QWidget *parent = 0);
12
13 signals:
14
15 public slots:
16
17 private:
18 QLabel *hk_lfr_mode;
19 QLabel *hk_lfr_dpu_spw_enabled;
20 QLabel *hk_lfr_dpu__link_state;
21 QLabel *sy_lfr_watchdog_enabled;
22 QLabel *hk_lfr_calib_enabled;
23 QLabel *hk_lfr_reset_cause;
24 // sy_lfr_sw_version_
25 QLabel *sy_lfr_sw_version_n1;
26 QLabel *sy_lfr_sw_version_n2;
27 QLabel *sy_lfr_sw_version_n3;
28 QLabel *sy_lfr_sw_version_n4;
29 QLabel *hk_lfr_update_info_tc_cnt;
30 QLabel *hk_lfr_update_time_tc_cnt;
31 QLabel *hk_dpu_exe_tc_lfr_cnt;
32 QLabel *hk_dpu_rej_tc_lfr_cnt;
33 // hk_lfr_last_exe_tc_
34 QLabel *hk_lfr_last_exe_tc_id;
35 QLabel *hk_lfr_last_exe_tc_type;
36 QLabel *hk_lfr_last_exe_tc_subtype;
37 QLabel *hk_lfr_last_exe_tc_time;
38 // hk_lfr_last_rej_tc_
39 QLabel *hk_lfr_last_rej_tc_id;
40 QLabel *hk_lfr_last_rej_tc_type;
41 QLabel *hk_lfr_last_rej_tc_subtype;
42 QLabel *hk_lfr_last_rej_tc_time;
43
44 QLabel *hk_lfr_le_cnt;
45 QLabel *hk_lfr_me_cnt;
46 QLabel *hk_lfr_he_cnt;
47 // hk_lfr_last_er
48 QLabel *hk_lfr_last_er_rid;
49 QLabel *hk_lfr_last_er_code;
50 QLabel *hk_lfr_last_er_time;
51 //hk_lfr_vhdl_
52 QLabel *hk_lfr_vhdl_aa;
53 QLabel *hk_lfr_vhdl_sm;
54 QLabel *hk_lfr_vhdl_fft;
55 QLabel *hk_lfr_vhdl_sr;
56 QLabel *hk_lfr_vhdl_cic;
57 QLabel *hk_lfr_vhdl_hk;
58 QLabel *hk_lfr_vhdl_iir;
59 QLabel *hk_lfr_vhdl_cal;
60 // hk_lfr_dpu_spw_
61 QLabel *hk_lfr_dpu_spw_pkt_rcv_cnt;
62 QLabel *hk_lfr_dpu_spw_pkt_sent_cnt;
63 QLabel *hk_lfr_dpu_spw_tick_out_cnt;
64 QLabel *hk_lfr_dpu_spw_last_timc;
65 // hk_lfr_last_fail_addr
66 QLabel *hk_lfr_last_fail_addr;
67 // hk_lfr_temp_
68 QLabel *hk_lfr_temp_scm;
69 QLabel *hk_lfr_temp_pcb;
70 QLabel *hk_lfr_temp_fpga;
71 // hk_lfr_dpu_spw_
72 QLabel *hk_lfr_dpu_spw_parity;
73 QLabel *hk_lfr_dpu_spw_disconnect;
74 QLabel *hk_lfr_dpu_spw_escape;
75 QLabel *hk_lfr_dpu_spw_credit;
76 QLabel *hk_lfr_dpu_spw_write_sync;
77 QLabel *hk_lfr_dpu_spw_rx_ahb;
78 QLabel *hk_lfr_dpu_spw_tx_ahb;
79 QLabel *hk_lfr_dpu_spw_header_crc;
80 QLabel *hk_lfr_dpu_spw_data_crc;
81 QLabel *hk_lfr_dpu_spw_early_eop;
82 QLabel *hk_lfr_dpu_spw_invalid_addr;
83 QLabel *hk_lfr_dpu_spw_eep;
84 QLabel *hk_lfr_dpu_spw_rx_too_big;
85 // hk_lfr_timecode_
86 QLabel *hk_lfr_timecode_erroneous;
87 QLabel *hk_lfr_timecode_missing;
88 QLabel *hk_lfr_timecode_invalid;
89 // hk_lfr_time_
90 QLabel *hk_lfr_time_timecode_it;
91 QLabel *hk_lfr_time_not_synchro;
92 QLabel *hk_lfr_time_timecode_ctr;
93 // hk_lfr_buffer_dpu_
94 QLabel *hk_lfr_buffer_dpu_tc_fifo;
95 QLabel *hk_lfr_buffer_dpu_tm_fifo;
96 // hk_lfr_ahb_
97 QLabel *hk_lfr_ahb_correctable;
98 QLabel *hk_lfr_ahb_uncorrectable;
99 QLabel *hk_lfr_ahb_fails_trans;
100 // hk_lfr_adc_
101 QLabel *hk_lfr_adc_failure;
102 QLabel *hk_lfr_adc_timeout;
103 QLabel *hk_lfr_toomany_err;
104 // hk_lfr_cpu_
105 QLabel *hk_lfr_cpu_write_err;
106 QLabel *hk_lfr_cpu_ins_access_err;
107 QLabel *hk_lfr_cpu_illegal_ins;
108 QLabel *hk_lfr_cpu_privilegied_ins;
109 QLabel *hk_lfr_cpu_register_hw;
110 QLabel *hk_lfr_cpu_not_aligned;
111 QLabel *hk_lfr_cpu_data_exception;
112 QLabel *hk_lfr_cpu_div_exception;
113 QLabel *hk_lfr_cpu_arith_overflow;
114 };
115
116 #endif // HKDISPLAY_H
@@ -0,0 +1,331
1 #############################################################################
2 # Makefile for building: gselesia
3 # Generated by qmake (2.01a) (Qt 4.8.4) on: Tue Jun 4 14:34:14 2013
4 # Project: gselesia.pro
5 # Template: app
6 # Command: /usr/bin/qmake-qt4 -spec /usr/lib64/qt4/mkspecs/linux-g++ -o Makefile gselesia.pro
7 #############################################################################
8
9 ####### Compiler, tools and options
10
11 CC = gcc
12 CXX = g++
13 DEFINES = -DQT_NO_DEBUG -DQT_XML_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED
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 $(DEFINES)
15 CXXFLAGS = -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 $(DEFINES)
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/QtXml -I/usr/include -I. -I../common_PLE -I../rmapplugin -I/usr/include/lppmon/common -I/usr/include/lppmon/wfdisplay -I.
17 LINK = g++
18 LFLAGS = -Wl,-O1 -Wl,-z,relro
19 LIBS = $(SUBLIBS) -L/usr/lib64 -llppmoncommon -lwfdisplay -lQtXml -lQtGui -lQtNetwork -lQtCore -lpthread
20 AR = ar cqs
21 RANLIB =
22 QMAKE = /usr/bin/qmake-qt4
23 TAR = tar -cf
24 COMPRESS = gzip -9f
25 COPY = cp -f
26 SED = sed
27 COPY_FILE = $(COPY)
28 COPY_DIR = $(COPY) -r
29 STRIP =
30 INSTALL_FILE = install -m 644 -p
31 INSTALL_DIR = $(COPY_DIR)
32 INSTALL_PROGRAM = install -m 755 -p
33 DEL_FILE = rm -f
34 SYMLINK = ln -f -s
35 DEL_DIR = rmdir
36 MOVE = mv -f
37 CHK_DIR_EXISTS= test -d
38 MKDIR = mkdir -p
39
40 ####### Output directory
41
42 OBJECTS_DIR = ./
43
44 ####### Files
45
46 SOURCES = main.cpp \
47 mainwindow.cpp \
48 mainwindowui.cpp \
49 ../common_PLE/qipdialogbox.cpp \
50 lfrxmlhandler.cpp \
51 lfrxmlwriter.cpp \
52 ../rmapplugin/tmstatistics.cpp \
53 ../rmapplugin/tmpackettoread.cpp \
54 ../rmapplugin/wfpacket.cpp moc_mainwindow.cpp \
55 moc_mainwindowui.cpp \
56 moc_qipdialogbox.cpp \
57 moc_lfrxmlhandler.cpp \
58 moc_lfrxmlwriter.cpp \
59 moc_tmstatistics.cpp \
60 moc_tmpackettoread.cpp \
61 moc_wfpacket.cpp
62 OBJECTS = main.o \
63 mainwindow.o \
64 mainwindowui.o \
65 qipdialogbox.o \
66 lfrxmlhandler.o \
67 lfrxmlwriter.o \
68 tmstatistics.o \
69 tmpackettoread.o \
70 wfpacket.o \
71 moc_mainwindow.o \
72 moc_mainwindowui.o \
73 moc_qipdialogbox.o \
74 moc_lfrxmlhandler.o \
75 moc_lfrxmlwriter.o \
76 moc_tmstatistics.o \
77 moc_tmpackettoread.o \
78 moc_wfpacket.o
79 DIST = /usr/lib64/qt4/mkspecs/common/unix.conf \
80 /usr/lib64/qt4/mkspecs/common/linux.conf \
81 /usr/lib64/qt4/mkspecs/common/gcc-base.conf \
82 /usr/lib64/qt4/mkspecs/common/gcc-base-unix.conf \
83 /usr/lib64/qt4/mkspecs/common/g++-base.conf \
84 /usr/lib64/qt4/mkspecs/common/g++-unix.conf \
85 /usr/lib64/qt4/mkspecs/qconfig.pri \
86 /usr/lib64/qt4/mkspecs/modules/qt_webkit_version.pri \
87 /usr/lib64/qt4/mkspecs/features/qt_functions.prf \
88 /usr/lib64/qt4/mkspecs/features/qt_config.prf \
89 /usr/lib64/qt4/mkspecs/features/exclusive_builds.prf \
90 /usr/lib64/qt4/mkspecs/features/default_pre.prf \
91 /usr/lib64/qt4/mkspecs/features/release.prf \
92 /usr/lib64/qt4/mkspecs/features/default_post.prf \
93 /usr/lib64/qt4/mkspecs/features/unix/gdb_dwarf_index.prf \
94 /usr/lib64/qt4/mkspecs/features/warn_on.prf \
95 /usr/lib64/qt4/mkspecs/features/qt.prf \
96 /usr/lib64/qt4/mkspecs/features/unix/thread.prf \
97 /usr/lib64/qt4/mkspecs/features/moc.prf \
98 /usr/lib64/qt4/mkspecs/features/resources.prf \
99 /usr/lib64/qt4/mkspecs/features/uic.prf \
100 /usr/lib64/qt4/mkspecs/features/yacc.prf \
101 /usr/lib64/qt4/mkspecs/features/lex.prf \
102 /usr/lib64/qt4/mkspecs/features/include_source_dir.prf \
103 gselesia.pro
104 QMAKE_TARGET = gselesia
105 DESTDIR =
106 TARGET = gselesia
107
108 first: all
109 ####### Implicit rules
110
111 .SUFFIXES: .o .c .cpp .cc .cxx .C
112
113 .cpp.o:
114 $(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<"
115
116 .cc.o:
117 $(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<"
118
119 .cxx.o:
120 $(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<"
121
122 .C.o:
123 $(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<"
124
125 .c.o:
126 $(CC) -c $(CFLAGS) $(INCPATH) -o "$@" "$<"
127
128 ####### Build rules
129
130 all: Makefile $(TARGET)
131
132 $(TARGET): $(OBJECTS)
133 $(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(OBJCOMP) $(LIBS)
134
135 Makefile: gselesia.pro /usr/lib64/qt4/mkspecs/linux-g++/qmake.conf /usr/lib64/qt4/mkspecs/common/unix.conf \
136 /usr/lib64/qt4/mkspecs/common/linux.conf \
137 /usr/lib64/qt4/mkspecs/common/gcc-base.conf \
138 /usr/lib64/qt4/mkspecs/common/gcc-base-unix.conf \
139 /usr/lib64/qt4/mkspecs/common/g++-base.conf \
140 /usr/lib64/qt4/mkspecs/common/g++-unix.conf \
141 /usr/lib64/qt4/mkspecs/qconfig.pri \
142 /usr/lib64/qt4/mkspecs/modules/qt_webkit_version.pri \
143 /usr/lib64/qt4/mkspecs/features/qt_functions.prf \
144 /usr/lib64/qt4/mkspecs/features/qt_config.prf \
145 /usr/lib64/qt4/mkspecs/features/exclusive_builds.prf \
146 /usr/lib64/qt4/mkspecs/features/default_pre.prf \
147 /usr/lib64/qt4/mkspecs/features/release.prf \
148 /usr/lib64/qt4/mkspecs/features/default_post.prf \
149 /usr/lib64/qt4/mkspecs/features/unix/gdb_dwarf_index.prf \
150 /usr/lib64/qt4/mkspecs/features/warn_on.prf \
151 /usr/lib64/qt4/mkspecs/features/qt.prf \
152 /usr/lib64/qt4/mkspecs/features/unix/thread.prf \
153 /usr/lib64/qt4/mkspecs/features/moc.prf \
154 /usr/lib64/qt4/mkspecs/features/resources.prf \
155 /usr/lib64/qt4/mkspecs/features/uic.prf \
156 /usr/lib64/qt4/mkspecs/features/yacc.prf \
157 /usr/lib64/qt4/mkspecs/features/lex.prf \
158 /usr/lib64/qt4/mkspecs/features/include_source_dir.prf \
159 /usr/lib64/libQtXml.prl \
160 /usr/lib64/libQtCore.prl \
161 /usr/lib64/libQtGui.prl \
162 /usr/lib64/libQtNetwork.prl
163 $(QMAKE) -spec /usr/lib64/qt4/mkspecs/linux-g++ -o Makefile gselesia.pro
164 /usr/lib64/qt4/mkspecs/common/unix.conf:
165 /usr/lib64/qt4/mkspecs/common/linux.conf:
166 /usr/lib64/qt4/mkspecs/common/gcc-base.conf:
167 /usr/lib64/qt4/mkspecs/common/gcc-base-unix.conf:
168 /usr/lib64/qt4/mkspecs/common/g++-base.conf:
169 /usr/lib64/qt4/mkspecs/common/g++-unix.conf:
170 /usr/lib64/qt4/mkspecs/qconfig.pri:
171 /usr/lib64/qt4/mkspecs/modules/qt_webkit_version.pri:
172 /usr/lib64/qt4/mkspecs/features/qt_functions.prf:
173 /usr/lib64/qt4/mkspecs/features/qt_config.prf:
174 /usr/lib64/qt4/mkspecs/features/exclusive_builds.prf:
175 /usr/lib64/qt4/mkspecs/features/default_pre.prf:
176 /usr/lib64/qt4/mkspecs/features/release.prf:
177 /usr/lib64/qt4/mkspecs/features/default_post.prf:
178 /usr/lib64/qt4/mkspecs/features/unix/gdb_dwarf_index.prf:
179 /usr/lib64/qt4/mkspecs/features/warn_on.prf:
180 /usr/lib64/qt4/mkspecs/features/qt.prf:
181 /usr/lib64/qt4/mkspecs/features/unix/thread.prf:
182 /usr/lib64/qt4/mkspecs/features/moc.prf:
183 /usr/lib64/qt4/mkspecs/features/resources.prf:
184 /usr/lib64/qt4/mkspecs/features/uic.prf:
185 /usr/lib64/qt4/mkspecs/features/yacc.prf:
186 /usr/lib64/qt4/mkspecs/features/lex.prf:
187 /usr/lib64/qt4/mkspecs/features/include_source_dir.prf:
188 /usr/lib64/libQtXml.prl:
189 /usr/lib64/libQtCore.prl:
190 /usr/lib64/libQtGui.prl:
191 /usr/lib64/libQtNetwork.prl:
192 qmake: FORCE
193 @$(QMAKE) -spec /usr/lib64/qt4/mkspecs/linux-g++ -o Makefile gselesia.pro
194
195 dist:
196 @$(CHK_DIR_EXISTS) .tmp/gselesia1.0.0 || $(MKDIR) .tmp/gselesia1.0.0
197 $(COPY_FILE) --parents $(SOURCES) $(DIST) .tmp/gselesia1.0.0/ && $(COPY_FILE) --parents mainwindow.h mainwindowui.h ../common_PLE/qipdialogbox.h lfrxmlhandler.h lfrxmlwriter.h ../rmapplugin/tmstatistics.h ../rmapplugin/tmpackettoread.h ../rmapplugin/wfpacket.h .tmp/gselesia1.0.0/ && $(COPY_FILE) --parents main.cpp mainwindow.cpp mainwindowui.cpp ../common_PLE/qipdialogbox.cpp lfrxmlhandler.cpp lfrxmlwriter.cpp ../rmapplugin/tmstatistics.cpp ../rmapplugin/tmpackettoread.cpp ../rmapplugin/wfpacket.cpp .tmp/gselesia1.0.0/ && (cd `dirname .tmp/gselesia1.0.0` && $(TAR) gselesia1.0.0.tar gselesia1.0.0 && $(COMPRESS) gselesia1.0.0.tar) && $(MOVE) `dirname .tmp/gselesia1.0.0`/gselesia1.0.0.tar.gz . && $(DEL_FILE) -r .tmp/gselesia1.0.0
198
199
200 clean:compiler_clean
201 -$(DEL_FILE) $(OBJECTS)
202 -$(DEL_FILE) *~ core *.core
203
204
205 ####### Sub-libraries
206
207 distclean: clean
208 -$(DEL_FILE) $(TARGET)
209 -$(DEL_FILE) Makefile
210
211
212 check: first
213
214 mocclean: compiler_moc_header_clean compiler_moc_source_clean
215
216 mocables: compiler_moc_header_make_all compiler_moc_source_make_all
217
218 compiler_moc_header_make_all: moc_mainwindow.cpp moc_mainwindowui.cpp moc_qipdialogbox.cpp moc_lfrxmlhandler.cpp moc_lfrxmlwriter.cpp moc_tmstatistics.cpp moc_tmpackettoread.cpp moc_wfpacket.cpp
219 compiler_moc_header_clean:
220 -$(DEL_FILE) moc_mainwindow.cpp moc_mainwindowui.cpp moc_qipdialogbox.cpp moc_lfrxmlhandler.cpp moc_lfrxmlwriter.cpp moc_tmstatistics.cpp moc_tmpackettoread.cpp moc_wfpacket.cpp
221 moc_mainwindow.cpp: lfrxmlhandler.h \
222 lfrxmlwriter.h \
223 mainwindowui.h \
224 mainwindow.h
225 /usr/lib64/qt4/bin/moc $(DEFINES) $(INCPATH) mainwindow.h -o moc_mainwindow.cpp
226
227 moc_mainwindowui.cpp: mainwindowui.h
228 /usr/lib64/qt4/bin/moc $(DEFINES) $(INCPATH) mainwindowui.h -o moc_mainwindowui.cpp
229
230 moc_qipdialogbox.cpp: ../common_PLE/qipdialogbox.h
231 /usr/lib64/qt4/bin/moc $(DEFINES) $(INCPATH) ../common_PLE/qipdialogbox.h -o moc_qipdialogbox.cpp
232
233 moc_lfrxmlhandler.cpp: lfrxmlhandler.h
234 /usr/lib64/qt4/bin/moc $(DEFINES) $(INCPATH) lfrxmlhandler.h -o moc_lfrxmlhandler.cpp
235
236 moc_lfrxmlwriter.cpp: lfrxmlwriter.h
237 /usr/lib64/qt4/bin/moc $(DEFINES) $(INCPATH) lfrxmlwriter.h -o moc_lfrxmlwriter.cpp
238
239 moc_tmstatistics.cpp: ../rmapplugin/tmstatistics.h
240 /usr/lib64/qt4/bin/moc $(DEFINES) $(INCPATH) ../rmapplugin/tmstatistics.h -o moc_tmstatistics.cpp
241
242 moc_tmpackettoread.cpp: ../rmapplugin/tmpackettoread.h
243 /usr/lib64/qt4/bin/moc $(DEFINES) $(INCPATH) ../rmapplugin/tmpackettoread.h -o moc_tmpackettoread.cpp
244
245 moc_wfpacket.cpp: ../rmapplugin/wfpacket.h
246 /usr/lib64/qt4/bin/moc $(DEFINES) $(INCPATH) ../rmapplugin/wfpacket.h -o moc_wfpacket.cpp
247
248 compiler_rcc_make_all:
249 compiler_rcc_clean:
250 compiler_image_collection_make_all: qmake_image_collection.cpp
251 compiler_image_collection_clean:
252 -$(DEL_FILE) qmake_image_collection.cpp
253 compiler_moc_source_make_all:
254 compiler_moc_source_clean:
255 compiler_uic_make_all:
256 compiler_uic_clean:
257 compiler_yacc_decl_make_all:
258 compiler_yacc_decl_clean:
259 compiler_yacc_impl_make_all:
260 compiler_yacc_impl_clean:
261 compiler_lex_make_all:
262 compiler_lex_clean:
263 compiler_clean: compiler_moc_header_clean
264
265 ####### Compile
266
267 main.o: main.cpp mainwindow.h \
268 lfrxmlhandler.h \
269 lfrxmlwriter.h \
270 mainwindowui.h
271 $(CXX) -c $(CXXFLAGS) $(INCPATH) -o main.o main.cpp
272
273 mainwindow.o: mainwindow.cpp mainwindow.h \
274 lfrxmlhandler.h \
275 lfrxmlwriter.h \
276 mainwindowui.h
277 $(CXX) -c $(CXXFLAGS) $(INCPATH) -o mainwindow.o mainwindow.cpp
278
279 mainwindowui.o: mainwindowui.cpp mainwindowui.h
280 $(CXX) -c $(CXXFLAGS) $(INCPATH) -o mainwindowui.o mainwindowui.cpp
281
282 qipdialogbox.o: ../common_PLE/qipdialogbox.cpp ../common_PLE/qipdialogbox.h
283 $(CXX) -c $(CXXFLAGS) $(INCPATH) -o qipdialogbox.o ../common_PLE/qipdialogbox.cpp
284
285 lfrxmlhandler.o: lfrxmlhandler.cpp lfrxmlhandler.h
286 $(CXX) -c $(CXXFLAGS) $(INCPATH) -o lfrxmlhandler.o lfrxmlhandler.cpp
287
288 lfrxmlwriter.o: lfrxmlwriter.cpp lfrxmlwriter.h
289 $(CXX) -c $(CXXFLAGS) $(INCPATH) -o lfrxmlwriter.o lfrxmlwriter.cpp
290
291 tmstatistics.o: ../rmapplugin/tmstatistics.cpp ../rmapplugin/tmstatistics.h
292 $(CXX) -c $(CXXFLAGS) $(INCPATH) -o tmstatistics.o ../rmapplugin/tmstatistics.cpp
293
294 tmpackettoread.o: ../rmapplugin/tmpackettoread.cpp ../rmapplugin/tmpackettoread.h
295 $(CXX) -c $(CXXFLAGS) $(INCPATH) -o tmpackettoread.o ../rmapplugin/tmpackettoread.cpp
296
297 wfpacket.o: ../rmapplugin/wfpacket.cpp ../rmapplugin/wfpacket.h
298 $(CXX) -c $(CXXFLAGS) $(INCPATH) -o wfpacket.o ../rmapplugin/wfpacket.cpp
299
300 moc_mainwindow.o: moc_mainwindow.cpp
301 $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_mainwindow.o moc_mainwindow.cpp
302
303 moc_mainwindowui.o: moc_mainwindowui.cpp
304 $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_mainwindowui.o moc_mainwindowui.cpp
305
306 moc_qipdialogbox.o: moc_qipdialogbox.cpp
307 $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_qipdialogbox.o moc_qipdialogbox.cpp
308
309 moc_lfrxmlhandler.o: moc_lfrxmlhandler.cpp
310 $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_lfrxmlhandler.o moc_lfrxmlhandler.cpp
311
312 moc_lfrxmlwriter.o: moc_lfrxmlwriter.cpp
313 $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_lfrxmlwriter.o moc_lfrxmlwriter.cpp
314
315 moc_tmstatistics.o: moc_tmstatistics.cpp
316 $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_tmstatistics.o moc_tmstatistics.cpp
317
318 moc_tmpackettoread.o: moc_tmpackettoread.cpp
319 $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_tmpackettoread.o moc_tmpackettoread.cpp
320
321 moc_wfpacket.o: moc_wfpacket.cpp
322 $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_wfpacket.o moc_wfpacket.cpp
323
324 ####### Install
325
326 install: FORCE
327
328 uninstall: FORCE
329
330 FORCE:
331
@@ -0,0 +1,1
1 <?xml version="1.0" encoding="UTF-8"?><persons><person firstname="yza" surname="bcd" number="756776">kamlesh</person><person firstname="stu" surname="vwx" number="87654">kamlesh</person><person firstname="mno" surname="pqr" number="12356">kamlesh</person><person firstname="ghi" surname="jkl" number="67890">kamlesh</person><person firstname="abc" surname="def" number="12345">kamlesh</person></persons>
1 NO CONTENT: new file 100755, binary diff hidden
NO CONTENT: new file 100755, binary diff hidden
@@ -0,0 +1,43
1 #-------------------------------------------------
2 #
3 # Project created by QtCreator 2013-05-03T14:05:02
4 #
5 #-------------------------------------------------
6
7 QT += core gui
8 QT += network
9 QT += xml
10
11 TARGET = gselesia
12 TEMPLATE = app
13
14 INCLUDEPATH += \
15 $${PWD} \
16 ../common_PLE \
17 ../rmapplugin \
18 $$[QT_INSTALL_HEADERS]/lppmon/common \
19 $$[QT_INSTALL_HEADERS]/lppmon/wfdisplay
20
21 LIBS += -llppmoncommon -lwfdisplay
22
23 SOURCES += main.cpp\
24 mainwindow.cpp \
25 mainwindowui.cpp \
26 ../common_PLE/qipdialogbox.cpp \
27 lfrxmlhandler.cpp \
28 lfrxmlwriter.cpp \
29 ../rmapplugin/tmstatistics.cpp \
30 ../rmapplugin/tmpackettoread.cpp \
31 ../rmapplugin/wfpacket.cpp
32
33 HEADERS += mainwindow.h \
34 mainwindowui.h \
35 ../common_PLE/qipdialogbox.h \
36 lfrxmlhandler.h \
37 lfrxmlwriter.h \
38 ../rmapplugin/tmstatistics.h \
39 ../rmapplugin/tmpackettoread.h \
40 ../rmapplugin/wfpacket.h
41
42
43
@@ -0,0 +1,265
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!DOCTYPE QtCreatorProject>
3 <!-- Written by Qt Creator 2.4.1, 2013-06-04T16:00:06. -->
4 <qtcreator>
5 <data>
6 <variable>ProjectExplorer.Project.ActiveTarget</variable>
7 <value type="int">0</value>
8 </data>
9 <data>
10 <variable>ProjectExplorer.Project.EditorSettings</variable>
11 <valuemap type="QVariantMap">
12 <value type="bool" key="EditorConfiguration.AutoIndent">true</value>
13 <value type="bool" key="EditorConfiguration.AutoSpacesForTabs">false</value>
14 <valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.0">
15 <value type="QString" key="language">Cpp</value>
16 <valuemap type="QVariantMap" key="value">
17 <value type="QString" key="CurrentPreferences">CppGlobal</value>
18 </valuemap>
19 </valuemap>
20 <valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.1">
21 <value type="QString" key="language">QmlJS</value>
22 <valuemap type="QVariantMap" key="value">
23 <value type="QString" key="CurrentPreferences">QmlJSGlobal</value>
24 </valuemap>
25 </valuemap>
26 <value type="int" key="EditorConfiguration.CodeStyle.Count">2</value>
27 <value type="QByteArray" key="EditorConfiguration.Codec">System</value>
28 <value type="bool" key="EditorConfiguration.ConstrainTooltips">false</value>
29 <value type="int" key="EditorConfiguration.IndentSize">4</value>
30 <value type="bool" key="EditorConfiguration.MouseNavigation">true</value>
31 <value type="int" key="EditorConfiguration.PaddingMode">1</value>
32 <value type="bool" key="EditorConfiguration.ScrollWheelZooming">true</value>
33 <value type="int" key="EditorConfiguration.SmartBackspaceBehavior">0</value>
34 <value type="bool" key="EditorConfiguration.SpacesForTabs">true</value>
35 <value type="int" key="EditorConfiguration.TabKeyBehavior">0</value>
36 <value type="int" key="EditorConfiguration.TabSize">8</value>
37 <value type="bool" key="EditorConfiguration.UseGlobal">true</value>
38 <value type="int" key="EditorConfiguration.Utf8BomBehavior">1</value>
39 <value type="bool" key="EditorConfiguration.addFinalNewLine">true</value>
40 <value type="bool" key="EditorConfiguration.cleanIndentation">true</value>
41 <value type="bool" key="EditorConfiguration.cleanWhitespace">true</value>
42 <value type="bool" key="EditorConfiguration.inEntireDocument">false</value>
43 </valuemap>
44 </data>
45 <data>
46 <variable>ProjectExplorer.Project.PluginSettings</variable>
47 <valuemap type="QVariantMap"/>
48 </data>
49 <data>
50 <variable>ProjectExplorer.Project.Target.0</variable>
51 <valuemap type="QVariantMap">
52 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Desktop</value>
53 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Desktop</value>
54 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Target.DesktopTarget</value>
55 <value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">0</value>
56 <value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
57 <value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
58 <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
59 <value type="QString" key="ProjectExplorer.BuildCOnfiguration.ToolChain">ProjectExplorer.ToolChain.Gcc:/usr/bin/g++.x86-linux-generic-elf-64bit./usr/bin/gdb</value>
60 <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
61 <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
62 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
63 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
64 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
65 <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">false</value>
66 <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibraryAuto">true</value>
67 <value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
68 <value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
69 </valuemap>
70 <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
71 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
72 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
73 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
74 <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
75 <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
76 <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
77 </valuemap>
78 <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
79 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
80 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
81 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
82 </valuemap>
83 <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
84 <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
85 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
86 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
87 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
88 <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
89 <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
90 <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
91 </valuemap>
92 <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
93 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
94 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
95 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
96 </valuemap>
97 <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
98 <value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
99 <valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
100 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Qt 4.8.2 in PATH (System) Release</value>
101 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
102 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
103 <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
104 <value type="QString" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildDirectory">/opt/GSE_LESIA/gselesia</value>
105 <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.QtVersionId">1</value>
106 <value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">false</value>
107 </valuemap>
108 <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.1">
109 <value type="QString" key="ProjectExplorer.BuildCOnfiguration.ToolChain">ProjectExplorer.ToolChain.Gcc:/usr/bin/g++.x86-linux-generic-elf-64bit./usr/bin/gdb</value>
110 <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
111 <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
112 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
113 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
114 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
115 <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">false</value>
116 <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibraryAuto">true</value>
117 <value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
118 <value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
119 </valuemap>
120 <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
121 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
122 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
123 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
124 <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
125 <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
126 <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
127 </valuemap>
128 <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
129 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
130 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
131 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
132 </valuemap>
133 <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
134 <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
135 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
136 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
137 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
138 <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
139 <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
140 <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
141 </valuemap>
142 <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
143 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
144 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
145 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
146 </valuemap>
147 <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
148 <value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
149 <valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
150 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Qt 4.8.2 in PATH (System) Debug</value>
151 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
152 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
153 <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value>
154 <value type="QString" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildDirectory">/opt/GSE_LESIA/gselesia</value>
155 <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.QtVersionId">1</value>
156 <value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">false</value>
157 </valuemap>
158 <value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">2</value>
159 <valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
160 <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
161 <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
162 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy</value>
163 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
164 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
165 </valuemap>
166 <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
167 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">No deployment</value>
168 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
169 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
170 </valuemap>
171 <value type="int" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
172 <valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
173 <value type="bool" key="Analyzer.Project.UseGlobal">true</value>
174 <value type="bool" key="Analyzer.Project.UseGlobal">true</value>
175 <valuelist type="QVariantList" key="Analyzer.Valgrind.AddedSuppressionFiles"/>
176 <valuelist type="QVariantList" key="Analyzer.Valgrind.AddedSuppressionFiles"/>
177 <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectBusEvents">false</value>
178 <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectBusEvents">false</value>
179 <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectSystime">false</value>
180 <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectSystime">false</value>
181 <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableBranchSim">false</value>
182 <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableBranchSim">false</value>
183 <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableCacheSim">false</value>
184 <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableCacheSim">false</value>
185 <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableEventToolTips">true</value>
186 <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableEventToolTips">true</value>
187 <value type="double" key="Analyzer.Valgrind.Callgrind.MinimumCostRatio">0.01</value>
188 <value type="double" key="Analyzer.Valgrind.Callgrind.MinimumCostRatio">0.01</value>
189 <value type="double" key="Analyzer.Valgrind.Callgrind.VisualisationMinimumCostRatio">10</value>
190 <value type="double" key="Analyzer.Valgrind.Callgrind.VisualisationMinimumCostRatio">10</value>
191 <value type="bool" key="Analyzer.Valgrind.FilterExternalIssues">true</value>
192 <value type="bool" key="Analyzer.Valgrind.FilterExternalIssues">true</value>
193 <value type="int" key="Analyzer.Valgrind.NumCallers">25</value>
194 <value type="int" key="Analyzer.Valgrind.NumCallers">25</value>
195 <valuelist type="QVariantList" key="Analyzer.Valgrind.RemovedSuppressionFiles"/>
196 <valuelist type="QVariantList" key="Analyzer.Valgrind.RemovedSuppressionFiles"/>
197 <value type="bool" key="Analyzer.Valgrind.TrackOrigins">true</value>
198 <value type="bool" key="Analyzer.Valgrind.TrackOrigins">true</value>
199 <value type="QString" key="Analyzer.Valgrind.ValgrindExecutable">valgrind</value>
200 <value type="QString" key="Analyzer.Valgrind.ValgrindExecutable">valgrind</value>
201 <valuelist type="QVariantList" key="Analyzer.Valgrind.VisibleErrorKinds">
202 <value type="int">0</value>
203 <value type="int">1</value>
204 <value type="int">2</value>
205 <value type="int">3</value>
206 <value type="int">4</value>
207 <value type="int">5</value>
208 <value type="int">6</value>
209 <value type="int">7</value>
210 <value type="int">8</value>
211 <value type="int">9</value>
212 <value type="int">10</value>
213 <value type="int">11</value>
214 <value type="int">12</value>
215 <value type="int">13</value>
216 <value type="int">14</value>
217 </valuelist>
218 <valuelist type="QVariantList" key="Analyzer.Valgrind.VisibleErrorKinds">
219 <value type="int">0</value>
220 <value type="int">1</value>
221 <value type="int">2</value>
222 <value type="int">3</value>
223 <value type="int">4</value>
224 <value type="int">5</value>
225 <value type="int">6</value>
226 <value type="int">7</value>
227 <value type="int">8</value>
228 <value type="int">9</value>
229 <value type="int">10</value>
230 <value type="int">11</value>
231 <value type="int">12</value>
232 <value type="int">13</value>
233 <value type="int">14</value>
234 </valuelist>
235 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">gselesia</value>
236 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
237 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration</value>
238 <value type="int" key="Qt4ProjectManager.Qt4RunConfiguration.BaseEnvironmentBase">2</value>
239 <value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.CommandLineArguments"></value>
240 <value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.ProFile">gselesia.pro</value>
241 <value type="bool" key="Qt4ProjectManager.Qt4RunConfiguration.UseDyldImageSuffix">false</value>
242 <value type="bool" key="Qt4ProjectManager.Qt4RunConfiguration.UseTerminal">false</value>
243 <valuelist type="QVariantList" key="Qt4ProjectManager.Qt4RunConfiguration.UserEnvironmentChanges"/>
244 <value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.UserWorkingDirectory"></value>
245 <value type="uint" key="RunConfiguration.QmlDebugServerPort">3768</value>
246 <value type="bool" key="RunConfiguration.UseCppDebugger">true</value>
247 <value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
248 <value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">false</value>
249 </valuemap>
250 <value type="int" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
251 </valuemap>
252 </data>
253 <data>
254 <variable>ProjectExplorer.Project.TargetCount</variable>
255 <value type="int">1</value>
256 </data>
257 <data>
258 <variable>ProjectExplorer.Project.Updater.EnvironmentId</variable>
259 <value type="QString">{2e58a81f-9962-4bba-ae6b-760177f0656c}</value>
260 </data>
261 <data>
262 <variable>ProjectExplorer.Project.Updater.FileVersion</variable>
263 <value type="int">10</value>
264 </data>
265 </qtcreator>
@@ -0,0 +1,106
1 #include "lfrxmlhandler.h"
2 #include <QDebug>
3
4 LFRXmlHandler::LFRXmlHandler(QObject *parent) :
5 QObject(parent)
6 {
7 }
8
9 /*!
10 Reset the state of the handler to ensure that new documents are
11 read correctly.
12
13 We return true to indicate that parsing should continue.
14 */
15
16 bool LFRXmlHandler::startDocument()
17 {
18 elementName.clear();
19 elementIndentation.clear();
20 indentationLevel = 0;
21
22 return true;
23 }
24
25 /*!
26 Process each starting element in the XML document.
27
28 Append the element name to the list of elements found; add its
29 corresponding indentation level to the list of indentation levels.
30
31 Increase the level of indentation by one column.
32
33 We return true to indicate that parsing should continue.
34 */
35
36 bool LFRXmlHandler::startElement(const QString &, const QString &,
37 const QString & qName, const QXmlAttributes &)
38 {
39 elementName.append(qName);
40 elementIndentation.append(indentationLevel);
41 indentationLevel += 1;
42
43 if (qName == "EventBinary")
44 {
45 emit displayMessage("EventBinary detected");
46 }
47
48 return true;
49 }
50
51 /*!
52 Process each ending element in the XML document.
53
54 Decrease the level of indentation by one column.
55
56 We return true to indicate that parsing should continue.
57 */
58
59 bool LFRXmlHandler::endElement(const QString &, const QString &,
60 const QString & qName)
61 {
62 if (qName == "EventTime")
63 {
64 emit displayMessage("/EventTime detected");
65 }
66 indentationLevel -= 1;
67
68 return true;
69 }
70
71 /*!
72 Report a fatal parsing error, and return false to indicate to the reader
73 that parsing should stop.
74 */
75
76 bool LFRXmlHandler::fatalError (const QXmlParseException & exception)
77 {
78 qWarning() << QString("Fatal error on line %1, column %2: %3").arg(
79 exception.lineNumber()).arg(exception.columnNumber()).arg(
80 exception.message());
81
82 return true;
83 }
84
85 /*!
86 Return the list of element names found.
87 */
88
89 QStringList& LFRXmlHandler::names ()
90 {
91 return elementName;
92 }
93
94 /*!
95 Return the list of indentations used for each element found.
96 */
97
98 QList<int>& LFRXmlHandler::indentations ()
99 {
100 return elementIndentation;
101 }
102
103 void LFRXmlHandler::packetStoreHasChanged(QList<TMPacketToRead *> *ccsdsPacketStore)
104 {
105 this->ccsdsPacketStore = ccsdsPacketStore;
106 }
@@ -0,0 +1,39
1 #ifndef LFRXMLHANDLER_H
2 #define LFRXMLHANDLER_H
3
4 #include <QObject>
5 #include <QXmlDefaultHandler>
6 #include "tmpackettoread.h"
7
8 class LFRXmlHandler : public QObject, public QXmlDefaultHandler
9 {
10 Q_OBJECT
11
12 public:
13 explicit LFRXmlHandler(QObject *parent = 0);
14
15 bool startDocument();
16 bool startElement(const QString &, const QString &, const QString &qName,
17 const QXmlAttributes &);
18 bool endElement(const QString &, const QString &, const QString & qName);
19
20 bool fatalError(const QXmlParseException &exception);
21
22 QStringList& names();
23 QList<int>& indentations();
24
25 void packetStoreHasChanged(QList<TMPacketToRead*> *ccsdsPacketStore);
26
27 private:
28 QList<TMPacketToRead*> *ccsdsPacketStore;
29
30 int indentationLevel;
31 QStringList elementName;
32 QList<int> elementIndentation;
33
34 signals:
35 void displayMessage(QString);
36
37 };
38
39 #endif // LFRXMLHANDLER_H
@@ -0,0 +1,50
1 #include "lfrxmlwriter.h"
2 #include <QFile>
3 #include <QMessageBox>
4
5 LFRXmlWriter::LFRXmlWriter(QWidget *parent) :
6 QObject(parent)
7 {
8 socketTM = NULL;
9 xmlWriter = new QXmlStreamWriter();
10 }
11
12 LFRXmlWriter::~LFRXmlWriter()
13 {
14
15 }
16
17 void LFRXmlWriter::setSocketTM(QTcpSocket *socket)
18 {
19 this->socketTM = socket;
20 xmlWriter->setDevice(this->socketTM);
21 }
22
23 void LFRXmlWriter::sendXML_TC_Acknowledgment()
24 {
25 xmlWriter->writeStartElement("TCAck");
26 xmlWriter->writeAttribute("ID", "0");
27 xmlWriter->writeEndElement();
28 }
29
30 void LFRXmlWriter::sendXML_TC_rejection()
31 {
32 xmlWriter->writeStartElement("TCNAck");
33 xmlWriter->writeAttribute("ID", "0");
34 xmlWriter->writeStartElement("Reason");
35 xmlWriter->writeEndElement();
36 xmlWriter->writeEndElement();
37 }
38
39
40 void LFRXmlWriter::sendXML_GSE_HK()
41 {
42 xmlWriter->writeStartElement("TM");
43 xmlWriter->writeStartElement("Name");
44 xmlWriter->writeEndElement();
45 xmlWriter->writeStartElement("Content");
46 xmlWriter->writeCharacters("FFFFCC0099");
47 xmlWriter->writeEndElement();
48 xmlWriter->writeEndElement();
49 xmlWriter->writeEndElement();
50 }
@@ -0,0 +1,29
1 #ifndef LFRXMLWRITER_H
2 #define LFRXMLWRITER_H
3
4 #include <QObject>
5 #include <QXmlStreamWriter>
6 #include <QMap>
7 #include <QTcpSocket>
8
9 class LFRXmlWriter : public QObject
10 {
11 Q_OBJECT
12
13 public:
14 LFRXmlWriter(QWidget *parent = 0);
15 ~LFRXmlWriter();
16
17 private:
18 QTcpSocket *socketTM;
19 QXmlStreamWriter* xmlWriter;
20
21 public slots:
22 void setSocketTM(QTcpSocket *socket);
23 void sendXML_TC_Acknowledgment();
24 void sendXML_TC_rejection();
25 void sendXML_GSE_HK();
26
27 };
28
29 #endif // LFRXMLWRITER_H
@@ -0,0 +1,12
1 #include <QtGui/QApplication>
2 #include "mainwindow.h"
3 #include <lfrxmlwriter.h>
4
5 int main(int argc, char *argv[])
6 {
7 QApplication a(argc, argv);
8 MainWindow w;
9 w.show();
10
11 return a.exec();
12 }
@@ -0,0 +1,351
1 #include "mainwindow.h"
2 #include <iostream>
3 #include <QNetworkInterface>
4
5 MainWindow::MainWindow(QWidget *parent)
6 : QWidget(parent)
7 {
8 totalOfBytes = 0;
9
10 analyserSGSEServerTC = new QTcpServer();
11 analyserSGSEServerTM = new QTcpServer();
12
13 socketTC = NULL;
14 socketTM = NULL;
15 socketEchoServer = new QTcpSocket();
16
17 sourceTC = new QXmlInputSource();
18 sourceTMechoBridge = new QXmlInputSource();
19 xmlHandler = new LFRXmlHandler();
20
21 lfrXmlWriter = new LFRXmlWriter();
22
23 UI = new MainWindowUI();
24
25 initSocketStatesList();
26
27 this->setLayout(UI->layout());
28
29 connect(this->UI->button_openServerTCTM, SIGNAL(clicked()), this, SLOT(listenOnTCTMPorts()));
30 connect(this->UI->button_testServerTCTM, SIGNAL(clicked()), this, SLOT(testTCTMPorts()));
31 connect(this->UI->button_openSocketEchoServer, SIGNAL(clicked()), this, SLOT(openEchoServer()));
32 //
33 connect(this->analyserSGSEServerTC, SIGNAL(newConnection()), this, SLOT(newConnectionOnTCServer()));
34 connect(this->analyserSGSEServerTM, SIGNAL(newConnection()), this, SLOT(newConnectionOnTMServer()));
35 //
36 connect(this, SIGNAL(socketTMHasChanged(QTcpSocket*)), this->lfrXmlWriter, SLOT(setSocketTM(QTcpSocket*)));
37 connect(this->UI->button_TCAcknowledgement, SIGNAL(clicked()), this->lfrXmlWriter, SLOT(sendXML_TC_Acknowledgment()));
38 connect(this->UI->button_TCRejection, SIGNAL(clicked()), this->lfrXmlWriter, SLOT(sendXML_TC_rejection()));
39 connect(this->UI->button_GSEHK, SIGNAL(clicked()), this->lfrXmlWriter, SLOT(sendXML_GSE_HK()));
40 connect(this->socketEchoServer, SIGNAL(stateChanged(QAbstractSocket::SocketState)),
41 this, SLOT(socket_TMEcho_ServerHasChanged()));
42 connect(this->socketEchoServer, SIGNAL(readyRead()),
43 this, SLOT(readDataOnSocketEchoServer()));
44 //
45 connect(this->xmlHandler, SIGNAL(displayMessage(QString)), this, SLOT(displayOnConsole(QString)));
46
47 displayNetworkInterfaces();
48
49 this->xmlHandler->packetStoreHasChanged(&generalCCSDSPacketStore);
50 }
51
52 MainWindow::~MainWindow()
53 {
54
55 }
56
57 void MainWindow::displayNetworkInterfaces()
58 {
59 QList<QHostAddress> list = QNetworkInterface::allAddresses();
60 this->displayOnConsole("Network interfaces:");
61 for(int nIter=0; nIter<list.count(); nIter++)
62 {
63 this->UI->displayOnConsole(list[nIter].toString());
64 }
65 }
66
67 void MainWindow::listenOnTCTMPorts()
68 {
69 QString str;
70
71 //***
72 // TC
73 analyserSGSEServerTC->listen(QHostAddress::Any, this->UI->getTCPort());
74 str = analyserSGSEServerTC->errorString();
75 if (!str.isEmpty())
76 {
77 this->displayOnConsole(str);
78 }
79 this->displayOnConsole("Listening TC on port "
80 + QString::number(this->UI->getTCPort())
81 );
82
83 //***
84 // TM
85 analyserSGSEServerTM->listen(QHostAddress::Any, this->UI->getTMPort());
86 str = analyserSGSEServerTM->errorString();
87 if (!str.isEmpty())
88 {
89 this->displayOnConsole(str);
90 }
91 this->displayOnConsole("Listening TM on port "
92 + QString::number(this->UI->getTMPort())
93 );
94 }
95
96 void MainWindow::testTCTMPorts()
97 {
98 if (socketTC != NULL)
99 {
100 this->displayOnConsole("TC socket *** " + socketStates.at(socketTC->state()) );
101 }
102 else
103 {
104 this->displayOnConsole("TC socket *** not tested, (socketTC) is NULL" );
105 }
106 if (socketTM != NULL)
107 {
108 this->displayOnConsole("TM socket *** " + socketStates.at(socketTM->state()) );
109 }
110 else
111 {
112 this->displayOnConsole("TM socket *** not tested, (socketTM) is NULL" );
113 }
114 }
115
116 void MainWindow::newConnectionOnTCServer()
117 {
118 this->displayOnConsole("got new connection on TC port");
119 socketTC = analyserSGSEServerTC->nextPendingConnection();
120 this->displayOnConsole("TC socket *** " + socketStates.at(socketTC->state()) );
121 connect(this->socketTC, SIGNAL(readyRead()), this, SLOT(readDataOnTCPort()));
122 }
123
124 void MainWindow::newConnectionOnTMServer()
125 {
126 this->displayOnConsole("got new connection on TM port");
127 socketTM = analyserSGSEServerTM->nextPendingConnection();
128 this->displayOnConsole("TM socket *** " + socketStates.at(socketTM->state()) );
129 connect(this->socketTM, SIGNAL(readyRead()), this, SLOT(readDataOnTMPort()));
130
131 emit socketTMHasChanged(this->socketTM);
132 }
133
134 void MainWindow::readDataOnTCPort()
135 {
136 bool ok;
137 int nbBytesAvailable = 0;
138
139 nbBytesAvailable = socketTC->bytesAvailable();
140 buffer = (char *) malloc(nbBytesAvailable);
141 socketTC->read(buffer, nbBytesAvailable);
142
143 this->displayOnConsole("readDataOnTCPort *** "
144 + QString::number(nbBytesAvailable)
145 + " read");
146
147 QByteArray xmlData( buffer, nbBytesAvailable);
148
149 free(buffer);
150
151 sourceTC->setData( xmlData );
152
153 xmlReader.setContentHandler(xmlHandler);
154 xmlReader.setErrorHandler(xmlHandler);
155
156 ok = xmlReader.parse(sourceTC);
157 if (!ok) {
158 std::cout << "Parsing failed." << std::endl;
159 }
160 else {
161 QStringList names = xmlHandler->names();
162 QList<int> indentations = xmlHandler->indentations();
163
164 int items = names.count();
165
166 for (int i = 0; i < items; ++i) {
167 displayOnConsole(
168 names[i]
169 + " --- identations: "
170 + QString::number(indentations[i]));
171 }
172 }
173 }
174
175 void MainWindow::readDataOnTMPort()
176 {
177 this->displayOnConsole("TM data received, begin parsing");
178 }
179
180 void MainWindow::readDataOnSocketEchoServer()
181 {
182 int nbBytesAvailable = 0;
183
184 nbBytesAvailable = socketEchoServer->bytesAvailable();
185 buffer = (char *) malloc(nbBytesAvailable);
186 socketEchoServer->read(buffer, nbBytesAvailable);
187
188 totalOfBytes = totalOfBytes + nbBytesAvailable;
189 this->UI->totalOfBytesHasChanged(totalOfBytes);
190
191 processIncomingData(buffer, nbBytesAvailable);
192
193 free(buffer);
194 }
195
196 void MainWindow::processIncomingData(char *data, unsigned int size)
197 {
198 QByteArray newdat;
199 int index;
200 char *values;
201 unsigned char *ccsdsData;
202 unsigned int ccsdsSize = 0;
203 unsigned char sizeByte1 = 0;
204 unsigned char sizeByte0 = 0;
205
206 TMPacketToRead *incomingPacket;
207
208 newdat = QByteArray::fromRawData( data, size);
209 index = newdat.indexOf("<EventBinary>") + 13;
210
211 values = (char*) (newdat.data() + index);
212 sizeByte0 = fromAsciiToChar(values[ 8*2 ])*16 + fromAsciiToChar(values[ 8*2+1 ]);
213 sizeByte1 = fromAsciiToChar(values[ 9*2 ])*16 + fromAsciiToChar(values[ 9*2+1 ]);
214 ccsdsSize = sizeByte0*256 + sizeByte1;
215 ccsdsData = (unsigned char*) malloc(ccsdsSize + 1 + 10);
216 for (unsigned int i=0; i<ccsdsSize; i++)
217 {
218 ccsdsData[i] = fromAsciiToChar(values[ i*2 ])*16 + fromAsciiToChar(values[ i*2+1 ]);
219 }
220 incomingPacket = new TMPacketToRead(ccsdsData, ccsdsSize);
221 generalCCSDSPacketStore.append(incomingPacket);
222 preProcessPacket(incomingPacket);
223 free(ccsdsData);
224 }
225
226 void MainWindow::displayOnConsole(QString message)
227 {
228 this->UI->displayOnConsole( message );
229 }
230
231 void MainWindow::initSocketStatesList()
232 {
233 socketStates.append("The socket is not connected");
234 socketStates.append("The socket is performing a host name lookup");
235 socketStates.append("The socket has started establishing a connection");
236 socketStates.append("A connection is established");
237 socketStates.append("The socket is bound to an address and port (for servers)");
238 socketStates.append("The socket is about to close (data may still be waiting to be written)");
239 socketStates.append("For internal use only");
240 }
241
242 void MainWindow::openEchoServer()
243 {
244 socketEchoServer->connectToHost(this->UI->serverTMEchoDialogBox->getIP(),
245 this->UI->spinbox_serverTMEchoPort->value());
246 //socketEchoServer->open();
247 }
248
249 void MainWindow::socket_TMEcho_ServerHasChanged()
250 {
251 this->displayOnConsole("TM Echo Socket socket *** " + socketStates.at(socketEchoServer->state()) );
252 }
253
254 void MainWindow::preProcessPacket(TMPacketToRead *packet)
255 {
256 unsigned char pid = 0;
257 unsigned char cat = 0;
258 unsigned char typ = 0;
259 unsigned char sub = 0;
260 unsigned int sid = 0;
261 unsigned int length = 0;
262 unsigned int coarse_t = 0;
263 unsigned int fine_t = 0;
264
265 //*********************************
266 // get the parameters of the packet
267 pid = ((packet->Value[4] & 0x07) << 4) + ((packet->Value[5] & 0xf0) >> 4);
268 cat = packet->Value[5] & 0x0f;
269 typ = packet->Value[11]; // TYPE
270 sub = packet->Value[12]; // SUBTYPE
271 sid = 0;
272 length = packet->Value[8] * 256 + packet->Value[9];
273 coarse_t = packet->Value[14] * pow(2, 24) + packet->Value[15] * pow(2, 16)
274 + packet->Value[16] * pow(2, 8) + packet->Value[17];
275 fine_t = packet->Value[18] * pow(2, 8) + packet->Value[19];
276
277 if ((pid == 76) & (cat == 1) & (typ == 1) & (sub == 8))
278 sid = packet->Value[20] * 256 + packet->Value[21];
279 else if ((pid == 76) & (cat == 12) & (typ == 21) & (sub == 3))
280 sid = packet->Value[20];
281 else if ((pid == 76) & (cat == 4) & (typ == 3) & (sub == 25))
282 sid = 1;
283
284 this->UI->tmStatistics->updateStatistics(pid, cat, typ, sub, sid, length, coarse_t, fine_t);
285
286 //****************************************
287 // if the packet is a waveform, display it
288 if ( (typ == 21) & (sub == 3) )
289 {
290 sid = packet->Value[20]; // SID
291 switch (sid){
292 case SID_NORMAL_SWF_F0:
293 buildWFAndDisplay(packet, &wfPacketNormal[0], 0);
294 break;
295 case SID_NORMAL_SWF_F1:
296 buildWFAndDisplay(packet, &wfPacketNormal[1], 1);
297 break;
298 case SID_NORMAL_SWF_F2:
299 buildWFAndDisplay(packet, &wfPacketNormal[2], 2);
300 break;
301 case SID_NORMAL_CWF_F3:
302 buildWFAndDisplay(packet, &wfPacketNormal[3], 3);
303 break;
304 }
305 }
306 }
307
308 void MainWindow::buildWFAndDisplay(TMPacketToRead *packet, WFPacket *wfPacket, unsigned char num_page)
309 {
310 unsigned int i = 0;
311 unsigned int j = 0;
312 unsigned char *data;
313 unsigned char pkt_nr = 0;
314 unsigned int blk_nr = 0;
315
316 pkt_nr = packet->Value[23]; // PKT_NR
317 blk_nr = packet->Value[24] * 256 + packet->Value[25];
318 data = &packet->Value[26]; // start of the first data block;
319 j = (pkt_nr-1) * 340;
320 for ( i=0; i<blk_nr; i++ ){
321 wfPacket->wf_e1[j + i] = (short) ( (data[ (i * BLK_SIZE) ] << 8) + (data[ (i*BLK_SIZE) + 1]) );
322 wfPacket->wf_v[j + i] = (short) ( (data[ (i * BLK_SIZE) + 2] << 8) + (data[ (i*BLK_SIZE) + 3]) );
323 wfPacket->wf_b1[j + i] = (short) ( (data[ (i * BLK_SIZE) + 4] << 8) + (data[ (i*BLK_SIZE) + 5]) );
324 wfPacket->wf_e2[j + i] = (short) ( (data[ (i * BLK_SIZE) + 6] << 8) + (data[ (i*BLK_SIZE) + 7]) );
325 wfPacket->wf_b3[j + i] = (short) ( (data[ (i * BLK_SIZE) + 8] << 8) + (data[ (i*BLK_SIZE) + 9]) );
326 wfPacket->wf_b2[j + i] = (short) ( (data[ (i * BLK_SIZE) + 10] << 8) + (data[ (i*BLK_SIZE) + 11]) );
327 }
328 if (pkt_nr == 7)
329 {
330 this->UI->wfDisplay->displayOnPlot(wfPacket->wf_v, num_page, 0);
331 this->UI->wfDisplay->displayOnPlot(wfPacket->wf_e1, num_page, 1);
332 this->UI->wfDisplay->displayOnPlot(wfPacket->wf_e2, num_page, 2);
333 this->UI->wfDisplay->displayOnPlot(wfPacket->wf_b1, num_page, 3);
334 this->UI->wfDisplay->displayOnPlot(wfPacket->wf_b2, num_page, 4);
335 this->UI->wfDisplay->displayOnPlot(wfPacket->wf_b3, num_page, 5);
336 }
337 }
338
339 char MainWindow::fromAsciiToChar(char value)
340 {
341 char ret = -1;
342 if (value > 'a')
343 {
344 ret = value - 'a' + 10;
345 }
346 else
347 {
348 ret = value - '0';
349 }
350 return ret;
351 }
@@ -0,0 +1,71
1 #ifndef MAINWINDOW_H
2 #define MAINWINDOW_H
3
4 #include <QtGui/QMainWindow>
5 #include <QTcpServer>
6 #include <QTcpSocket>
7 #include <QXmlSimpleReader>
8 #include <lfrxmlhandler.h>
9 #include <lfrxmlwriter.h>
10 #include <mainwindowui.h>
11 #include "tmpackettoread.h"
12 #include "wfpacket.h"
13
14 class MainWindow : public QWidget
15 {
16 Q_OBJECT
17
18 public:
19 MainWindow(QWidget *parent = 0);
20 ~MainWindow();
21
22 void displayNetworkInterfaces();
23 void processIncomingData(char *data, unsigned int size);
24 void initSocketStatesList();
25 void preProcessPacket(TMPacketToRead *packet);
26 void buildWFAndDisplay(TMPacketToRead *packet, WFPacket *wfPacket, unsigned char num_page);
27 char fromAsciiToChar(char value);
28
29 private:
30 QList<TMPacketToRead*> generalCCSDSPacketStore;
31
32 QTcpServer *analyserSGSEServerTC;
33 QTcpServer *analyserSGSEServerTM;
34 QTcpSocket *socketTC;
35 QTcpSocket *socketTM;
36 QTcpSocket *socketEchoServer;
37
38 unsigned int totalOfBytes;
39
40 QXmlSimpleReader xmlReader;
41 QXmlInputSource *sourceTC;
42 QXmlInputSource *sourceTMechoBridge;
43 LFRXmlHandler *xmlHandler;
44
45 QList<QString> socketStates;
46
47 char *buffer;
48
49 MainWindowUI *UI;
50
51 LFRXmlWriter *lfrXmlWriter;
52
53 WFPacket wfPacketNormal[4];
54
55 signals:
56 void socketTMHasChanged(QTcpSocket *socket);
57
58 public slots:
59 void displayOnConsole(QString message);
60 void listenOnTCTMPorts();
61 void testTCTMPorts();
62 void newConnectionOnTCServer();
63 void newConnectionOnTMServer();
64 void readDataOnTCPort();
65 void readDataOnTMPort();
66 void readDataOnSocketEchoServer();
67 void openEchoServer();
68 void socket_TMEcho_ServerHasChanged();
69 };
70
71 #endif // MAINWINDOW_H
@@ -0,0 +1,133
1 #include "mainwindowui.h"
2
3 MainWindowUI::MainWindowUI(QWidget *parent) :
4 QWidget(parent)
5 {
6 label_serverTMEcho = new QLabel(tr("TM Echo Server address"));
7 label_serverTMEchoPort = new QLabel(tr("TM Echo Server Port"));
8 label_TMServerPort = new QLabel(tr("TM Server Port:"));
9 label_TCServerPort = new QLabel(tr("TC Server Port:"));
10 label_currentTCTMServer = new QLabel(tr("Current IP address:"));
11 label_currentTCTMServerIP = new QLabel(tr("-"));
12 label_totalOfBytes = new QLabel(tr("Received Bytes: -"));
13
14 console = new QTextEdit();
15
16 spwTabWidget = new QTabWidget;
17 spwTabWidgetPage0 = new QWidget;
18 spwTabWidgetPage1 = new QWidget;
19 spwTabWidgetPage2 = new QWidget;
20 spwTabWidgetPage3 = new QWidget;
21 spwTabWidgetPage4 = new QWidget;
22 spwTabWidgetPage5 = new QWidget;
23
24 tmStatistics = new TMStatistics;
25
26 wfDisplay = new WFDisplay;
27
28 spinbox_TMServerPort = new QSpinBox();
29 spinbox_TCServerPort = new QSpinBox();
30 spinbox_serverTMEchoPort = new QSpinBox();
31 spinbox_TMServerPort->setRange(59000, 65535);
32 spinbox_TCServerPort->setRange(59001, 65535);
33 spinbox_serverTMEchoPort->setRange(59002, 65535);
34
35 button_openServerTCTM = new QPushButton(tr("Open TC / TM Ports"));
36 button_testServerTCTM = new QPushButton(tr("Test TC / TM Ports"));
37 button_openSocketEchoServer = new QPushButton(tr("Open Echo Server"));
38 button_TCAcknowledgement = new QPushButton(tr("send TC Acknowledgement"));
39 button_TCRejection = new QPushButton(tr("send TC rejection"));
40 button_GSEHK = new QPushButton(tr("send GSE HK"));
41 button_clearConsole = new QPushButton(tr("Clear console"));
42
43 serverTMEchoDialogBox = new QIPDialogBox();
44 serverTMEchoDialogBox->setIP(127, 0, 0, 1);
45
46 groupbox_TMEcho = new QGroupBox(tr("TM Echo Server"));
47 groupbox_ports = new QGroupBox(tr("Ports for the TM and TC Servers"));
48 groupbox_TMToForeignGSETester = new QGroupBox(tr("Send TM to the foreign GSE tester"));
49
50 layout_TMEcho = new QVBoxLayout();
51 layout_overallLayout = new QVBoxLayout();
52 layout_ports = new QGridLayout();
53 layout_TMToForeignGSETester = new QVBoxLayout();
54 mainLayout = new QGridLayout();
55
56 layout_TMEcho->addWidget(label_serverTMEcho);
57 layout_TMEcho->addWidget(serverTMEchoDialogBox);
58 layout_TMEcho->addWidget(label_serverTMEchoPort);
59 layout_TMEcho->addWidget(spinbox_serverTMEchoPort);
60 layout_TMEcho->addWidget(button_openSocketEchoServer);
61 layout_TMEcho->addWidget(label_totalOfBytes);
62 groupbox_TMEcho->setLayout(layout_TMEcho);
63
64 layout_ports->addWidget(label_TMServerPort, 0, 0, 1, 1);
65 layout_ports->addWidget(spinbox_TMServerPort, 0, 1, 1, 1);
66 layout_ports->addWidget(label_TCServerPort, 1, 0, 1, 1);
67 layout_ports->addWidget(spinbox_TCServerPort, 1, 1, 1, 1);
68 layout_ports->addWidget(button_openServerTCTM, 2, 0, 1, 2);
69 layout_ports->addWidget(button_testServerTCTM, 3, 0, 1, 2);
70 groupbox_ports->setLayout(layout_ports);
71
72 layout_TMToForeignGSETester->addWidget(button_TCAcknowledgement);
73 layout_TMToForeignGSETester->addWidget(button_TCRejection);
74 layout_TMToForeignGSETester->addWidget(button_GSEHK);
75 groupbox_TMToForeignGSETester->setLayout(layout_TMToForeignGSETester);
76
77 mainLayout->addWidget(groupbox_TMEcho, 0, 0, 1, 1);
78 mainLayout->addWidget(groupbox_ports, 1, 0, 1, 1);
79 mainLayout->addWidget(groupbox_TMToForeignGSETester, 2, 0, 1, 1);
80 mainLayout->addWidget(console, 0, 1, 2, 2);
81 mainLayout->addWidget(button_clearConsole, 3, 1, 1, 2);
82
83 spwTabWidget->addTab(spwTabWidgetPage0, tr("Connection"));
84 spwTabWidget->addTab(spwTabWidgetPage1, tr("TM Statistics"));
85 spwTabWidget->addTab(spwTabWidgetPage2, tr("Waveforms"));
86
87 spwTabWidgetPage0->setLayout(mainLayout);
88 spwTabWidgetPage1->setLayout(tmStatistics->layout());
89 spwTabWidgetPage2->setLayout(wfDisplay->layout());
90
91 layout_overallLayout->addWidget(spwTabWidget);
92
93 this->setLayout(layout_overallLayout);
94
95 connect(this->button_clearConsole, SIGNAL(clicked()), this, SLOT(clearConsole()));
96 }
97
98 QString MainWindowUI::getTMEchoServerAddress()
99 {
100 return(serverTMEchoDialogBox->getIP());
101 }
102
103 void MainWindowUI::setTCTMServerAddressIP(QString address)
104 {
105 label_currentTCTMServerIP->setText(address);
106 }
107
108 int MainWindowUI::getTMPort()
109 {
110 return spinbox_TMServerPort->value();
111 }
112
113 int MainWindowUI::getTCPort()
114 {
115 return spinbox_TCServerPort->value();
116 }
117
118 void MainWindowUI::displayOnConsole(QString message)
119 {
120 console->append(message);
121 }
122
123 void MainWindowUI::clearConsole()
124 {
125 console->clear();
126 }
127
128 void MainWindowUI::totalOfBytesHasChanged(unsigned int nbBytes)
129 {
130 label_totalOfBytes->setText(
131 "Received Bytes: "
132 + QString::number(nbBytes));
133 }
@@ -0,0 +1,86
1 #ifndef MAINWINDOWUI_H
2 #define MAINWINDOWUI_H
3
4 #include <QWidget>
5 #include <qipdialogbox.h>
6 #include <QLabel>
7 #include <QPushButton>
8 #include <QGridLayout>
9 #include <QVBoxLayout>
10 #include <QGroupBox>
11 #include <QSpinBox>
12 #include <QTextEdit>
13 #include <QTabWidget>
14 #include "tmstatistics.h"
15 #include "wfdisplay.h"
16
17 class MainWindowUI : public QWidget
18 {
19 Q_OBJECT
20 public:
21 explicit MainWindowUI(QWidget *parent = 0);
22
23 void setTCTMServerAddressIP(QString address);
24 QString getTMEchoServerAddress();
25 int getTMPort();
26 int getTCPort();
27 void displayOnConsole(QString message);
28
29 QTabWidget *spwTabWidget;
30 QWidget* spwTabWidgetPage0;
31 QWidget* spwTabWidgetPage1;
32 QWidget* spwTabWidgetPage2;
33 QWidget* spwTabWidgetPage3;
34 QWidget* spwTabWidgetPage4;
35 QWidget* spwTabWidgetPage5;
36
37 TMStatistics* tmStatistics;
38
39 WFDisplay* wfDisplay;
40
41 QPushButton *button_openServerTCTM;
42 QPushButton *button_testServerTCTM;
43 QPushButton *button_openSocketEchoServer;
44 QPushButton *button_TCAcknowledgement;
45 QPushButton *button_TCRejection;
46 QPushButton *button_GSEHK;
47 QPushButton *button_clearConsole;
48
49 QIPDialogBox *serverTMEchoDialogBox;
50
51 QSpinBox *spinbox_serverTMEchoPort;
52
53 signals:
54
55 public slots:
56 void clearConsole();
57 void totalOfBytesHasChanged(unsigned int nbBytes);
58
59 private:
60 QLabel *label_serverTMEcho;
61 QLabel *label_serverTMEchoPort;
62 QLabel *label_TMServerPort;
63 QLabel *label_TCServerPort;
64 QLabel *label_currentTCTMServer;
65 QLabel *label_currentTCTMServerIP;
66 QLabel *label_totalOfBytes;
67
68 QTextEdit *console;
69
70 QSpinBox *spinbox_TMServerPort;
71 QSpinBox *spinbox_TCServerPort;
72
73 QGroupBox *groupbox_TMEcho;
74 QGroupBox *groupbox_ports;
75 QGroupBox *groupbox_TMToForeignGSETester;
76
77 QVBoxLayout *layout_TMEcho;
78 QVBoxLayout *layout_TMToForeignGSETester;
79 QVBoxLayout *layout_overallLayout;
80
81 QGridLayout *mainLayout;
82 QGridLayout *layout_ports;
83
84 };
85
86 #endif // MAINWINDOWUI_H
@@ -0,0 +1,183
1 #include "tmechobridge.h"
2
3 TMEchoBridge::TMEchoBridge(QWidget *parent) :
4 QWidget(parent)
5 {
6 totalOfBytes = 0;
7
8 tmEchoBridgeServer = new QTcpServer();
9 tmEchoBridgeSocket = new QTcpSocket();
10 xmlWriter = new QXmlStreamWriter();
11
12 console = new QTextEdit();
13
14 label_TMServerPort = new QLabel(tr("TM Server Port:"));
15 label_totalOfBytes = new QLabel(tr("Number of TM bytes sent: -"));
16
17 spinbox_TMServerPort = new QSpinBox();
18 spinbox_TMServerPort->setRange(59002, 65535);
19
20 button_openServerTCTM = new QPushButton(tr("Open Port"));
21 button_testServerTCTM = new QPushButton(tr("Test Port"));
22 button_sendTestPacket = new QPushButton(tr("Send a test packet"));
23 button_clearConsole = new QPushButton(tr("Clear console"));
24
25 groupbox_ports = new QGroupBox(tr("Port of the TM Echo Bridge"));
26
27 layout_ports = new QGridLayout();
28 mainLayout = new QGridLayout();
29
30 initSocketStatesList();
31
32 layout_ports->addWidget(label_TMServerPort, 0, 0, 1, 1);
33 layout_ports->addWidget(spinbox_TMServerPort, 0, 1, 1, 1);
34 layout_ports->addWidget(button_openServerTCTM, 2, 0, 1, 2);
35 layout_ports->addWidget(button_testServerTCTM, 3, 0, 1, 2);
36 layout_ports->addWidget(button_sendTestPacket, 4, 0, 1, 2);
37 layout_ports->addWidget(label_totalOfBytes, 5, 0, 1, 2);
38 layout_ports->setRowStretch(6, 1);
39 layout_ports->setColumnStretch(2, 1);
40
41 groupbox_ports->setLayout(layout_ports);
42
43 mainLayout->addWidget(groupbox_ports, 0, 0, 1, 1);
44 mainLayout->addWidget(console, 0, 1, 1, 1);
45 mainLayout->addWidget(button_clearConsole, 1, 1, 1, 1);
46
47 this->setLayout(mainLayout);
48
49 connect(this->tmEchoBridgeServer, SIGNAL(newConnection()), this, SLOT(newConnectionOnTMEchoBridgeServer()));
50 connect(this->button_openServerTCTM, SIGNAL(clicked()), this, SLOT(listenOnTMEchoBridgePort()));
51 connect(this->button_testServerTCTM, SIGNAL(clicked()), this, SLOT(testTMEchoBridgePort()));
52 connect(this->button_sendTestPacket, SIGNAL(clicked()), this, SLOT(sendXML_GSE_HK()));
53 connect(this->button_clearConsole, SIGNAL(clicked()), this, SLOT(clearConsole()));
54 }
55
56 void TMEchoBridge::listenOnTMEchoBridgePort()
57 {
58 QString str;
59
60 tmEchoBridgeServer->listen(QHostAddress::Any, this->getTMPort());
61 str = tmEchoBridgeServer->errorString();
62 if (!str.isEmpty())
63 {
64 this->displayOnConsole(str);
65 }
66 this->displayOnConsole("Listening TM on port "
67 + QString::number(this->getTMPort())
68 );
69 }
70
71 void TMEchoBridge::testTMEchoBridgePort()
72 {
73 if (tmEchoBridgeSocket != NULL)
74 {
75 this->displayOnConsole("TM socket *** " + socketStates.at(tmEchoBridgeSocket->state()) );
76 }
77 else
78 {
79 this->displayOnConsole("TC socket *** not tested, (socketTC) is NULL" );
80 }
81 }
82
83 void TMEchoBridge::newConnectionOnTMEchoBridgeServer()
84 {
85 this->displayOnConsole("got new connection on TM port");
86 tmEchoBridgeSocket = tmEchoBridgeServer->nextPendingConnection();
87 this->displayOnConsole("TM socket *** " + socketStates.at(tmEchoBridgeSocket->state()) );
88 xmlWriter->setDevice(this->tmEchoBridgeSocket);
89 }
90
91 int TMEchoBridge::getTMPort()
92 {
93 return spinbox_TMServerPort->value();
94 }
95
96 void TMEchoBridge::displayOnConsole(QString message)
97 {
98 console->append(message);
99 }
100
101 void TMEchoBridge::initSocketStatesList()
102 {
103 socketStates.append("The socket is not connected");
104 socketStates.append("The socket is performing a host name lookup");
105 socketStates.append("The socket has started establishing a connection");
106 socketStates.append("A connection is established");
107 socketStates.append("The socket is bound to an address and port (for servers)");
108 socketStates.append("The socket is about to close (data may still be waiting to be written)");
109 socketStates.append("For internal use only");
110 }
111
112 void TMEchoBridge::sendXML_GSE_HK()
113 {
114 char data[10];
115 for (int i = 0; i <10; i++)
116 {
117 data[i] = i;
118 }
119 if (tmEchoBridgeSocket->state() == QAbstractSocket::ConnectedState)
120 {
121 xmlWriter->writeStartElement("Event");
122
123 // EventDate
124 xmlWriter->writeStartElement("EventDate");
125 xmlWriter->writeEndElement();
126
127 // Event Time
128 xmlWriter->writeStartElement("EventTime");
129 xmlWriter->writeEndElement();
130
131 // EventBinary
132 xmlWriter->writeStartElement("EventBinary");
133 xmlWriter->writeCharacters("FFFFCC0099");
134 xmlWriter->writeCharacters(QString::fromLocal8Bit(data, 10));
135 xmlWriter->writeEndElement();
136
137 xmlWriter->writeEndElement();
138 }
139 else
140 {
141 this->displayOnConsole("TM socket *** " + socketStates.at(tmEchoBridgeSocket->state()) );
142 }
143 }
144
145 void TMEchoBridge::sendTMPacket(TMPacketToRead *tmPacketToRead)
146 {
147 if (tmEchoBridgeSocket->state() == QAbstractSocket::ConnectedState)
148 {
149 // <Event>
150 xmlWriter->writeStartElement("Event");
151
152 // EventDate
153 xmlWriter->writeStartElement("EventDate");
154 xmlWriter->writeEndElement();
155
156 // Event Time
157 xmlWriter->writeStartElement("EventTime");
158 xmlWriter->writeEndElement();
159
160 // EventBinary
161 xmlWriter->writeStartElement("EventBinary");
162 xmlWriter->writeCharacters(
163 QByteArray::fromRawData( (char*) tmPacketToRead->Value, tmPacketToRead->size).toHex()
164 );
165 //tmEchoBridgeSocket->write(QByteArray::fromRawData( (char*) tmPacketToRead->Value, tmPacketToRead->size));
166 xmlWriter->writeEndElement();
167
168 // </event>
169 xmlWriter->writeEndElement();
170
171 totalOfBytes = totalOfBytes + tmPacketToRead->size;
172 label_totalOfBytes->setText("Number of TM bytes sent: " + QString::number(totalOfBytes));
173 }
174 else
175 {
176 this->displayOnConsole("TM socket *** " + socketStates.at(tmEchoBridgeSocket->state()) );
177 }
178 }
179
180 void TMEchoBridge::clearConsole()
181 {
182 this->console->clear();
183 }
@@ -0,0 +1,65
1 #ifndef TMECHOBRIDGE_H
2 #define TMECHOBRIDGE_H
3
4 #include <QWidget>
5 #include <QTcpServer>
6 #include <QTcpSocket>
7 #include <QLabel>
8 #include <QSpinBox>
9 #include <QPushButton>
10 #include <QGroupBox>
11 #include <QGridLayout>
12 #include <QTextEdit>
13 #include <QXmlStreamWriter>
14 #include "tmpackettoread.h"
15
16 class TMEchoBridge : public QWidget
17 {
18 Q_OBJECT
19 public:
20 explicit TMEchoBridge(QWidget *parent = 0);
21
22 signals:
23
24 public slots:
25 void listenOnTMEchoBridgePort();
26 void testTMEchoBridgePort();
27 void newConnectionOnTMEchoBridgeServer();
28 int getTMPort();
29 void displayOnConsole(QString message);
30 void initSocketStatesList();
31 void newConnectionOnTCServer();
32 void sendXML_GSE_HK();
33 void sendTMPacket(TMPacketToRead *tmPacketToRead);
34 void clearConsole();
35
36 private:
37 QList<QString> socketStates;
38
39 unsigned int totalOfBytes;
40
41 QTcpServer *tmEchoBridgeServer;
42 QTcpSocket *tmEchoBridgeSocket;
43
44 QXmlStreamWriter *xmlWriter;
45
46 QTextEdit *console;
47
48 QLabel *label_TMServerPort;
49 QLabel *label_totalOfBytes;
50
51 QSpinBox *spinbox_TMServerPort;
52
53 QPushButton *button_openServerTCTM;
54 QPushButton *button_testServerTCTM;
55 QPushButton *button_sendTestPacket;
56 QPushButton *button_clearConsole;
57
58 QGroupBox *groupbox_ports;
59
60 QGridLayout *layout_ports;
61 QGridLayout *mainLayout;
62
63 };
64
65 #endif // TMECHOBRIDGE_H
@@ -0,0 +1,308
1 #############################################################################
2 # Makefile for building: libwfdisplay.so.1.0.0
3 # Generated by qmake (2.01a) (Qt 4.8.4) on: Fri May 31 14:14:01 2013
4 # Project: wfdisplay.pro
5 # Template: lib
6 # Command: /usr/bin/qmake-qt4 -o Makefile wfdisplay.pro
7 #############################################################################
8
9 ####### Compiler, tools and options
10
11 CC = gcc
12 CXX = g++
13 DEFINES = -DWFDISPLAY_LIBRARY -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED
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 CXXFLAGS = -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)
16 INCPATH = -I/usr/lib64/qt4/mkspecs/linux-g++ -I. -I/usr/include/QtCore -I/usr/include/QtGui -I/usr/include -I. -I/usr/include/lppmon/common -I.
17 LINK = g++
18 LFLAGS = -Wl,-O1 -Wl,-z,relro -shared -Wl,-soname,libwfdisplay.so.1
19 LIBS = $(SUBLIBS) -L/usr/lib64 -llppmoncommon -lQtGui -lQtCore -lpthread
20 AR = ar cqs
21 RANLIB =
22 QMAKE = /usr/bin/qmake-qt4
23 TAR = tar -cf
24 COMPRESS = gzip -9f
25 COPY = cp -f
26 SED = sed
27 COPY_FILE = $(COPY)
28 COPY_DIR = $(COPY) -r
29 STRIP =
30 INSTALL_FILE = install -m 644 -p
31 INSTALL_DIR = $(COPY_DIR)
32 INSTALL_PROGRAM = install -m 755 -p
33 DEL_FILE = rm -f
34 SYMLINK = ln -f -s
35 DEL_DIR = rmdir
36 MOVE = mv -f
37 CHK_DIR_EXISTS= test -d
38 MKDIR = mkdir -p
39
40 ####### Output directory
41
42 OBJECTS_DIR = ./
43
44 ####### Files
45
46 SOURCES = wfdisplay.cpp \
47 wfplot.cpp \
48 wfpage.cpp moc_wfdisplay.cpp \
49 moc_wfplot.cpp \
50 moc_wfpage.cpp
51 OBJECTS = wfdisplay.o \
52 wfplot.o \
53 wfpage.o \
54 moc_wfdisplay.o \
55 moc_wfplot.o \
56 moc_wfpage.o
57 DIST = /usr/lib64/qt4/mkspecs/common/unix.conf \
58 /usr/lib64/qt4/mkspecs/common/linux.conf \
59 /usr/lib64/qt4/mkspecs/common/gcc-base.conf \
60 /usr/lib64/qt4/mkspecs/common/gcc-base-unix.conf \
61 /usr/lib64/qt4/mkspecs/common/g++-base.conf \
62 /usr/lib64/qt4/mkspecs/common/g++-unix.conf \
63 /usr/lib64/qt4/mkspecs/qconfig.pri \
64 /usr/lib64/qt4/mkspecs/modules/qt_webkit_version.pri \
65 /usr/lib64/qt4/mkspecs/features/qt_functions.prf \
66 /usr/lib64/qt4/mkspecs/features/qt_config.prf \
67 /usr/lib64/qt4/mkspecs/features/exclusive_builds.prf \
68 /usr/lib64/qt4/mkspecs/features/default_pre.prf \
69 /usr/lib64/qt4/mkspecs/features/release.prf \
70 /usr/lib64/qt4/mkspecs/features/default_post.prf \
71 /usr/lib64/qt4/mkspecs/features/unix/gdb_dwarf_index.prf \
72 /usr/lib64/qt4/mkspecs/features/warn_on.prf \
73 /usr/lib64/qt4/mkspecs/features/qt.prf \
74 /usr/lib64/qt4/mkspecs/features/unix/thread.prf \
75 /usr/lib64/qt4/mkspecs/features/moc.prf \
76 /usr/lib64/qt4/mkspecs/features/resources.prf \
77 /usr/lib64/qt4/mkspecs/features/uic.prf \
78 /usr/lib64/qt4/mkspecs/features/yacc.prf \
79 /usr/lib64/qt4/mkspecs/features/lex.prf \
80 /usr/lib64/qt4/mkspecs/features/include_source_dir.prf \
81 wfdisplay.pro
82 QMAKE_TARGET = wfdisplay
83 DESTDIR =
84 TARGET = libwfdisplay.so.1.0.0
85 TARGETA = libwfdisplay.a
86 TARGETD = libwfdisplay.so.1.0.0
87 TARGET0 = libwfdisplay.so
88 TARGET1 = libwfdisplay.so.1
89 TARGET2 = libwfdisplay.so.1.0
90
91 first: all
92 ####### Implicit rules
93
94 .SUFFIXES: .o .c .cpp .cc .cxx .C
95
96 .cpp.o:
97 $(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<"
98
99 .cc.o:
100 $(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<"
101
102 .cxx.o:
103 $(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<"
104
105 .C.o:
106 $(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<"
107
108 .c.o:
109 $(CC) -c $(CFLAGS) $(INCPATH) -o "$@" "$<"
110
111 ####### Build rules
112
113 all: Makefile $(TARGET)
114
115 $(TARGET): $(OBJECTS) $(SUBLIBS) $(OBJCOMP)
116 -$(DEL_FILE) $(TARGET) $(TARGET0) $(TARGET1) $(TARGET2)
117 $(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(LIBS) $(OBJCOMP)
118 -ln -s $(TARGET) $(TARGET0)
119 -ln -s $(TARGET) $(TARGET1)
120 -ln -s $(TARGET) $(TARGET2)
121
122
123
124 staticlib: $(TARGETA)
125
126 $(TARGETA): $(OBJECTS) $(OBJCOMP)
127 -$(DEL_FILE) $(TARGETA)
128 $(AR) $(TARGETA) $(OBJECTS)
129
130 Makefile: wfdisplay.pro /usr/lib64/qt4/mkspecs/linux-g++/qmake.conf /usr/lib64/qt4/mkspecs/common/unix.conf \
131 /usr/lib64/qt4/mkspecs/common/linux.conf \
132 /usr/lib64/qt4/mkspecs/common/gcc-base.conf \
133 /usr/lib64/qt4/mkspecs/common/gcc-base-unix.conf \
134 /usr/lib64/qt4/mkspecs/common/g++-base.conf \
135 /usr/lib64/qt4/mkspecs/common/g++-unix.conf \
136 /usr/lib64/qt4/mkspecs/qconfig.pri \
137 /usr/lib64/qt4/mkspecs/modules/qt_webkit_version.pri \
138 /usr/lib64/qt4/mkspecs/features/qt_functions.prf \
139 /usr/lib64/qt4/mkspecs/features/qt_config.prf \
140 /usr/lib64/qt4/mkspecs/features/exclusive_builds.prf \
141 /usr/lib64/qt4/mkspecs/features/default_pre.prf \
142 /usr/lib64/qt4/mkspecs/features/release.prf \
143 /usr/lib64/qt4/mkspecs/features/default_post.prf \
144 /usr/lib64/qt4/mkspecs/features/unix/gdb_dwarf_index.prf \
145 /usr/lib64/qt4/mkspecs/features/warn_on.prf \
146 /usr/lib64/qt4/mkspecs/features/qt.prf \
147 /usr/lib64/qt4/mkspecs/features/unix/thread.prf \
148 /usr/lib64/qt4/mkspecs/features/moc.prf \
149 /usr/lib64/qt4/mkspecs/features/resources.prf \
150 /usr/lib64/qt4/mkspecs/features/uic.prf \
151 /usr/lib64/qt4/mkspecs/features/yacc.prf \
152 /usr/lib64/qt4/mkspecs/features/lex.prf \
153 /usr/lib64/qt4/mkspecs/features/include_source_dir.prf \
154 /usr/lib64/libQtGui.prl \
155 /usr/lib64/libQtCore.prl
156 $(QMAKE) -o Makefile wfdisplay.pro
157 /usr/lib64/qt4/mkspecs/common/unix.conf:
158 /usr/lib64/qt4/mkspecs/common/linux.conf:
159 /usr/lib64/qt4/mkspecs/common/gcc-base.conf:
160 /usr/lib64/qt4/mkspecs/common/gcc-base-unix.conf:
161 /usr/lib64/qt4/mkspecs/common/g++-base.conf:
162 /usr/lib64/qt4/mkspecs/common/g++-unix.conf:
163 /usr/lib64/qt4/mkspecs/qconfig.pri:
164 /usr/lib64/qt4/mkspecs/modules/qt_webkit_version.pri:
165 /usr/lib64/qt4/mkspecs/features/qt_functions.prf:
166 /usr/lib64/qt4/mkspecs/features/qt_config.prf:
167 /usr/lib64/qt4/mkspecs/features/exclusive_builds.prf:
168 /usr/lib64/qt4/mkspecs/features/default_pre.prf:
169 /usr/lib64/qt4/mkspecs/features/release.prf:
170 /usr/lib64/qt4/mkspecs/features/default_post.prf:
171 /usr/lib64/qt4/mkspecs/features/unix/gdb_dwarf_index.prf:
172 /usr/lib64/qt4/mkspecs/features/warn_on.prf:
173 /usr/lib64/qt4/mkspecs/features/qt.prf:
174 /usr/lib64/qt4/mkspecs/features/unix/thread.prf:
175 /usr/lib64/qt4/mkspecs/features/moc.prf:
176 /usr/lib64/qt4/mkspecs/features/resources.prf:
177 /usr/lib64/qt4/mkspecs/features/uic.prf:
178 /usr/lib64/qt4/mkspecs/features/yacc.prf:
179 /usr/lib64/qt4/mkspecs/features/lex.prf:
180 /usr/lib64/qt4/mkspecs/features/include_source_dir.prf:
181 /usr/lib64/libQtGui.prl:
182 /usr/lib64/libQtCore.prl:
183 qmake: FORCE
184 @$(QMAKE) -o Makefile wfdisplay.pro
185
186 dist:
187 @$(CHK_DIR_EXISTS) .tmp/wfdisplay1.0.0 || $(MKDIR) .tmp/wfdisplay1.0.0
188 $(COPY_FILE) --parents $(SOURCES) $(DIST) .tmp/wfdisplay1.0.0/ && $(COPY_FILE) --parents wfdisplay.h wfdisplay_global.h wfplot.h wfpage.h params.h .tmp/wfdisplay1.0.0/ && $(COPY_FILE) --parents wfdisplay.cpp wfplot.cpp wfpage.cpp .tmp/wfdisplay1.0.0/ && (cd `dirname .tmp/wfdisplay1.0.0` && $(TAR) wfdisplay1.0.0.tar wfdisplay1.0.0 && $(COMPRESS) wfdisplay1.0.0.tar) && $(MOVE) `dirname .tmp/wfdisplay1.0.0`/wfdisplay1.0.0.tar.gz . && $(DEL_FILE) -r .tmp/wfdisplay1.0.0
189
190
191 clean:compiler_clean
192 -$(DEL_FILE) $(OBJECTS)
193 -$(DEL_FILE) *~ core *.core
194
195
196 ####### Sub-libraries
197
198 distclean: clean
199 -$(DEL_FILE) $(TARGET)
200 -$(DEL_FILE) $(TARGET0) $(TARGET1) $(TARGET2) $(TARGETA)
201 -$(DEL_FILE) Makefile
202
203
204 check: first
205
206 mocclean: compiler_moc_header_clean compiler_moc_source_clean
207
208 mocables: compiler_moc_header_make_all compiler_moc_source_make_all
209
210 compiler_moc_header_make_all: moc_wfdisplay.cpp moc_wfplot.cpp moc_wfpage.cpp
211 compiler_moc_header_clean:
212 -$(DEL_FILE) moc_wfdisplay.cpp moc_wfplot.cpp moc_wfpage.cpp
213 moc_wfdisplay.cpp: wfdisplay_global.h \
214 wfpage.h \
215 wfplot.h \
216 params.h \
217 wfdisplay.h
218 /usr/lib64/qt4/bin/moc $(DEFINES) $(INCPATH) wfdisplay.h -o moc_wfdisplay.cpp
219
220 moc_wfplot.cpp: wfplot.h
221 /usr/lib64/qt4/bin/moc $(DEFINES) $(INCPATH) wfplot.h -o moc_wfplot.cpp
222
223 moc_wfpage.cpp: wfplot.h \
224 params.h \
225 wfpage.h
226 /usr/lib64/qt4/bin/moc $(DEFINES) $(INCPATH) wfpage.h -o moc_wfpage.cpp
227
228 compiler_rcc_make_all:
229 compiler_rcc_clean:
230 compiler_image_collection_make_all: qmake_image_collection.cpp
231 compiler_image_collection_clean:
232 -$(DEL_FILE) qmake_image_collection.cpp
233 compiler_moc_source_make_all:
234 compiler_moc_source_clean:
235 compiler_uic_make_all:
236 compiler_uic_clean:
237 compiler_yacc_decl_make_all:
238 compiler_yacc_decl_clean:
239 compiler_yacc_impl_make_all:
240 compiler_yacc_impl_clean:
241 compiler_lex_make_all:
242 compiler_lex_clean:
243 compiler_clean: compiler_moc_header_clean
244
245 ####### Compile
246
247 wfdisplay.o: wfdisplay.cpp wfdisplay.h \
248 wfdisplay_global.h \
249 wfpage.h \
250 wfplot.h \
251 params.h
252 $(CXX) -c $(CXXFLAGS) $(INCPATH) -o wfdisplay.o wfdisplay.cpp
253
254 wfplot.o: wfplot.cpp wfplot.h \
255 params.h
256 $(CXX) -c $(CXXFLAGS) $(INCPATH) -o wfplot.o wfplot.cpp
257
258 wfpage.o: wfpage.cpp wfpage.h \
259 wfplot.h \
260 params.h
261 $(CXX) -c $(CXXFLAGS) $(INCPATH) -o wfpage.o wfpage.cpp
262
263 moc_wfdisplay.o: moc_wfdisplay.cpp
264 $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_wfdisplay.o moc_wfdisplay.cpp
265
266 moc_wfplot.o: moc_wfplot.cpp
267 $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_wfplot.o moc_wfplot.cpp
268
269 moc_wfpage.o: moc_wfpage.cpp
270 $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_wfpage.o moc_wfpage.cpp
271
272 ####### Install
273
274 install_header: first FORCE
275 @$(CHK_DIR_EXISTS) $(INSTALL_ROOT)/usr/include/lppmon/wfdisplay/ || $(MKDIR) $(INSTALL_ROOT)/usr/include/lppmon/wfdisplay/
276 -$(INSTALL_FILE) /opt/LPPMON_PLUGINS_PAUL/wfdisplay/wfdisplay/wfdisplay.h $(INSTALL_ROOT)/usr/include/lppmon/wfdisplay/
277 -$(INSTALL_FILE) /opt/LPPMON_PLUGINS_PAUL/wfdisplay/wfdisplay/wfdisplay_global.h $(INSTALL_ROOT)/usr/include/lppmon/wfdisplay/
278 -$(INSTALL_FILE) /opt/LPPMON_PLUGINS_PAUL/wfdisplay/wfdisplay/wfpage.h $(INSTALL_ROOT)/usr/include/lppmon/wfdisplay/
279
280
281 uninstall_header: FORCE
282 -$(DEL_FILE) -r $(INSTALL_ROOT)/usr/include/lppmon/wfdisplay/wfdisplay.h
283 -$(DEL_FILE) -r $(INSTALL_ROOT)/usr/include/lppmon/wfdisplay/wfdisplay_global.h
284 -$(DEL_FILE) -r $(INSTALL_ROOT)/usr/include/lppmon/wfdisplay/wfpage.h
285 -$(DEL_DIR) $(INSTALL_ROOT)/usr/include/lppmon/wfdisplay/
286
287
288 install_target: first FORCE
289 @$(CHK_DIR_EXISTS) $(INSTALL_ROOT)/usr/lib64/ || $(MKDIR) $(INSTALL_ROOT)/usr/lib64/
290 -$(INSTALL_PROGRAM) "$(TARGET)" "$(INSTALL_ROOT)/usr/lib64/$(TARGET)"
291 -$(SYMLINK) "$(TARGET)" "$(INSTALL_ROOT)/usr/lib64/$(TARGET0)"
292 -$(SYMLINK) "$(TARGET)" "$(INSTALL_ROOT)/usr/lib64/$(TARGET1)"
293 -$(SYMLINK) "$(TARGET)" "$(INSTALL_ROOT)/usr/lib64/$(TARGET2)"
294
295 uninstall_target: FORCE
296 -$(DEL_FILE) "$(INSTALL_ROOT)/usr/lib64/$(TARGET)"
297 -$(DEL_FILE) "$(INSTALL_ROOT)/usr/lib64/$(TARGET0)"
298 -$(DEL_FILE) "$(INSTALL_ROOT)/usr/lib64/$(TARGET1)"
299 -$(DEL_FILE) "$(INSTALL_ROOT)/usr/lib64/$(TARGET2)"
300 -$(DEL_DIR) $(INSTALL_ROOT)/usr/lib64/
301
302
303 install: install_header install_target FORCE
304
305 uninstall: uninstall_header uninstall_target FORCE
306
307 FORCE:
308
@@ -0,0 +1,9
1 #ifndef PARAMS_H
2 #define PARAMS_H
3
4 #define FONT_SIZE_WAVEFORM_TITLE 10
5 #define XMAX 2048
6 #define YMAX 15000
7 #define DEFAULT_SIZE 2048
8
9 #endif // PARAMS_H
@@ -0,0 +1,51
1 #include "wfdisplay.h"
2
3
4 WFDisplay::WFDisplay(QWidget *parent) :
5 QWidget(parent)
6 {
7 waveforms_LAYOUT = new QVBoxLayout;
8
9 spwTabWidget = new QTabWidget;
10
11 page_f0 = new WFPage;
12 page_f1 = new WFPage;
13 page_f2 = new WFPage;
14 page_f3 = new WFPage;
15
16 spwTabWidget->addTab(page_f0, tr("f0"));
17 spwTabWidget->addTab(page_f1, tr("f1"));
18 spwTabWidget->addTab(page_f2, tr("f2"));
19 spwTabWidget->addTab(page_f3, tr("f3"));
20
21 waveforms_LAYOUT->addWidget(spwTabWidget);
22
23 this->setLayout(waveforms_LAYOUT);
24
25 }
26
27 void WFDisplay::displayOnPlot(short *data, unsigned char num_page, unsigned char num)
28 {
29 QVector<double> x(XMAX), y(XMAX);
30
31 for (int i=0; i<XMAX; ++i)
32 {
33 x[i] = i;
34 y[i] = (double) data[i];
35 }
36 switch(num_page){
37 case 0:
38 page_f0->displayOnPlot(data, num);
39 break;
40 case 1:
41 page_f1->displayOnPlot(data, num);
42 break;
43 case 2:
44 page_f2->displayOnPlot(data, num);
45 break;
46 case 3:
47 page_f3->displayOnPlot(data, num);
48 break;
49 }
50
51 }
@@ -0,0 +1,39
1 #ifndef WFDISPLAY_H
2 #define WFDISPLAY_H
3
4 #include "wfdisplay_global.h"
5
6 #include <QWidget>
7 #include <QGridLayout>
8 #include <QVBoxLayout>
9 #include <wfpage.h>
10 #include <QTabWidget>
11
12 #define XMAX 2048
13
14 class WFDISPLAYSHARED_EXPORT WFDisplay : public QWidget
15 {
16 Q_OBJECT
17 public:
18 explicit WFDisplay(QWidget *parent = 0);
19
20 WFPage * page_f0;
21 WFPage * page_f1;
22 WFPage * page_f2;
23 WFPage * page_f3;
24
25 QTabWidget *spwTabWidget;
26
27 QVBoxLayout *waveforms_LAYOUT;
28
29 void displayOnPlot(short *data, unsigned char num_page, unsigned char num);
30
31
32 signals:
33
34 public slots:
35
36 };
37
38
39 #endif // WFDISPLAY_H
@@ -0,0 +1,41
1 #-------------------------------------------------
2 #
3 # Project created by QtCreator 2013-05-31T12:59:38
4 #
5 #-------------------------------------------------
6
7 TARGET = wfdisplay
8 TEMPLATE = lib
9
10 INCLUDEPATH += \
11 $${PWD} \
12 $$[QT_INSTALL_HEADERS]/lppmon/common
13
14 LIBS += -llppmoncommon
15
16 DEFINES += WFDISPLAY_LIBRARY
17
18 SOURCES += wfdisplay.cpp \
19 wfplot.cpp \
20 wfpage.cpp
21
22
23 HEADERS += wfdisplay.h\
24 wfdisplay_global.h \
25 wfplot.h \
26 wfpage.h \
27 params.h
28
29
30 header.path = $$[QT_INSTALL_HEADERS]/lppmon/wfdisplay
31 header.files = \
32 wfdisplay.h \
33 wfdisplay_global.h \
34 wfpage.h
35
36 target.path = $$[QT_INSTALL_LIBS]
37 isEmpty(target.path) {
38 target.path = $(QTDIR)/lib
39 }
40
41 INSTALLS += header target
@@ -0,0 +1,264
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!DOCTYPE QtCreatorProject>
3 <!-- Written by Qt Creator 2.4.1, 2013-05-31T15:27:20. -->
4 <qtcreator>
5 <data>
6 <variable>ProjectExplorer.Project.ActiveTarget</variable>
7 <value type="int">0</value>
8 </data>
9 <data>
10 <variable>ProjectExplorer.Project.EditorSettings</variable>
11 <valuemap type="QVariantMap">
12 <value type="bool" key="EditorConfiguration.AutoIndent">true</value>
13 <value type="bool" key="EditorConfiguration.AutoSpacesForTabs">false</value>
14 <valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.0">
15 <value type="QString" key="language">Cpp</value>
16 <valuemap type="QVariantMap" key="value">
17 <value type="QString" key="CurrentPreferences">CppGlobal</value>
18 </valuemap>
19 </valuemap>
20 <valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.1">
21 <value type="QString" key="language">QmlJS</value>
22 <valuemap type="QVariantMap" key="value">
23 <value type="QString" key="CurrentPreferences">QmlJSGlobal</value>
24 </valuemap>
25 </valuemap>
26 <value type="int" key="EditorConfiguration.CodeStyle.Count">2</value>
27 <value type="QByteArray" key="EditorConfiguration.Codec">System</value>
28 <value type="bool" key="EditorConfiguration.ConstrainTooltips">false</value>
29 <value type="int" key="EditorConfiguration.IndentSize">4</value>
30 <value type="bool" key="EditorConfiguration.MouseNavigation">true</value>
31 <value type="int" key="EditorConfiguration.PaddingMode">1</value>
32 <value type="bool" key="EditorConfiguration.ScrollWheelZooming">true</value>
33 <value type="int" key="EditorConfiguration.SmartBackspaceBehavior">0</value>
34 <value type="bool" key="EditorConfiguration.SpacesForTabs">true</value>
35 <value type="int" key="EditorConfiguration.TabKeyBehavior">0</value>
36 <value type="int" key="EditorConfiguration.TabSize">8</value>
37 <value type="bool" key="EditorConfiguration.UseGlobal">true</value>
38 <value type="int" key="EditorConfiguration.Utf8BomBehavior">1</value>
39 <value type="bool" key="EditorConfiguration.addFinalNewLine">true</value>
40 <value type="bool" key="EditorConfiguration.cleanIndentation">true</value>
41 <value type="bool" key="EditorConfiguration.cleanWhitespace">true</value>
42 <value type="bool" key="EditorConfiguration.inEntireDocument">false</value>
43 </valuemap>
44 </data>
45 <data>
46 <variable>ProjectExplorer.Project.PluginSettings</variable>
47 <valuemap type="QVariantMap"/>
48 </data>
49 <data>
50 <variable>ProjectExplorer.Project.Target.0</variable>
51 <valuemap type="QVariantMap">
52 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Desktop</value>
53 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Desktop</value>
54 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Target.DesktopTarget</value>
55 <value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">0</value>
56 <value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
57 <value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
58 <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
59 <value type="QString" key="ProjectExplorer.BuildCOnfiguration.ToolChain">ProjectExplorer.ToolChain.Gcc:/usr/bin/g++.x86-linux-generic-elf-64bit./usr/bin/gdb</value>
60 <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
61 <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
62 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
63 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
64 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
65 <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">false</value>
66 <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibraryAuto">true</value>
67 <value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
68 <value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
69 </valuemap>
70 <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
71 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
72 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
73 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
74 <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
75 <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
76 <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
77 </valuemap>
78 <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
79 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
80 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
81 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
82 </valuemap>
83 <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
84 <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
85 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
86 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
87 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
88 <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
89 <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
90 <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
91 </valuemap>
92 <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
93 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
94 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
95 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
96 </valuemap>
97 <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
98 <value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
99 <valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
100 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Qt 4.8.2 in PATH (System) Release</value>
101 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
102 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
103 <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
104 <value type="QString" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildDirectory">/opt/LPPMON_PLUGINS_PAUL/wfdisplay/wfdisplay</value>
105 <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.QtVersionId">1</value>
106 <value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">false</value>
107 </valuemap>
108 <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.1">
109 <value type="QString" key="ProjectExplorer.BuildCOnfiguration.ToolChain">ProjectExplorer.ToolChain.Gcc:/usr/bin/g++.x86-linux-generic-elf-64bit./usr/bin/gdb</value>
110 <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
111 <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
112 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
113 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
114 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
115 <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">false</value>
116 <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibraryAuto">true</value>
117 <value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
118 <value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
119 </valuemap>
120 <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
121 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
122 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
123 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
124 <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
125 <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
126 <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
127 </valuemap>
128 <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
129 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
130 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
131 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
132 </valuemap>
133 <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
134 <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
135 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
136 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
137 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
138 <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
139 <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
140 <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
141 </valuemap>
142 <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
143 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
144 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
145 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
146 </valuemap>
147 <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
148 <value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
149 <valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
150 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Qt 4.8.2 in PATH (System) Debug</value>
151 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
152 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
153 <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value>
154 <value type="QString" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildDirectory">/opt/LPPMON_PLUGINS_PAUL/wfdisplay/wfdisplay</value>
155 <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.QtVersionId">1</value>
156 <value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">false</value>
157 </valuemap>
158 <value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">2</value>
159 <valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
160 <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
161 <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
162 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy</value>
163 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
164 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
165 </valuemap>
166 <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
167 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">No deployment</value>
168 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
169 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
170 </valuemap>
171 <value type="int" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
172 <valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
173 <value type="bool" key="Analyzer.Project.UseGlobal">true</value>
174 <value type="bool" key="Analyzer.Project.UseGlobal">true</value>
175 <valuelist type="QVariantList" key="Analyzer.Valgrind.AddedSuppressionFiles"/>
176 <valuelist type="QVariantList" key="Analyzer.Valgrind.AddedSuppressionFiles"/>
177 <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectBusEvents">false</value>
178 <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectBusEvents">false</value>
179 <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectSystime">false</value>
180 <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectSystime">false</value>
181 <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableBranchSim">false</value>
182 <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableBranchSim">false</value>
183 <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableCacheSim">false</value>
184 <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableCacheSim">false</value>
185 <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableEventToolTips">true</value>
186 <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableEventToolTips">true</value>
187 <value type="double" key="Analyzer.Valgrind.Callgrind.MinimumCostRatio">0.01</value>
188 <value type="double" key="Analyzer.Valgrind.Callgrind.MinimumCostRatio">0.01</value>
189 <value type="double" key="Analyzer.Valgrind.Callgrind.VisualisationMinimumCostRatio">10</value>
190 <value type="double" key="Analyzer.Valgrind.Callgrind.VisualisationMinimumCostRatio">10</value>
191 <value type="bool" key="Analyzer.Valgrind.FilterExternalIssues">true</value>
192 <value type="bool" key="Analyzer.Valgrind.FilterExternalIssues">true</value>
193 <value type="int" key="Analyzer.Valgrind.NumCallers">25</value>
194 <value type="int" key="Analyzer.Valgrind.NumCallers">25</value>
195 <valuelist type="QVariantList" key="Analyzer.Valgrind.RemovedSuppressionFiles"/>
196 <valuelist type="QVariantList" key="Analyzer.Valgrind.RemovedSuppressionFiles"/>
197 <value type="bool" key="Analyzer.Valgrind.TrackOrigins">true</value>
198 <value type="bool" key="Analyzer.Valgrind.TrackOrigins">true</value>
199 <value type="QString" key="Analyzer.Valgrind.ValgrindExecutable">valgrind</value>
200 <value type="QString" key="Analyzer.Valgrind.ValgrindExecutable">valgrind</value>
201 <valuelist type="QVariantList" key="Analyzer.Valgrind.VisibleErrorKinds">
202 <value type="int">0</value>
203 <value type="int">1</value>
204 <value type="int">2</value>
205 <value type="int">3</value>
206 <value type="int">4</value>
207 <value type="int">5</value>
208 <value type="int">6</value>
209 <value type="int">7</value>
210 <value type="int">8</value>
211 <value type="int">9</value>
212 <value type="int">10</value>
213 <value type="int">11</value>
214 <value type="int">12</value>
215 <value type="int">13</value>
216 <value type="int">14</value>
217 </valuelist>
218 <valuelist type="QVariantList" key="Analyzer.Valgrind.VisibleErrorKinds">
219 <value type="int">0</value>
220 <value type="int">1</value>
221 <value type="int">2</value>
222 <value type="int">3</value>
223 <value type="int">4</value>
224 <value type="int">5</value>
225 <value type="int">6</value>
226 <value type="int">7</value>
227 <value type="int">8</value>
228 <value type="int">9</value>
229 <value type="int">10</value>
230 <value type="int">11</value>
231 <value type="int">12</value>
232 <value type="int">13</value>
233 <value type="int">14</value>
234 </valuelist>
235 <value type="QString" key="ProjectExplorer.CustomExecutableRunConfiguration.Arguments"></value>
236 <value type="int" key="ProjectExplorer.CustomExecutableRunConfiguration.BaseEnvironmentBase">2</value>
237 <value type="QString" key="ProjectExplorer.CustomExecutableRunConfiguration.Executable"></value>
238 <value type="bool" key="ProjectExplorer.CustomExecutableRunConfiguration.UseTerminal">false</value>
239 <valuelist type="QVariantList" key="ProjectExplorer.CustomExecutableRunConfiguration.UserEnvironmentChanges"/>
240 <value type="QString" key="ProjectExplorer.CustomExecutableRunConfiguration.WorkingDirectory">%{buildDir}</value>
241 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Custom Executable</value>
242 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
243 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.CustomExecutableRunConfiguration</value>
244 <value type="uint" key="RunConfiguration.QmlDebugServerPort">3768</value>
245 <value type="bool" key="RunConfiguration.UseCppDebugger">true</value>
246 <value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
247 <value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
248 </valuemap>
249 <value type="int" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
250 </valuemap>
251 </data>
252 <data>
253 <variable>ProjectExplorer.Project.TargetCount</variable>
254 <value type="int">1</value>
255 </data>
256 <data>
257 <variable>ProjectExplorer.Project.Updater.EnvironmentId</variable>
258 <value type="QString">{2e58a81f-9962-4bba-ae6b-760177f0656c}</value>
259 </data>
260 <data>
261 <variable>ProjectExplorer.Project.Updater.FileVersion</variable>
262 <value type="int">10</value>
263 </data>
264 </qtcreator>
@@ -0,0 +1,52
1 #include "wfdisplay.h"
2 #include <QApplication>
3
4 WFDisplay::WFDisplay(QWidget *parent) :
5 QWidget(parent)
6 {
7 waveforms_LAYOUT = new QVBoxLayout;
8
9 spwTabWidget = new QTabWidget;
10
11 page_f0 = new WFPage;
12 page_f1 = new WFPage;
13 page_f2 = new WFPage;
14 page_f3 = new WFPage;
15
16 spwTabWidget->addTab(page_f0, tr("f0"));
17 spwTabWidget->addTab(page_f1, tr("f1"));
18 spwTabWidget->addTab(page_f2, tr("f2"));
19 spwTabWidget->addTab(page_f3, tr("f3"));
20
21 waveforms_LAYOUT->addWidget(spwTabWidget);
22
23 this->setLayout(waveforms_LAYOUT);
24
25 }
26
27 void WFDisplay::displayOnPlot(short *data, unsigned char num_page, unsigned char num)
28 {
29 QVector<double> x(XMAX), y(XMAX);
30
31 for (int i=0; i<XMAX; ++i)
32 {
33 x[i] = i;
34 y[i] = (double) data[i];
35 }
36 switch(num_page){
37 case 0:
38 page_f0->displayOnPlot(data, num);
39 break;
40 case 1:
41 page_f1->displayOnPlot(data, num);
42 break;
43 case 2:
44 page_f2->displayOnPlot(data, num);
45 break;
46 case 3:
47 page_f3->displayOnPlot(data, num);
48 break;
49 }
50
51 }
52
@@ -0,0 +1,37
1 #ifndef WFDISPLAY_H
2 #define WFDISPLAY_H
3
4 #include <QWidget>
5 #include <lppmonplot.h>
6 #include <QGridLayout>
7 #include <QVBoxLayout>
8 #include <wfplot.h>
9 #include <wfpage.h>
10 #include <QTabWidget>
11 #include <params.h>
12
13 class WFDisplay : public QWidget
14 {
15 Q_OBJECT
16 public:
17 explicit WFDisplay(QWidget *parent = 0);
18
19 WFPage * page_f0;
20 WFPage * page_f1;
21 WFPage * page_f2;
22 WFPage * page_f3;
23
24 QTabWidget *spwTabWidget;
25
26 QVBoxLayout *waveforms_LAYOUT;
27
28 void displayOnPlot(short *data, unsigned char num_page, unsigned char num);
29
30
31 signals:
32
33 public slots:
34
35 };
36
37 #endif // WFDISPLAY_H
@@ -0,0 +1,12
1 #ifndef WFDISPLAY_GLOBAL_H
2 #define WFDISPLAY_GLOBAL_H
3
4 #include <QtCore/qglobal.h>
5
6 #if defined(WFDISPLAY_LIBRARY)
7 # define WFDISPLAYSHARED_EXPORT Q_DECL_EXPORT
8 #else
9 # define WFDISPLAYSHARED_EXPORT Q_DECL_IMPORT
10 #endif
11
12 #endif // WFDISPLAY_GLOBAL_H
@@ -0,0 +1,55
1 #include "wfpage.h"
2
3 WFPage::WFPage(QWidget *parent) :
4 QWidget(parent)
5 {
6 wfPlot_v = new WFPlot();
7 wfPlot_e1 = new WFPlot();
8 wfPlot_e2 = new WFPlot();
9 wfPlot_b1 = new WFPlot();
10 wfPlot_b2 = new WFPlot();
11 wfPlot_b3 = new WFPlot();
12 //
13 //wfPlot_v->customPlot->setTitle("v");
14 wfPlot_v->customPlot->setGraphName(0, "v");
15 //wfPlot_e1->customPlot->setTitle("e1");
16 wfPlot_e1->customPlot->setGraphName(0, "e1");
17 wfPlot_e2->customPlot->setTitle("e2");
18 wfPlot_b1->customPlot->setTitle("b1");
19 wfPlot_b2->customPlot->setTitle("b2");
20 wfPlot_b3->customPlot->setTitle("b3");
21 //
22 mainLayout = new QGridLayout;
23 mainLayout->addWidget(wfPlot_v, 0, 0, 1, 1);
24 mainLayout->addWidget(wfPlot_e1, 0, 1, 1, 1);
25 mainLayout->addWidget(wfPlot_e2, 0, 2, 1, 1);
26 mainLayout->addWidget(wfPlot_b1, 1, 0, 1, 1);
27 mainLayout->addWidget(wfPlot_b2, 1, 1, 1, 1);
28 mainLayout->addWidget(wfPlot_b3, 1, 2, 1, 1);
29 //
30 this->setLayout(mainLayout);
31 }
32
33 void WFPage::displayOnPlot(short *data, unsigned char num)
34 {
35 switch(num){
36 case 0:
37 wfPlot_v->displayOnPlot(data, DEFAULT_SIZE);
38 break;
39 case 1:
40 wfPlot_e1->displayOnPlot(data, DEFAULT_SIZE);
41 break;
42 case 2:
43 wfPlot_e2->displayOnPlot(data, DEFAULT_SIZE);
44 break;
45 case 3:
46 wfPlot_b1->displayOnPlot(data, DEFAULT_SIZE);
47 break;
48 case 4:
49 wfPlot_b2->displayOnPlot(data, DEFAULT_SIZE);
50 break;
51 case 5:
52 wfPlot_b3->displayOnPlot(data, DEFAULT_SIZE);
53 break;
54 }
55 }
@@ -0,0 +1,31
1 #ifndef WFPAGE_H
2 #define WFPAGE_H
3
4 #include <QWidget>
5 #include <wfplot.h>
6 #include <params.h>
7
8 class WFPage : public QWidget
9 {
10 Q_OBJECT
11 public:
12 explicit WFPage(QWidget *parent = 0);
13
14 WFPlot *wfPlot_v;
15 WFPlot *wfPlot_e1;
16 WFPlot *wfPlot_e2;
17 WFPlot *wfPlot_b1;
18 WFPlot *wfPlot_b2;
19 WFPlot *wfPlot_b3;
20
21 QGridLayout *mainLayout;
22
23 void displayOnPlot(short *data, unsigned char num);
24
25 signals:
26
27 public slots:
28
29 };
30
31 #endif // WFPAGE_H
@@ -0,0 +1,49
1 #include "wfplot.h"
2 #include <QFontInfo>
3 #include <params.h>
4
5 WFPlot::WFPlot(QWidget *parent) :
6 QWidget(parent)
7 {
8 // Create Fonts
9 QFont font;
10 font = QFont(this->fontInfo().family(), FONT_SIZE_WAVEFORM_TITLE, QFont::Light);
11 customPlot = new LppMonPlot();
12 mainLayout = new QVBoxLayout();
13
14 customPlot->setXaxisRange(0, XMAX);
15 customPlot->setYaxisRange(-YMAX, YMAX);
16 //customPlot->setTitleFont(font);
17
18 customPlot->addGraph();
19
20 mainLayout->addWidget(customPlot);
21
22 this->setLayout(mainLayout);
23 }
24
25
26
27 void WFPlot::displayOnPlot(short *data, unsigned int size)
28 {
29 QList<QVariant> qListX;
30 QList<QVariant> qListY;
31 qListX.clear();
32 qListY.clear();
33
34 for (unsigned int i=0; i<size; ++i)
35 {
36 qListX.append(i);
37 qListY.append( (double) data[i] );
38 }
39
40 customPlot->setGraphData(0, qListX, qListY);
41 customPlot->rescaleAxis();
42 customPlot->setGraphName(0, "v");
43 }
44
45
46
47
48
49
@@ -0,0 +1,25
1 #ifndef WFPLOT_H
2 #define WFPLOT_H
3
4 #include <QWidget>
5 #include <QVBoxLayout>
6 #include <lppmonplot.h>
7
8 class WFPlot : public QWidget
9 {
10 Q_OBJECT
11 public:
12 explicit WFPlot(QWidget *parent = 0);
13
14 void displayOnPlot(short *data, unsigned int size);
15
16 LppMonPlot *customPlot;
17 QVBoxLayout *mainLayout;
18
19 signals:
20
21 public slots:
22
23 };
24
25 #endif // WFPLOT_H
@@ -1,6 +1,6
1 <?xml version="1.0" encoding="UTF-8"?>
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!DOCTYPE QtCreatorProject>
2 <!DOCTYPE QtCreatorProject>
3 <!-- Written by Qt Creator 2.4.1, 2013-05-22T07:47:54. -->
3 <!-- Written by Qt Creator 2.4.1, 2013-06-04T16:00:09. -->
4 <qtcreator>
4 <qtcreator>
5 <data>
5 <data>
6 <variable>ProjectExplorer.Project.ActiveTarget</variable>
6 <variable>ProjectExplorer.Project.ActiveTarget</variable>
@@ -1,6 +1,6
1 #############################################################################
1 #############################################################################
2 # Makefile for building: librmapplugin.so.1.0.0
2 # Makefile for building: librmapplugin.so.1.0.0
3 # Generated by qmake (2.01a) (Qt 4.8.4) on: Wed May 22 07:43:41 2013
3 # Generated by qmake (2.01a) (Qt 4.8.4) on: Thu May 30 11:18:09 2013
4 # Project: rmapplugin.pro
4 # Project: rmapplugin.pro
5 # Template: lib
5 # Template: lib
6 # Command: /usr/bin/qmake-qt4 -spec /usr/lib64/qt4/mkspecs/linux-g++ -o Makefile rmapplugin.pro
6 # Command: /usr/bin/qmake-qt4 -spec /usr/lib64/qt4/mkspecs/linux-g++ -o Makefile rmapplugin.pro
@@ -59,6 +59,7 SOURCES = rmapplugin.cpp \
59 wfplot.cpp \
59 wfplot.cpp \
60 wfpage.cpp \
60 wfpage.cpp \
61 wfpacket.cpp \
61 wfpacket.cpp \
62 tmechobridge.cpp \
62 /usr/include/lppmon/pluginsInterface/lppmonplugininterface.cpp moc/moc_rmappluginui.cpp \
63 /usr/include/lppmon/pluginsInterface/lppmonplugininterface.cpp moc/moc_rmappluginui.cpp \
63 moc/moc_rmapplugin.cpp \
64 moc/moc_rmapplugin.cpp \
64 moc/moc_qipdialogbox.cpp \
65 moc/moc_qipdialogbox.cpp \
@@ -73,6 +74,7 SOURCES = rmapplugin.cpp \
73 moc/moc_wfplot.cpp \
74 moc/moc_wfplot.cpp \
74 moc/moc_wfpage.cpp \
75 moc/moc_wfpage.cpp \
75 moc/moc_wfpacket.cpp \
76 moc/moc_wfpacket.cpp \
77 moc/moc_tmechobridge.cpp \
76 moc/moc_genericPySysdriver.cpp \
78 moc/moc_genericPySysdriver.cpp \
77 moc/moc_lppmonplugin.cpp
79 moc/moc_lppmonplugin.cpp
78 OBJECTS = obj/rmapplugin.o \
80 OBJECTS = obj/rmapplugin.o \
@@ -91,6 +93,7 OBJECTS = obj/rmapplugin.o \
91 obj/wfplot.o \
93 obj/wfplot.o \
92 obj/wfpage.o \
94 obj/wfpage.o \
93 obj/wfpacket.o \
95 obj/wfpacket.o \
96 obj/tmechobridge.o \
94 obj/lppmonplugininterface.o \
97 obj/lppmonplugininterface.o \
95 obj/moc_rmappluginui.o \
98 obj/moc_rmappluginui.o \
96 obj/moc_rmapplugin.o \
99 obj/moc_rmapplugin.o \
@@ -106,6 +109,7 OBJECTS = obj/rmapplugin.o \
106 obj/moc_wfplot.o \
109 obj/moc_wfplot.o \
107 obj/moc_wfpage.o \
110 obj/moc_wfpage.o \
108 obj/moc_wfpacket.o \
111 obj/moc_wfpacket.o \
112 obj/moc_tmechobridge.o \
109 obj/moc_genericPySysdriver.o \
113 obj/moc_genericPySysdriver.o \
110 obj/moc_lppmonplugin.o
114 obj/moc_lppmonplugin.o
111 DIST = /usr/lib64/qt4/mkspecs/common/unix.conf \
115 DIST = /usr/lib64/qt4/mkspecs/common/unix.conf \
@@ -255,7 +259,7 qmake: FORCE
255
259
256 dist:
260 dist:
257 @$(CHK_DIR_EXISTS) obj/rmapplugin1.0.0 || $(MKDIR) obj/rmapplugin1.0.0
261 @$(CHK_DIR_EXISTS) obj/rmapplugin1.0.0 || $(MKDIR) obj/rmapplugin1.0.0
258 $(COPY_FILE) --parents $(SOURCES) $(DIST) obj/rmapplugin1.0.0/ && $(COPY_FILE) --parents rmappluginui.h rmapplugin.h rmapoperations.h ccsds.h ../common_PLE/qipdialogbox.h ../common_PLE/gresbstatusenquiry.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 tcpackettosend.h tmpackettoread.h wfdisplay.h tmstatistics.h wfplot.h wfpage.h wfpacket.h params.h /usr/include/lppmon/genericPySysdriver.h /usr/include/lppmon/lppmonplugin.h obj/rmapplugin1.0.0/ && $(COPY_FILE) --parents rmapplugin.cpp rmappluginui.cpp rmapoperations.cpp ccsds.cpp ../common_PLE/qipdialogbox.cpp ../common_PLE/gresbstatusenquiry.cpp rmappluginpythonwrapper.cpp stardundee.cpp gresb.cpp tcpackettosend.cpp tmpackettoread.cpp wfdisplay.cpp tmstatistics.cpp wfplot.cpp wfpage.cpp wfpacket.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
262 $(COPY_FILE) --parents $(SOURCES) $(DIST) obj/rmapplugin1.0.0/ && $(COPY_FILE) --parents rmappluginui.h rmapplugin.h rmapoperations.h ccsds.h ../common_PLE/qipdialogbox.h ../common_PLE/gresbstatusenquiry.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 tcpackettosend.h tmpackettoread.h wfdisplay.h tmstatistics.h wfplot.h wfpage.h wfpacket.h params.h tmechobridge.h /usr/include/lppmon/genericPySysdriver.h /usr/include/lppmon/lppmonplugin.h obj/rmapplugin1.0.0/ && $(COPY_FILE) --parents rmapplugin.cpp rmappluginui.cpp rmapoperations.cpp ccsds.cpp ../common_PLE/qipdialogbox.cpp ../common_PLE/gresbstatusenquiry.cpp rmappluginpythonwrapper.cpp stardundee.cpp gresb.cpp tcpackettosend.cpp tmpackettoread.cpp wfdisplay.cpp tmstatistics.cpp wfplot.cpp wfpage.cpp wfpacket.cpp tmechobridge.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
259
263
260
264
261 clean:compiler_clean
265 clean:compiler_clean
@@ -277,17 +281,17 mocclean: compiler_moc_header_clean comp
277
281
278 mocables: compiler_moc_header_make_all compiler_moc_source_make_all
282 mocables: compiler_moc_header_make_all compiler_moc_source_make_all
279
283
280 compiler_moc_header_make_all: moc/moc_rmappluginui.cpp moc/moc_rmapplugin.cpp moc/moc_qipdialogbox.cpp moc/moc_gresbstatusenquiry.cpp moc/moc_rmappluginpythonwrapper.cpp moc/moc_stardundee.cpp moc/moc_gresb.cpp moc/moc_tcpackettosend.cpp moc/moc_tmpackettoread.cpp moc/moc_wfdisplay.cpp moc/moc_tmstatistics.cpp moc/moc_wfplot.cpp moc/moc_wfpage.cpp moc/moc_wfpacket.cpp moc/moc_genericPySysdriver.cpp moc/moc_lppmonplugin.cpp
284 compiler_moc_header_make_all: moc/moc_rmappluginui.cpp moc/moc_rmapplugin.cpp moc/moc_qipdialogbox.cpp moc/moc_gresbstatusenquiry.cpp moc/moc_rmappluginpythonwrapper.cpp moc/moc_stardundee.cpp moc/moc_gresb.cpp moc/moc_tcpackettosend.cpp moc/moc_tmpackettoread.cpp moc/moc_wfdisplay.cpp moc/moc_tmstatistics.cpp moc/moc_wfplot.cpp moc/moc_wfpage.cpp moc/moc_wfpacket.cpp moc/moc_tmechobridge.cpp moc/moc_genericPySysdriver.cpp moc/moc_lppmonplugin.cpp
281 compiler_moc_header_clean:
285 compiler_moc_header_clean:
282 -$(DEL_FILE) moc/moc_rmappluginui.cpp moc/moc_rmapplugin.cpp moc/moc_qipdialogbox.cpp moc/moc_gresbstatusenquiry.cpp moc/moc_rmappluginpythonwrapper.cpp moc/moc_stardundee.cpp moc/moc_gresb.cpp moc/moc_tcpackettosend.cpp moc/moc_tmpackettoread.cpp moc/moc_wfdisplay.cpp moc/moc_tmstatistics.cpp moc/moc_wfplot.cpp moc/moc_wfpage.cpp moc/moc_wfpacket.cpp moc/moc_genericPySysdriver.cpp moc/moc_lppmonplugin.cpp
286 -$(DEL_FILE) moc/moc_rmappluginui.cpp moc/moc_rmapplugin.cpp moc/moc_qipdialogbox.cpp moc/moc_gresbstatusenquiry.cpp moc/moc_rmappluginpythonwrapper.cpp moc/moc_stardundee.cpp moc/moc_gresb.cpp moc/moc_tcpackettosend.cpp moc/moc_tmpackettoread.cpp moc/moc_wfdisplay.cpp moc/moc_tmstatistics.cpp moc/moc_wfplot.cpp moc/moc_wfpage.cpp moc/moc_wfpacket.cpp moc/moc_tmechobridge.cpp moc/moc_genericPySysdriver.cpp moc/moc_lppmonplugin.cpp
283 moc/moc_rmappluginui.cpp: rmapoperations.h \
287 moc/moc_rmappluginui.cpp: rmapoperations.h \
288 params.h \
284 stardundee.h \
289 stardundee.h \
285 ccsds.h \
290 ccsds.h \
286 tmpackettoread.h \
291 tmpackettoread.h \
287 gresb.h \
292 gresb.h \
288 wfdisplay.h \
293 wfdisplay.h \
289 wfplot.h \
294 wfplot.h \
290 params.h \
291 wfpage.h \
295 wfpage.h \
292 tmstatistics.h \
296 tmstatistics.h \
293 rmappluginui.h
297 rmappluginui.h
@@ -295,13 +299,13 moc/moc_rmappluginui.cpp: rmapoperations
295
299
296 moc/moc_rmapplugin.cpp: rmappluginui.h \
300 moc/moc_rmapplugin.cpp: rmappluginui.h \
297 rmapoperations.h \
301 rmapoperations.h \
302 params.h \
298 stardundee.h \
303 stardundee.h \
299 ccsds.h \
304 ccsds.h \
300 tmpackettoread.h \
305 tmpackettoread.h \
301 gresb.h \
306 gresb.h \
302 wfdisplay.h \
307 wfdisplay.h \
303 wfplot.h \
308 wfplot.h \
304 params.h \
305 wfpage.h \
309 wfpage.h \
306 tmstatistics.h \
310 tmstatistics.h \
307 wfpacket.h \
311 wfpacket.h \
@@ -315,6 +319,7 moc/moc_gresbstatusenquiry.cpp: ../commo
315 /usr/lib64/qt4/bin/moc $(DEFINES) $(INCPATH) ../common_PLE/gresbstatusenquiry.h -o moc/moc_gresbstatusenquiry.cpp
319 /usr/lib64/qt4/bin/moc $(DEFINES) $(INCPATH) ../common_PLE/gresbstatusenquiry.h -o moc/moc_gresbstatusenquiry.cpp
316
320
317 moc/moc_rmappluginpythonwrapper.cpp: rmapoperations.h \
321 moc/moc_rmappluginpythonwrapper.cpp: rmapoperations.h \
322 params.h \
318 ccsds.h \
323 ccsds.h \
319 tcpackettosend.h \
324 tcpackettosend.h \
320 tmpackettoread.h \
325 tmpackettoread.h \
@@ -322,12 +327,14 moc/moc_rmappluginpythonwrapper.cpp: rma
322 /usr/lib64/qt4/bin/moc $(DEFINES) $(INCPATH) rmappluginpythonwrapper.h -o moc/moc_rmappluginpythonwrapper.cpp
327 /usr/lib64/qt4/bin/moc $(DEFINES) $(INCPATH) rmappluginpythonwrapper.h -o moc/moc_rmappluginpythonwrapper.cpp
323
328
324 moc/moc_stardundee.cpp: rmapoperations.h \
329 moc/moc_stardundee.cpp: rmapoperations.h \
330 params.h \
325 ccsds.h \
331 ccsds.h \
326 tmpackettoread.h \
332 tmpackettoread.h \
327 stardundee.h
333 stardundee.h
328 /usr/lib64/qt4/bin/moc $(DEFINES) $(INCPATH) stardundee.h -o moc/moc_stardundee.cpp
334 /usr/lib64/qt4/bin/moc $(DEFINES) $(INCPATH) stardundee.h -o moc/moc_stardundee.cpp
329
335
330 moc/moc_gresb.cpp: rmapoperations.h \
336 moc/moc_gresb.cpp: rmapoperations.h \
337 params.h \
331 ccsds.h \
338 ccsds.h \
332 tmpackettoread.h \
339 tmpackettoread.h \
333 gresb.h
340 gresb.h
@@ -361,6 +368,9 moc/moc_wfpacket.cpp: params.h \
361 wfpacket.h
368 wfpacket.h
362 /usr/lib64/qt4/bin/moc $(DEFINES) $(INCPATH) wfpacket.h -o moc/moc_wfpacket.cpp
369 /usr/lib64/qt4/bin/moc $(DEFINES) $(INCPATH) wfpacket.h -o moc/moc_wfpacket.cpp
363
370
371 moc/moc_tmechobridge.cpp: tmechobridge.h
372 /usr/lib64/qt4/bin/moc $(DEFINES) $(INCPATH) tmechobridge.h -o moc/moc_tmechobridge.cpp
373
364 moc/moc_genericPySysdriver.cpp: /usr/include/lppmon/genericPySysdriver.h
374 moc/moc_genericPySysdriver.cpp: /usr/include/lppmon/genericPySysdriver.h
365 /usr/lib64/qt4/bin/moc $(DEFINES) $(INCPATH) /usr/include/lppmon/genericPySysdriver.h -o moc/moc_genericPySysdriver.cpp
375 /usr/lib64/qt4/bin/moc $(DEFINES) $(INCPATH) /usr/include/lppmon/genericPySysdriver.h -o moc/moc_genericPySysdriver.cpp
366
376
@@ -389,13 +399,13 compiler_clean: compiler_moc_header_clea
389 obj/rmapplugin.o: rmapplugin.cpp rmapplugin.h \
399 obj/rmapplugin.o: rmapplugin.cpp rmapplugin.h \
390 rmappluginui.h \
400 rmappluginui.h \
391 rmapoperations.h \
401 rmapoperations.h \
402 params.h \
392 stardundee.h \
403 stardundee.h \
393 ccsds.h \
404 ccsds.h \
394 tmpackettoread.h \
405 tmpackettoread.h \
395 gresb.h \
406 gresb.h \
396 wfdisplay.h \
407 wfdisplay.h \
397 wfplot.h \
408 wfplot.h \
398 params.h \
399 wfpage.h \
409 wfpage.h \
400 tmstatistics.h \
410 tmstatistics.h \
401 wfpacket.h \
411 wfpacket.h \
@@ -406,19 +416,20 obj/rmapplugin.o: rmapplugin.cpp rmapplu
406 obj/rmappluginui.o: rmappluginui.cpp rmapplugin.h \
416 obj/rmappluginui.o: rmappluginui.cpp rmapplugin.h \
407 rmappluginui.h \
417 rmappluginui.h \
408 rmapoperations.h \
418 rmapoperations.h \
419 params.h \
409 stardundee.h \
420 stardundee.h \
410 ccsds.h \
421 ccsds.h \
411 tmpackettoread.h \
422 tmpackettoread.h \
412 gresb.h \
423 gresb.h \
413 wfdisplay.h \
424 wfdisplay.h \
414 wfplot.h \
425 wfplot.h \
415 params.h \
416 wfpage.h \
426 wfpage.h \
417 tmstatistics.h \
427 tmstatistics.h \
418 wfpacket.h
428 wfpacket.h
419 $(CXX) -c $(CXXFLAGS) $(INCPATH) -o obj/rmappluginui.o rmappluginui.cpp
429 $(CXX) -c $(CXXFLAGS) $(INCPATH) -o obj/rmappluginui.o rmappluginui.cpp
420
430
421 obj/rmapoperations.o: rmapoperations.cpp rmapoperations.h
431 obj/rmapoperations.o: rmapoperations.cpp rmapoperations.h \
432 params.h
422 $(CXX) -c $(CXXFLAGS) $(INCPATH) -o obj/rmapoperations.o rmapoperations.cpp
433 $(CXX) -c $(CXXFLAGS) $(INCPATH) -o obj/rmapoperations.o rmapoperations.cpp
423
434
424 obj/ccsds.o: ccsds.cpp ccsds.h
435 obj/ccsds.o: ccsds.cpp ccsds.h
@@ -432,6 +443,7 obj/gresbstatusenquiry.o: ../common_PLE/
432
443
433 obj/rmappluginpythonwrapper.o: rmappluginpythonwrapper.cpp rmappluginpythonwrapper.h \
444 obj/rmappluginpythonwrapper.o: rmappluginpythonwrapper.cpp rmappluginpythonwrapper.h \
434 rmapoperations.h \
445 rmapoperations.h \
446 params.h \
435 ccsds.h \
447 ccsds.h \
436 tcpackettosend.h \
448 tcpackettosend.h \
437 tmpackettoread.h
449 tmpackettoread.h
@@ -439,12 +451,14 obj/rmappluginpythonwrapper.o: rmapplugi
439
451
440 obj/stardundee.o: stardundee.cpp stardundee.h \
452 obj/stardundee.o: stardundee.cpp stardundee.h \
441 rmapoperations.h \
453 rmapoperations.h \
454 params.h \
442 ccsds.h \
455 ccsds.h \
443 tmpackettoread.h
456 tmpackettoread.h
444 $(CXX) -c $(CXXFLAGS) $(INCPATH) -o obj/stardundee.o stardundee.cpp
457 $(CXX) -c $(CXXFLAGS) $(INCPATH) -o obj/stardundee.o stardundee.cpp
445
458
446 obj/gresb.o: gresb.cpp gresb.h \
459 obj/gresb.o: gresb.cpp gresb.h \
447 rmapoperations.h \
460 rmapoperations.h \
461 params.h \
448 ccsds.h \
462 ccsds.h \
449 tmpackettoread.h
463 tmpackettoread.h
450 $(CXX) -c $(CXXFLAGS) $(INCPATH) -o obj/gresb.o gresb.cpp
464 $(CXX) -c $(CXXFLAGS) $(INCPATH) -o obj/gresb.o gresb.cpp
@@ -477,6 +491,9 obj/wfpacket.o: wfpacket.cpp wfpacket.h
477 params.h
491 params.h
478 $(CXX) -c $(CXXFLAGS) $(INCPATH) -o obj/wfpacket.o wfpacket.cpp
492 $(CXX) -c $(CXXFLAGS) $(INCPATH) -o obj/wfpacket.o wfpacket.cpp
479
493
494 obj/tmechobridge.o: tmechobridge.cpp tmechobridge.h
495 $(CXX) -c $(CXXFLAGS) $(INCPATH) -o obj/tmechobridge.o tmechobridge.cpp
496
480 obj/lppmonplugininterface.o: /usr/include/lppmon/pluginsInterface/lppmonplugininterface.cpp /usr/include/lppmon/pluginsInterface/lppmonplugininterface.h \
497 obj/lppmonplugininterface.o: /usr/include/lppmon/pluginsInterface/lppmonplugininterface.cpp /usr/include/lppmon/pluginsInterface/lppmonplugininterface.h \
481 /usr/include/lppmon/pluginsInterface/lppmonplugininterface_global.h
498 /usr/include/lppmon/pluginsInterface/lppmonplugininterface_global.h
482 $(CXX) -c $(CXXFLAGS) $(INCPATH) -o obj/lppmonplugininterface.o /usr/include/lppmon/pluginsInterface/lppmonplugininterface.cpp
499 $(CXX) -c $(CXXFLAGS) $(INCPATH) -o obj/lppmonplugininterface.o /usr/include/lppmon/pluginsInterface/lppmonplugininterface.cpp
@@ -523,6 +540,9 obj/moc_wfpage.o: moc/moc_wfpage.cpp
523 obj/moc_wfpacket.o: moc/moc_wfpacket.cpp
540 obj/moc_wfpacket.o: moc/moc_wfpacket.cpp
524 $(CXX) -c $(CXXFLAGS) $(INCPATH) -o obj/moc_wfpacket.o moc/moc_wfpacket.cpp
541 $(CXX) -c $(CXXFLAGS) $(INCPATH) -o obj/moc_wfpacket.o moc/moc_wfpacket.cpp
525
542
543 obj/moc_tmechobridge.o: moc/moc_tmechobridge.cpp
544 $(CXX) -c $(CXXFLAGS) $(INCPATH) -o obj/moc_tmechobridge.o moc/moc_tmechobridge.cpp
545
526 obj/moc_genericPySysdriver.o: moc/moc_genericPySysdriver.cpp
546 obj/moc_genericPySysdriver.o: moc/moc_genericPySysdriver.cpp
527 $(CXX) -c $(CXXFLAGS) $(INCPATH) -o obj/moc_genericPySysdriver.o moc/moc_genericPySysdriver.cpp
547 $(CXX) -c $(CXXFLAGS) $(INCPATH) -o obj/moc_genericPySysdriver.o moc/moc_genericPySysdriver.cpp
528
548
@@ -243,6 +243,10 void rmapplugin::setValueSourceAddress(u
243 void rmapplugin::receivePacketFromBridge(TMPacketToRead *packet)
243 void rmapplugin::receivePacketFromBridge(TMPacketToRead *packet)
244 {
244 {
245 preProcessPacket(packet);
245 preProcessPacket(packet);
246
247 // Send the packet to the TM echo bridge for processing
248 this->UI->tmEchoBridge->sendTMPacket(packet);
249
246 this->generalCCSDSPacketStore.append(packet);
250 this->generalCCSDSPacketStore.append(packet);
247 this->UI->nbPacketInStore->setText("nb packets in store: " + QString::number(generalCCSDSPacketStore.size()));
251 this->UI->nbPacketInStore->setText("nb packets in store: " + QString::number(generalCCSDSPacketStore.size()));
248 processPacketStore();
252 processPacketStore();
@@ -49,7 +49,8 HEADERS += \
49 wfplot.h \
49 wfplot.h \
50 wfpage.h \
50 wfpage.h \
51 wfpacket.h \
51 wfpacket.h \
52 params.h
52 params.h \
53 tmechobridge.h
53
54
54
55
55 SOURCES += \
56 SOURCES += \
@@ -68,7 +69,8 SOURCES += \
68 tmstatistics.cpp \
69 tmstatistics.cpp \
69 wfplot.cpp \
70 wfplot.cpp \
70 wfpage.cpp \
71 wfpage.cpp \
71 wfpacket.cpp
72 wfpacket.cpp \
73 tmechobridge.cpp
72
74
73
75
74
76
@@ -31,6 +31,7 rmapPluginUI::rmapPluginUI(QWidget *pare
31 QWidget* spwTabWidgetPage3 = new QWidget;
31 QWidget* spwTabWidgetPage3 = new QWidget;
32 QWidget* spwTabWidgetPage4 = new QWidget;
32 QWidget* spwTabWidgetPage4 = new QWidget;
33 QWidget* spwTabWidgetPage5 = new QWidget;
33 QWidget* spwTabWidgetPage5 = new QWidget;
34 QWidget* spwTabWidgetPage6 = new QWidget;
34 //
35 //
35 bridgeWidget = new QWidget;
36 bridgeWidget = new QWidget;
36 mainLayout = new QVBoxLayout;
37 mainLayout = new QVBoxLayout;
@@ -86,6 +87,7 rmapPluginUI::rmapPluginUI(QWidget *pare
86 //*** MISC **//
87 //*** MISC **//
87 starDundee = new StarDundee;
88 starDundee = new StarDundee;
88 gresbBridge = new gresb;
89 gresbBridge = new gresb;
90 tmEchoBridge = new TMEchoBridge();
89 console = new QTextEdit;
91 console = new QTextEdit;
90 gresbStatusQueryDialog = new QDialog;
92 gresbStatusQueryDialog = new QDialog;
91 logEnableCheckBox = new QCheckBox(tr("Enable Logs"));
93 logEnableCheckBox = new QCheckBox(tr("Enable Logs"));
@@ -146,12 +148,14 rmapPluginUI::rmapPluginUI(QWidget *pare
146 spwTabWidget->addTab(spwTabWidgetPage3, tr("console"));
148 spwTabWidget->addTab(spwTabWidgetPage3, tr("console"));
147 spwTabWidget->addTab(spwTabWidgetPage4, tr("TM statistics"));
149 spwTabWidget->addTab(spwTabWidgetPage4, tr("TM statistics"));
148 spwTabWidget->addTab(spwTabWidgetPage5, tr("waveforms"));
150 spwTabWidget->addTab(spwTabWidgetPage5, tr("waveforms"));
151 spwTabWidget->addTab(spwTabWidgetPage6, tr("TM Echo Bridge"));
149
152
150 spwTabWidgetPage0->setLayout(selectionLayout);
153 spwTabWidgetPage0->setLayout(selectionLayout);
151 spwTabWidgetPage2->setLayout(this->gresbBridge->spwLinkStatusEnquiry->mainLayout);
154 spwTabWidgetPage2->setLayout(this->gresbBridge->spwLinkStatusEnquiry->mainLayout);
152 spwTabWidgetPage3->setLayout(consoleLayout);
155 spwTabWidgetPage3->setLayout(consoleLayout);
153 spwTabWidgetPage4->setLayout(tmStatistics->layout());
156 spwTabWidgetPage4->setLayout(tmStatistics->layout());
154 spwTabWidgetPage5->setLayout(wfDisplay->layout());
157 spwTabWidgetPage5->setLayout(wfDisplay->layout());
158 spwTabWidgetPage6->setLayout(tmEchoBridge->layout());
155
159
156 mainLayout->addWidget(spwTabWidget);
160 mainLayout->addWidget(spwTabWidget);
157 setLayout(mainLayout);
161 setLayout(mainLayout);
@@ -46,6 +46,7
46 #include <QGroupBox>
46 #include <QGroupBox>
47 #include "wfdisplay.h"
47 #include "wfdisplay.h"
48 #include "tmstatistics.h"
48 #include "tmstatistics.h"
49 #include "tmechobridge.h"
49
50
50 enum selectedBridge{
51 enum selectedBridge{
51 selectedBridgeIsUnknown,
52 selectedBridgeIsUnknown,
@@ -105,6 +106,9 public:
105 StarDundee *starDundee;
106 StarDundee *starDundee;
106 gresb *gresbBridge;
107 gresb *gresbBridge;
107
108
109 // TM Echo Bridge
110 TMEchoBridge * tmEchoBridge;
111
108 bool islogfileenable();
112 bool islogfileenable();
109 void appendToLogFile(const QString & text);
113 void appendToLogFile(const QString & text);
110 void closeEvent(QCloseEvent *event);
114 void closeEvent(QCloseEvent *event);
@@ -459,6 +459,7 void TMStatistics::updateStatistics(unsi
459 if (typ == 21)
459 if (typ == 21)
460 {
460 {
461 if (sub == 3)
461 if (sub == 3)
462 {
462 if (sid == 1)
463 if (sid == 1)
463 {
464 {
464 NORM_CWF_F3_nb = NORM_CWF_F3_nb + 1;
465 NORM_CWF_F3_nb = NORM_CWF_F3_nb + 1;
@@ -483,6 +484,7 void TMStatistics::updateStatistics(unsi
483 {
484 {
484 incrementUnknown();
485 incrementUnknown();
485 }
486 }
487 }
486 }
488 }
487 else
489 else
488 {
490 {
@@ -2,7 +2,7
2 #define WFDISPLAY_H
2 #define WFDISPLAY_H
3
3
4 #include <QWidget>
4 #include <QWidget>
5 #include <qcustomplot.h>
5 #include <lppmonplot.h>
6 #include <QGridLayout>
6 #include <QGridLayout>
7 #include <QVBoxLayout>
7 #include <QVBoxLayout>
8 #include <wfplot.h>
8 #include <wfplot.h>
General Comments 0
You need to be logged in to leave comments. Login now