1
0
mirror of https://bitbucket.org/librepilot/librepilot.git synced 2024-12-01 09:24:10 +01:00

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1481 ebee16cc-31ac-478f-84a7-5cbb03baadba

This commit is contained in:
dgodin 2010-08-31 10:16:03 +00:00 committed by dgodin
parent bf03570eb8
commit d43e028ddd
35 changed files with 0 additions and 5361 deletions

View File

@ -1,186 +0,0 @@
#############################################################################
# Makefile for building: HITLNEW
# Generated by qmake (2.01a) (Qt 4.6.2) on: ?? 28. ??? 19:28:31 2010
# Project: hitlnew.pro
# Template: lib
# Command: d:\qt\2010.02.1\qt\bin\qmake.exe -spec d:/Qt/2010.02.1/qt/mkspecs/win32-g++ -win32 -o Makefile hitlnew.pro
#############################################################################
first: debug
install: debug-install
uninstall: debug-uninstall
MAKEFILE = Makefile
QMAKE = d:/qt/2010.02.1/qt/bin/qmake.exe
DEL_FILE = rm
CHK_DIR_EXISTS= test -d
MKDIR = mkdir
COPY = cp
COPY_FILE = $(COPY)
COPY_DIR = xcopy /s /q /y /i
INSTALL_FILE = $(COPY_FILE)
INSTALL_PROGRAM = $(COPY_FILE)
INSTALL_DIR = $(COPY_DIR)
DEL_FILE = rm
SYMLINK =
DEL_DIR = rmdir
MOVE = mv
CHK_DIR_EXISTS= test -d
MKDIR = mkdir
SUBTARGETS = \
debug \
release
debug: $(MAKEFILE).Debug FORCE
$(MAKE) -f $(MAKEFILE).Debug
debug-make_default: $(MAKEFILE).Debug FORCE
$(MAKE) -f $(MAKEFILE).Debug
debug-make_first: $(MAKEFILE).Debug FORCE
$(MAKE) -f $(MAKEFILE).Debug first
debug-all: $(MAKEFILE).Debug FORCE
$(MAKE) -f $(MAKEFILE).Debug all
debug-clean: $(MAKEFILE).Debug FORCE
$(MAKE) -f $(MAKEFILE).Debug clean
debug-distclean: $(MAKEFILE).Debug FORCE
$(MAKE) -f $(MAKEFILE).Debug distclean
debug-install: $(MAKEFILE).Debug FORCE
$(MAKE) -f $(MAKEFILE).Debug install
debug-uninstall: $(MAKEFILE).Debug FORCE
$(MAKE) -f $(MAKEFILE).Debug uninstall
release: $(MAKEFILE).Release FORCE
$(MAKE) -f $(MAKEFILE).Release
release-make_default: $(MAKEFILE).Release FORCE
$(MAKE) -f $(MAKEFILE).Release
release-make_first: $(MAKEFILE).Release FORCE
$(MAKE) -f $(MAKEFILE).Release first
release-all: $(MAKEFILE).Release FORCE
$(MAKE) -f $(MAKEFILE).Release all
release-clean: $(MAKEFILE).Release FORCE
$(MAKE) -f $(MAKEFILE).Release clean
release-distclean: $(MAKEFILE).Release FORCE
$(MAKE) -f $(MAKEFILE).Release distclean
release-install: $(MAKEFILE).Release FORCE
$(MAKE) -f $(MAKEFILE).Release install
release-uninstall: $(MAKEFILE).Release FORCE
$(MAKE) -f $(MAKEFILE).Release uninstall
Makefile: hitlnew.pro d:/Qt/2010.02.1/qt/mkspecs/win32-g++/qmake.conf d:/Qt/2010.02.1/qt/mkspecs/qconfig.pri \
d:/Qt/2010.02.1/qt/mkspecs/features/qt_functions.prf \
d:/Qt/2010.02.1/qt/mkspecs/features/qt_config.prf \
d:/Qt/2010.02.1/qt/mkspecs/features/exclusive_builds.prf \
d:/Qt/2010.02.1/qt/mkspecs/features/default_pre.prf \
d:/Qt/2010.02.1/qt/mkspecs/features/win32/default_pre.prf \
../../../openpilotgcs.pri \
../../openpilotgcsplugin.pri \
../../libs/aggregation/aggregation.pri \
../../libs/extensionsystem/extensionsystem_dependencies.pri \
../../libs/extensionsystem/extensionsystem.pri \
../../libs/utils/utils.pri \
../../libs/libqxt/libqxt.pri \
../../libs/qextserialport/qextserialport.pri \
../coreplugin/coreplugin_dependencies.pri \
../coreplugin/coreplugin.pri \
../../libs/utils/utils.pri \
../uavobjects/uavobjects_dependencies.pri \
../uavobjects/uavobjects.pri \
../uavobjects/uavobjects.pri \
../coreplugin/coreplugin.pri \
../../libs/utils/utils.pri \
../uavtalk/uavtalk_dependencies.pri \
../uavtalk/uavtalk.pri \
../coreplugin/coreplugin.pri \
../../libs/utils/utils.pri \
hitlnew_dependencies.pri \
d:/Qt/2010.02.1/qt/mkspecs/features/debug.prf \
d:/Qt/2010.02.1/qt/mkspecs/features/debug_and_release.prf \
d:/Qt/2010.02.1/qt/mkspecs/features/default_post.prf \
d:/Qt/2010.02.1/qt/mkspecs/features/win32/default_post.prf \
d:/Qt/2010.02.1/qt/mkspecs/features/win32/rtti.prf \
d:/Qt/2010.02.1/qt/mkspecs/features/win32/exceptions.prf \
d:/Qt/2010.02.1/qt/mkspecs/features/win32/stl.prf \
d:/Qt/2010.02.1/qt/mkspecs/features/shared.prf \
d:/Qt/2010.02.1/qt/mkspecs/features/dll.prf \
d:/Qt/2010.02.1/qt/mkspecs/features/warn_on.prf \
d:/Qt/2010.02.1/qt/mkspecs/features/qt.prf \
d:/Qt/2010.02.1/qt/mkspecs/features/win32/thread.prf \
d:/Qt/2010.02.1/qt/mkspecs/features/moc.prf \
d:/Qt/2010.02.1/qt/mkspecs/features/win32/windows.prf \
d:/Qt/2010.02.1/qt/mkspecs/features/resources.prf \
d:/Qt/2010.02.1/qt/mkspecs/features/uic.prf \
d:/Qt/2010.02.1/qt/mkspecs/features/yacc.prf \
d:/Qt/2010.02.1/qt/mkspecs/features/lex.prf \
d:/Qt/2010.02.1/qt/mkspecs/features/include_source_dir.prf
$(QMAKE) -spec d:/Qt/2010.02.1/qt/mkspecs/win32-g++ -win32 -o Makefile hitlnew.pro
d:/Qt/2010.02.1/qt/mkspecs/qconfig.pri:
d:/Qt/2010.02.1/qt/mkspecs/features/qt_functions.prf:
d:/Qt/2010.02.1/qt/mkspecs/features/qt_config.prf:
d:/Qt/2010.02.1/qt/mkspecs/features/exclusive_builds.prf:
d:/Qt/2010.02.1/qt/mkspecs/features/default_pre.prf:
d:/Qt/2010.02.1/qt/mkspecs/features/win32/default_pre.prf:
../../../openpilotgcs.pri:
../../openpilotgcsplugin.pri:
../../libs/aggregation/aggregation.pri:
../../libs/extensionsystem/extensionsystem_dependencies.pri:
../../libs/extensionsystem/extensionsystem.pri:
../../libs/utils/utils.pri:
../../libs/libqxt/libqxt.pri:
../../libs/qextserialport/qextserialport.pri:
../coreplugin/coreplugin_dependencies.pri:
../coreplugin/coreplugin.pri:
../../libs/utils/utils.pri:
../uavobjects/uavobjects_dependencies.pri:
../uavobjects/uavobjects.pri:
../uavobjects/uavobjects.pri:
../coreplugin/coreplugin.pri:
../../libs/utils/utils.pri:
../uavtalk/uavtalk_dependencies.pri:
../uavtalk/uavtalk.pri:
../coreplugin/coreplugin.pri:
../../libs/utils/utils.pri:
hitlnew_dependencies.pri:
d:/Qt/2010.02.1/qt/mkspecs/features/debug.prf:
d:/Qt/2010.02.1/qt/mkspecs/features/debug_and_release.prf:
d:/Qt/2010.02.1/qt/mkspecs/features/default_post.prf:
d:/Qt/2010.02.1/qt/mkspecs/features/win32/default_post.prf:
d:/Qt/2010.02.1/qt/mkspecs/features/win32/rtti.prf:
d:/Qt/2010.02.1/qt/mkspecs/features/win32/exceptions.prf:
d:/Qt/2010.02.1/qt/mkspecs/features/win32/stl.prf:
d:/Qt/2010.02.1/qt/mkspecs/features/shared.prf:
d:/Qt/2010.02.1/qt/mkspecs/features/dll.prf:
d:/Qt/2010.02.1/qt/mkspecs/features/warn_on.prf:
d:/Qt/2010.02.1/qt/mkspecs/features/qt.prf:
d:/Qt/2010.02.1/qt/mkspecs/features/win32/thread.prf:
d:/Qt/2010.02.1/qt/mkspecs/features/moc.prf:
d:/Qt/2010.02.1/qt/mkspecs/features/win32/windows.prf:
d:/Qt/2010.02.1/qt/mkspecs/features/resources.prf:
d:/Qt/2010.02.1/qt/mkspecs/features/uic.prf:
d:/Qt/2010.02.1/qt/mkspecs/features/yacc.prf:
d:/Qt/2010.02.1/qt/mkspecs/features/lex.prf:
d:/Qt/2010.02.1/qt/mkspecs/features/include_source_dir.prf:
qmake: qmake_all FORCE
@$(QMAKE) -spec d:/Qt/2010.02.1/qt/mkspecs/win32-g++ -win32 -o Makefile hitlnew.pro
qmake_all: FORCE
make_default: debug-make_default release-make_default FORCE
make_first: debug-make_first release-make_first FORCE
all: debug-all release-all FORCE
clean: debug-clean release-clean FORCE
-$(DEL_FILE) d:/Qt/QtProjects/OpenPilot/OpenPilot/trunk/ground/lib/openpilotgcs/plugins/OpenPilot/libHITLNEW.a
distclean: debug-distclean release-distclean FORCE
-$(DEL_FILE) Makefile
debug-mocclean: $(MAKEFILE).Debug
$(MAKE) -f $(MAKEFILE).Debug mocclean
release-mocclean: $(MAKEFILE).Release
$(MAKE) -f $(MAKEFILE).Release mocclean
mocclean: debug-mocclean release-mocclean
debug-mocables: $(MAKEFILE).Debug
$(MAKE) -f $(MAKEFILE).Debug mocables
release-mocables: $(MAKEFILE).Release
$(MAKE) -f $(MAKEFILE).Release mocables
mocables: debug-mocables release-mocables
FORCE:
$(MAKEFILE).Debug: Makefile
$(MAKEFILE).Release: Makefile

View File

@ -1,642 +0,0 @@
#############################################################################
# Makefile for building: HITLNEWd
# Generated by qmake (2.01a) (Qt 4.6.2) on: ?? 28. ??? 19:28:31 2010
# Project: hitlnew.pro
# Template: lib
#############################################################################
####### Compiler, tools and options
CC = gcc
CXX = g++
DEFINES = -DUNICODE -DQT_LARGEFILE_SUPPORT -DGCS_LIBRARY_BASENAME=\"lib\" -DWITH_TESTS -DQT_NO_CAST_TO_ASCII -DQT_DLL -DQT_PLUGIN -DQT_TESTLIB_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT
CFLAGS = -g -Wall $(DEFINES)
CXXFLAGS = -g -frtti -fexceptions -mthreads -Wall $(DEFINES)
INCPATH = -I'd:/Qt/2010.02.1/qt/include/QtCore' -I'd:/Qt/2010.02.1/qt/include/QtNetwork' -I'd:/Qt/2010.02.1/qt/include/QtGui' -I'd:/Qt/2010.02.1/qt/include/QtTest' -I'd:/Qt/2010.02.1/qt/include' -I'../../libs' -I'../../plugins' -I'../../libs/libqxt/src/core' -I'../../libs/libqxt/src/core/logengines' -I'../../libs/libqxt/src/core' -I'../../libs/libqxt/src/core/logengines' -I'../../libs/libqxt/src/core' -I'../../libs/libqxt/src/core/logengines' -I'../../libs/libqxt/src/core' -I'../../libs/libqxt/src/core/logengines' -I'd:/Qt/2010.02.1/qt/include/ActiveQt' -I'debug' -I'.' -I'd:/Qt/2010.02.1/qt/mkspecs/win32-g++'
LINK = g++
LFLAGS = -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc -mthreads -Wl -shared -Wl,--out-implib,d:/Qt/QtProjects/OpenPilot/OpenPilot/trunk/ground/lib/openpilotgcs/plugins/OpenPilot/libHITLNEWd.a
LIBS = -L'd:/Qt/2010.02.1/qt/lib' -LD:/Qt/QtProjects/OpenPilot/OpenPilot/trunk/ground/lib/openpilotgcs -LD:/Qt/QtProjects/OpenPilot/OpenPilot/trunk/ground/lib/openpilotgcs/plugins/OpenPilot -lAggregationd -lExtensionSystemd -lUtilsd -lQxtCored -lQExtSerialPortd -lCored -lUAVObjectsd -lQxtCored -lQExtSerialPortd -lQxtCored -lQExtSerialPortd -lUAVTalkd -lQxtCored -lQExtSerialPortd -lQtTestd4 -lQtGuid4 -lQtNetworkd4 -lQtCored4
QMAKE = d:/qt/2010.02.1/qt/bin/qmake.exe
IDC = d:/Qt/2010.02.1/qt/bin/idc.exe
IDL = midl
ZIP = zip -r -9
DEF_FILE =
RES_FILE =
COPY = cp
COPY_FILE = $(COPY)
COPY_DIR = xcopy /s /q /y /i
DEL_FILE = rm
DEL_DIR = rmdir
MOVE = mv
CHK_DIR_EXISTS= test -d
MKDIR = mkdir
INSTALL_FILE = $(COPY_FILE)
INSTALL_PROGRAM = $(COPY_FILE)
INSTALL_DIR = $(COPY_DIR)
####### Output directory
OBJECTS_DIR = debug/
####### Files
SOURCES = hitlplugin.cpp \
hitlwidget.cpp \
hitloptionspage.cpp \
hitlfactory.cpp \
hitlconfiguration.cpp \
hitlgadget.cpp \
simulator.cpp \
il2simulator.cpp \
fgsimulator.cpp debug/moc_hitlwidget.cpp \
debug/moc_hitloptionspage.cpp \
debug/moc_hitlfactory.cpp \
debug/moc_hitlconfiguration.cpp \
debug/moc_hitlgadget.cpp \
debug/moc_simulator.cpp \
debug/moc_fgsimulator.cpp \
debug/moc_il2simulator.cpp \
debug/qrc_hitlresources.cpp
OBJECTS = debug/hitlplugin.o \
debug/hitlwidget.o \
debug/hitloptionspage.o \
debug/hitlfactory.o \
debug/hitlconfiguration.o \
debug/hitlgadget.o \
debug/simulator.o \
debug/il2simulator.o \
debug/fgsimulator.o \
debug/moc_hitlwidget.o \
debug/moc_hitloptionspage.o \
debug/moc_hitlfactory.o \
debug/moc_hitlconfiguration.o \
debug/moc_hitlgadget.o \
debug/moc_simulator.o \
debug/moc_fgsimulator.o \
debug/moc_il2simulator.o \
debug/qrc_hitlresources.o
DIST =
QMAKE_TARGET = HITLNEWd
DESTDIR = ../../../lib/openpilotgcs/plugins/OpenPilot/ #avoid trailing-slash linebreak
TARGET = HITLNEWd.dll
DESTDIR_TARGET = ../../../lib/openpilotgcs/plugins/OpenPilot/HITLNEWd.dll
####### Implicit rules
.SUFFIXES: .cpp .cc .cxx .c
.cpp.o:
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<
.cc.o:
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<
.cxx.o:
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<
.c.o:
$(CC) -c $(CFLAGS) $(INCPATH) -o $@ $<
####### Build rules
first: all
all: Makefile.Debug $(DESTDIR_TARGET)
$(DESTDIR_TARGET): ../../../lib/openpilotgcs/plugins/OpenPilot/HITLNEW.pluginspec ui_hitloptionspage.h ui_hitlwidget.h $(OBJECTS)
$(LINK) $(LFLAGS) -o $(DESTDIR_TARGET) object_script.HITLNEWd.Debug $(LIBS)
qmake: FORCE
@$(QMAKE) -spec d:/Qt/2010.02.1/qt/mkspecs/win32-g++ -win32 -o Makefile.Debug hitlnew.pro
dist:
$(ZIP) HITLNEWd.zip $(SOURCES) $(DIST) hitlnew.pro d:/Qt/2010.02.1/qt/mkspecs/qconfig.pri d:/Qt/2010.02.1/qt/mkspecs/features/qt_functions.prf d:/Qt/2010.02.1/qt/mkspecs/features/qt_config.prf d:/Qt/2010.02.1/qt/mkspecs/features/exclusive_builds.prf d:/Qt/2010.02.1/qt/mkspecs/features/default_pre.prf d:/Qt/2010.02.1/qt/mkspecs/features/win32/default_pre.prf ../../../openpilotgcs.pri ../../openpilotgcsplugin.pri ../../libs/aggregation/aggregation.pri ../../libs/extensionsystem/extensionsystem_dependencies.pri ../../libs/extensionsystem/extensionsystem.pri ../../libs/utils/utils.pri ../../libs/libqxt/libqxt.pri ../../libs/qextserialport/qextserialport.pri ../coreplugin/coreplugin_dependencies.pri ../coreplugin/coreplugin.pri ../../libs/utils/utils.pri ../uavobjects/uavobjects_dependencies.pri ../uavobjects/uavobjects.pri ../uavobjects/uavobjects.pri ../coreplugin/coreplugin.pri ../../libs/utils/utils.pri ../uavtalk/uavtalk_dependencies.pri ../uavtalk/uavtalk.pri ../coreplugin/coreplugin.pri ../../libs/utils/utils.pri hitlnew_dependencies.pri d:/Qt/2010.02.1/qt/mkspecs/features/debug.prf d:/Qt/2010.02.1/qt/mkspecs/features/debug_and_release.prf d:/Qt/2010.02.1/qt/mkspecs/features/default_post.prf d:/Qt/2010.02.1/qt/mkspecs/features/win32/default_post.prf d:/Qt/2010.02.1/qt/mkspecs/features/build_pass.prf d:/Qt/2010.02.1/qt/mkspecs/features/win32/rtti.prf d:/Qt/2010.02.1/qt/mkspecs/features/win32/exceptions.prf d:/Qt/2010.02.1/qt/mkspecs/features/win32/stl.prf d:/Qt/2010.02.1/qt/mkspecs/features/shared.prf d:/Qt/2010.02.1/qt/mkspecs/features/dll.prf d:/Qt/2010.02.1/qt/mkspecs/features/warn_on.prf d:/Qt/2010.02.1/qt/mkspecs/features/qt.prf d:/Qt/2010.02.1/qt/mkspecs/features/win32/console.prf d:/Qt/2010.02.1/qt/mkspecs/features/win32/thread.prf d:/Qt/2010.02.1/qt/mkspecs/features/moc.prf d:/Qt/2010.02.1/qt/mkspecs/features/resources.prf d:/Qt/2010.02.1/qt/mkspecs/features/uic.prf d:/Qt/2010.02.1/qt/mkspecs/features/yacc.prf d:/Qt/2010.02.1/qt/mkspecs/features/lex.prf d:/Qt/2010.02.1/qt/mkspecs/features/include_source_dir.prf PLUGINSPECS HEADERS RESOURCES IMAGES SOURCES OBJECTIVE_SOURCES FORMS YACCSOURCES YACCSOURCES LEXSOURCES
clean: compiler_clean
-$(DEL_FILE) debug/hitlplugin.o debug/hitlwidget.o debug/hitloptionspage.o debug/hitlfactory.o debug/hitlconfiguration.o debug/hitlgadget.o debug/simulator.o debug/il2simulator.o debug/fgsimulator.o debug/moc_hitlwidget.o debug/moc_hitloptionspage.o debug/moc_hitlfactory.o debug/moc_hitlconfiguration.o debug/moc_hitlgadget.o debug/moc_simulator.o debug/moc_fgsimulator.o debug/moc_il2simulator.o debug/qrc_hitlresources.o
-$(DEL_FILE) d:/Qt/QtProjects/OpenPilot/OpenPilot/trunk/ground/lib/openpilotgcs/plugins/OpenPilot/libHITLNEWd.a
distclean: clean
-$(DEL_FILE) $(DESTDIR_TARGET)
-$(DEL_FILE) Makefile.Debug
mocclean: compiler_moc_header_clean compiler_moc_source_clean
mocables: compiler_moc_header_make_all compiler_moc_source_make_all
compiler_copy2build_make_all: ../../../lib/openpilotgcs/plugins/OpenPilot/HITLNEW.pluginspec
compiler_copy2build_clean:
-$(DEL_FILE) ../../../lib/openpilotgcs/plugins/OpenPilot/HITLNEW.pluginspec
../../../lib/openpilotgcs/plugins/OpenPilot/HITLNEW.pluginspec: HITLNEW.pluginspec
cp HITLNEW.pluginspec ../../../lib/openpilotgcs/plugins/OpenPilot/HITLNEW.pluginspec
compiler_moc_header_make_all: debug/moc_hitlwidget.cpp debug/moc_hitloptionspage.cpp debug/moc_hitlfactory.cpp debug/moc_hitlconfiguration.cpp debug/moc_hitlgadget.cpp debug/moc_simulator.cpp debug/moc_fgsimulator.cpp debug/moc_il2simulator.cpp
compiler_moc_header_clean:
-$(DEL_FILE) debug/moc_hitlwidget.cpp debug/moc_hitloptionspage.cpp debug/moc_hitlfactory.cpp debug/moc_hitlconfiguration.cpp debug/moc_hitlgadget.cpp debug/moc_simulator.cpp debug/moc_fgsimulator.cpp debug/moc_il2simulator.cpp
debug/moc_hitlwidget.cpp: simulator.h \
../uavtalk/telemetrymanager.h \
../uavtalk/uavtalk_global.h \
../uavtalk/telemetrymonitor.h \
../uavobjects/uavobjectmanager.h \
../uavobjects/uavobjects_global.h \
../uavobjects/uavobject.h \
../uavobjects/uavobjectfield.h \
../uavobjects/uavdataobject.h \
../uavobjects/uavmetaobject.h \
../uavobjects/gcstelemetrystats.h \
../uavobjects/flighttelemetrystats.h \
../uavobjects/systemstats.h \
../uavtalk/telemetry.h \
../uavtalk/uavtalk.h \
../uavobjects/actuatordesired.h \
../uavobjects/altitudeactual.h \
../uavobjects/attitudeactual.h \
../uavobjects/positionactual.h \
hitlwidget.h
d:/Qt/2010.02.1/qt/bin/moc.exe $(DEFINES) $(INCPATH) -D__GNUC__ -DWIN32 hitlwidget.h -o debug/moc_hitlwidget.cpp
debug/moc_hitloptionspage.cpp: ../coreplugin/dialogs/ioptionspage.h \
../coreplugin/core_global.h \
hitloptionspage.h
d:/Qt/2010.02.1/qt/bin/moc.exe $(DEFINES) $(INCPATH) -D__GNUC__ -DWIN32 hitloptionspage.h -o debug/moc_hitloptionspage.cpp
debug/moc_hitlfactory.cpp: ../coreplugin/iuavgadgetfactory.h \
../coreplugin/core_global.h \
hitlfactory.h
d:/Qt/2010.02.1/qt/bin/moc.exe $(DEFINES) $(INCPATH) -D__GNUC__ -DWIN32 hitlfactory.h -o debug/moc_hitlfactory.cpp
debug/moc_hitlconfiguration.cpp: ../coreplugin/iuavgadgetconfiguration.h \
../coreplugin/core_global.h \
simulator.h \
../uavtalk/telemetrymanager.h \
../uavtalk/uavtalk_global.h \
../uavtalk/telemetrymonitor.h \
../uavobjects/uavobjectmanager.h \
../uavobjects/uavobjects_global.h \
../uavobjects/uavobject.h \
../uavobjects/uavobjectfield.h \
../uavobjects/uavdataobject.h \
../uavobjects/uavmetaobject.h \
../uavobjects/gcstelemetrystats.h \
../uavobjects/flighttelemetrystats.h \
../uavobjects/systemstats.h \
../uavtalk/telemetry.h \
../uavtalk/uavtalk.h \
../uavobjects/actuatordesired.h \
../uavobjects/altitudeactual.h \
../uavobjects/attitudeactual.h \
../uavobjects/positionactual.h \
hitlconfiguration.h
d:/Qt/2010.02.1/qt/bin/moc.exe $(DEFINES) $(INCPATH) -D__GNUC__ -DWIN32 hitlconfiguration.h -o debug/moc_hitlconfiguration.cpp
debug/moc_hitlgadget.cpp: ../coreplugin/iuavgadget.h \
../coreplugin/icontext.h \
../coreplugin/core_global.h \
hitlwidget.h \
simulator.h \
../uavtalk/telemetrymanager.h \
../uavtalk/uavtalk_global.h \
../uavtalk/telemetrymonitor.h \
../uavobjects/uavobjectmanager.h \
../uavobjects/uavobjects_global.h \
../uavobjects/uavobject.h \
../uavobjects/uavobjectfield.h \
../uavobjects/uavdataobject.h \
../uavobjects/uavmetaobject.h \
../uavobjects/gcstelemetrystats.h \
../uavobjects/flighttelemetrystats.h \
../uavobjects/systemstats.h \
../uavtalk/telemetry.h \
../uavtalk/uavtalk.h \
../uavobjects/actuatordesired.h \
../uavobjects/altitudeactual.h \
../uavobjects/attitudeactual.h \
../uavobjects/positionactual.h \
hitlgadget.h
d:/Qt/2010.02.1/qt/bin/moc.exe $(DEFINES) $(INCPATH) -D__GNUC__ -DWIN32 hitlgadget.h -o debug/moc_hitlgadget.cpp
debug/moc_simulator.cpp: ../uavtalk/telemetrymanager.h \
../uavtalk/uavtalk_global.h \
../uavtalk/telemetrymonitor.h \
../uavobjects/uavobjectmanager.h \
../uavobjects/uavobjects_global.h \
../uavobjects/uavobject.h \
../uavobjects/uavobjectfield.h \
../uavobjects/uavdataobject.h \
../uavobjects/uavmetaobject.h \
../uavobjects/gcstelemetrystats.h \
../uavobjects/flighttelemetrystats.h \
../uavobjects/systemstats.h \
../uavtalk/telemetry.h \
../uavtalk/uavtalk.h \
../uavobjects/actuatordesired.h \
../uavobjects/altitudeactual.h \
../uavobjects/attitudeactual.h \
../uavobjects/positionactual.h \
simulator.h
d:/Qt/2010.02.1/qt/bin/moc.exe $(DEFINES) $(INCPATH) -D__GNUC__ -DWIN32 simulator.h -o debug/moc_simulator.cpp
debug/moc_fgsimulator.cpp: Simulator.h \
../uavtalk/telemetrymanager.h \
../uavtalk/uavtalk_global.h \
../uavtalk/telemetrymonitor.h \
../uavobjects/uavobjectmanager.h \
../uavobjects/uavobjects_global.h \
../uavobjects/uavobject.h \
../uavobjects/uavobjectfield.h \
../uavobjects/uavdataobject.h \
../uavobjects/uavmetaobject.h \
../uavobjects/gcstelemetrystats.h \
../uavobjects/flighttelemetrystats.h \
../uavobjects/systemstats.h \
../uavtalk/telemetry.h \
../uavtalk/uavtalk.h \
../uavobjects/actuatordesired.h \
../uavobjects/altitudeactual.h \
../uavobjects/attitudeactual.h \
../uavobjects/positionactual.h \
ui_fgoptionspage.h \
../../libs/utils/pathchooser.h \
../../libs/utils/utils_global.h \
fgsimulator.h
d:/Qt/2010.02.1/qt/bin/moc.exe $(DEFINES) $(INCPATH) -D__GNUC__ -DWIN32 fgsimulator.h -o debug/moc_fgsimulator.cpp
debug/moc_il2simulator.cpp: simulator.h \
../uavtalk/telemetrymanager.h \
../uavtalk/uavtalk_global.h \
../uavtalk/telemetrymonitor.h \
../uavobjects/uavobjectmanager.h \
../uavobjects/uavobjects_global.h \
../uavobjects/uavobject.h \
../uavobjects/uavobjectfield.h \
../uavobjects/uavdataobject.h \
../uavobjects/uavmetaobject.h \
../uavobjects/gcstelemetrystats.h \
../uavobjects/flighttelemetrystats.h \
../uavobjects/systemstats.h \
../uavtalk/telemetry.h \
../uavtalk/uavtalk.h \
../uavobjects/actuatordesired.h \
../uavobjects/altitudeactual.h \
../uavobjects/attitudeactual.h \
../uavobjects/positionactual.h \
il2simulator.h
d:/Qt/2010.02.1/qt/bin/moc.exe $(DEFINES) $(INCPATH) -D__GNUC__ -DWIN32 il2simulator.h -o debug/moc_il2simulator.cpp
compiler_rcc_make_all: debug/qrc_hitlresources.cpp
compiler_rcc_clean:
-$(DEL_FILE) debug/qrc_hitlresources.cpp
debug/qrc_hitlresources.cpp: hitlresources.qrc \
opfgprotocol.xml \
images/arrow-down.png \
images/arrow-up.png \
images/scrollbarvertical_down_arrow.png \
images/scrollbarvertical_up_arrow.png \
images/arrow-up2.png \
images/arrow-down2.png
d:/Qt/2010.02.1/qt/bin/rcc.exe -name hitlresources hitlresources.qrc -o debug/qrc_hitlresources.cpp
compiler_image_collection_make_all: qmake_image_collection.cpp
compiler_image_collection_clean:
-$(DEL_FILE) qmake_image_collection.cpp
compiler_moc_source_make_all:
compiler_moc_source_clean:
compiler_uic_make_all: ui_hitloptionspage.h ui_hitlwidget.h
compiler_uic_clean:
-$(DEL_FILE) ui_hitloptionspage.h ui_hitlwidget.h
ui_hitloptionspage.h: hitloptionspage.ui \
../../libs/utils/pathchooser.h \
../../libs/utils/utils_global.h
d:/Qt/2010.02.1/qt/bin/uic.exe hitloptionspage.ui -o ui_hitloptionspage.h
ui_hitlwidget.h: hitlwidget.ui
d:/Qt/2010.02.1/qt/bin/uic.exe hitlwidget.ui -o ui_hitlwidget.h
compiler_yacc_decl_make_all:
compiler_yacc_decl_clean:
compiler_yacc_impl_make_all:
compiler_yacc_impl_clean:
compiler_lex_make_all:
compiler_lex_clean:
compiler_clean: compiler_copy2build_clean compiler_moc_header_clean compiler_rcc_clean compiler_uic_clean
####### Compile
debug/hitlplugin.o: hitlplugin.cpp hitlplugin.h \
../../libs/extensionsystem/iplugin.h \
../../libs/extensionsystem/extensionsystem_global.h \
Simulator.h \
../uavtalk/telemetrymanager.h \
../uavtalk/uavtalk_global.h \
../uavtalk/telemetrymonitor.h \
../uavobjects/uavobjectmanager.h \
../uavobjects/uavobjects_global.h \
../uavobjects/uavobject.h \
../uavobjects/uavobjectfield.h \
../uavobjects/uavdataobject.h \
../uavobjects/uavmetaobject.h \
../uavobjects/gcstelemetrystats.h \
../uavobjects/flighttelemetrystats.h \
../uavobjects/systemstats.h \
../uavtalk/telemetry.h \
../uavtalk/uavtalk.h \
../uavobjects/actuatordesired.h \
../uavobjects/altitudeactual.h \
../uavobjects/attitudeactual.h \
../uavobjects/positionactual.h \
hitlfactory.h \
../coreplugin/iuavgadgetfactory.h \
../coreplugin/core_global.h \
../../libs/extensionsystem/pluginmanager.h \
../../libs/aggregation/aggregate.h \
../../libs/aggregation/aggregation_global.h \
fgsimulator.h \
ui_fgoptionspage.h \
../../libs/utils/pathchooser.h \
../../libs/utils/utils_global.h \
il2simulator.h \
simulator.h
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o debug/hitlplugin.o hitlplugin.cpp
debug/hitlwidget.o: hitlwidget.cpp hitlwidget.h \
simulator.h \
../uavtalk/telemetrymanager.h \
../uavtalk/uavtalk_global.h \
../uavtalk/telemetrymonitor.h \
../uavobjects/uavobjectmanager.h \
../uavobjects/uavobjects_global.h \
../uavobjects/uavobject.h \
../uavobjects/uavobjectfield.h \
../uavobjects/uavdataobject.h \
../uavobjects/uavmetaobject.h \
../uavobjects/gcstelemetrystats.h \
../uavobjects/flighttelemetrystats.h \
../uavobjects/systemstats.h \
../uavtalk/telemetry.h \
../uavtalk/uavtalk.h \
../uavobjects/actuatordesired.h \
../uavobjects/altitudeactual.h \
../uavobjects/attitudeactual.h \
../uavobjects/positionactual.h \
ui_hitlwidget.h \
HITLPlugin.h \
../../libs/extensionsystem/iplugin.h \
../../libs/extensionsystem/extensionsystem_global.h \
Simulator.h \
../coreplugin/icore.h \
../coreplugin/core_global.h \
../coreplugin/threadmanager.h
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o debug/hitlwidget.o hitlwidget.cpp
debug/hitloptionspage.o: hitloptionspage.cpp hitloptionspage.h \
../coreplugin/dialogs/ioptionspage.h \
../coreplugin/core_global.h \
hitlconfiguration.h \
../coreplugin/iuavgadgetconfiguration.h \
simulator.h \
../uavtalk/telemetrymanager.h \
../uavtalk/uavtalk_global.h \
../uavtalk/telemetrymonitor.h \
../uavobjects/uavobjectmanager.h \
../uavobjects/uavobjects_global.h \
../uavobjects/uavobject.h \
../uavobjects/uavobjectfield.h \
../uavobjects/uavdataobject.h \
../uavobjects/uavmetaobject.h \
../uavobjects/gcstelemetrystats.h \
../uavobjects/flighttelemetrystats.h \
../uavobjects/systemstats.h \
../uavtalk/telemetry.h \
../uavtalk/uavtalk.h \
../uavobjects/actuatordesired.h \
../uavobjects/altitudeactual.h \
../uavobjects/attitudeactual.h \
../uavobjects/positionactual.h \
ui_hitloptionspage.h \
../../libs/utils/pathchooser.h \
../../libs/utils/utils_global.h \
hitlplugin.h \
../../libs/extensionsystem/iplugin.h \
../../libs/extensionsystem/extensionsystem_global.h \
Simulator.h
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o debug/hitloptionspage.o hitloptionspage.cpp
debug/hitlfactory.o: hitlfactory.cpp hitlfactory.h \
../coreplugin/iuavgadgetfactory.h \
../coreplugin/core_global.h \
hitlwidget.h \
simulator.h \
../uavtalk/telemetrymanager.h \
../uavtalk/uavtalk_global.h \
../uavtalk/telemetrymonitor.h \
../uavobjects/uavobjectmanager.h \
../uavobjects/uavobjects_global.h \
../uavobjects/uavobject.h \
../uavobjects/uavobjectfield.h \
../uavobjects/uavdataobject.h \
../uavobjects/uavmetaobject.h \
../uavobjects/gcstelemetrystats.h \
../uavobjects/flighttelemetrystats.h \
../uavobjects/systemstats.h \
../uavtalk/telemetry.h \
../uavtalk/uavtalk.h \
../uavobjects/actuatordesired.h \
../uavobjects/altitudeactual.h \
../uavobjects/attitudeactual.h \
../uavobjects/positionactual.h \
hitlgadget.h \
../coreplugin/iuavgadget.h \
../coreplugin/icontext.h \
hitlconfiguration.h \
../coreplugin/iuavgadgetconfiguration.h \
hitloptionspage.h \
../coreplugin/dialogs/ioptionspage.h
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o debug/hitlfactory.o hitlfactory.cpp
debug/hitlconfiguration.o: hitlconfiguration.cpp hitlconfiguration.h \
../coreplugin/iuavgadgetconfiguration.h \
../coreplugin/core_global.h \
simulator.h \
../uavtalk/telemetrymanager.h \
../uavtalk/uavtalk_global.h \
../uavtalk/telemetrymonitor.h \
../uavobjects/uavobjectmanager.h \
../uavobjects/uavobjects_global.h \
../uavobjects/uavobject.h \
../uavobjects/uavobjectfield.h \
../uavobjects/uavdataobject.h \
../uavobjects/uavmetaobject.h \
../uavobjects/gcstelemetrystats.h \
../uavobjects/flighttelemetrystats.h \
../uavobjects/systemstats.h \
../uavtalk/telemetry.h \
../uavtalk/uavtalk.h \
../uavobjects/actuatordesired.h \
../uavobjects/altitudeactual.h \
../uavobjects/attitudeactual.h \
../uavobjects/positionactual.h
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o debug/hitlconfiguration.o hitlconfiguration.cpp
debug/hitlgadget.o: hitlgadget.cpp hitlgadget.h \
../coreplugin/iuavgadget.h \
../coreplugin/icontext.h \
../coreplugin/core_global.h \
hitlwidget.h \
simulator.h \
../uavtalk/telemetrymanager.h \
../uavtalk/uavtalk_global.h \
../uavtalk/telemetrymonitor.h \
../uavobjects/uavobjectmanager.h \
../uavobjects/uavobjects_global.h \
../uavobjects/uavobject.h \
../uavobjects/uavobjectfield.h \
../uavobjects/uavdataobject.h \
../uavobjects/uavmetaobject.h \
../uavobjects/gcstelemetrystats.h \
../uavobjects/flighttelemetrystats.h \
../uavobjects/systemstats.h \
../uavtalk/telemetry.h \
../uavtalk/uavtalk.h \
../uavobjects/actuatordesired.h \
../uavobjects/altitudeactual.h \
../uavobjects/attitudeactual.h \
../uavobjects/positionactual.h \
hitlconfiguration.h \
../coreplugin/iuavgadgetconfiguration.h
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o debug/hitlgadget.o hitlgadget.cpp
debug/simulator.o: simulator.cpp simulator.h \
../uavtalk/telemetrymanager.h \
../uavtalk/uavtalk_global.h \
../uavtalk/telemetrymonitor.h \
../uavobjects/uavobjectmanager.h \
../uavobjects/uavobjects_global.h \
../uavobjects/uavobject.h \
../uavobjects/uavobjectfield.h \
../uavobjects/uavdataobject.h \
../uavobjects/uavmetaobject.h \
../uavobjects/gcstelemetrystats.h \
../uavobjects/flighttelemetrystats.h \
../uavobjects/systemstats.h \
../uavtalk/telemetry.h \
../uavtalk/uavtalk.h \
../uavobjects/actuatordesired.h \
../uavobjects/altitudeactual.h \
../uavobjects/attitudeactual.h \
../uavobjects/positionactual.h \
../../libs/extensionsystem/pluginmanager.h \
../../libs/extensionsystem/extensionsystem_global.h \
../../libs/aggregation/aggregate.h \
../../libs/aggregation/aggregation_global.h \
../coreplugin/icore.h \
../coreplugin/core_global.h \
../coreplugin/threadmanager.h
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o debug/simulator.o simulator.cpp
debug/il2simulator.o: il2simulator.cpp il2simulator.h \
simulator.h \
../uavtalk/telemetrymanager.h \
../uavtalk/uavtalk_global.h \
../uavtalk/telemetrymonitor.h \
../uavobjects/uavobjectmanager.h \
../uavobjects/uavobjects_global.h \
../uavobjects/uavobject.h \
../uavobjects/uavobjectfield.h \
../uavobjects/uavdataobject.h \
../uavobjects/uavmetaobject.h \
../uavobjects/gcstelemetrystats.h \
../uavobjects/flighttelemetrystats.h \
../uavobjects/systemstats.h \
../uavtalk/telemetry.h \
../uavtalk/uavtalk.h \
../uavobjects/actuatordesired.h \
../uavobjects/altitudeactual.h \
../uavobjects/attitudeactual.h \
../uavobjects/positionactual.h \
../../libs/extensionsystem/pluginmanager.h \
../../libs/extensionsystem/extensionsystem_global.h \
../../libs/aggregation/aggregate.h \
../../libs/aggregation/aggregation_global.h \
../coreplugin/icore.h \
../coreplugin/core_global.h \
../coreplugin/threadmanager.h
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o debug/il2simulator.o il2simulator.cpp
debug/fgsimulator.o: fgsimulator.cpp fgsimulator.h \
Simulator.h \
../uavtalk/telemetrymanager.h \
../uavtalk/uavtalk_global.h \
../uavtalk/telemetrymonitor.h \
../uavobjects/uavobjectmanager.h \
../uavobjects/uavobjects_global.h \
../uavobjects/uavobject.h \
../uavobjects/uavobjectfield.h \
../uavobjects/uavdataobject.h \
../uavobjects/uavmetaobject.h \
../uavobjects/gcstelemetrystats.h \
../uavobjects/flighttelemetrystats.h \
../uavobjects/systemstats.h \
../uavtalk/telemetry.h \
../uavtalk/uavtalk.h \
../uavobjects/actuatordesired.h \
../uavobjects/altitudeactual.h \
../uavobjects/attitudeactual.h \
../uavobjects/positionactual.h \
ui_fgoptionspage.h \
../../libs/utils/pathchooser.h \
../../libs/utils/utils_global.h \
../../libs/extensionsystem/pluginmanager.h \
../../libs/extensionsystem/extensionsystem_global.h \
../../libs/aggregation/aggregate.h \
../../libs/aggregation/aggregation_global.h \
../coreplugin/icore.h \
../coreplugin/core_global.h \
../coreplugin/threadmanager.h
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o debug/fgsimulator.o fgsimulator.cpp
debug/moc_hitlwidget.o: debug/moc_hitlwidget.cpp
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o debug/moc_hitlwidget.o debug/moc_hitlwidget.cpp
debug/moc_hitloptionspage.o: debug/moc_hitloptionspage.cpp
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o debug/moc_hitloptionspage.o debug/moc_hitloptionspage.cpp
debug/moc_hitlfactory.o: debug/moc_hitlfactory.cpp
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o debug/moc_hitlfactory.o debug/moc_hitlfactory.cpp
debug/moc_hitlconfiguration.o: debug/moc_hitlconfiguration.cpp
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o debug/moc_hitlconfiguration.o debug/moc_hitlconfiguration.cpp
debug/moc_hitlgadget.o: debug/moc_hitlgadget.cpp
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o debug/moc_hitlgadget.o debug/moc_hitlgadget.cpp
debug/moc_simulator.o: debug/moc_simulator.cpp
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o debug/moc_simulator.o debug/moc_simulator.cpp
debug/moc_fgsimulator.o: debug/moc_fgsimulator.cpp
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o debug/moc_fgsimulator.o debug/moc_fgsimulator.cpp
debug/moc_il2simulator.o: debug/moc_il2simulator.cpp
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o debug/moc_il2simulator.o debug/moc_il2simulator.cpp
debug/qrc_hitlresources.o: debug/qrc_hitlresources.cpp
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o debug/qrc_hitlresources.o debug/qrc_hitlresources.cpp
####### Install
install_target: first FORCE
@$(CHK_DIR_EXISTS) $(INSTALL_ROOT)/lib/opnepilotgcs/plugins/OpenPilot/ || $(MKDIR) $(INSTALL_ROOT)/lib/opnepilotgcs/plugins/OpenPilot/
-$(INSTALL_FILE) "$(DESTDIR_TARGET)" "$(INSTALL_ROOT)/lib/opnepilotgcs/plugins/OpenPilot/$(TARGET)"
uninstall_target: FORCE
-$(DEL_FILE) "$(INSTALL_ROOT)/lib/opnepilotgcs/plugins/OpenPilot/$(TARGET)"
-$(DEL_DIR) $(INSTALL_ROOT)/lib/opnepilotgcs/plugins/OpenPilot/
install: install_target FORCE
uninstall: uninstall_target FORCE
FORCE:

View File

@ -1,652 +0,0 @@
#############################################################################
# Makefile for building: HITLNEW
# Generated by qmake (2.01a) (Qt 4.6.2) on: ?? 28. ??? 19:28:31 2010
# Project: hitlnew.pro
# Template: lib
#############################################################################
####### Compiler, tools and options
CC = gcc
CXX = g++
DEFINES = -DUNICODE -DQT_LARGEFILE_SUPPORT -DGCS_LIBRARY_BASENAME=\"lib\" -DQT_NO_CAST_TO_ASCII -DQT_DLL -DQT_NO_DEBUG -DQT_PLUGIN -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT
CFLAGS = -O2 -Wall $(DEFINES)
CXXFLAGS = -O2 -frtti -fexceptions -mthreads -Wall $(DEFINES)
INCPATH = -I'd:/Qt/2010.02.1/qt/include/QtCore' -I'd:/Qt/2010.02.1/qt/include/QtNetwork' -I'd:/Qt/2010.02.1/qt/include/QtGui' -I'd:/Qt/2010.02.1/qt/include' -I'../../libs' -I'../../plugins' -I'../../libs/libqxt/src/core' -I'../../libs/libqxt/src/core/logengines' -I'../../libs/libqxt/src/core' -I'../../libs/libqxt/src/core/logengines' -I'../../libs/libqxt/src/core' -I'../../libs/libqxt/src/core/logengines' -I'../../libs/libqxt/src/core' -I'../../libs/libqxt/src/core/logengines' -I'd:/Qt/2010.02.1/qt/include/ActiveQt' -I'release' -I'.' -I'd:/Qt/2010.02.1/qt/mkspecs/win32-g++'
LINK = g++
LFLAGS = -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc -Wl,-s -mthreads -Wl -shared -Wl,--out-implib,d:/Qt/QtProjects/OpenPilot/OpenPilot/trunk/ground/lib/openpilotgcs/plugins/OpenPilot/libHITLNEW.a
LIBS = -L'd:/Qt/2010.02.1/qt/lib' -LD:/Qt/QtProjects/OpenPilot/OpenPilot/trunk/ground/lib/openpilotgcs -LD:/Qt/QtProjects/OpenPilot/OpenPilot/trunk/ground/lib/openpilotgcs/plugins/OpenPilot -lAggregation -lExtensionSystem -lUtils -lQxtCore -lQExtSerialPort -lCore -lUAVObjects -lQxtCore -lQExtSerialPort -lQxtCore -lQExtSerialPort -lUAVTalk -lQxtCore -lQExtSerialPort -lQtGui4 -lQtNetwork4 -lQtCore4
QMAKE = d:/qt/2010.02.1/qt/bin/qmake.exe
IDC = d:/Qt/2010.02.1/qt/bin/idc.exe
IDL = midl
ZIP = zip -r -9
DEF_FILE =
RES_FILE =
COPY = cp
COPY_FILE = $(COPY)
COPY_DIR = xcopy /s /q /y /i
DEL_FILE = rm
DEL_DIR = rmdir
MOVE = mv
CHK_DIR_EXISTS= test -d
MKDIR = mkdir
INSTALL_FILE = $(COPY_FILE)
INSTALL_PROGRAM = $(COPY_FILE)
INSTALL_DIR = $(COPY_DIR)
####### Output directory
OBJECTS_DIR = release/
####### Files
SOURCES = hitlplugin.cpp \
hitlwidget.cpp \
hitloptionspage.cpp \
hitlfactory.cpp \
hitlconfiguration.cpp \
hitlgadget.cpp \
simulator.cpp \
il2simulator.cpp \
fgsimulator.cpp release/moc_hitlwidget.cpp \
release/moc_hitloptionspage.cpp \
release/moc_hitlfactory.cpp \
release/moc_hitlconfiguration.cpp \
release/moc_hitlgadget.cpp \
release/moc_simulator.cpp \
release/moc_fgsimulator.cpp \
release/moc_il2simulator.cpp \
release/qrc_hitlresources.cpp
OBJECTS = release/hitlplugin.o \
release/hitlwidget.o \
release/hitloptionspage.o \
release/hitlfactory.o \
release/hitlconfiguration.o \
release/hitlgadget.o \
release/simulator.o \
release/il2simulator.o \
release/fgsimulator.o \
release/moc_hitlwidget.o \
release/moc_hitloptionspage.o \
release/moc_hitlfactory.o \
release/moc_hitlconfiguration.o \
release/moc_hitlgadget.o \
release/moc_simulator.o \
release/moc_fgsimulator.o \
release/moc_il2simulator.o \
release/qrc_hitlresources.o
DIST =
QMAKE_TARGET = HITLNEW
DESTDIR = ../../../lib/openpilotgcs/plugins/OpenPilot/ #avoid trailing-slash linebreak
TARGET = HITLNEW.dll
DESTDIR_TARGET = ../../../lib/openpilotgcs/plugins/OpenPilot/HITLNEW.dll
####### Implicit rules
.SUFFIXES: .cpp .cc .cxx .c
.cpp.o:
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<
.cc.o:
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<
.cxx.o:
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<
.c.o:
$(CC) -c $(CFLAGS) $(INCPATH) -o $@ $<
####### Build rules
first: all
all: Makefile.Release $(DESTDIR_TARGET)
$(DESTDIR_TARGET): ../../../lib/openpilotgcs/plugins/OpenPilot/HITLNEW.pluginspec ui_hitloptionspage.h ui_hitlwidget.h $(OBJECTS)
$(LINK) $(LFLAGS) -o $(DESTDIR_TARGET) object_script.HITLNEW.Release $(LIBS)
qmake: FORCE
@$(QMAKE) -spec d:/Qt/2010.02.1/qt/mkspecs/win32-g++ -win32 -o Makefile.Release hitlnew.pro
dist:
$(ZIP) HITLNEW.zip $(SOURCES) $(DIST) hitlnew.pro d:/Qt/2010.02.1/qt/mkspecs/qconfig.pri d:/Qt/2010.02.1/qt/mkspecs/features/qt_functions.prf d:/Qt/2010.02.1/qt/mkspecs/features/qt_config.prf d:/Qt/2010.02.1/qt/mkspecs/features/exclusive_builds.prf d:/Qt/2010.02.1/qt/mkspecs/features/default_pre.prf d:/Qt/2010.02.1/qt/mkspecs/features/win32/default_pre.prf ../../../openpilotgcs.pri ../../openpilotgcsplugin.pri ../../libs/aggregation/aggregation.pri ../../libs/extensionsystem/extensionsystem_dependencies.pri ../../libs/extensionsystem/extensionsystem.pri ../../libs/utils/utils.pri ../../libs/libqxt/libqxt.pri ../../libs/qextserialport/qextserialport.pri ../coreplugin/coreplugin_dependencies.pri ../coreplugin/coreplugin.pri ../../libs/utils/utils.pri ../uavobjects/uavobjects_dependencies.pri ../uavobjects/uavobjects.pri ../uavobjects/uavobjects.pri ../coreplugin/coreplugin.pri ../../libs/utils/utils.pri ../uavtalk/uavtalk_dependencies.pri ../uavtalk/uavtalk.pri ../coreplugin/coreplugin.pri ../../libs/utils/utils.pri hitlnew_dependencies.pri d:/Qt/2010.02.1/qt/mkspecs/features/release.prf d:/Qt/2010.02.1/qt/mkspecs/features/debug_and_release.prf d:/Qt/2010.02.1/qt/mkspecs/features/default_post.prf d:/Qt/2010.02.1/qt/mkspecs/features/win32/default_post.prf d:/Qt/2010.02.1/qt/mkspecs/features/build_pass.prf d:/Qt/2010.02.1/qt/mkspecs/features/win32/rtti.prf d:/Qt/2010.02.1/qt/mkspecs/features/win32/exceptions.prf d:/Qt/2010.02.1/qt/mkspecs/features/win32/stl.prf d:/Qt/2010.02.1/qt/mkspecs/features/shared.prf d:/Qt/2010.02.1/qt/mkspecs/features/dll.prf d:/Qt/2010.02.1/qt/mkspecs/features/warn_on.prf d:/Qt/2010.02.1/qt/mkspecs/features/qt.prf d:/Qt/2010.02.1/qt/mkspecs/features/win32/thread.prf d:/Qt/2010.02.1/qt/mkspecs/features/moc.prf d:/Qt/2010.02.1/qt/mkspecs/features/win32/windows.prf d:/Qt/2010.02.1/qt/mkspecs/features/resources.prf d:/Qt/2010.02.1/qt/mkspecs/features/uic.prf d:/Qt/2010.02.1/qt/mkspecs/features/yacc.prf d:/Qt/2010.02.1/qt/mkspecs/features/lex.prf d:/Qt/2010.02.1/qt/mkspecs/features/include_source_dir.prf PLUGINSPECS HEADERS RESOURCES IMAGES SOURCES OBJECTIVE_SOURCES FORMS YACCSOURCES YACCSOURCES LEXSOURCES
clean: compiler_clean
-$(DEL_FILE) release/hitlplugin.o release/hitlwidget.o release/hitloptionspage.o release/hitlfactory.o release/hitlconfiguration.o release/hitlgadget.o release/simulator.o release/il2simulator.o release/fgsimulator.o release/moc_hitlwidget.o release/moc_hitloptionspage.o release/moc_hitlfactory.o release/moc_hitlconfiguration.o release/moc_hitlgadget.o release/moc_simulator.o release/moc_fgsimulator.o release/moc_il2simulator.o release/qrc_hitlresources.o
-$(DEL_FILE) d:/Qt/QtProjects/OpenPilot/OpenPilot/trunk/ground/lib/openpilotgcs/plugins/OpenPilot/libHITLNEW.a
distclean: clean
-$(DEL_FILE) $(DESTDIR_TARGET)
-$(DEL_FILE) Makefile.Release
mocclean: compiler_moc_header_clean compiler_moc_source_clean
mocables: compiler_moc_header_make_all compiler_moc_source_make_all
compiler_copy2build_make_all: ../../../lib/openpilotgcs/plugins/OpenPilot/HITLNEW.pluginspec
compiler_copy2build_clean:
-$(DEL_FILE) ../../../lib/openpilotgcs/plugins/OpenPilot/HITLNEW.pluginspec
../../../lib/openpilotgcs/plugins/OpenPilot/HITLNEW.pluginspec: HITLNEW.pluginspec
cp HITLNEW.pluginspec ../../../lib/openpilotgcs/plugins/OpenPilot/HITLNEW.pluginspec
compiler_moc_header_make_all: release/moc_hitlwidget.cpp release/moc_hitloptionspage.cpp release/moc_hitlfactory.cpp release/moc_hitlconfiguration.cpp release/moc_hitlgadget.cpp release/moc_simulator.cpp release/moc_fgsimulator.cpp release/moc_il2simulator.cpp
compiler_moc_header_clean:
-$(DEL_FILE) release/moc_hitlwidget.cpp release/moc_hitloptionspage.cpp release/moc_hitlfactory.cpp release/moc_hitlconfiguration.cpp release/moc_hitlgadget.cpp release/moc_simulator.cpp release/moc_fgsimulator.cpp release/moc_il2simulator.cpp
release/moc_hitlwidget.cpp: simulator.h \
../uavtalk/telemetrymanager.h \
../uavtalk/uavtalk_global.h \
../uavtalk/telemetrymonitor.h \
../uavobjects/uavobjectmanager.h \
../uavobjects/uavobjects_global.h \
../uavobjects/uavobject.h \
../uavobjects/uavobjectfield.h \
../uavobjects/uavdataobject.h \
../uavobjects/uavmetaobject.h \
../uavobjects/gcstelemetrystats.h \
../uavobjects/flighttelemetrystats.h \
../uavobjects/systemstats.h \
../uavtalk/telemetry.h \
../uavtalk/uavtalk.h \
../uavobjects/actuatordesired.h \
../uavobjects/altitudeactual.h \
../uavobjects/attitudeactual.h \
../uavobjects/positionactual.h \
hitlwidget.h
d:/Qt/2010.02.1/qt/bin/moc.exe $(DEFINES) $(INCPATH) -D__GNUC__ -DWIN32 hitlwidget.h -o release/moc_hitlwidget.cpp
release/moc_hitloptionspage.cpp: ../coreplugin/dialogs/ioptionspage.h \
../coreplugin/core_global.h \
hitloptionspage.h
d:/Qt/2010.02.1/qt/bin/moc.exe $(DEFINES) $(INCPATH) -D__GNUC__ -DWIN32 hitloptionspage.h -o release/moc_hitloptionspage.cpp
release/moc_hitlfactory.cpp: ../coreplugin/iuavgadgetfactory.h \
../coreplugin/core_global.h \
hitlfactory.h
d:/Qt/2010.02.1/qt/bin/moc.exe $(DEFINES) $(INCPATH) -D__GNUC__ -DWIN32 hitlfactory.h -o release/moc_hitlfactory.cpp
release/moc_hitlconfiguration.cpp: ../coreplugin/iuavgadgetconfiguration.h \
../coreplugin/core_global.h \
simulator.h \
../uavtalk/telemetrymanager.h \
../uavtalk/uavtalk_global.h \
../uavtalk/telemetrymonitor.h \
../uavobjects/uavobjectmanager.h \
../uavobjects/uavobjects_global.h \
../uavobjects/uavobject.h \
../uavobjects/uavobjectfield.h \
../uavobjects/uavdataobject.h \
../uavobjects/uavmetaobject.h \
../uavobjects/gcstelemetrystats.h \
../uavobjects/flighttelemetrystats.h \
../uavobjects/systemstats.h \
../uavtalk/telemetry.h \
../uavtalk/uavtalk.h \
../uavobjects/actuatordesired.h \
../uavobjects/altitudeactual.h \
../uavobjects/attitudeactual.h \
../uavobjects/positionactual.h \
hitlconfiguration.h
d:/Qt/2010.02.1/qt/bin/moc.exe $(DEFINES) $(INCPATH) -D__GNUC__ -DWIN32 hitlconfiguration.h -o release/moc_hitlconfiguration.cpp
release/moc_hitlgadget.cpp: ../coreplugin/iuavgadget.h \
../coreplugin/icontext.h \
../coreplugin/core_global.h \
hitlwidget.h \
simulator.h \
../uavtalk/telemetrymanager.h \
../uavtalk/uavtalk_global.h \
../uavtalk/telemetrymonitor.h \
../uavobjects/uavobjectmanager.h \
../uavobjects/uavobjects_global.h \
../uavobjects/uavobject.h \
../uavobjects/uavobjectfield.h \
../uavobjects/uavdataobject.h \
../uavobjects/uavmetaobject.h \
../uavobjects/gcstelemetrystats.h \
../uavobjects/flighttelemetrystats.h \
../uavobjects/systemstats.h \
../uavtalk/telemetry.h \
../uavtalk/uavtalk.h \
../uavobjects/actuatordesired.h \
../uavobjects/altitudeactual.h \
../uavobjects/attitudeactual.h \
../uavobjects/positionactual.h \
hitlgadget.h
d:/Qt/2010.02.1/qt/bin/moc.exe $(DEFINES) $(INCPATH) -D__GNUC__ -DWIN32 hitlgadget.h -o release/moc_hitlgadget.cpp
release/moc_simulator.cpp: ../uavtalk/telemetrymanager.h \
../uavtalk/uavtalk_global.h \
../uavtalk/telemetrymonitor.h \
../uavobjects/uavobjectmanager.h \
../uavobjects/uavobjects_global.h \
../uavobjects/uavobject.h \
../uavobjects/uavobjectfield.h \
../uavobjects/uavdataobject.h \
../uavobjects/uavmetaobject.h \
../uavobjects/gcstelemetrystats.h \
../uavobjects/flighttelemetrystats.h \
../uavobjects/systemstats.h \
../uavtalk/telemetry.h \
../uavtalk/uavtalk.h \
../uavobjects/actuatordesired.h \
../uavobjects/altitudeactual.h \
../uavobjects/attitudeactual.h \
../uavobjects/positionactual.h \
simulator.h
d:/Qt/2010.02.1/qt/bin/moc.exe $(DEFINES) $(INCPATH) -D__GNUC__ -DWIN32 simulator.h -o release/moc_simulator.cpp
release/moc_fgsimulator.cpp: Simulator.h \
../uavtalk/telemetrymanager.h \
../uavtalk/uavtalk_global.h \
../uavtalk/telemetrymonitor.h \
../uavobjects/uavobjectmanager.h \
../uavobjects/uavobjects_global.h \
../uavobjects/uavobject.h \
../uavobjects/uavobjectfield.h \
../uavobjects/uavdataobject.h \
../uavobjects/uavmetaobject.h \
../uavobjects/gcstelemetrystats.h \
../uavobjects/flighttelemetrystats.h \
../uavobjects/systemstats.h \
../uavtalk/telemetry.h \
../uavtalk/uavtalk.h \
../uavobjects/actuatordesired.h \
../uavobjects/altitudeactual.h \
../uavobjects/attitudeactual.h \
../uavobjects/positionactual.h \
ui_fgoptionspage.h \
../../libs/utils/pathchooser.h \
../../libs/utils/utils_global.h \
fgsimulator.h
d:/Qt/2010.02.1/qt/bin/moc.exe $(DEFINES) $(INCPATH) -D__GNUC__ -DWIN32 fgsimulator.h -o release/moc_fgsimulator.cpp
release/moc_il2simulator.cpp: simulator.h \
../uavtalk/telemetrymanager.h \
../uavtalk/uavtalk_global.h \
../uavtalk/telemetrymonitor.h \
../uavobjects/uavobjectmanager.h \
../uavobjects/uavobjects_global.h \
../uavobjects/uavobject.h \
../uavobjects/uavobjectfield.h \
../uavobjects/uavdataobject.h \
../uavobjects/uavmetaobject.h \
../uavobjects/gcstelemetrystats.h \
../uavobjects/flighttelemetrystats.h \
../uavobjects/systemstats.h \
../uavtalk/telemetry.h \
../uavtalk/uavtalk.h \
../uavobjects/actuatordesired.h \
../uavobjects/altitudeactual.h \
../uavobjects/attitudeactual.h \
../uavobjects/positionactual.h \
il2simulator.h
d:/Qt/2010.02.1/qt/bin/moc.exe $(DEFINES) $(INCPATH) -D__GNUC__ -DWIN32 il2simulator.h -o release/moc_il2simulator.cpp
compiler_rcc_make_all: release/qrc_hitlresources.cpp
compiler_rcc_clean:
-$(DEL_FILE) release/qrc_hitlresources.cpp
release/qrc_hitlresources.cpp: hitlresources.qrc \
opfgprotocol.xml \
images/arrow-down.png \
images/arrow-up.png \
images/scrollbarvertical_down_arrow.png \
images/scrollbarvertical_up_arrow.png \
images/arrow-up2.png \
images/arrow-down2.png
d:/Qt/2010.02.1/qt/bin/rcc.exe -name hitlresources hitlresources.qrc -o release/qrc_hitlresources.cpp
compiler_image_collection_make_all: qmake_image_collection.cpp
compiler_image_collection_clean:
-$(DEL_FILE) qmake_image_collection.cpp
compiler_moc_source_make_all:
compiler_moc_source_clean:
compiler_uic_make_all: ui_hitloptionspage.h ui_hitlwidget.h
compiler_uic_clean:
-$(DEL_FILE) ui_hitloptionspage.h ui_hitlwidget.h
ui_hitloptionspage.h: hitloptionspage.ui \
../../libs/utils/pathchooser.h \
../../libs/utils/utils_global.h
d:/Qt/2010.02.1/qt/bin/uic.exe hitloptionspage.ui -o ui_hitloptionspage.h
ui_hitlwidget.h: hitlwidget.ui
d:/Qt/2010.02.1/qt/bin/uic.exe hitlwidget.ui -o ui_hitlwidget.h
compiler_yacc_decl_make_all:
compiler_yacc_decl_clean:
compiler_yacc_impl_make_all:
compiler_yacc_impl_clean:
compiler_lex_make_all:
compiler_lex_clean:
compiler_clean: compiler_copy2build_clean compiler_moc_header_clean compiler_rcc_clean compiler_uic_clean
####### Compile
release/hitlplugin.o: hitlplugin.cpp hitlplugin.h \
../../libs/extensionsystem/iplugin.h \
../../libs/extensionsystem/extensionsystem_global.h \
Simulator.h \
../uavtalk/telemetrymanager.h \
../uavtalk/uavtalk_global.h \
../uavtalk/telemetrymonitor.h \
../uavobjects/uavobjectmanager.h \
../uavobjects/uavobjects_global.h \
../uavobjects/uavobject.h \
../uavobjects/uavobjectfield.h \
../uavobjects/uavdataobject.h \
../uavobjects/uavmetaobject.h \
../uavobjects/gcstelemetrystats.h \
../uavobjects/flighttelemetrystats.h \
../uavobjects/systemstats.h \
../uavtalk/telemetry.h \
../uavtalk/uavtalk.h \
../uavobjects/actuatordesired.h \
../uavobjects/altitudeactual.h \
../uavobjects/attitudeactual.h \
../uavobjects/positionactual.h \
hitlfactory.h \
../coreplugin/iuavgadgetfactory.h \
../coreplugin/core_global.h \
../../libs/extensionsystem/pluginmanager.h \
../../libs/aggregation/aggregate.h \
../../libs/aggregation/aggregation_global.h \
fgsimulator.h \
ui_fgoptionspage.h \
../../libs/utils/pathchooser.h \
../../libs/utils/utils_global.h \
il2simulator.h \
simulator.h
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o release/hitlplugin.o hitlplugin.cpp
release/hitlwidget.o: hitlwidget.cpp hitlwidget.h \
simulator.h \
../uavtalk/telemetrymanager.h \
../uavtalk/uavtalk_global.h \
../uavtalk/telemetrymonitor.h \
../uavobjects/uavobjectmanager.h \
../uavobjects/uavobjects_global.h \
../uavobjects/uavobject.h \
../uavobjects/uavobjectfield.h \
../uavobjects/uavdataobject.h \
../uavobjects/uavmetaobject.h \
../uavobjects/gcstelemetrystats.h \
../uavobjects/flighttelemetrystats.h \
../uavobjects/systemstats.h \
../uavtalk/telemetry.h \
../uavtalk/uavtalk.h \
../uavobjects/actuatordesired.h \
../uavobjects/altitudeactual.h \
../uavobjects/attitudeactual.h \
../uavobjects/positionactual.h \
ui_hitlwidget.h \
HITLPlugin.h \
../../libs/extensionsystem/iplugin.h \
../../libs/extensionsystem/extensionsystem_global.h \
Simulator.h \
../coreplugin/icore.h \
../coreplugin/core_global.h \
../coreplugin/threadmanager.h
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o release/hitlwidget.o hitlwidget.cpp
release/hitloptionspage.o: hitloptionspage.cpp hitloptionspage.h \
../coreplugin/dialogs/ioptionspage.h \
../coreplugin/core_global.h \
hitlconfiguration.h \
../coreplugin/iuavgadgetconfiguration.h \
simulator.h \
../uavtalk/telemetrymanager.h \
../uavtalk/uavtalk_global.h \
../uavtalk/telemetrymonitor.h \
../uavobjects/uavobjectmanager.h \
../uavobjects/uavobjects_global.h \
../uavobjects/uavobject.h \
../uavobjects/uavobjectfield.h \
../uavobjects/uavdataobject.h \
../uavobjects/uavmetaobject.h \
../uavobjects/gcstelemetrystats.h \
../uavobjects/flighttelemetrystats.h \
../uavobjects/systemstats.h \
../uavtalk/telemetry.h \
../uavtalk/uavtalk.h \
../uavobjects/actuatordesired.h \
../uavobjects/altitudeactual.h \
../uavobjects/attitudeactual.h \
../uavobjects/positionactual.h \
ui_hitloptionspage.h \
../../libs/utils/pathchooser.h \
../../libs/utils/utils_global.h \
hitlplugin.h \
../../libs/extensionsystem/iplugin.h \
../../libs/extensionsystem/extensionsystem_global.h \
Simulator.h
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o release/hitloptionspage.o hitloptionspage.cpp
release/hitlfactory.o: hitlfactory.cpp hitlfactory.h \
../coreplugin/iuavgadgetfactory.h \
../coreplugin/core_global.h \
hitlwidget.h \
simulator.h \
../uavtalk/telemetrymanager.h \
../uavtalk/uavtalk_global.h \
../uavtalk/telemetrymonitor.h \
../uavobjects/uavobjectmanager.h \
../uavobjects/uavobjects_global.h \
../uavobjects/uavobject.h \
../uavobjects/uavobjectfield.h \
../uavobjects/uavdataobject.h \
../uavobjects/uavmetaobject.h \
../uavobjects/gcstelemetrystats.h \
../uavobjects/flighttelemetrystats.h \
../uavobjects/systemstats.h \
../uavtalk/telemetry.h \
../uavtalk/uavtalk.h \
../uavobjects/actuatordesired.h \
../uavobjects/altitudeactual.h \
../uavobjects/attitudeactual.h \
../uavobjects/positionactual.h \
hitlgadget.h \
../coreplugin/iuavgadget.h \
../coreplugin/icontext.h \
hitlconfiguration.h \
../coreplugin/iuavgadgetconfiguration.h \
hitloptionspage.h \
../coreplugin/dialogs/ioptionspage.h
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o release/hitlfactory.o hitlfactory.cpp
release/hitlconfiguration.o: hitlconfiguration.cpp hitlconfiguration.h \
../coreplugin/iuavgadgetconfiguration.h \
../coreplugin/core_global.h \
simulator.h \
../uavtalk/telemetrymanager.h \
../uavtalk/uavtalk_global.h \
../uavtalk/telemetrymonitor.h \
../uavobjects/uavobjectmanager.h \
../uavobjects/uavobjects_global.h \
../uavobjects/uavobject.h \
../uavobjects/uavobjectfield.h \
../uavobjects/uavdataobject.h \
../uavobjects/uavmetaobject.h \
../uavobjects/gcstelemetrystats.h \
../uavobjects/flighttelemetrystats.h \
../uavobjects/systemstats.h \
../uavtalk/telemetry.h \
../uavtalk/uavtalk.h \
../uavobjects/actuatordesired.h \
../uavobjects/altitudeactual.h \
../uavobjects/attitudeactual.h \
../uavobjects/positionactual.h
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o release/hitlconfiguration.o hitlconfiguration.cpp
release/hitlgadget.o: hitlgadget.cpp hitlgadget.h \
../coreplugin/iuavgadget.h \
../coreplugin/icontext.h \
../coreplugin/core_global.h \
hitlwidget.h \
simulator.h \
../uavtalk/telemetrymanager.h \
../uavtalk/uavtalk_global.h \
../uavtalk/telemetrymonitor.h \
../uavobjects/uavobjectmanager.h \
../uavobjects/uavobjects_global.h \
../uavobjects/uavobject.h \
../uavobjects/uavobjectfield.h \
../uavobjects/uavdataobject.h \
../uavobjects/uavmetaobject.h \
../uavobjects/gcstelemetrystats.h \
../uavobjects/flighttelemetrystats.h \
../uavobjects/systemstats.h \
../uavtalk/telemetry.h \
../uavtalk/uavtalk.h \
../uavobjects/actuatordesired.h \
../uavobjects/altitudeactual.h \
../uavobjects/attitudeactual.h \
../uavobjects/positionactual.h \
hitlconfiguration.h \
../coreplugin/iuavgadgetconfiguration.h
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o release/hitlgadget.o hitlgadget.cpp
release/simulator.o: simulator.cpp simulator.h \
../uavtalk/telemetrymanager.h \
../uavtalk/uavtalk_global.h \
../uavtalk/telemetrymonitor.h \
../uavobjects/uavobjectmanager.h \
../uavobjects/uavobjects_global.h \
../uavobjects/uavobject.h \
../uavobjects/uavobjectfield.h \
../uavobjects/uavdataobject.h \
../uavobjects/uavmetaobject.h \
../uavobjects/gcstelemetrystats.h \
../uavobjects/flighttelemetrystats.h \
../uavobjects/systemstats.h \
../uavtalk/telemetry.h \
../uavtalk/uavtalk.h \
../uavobjects/actuatordesired.h \
../uavobjects/altitudeactual.h \
../uavobjects/attitudeactual.h \
../uavobjects/positionactual.h \
../../libs/extensionsystem/pluginmanager.h \
../../libs/extensionsystem/extensionsystem_global.h \
../../libs/aggregation/aggregate.h \
../../libs/aggregation/aggregation_global.h \
../coreplugin/icore.h \
../coreplugin/core_global.h \
../coreplugin/threadmanager.h
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o release/simulator.o simulator.cpp
release/il2simulator.o: il2simulator.cpp il2simulator.h \
simulator.h \
../uavtalk/telemetrymanager.h \
../uavtalk/uavtalk_global.h \
../uavtalk/telemetrymonitor.h \
../uavobjects/uavobjectmanager.h \
../uavobjects/uavobjects_global.h \
../uavobjects/uavobject.h \
../uavobjects/uavobjectfield.h \
../uavobjects/uavdataobject.h \
../uavobjects/uavmetaobject.h \
../uavobjects/gcstelemetrystats.h \
../uavobjects/flighttelemetrystats.h \
../uavobjects/systemstats.h \
../uavtalk/telemetry.h \
../uavtalk/uavtalk.h \
../uavobjects/actuatordesired.h \
../uavobjects/altitudeactual.h \
../uavobjects/attitudeactual.h \
../uavobjects/positionactual.h \
../../libs/extensionsystem/pluginmanager.h \
../../libs/extensionsystem/extensionsystem_global.h \
../../libs/aggregation/aggregate.h \
../../libs/aggregation/aggregation_global.h \
../coreplugin/icore.h \
../coreplugin/core_global.h \
../coreplugin/threadmanager.h
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o release/il2simulator.o il2simulator.cpp
release/fgsimulator.o: fgsimulator.cpp fgsimulator.h \
Simulator.h \
../uavtalk/telemetrymanager.h \
../uavtalk/uavtalk_global.h \
../uavtalk/telemetrymonitor.h \
../uavobjects/uavobjectmanager.h \
../uavobjects/uavobjects_global.h \
../uavobjects/uavobject.h \
../uavobjects/uavobjectfield.h \
../uavobjects/uavdataobject.h \
../uavobjects/uavmetaobject.h \
../uavobjects/gcstelemetrystats.h \
../uavobjects/flighttelemetrystats.h \
../uavobjects/systemstats.h \
../uavtalk/telemetry.h \
../uavtalk/uavtalk.h \
../uavobjects/actuatordesired.h \
../uavobjects/altitudeactual.h \
../uavobjects/attitudeactual.h \
../uavobjects/positionactual.h \
ui_fgoptionspage.h \
../../libs/utils/pathchooser.h \
../../libs/utils/utils_global.h \
../../libs/extensionsystem/pluginmanager.h \
../../libs/extensionsystem/extensionsystem_global.h \
../../libs/aggregation/aggregate.h \
../../libs/aggregation/aggregation_global.h \
../coreplugin/icore.h \
../coreplugin/core_global.h \
../coreplugin/threadmanager.h
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o release/fgsimulator.o fgsimulator.cpp
release/moc_hitlwidget.o: release/moc_hitlwidget.cpp
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o release/moc_hitlwidget.o release/moc_hitlwidget.cpp
release/moc_hitloptionspage.o: release/moc_hitloptionspage.cpp
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o release/moc_hitloptionspage.o release/moc_hitloptionspage.cpp
release/moc_hitlfactory.o: release/moc_hitlfactory.cpp
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o release/moc_hitlfactory.o release/moc_hitlfactory.cpp
release/moc_hitlconfiguration.o: release/moc_hitlconfiguration.cpp
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o release/moc_hitlconfiguration.o release/moc_hitlconfiguration.cpp
release/moc_hitlgadget.o: release/moc_hitlgadget.cpp
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o release/moc_hitlgadget.o release/moc_hitlgadget.cpp
release/moc_simulator.o: release/moc_simulator.cpp
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o release/moc_simulator.o release/moc_simulator.cpp
release/moc_fgsimulator.o: release/moc_fgsimulator.cpp
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o release/moc_fgsimulator.o release/moc_fgsimulator.cpp
release/moc_il2simulator.o: release/moc_il2simulator.cpp
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o release/moc_il2simulator.o release/moc_il2simulator.cpp
release/qrc_hitlresources.o: release/qrc_hitlresources.cpp
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o release/qrc_hitlresources.o release/qrc_hitlresources.cpp
####### Install
install_target: first FORCE
@$(CHK_DIR_EXISTS) $(INSTALL_ROOT)/lib/opnepilotgcs/plugins/OpenPilot/ || $(MKDIR) $(INSTALL_ROOT)/lib/opnepilotgcs/plugins/OpenPilot/
-$(INSTALL_FILE) "$(DESTDIR_TARGET)" "$(INSTALL_ROOT)/lib/opnepilotgcs/plugins/OpenPilot/$(TARGET)"
uninstall_target: FORCE
-$(DEL_FILE) "$(INSTALL_ROOT)/lib/opnepilotgcs/plugins/OpenPilot/$(TARGET)"
-$(DEL_DIR) $(INSTALL_ROOT)/lib/opnepilotgcs/plugins/OpenPilot/
install_pluginspec: first FORCE
@$(CHK_DIR_EXISTS) $(INSTALL_ROOT)/lib/openpilotgcs/plugins/OpenPilot/ || $(MKDIR) $(INSTALL_ROOT)/lib/openpilotgcs/plugins/OpenPilot/
-$(INSTALL_FILE) d:\Qt\QtProjects\OpenPilot\OpenPilot\trunk\ground\src\plugins\hitlnew\HITLNEW.pluginspec $(INSTALL_ROOT)/lib/openpilotgcs/plugins/OpenPilot/
uninstall_pluginspec: FORCE
-$(DEL_FILE) -r $(INSTALL_ROOT)/lib/openpilotgcs/plugins/OpenPilot/d:/Qt/QtProjects/OpenPilot/OpenPilot/trunk/ground/src/plugins/hitlnew/HITLNEW.pluginspec
-$(DEL_DIR) $(INSTALL_ROOT)/lib/openpilotgcs/plugins/OpenPilot/
install: install_target install_pluginspec FORCE
uninstall: uninstall_target uninstall_pluginspec FORCE
FORCE:

View File

@ -1,106 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>FGOptionsPage</class>
<widget class="QWidget" name="FGOptionsPage">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>400</width>
<height>320</height>
</rect>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
<layout class="QGridLayout" name="gridLayout">
<property name="margin">
<number>0</number>
</property>
<item row="0" column="0">
<widget class="QLabel" name="label">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>FlightGear executable:</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label_2">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>FlightGear data directory:</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="Utils::PathChooser" name="executablePathChooser" native="true">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
<horstretch>1</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="Utils::PathChooser" name="dataDirectoryPathChooser" native="true"/>
</item>
<item row="3" column="1">
<widget class="QCheckBox" name="fgManualControl">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="toolTip">
<string>Manual aircraft control (can be used when hardware is not available)</string>
</property>
<property name="text">
<string>Manual aircraft control (can be used when hardware is not available)</string>
</property>
</widget>
</item>
<item row="4" column="1">
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>182</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
<customwidgets>
<customwidget>
<class>Utils::PathChooser</class>
<extends>QWidget</extends>
<header>utils/pathchooser.h</header>
<container>1</container>
</customwidget>
</customwidgets>
<resources/>
<connections/>
</ui>

View File

@ -1,224 +0,0 @@
/**
******************************************************************************
*
* @file flightgearbridge.h
* @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010.
* @addtogroup GCSPlugins GCS Plugins
* @{
* @addtogroup HITLPlugin HITL Plugin
* @{
* @brief The Hardware In The Loop plugin
*****************************************************************************/
/*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include "fgsimulator.h"
#include "extensionsystem/pluginmanager.h"
#include "coreplugin/icore.h"
#include "coreplugin/threadmanager.h"
const float FGSimulator::FT2M = 0.3048;
const float FGSimulator::KT2MPS = 0.514444444;
const float FGSimulator::INHG2KPA = 3.386;
//FGSimulator::FGSimulator(QString hostAddr, int outPort, int inPort, bool manual, QString binPath, QString dataPath) :
// Simulator(hostAddr, outPort, inPort, manual, binPath, dataPath),
// fgProcess(NULL)
//{
// // Note: Only tested on windows 7
//#if defined(Q_WS_WIN)
// cmdShell = QString("c:/windows/system32/cmd.exe");
//#else
// cmdShell = QString("bash");
//#endif
//}
FGSimulator::FGSimulator(const SimulatorSettings& params) :
Simulator(params)
{
}
FGSimulator::~FGSimulator()
{
disconnect(simProcess, SIGNAL(readyReadStandardOutput()), this, SLOT(processReadyRead()));
}
void FGSimulator::setupUdpPorts(const QString& host, int inPort, int outPort)
{
inSocket->bind(QHostAddress(host), inPort);
}
bool FGSimulator::setupProcess()
{
QMutexLocker locker(&lock);
// Copy FlightGear generic protocol configuration file to the FG protocol directory
// NOTE: Not working on Windows 7, if FG is installed in the "Program Files",
// likelly due to permissions. The file should be manually copied to data/Protocol/opfgprotocol.xml
// QFile xmlFile(":/flightgear/genericprotocol/opfgprotocol.xml");
// xmlFile.open(QIODevice::ReadOnly | QIODevice::Text);
// QString xml = xmlFile.readAll();
// xmlFile.close();
// QFile xmlFileOut(pathData + "/Protocol/opfgprotocol.xml");
// xmlFileOut.open(QIODevice::WriteOnly | QIODevice::Text);
// xmlFileOut.write(xml.toAscii());
// xmlFileOut.close();
Qt::HANDLE mainThread = QThread::currentThreadId();
qDebug() << "setupProcess Thread: "<< mainThread;
simProcess = new QProcess();
simProcess->setReadChannelMode(QProcess::MergedChannels);
connect(simProcess, SIGNAL(readyReadStandardOutput()), this, SLOT(processReadyRead()));
// Note: Only tested on windows 7
#if defined(Q_WS_WIN)
QString cmdShell("c:/windows/system32/cmd.exe");
#else
QString cmdShell("bash");
#endif
// Start shell (Note: Could not start FG directly on Windows, only through terminal!)
simProcess->start(cmdShell);
if (simProcess->waitForStarted() == false)
{
emit processOutput("Error:" + simProcess->errorString());
return false;
}
// Setup arguments
// Note: The input generic protocol is set to update at a much higher rate than the actual updates are sent by the GCS.
// If this is not done then a lag will be introduced by FlightGear, likelly because the receive socket buffer builds up during startup.
QString args("--fg-root=\"" + settings.dataPath + "\" --timeofday=dusk --httpd=5400 --enable-hud --in-air --altitude=2000 --vc=100 --generic=socket,out,50,localhost,5500,udp,opfgprotocol");
if(!settings.manual)
{
args.append(" --generic=socket,in,400,localhost,5501,udp,opfgprotocol");
}
// Start FlightGear
QString cmd("\"" + settings.binPath + "\" " + args + "\n");
simProcess->write(cmd.toAscii());
return true;
}
void FGSimulator::processReadyRead()
{
QByteArray bytes = simProcess->readAllStandardOutput();
QString str(bytes);
if ( !str.contains("Error reading data") ) // ignore error
{
emit processOutput(str);
}
}
void FGSimulator::transmitUpdate()
{
// Read ActuatorDesired from autopilot
ActuatorDesired::DataFields actData = actDesired->getData();
float ailerons = actData.Roll;
float elevator = -actData.Pitch;
float rudder = actData.Yaw;
float throttle = actData.Throttle;
// Send update to FlightGear
QString cmd;
cmd = QString("%1,%2,%3,%4\n")
.arg(ailerons)
.arg(elevator)
.arg(rudder)
.arg(throttle);
QByteArray data = cmd.toAscii();
outSocket->writeDatagram(data, QHostAddress(settings.hostAddress), settings.outPort);
}
void FGSimulator::processUpdate(QString& data)
{
// Split
QStringList fields = data.split(",");
// Get xRate (deg/s)
// float xRate = fields[0].toFloat() * 180.0/M_PI;
// Get yRate (deg/s)
// float yRate = fields[1].toFloat() * 180.0/M_PI;
// Get zRate (deg/s)
// float zRate = fields[2].toFloat() * 180.0/M_PI;
// Get xAccel (m/s^2)
// float xAccel = fields[3].toFloat() * FT2M;
// Get yAccel (m/s^2)
// float yAccel = fields[4].toFloat() * FT2M;
// Get xAccel (m/s^2)
// float zAccel = fields[5].toFloat() * FT2M;
// Get pitch (deg)
float pitch = fields[6].toFloat();
// Get pitchRate (deg/s)
// float pitchRate = fields[7].toFloat();
// Get roll (deg)
float roll = fields[8].toFloat();
// Get rollRate (deg/s)
// float rollRate = fields[9].toFloat();
// Get yaw (deg)
float yaw = fields[10].toFloat();
// Get yawRate (deg/s)
// float yawRate = fields[11].toFloat();
// Get latitude (deg)
float latitude = fields[12].toFloat();
// Get longitude (deg)
float longitude = fields[13].toFloat();
// Get heading (deg)
float heading = fields[14].toFloat();
// Get altitude (m)
float altitude = fields[15].toFloat() * FT2M;
// Get altitudeAGL (m)
float altitudeAGL = fields[16].toFloat() * FT2M;
// Get groundspeed (m/s)
float groundspeed = fields[17].toFloat() * KT2MPS;
// Get airspeed (m/s)
// float airspeed = fields[18].toFloat() * KT2MPS;
// Get temperature (degC)
float temperature = fields[19].toFloat();
// Get pressure (kpa)
float pressure = fields[20].toFloat() * INHG2KPA;
// Update AltitudeActual object
AltitudeActual::DataFields altActualData;
altActualData.Altitude = altitudeAGL;
altActualData.Temperature = temperature;
altActualData.Pressure = pressure;
altActual->setData(altActualData);
// Update attActual object
AttitudeActual::DataFields attActualData;
attActualData.Roll = roll;
attActualData.Pitch = pitch;
attActualData.Yaw = yaw;
attActualData.q1 = 0;
attActualData.q2 = 0;
attActualData.q3 = 0;
attActualData.q4 = 0;
attActual->setData(attActualData);
// Update gps objects
PositionActual::DataFields gpsData;
gpsData.Altitude = altitude;
gpsData.Heading = heading;
gpsData.Groundspeed = groundspeed;
gpsData.Latitude = latitude;
gpsData.Longitude = longitude;
gpsData.Satellites = 10;
gpsData.Status = PositionActual::STATUS_FIX3D;
posActual->setData(gpsData);
}

View File

@ -1,70 +0,0 @@
/**
******************************************************************************
*
* @file flightgearbridge.h
* @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010.
* @addtogroup GCSPlugins GCS Plugins
* @{
* @addtogroup HITLPlugin HITL Plugin
* @{
* @brief The Hardware In The Loop plugin
*****************************************************************************/
/*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#ifndef FGSIMULATOR_H
#define FGSIMULATOR_H_H
#include <QObject>
#include "Simulator.h"
class FGSimulator: public Simulator
{
Q_OBJECT
public:
FGSimulator(const SimulatorSettings& params);
~FGSimulator();
bool setupProcess();
void setupUdpPorts(const QString& host, int inPort, int outPort);
private slots:
void transmitUpdate();
void processReadyRead();
private:
static const float FT2M;
static const float KT2MPS;
static const float INHG2KPA;
void processUpdate(QString& data);
};
class FGSimulatorCreator : public SimulatorCreator
{
public:
FGSimulatorCreator(const QString& classId, const QString& description)
: SimulatorCreator (classId,description)
{}
Simulator* createSimulator(const SimulatorSettings& params)
{
return new FGSimulator(params);
}
};
#endif // FGSIMULATOR_H

View File

@ -1,83 +0,0 @@
/**
******************************************************************************
*
* @file hitlconfiguration.cpp
* @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010.
* @addtogroup GCSPlugins GCS Plugins
* @{
* @addtogroup HITLPlugin HITL Plugin
* @{
* @brief The Hardware In The Loop plugin
*****************************************************************************/
/*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include "hitlconfiguration.h"
#include <QtCore/QDataStream>
HITLConfiguration::HITLConfiguration(QString classId, const QByteArray &state, QObject *parent) :
IUAVGadgetConfiguration(classId, parent)
{
settings.simulatorId = "";
settings.binPath = "";
settings.dataPath = "";
settings.manual = false;
settings.hostAddress = "127.0.0.1";
settings.outPort = 0;
settings.inPort = 0;
settings.latitude = "";
settings.longitude = "";
if (state.count() > 0) {
QDataStream stream(state);
stream >> settings.simulatorId;
stream >> settings.binPath;
stream >> settings.dataPath;
stream >> settings.manual;
stream >> settings.hostAddress;
stream >> settings.outPort;
stream >> settings.inPort;
stream >> settings.latitude;
stream >> settings.longitude;
}
}
IUAVGadgetConfiguration *HITLConfiguration::clone()
{
HITLConfiguration *m = new HITLConfiguration(this->classId());
m->settings = settings;
return m;
}
QByteArray HITLConfiguration::saveState() const
{
QByteArray bytes;
QDataStream stream(&bytes, QIODevice::WriteOnly);
stream << settings.simulatorId;
stream << settings.binPath;
stream << settings.dataPath;
stream << settings.manual;
stream << settings.hostAddress;
stream << settings.outPort;
stream << settings.inPort;
stream << settings.latitude;
stream << settings.longitude;
return bytes;
}

View File

@ -1,61 +0,0 @@
/**
******************************************************************************
*
* @file hitlconfiguration.h
* @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010.
* @addtogroup GCSPlugins GCS Plugins
* @{
* @addtogroup HITLPlugin HITL Plugin
* @{
* @brief The Hardware In The Loop plugin
*****************************************************************************/
/*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#ifndef HITLCONFIGURATION_H
#define HITLCONFIGURATION_H
#include <coreplugin/iuavgadgetconfiguration.h>
#include <QtGui/QColor>
#include <QString>
#include <simulator.h>
using namespace Core;
class HITLConfiguration : public IUAVGadgetConfiguration
{
Q_OBJECT
Q_PROPERTY(SimulatorSettings settings READ Settings WRITE setSimulatorSettings)
public:
explicit HITLConfiguration(QString classId, const QByteArray &state = 0, QObject *parent = 0);
QByteArray saveState() const;
IUAVGadgetConfiguration *clone();
SimulatorSettings Settings() const { return settings; }
public slots:
void setSimulatorSettings (const SimulatorSettings& params ) { settings = params; }
private:
SimulatorSettings settings;
};
#endif // HITLCONFIGURATION_H

View File

@ -1,61 +0,0 @@
/**
******************************************************************************
*
* @file hitlfactory.cpp
* @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010.
* @addtogroup GCSPlugins GCS Plugins
* @{
* @addtogroup HITLPlugin HITL Plugin
* @{
* @brief The Hardware In The Loop plugin
*****************************************************************************/
/*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include "hitlfactory.h"
#include "hitlwidget.h"
#include "hitlgadget.h"
#include "hitlconfiguration.h"
#include "hitloptionspage.h"
#include <coreplugin/iuavgadget.h>
HITLFactory::HITLFactory(QObject *parent)
: IUAVGadgetFactory(QString("HITL"), tr("HITL Simulation"), parent)
{
}
HITLFactory::~HITLFactory()
{
}
Core::IUAVGadget* HITLFactory::createGadget(QWidget *parent)
{
HITLWidget* gadgetWidget = new HITLWidget(parent);
return new HITLGadget(QString("HITL"), gadgetWidget, parent);
}
IUAVGadgetConfiguration *HITLFactory::createConfiguration(const QByteArray &state)
{
return new HITLConfiguration(QString("HITL"), state);
}
IOptionsPage *HITLFactory::createOptionsPage(IUAVGadgetConfiguration *config)
{
return new HITLOptionsPage(qobject_cast<HITLConfiguration*>(config));
}

View File

@ -1,52 +0,0 @@
/**
******************************************************************************
*
* @file hitlfactory.h
* @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010.
* @addtogroup GCSPlugins GCS Plugins
* @{
* @addtogroup HITLPlugin HITL Plugin
* @{
* @brief The Hardware In The Loop plugin
*****************************************************************************/
/*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#ifndef HITLFACTORY_H
#define HITLFACTORY_H
#include <coreplugin/iuavgadgetfactory.h>
namespace Core {
class IUAVGadget;
class IUAVGadgetFactory;
}
using namespace Core;
class HITLFactory : public Core::IUAVGadgetFactory
{
Q_OBJECT
public:
HITLFactory(QObject *parent = 0);
~HITLFactory();
IUAVGadget *createGadget(QWidget *parent);
IUAVGadgetConfiguration *createConfiguration(const QByteArray &state);
IOptionsPage *createOptionsPage(IUAVGadgetConfiguration *config);
};
#endif // HITLFACTORY_H

View File

@ -1,67 +0,0 @@
/**
******************************************************************************
*
* @file hitl.cpp
* @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010.
* @addtogroup GCSPlugins GCS Plugins
* @{
* @addtogroup HITLPlugin HITL Plugin
* @{
* @brief The Hardware In The Loop plugin
*****************************************************************************/
/*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include "hitlgadget.h"
#include "hitlwidget.h"
#include "hitlconfiguration.h"
#include "simulator.h"
HITLGadget::HITLGadget(QString classId, HITLWidget *widget, QWidget *parent) :
IUAVGadget(classId, parent),
m_widget(widget)
{
connect(this,SIGNAL(changeConfiguration(void)),m_widget,SLOT(stopButtonClicked(void)));
}
HITLGadget::~HITLGadget()
{
}
void HITLGadget::loadConfiguration(IUAVGadgetConfiguration* config)
{
HITLConfiguration *m = qobject_cast<HITLConfiguration*>(config);
// FG
// simulator->setFGPathBin( m->fgPathBin() );
// simulator->setFGPathData( m->fgPathData() );
// simulator->setFGManualControl( m->fgManualControl() );
// // IL2
emit changeConfiguration();
m_widget->setSettingParameters(m->Settings());
// m_widget->setSimulatorId(m->SimulatorId());
// m_widget->setPathBin(m->PathBin());
// m_widget->setPathData(m->PathData());
// m_widget->setHostName(m->HostName());
// m_widget->setLatitude(m->Latitude());
// m_widget->setLongitude(m->Longitude());
// m_widget->setOutPort(m->OutPort());
// m_widget->setInPort(m->InPort());
// m_widget->setManualControl(m->ManualControl());
}

View File

@ -1,60 +0,0 @@
/**
******************************************************************************
*
* @file hitl.h
* @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010.
* @addtogroup GCSPlugins GCS Plugins
* @{
* @addtogroup HITLPlugin HITL Plugin
* @{
* @brief The Hardware In The Loop plugin
*****************************************************************************/
/*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#ifndef HITL_H
#define HITL_H
#include <coreplugin/iuavgadget.h>
#include "hitlwidget.h"
class IUAVGadget;
class QWidget;
class QString;
class Simulator;
using namespace Core;
class HITLGadget : public Core::IUAVGadget
{
Q_OBJECT
public:
HITLGadget(QString classId, HITLWidget *widget, QWidget *parent = 0);
~HITLGadget();
QWidget *widget() { return m_widget; }
void loadConfiguration(IUAVGadgetConfiguration* config);
signals:
void changeConfiguration();
private:
HITLWidget* m_widget;
Simulator* simulator;
};
#endif // HITL_H

View File

@ -1,12 +0,0 @@
<plugin name="HITLNEW" version="1.0.0" compatVersion="1.0.0">
<vendor>The OpenPilot Project</vendor>
<copyright>(C) 2010 OpenPilot Project</copyright>
<license>The GNU Public License (GPL) Version 3</license>
<description>Hardware In The Loop Simulation</description>
<url>http://www.openpilot.org</url>
<dependencyList>
<dependency name="Core" version="1.0.0"/>
<dependency name="UAVObjects" version="1.0.0"/>
<dependency name="UAVTalk" version="1.0.0"/>
</dependencyList>
</plugin>

View File

@ -1,27 +0,0 @@
TEMPLATE = lib
TARGET = HITLNEW
QT += network
include(../../openpilotgcsplugin.pri)
include(hitlnew_dependencies.pri)
HEADERS += hitlplugin.h \
hitlwidget.h \
hitloptionspage.h \
hitlfactory.h \
hitlconfiguration.h \
hitlgadget.h \
simulator.h \
fgsimulator.h \
il2simulator.h
SOURCES += hitlplugin.cpp \
hitlwidget.cpp \
hitloptionspage.cpp \
hitlfactory.cpp \
hitlconfiguration.cpp \
hitlgadget.cpp \
simulator.cpp \
il2simulator.cpp \
fgsimulator.cpp
OTHER_FILES += HITLNEW.pluginspec
FORMS += hitloptionspage.ui \
hitlwidget.ui
RESOURCES += hitlresources.qrc

View File

@ -1,4 +0,0 @@
include(../../plugins/uavobjects/uavobjects.pri)
include(../../plugins/uavtalk/uavtalk.pri)
include(../../plugins/coreplugin/coreplugin.pri)
include(../../libs/utils/utils.pri)

View File

@ -1,112 +0,0 @@
/**
******************************************************************************
*
* @file hitloptionspage.cpp
* @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010.
* @addtogroup GCSPlugins GCS Plugins
* @{
* @addtogroup HITLPlugin HITL Plugin
* @{
* @brief The Hardware In The Loop plugin
*****************************************************************************/
/*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include "hitloptionspage.h"
#include "hitlconfiguration.h"
#include "ui_hitloptionspage.h"
#include <hitlplugin.h>
#include <QFileDialog>
#include <QtAlgorithms>
#include <QStringList>
#include <Simulator.h>
HITLOptionsPage::HITLOptionsPage(HITLConfiguration *conf, QObject *parent) :
IOptionsPage(parent),
config(conf)
{
}
QWidget *HITLOptionsPage::createPage(QWidget *parent)
{
// Create page
m_optionsPage = new Ui::HITLOptionsPage();
QWidget* optionsPageWidget = new QWidget;
m_optionsPage->setupUi(optionsPageWidget);
int index = 0;
foreach(SimulatorCreator* creator, HITLPlugin::typeSimulators)
{
m_optionsPage->chooseFlightSimulator->insertItem(index++, creator->Description(),creator->ClassId());
}
//QString classId = widget->listSimulators->itemData(0).toString();
//SimulatorCreator* creator = HITLPlugin::getSimulatorCreator(classId);
//QWidget* embedPage = creator->createOptionsPage();
//m_optionsPage->verticalLayout->addWidget(embedPage);
m_optionsPage->executablePath->setExpectedKind(Utils::PathChooser::File);
m_optionsPage->executablePath->setPromptDialogTitle(tr("Choose flight simulator executable"));
m_optionsPage->dataPath->setExpectedKind(Utils::PathChooser::Directory);
m_optionsPage->dataPath->setPromptDialogTitle(tr("Choose flight simulator data directory"));
// Restore the contents from the settings:
foreach(SimulatorCreator* creator, HITLPlugin::typeSimulators)
{
QString id = config->Settings().simulatorId;
if(creator->ClassId() == id)
m_optionsPage->chooseFlightSimulator->setCurrentIndex(HITLPlugin::typeSimulators.indexOf(creator));
}
m_optionsPage->executablePath->setPath(config->Settings().binPath);
m_optionsPage->dataPath->setPath(config->Settings().dataPath);
m_optionsPage->manualControl->setChecked(config->Settings().manual);
m_optionsPage->hostAddress->setText(config->Settings().hostAddress);
m_optionsPage->outputPort->setText(QString::number(config->Settings().outPort));
m_optionsPage->inputPort->setText(QString::number(config->Settings().inPort));
m_optionsPage->latitude->setText(config->Settings().latitude);
m_optionsPage->longitude->setText(config->Settings().longitude);
return optionsPageWidget;
}
void HITLOptionsPage::apply()
{
SimulatorSettings settings;
int i = m_optionsPage->chooseFlightSimulator->currentIndex();
settings.simulatorId = m_optionsPage->chooseFlightSimulator->itemData(i).toString();
settings.binPath = m_optionsPage->executablePath->path();
settings.dataPath = m_optionsPage->dataPath->path();
settings.manual = m_optionsPage->manualControl->isChecked();
settings.hostAddress = m_optionsPage->hostAddress->text();
settings.inPort = m_optionsPage->inputPort->text().toInt();
settings.outPort = m_optionsPage->outputPort->text().toInt();
settings.longitude = m_optionsPage->longitude->text();
settings.latitude = m_optionsPage->latitude->text();
config->setSimulatorSettings(settings);
}
void HITLOptionsPage::finish()
{
delete m_optionsPage;
}

View File

@ -1,65 +0,0 @@
/**
******************************************************************************
*
* @file hitloptionspage.h
* @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010.
* @addtogroup GCSPlugins GCS Plugins
* @{
* @addtogroup HITLPlugin HITL Plugin
* @{
* @brief The Hardware In The Loop plugin
*****************************************************************************/
/*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#ifndef HITLOPTIONSPAGE_H
#define HITLOPTIONSPAGE_H
#include "coreplugin/dialogs/ioptionspage.h"
namespace Core {
class IUAVGadgetConfiguration;
}
class HITLConfiguration;
using namespace Core;
namespace Ui {
class HITLOptionsPage;
}
class HITLOptionsPage : public IOptionsPage
{
Q_OBJECT
public:
explicit HITLOptionsPage(HITLConfiguration *conf, QObject *parent = 0);
QWidget *createPage(QWidget *parent);
void apply();
void finish();
bool isDecorated() const { return true;}
signals:
private slots:
private:
HITLConfiguration* config;
Ui::HITLOptionsPage* m_optionsPage;
};
#endif // HITLOPTIONSPAGE_H

View File

@ -1,173 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>HITLOptionsPage</class>
<widget class="QWidget" name="HITLOptionsPage">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>400</width>
<height>320</height>
</rect>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
<layout class="QGridLayout" name="gridLayout">
<property name="margin">
<number>0</number>
</property>
<item row="1" column="1">
<widget class="QLabel" name="label_3">
<property name="text">
<string>Choose flight simulator:</string>
</property>
</widget>
</item>
<item row="1" column="2" colspan="3">
<widget class="QComboBox" name="chooseFlightSimulator"/>
</item>
<item row="2" column="1" colspan="4">
<widget class="Line" name="line">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item row="5" column="1">
<widget class="QLabel" name="label_7">
<property name="text">
<string>Latitude in degrees:</string>
</property>
</widget>
</item>
<item row="5" column="2">
<widget class="QLineEdit" name="latitude"/>
</item>
<item row="5" column="3">
<widget class="QLabel" name="label_8">
<property name="text">
<string>Longitude in degrees:</string>
</property>
</widget>
</item>
<item row="5" column="4">
<widget class="QLineEdit" name="longitude"/>
</item>
<item row="6" column="1">
<widget class="QLabel" name="label">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Path executable:</string>
</property>
</widget>
</item>
<item row="6" column="2" colspan="3">
<widget class="Utils::PathChooser" name="executablePath" native="true">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
<horstretch>1</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
</widget>
</item>
<item row="7" column="1">
<widget class="QLabel" name="label_2">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Data directory:</string>
</property>
</widget>
</item>
<item row="7" column="2" colspan="3">
<widget class="Utils::PathChooser" name="dataPath" native="true"/>
</item>
<item row="8" column="1" colspan="4">
<widget class="QCheckBox" name="manualControl">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="toolTip">
<string>Manual aircraft control (can be used when hardware is not available)</string>
</property>
<property name="text">
<string>Manual aircraft control (can be used when hardware is not available)</string>
</property>
</widget>
</item>
<item row="11" column="2">
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>182</height>
</size>
</property>
</spacer>
</item>
<item row="3" column="1">
<widget class="QLabel" name="label_6">
<property name="text">
<string>Host Address:</string>
</property>
</widget>
</item>
<item row="3" column="2">
<widget class="QLineEdit" name="hostAddress"/>
</item>
<item row="4" column="4">
<widget class="QLineEdit" name="outputPort"/>
</item>
<item row="4" column="3">
<widget class="QLabel" name="label_4">
<property name="text">
<string>Output Port:</string>
</property>
</widget>
</item>
<item row="4" column="2">
<widget class="QLineEdit" name="inputPort"/>
</item>
<item row="4" column="1">
<widget class="QLabel" name="label_5">
<property name="text">
<string>Input Port:</string>
</property>
</widget>
</item>
</layout>
</widget>
<customwidgets>
<customwidget>
<class>Utils::PathChooser</class>
<extends>QWidget</extends>
<header>utils/pathchooser.h</header>
<container>1</container>
</customwidget>
</customwidgets>
<resources/>
<connections/>
</ui>

View File

@ -1,71 +0,0 @@
/**
******************************************************************************
*
* @file mapplugin.cpp
* @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010.
* @addtogroup GCSPlugins GCS Plugins
* @{
* @addtogroup HITLPlugin HITL Plugin
* @{
* @brief The Hardware In The Loop plugin
*****************************************************************************/
/*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include "hitlplugin.h"
#include "hitlfactory.h"
#include <QtPlugin>
#include <QStringList>
#include <extensionsystem/pluginmanager.h>
#include "fgsimulator.h"
#include "il2simulator.h"
QList<SimulatorCreator* > HITLPlugin::typeSimulators;
HITLPlugin::HITLPlugin()
{
// Do nothing
}
HITLPlugin::~HITLPlugin()
{
// Do nothing
}
bool HITLPlugin::initialize(const QStringList& args, QString *errMsg)
{
Q_UNUSED(args);
Q_UNUSED(errMsg);
mf = new HITLFactory(this);
addAutoReleasedObject(mf);
addSimulator(new FGSimulatorCreator("FG","FlightGear"));
addSimulator(new IL2SimulatorCreator("IL2","IL2"));
return true;
}
void HITLPlugin::extensionsInitialized()
{
// Do nothing
}
void HITLPlugin::shutdown()
{
// Do nothing
}
Q_EXPORT_PLUGIN(HITLPlugin)

View File

@ -1,71 +0,0 @@
/**
******************************************************************************
*
* @file browserplugin.h
* @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010.
* @addtogroup GCSPlugins GCS Plugins
* @{
* @addtogroup HITLPlugin HITL Plugin
* @{
* @brief The Hardware In The Loop plugin
*****************************************************************************/
/*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#ifndef HITLPLUGIN_H
#define HITLPLUGIN_H
#include <extensionsystem/iplugin.h>
#include <qstringlist.h>
#include <Simulator.h>
class HITLFactory;
class HITLPlugin : public ExtensionSystem::IPlugin
{
public:
HITLPlugin();
~HITLPlugin();
void extensionsInitialized();
bool initialize(const QStringList & arguments, QString * errorString);
void shutdown();
static void addSimulator(SimulatorCreator* creator)
{
HITLPlugin::typeSimulators.append(creator);
}
static SimulatorCreator* getSimulatorCreator(const QString classId)
{
foreach(SimulatorCreator* creator, HITLPlugin::typeSimulators)
{
if(classId == creator->ClassId())
return creator;
}
return 0;
}
static QList<SimulatorCreator* > typeSimulators;
private:
HITLFactory *mf;
};
#endif /* HITLPLUGIN_H */

View File

@ -1,11 +0,0 @@
<RCC>
<qresource prefix="/hitlnew">
<file>opfgprotocol.xml</file>
<file>images/scrollbarvertical_down_arrow.png</file>
<file>images/scrollbarvertical_up_arrow.png</file>
<file>images/arrow-up.png</file>
<file>images/arrow-down.png</file>
<file>images/arrow-up2.png</file>
<file>images/arrow-down2.png</file>
</qresource>
</RCC>

View File

@ -1,218 +0,0 @@
/**
******************************************************************************
*
* @file hitlwidget.cpp
* @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010.
* @addtogroup GCSPlugins GCS Plugins
* @{
* @addtogroup HITLPlugin HITL Plugin
* @{
* @brief The Hardware In The Loop plugin
*****************************************************************************/
/*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include "hitlwidget.h"
#include "ui_hitlwidget.h"
#include "qxtlogger.h"
#include <QDebug>
#include <QFile>
#include <QDir>
#include <QDateTime>
#include <QThread>
#include <HITLPlugin.h>
#include <simulator.h>
#include "uavobjects/uavobjectmanager.h"
#include "coreplugin/icore.h"
#include "coreplugin/threadmanager.h"
QStringList Simulator::instances;
HITLWidget::HITLWidget(QWidget *parent)
: QWidget(parent),
simulator(0)
{
widget = new Ui_HITLWidget();
widget->setupUi(this);
widget->startButton->setEnabled(true);
widget->stopButton->setEnabled(false);
greenColor = "rgb(35, 221, 35)";
strAutopilotDisconnected = " Autopilot disconnected ";
strSimulatorDisconnected = " Simulator disconnected ";
strAutopilotConnected = " Autopilot connected ";
strSimulatorConnected = " Simulator connected ";
widget->apLabel->setText(strAutopilotDisconnected);
widget->simLabel->setText(strSimulatorDisconnected);
connect(widget->startButton, SIGNAL(clicked()), this, SLOT(startButtonClicked()));
connect(widget->stopButton, SIGNAL(clicked()), this, SLOT(stopButtonClicked()));
connect(widget->buttonClearLog, SIGNAL(clicked()), this, SLOT(buttonClearLogClicked()));
}
HITLWidget::~HITLWidget()
{
delete widget;
}
void HITLWidget::startButtonClicked()
{
Qt::HANDLE mainThread = QThread::currentThread();
qDebug() << "Main Thread: "<< mainThread;
// [1]
// if(Simulator::IsStarted())
// {
// widget->textBrowser->append("HITL alreary started!");
// return;
// }
// Simulator::setStarted(true);
// [2] allow only one instance per simulator
if(Simulator::Instances().indexOf(settings.simulatorId) != -1)
{
widget->textBrowser->append(settings.simulatorId + " alreary started!");
return;
}
if(!HITLPlugin::typeSimulators.size())
{
qxtLog->info("There is no registered simulators, add through HITLPlugin::addSimulator");
return;
}
// Stop running process if one is active
if(simulator)
{
QMetaObject::invokeMethod(simulator, "onDeleteSimulator",Qt::QueuedConnection);
simulator = NULL;
}
//fgBridge = new FlightGearBridge();
//simulator = new Simulator();
if(settings.hostAddress == "" || settings.inPort == 0)
{
widget->textBrowser->append("Before start, set UDP parameters in options page!");
return;
}
SimulatorCreator* creator = HITLPlugin::getSimulatorCreator(settings.simulatorId);
simulator = creator->createSimulator(settings);//hostName, outPort, inPort, manualControl, pathBin, pathData);
// move to thread
simulator->setName(creator->Description());
simulator->setSimulatorId(creator->ClassId());
// Setup process
widget->textBrowser->append(QString("[%1] Starting %2... ").arg(QTime::currentTime().toString("hh:mm:ss")).arg(creator->Description()));
qxtLog->info("HITL: Starting " + creator->Description());
// Start bridge
//bool ret = simulator->setupProcess();
bool ret = QMetaObject::invokeMethod(simulator, "setupProcess",Qt::QueuedConnection);
if(ret)
{
Simulator::setInstance(settings.simulatorId);
connect(this,SIGNAL(deleteSimulator()),simulator, SLOT(onDeleteSimulator()),Qt::QueuedConnection);
widget->startButton->setEnabled(false);
widget->stopButton->setEnabled(true);
qxtLog->info("HITL: Starting bridge, initializing flight simulator and Autopilot connections");
connect(simulator, SIGNAL(processOutput(QString)), widget->textBrowser, SLOT(append(QString)));
connect(simulator, SIGNAL(autopilotConnected()), this, SLOT(onAutopilotConnect()),Qt::QueuedConnection);
connect(simulator, SIGNAL(autopilotDisconnected()), this, SLOT(onAutopilotDisconnect()),Qt::QueuedConnection);
connect(simulator, SIGNAL(simulatorConnected()), this, SLOT(onSimulatorConnect()),Qt::QueuedConnection);
connect(simulator, SIGNAL(simulatorDisconnected()), this, SLOT(onSimulatorDisconnect()),Qt::QueuedConnection);
// Initialize connection status
if ( simulator->isAutopilotConnected() )
{
onAutopilotConnect();
}
else
{
onAutopilotDisconnect();
}
if ( simulator->isSimulatorConnected() )
{
onSimulatorConnect();
}
else
{
onSimulatorDisconnect();
}
}
}
void HITLWidget::stopButtonClicked()
{
if(simulator)
widget->textBrowser->append(QString("[%1] Terminate %2 ").arg(QTime::currentTime().toString("hh:mm:ss")).arg(simulator->Name()));
widget->startButton->setEnabled(true);
widget->stopButton->setEnabled(false);
widget->apLabel->setStyleSheet(QString::fromUtf8("QFrame{\n""background-color: transparent; color: white}"));
widget->simLabel->setStyleSheet(QString::fromUtf8("QFrame{\n""background-color: transparent; color: white}"));
widget->apLabel->setText(strAutopilotDisconnected);
widget->simLabel->setText(strSimulatorDisconnected);
if(simulator)
{
QMetaObject::invokeMethod(simulator, "onDeleteSimulator",Qt::QueuedConnection);
simulator = NULL;
}
}
void HITLWidget::buttonClearLogClicked()
{
widget->textBrowser->clear();
}
void HITLWidget::onAutopilotConnect()
{
widget->simLabel->setStyleSheet(QString::fromUtf8("QFrame{\n""background-color: %1; color: white}").arg(greenColor));
widget->apLabel->setText(strAutopilotConnected);
qxtLog->info("HITL: Autopilot connected, initializing for HITL simulation");
}
void HITLWidget::onAutopilotDisconnect()
{
widget->apLabel->setStyleSheet(QString::fromUtf8("QFrame{\n""background-color: red; color: white}"));
widget->apLabel->setText(strAutopilotDisconnected);
qxtLog->info(strAutopilotDisconnected);
}
void HITLWidget::onSimulatorConnect()
{
widget->simLabel->setStyleSheet(QString::fromUtf8("QFrame{\n""background-color: %1; color: white}").arg(greenColor));
widget->simLabel->setText(" " + simulator->Name() +" connected ");
qxtLog->info(QString("HITL: %1 connected").arg(simulator->Name()));
}
void HITLWidget::onSimulatorDisconnect()
{
widget->simLabel->setStyleSheet(QString::fromUtf8("QFrame{\n""background-color: red; color: white}"));
widget->simLabel->setText(" " + simulator->Name() +" disconnected ");
qxtLog->info(QString("HITL: %1 disconnected").arg(simulator->Name()));
}

View File

@ -1,71 +0,0 @@
/**
******************************************************************************
*
* @file hitlwidget.h
* @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010.
* @addtogroup GCSPlugins GCS Plugins
* @{
* @addtogroup HITLPlugin HITL Plugin
* @{
* @brief The Hardware In The Loop plugin
*****************************************************************************/
/*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#ifndef HITLWIDGET_H
#define HITLWIDGET_H
#include <QtGui/QWidget>
#include <QProcess>
#include "simulator.h"
class Ui_HITLWidget;
class HITLWidget : public QWidget
{
Q_OBJECT
public:
HITLWidget(QWidget *parent = 0);
~HITLWidget();
void setSettingParameters(const SimulatorSettings& params) {settings = params;}
signals:
void deleteSimulator();
private slots:
void startButtonClicked();
void stopButtonClicked();
void buttonClearLogClicked();
void onAutopilotConnect();
void onAutopilotDisconnect();
void onSimulatorConnect();
void onSimulatorDisconnect();
private:
Ui_HITLWidget* widget;
Simulator* simulator;
SimulatorSettings settings;
QString greenColor;
QString strAutopilotDisconnected;
QString strSimulatorDisconnected;
QString strAutopilotConnected;
QString strSimulatorConnected;
};
#endif /* HITLWIDGET_H */

View File

@ -1,471 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>HITLWidget</class>
<widget class="QWidget" name="HITLWidget">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>786</width>
<height>300</height>
</rect>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
<property name="styleSheet">
<string notr="true">
QScrollBar:vertical {
border: 1px solid grey;
background: grey;
margin: 22px 0 22px 0;
}
QScrollBar:vertical:disabled {
border: 1px solid grey;
background-color: grey;
margin: 22px 0 22px 0;
}
QScrollBar::handle:vertical {
background-color: qlineargradient(spread:pad, x1:0.5, y1:0, x2:0.5, y2:1, stop:0 rgba(120, 120, 255, 255), stop:1 rgba(80, 80, 160, 255));
min-height: 20px;
}
QScrollBar::handle:vertical:disabled{
background-color: grey;
min-height: 20px;
}
QScrollBar::handle:vertical:pressed {
background-color: rgb(85, 85, 255);
background-color: qlineargradient(spread:pad, x1:0.5, y1:0, x2:0.5, y2:1, stop:0 rgba(170, 170, 255, 255), stop:1 rgba(80, 80, 160, 255));
min-height: 20px;
}
QScrollBar::add-line:vertical {
border: 1px solid black;
background-color: qlineargradient(spread:pad, x1:0.5, y1:0, x2:0.5, y2:1, stop:0 rgba(48, 48, 48, 255), stop:1 rgba(120, 120, 120, 255));
height: 20px;
subcontrol-position: bottom;
subcontrol-origin: margin;
}
QScrollBar::add-line:vertical:disabled {
background-color: qlineargradient(spread:pad, x1:0.5, y1:0, x2:0.5, y2:1, stop:0 rgba(100, 100, 100, 255));
border: 1px solid grey;
}
QScrollBar::sub-line:vertical:disabled {
background-color: qlineargradient(spread:pad, x1:0.5, y1:0, x2:0.5, y2:1, stop:0 rgba(100, 100, 100, 255));
border: 1px solid grey;
}
QScrollBar::add-line:vertical:pressed {
background-color: qlineargradient(spread:pad, x1:0.5, y1:0, x2:0.5, y2:1, stop:0 rgba(255, 255, 255, 200), stop:1 rgba(180, 180, 180, 200));
}
QScrollBar::sub-line:vertical:pressed {
background-color: qlineargradient(spread:pad, x1:0.5, y1:0, x2:0.5, y2:1, stop:0 rgba(255, 255, 255, 200), stop:1 rgba(180, 180, 180, 200));
}
QScrollBar::sub-line:vertical {
border: 1px solid black;
background-color: qlineargradient(spread:pad, x1:0.5, y1:0, x2:0.5, y2:1, stop:0 rgba(48, 48, 48, 255), stop:1 rgba(120, 120, 120, 255));
height: 20px;
subcontrol-position: top;
subcontrol-origin: margin;
}
QScrollBar::down-arrow:vertical {
image: url(:/hitlnew/images/arrow-down2.png);
}
QScrollBar::up-arrow:vertical {
image: url(:/hitlnew/images/arrow-up2.png);
}
QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical {
background: none;
}
QPushButton {
background-color: qlineargradient(spread:pad, x1:0.5, y1:0, x2:0.5, y2:1, stop:0 rgba(110, 110, 110, 255), stop:1 rgba(71, 71, 71, 255));
color: rgb(255, 255, 255);
border: 1px solid black;
width: 66px;
height: 20px;
}
QPushButton:disabled {
background-color: qlineargradient(spread:pad, x1:0.5, y1:0, x2:0.5, y2:1, stop:0 rgba(120, 120, 120, 255));
color: rgb(194, 194, 194);
border: 1px solid gray;
width: 66px;
height: 20px;
}
QPushButton:hover {
background-color: qlineargradient(spread:pad, x1:0.5, y1:0, x2:0.5, y2:1, stop:0 rgba(255, 255, 255, 200), stop:1 rgba(180, 180, 180, 200));
color: rgb(255, 255, 255);
border: 0px;
}
QPushButton:pressed {
background-color: qlineargradient(spread:pad, x1:0.5, y1:0, x2:0.5, y2:1, stop:0 rgba(48, 48, 48, 255), stop:1 rgba(120, 120, 120, 255));
color: rgb(255, 255, 255);
border: 0px;
}
QPushButton:checked {
background-color: qlineargradient(spread:pad, x1:0.5, y1:0, x2:0.5, y2:1, stop:0 rgba(48, 48, 48, 255), stop:1 rgba(120, 120, 120, 255));
color: rgb(255, 255, 255);
border: 0px;
}</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<property name="margin">
<number>0</number>
</property>
<item>
<widget class="QFrame" name="frame">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>0</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>16777215</height>
</size>
</property>
<property name="styleSheet">
<string notr="true">
QFrame{
background-color: qlineargradient(spread:pad, x1:0.5, y1:0, x2:0.5, y2:1, stop:0 rgba(110, 110, 110, 255), stop:1 rgba(71, 71, 71, 255));
color: rgba(0, 0, 0, 128);
}
</string>
</property>
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<layout class="QVBoxLayout" name="verticalLayout_2">
<property name="sizeConstraint">
<enum>QLayout::SetMaximumSize</enum>
</property>
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<property name="sizeConstraint">
<enum>QLayout::SetDefaultConstraint</enum>
</property>
<item>
<widget class="QPushButton" name="startButton">
<property name="toolTip">
<string>Request update</string>
</property>
<property name="styleSheet">
<string notr="true"/>
</property>
<property name="text">
<string>Start</string>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Preferred</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>10</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QPushButton" name="stopButton">
<property name="enabled">
<bool>false</bool>
</property>
<property name="toolTip">
<string>Send update</string>
</property>
<property name="text">
<string>Stop</string>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_7">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Preferred</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>5</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="Line" name="line">
<property name="frameShadow">
<enum>QFrame::Plain</enum>
</property>
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_4">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Preferred</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>5</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QLabel" name="apLabel">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>140</width>
<height>0</height>
</size>
</property>
<property name="font">
<font>
<weight>50</weight>
<bold>false</bold>
</font>
</property>
<property name="layoutDirection">
<enum>Qt::LeftToRight</enum>
</property>
<property name="autoFillBackground">
<bool>false</bool>
</property>
<property name="styleSheet">
<string notr="true">color: rgb(255, 255, 255);</string>
</property>
<property name="text">
<string>AutoPilot disconnected</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_5">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Preferred</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>10</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QLabel" name="simLabel">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>140</width>
<height>0</height>
</size>
</property>
<property name="styleSheet">
<string notr="true">color: rgb(255, 255, 255);</string>
</property>
<property name="text">
<string> Simulator disconnected </string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_2">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Preferred</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>10</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<spacer name="horizontalSpacer_6">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Preferred</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>5</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="Line" name="line_2">
<property name="frameShadow">
<enum>QFrame::Plain</enum>
</property>
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_8">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Preferred</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>5</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<spacer name="horizontalSpacer_3">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QPushButton" name="buttonClearLog">
<property name="text">
<string>Clear Log</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<widget class="QTextEdit" name="textBrowser">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>0</height>
</size>
</property>
<property name="autoFillBackground">
<bool>false</bool>
</property>
<property name="styleSheet">
<string notr="true">QTextEdit {
background-color: white;
color: rgb(0, 0, 0);
}</string>
</property>
<property name="frameShape">
<enum>QFrame::NoFrame</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Plain</enum>
</property>
<property name="verticalScrollBarPolicy">
<enum>Qt::ScrollBarAlwaysOn</enum>
</property>
</widget>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui>

View File

@ -1,251 +0,0 @@
/**
******************************************************************************
*
* @file il2simulator.cpp
* @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010.
* @brief
* @see The GNU Public License (GPL) Version 3
* @defgroup hitlplugin
* @{
*
*****************************************************************************/
/*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
/*
* Description of DeviceLink Protocol:
* A Request is initiated with R/ followed by id's of to be requested settings
* even id's indicate read only values, odd are write only
* (usually id =get value id+1= set - for same setting)
* id's are separated by /
* requests can contain values to set, or to select a subsystem
* values are separated by \
* example: R/30/48/64\0/64\1/
* request read only settings 30,48 and 64 with parameters 0 and 1
* the answer consists of an A followed by id value pairs in the same format
* example: A/30\0/48\0/64\0\22/64\1\102/
*
* A full protocol description as well as a list of ID's and their meanings
* can be found shipped with IL2 in the file DeviceLink.txt
*
* id's used in this file:
* 30: IAS in km/h (float)
* 32: vario in m/s (float)
* 38: angular speed °/s (float) (which direction? azimuth?)
* 40: barometric alt in m (float)
* 42: flight course in ° (0-360) (float)
* 46: roll angle in ° (-180 - 180) (floatniguration)
* 48: pitch angle in ° (-90 - 90) (float)
* 80/81: engine power (-1.0 (0%) - 1.0 (100%)) (float)
* 84/85: aileron servo (-1.0 - 1.0) (float)
* 86/87: elevator servo (-1.0 - 1.0) (float)
* 88/89: rudder servo (-1.0 - 1.0) (float)
*
* IL2 currently offers no useful way of providing GPS data
* therefore fake GPS data will be calculated using IMS
*
* unfortunately angular acceleration provided is very limited, too
*/
#include "il2simulator.h"
#include "extensionsystem/pluginmanager.h"
#include <coreplugin/icore.h>
#include <coreplugin/threadmanager.h>
#include <math.h>
#include <qxtlogger.h>
const float IL2Simulator::FT2M = 0.3048;
const float IL2Simulator::KT2MPS = 0.514444444;
const float IL2Simulator::MPS2KMH = 3.6;
const float IL2Simulator::KMH2MPS = (1.0/3.6);
const float IL2Simulator::INHG2KPA = 3.386;
const float IL2Simulator::RAD2DEG = (180.0/M_PI);
const float IL2Simulator::DEG2RAD = (M_PI/180.0);
const float IL2Simulator::M2DEG = 60.*1852.; // 60 miles per degree times 1852 meters per mile
const float IL2Simulator::DEG2M = (1.0/(60.*1852.));
const float IL2Simulator::AIR_CONST = 287.058; // J/(kg*K)
const float IL2Simulator::GROUNDDENSITY = 1.225; // kg/m³ ;)
const float IL2Simulator::TEMP_GROUND = (15.0 + 273.0); // 15°C in Kelvin
const float IL2Simulator::TEMP_LAPSE_RATE = -0.0065; //degrees per meter
const float IL2Simulator::AIR_CONST_FACTOR = -0.0341631947363104; //several nature constants calculated into one
IL2Simulator::IL2Simulator(const SimulatorSettings& params) :
Simulator(params)
{
}
IL2Simulator::~IL2Simulator()
{
}
void IL2Simulator::setupUdpPorts(const QString& host, int inPort, int outPort)
{
inSocket->connectToHost(host,inPort); // IL2
if(!inSocket->waitForConnected())
qxtLog->error(Name() + " cann't connect to UDP Port: " + QString::number(inPort));
}
void IL2Simulator::transmitUpdate()
{
// Read ActuatorDesired from autopilot
ActuatorDesired::DataFields actData = actDesired->getData();
float ailerons = actData.Roll;
float elevator = actData.Pitch;
float rudder = actData.Yaw;
float throttle = actData.Throttle*2-1.0;
// Send update to Il2
QString cmd;
cmd=QString("R/30/32/40/42/46/48/81\\%1/85\\%2/87\\%3/89\\%4/")
.arg(throttle)
.arg(ailerons)
.arg(elevator)
.arg(rudder);
QByteArray data = cmd.toAscii();
//outSocket->write(data);
inSocket->write(data); // for IL2 must send to the same port as input!!!!!!!!!!!!!
}
/**
* calculate air density from altitude
*/
float IL2Simulator::DENSITY(float alt) {
return (GROUNDDENSITY * pow(
((TEMP_GROUND+(TEMP_LAPSE_RATE*alt))/TEMP_GROUND),
((AIR_CONST_FACTOR/TEMP_LAPSE_RATE)-1) )
);
}
/**
* calculate air pressure from altitude
*/
float IL2Simulator::PRESSURE(float alt) {
return DENSITY(alt)*(TEMP_GROUND+(alt*TEMP_LAPSE_RATE))*AIR_CONST;
}
/**
* calculate TAS from IAS and altitude
*/
float IL2Simulator::TAS(float IAS, float alt) {
return (IAS*sqrt(GROUNDDENSITY/DENSITY(alt)));
}
/**
* process data string from flight simulator
*/
void IL2Simulator::processUpdate(QString& data)
{
// save old flight data to calculate delta's later
old=current;
// Split
QStringList fields = data.split("/");
// split up response string
int t;
for (t=0; t<fields.length(); t++) {
QStringList values = fields[t].split("\\");
// parse values
if (values.length()>=2) {
int id = values[0].toInt();
float value = values[1].toFloat();
switch (id) {
case 30:
current.ias=value * KMH2MPS;
break;
case 32:
current.dZ=value;
break;
case 40:
current.Z=value;
break;
case 42:
current.azimuth=value;
break;
case 46:
current.roll=-value;
break;
case 48:
current.pitch=value;
break;
}
}
}
// measure time
current.dT = ((float)time->restart()) / 1000.0;
current.T = old.T+current.dT;
// calculate TAS from alt and IAS
current.tas = TAS(current.ias,current.Z);
// assume the plane actually flies straight and no wind
// groundspeed is horizontal vector of TAS
current.groundspeed = current.tas*cos(current.pitch*DEG2RAD);
// x and y vector components
current.dX = current.groundspeed*sin(current.azimuth*DEG2RAD);
current.dY = current.groundspeed*cos(current.azimuth*DEG2RAD);
// simple IMS - integration over time the easy way...
current.X = old.X + (current.dX*current.dT);
current.Y = old.Y + (current.dY*current.dT);
// Update AltitudeActual object
AltitudeActual::DataFields altActualData;
altActualData.Altitude = current.Z;
altActualData.Temperature = TEMP_GROUND + (current.Z * TEMP_LAPSE_RATE) - 273.0;
altActualData.Pressure = PRESSURE(current.Z)/1000.0; // kpa
altActual->setData(altActualData);
// Update attActual object
AttitudeActual::DataFields attActualData;
attActualData.Roll = current.roll;
attActualData.Pitch = current.pitch;
attActualData.Yaw = current.azimuth;
attActualData.q1 = 0;
attActualData.q2 = 0;
attActualData.q3 = 0;
attActualData.q4 = 0;
attActual->setData(attActualData);
// Update gps objects
PositionActual::DataFields gpsData;
gpsData.Altitude = current.Z;
gpsData.Heading = current.azimuth;
gpsData.Groundspeed = current.groundspeed;
gpsData.Latitude = settings.latitude.toFloat() + current.Y * DEG2M;
if (gpsData.Latitude<-89.0 or gpsData.Latitude>89.0) {
// oops - this is rare enough to just prevent overflow here...
// IL2 has no north pole map anyway
gpsData.Latitude=0.0;
}
gpsData.Longitude = settings.longitude.toFloat() + current.X * (1.0/cos(gpsData.Latitude*DEG2RAD)) * DEG2M;
while (gpsData.Longitude<-180.0) gpsData.Longitude+=360.0;
while (gpsData.Longitude>180.0) gpsData.Longitude-=360.0;
gpsData.Satellites = 7;
gpsData.Status = PositionActual::STATUS_FIX3D;
posActual->setData(gpsData);
// issue manual update
attActual->updated();
altActual->updated();
posActual->updated();
}

View File

@ -1,83 +0,0 @@
/**
******************************************************************************
*
* @file il2simulator.h
* @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010.
* @brief
* @see The GNU Public License (GPL) Version 3
* @defgroup hitlplugin
* @{
*
*****************************************************************************/
/*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#ifndef IL2SIMULATOR_H
#define IL2SIMULATOR_H
#include <QObject>
#include <simulator.h>
class IL2Simulator: public Simulator
{
Q_OBJECT
public:
IL2Simulator(const SimulatorSettings& params);
~IL2Simulator();
void setupUdpPorts(const QString& host, int inPort, int outPort);
private slots:
void transmitUpdate();
private:
static const float FT2M;
static const float KT2MPS;
static const float MPS2KMH;
static const float KMH2MPS;
static const float INHG2KPA;
static const float RAD2DEG;
static const float DEG2RAD;
static const float M2DEG;
static const float DEG2M;
static const float AIR_CONST;
static const float GROUNDDENSITY;
static const float TEMP_GROUND;
static const float TEMP_LAPSE_RATE;
static const float AIR_CONST_FACTOR;
float DENSITY(float pressure);
float PRESSURE(float alt);
float TAS(float ias,float alt);
void processUpdate(QString& data);
};
class IL2SimulatorCreator : public SimulatorCreator
{
public:
IL2SimulatorCreator(const QString& classId, const QString& description)
: SimulatorCreator (classId,description)
{}
Simulator* createSimulator(const SimulatorSettings& params)
{
return new IL2Simulator(params);
}
};
#endif // IL2SIMULATOR_H

View File

@ -1,72 +0,0 @@
#ifndef ISIMULATOR_H
#define ISIMULATOR_H
#include <QObject>
#include <QUdpSocket>
#include <QTimer>
#include <math.h>
#include "uavtalk/telemetrymanager.h"
#include "uavobjects/uavobjectmanager.h"
#include "uavobjects/actuatordesired.h"
#include "uavobjects/altitudeactual.h"
#include "uavobjects/attitudeactual.h"
#include "uavobjects/positionactual.h"
#include "uavobjects/gcstelemetrystats.h"
class Simulator: public QObject
{
Q_OBJECT
public:
//static ISimulator* Instance();
//protected:
Simulator();
~ISimulator();
bool isAutopilotConnected();
bool isFGConnected();
signals:
void myStart();
void autopilotConnected();
void autopilotDisconnected();
void fgConnected();
void fgDisconnected();
private slots:
void onStart();
void transmitUpdate();
void receiveUpdate();
void onAutopilotConnect();
void onAutopilotDisconnect();
void onFGConnectionTimeout();
void telStatsUpdated(UAVObject* obj);
private:
//static ISimulator* _instance;
QUdpSocket* inSocket;
QUdpSocket* outSocket;
ActuatorDesired* actDesired;
AltitudeActual* altActual;
AttitudeActual* attActual;
PositionActual* posActual;
GCSTelemetryStats* telStats;
QHostAddress fgHost;
int inPort;
int outPort;
int updatePeriod;
QTimer* txTimer;
QTimer* fgTimer;
bool autopilotConnectionStatus;
bool fgConnectionStatus;
int fgTimeout;
void processUpdate(QString& data);
void setupOutputObject(UAVObject* obj, int updatePeriod);
void setupInputObject(UAVObject* obj, int updatePeriod);
void setupObjects();
};
#endif // ISIMULATOR_H

View File

@ -1,20 +0,0 @@
INPUT(
./release/hitlplugin.o
./release/hitlwidget.o
./release/hitloptionspage.o
./release/hitlfactory.o
./release/hitlconfiguration.o
./release/hitlgadget.o
./release/simulator.o
./release/il2simulator.o
./release/fgsimulator.o
./release/moc_hitlwidget.o
./release/moc_hitloptionspage.o
./release/moc_hitlfactory.o
./release/moc_hitlconfiguration.o
./release/moc_hitlgadget.o
./release/moc_simulator.o
./release/moc_fgsimulator.o
./release/moc_il2simulator.o
./release/qrc_hitlresources.o
);

View File

@ -1,20 +0,0 @@
INPUT(
./debug/hitlplugin.o
./debug/hitlwidget.o
./debug/hitloptionspage.o
./debug/hitlfactory.o
./debug/hitlconfiguration.o
./debug/hitlgadget.o
./debug/simulator.o
./debug/il2simulator.o
./debug/fgsimulator.o
./debug/moc_hitlwidget.o
./debug/moc_hitloptionspage.o
./debug/moc_hitlfactory.o
./debug/moc_hitlconfiguration.o
./debug/moc_hitlgadget.o
./debug/moc_simulator.o
./debug/moc_fgsimulator.o
./debug/moc_il2simulator.o
./debug/qrc_hitlresources.o
);

View File

@ -1,201 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<PropertyList>
<generic>
<input>
<line_separator>\n</line_separator>
<var_separator>,</var_separator>
<chunk>
<name>aileron</name>
<node>/controls/flight/aileron</node>
<type>float</type>
<format>%f</format>
</chunk>
<chunk>
<name>elevator</name>
<node>/controls/flight/elevator</node>
<type>float</type>
<format>%f</format>
</chunk>
<chunk>
<name>rudder</name>
<node>/controls/flight/rudder</node>
<type>float</type>
<format>%f</format>
</chunk>
<chunk>
<name>throttle</name>
<node>/controls/engines/engine/throttle</node>
<type>float</type>
<format>%f</format>
</chunk>
</input>
<output>
<line_separator>\n</line_separator>
<var_separator>,</var_separator>
<chunk>
<name>xRate</name>
<node>/fdm/jsbsim/velocities/p-rad_sec</node>
<type>float</type>
<format>%f</format>
</chunk>
<chunk>
<name>yRate</name>
<node>/fdm/jsbsim/velocities/q-rad_sec</node>
<type>float</type>
<format>%f</format>
</chunk>
<chunk>
<name>zRate</name>
<node>/fdm/jsbsim/velocities/r-rad_sec</node>
<type>float</type>
<format>%f</format>
</chunk>
<chunk>
<name>xAccel</name>
<!-- /fdm/jsbsim/accelerations/a-pilot-x-ft_sec2 -->
<node>/accelerations/pilot/x-accel-fps_sec</node>
<type>float</type>
<format>%f</format>
</chunk>
<chunk>
<name>yAccel</name>
<node>/accelerations/pilot/y-accel-fps_sec</node>
<type>float</type>
<format>%f</format>
</chunk>
<chunk>
<name>zAccel</name>
<node>/accelerations/pilot/z-accel-fps_sec</node>
<type>float</type>
<format>%f</format>
</chunk>
<chunk>
<name>Pitch</name>
<node>/orientation/pitch-deg</node>
<type>float</type>
<format>%f</format>
</chunk>
<chunk>
<name>PitchRate</name>
<node>/orientation/pitch-rate-degps</node>
<type>float</type>
<format>%f</format>
</chunk>
<chunk>
<name>Roll</name>
<node>/orientation/roll-deg</node>
<type>float</type>
<format>%f</format>
</chunk>
<chunk>
<name>RollRate</name>
<node>/orientation/roll-rate-degps</node>
<type>float</type>
<format>%f</format>
</chunk>
<chunk>
<name>Yaw</name>
<node>/orientation/heading-magnetic-deg</node>
<type>float</type>
<format>%f</format>
</chunk>
<chunk>
<name>YawRate</name>
<node>/orientation/yaw-rate-degps</node>
<type>float</type>
<format>%f</format>
</chunk>
<chunk>
<name>Latitude</name>
<node>/position/latitude-deg</node>
<type>float</type>
<format>%f</format>
</chunk>
<chunk>
<name>Longitude</name>
<node>/position/longitude-deg</node>
<type>float</type>
<format>%f</format>
</chunk>
<chunk>
<name>Heading</name>
<node>/orientation/heading-deg</node>
<type>float</type>
<format>%f</format>
</chunk>
<chunk>
<name>Altitude</name>
<node>/position/altitude-ft</node>
<type>float</type>
<format>%f</format>
</chunk>
<chunk>
<name>AltitudeAGL</name>
<node>/position/altitude-agl-ft</node>
<type>float</type>
<format>%f</format>
</chunk>
<chunk>
<name>Groundspeed</name>
<node>/velocities/groundspeed-kt</node>
<type>float</type>
<format>%f</format>
</chunk>
<chunk>
<name>Airspeed</name>
<node>/velocities/airspeed-kt</node>
<type>float</type>
<format>%f</format>
</chunk>
<chunk>
<name>Temperature</name>
<node>/environment/temperature-degc</node>
<type>float</type>
<format>%f</format>
</chunk>
<chunk>
<name>Temperature</name>
<node>/environment/temperature-degc</node>
<type>float</type>
<format>%f</format>
</chunk>
<chunk>
<name>Pressure</name>
<node>/environment/pressure-inhg</node>
<type>float</type>
<format>%f</format>
</chunk>
</output>
</generic>
</PropertyList>

View File

@ -1,270 +0,0 @@
/**
******************************************************************************
*
* @file simulator.cpp
* @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010.
* @addtogroup GCSPlugins GCS Plugins
* @{
* @addtogroup HITLPlugin HITL Plugin
* @{
* @brief The Hardware In The Loop plugin
*****************************************************************************/
/*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include "simulator.h"
#include "qxtlogger.h"
#include "extensionsystem/pluginmanager.h"
#include "coreplugin/icore.h"
#include "coreplugin/threadmanager.h"
volatile bool Simulator::isStarted = false;
Simulator::Simulator(const SimulatorSettings& params) :
simProcess(NULL),
time(NULL),
inSocket(NULL),
outSocket(NULL),
settings(params),
updatePeriod(50),
simTimeout(2000),
autopilotConnectionStatus(false),
simConnectionStatus(false),
txTimer(NULL),
simTimer(NULL),
name("")
{
// move to thread
moveToThread(Core::ICore::instance()->threadManager()->getRealTimeThread());
connect(this, SIGNAL(myStart()), this, SLOT(onStart()),Qt::QueuedConnection);
emit myStart();
}
Simulator::~Simulator()
{
if(inSocket)
{
delete inSocket;
inSocket = NULL;
}
if(outSocket)
{
delete outSocket;
outSocket = NULL;
}
if(txTimer)
{
delete txTimer;
txTimer = NULL;
}
if(simTimer)
{
delete simTimer;
simTimer = NULL;
}
// NOTE: Does not currently work, may need to send control+c to through the terminal
if (simProcess != NULL)
{
//connect(simProcess,SIGNAL(finished(int, QProcess::ExitStatus)),this,SLOT(onFinished(int, QProcess::ExitStatus)));
simProcess->disconnect();
if(simProcess->state() == QProcess::Running)
simProcess->kill();
//if(simProcess->waitForFinished())
//emit deleteSimProcess();
delete simProcess;
simProcess = NULL;
}
}
void Simulator::onDeleteSimulator(void)
{
// [1]
Simulator::setStarted(false);
// [2]
Simulator::Instances().removeOne(simulatorId);
disconnect(this);
delete this;
}
void Simulator::onStart()
{
QMutexLocker locker(&lock);
Qt::HANDLE mainThread = QThread::currentThread();
qDebug() << "Simulator Thread: "<< mainThread;
// Get required UAVObjects
ExtensionSystem::PluginManager* pm = ExtensionSystem::PluginManager::instance();
UAVObjectManager* objManager = pm->getObject<UAVObjectManager>();
actDesired = ActuatorDesired::GetInstance(objManager);
altActual = AltitudeActual::GetInstance(objManager);
attActual = AttitudeActual::GetInstance(objManager);
posActual = PositionActual::GetInstance(objManager);
telStats = GCSTelemetryStats::GetInstance(objManager);
// Listen to autopilot connection events
TelemetryManager* telMngr = pm->getObject<TelemetryManager>();
connect(telMngr, SIGNAL(connected()), this, SLOT(onAutopilotConnect()));
connect(telMngr, SIGNAL(disconnected()), this, SLOT(onAutopilotDisconnect()));
//connect(telStats, SIGNAL(objectUpdated(UAVObject*)), this, SLOT(telStatsUpdated(UAVObject*)));
// If already connect setup autopilot
GCSTelemetryStats::DataFields stats = telStats->getData();
if ( stats.Status == GCSTelemetryStats::STATUS_CONNECTED )
onAutopilotConnect();
inSocket = new QUdpSocket();
outSocket = new QUdpSocket();
setupUdpPorts(settings.hostAddress,settings.inPort,settings.outPort);
emit processOutput("\nHost: " + settings.hostAddress + "\n" + \
"inputPort: " + QString::number(settings.inPort) + "\n" + \
"outpurPort: " + QString::number(settings.outPort) + "\n");
qxtLog->info("\nHost: " + settings.hostAddress + "\n" + \
"inputPort: " + QString::number(settings.inPort) + "\n" + \
"outpurPort: " + QString::number(settings.outPort) + "\n");
// if(!inSocket->waitForConnected(5000))
// processOutput(QString("Can't connect to %1 on %2 port!").arg(settings.hostAddress).arg(settings.inPort));
//outSocket->connectToHost(settings.hostAddress,settings.outPort); // FG
//if(!outSocket->waitForConnected(5000))
// processOutput(QString("Can't connect to %1 on %2 port!").arg(settings.hostAddress).arg(settings.outPort));
connect(inSocket, SIGNAL(readyRead()), this, SLOT(receiveUpdate()),Qt::DirectConnection);
// Setup transmit timer
txTimer = new QTimer();
connect(txTimer, SIGNAL(timeout()), this, SLOT(transmitUpdate()),Qt::DirectConnection);
txTimer->setInterval(updatePeriod);
txTimer->start();
// Setup simulator connection timer
simTimer = new QTimer();
connect(simTimer, SIGNAL(timeout()), this, SLOT(onSimulatorConnectionTimeout()),Qt::DirectConnection);
simTimer->setInterval(simTimeout);
simTimer->start();
// setup time
time = new QTime();
time->start();
current.T=0;
}
void Simulator::receiveUpdate()
{
// Update connection timer and status
simTimer->setInterval(simTimeout);
simTimer->stop();
simTimer->start();
if ( !simConnectionStatus )
{
simConnectionStatus = true;
emit simulatorConnected();
}
// Process data
while(inSocket->bytesAvailable() > 0)
{
// Receive datagram
QByteArray datagram;
datagram.resize(inSocket->pendingDatagramSize());
QHostAddress sender;
quint16 senderPort;
inSocket->readDatagram(datagram.data(), datagram.size(),
&sender, &senderPort);
QString datastr(datagram);
// Process incomming data
processUpdate(datastr);
}
}
void Simulator::setupObjects()
{
setupInputObject(actDesired, 75);
setupOutputObject(altActual, 250);
setupOutputObject(attActual, 75);
setupOutputObject(posActual, 250);
}
void Simulator::setupInputObject(UAVObject* obj, int updatePeriod)
{
UAVObject::Metadata mdata;
mdata = obj->getDefaultMetadata();
mdata.flightAccess = UAVObject::ACCESS_READWRITE;
mdata.gcsAccess = UAVObject::ACCESS_READWRITE;
mdata.flightTelemetryAcked = false;
mdata.flightTelemetryUpdateMode = UAVObject::UPDATEMODE_PERIODIC;
mdata.flightTelemetryUpdatePeriod = updatePeriod;
mdata.gcsTelemetryUpdateMode = UAVObject::UPDATEMODE_MANUAL;
obj->setMetadata(mdata);
}
void Simulator::setupOutputObject(UAVObject* obj, int updatePeriod)
{
UAVObject::Metadata mdata;
mdata = obj->getDefaultMetadata();
mdata.flightAccess = UAVObject::ACCESS_READONLY;
mdata.gcsAccess = UAVObject::ACCESS_READWRITE;
mdata.flightTelemetryUpdateMode = UAVObject::UPDATEMODE_NEVER;
mdata.gcsTelemetryAcked = false;
mdata.gcsTelemetryUpdateMode = UAVObject::UPDATEMODE_PERIODIC;
mdata.gcsTelemetryUpdatePeriod = updatePeriod;
obj->setMetadata(mdata);
}
void Simulator::onAutopilotConnect()
{
autopilotConnectionStatus = true;
setupObjects();
emit autopilotConnected();
}
void Simulator::onAutopilotDisconnect()
{
autopilotConnectionStatus = false;
emit autopilotDisconnected();
}
void Simulator::onSimulatorConnectionTimeout()
{
if ( simConnectionStatus )
{
simConnectionStatus = false;
emit simulatorDisconnected();
}
}
void Simulator::telStatsUpdated(UAVObject* obj)
{
GCSTelemetryStats::DataFields stats = telStats->getData();
if ( !autopilotConnectionStatus && stats.Status == GCSTelemetryStats::STATUS_CONNECTED )
{
onAutopilotConnect();
}
else if ( autopilotConnectionStatus && stats.Status != GCSTelemetryStats::STATUS_CONNECTED )
{
onAutopilotDisconnect();
}
}

View File

@ -1,194 +0,0 @@
/**
******************************************************************************
*
* @file simulator.h
* @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010.
* @addtogroup GCSPlugins GCS Plugins
* @{
* @addtogroup HITLPlugin HITL Plugin
* @{
* @brief The Hardware In The Loop plugin
*****************************************************************************/
/*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#ifndef ISIMULATOR_H
#define ISIMULATOR_H
#include <QObject>
#include <QUdpSocket>
#include <QTimer>
#include <QProcess>
#include "qscopedpointer.h"
#include "uavtalk/telemetrymanager.h"
#include "uavobjects/uavobjectmanager.h"
#include "uavobjects/actuatordesired.h"
#include "uavobjects/altitudeactual.h"
#include "uavobjects/attitudeactual.h"
#include "uavobjects/positionactual.h"
#include "uavobjects/gcstelemetrystats.h"
/**
* just imagine this was a class without methods and all public properties
*/
typedef struct _FLIGHT_PARAM {
// time
float T;
float dT;
// speed (relative)
float ias;
float tas;
float groundspeed;
// position (absolute)
float X;
float Y;
float Z;
// speed (absolute)
float dX;
float dY;
float dZ;
//angle
float azimuth;
float pitch;
float roll;
} FLIGHT_PARAM;
typedef struct _CONNECTION
{
QString simulatorId;
QString binPath;
QString dataPath;
QString hostAddress;
int outPort;
int inPort;
bool manual;
QString latitude;
QString longitude;
} SimulatorSettings;
class Simulator : public QObject
{
Q_OBJECT
public:
Simulator(const SimulatorSettings& params);
virtual ~Simulator();
bool isAutopilotConnected() const { return autopilotConnectionStatus; }
bool isSimulatorConnected() const { return simConnectionStatus; }
QString Name() const { return name; }
void setName(QString str) { name = str; }
QString SimulatorId() const { return simulatorId; }
void setSimulatorId(QString str) { simulatorId = str; }
static bool IsStarted() { return isStarted; }
static void setStarted(bool val) { isStarted = val; }
static QStringList& Instances() { return Simulator::instances; }
static void setInstance(const QString& str) { Simulator::instances.append(str); }
virtual void stopProcess() {}
virtual void setupUdpPorts(const QString& host, int inPort, int outPort) {}
signals:
void autopilotConnected();
void autopilotDisconnected();
void simulatorConnected();
void simulatorDisconnected();
void processOutput(QString str);
void deleteSimProcess();
void myStart();
public slots:
Q_INVOKABLE virtual bool setupProcess() { return true;}
private slots:
void onStart();
//void transmitUpdate();
void receiveUpdate();
void onAutopilotConnect();
void onAutopilotDisconnect();
void onSimulatorConnectionTimeout();
void telStatsUpdated(UAVObject* obj);
Q_INVOKABLE void onDeleteSimulator(void);
virtual void transmitUpdate() = 0;
virtual void processUpdate(QString& data) = 0;
protected:
QProcess* simProcess;
QTime* time;
QUdpSocket* inSocket;//(new QUdpSocket());
QUdpSocket* outSocket;
ActuatorDesired* actDesired;
AltitudeActual* altActual;
AttitudeActual* attActual;
PositionActual* posActual;
GCSTelemetryStats* telStats;
SimulatorSettings settings;
FLIGHT_PARAM current;
FLIGHT_PARAM old;
QMutex lock;
private:
int updatePeriod;
int simTimeout;
volatile bool autopilotConnectionStatus;
volatile bool simConnectionStatus;
QTimer* txTimer;
QTimer* simTimer;
QString name;
QString simulatorId;
volatile static bool isStarted;
static QStringList instances;
//QList<QScopedPointer<UAVDataObject> > requiredUAVObjects;
void setupOutputObject(UAVObject* obj, int updatePeriod);
void setupInputObject(UAVObject* obj, int updatePeriod);
void setupObjects();
};
class SimulatorCreator
{
public:
SimulatorCreator(QString id, QString descr) :
classId(id),
description(descr)
{}
virtual ~SimulatorCreator() {}
QString ClassId() const {return classId;}
QString Description() const {return description;}
virtual Simulator* createSimulator(const SimulatorSettings& params) = 0;
private:
QString classId;
QString description;
};
#endif // ISIMULATOR_H

View File

@ -1,119 +0,0 @@
/********************************************************************************
** Form generated from reading UI file 'fgoptionspage.ui'
**
** Created: Tue 24. Aug 21:12:33 2010
** by: Qt User Interface Compiler version 4.6.2
**
** WARNING! All changes made in this file will be lost when recompiling UI file!
********************************************************************************/
#ifndef UI_FGOPTIONSPAGE_H
#define UI_FGOPTIONSPAGE_H
#include <QtCore/QVariant>
#include <QtGui/QAction>
#include <QtGui/QApplication>
#include <QtGui/QButtonGroup>
#include <QtGui/QCheckBox>
#include <QtGui/QGridLayout>
#include <QtGui/QHeaderView>
#include <QtGui/QLabel>
#include <QtGui/QSpacerItem>
#include <QtGui/QWidget>
#include "utils/pathchooser.h"
QT_BEGIN_NAMESPACE
class Ui_FGOptionsPage
{
public:
QGridLayout *gridLayout;
QLabel *label;
QLabel *label_2;
Utils::PathChooser *executablePathChooser;
Utils::PathChooser *dataDirectoryPathChooser;
QCheckBox *fgManualControl;
QSpacerItem *verticalSpacer;
void setupUi(QWidget *FGOptionsPage)
{
if (FGOptionsPage->objectName().isEmpty())
FGOptionsPage->setObjectName(QString::fromUtf8("FGOptionsPage"));
FGOptionsPage->resize(400, 320);
QSizePolicy sizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
sizePolicy.setHorizontalStretch(0);
sizePolicy.setVerticalStretch(0);
sizePolicy.setHeightForWidth(FGOptionsPage->sizePolicy().hasHeightForWidth());
FGOptionsPage->setSizePolicy(sizePolicy);
gridLayout = new QGridLayout(FGOptionsPage);
gridLayout->setContentsMargins(0, 0, 0, 0);
gridLayout->setObjectName(QString::fromUtf8("gridLayout"));
label = new QLabel(FGOptionsPage);
label->setObjectName(QString::fromUtf8("label"));
QSizePolicy sizePolicy1(QSizePolicy::Preferred, QSizePolicy::Fixed);
sizePolicy1.setHorizontalStretch(0);
sizePolicy1.setVerticalStretch(0);
sizePolicy1.setHeightForWidth(label->sizePolicy().hasHeightForWidth());
label->setSizePolicy(sizePolicy1);
gridLayout->addWidget(label, 0, 0, 1, 1);
label_2 = new QLabel(FGOptionsPage);
label_2->setObjectName(QString::fromUtf8("label_2"));
sizePolicy1.setHeightForWidth(label_2->sizePolicy().hasHeightForWidth());
label_2->setSizePolicy(sizePolicy1);
gridLayout->addWidget(label_2, 1, 0, 1, 1);
executablePathChooser = new Utils::PathChooser(FGOptionsPage);
executablePathChooser->setObjectName(QString::fromUtf8("executablePathChooser"));
QSizePolicy sizePolicy2(QSizePolicy::Preferred, QSizePolicy::Preferred);
sizePolicy2.setHorizontalStretch(1);
sizePolicy2.setVerticalStretch(0);
sizePolicy2.setHeightForWidth(executablePathChooser->sizePolicy().hasHeightForWidth());
executablePathChooser->setSizePolicy(sizePolicy2);
gridLayout->addWidget(executablePathChooser, 0, 1, 1, 1);
dataDirectoryPathChooser = new Utils::PathChooser(FGOptionsPage);
dataDirectoryPathChooser->setObjectName(QString::fromUtf8("dataDirectoryPathChooser"));
gridLayout->addWidget(dataDirectoryPathChooser, 1, 1, 1, 1);
fgManualControl = new QCheckBox(FGOptionsPage);
fgManualControl->setObjectName(QString::fromUtf8("fgManualControl"));
sizePolicy1.setHeightForWidth(fgManualControl->sizePolicy().hasHeightForWidth());
fgManualControl->setSizePolicy(sizePolicy1);
gridLayout->addWidget(fgManualControl, 3, 1, 1, 1);
verticalSpacer = new QSpacerItem(20, 182, QSizePolicy::Minimum, QSizePolicy::Expanding);
gridLayout->addItem(verticalSpacer, 4, 1, 1, 1);
retranslateUi(FGOptionsPage);
QMetaObject::connectSlotsByName(FGOptionsPage);
} // setupUi
void retranslateUi(QWidget *FGOptionsPage)
{
FGOptionsPage->setWindowTitle(QApplication::translate("FGOptionsPage", "Form", 0, QApplication::UnicodeUTF8));
label->setText(QApplication::translate("FGOptionsPage", "FlightGear executable:", 0, QApplication::UnicodeUTF8));
label_2->setText(QApplication::translate("FGOptionsPage", "FlightGear data directory:", 0, QApplication::UnicodeUTF8));
#ifndef QT_NO_TOOLTIP
fgManualControl->setToolTip(QApplication::translate("FGOptionsPage", "Manual aircraft control (can be used when hardware is not available)", 0, QApplication::UnicodeUTF8));
#endif // QT_NO_TOOLTIP
fgManualControl->setText(QApplication::translate("FGOptionsPage", "Manual aircraft control (can be used when hardware is not available)", 0, QApplication::UnicodeUTF8));
} // retranslateUi
};
namespace Ui {
class FGOptionsPage: public Ui_FGOptionsPage {};
} // namespace Ui
QT_END_NAMESPACE
#endif // UI_FGOPTIONSPAGE_H

View File

@ -1,208 +0,0 @@
/********************************************************************************
** Form generated from reading UI file 'hitloptionspage.ui'
**
** Created: Wed 25. Aug 11:43:47 2010
** by: Qt User Interface Compiler version 4.6.2
**
** WARNING! All changes made in this file will be lost when recompiling UI file!
********************************************************************************/
#ifndef UI_HITLOPTIONSPAGE_H
#define UI_HITLOPTIONSPAGE_H
#include <QtCore/QVariant>
#include <QtGui/QAction>
#include <QtGui/QApplication>
#include <QtGui/QButtonGroup>
#include <QtGui/QCheckBox>
#include <QtGui/QComboBox>
#include <QtGui/QFrame>
#include <QtGui/QGridLayout>
#include <QtGui/QHeaderView>
#include <QtGui/QLabel>
#include <QtGui/QLineEdit>
#include <QtGui/QSpacerItem>
#include <QtGui/QWidget>
#include "utils/pathchooser.h"
QT_BEGIN_NAMESPACE
class Ui_HITLOptionsPage
{
public:
QGridLayout *gridLayout;
QLabel *label_3;
QComboBox *chooseFlightSimulator;
QFrame *line;
QLabel *label_7;
QLineEdit *latitude;
QLabel *label_8;
QLineEdit *longitude;
QLabel *label;
Utils::PathChooser *executablePath;
QLabel *label_2;
Utils::PathChooser *dataPath;
QCheckBox *manualControl;
QSpacerItem *verticalSpacer;
QLabel *label_6;
QLineEdit *hostAddress;
QLineEdit *outputPort;
QLabel *label_4;
QLineEdit *inputPort;
QLabel *label_5;
void setupUi(QWidget *HITLOptionsPage)
{
if (HITLOptionsPage->objectName().isEmpty())
HITLOptionsPage->setObjectName(QString::fromUtf8("HITLOptionsPage"));
HITLOptionsPage->resize(400, 320);
QSizePolicy sizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
sizePolicy.setHorizontalStretch(0);
sizePolicy.setVerticalStretch(0);
sizePolicy.setHeightForWidth(HITLOptionsPage->sizePolicy().hasHeightForWidth());
HITLOptionsPage->setSizePolicy(sizePolicy);
gridLayout = new QGridLayout(HITLOptionsPage);
gridLayout->setContentsMargins(0, 0, 0, 0);
gridLayout->setObjectName(QString::fromUtf8("gridLayout"));
label_3 = new QLabel(HITLOptionsPage);
label_3->setObjectName(QString::fromUtf8("label_3"));
gridLayout->addWidget(label_3, 1, 1, 1, 1);
chooseFlightSimulator = new QComboBox(HITLOptionsPage);
chooseFlightSimulator->setObjectName(QString::fromUtf8("chooseFlightSimulator"));
gridLayout->addWidget(chooseFlightSimulator, 1, 2, 1, 3);
line = new QFrame(HITLOptionsPage);
line->setObjectName(QString::fromUtf8("line"));
line->setFrameShape(QFrame::HLine);
line->setFrameShadow(QFrame::Sunken);
gridLayout->addWidget(line, 2, 1, 1, 4);
label_7 = new QLabel(HITLOptionsPage);
label_7->setObjectName(QString::fromUtf8("label_7"));
gridLayout->addWidget(label_7, 5, 1, 1, 1);
latitude = new QLineEdit(HITLOptionsPage);
latitude->setObjectName(QString::fromUtf8("latitude"));
gridLayout->addWidget(latitude, 5, 2, 1, 1);
label_8 = new QLabel(HITLOptionsPage);
label_8->setObjectName(QString::fromUtf8("label_8"));
gridLayout->addWidget(label_8, 5, 3, 1, 1);
longitude = new QLineEdit(HITLOptionsPage);
longitude->setObjectName(QString::fromUtf8("longitude"));
gridLayout->addWidget(longitude, 5, 4, 1, 1);
label = new QLabel(HITLOptionsPage);
label->setObjectName(QString::fromUtf8("label"));
QSizePolicy sizePolicy1(QSizePolicy::Preferred, QSizePolicy::Fixed);
sizePolicy1.setHorizontalStretch(0);
sizePolicy1.setVerticalStretch(0);
sizePolicy1.setHeightForWidth(label->sizePolicy().hasHeightForWidth());
label->setSizePolicy(sizePolicy1);
gridLayout->addWidget(label, 6, 1, 1, 1);
executablePath = new Utils::PathChooser(HITLOptionsPage);
executablePath->setObjectName(QString::fromUtf8("executablePath"));
QSizePolicy sizePolicy2(QSizePolicy::Preferred, QSizePolicy::Preferred);
sizePolicy2.setHorizontalStretch(1);
sizePolicy2.setVerticalStretch(0);
sizePolicy2.setHeightForWidth(executablePath->sizePolicy().hasHeightForWidth());
executablePath->setSizePolicy(sizePolicy2);
gridLayout->addWidget(executablePath, 6, 2, 1, 3);
label_2 = new QLabel(HITLOptionsPage);
label_2->setObjectName(QString::fromUtf8("label_2"));
sizePolicy1.setHeightForWidth(label_2->sizePolicy().hasHeightForWidth());
label_2->setSizePolicy(sizePolicy1);
gridLayout->addWidget(label_2, 7, 1, 1, 1);
dataPath = new Utils::PathChooser(HITLOptionsPage);
dataPath->setObjectName(QString::fromUtf8("dataPath"));
gridLayout->addWidget(dataPath, 7, 2, 1, 3);
manualControl = new QCheckBox(HITLOptionsPage);
manualControl->setObjectName(QString::fromUtf8("manualControl"));
sizePolicy1.setHeightForWidth(manualControl->sizePolicy().hasHeightForWidth());
manualControl->setSizePolicy(sizePolicy1);
gridLayout->addWidget(manualControl, 8, 1, 1, 4);
verticalSpacer = new QSpacerItem(20, 182, QSizePolicy::Minimum, QSizePolicy::Expanding);
gridLayout->addItem(verticalSpacer, 11, 2, 1, 1);
label_6 = new QLabel(HITLOptionsPage);
label_6->setObjectName(QString::fromUtf8("label_6"));
gridLayout->addWidget(label_6, 3, 1, 1, 1);
hostAddress = new QLineEdit(HITLOptionsPage);
hostAddress->setObjectName(QString::fromUtf8("hostAddress"));
gridLayout->addWidget(hostAddress, 3, 2, 1, 1);
outputPort = new QLineEdit(HITLOptionsPage);
outputPort->setObjectName(QString::fromUtf8("outputPort"));
gridLayout->addWidget(outputPort, 4, 4, 1, 1);
label_4 = new QLabel(HITLOptionsPage);
label_4->setObjectName(QString::fromUtf8("label_4"));
gridLayout->addWidget(label_4, 4, 3, 1, 1);
inputPort = new QLineEdit(HITLOptionsPage);
inputPort->setObjectName(QString::fromUtf8("inputPort"));
gridLayout->addWidget(inputPort, 4, 2, 1, 1);
label_5 = new QLabel(HITLOptionsPage);
label_5->setObjectName(QString::fromUtf8("label_5"));
gridLayout->addWidget(label_5, 4, 1, 1, 1);
retranslateUi(HITLOptionsPage);
QMetaObject::connectSlotsByName(HITLOptionsPage);
} // setupUi
void retranslateUi(QWidget *HITLOptionsPage)
{
HITLOptionsPage->setWindowTitle(QApplication::translate("HITLOptionsPage", "Form", 0, QApplication::UnicodeUTF8));
label_3->setText(QApplication::translate("HITLOptionsPage", "Choose flight simulator:", 0, QApplication::UnicodeUTF8));
label_7->setText(QApplication::translate("HITLOptionsPage", "Latitude in degrees:", 0, QApplication::UnicodeUTF8));
label_8->setText(QApplication::translate("HITLOptionsPage", "Longitude in degrees:", 0, QApplication::UnicodeUTF8));
label->setText(QApplication::translate("HITLOptionsPage", "Path executable:", 0, QApplication::UnicodeUTF8));
label_2->setText(QApplication::translate("HITLOptionsPage", "Data directory:", 0, QApplication::UnicodeUTF8));
#ifndef QT_NO_TOOLTIP
manualControl->setToolTip(QApplication::translate("HITLOptionsPage", "Manual aircraft control (can be used when hardware is not available)", 0, QApplication::UnicodeUTF8));
#endif // QT_NO_TOOLTIP
manualControl->setText(QApplication::translate("HITLOptionsPage", "Manual aircraft control (can be used when hardware is not available)", 0, QApplication::UnicodeUTF8));
label_6->setText(QApplication::translate("HITLOptionsPage", "Host Address:", 0, QApplication::UnicodeUTF8));
label_4->setText(QApplication::translate("HITLOptionsPage", "Output Port:", 0, QApplication::UnicodeUTF8));
label_5->setText(QApplication::translate("HITLOptionsPage", "Input Port:", 0, QApplication::UnicodeUTF8));
} // retranslateUi
};
namespace Ui {
class HITLOptionsPage: public Ui_HITLOptionsPage {};
} // namespace Ui
QT_END_NAMESPACE
#endif // UI_HITLOPTIONSPAGE_H

View File

@ -1,353 +0,0 @@
/********************************************************************************
** Form generated from reading UI file 'hitlwidget.ui'
**
** Created: Sat 28. Aug 19:09:21 2010
** by: Qt User Interface Compiler version 4.6.2
**
** WARNING! All changes made in this file will be lost when recompiling UI file!
********************************************************************************/
#ifndef UI_HITLWIDGET_H
#define UI_HITLWIDGET_H
#include <QtCore/QVariant>
#include <QtGui/QAction>
#include <QtGui/QApplication>
#include <QtGui/QButtonGroup>
#include <QtGui/QFrame>
#include <QtGui/QHBoxLayout>
#include <QtGui/QHeaderView>
#include <QtGui/QLabel>
#include <QtGui/QPushButton>
#include <QtGui/QSpacerItem>
#include <QtGui/QTextEdit>
#include <QtGui/QVBoxLayout>
#include <QtGui/QWidget>
QT_BEGIN_NAMESPACE
class Ui_HITLWidget
{
public:
QVBoxLayout *verticalLayout;
QFrame *frame;
QVBoxLayout *verticalLayout_2;
QHBoxLayout *horizontalLayout;
QPushButton *startButton;
QSpacerItem *horizontalSpacer;
QPushButton *stopButton;
QSpacerItem *horizontalSpacer_7;
QFrame *line;
QSpacerItem *horizontalSpacer_4;
QLabel *apLabel;
QSpacerItem *horizontalSpacer_5;
QLabel *simLabel;
QSpacerItem *horizontalSpacer_2;
QSpacerItem *horizontalSpacer_6;
QFrame *line_2;
QSpacerItem *horizontalSpacer_8;
QSpacerItem *horizontalSpacer_3;
QPushButton *buttonClearLog;
QTextEdit *textBrowser;
void setupUi(QWidget *HITLWidget)
{
if (HITLWidget->objectName().isEmpty())
HITLWidget->setObjectName(QString::fromUtf8("HITLWidget"));
HITLWidget->resize(786, 300);
QSizePolicy sizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred);
sizePolicy.setHorizontalStretch(0);
sizePolicy.setVerticalStretch(0);
sizePolicy.setHeightForWidth(HITLWidget->sizePolicy().hasHeightForWidth());
HITLWidget->setSizePolicy(sizePolicy);
HITLWidget->setStyleSheet(QString::fromUtf8("\n"
"\n"
"QScrollBar:vertical {\n"
" border: 1px solid grey;\n"
" background: grey;\n"
" margin: 22px 0 22px 0;\n"
" }\n"
"\n"
"QScrollBar:vertical:disabled {\n"
" border: 1px solid grey;\n"
" \n"
" background-color: grey;\n"
" margin: 22px 0 22px 0;\n"
" }\n"
"\n"
" QScrollBar::handle:vertical {\n"
"background-color: qlineargradient(spread:pad, x1:0.5, y1:0, x2:0.5, y2:1, stop:0 rgba(120, 120, 255, 255), stop:1 rgba(80, 80, 160, 255));\n"
" min-height: 20px;\n"
" }\n"
"\n"
"QScrollBar::handle:vertical:disabled{\n"
"background-color: grey;\n"
" min-height: 20px;\n"
" }\n"
"\n"
"\n"
" QScrollBar::handle:vertical:pressed {\n"
"\n"
" background-color: rgb(85, 85, 255);\n"
"background-color: qlineargradient(spread:pad, x1:0.5, y1:0, x2:0.5, y2:1, stop:0 rgba(170, 170, 255, 255), stop:1 rgba(80, 80, 160, 255));\n"
"\n"
" min-height: 20px;\n"
" }\n"
"\n"
" QScrollBar::add-line:vertical {\n"
" border: 1px solid black;\n"
"background-color: qlineargradient("
"spread:pad, x1:0.5, y1:0, x2:0.5, y2:1, stop:0 rgba(48, 48, 48, 255), stop:1 rgba(120, 120, 120, 255));\n"
" height: 20px;\n"
" subcontrol-position: bottom;\n"
" subcontrol-origin: margin;\n"
" }\n"
"\n"
" QScrollBar::add-line:vertical:disabled {\n"
"background-color: qlineargradient(spread:pad, x1:0.5, y1:0, x2:0.5, y2:1, stop:0 rgba(100, 100, 100, 255));\n"
" border: 1px solid grey;\n"
"\n"
" }\n"
"\n"
" QScrollBar::sub-line:vertical:disabled {\n"
"background-color: qlineargradient(spread:pad, x1:0.5, y1:0, x2:0.5, y2:1, stop:0 rgba(100, 100, 100, 255));\n"
" border: 1px solid grey;\n"
"\n"
" }\n"
"\n"
" QScrollBar::add-line:vertical:pressed {\n"
"background-color: qlineargradient(spread:pad, x1:0.5, y1:0, x2:0.5, y2:1, stop:0 rgba(255, 255, 255, 200), stop:1 rgba(180, 180, 180, 200));\n"
" }\n"
"\n"
" QScrollBar::sub-line:vertical:pressed {\n"
"background-color: qlineargradient(spread:pad, x1:0.5, y1:0, x2:0.5, y2:1, stop:0 rgba(255, 255, 255, 200), stop:1 rgba(180, 180, 180, 200));\n"
""
" }\n"
"\n"
" QScrollBar::sub-line:vertical {\n"
" border: 1px solid black; \n"
"background-color: qlineargradient(spread:pad, x1:0.5, y1:0, x2:0.5, y2:1, stop:0 rgba(48, 48, 48, 255), stop:1 rgba(120, 120, 120, 255));\n"
" height: 20px;\n"
" subcontrol-position: top;\n"
" subcontrol-origin: margin;\n"
" }\n"
" QScrollBar::down-arrow:vertical {\n"
" \n"
" image: url(:/hitlnew/images/arrow-down2.png);\n"
" }\n"
"\n"
" QScrollBar::up-arrow:vertical {\n"
" image: url(:/hitlnew/images/arrow-up2.png);\n"
" }\n"
"\n"
" QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical {\n"
" background: none;\n"
" }\n"
"\n"
"\n"
"QPushButton {\n"
"background-color: qlineargradient(spread:pad, x1:0.5, y1:0, x2:0.5, y2:1, stop:0 rgba(110, 110, 110, 255), stop:1 rgba(71, 71, 71, 255));\n"
"\n"
" color: rgb(255, 255, 255);\n"
"border: 1px solid black; \n"
"width: 66px;\n"
"height: 20px;\n"
"}\n"
"\n"
"QPushButton:disabled {\n"
"background-color: qlineargradient(spread:pad, x1:0.5, y1:0, x2"
":0.5, y2:1, stop:0 rgba(120, 120, 120, 255));\n"
" color: rgb(194, 194, 194);\n"
"border: 1px solid gray; \n"
"width: 66px;\n"
"height: 20px;\n"
"}\n"
"\n"
"QPushButton:hover {\n"
"background-color: qlineargradient(spread:pad, x1:0.5, y1:0, x2:0.5, y2:1, stop:0 rgba(255, 255, 255, 200), stop:1 rgba(180, 180, 180, 200));\n"
"color: rgb(255, 255, 255);\n"
"border: 0px; \n"
"}\n"
"QPushButton:pressed {\n"
"background-color: qlineargradient(spread:pad, x1:0.5, y1:0, x2:0.5, y2:1, stop:0 rgba(48, 48, 48, 255), stop:1 rgba(120, 120, 120, 255));\n"
"color: rgb(255, 255, 255);\n"
"border: 0px; \n"
"}\n"
"\n"
"QPushButton:checked {\n"
"background-color: qlineargradient(spread:pad, x1:0.5, y1:0, x2:0.5, y2:1, stop:0 rgba(48, 48, 48, 255), stop:1 rgba(120, 120, 120, 255));\n"
"color: rgb(255, 255, 255);\n"
"border: 0px; \n"
"}"));
verticalLayout = new QVBoxLayout(HITLWidget);
verticalLayout->setContentsMargins(0, 0, 0, 0);
verticalLayout->setObjectName(QString::fromUtf8("verticalLayout"));
frame = new QFrame(HITLWidget);
frame->setObjectName(QString::fromUtf8("frame"));
sizePolicy.setHeightForWidth(frame->sizePolicy().hasHeightForWidth());
frame->setSizePolicy(sizePolicy);
frame->setMinimumSize(QSize(0, 0));
frame->setMaximumSize(QSize(16777215, 16777215));
frame->setStyleSheet(QString::fromUtf8("\n"
"\n"
"QFrame{\n"
"background-color: qlineargradient(spread:pad, x1:0.5, y1:0, x2:0.5, y2:1, stop:0 rgba(110, 110, 110, 255), stop:1 rgba(71, 71, 71, 255));\n"
"color: rgba(0, 0, 0, 128);\n"
"}\n"
""));
frame->setFrameShape(QFrame::StyledPanel);
frame->setFrameShadow(QFrame::Raised);
verticalLayout_2 = new QVBoxLayout(frame);
verticalLayout_2->setObjectName(QString::fromUtf8("verticalLayout_2"));
verticalLayout_2->setSizeConstraint(QLayout::SetMaximumSize);
horizontalLayout = new QHBoxLayout();
horizontalLayout->setObjectName(QString::fromUtf8("horizontalLayout"));
horizontalLayout->setSizeConstraint(QLayout::SetDefaultConstraint);
startButton = new QPushButton(frame);
startButton->setObjectName(QString::fromUtf8("startButton"));
startButton->setStyleSheet(QString::fromUtf8(""));
horizontalLayout->addWidget(startButton);
horizontalSpacer = new QSpacerItem(10, 20, QSizePolicy::Preferred, QSizePolicy::Minimum);
horizontalLayout->addItem(horizontalSpacer);
stopButton = new QPushButton(frame);
stopButton->setObjectName(QString::fromUtf8("stopButton"));
stopButton->setEnabled(false);
horizontalLayout->addWidget(stopButton);
horizontalSpacer_7 = new QSpacerItem(5, 20, QSizePolicy::Preferred, QSizePolicy::Minimum);
horizontalLayout->addItem(horizontalSpacer_7);
line = new QFrame(frame);
line->setObjectName(QString::fromUtf8("line"));
line->setFrameShadow(QFrame::Plain);
line->setFrameShape(QFrame::VLine);
horizontalLayout->addWidget(line);
horizontalSpacer_4 = new QSpacerItem(5, 20, QSizePolicy::Preferred, QSizePolicy::Minimum);
horizontalLayout->addItem(horizontalSpacer_4);
apLabel = new QLabel(frame);
apLabel->setObjectName(QString::fromUtf8("apLabel"));
QSizePolicy sizePolicy1(QSizePolicy::Fixed, QSizePolicy::Preferred);
sizePolicy1.setHorizontalStretch(0);
sizePolicy1.setVerticalStretch(0);
sizePolicy1.setHeightForWidth(apLabel->sizePolicy().hasHeightForWidth());
apLabel->setSizePolicy(sizePolicy1);
apLabel->setMinimumSize(QSize(140, 0));
QFont font;
font.setBold(false);
font.setWeight(50);
apLabel->setFont(font);
apLabel->setLayoutDirection(Qt::LeftToRight);
apLabel->setAutoFillBackground(false);
apLabel->setStyleSheet(QString::fromUtf8("color: rgb(255, 255, 255);"));
apLabel->setAlignment(Qt::AlignCenter);
horizontalLayout->addWidget(apLabel);
horizontalSpacer_5 = new QSpacerItem(10, 20, QSizePolicy::Preferred, QSizePolicy::Minimum);
horizontalLayout->addItem(horizontalSpacer_5);
simLabel = new QLabel(frame);
simLabel->setObjectName(QString::fromUtf8("simLabel"));
sizePolicy1.setHeightForWidth(simLabel->sizePolicy().hasHeightForWidth());
simLabel->setSizePolicy(sizePolicy1);
simLabel->setMinimumSize(QSize(140, 0));
simLabel->setStyleSheet(QString::fromUtf8("color: rgb(255, 255, 255);"));
simLabel->setAlignment(Qt::AlignCenter);
horizontalLayout->addWidget(simLabel);
horizontalSpacer_2 = new QSpacerItem(10, 20, QSizePolicy::Preferred, QSizePolicy::Minimum);
horizontalLayout->addItem(horizontalSpacer_2);
horizontalSpacer_6 = new QSpacerItem(5, 20, QSizePolicy::Preferred, QSizePolicy::Minimum);
horizontalLayout->addItem(horizontalSpacer_6);
line_2 = new QFrame(frame);
line_2->setObjectName(QString::fromUtf8("line_2"));
line_2->setFrameShadow(QFrame::Plain);
line_2->setFrameShape(QFrame::VLine);
horizontalLayout->addWidget(line_2);
horizontalSpacer_8 = new QSpacerItem(5, 20, QSizePolicy::Preferred, QSizePolicy::Minimum);
horizontalLayout->addItem(horizontalSpacer_8);
horizontalSpacer_3 = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
horizontalLayout->addItem(horizontalSpacer_3);
buttonClearLog = new QPushButton(frame);
buttonClearLog->setObjectName(QString::fromUtf8("buttonClearLog"));
horizontalLayout->addWidget(buttonClearLog);
verticalLayout_2->addLayout(horizontalLayout);
textBrowser = new QTextEdit(frame);
textBrowser->setObjectName(QString::fromUtf8("textBrowser"));
QSizePolicy sizePolicy2(QSizePolicy::Expanding, QSizePolicy::Expanding);
sizePolicy2.setHorizontalStretch(0);
sizePolicy2.setVerticalStretch(0);
sizePolicy2.setHeightForWidth(textBrowser->sizePolicy().hasHeightForWidth());
textBrowser->setSizePolicy(sizePolicy2);
textBrowser->setMinimumSize(QSize(0, 0));
textBrowser->setAutoFillBackground(false);
textBrowser->setStyleSheet(QString::fromUtf8("QTextEdit {\n"
" background-color: white;\n"
" color: rgb(0, 0, 0);\n"
"}"));
textBrowser->setFrameShape(QFrame::NoFrame);
textBrowser->setFrameShadow(QFrame::Plain);
textBrowser->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn);
verticalLayout_2->addWidget(textBrowser);
verticalLayout->addWidget(frame);
retranslateUi(HITLWidget);
QMetaObject::connectSlotsByName(HITLWidget);
} // setupUi
void retranslateUi(QWidget *HITLWidget)
{
HITLWidget->setWindowTitle(QApplication::translate("HITLWidget", "Form", 0, QApplication::UnicodeUTF8));
#ifndef QT_NO_TOOLTIP
startButton->setToolTip(QApplication::translate("HITLWidget", "Request update", 0, QApplication::UnicodeUTF8));
#endif // QT_NO_TOOLTIP
startButton->setText(QApplication::translate("HITLWidget", "Start", 0, QApplication::UnicodeUTF8));
#ifndef QT_NO_TOOLTIP
stopButton->setToolTip(QApplication::translate("HITLWidget", "Send update", 0, QApplication::UnicodeUTF8));
#endif // QT_NO_TOOLTIP
stopButton->setText(QApplication::translate("HITLWidget", "Stop", 0, QApplication::UnicodeUTF8));
apLabel->setText(QApplication::translate("HITLWidget", "AutoPilot disconnected", 0, QApplication::UnicodeUTF8));
simLabel->setText(QApplication::translate("HITLWidget", " Simulator disconnected ", 0, QApplication::UnicodeUTF8));
buttonClearLog->setText(QApplication::translate("HITLWidget", "Clear Log", 0, QApplication::UnicodeUTF8));
} // retranslateUi
};
namespace Ui {
class HITLWidget: public Ui_HITLWidget {};
} // namespace Ui
QT_END_NAMESPACE
#endif // UI_HITLWIDGET_H