1
0
mirror of https://bitbucket.org/librepilot/librepilot.git synced 2025-03-15 07:29:15 +01:00

Merge branch 'rel-15.05' into rel-nano-15.05

Conflicts:
	ground/openpilotgcs/src/plugins/uavobjects/uavobjects.pro
This commit is contained in:
abeck70 2015-05-19 22:24:16 +10:00
commit c14be34551
21 changed files with 232 additions and 420 deletions

View File

@ -53,8 +53,6 @@ DIRS = $(DL_DIR) $(TOOLS_DIR) $(BUILD_DIR) $(PACKAGE_DIR) $(DIST_DIR)
# Set up default build configurations (debug | release)
GCS_BUILD_CONF := release
UAVOGEN_BUILD_CONF := release
ANDROIDGCS_BUILD_CONF := debug
GOOGLE_API_VERSION := 14
# Clean out undesirable variables from the environment and command-line
@ -119,13 +117,13 @@ include $(ROOT_DIR)/make/tools.mk
# We almost need to consider autoconf/automake instead of this
ifeq ($(UNAME), Linux)
QT_SPEC = linux-g++
UAVOBJGENERATOR = "$(BUILD_DIR)/uavobjgenerator/uavobjgenerator"
UAVOBJGENERATOR = $(BUILD_DIR)/uavobjgenerator/uavobjgenerator
else ifeq ($(UNAME), Darwin)
QT_SPEC = macx-g++
UAVOBJGENERATOR = "$(BUILD_DIR)/uavobjgenerator/uavobjgenerator"
UAVOBJGENERATOR = $(BUILD_DIR)/uavobjgenerator/uavobjgenerator
else ifeq ($(UNAME), Windows)
QT_SPEC = win32-g++
UAVOBJGENERATOR = "$(BUILD_DIR)/uavobjgenerator/$(UAVOGEN_BUILD_CONF)/uavobjgenerator.exe"
UAVOBJGENERATOR = $(BUILD_DIR)/uavobjgenerator/uavobjgenerator.exe
endif
##############################
@ -152,20 +150,14 @@ clean: all_clean
#
##############################
ifeq ($(V), 1)
UAVOGEN_SILENT :=
else
UAVOGEN_SILENT := silent
endif
UAVOBJGENERATOR_DIR = $(BUILD_DIR)/uavobjgenerator
DIRS += $(UAVOBJGENERATOR_DIR)
.PHONY: uavobjgenerator
uavobjgenerator: | $(UAVOBJGENERATOR_DIR)
uavobjgenerator $(UAVOBJGENERATOR): | $(UAVOBJGENERATOR_DIR)
$(V1) cd $(UAVOBJGENERATOR_DIR) && \
$(QMAKE) $(ROOT_DIR)/ground/uavobjgenerator/uavobjgenerator.pro \
-spec $(QT_SPEC) -r CONFIG+=$(UAVOGEN_BUILD_CONF) CONFIG+=$(UAVOGEN_SILENT) && \
( [ -f Makefile ] || $(QMAKE) $(ROOT_DIR)/ground/uavobjgenerator/uavobjgenerator.pro \
-spec $(QT_SPEC) CONFIG+=$(GCS_BUILD_CONF) CONFIG+=$(GCS_SILENT) ) && \
$(MAKE) --no-print-directory -w
UAVOBJ_TARGETS := gcs flight python matlab java wireshark
@ -176,15 +168,14 @@ uavobjects: $(addprefix uavobjects_, $(UAVOBJ_TARGETS))
UAVOBJ_XML_DIR := $(ROOT_DIR)/shared/uavobjectdefinition
UAVOBJ_OUT_DIR := $(BUILD_DIR)/uavobject-synthetics
DIRS += $(UAVOBJ_OUT_DIR)
uavobjects_%: $(UAVOBJ_OUT_DIR) uavobjgenerator
$(V1) ( cd $(UAVOBJ_OUT_DIR) && \
uavobjects_%: uavobjgenerator
@$(MKDIR) -p $(UAVOBJ_OUT_DIR)/$*
$(V1) ( cd $(UAVOBJ_OUT_DIR)/$* && \
$(UAVOBJGENERATOR) -$* $(UAVOBJ_XML_DIR) $(ROOT_DIR) ; \
)
uavobjects_test: $(UAVOBJ_OUT_DIR) uavobjgenerator
$(V1) $(UAVOBJGENERATOR) -v -none $(UAVOBJ_XML_DIR) $(ROOT_DIR)
uavobjects_test: uavobjgenerator
$(V1) $(UAVOBJGENERATOR) -v $(UAVOBJ_XML_DIR) $(ROOT_DIR)
uavobjects_clean:
@$(ECHO) " CLEAN $(call toprel, $(UAVOBJ_OUT_DIR))"
@ -477,7 +468,7 @@ openpilotgcs_qmake $(OPENPILOTGCS_MAKEFILE): | $(OPENPILOTGCS_DIR)
-spec $(QT_SPEC) -r CONFIG+=$(GCS_BUILD_CONF) CONFIG+=$(GCS_SILENT) $(GCS_QMAKE_OPTS)
.PHONY: openpilotgcs
openpilotgcs: uavobjects_gcs $(OPENPILOTGCS_MAKEFILE)
openpilotgcs: uavobjgenerator $(OPENPILOTGCS_MAKEFILE)
$(V1) $(MAKE) -w -C $(OPENPILOTGCS_DIR)/$(MAKE_DIR);
.PHONY: openpilotgcs_clean

View File

@ -1,4 +1,4 @@
Release Notes - OpenPilot - Version RELEASE-15.05
Release Notes - OpenPilot - Version RELEASE-15.05 RC2
Fully autonomous flight is now possible with autotakeoff and landing as flight modes available to path plans.
An all new implementation of altitude vario provides improved altitude maintenance and smoother flight.
A new RateTrainer mode for beginners and aerial photography make it easier to learn this mode my limiting the pitch and roll extents.
@ -7,9 +7,12 @@ It is now easier to takeoff with an improved axislock on yaw implementation.
Full speed flight just got faster with new motor constraints that maintain your ability to enact roll without requiring a upper throttle limit.
Setup on GPS just got easier. See the wiki for details.
New control protocols and support for due telemtry and OSD programing have been added.
CC3D is no longer supported.
The full list of bugfixes in this release is accessible here:
Release Notes - OpenPilot - Version RELEASE-15.05 RC2
** Bug
* [OP-1691] - PIOS_DELAY_WaitmS() in RFM22B causes jitter
* [OP-1756] - Add option to Vehicle Setup Wizard to calibrate all motor outputs at the same time.
@ -18,11 +21,14 @@ The full list of bugfixes in this release is accessible here:
* [OP-1794] - AxisLock windup not cleared with low throttle while armed
* [OP-1834] - Piro Comp - adverse effect in Atti/Ratti Modes
* [OP-1841] - Serial telemetry is not reliable
* [OP-1847] - GPS assist does not update destination when reusing a flight mode for assist
* [OP-1855] - Limit parsing error in logs when starting GCS
* [OP-1858] - PathPlanner AutoTakeoff fixes
* [OP-1867] - PathPlanner AutoLand simplification
* [OP-1869] - Allow Analog Airspeed scale
* [OP-1872] - Vehicle Wiz Tricopter tail servo settings don't save
* [OP-1888] - SIGSEGV after starting simulator in HITL
* [OP-1893] - Deadband changes max stick input
** Improvement
@ -47,7 +53,11 @@ The full list of bugfixes in this release is accessible here:
* [OP-1844] - Create a vagrant environment that contains all the bits for Android development, including Android.
* [OP-1848] - Rewrite AltVario/Hold in C++ for functional improvements
* [OP-1852] - Include version number in window title bar.
* [OP-1853] - Ground build tidy
* [OP-1874] - Various improvements to led notifications
* [OP-1882] - vtol path follower thrust control now set to auto as a default
* [OP-1884] - Improve low pass filter and gyro tau values
* [OP-1887] - PFD update
** New Feature
* [OP-1696] - PathFollower C++ Rewrite: Autonomous Landing, Velocity Roam, RTBL, GroundPathFollower
@ -61,7 +71,6 @@ The full list of bugfixes in this release is accessible here:
* [OP-1863] - RateTrainer mode - add maxpitch for beginners and aerial photography
--- RELEASE-15.02.02 ---
This release fixes a bug that prevents revo onboard mag to work correctly.

View File

@ -19,13 +19,6 @@
# Release builds may fail because it seems that qt-creator does not
# define QTMINGW variable used to copy MinGW DLLs in release builds.
#
# There is a minor problem with dependencies. qmake needs synthetic
# files when it generates GCS Makefiles. But we do not have
# uavobjgenerator built yet. So we use the following trick: at make
# stage in uavobject-synthetics we rerun qmake for openpilotgcs.pro
# and regenerate GCS Makefiles using just built synthetic files.
# It takes some extra time but solves the dependency problem.
#
# Please note that this meta-project is only intended to be used by
# qt-creator users. Top level Makefile handles all dependencies itself
# and does not use ground.pro.
@ -38,16 +31,11 @@ TEMPLATE = subdirs
SUBDIRS = \
sub_openpilotgcs \
sub_uavobject-synthetics \
sub_uavobjgenerator
# uavobjgenerator
sub_uavobjgenerator.subdir = uavobjgenerator
# uavobject-synthetics
sub_uavobject-synthetics.subdir = uavobject-synthetics
sub_uavobject-synthetics.depends = sub_uavobjgenerator
# openpilotgcs
sub_openpilotgcs.subdir = openpilotgcs
sub_openpilotgcs.depends = sub_uavobject-synthetics
sub_openpilotgcs.depends = sub_uavobjgenerator

View File

@ -11,10 +11,6 @@ defineReplace(cleanPath) {
return($$join(out, /, $$pfx))
}
defineReplace(targetPath) {
return($$replace(1, /, $$QMAKE_DIR_SEP))
}
defineReplace(addNewline) {
return($$escape_expand(\\n\\t))
}
@ -41,8 +37,8 @@ defineTest(addCopyFileTarget) {
$${file}.depends = $$src
# create directory. Better would be an order only dependency
$${file}.commands = -@$(MKDIR) \"$$targetPath($$dirname(dest))\" $$addNewline()
$${file}.commands += $(COPY_FILE) \"$$targetPath($$src)\" \"$$targetPath($$dest)\"
$${file}.commands = -@$(MKDIR) \"$$dirname(dest)\" $$addNewline()
$${file}.commands += $(COPY_FILE) \"$$src\" \"$$dest\"
QMAKE_EXTRA_TARGETS += $$file
POST_TARGETDEPS += $$eval($${file}.target)
@ -66,10 +62,10 @@ defineTest(addCopyDirTarget) {
# Windows does not update directory timestamp if files are modified
win32: $${dir}.depends += FORCE
$${dir}.commands = @rm -rf \"$$targetPath($$dest)\" $$addNewline()
$${dir}.commands = @rm -rf \"$$dest\" $$addNewline()
# create directory. Better would be an order only dependency
$${dir}.commands += -@$(MKDIR) \"$$targetPath($$dirname(dest))\" $$addNewline()
$${dir}.commands += $(COPY_DIR) \"$$targetPath($$src)\" \"$$targetPath($$dest)\"
$${dir}.commands += -@$(MKDIR) \"$$dirname(dest)\" $$addNewline()
$${dir}.commands += $(COPY_DIR) \"$$src\" \"$$dest\"
QMAKE_EXTRA_TARGETS += $$dir
POST_TARGETDEPS += $$eval($${dir}.target)
@ -168,7 +164,6 @@ macx {
MESAWIN_DIR = $$(MESAWIN_DIR)
isEmpty(MESAWIN_DIR):MESAWIN_DIR = $${TOOLS_DIR}/mesawin
contains(TEMPLATE, vc.*)|contains(TEMPLATE_PREFIX, vc):vcproj = 1
GCS_APP_TARGET = openpilotgcs
GCS_QT_PLUGINS_PATH = $$GCS_APP_PATH

View File

@ -11,28 +11,23 @@ defineReplace(prependAll) {
return($$result)
}
XMLPATTERNS = $$targetPath($$[QT_INSTALL_BINS]/xmlpatterns)
LUPDATE = $$targetPath($$[QT_INSTALL_BINS]/lupdate) -locations relative -no-ui-lines -no-sort
LRELEASE = $$targetPath($$[QT_INSTALL_BINS]/lrelease)
LCONVERT = $$targetPath($$[QT_INSTALL_BINS]/lconvert)
wd = $$replace(GCS_SOURCE_TREE, /, $$QMAKE_DIR_SEP)
XMLPATTERNS = $$[QT_INSTALL_BINS]/xmlpatterns
LUPDATE = $$[QT_INSTALL_BINS]/lupdate -locations relative -no-ui-lines -no-sort
LRELEASE = $$[QT_INSTALL_BINS]/lrelease
LCONVERT = $$[QT_INSTALL_BINS]/lconvert
TRANSLATIONS = $$prependAll(LANGUAGES, $$PWD/openpilotgcs_,.ts)
MIME_TR_H = $$PWD/mime_tr.h
contains(QT_VERSION, ^4\\.[0-5]\\..*) {
ts.commands = @echo This Qt version is too old for the ts target. Need Qt 4.6+.
} else {
for(dir, $$list($$files($$GCS_SOURCE_TREE/src/plugins/*))):MIMETYPES_FILES += $$files($$dir/*.mimetypes.xml)
MIMETYPES_FILES = \"$$join(MIMETYPES_FILES, \", \")\"
QMAKE_SUBSTITUTES += extract-mimetypes.xq.in
ts.commands += \
$$XMLPATTERNS -output $$MIME_TR_H $$PWD/extract-mimetypes.xq && \
(cd $$GCS_SOURCE_TREE && $$LUPDATE src $$MIME_TR_H -ts $$TRANSLATIONS) && \
$$QMAKE_DEL_FILE $$targetPath($$MIME_TR_H)
}
for(dir, $$list($$files($$GCS_SOURCE_TREE/src/plugins/*))):MIMETYPES_FILES += $$files($$dir/*.mimetypes.xml)
MIMETYPES_FILES = \"$$join(MIMETYPES_FILES, \", \")\"
QMAKE_SUBSTITUTES += extract-mimetypes.xq.in
ts.commands += \
$$XMLPATTERNS -output $$MIME_TR_H $$PWD/extract-mimetypes.xq && \
(cd $$GCS_SOURCE_TREE && $$LUPDATE src $$MIME_TR_H -ts $$TRANSLATIONS) && \
$$QMAKE_DEL_FILE $$MIME_TR_H
QMAKE_EXTRA_TARGETS += ts
TEMPLATE = app
@ -43,27 +38,15 @@ LIBS =
updateqm.input = TRANSLATIONS
updateqm.output = $$GCS_DATA_PATH/translations/${QMAKE_FILE_BASE}.qm
isEmpty(vcproj):updateqm.variable_out = PRE_TARGETDEPS
updateqm.variable_out = PRE_TARGETDEPS
updateqm.commands = $$LRELEASE ${QMAKE_FILE_IN} -qm ${QMAKE_FILE_OUT}
updateqm.name = LRELEASE ${QMAKE_FILE_IN}
updateqm.CONFIG += no_link
QMAKE_EXTRA_COMPILERS += updateqm
isEmpty(vcproj) {
QMAKE_LINK = @: IGNORE THIS LINE
OBJECTS_DIR =
win32:CONFIG -= embed_manifest_exe
} else {
CONFIG += console
PHONY_DEPS = .
phony_src.input = PHONY_DEPS
phony_src.output = phony.c
phony_src.variable_out = GENERATED_SOURCES
phony_src.commands = echo int main() { return 0; } > phony.c
phony_src.name = CREATE phony.c
phony_src.CONFIG += combine
QMAKE_EXTRA_COMPILERS += phony_src
}
QMAKE_LINK = @: IGNORE THIS LINE
OBJECTS_DIR =
win32:CONFIG -= embed_manifest_exe
qmfiles.files = $$prependAll(LANGUAGES, $$OUT_PWD/openpilotgcs_,.qm)
qmfiles.path = /share/openpilotgcs/translations
@ -82,7 +65,7 @@ QT_TRANSLATIONS = $$QtQmExists(LANGUAGES)
copyQT_QMs.input = QT_TRANSLATIONS
copyQT_QMs.output = $$GCS_DATA_PATH/translations/${QMAKE_FILE_BASE}.qm
isEmpty(vcproj):copyQT_QMs.variable_out = PRE_TARGETDEPS
copyQT_QMs.variable_out = PRE_TARGETDEPS
copyQT_QMs.commands = $(COPY_FILE) ${QMAKE_FILE_IN} ${QMAKE_FILE_OUT}
copyQT_QMs.name = Copy ${QMAKE_FILE_IN}
copyQT_QMs.CONFIG += no_link

View File

@ -26,7 +26,7 @@ SOURCES = version_info.cpp
# Create custom version_info target which generates a real file
version_info.target = $$VERSION_INFO_FILE
version_info.commands = -$(MKDIR) $$targetPath($$VERSION_INFO_DIR) $$addNewline()
version_info.commands = -$(MKDIR) $$VERSION_INFO_DIR $$addNewline()
version_info.commands += $$VERSION_INFO_COMMAND \
--path=\"$$ROOT_DIR\" \
--template=\"$$VERSION_INFO_TEMPLATE\" \

View File

@ -19,7 +19,7 @@ isEmpty(TARGET) {
PLUGINSPECS = $${_PRO_FILE_PWD_}/$${TARGET}.pluginspec
copy2build.input = PLUGINSPECS
copy2build.output = $$DESTDIR/${QMAKE_FUNC_FILE_IN_stripSrcDir}
isEmpty(vcproj):copy2build.variable_out = PRE_TARGETDEPS
copy2build.variable_out = PRE_TARGETDEPS
copy2build.commands = $$QMAKE_COPY ${QMAKE_FILE_IN} ${QMAKE_FILE_OUT}
copy2build.name = COPY ${QMAKE_FILE_IN}
copy2build.CONFIG += no_link

View File

@ -20,7 +20,7 @@ include(../../python.pri)
# Create custom authors target which generates a real file
authors.target = $$AUTHORS_FILE
authors.commands = -$(MKDIR) $$targetPath($$AUTHORS_DIR) $$addNewline()
authors.commands = -$(MKDIR) $$AUTHORS_DIR $$addNewline()
authors.commands += $$AUTHORS_COMMAND \
--infile=\"$$AUTHORS_SOURCE\" \
--template=\"$$AUTHORS_TEMPLATE\" \

View File

@ -2,5 +2,7 @@ include(uavobjects_dependencies.pri)
# Add the include path to the built-in uavobject include files.
INCLUDEPATH += $$PWD
# Add the include path to the generated uavobject include files.
INCLUDEPATH += $$shadowed($$PWD)
LIBS *= -l$$qtLibraryName(UAVObjects)

View File

@ -25,229 +25,126 @@ SOURCES += \
OTHER_FILES += UAVObjects.pluginspec
# Add in all of the synthetic/generated uavobject files
HEADERS += \
$$UAVOBJECT_SYNTHETICS/statusgrounddrive.h \
$$UAVOBJECT_SYNTHETICS/statusvtolautotakeoff.h \
$$UAVOBJECT_SYNTHETICS/pidstatus.h \
$$UAVOBJECT_SYNTHETICS/statusvtolland.h \
$$UAVOBJECT_SYNTHETICS/vtolselftuningstats.h \
$$UAVOBJECT_SYNTHETICS/accelgyrosettings.h \
$$UAVOBJECT_SYNTHETICS/accessorydesired.h \
$$UAVOBJECT_SYNTHETICS/barosensor.h \
$$UAVOBJECT_SYNTHETICS/airspeedsensor.h \
$$UAVOBJECT_SYNTHETICS/airspeedsettings.h \
$$UAVOBJECT_SYNTHETICS/airspeedstate.h \
$$UAVOBJECT_SYNTHETICS/attitudestate.h \
$$UAVOBJECT_SYNTHETICS/attitudesimulated.h \
$$UAVOBJECT_SYNTHETICS/altitudeholdsettings.h \
$$UAVOBJECT_SYNTHETICS/altitudeholdstatus.h \
$$UAVOBJECT_SYNTHETICS/altitudefiltersettings.h \
$$UAVOBJECT_SYNTHETICS/debuglogsettings.h \
$$UAVOBJECT_SYNTHETICS/debuglogcontrol.h \
$$UAVOBJECT_SYNTHETICS/debuglogstatus.h \
$$UAVOBJECT_SYNTHETICS/debuglogentry.h \
$$UAVOBJECT_SYNTHETICS/ekfconfiguration.h \
$$UAVOBJECT_SYNTHETICS/ekfstatevariance.h \
$$UAVOBJECT_SYNTHETICS/revocalibration.h \
$$UAVOBJECT_SYNTHETICS/revosettings.h \
$$UAVOBJECT_SYNTHETICS/gcstelemetrystats.h \
$$UAVOBJECT_SYNTHETICS/gyrostate.h \
$$UAVOBJECT_SYNTHETICS/gyrosensor.h \
$$UAVOBJECT_SYNTHETICS/accelsensor.h \
$$UAVOBJECT_SYNTHETICS/accelstate.h \
$$UAVOBJECT_SYNTHETICS/magsensor.h \
$$UAVOBJECT_SYNTHETICS/magstate.h \
$$UAVOBJECT_SYNTHETICS/camerastabsettings.h \
$$UAVOBJECT_SYNTHETICS/flighttelemetrystats.h \
$$UAVOBJECT_SYNTHETICS/systemstats.h \
$$UAVOBJECT_SYNTHETICS/systemalarms.h \
$$UAVOBJECT_SYNTHETICS/objectpersistence.h \
$$UAVOBJECT_SYNTHETICS/overosyncstats.h \
$$UAVOBJECT_SYNTHETICS/overosyncsettings.h \
$$UAVOBJECT_SYNTHETICS/systemsettings.h \
$$UAVOBJECT_SYNTHETICS/stabilizationstatus.h \
$$UAVOBJECT_SYNTHETICS/stabilizationsettings.h \
$$UAVOBJECT_SYNTHETICS/stabilizationsettingsbank1.h \
$$UAVOBJECT_SYNTHETICS/stabilizationsettingsbank2.h \
$$UAVOBJECT_SYNTHETICS/stabilizationsettingsbank3.h \
$$UAVOBJECT_SYNTHETICS/stabilizationbank.h \
$$UAVOBJECT_SYNTHETICS/manualcontrolsettings.h \
$$UAVOBJECT_SYNTHETICS/manualcontrolcommand.h \
$$UAVOBJECT_SYNTHETICS/flightmodesettings.h \
$$UAVOBJECT_SYNTHETICS/stabilizationdesired.h \
$$UAVOBJECT_SYNTHETICS/actuatorsettings.h \
$$UAVOBJECT_SYNTHETICS/actuatordesired.h \
$$UAVOBJECT_SYNTHETICS/actuatorcommand.h \
$$UAVOBJECT_SYNTHETICS/gpspositionsensor.h \
$$UAVOBJECT_SYNTHETICS/gpstime.h \
$$UAVOBJECT_SYNTHETICS/gpssatellites.h \
$$UAVOBJECT_SYNTHETICS/gpssettings.h \
$$UAVOBJECT_SYNTHETICS/pathaction.h \
$$UAVOBJECT_SYNTHETICS/pathdesired.h \
$$UAVOBJECT_SYNTHETICS/pathplan.h \
$$UAVOBJECT_SYNTHETICS/pathstatus.h \
$$UAVOBJECT_SYNTHETICS/pathsummary.h \
$$UAVOBJECT_SYNTHETICS/gpsvelocitysensor.h \
$$UAVOBJECT_SYNTHETICS/positionstate.h \
$$UAVOBJECT_SYNTHETICS/flightbatterystate.h \
$$UAVOBJECT_SYNTHETICS/homelocation.h \
$$UAVOBJECT_SYNTHETICS/mixersettings.h \
$$UAVOBJECT_SYNTHETICS/mixerstatus.h \
$$UAVOBJECT_SYNTHETICS/velocitydesired.h \
$$UAVOBJECT_SYNTHETICS/velocitystate.h \
$$UAVOBJECT_SYNTHETICS/groundtruth.h \
$$UAVOBJECT_SYNTHETICS/fixedwingpathfollowersettings.h \
$$UAVOBJECT_SYNTHETICS/fixedwingpathfollowerstatus.h \
$$UAVOBJECT_SYNTHETICS/vtolpathfollowersettings.h \
$$UAVOBJECT_SYNTHETICS/groundpathfollowersettings.h \
$$UAVOBJECT_SYNTHETICS/ratedesired.h \
$$UAVOBJECT_SYNTHETICS/firmwareiapobj.h \
$$UAVOBJECT_SYNTHETICS/i2cstats.h \
$$UAVOBJECT_SYNTHETICS/flightbatterysettings.h \
$$UAVOBJECT_SYNTHETICS/taskinfo.h \
$$UAVOBJECT_SYNTHETICS/callbackinfo.h \
$$UAVOBJECT_SYNTHETICS/flightplanstatus.h \
$$UAVOBJECT_SYNTHETICS/flightplansettings.h \
$$UAVOBJECT_SYNTHETICS/flightplancontrol.h \
$$UAVOBJECT_SYNTHETICS/watchdogstatus.h \
$$UAVOBJECT_SYNTHETICS/nedaccel.h \
$$UAVOBJECT_SYNTHETICS/sonaraltitude.h \
$$UAVOBJECT_SYNTHETICS/flightstatus.h \
$$UAVOBJECT_SYNTHETICS/hwsettings.h \
$$UAVOBJECT_SYNTHETICS/gcsreceiver.h \
$$UAVOBJECT_SYNTHETICS/receiveractivity.h \
$$UAVOBJECT_SYNTHETICS/receiverstatus.h \
$$UAVOBJECT_SYNTHETICS/attitudesettings.h \
$$UAVOBJECT_SYNTHETICS/txpidsettings.h \
$$UAVOBJECT_SYNTHETICS/cameradesired.h \
$$UAVOBJECT_SYNTHETICS/faultsettings.h \
$$UAVOBJECT_SYNTHETICS/poilearnsettings.h \
$$UAVOBJECT_SYNTHETICS/poilocation.h \
$$UAVOBJECT_SYNTHETICS/oplinksettings.h \
$$UAVOBJECT_SYNTHETICS/oplinkstatus.h \
$$UAVOBJECT_SYNTHETICS/oplinkreceiver.h \
$$UAVOBJECT_SYNTHETICS/radiocombridgestats.h \
$$UAVOBJECT_SYNTHETICS/osdsettings.h \
$$UAVOBJECT_SYNTHETICS/waypoint.h \
$$UAVOBJECT_SYNTHETICS/waypointactive.h \
$$UAVOBJECT_SYNTHETICS/mpugyroaccelsettings.h \
$$UAVOBJECT_SYNTHETICS/takeofflocation.h \
$$UAVOBJECT_SYNTHETICS/auxmagsensor.h \
$$UAVOBJECT_SYNTHETICS/auxmagsettings.h \
$$UAVOBJECT_SYNTHETICS/gpsextendedstatus.h \
$$UAVOBJECT_SYNTHETICS/perfcounter.h
UAVOBJ_XML_DIR = $${ROOT_DIR}/shared/uavobjectdefinition
UAVOBJ_ROOT_DIR = $${ROOT_DIR}
SOURCES += \
$$UAVOBJECT_SYNTHETICS/statusgrounddrive.cpp \
$$UAVOBJECT_SYNTHETICS/statusvtolautotakeoff.cpp \
$$UAVOBJECT_SYNTHETICS/pidstatus.cpp \
$$UAVOBJECT_SYNTHETICS/statusvtolland.cpp \
$$UAVOBJECT_SYNTHETICS/vtolselftuningstats.cpp \
$$UAVOBJECT_SYNTHETICS/accelgyrosettings.cpp \
$$UAVOBJECT_SYNTHETICS/accessorydesired.cpp \
$$UAVOBJECT_SYNTHETICS/barosensor.cpp \
$$UAVOBJECT_SYNTHETICS/airspeedsensor.cpp \
$$UAVOBJECT_SYNTHETICS/airspeedsettings.cpp \
$$UAVOBJECT_SYNTHETICS/airspeedstate.cpp \
$$UAVOBJECT_SYNTHETICS/attitudestate.cpp \
$$UAVOBJECT_SYNTHETICS/attitudesimulated.cpp \
$$UAVOBJECT_SYNTHETICS/altitudeholdsettings.cpp \
$$UAVOBJECT_SYNTHETICS/altitudeholdstatus.cpp \
$$UAVOBJECT_SYNTHETICS/debuglogsettings.cpp \
$$UAVOBJECT_SYNTHETICS/debuglogcontrol.cpp \
$$UAVOBJECT_SYNTHETICS/debuglogstatus.cpp \
$$UAVOBJECT_SYNTHETICS/debuglogentry.cpp \
$$UAVOBJECT_SYNTHETICS/altitudefiltersettings.cpp \
$$UAVOBJECT_SYNTHETICS/ekfconfiguration.cpp \
$$UAVOBJECT_SYNTHETICS/ekfstatevariance.cpp \
$$UAVOBJECT_SYNTHETICS/revocalibration.cpp \
$$UAVOBJECT_SYNTHETICS/revosettings.cpp \
$$UAVOBJECT_SYNTHETICS/gcstelemetrystats.cpp \
$$UAVOBJECT_SYNTHETICS/accelsensor.cpp \
$$UAVOBJECT_SYNTHETICS/accelstate.cpp \
$$UAVOBJECT_SYNTHETICS/gyrostate.cpp \
$$UAVOBJECT_SYNTHETICS/gyrosensor.cpp \
$$UAVOBJECT_SYNTHETICS/magsensor.cpp \
$$UAVOBJECT_SYNTHETICS/magstate.cpp \
$$UAVOBJECT_SYNTHETICS/camerastabsettings.cpp \
$$UAVOBJECT_SYNTHETICS/flighttelemetrystats.cpp \
$$UAVOBJECT_SYNTHETICS/systemstats.cpp \
$$UAVOBJECT_SYNTHETICS/systemalarms.cpp \
$$UAVOBJECT_SYNTHETICS/objectpersistence.cpp \
$$UAVOBJECT_SYNTHETICS/overosyncstats.cpp \
$$UAVOBJECT_SYNTHETICS/overosyncsettings.cpp \
$$UAVOBJECT_SYNTHETICS/systemsettings.cpp \
$$UAVOBJECT_SYNTHETICS/stabilizationstatus.cpp \
$$UAVOBJECT_SYNTHETICS/stabilizationsettings.cpp \
$$UAVOBJECT_SYNTHETICS/stabilizationsettingsbank1.cpp \
$$UAVOBJECT_SYNTHETICS/stabilizationsettingsbank2.cpp \
$$UAVOBJECT_SYNTHETICS/stabilizationsettingsbank3.cpp \
$$UAVOBJECT_SYNTHETICS/stabilizationbank.cpp \
$$UAVOBJECT_SYNTHETICS/manualcontrolsettings.cpp \
$$UAVOBJECT_SYNTHETICS/manualcontrolcommand.cpp \
$$UAVOBJECT_SYNTHETICS/flightmodesettings.cpp \
$$UAVOBJECT_SYNTHETICS/stabilizationdesired.cpp \
$$UAVOBJECT_SYNTHETICS/actuatorsettings.cpp \
$$UAVOBJECT_SYNTHETICS/actuatordesired.cpp \
$$UAVOBJECT_SYNTHETICS/actuatorcommand.cpp \
$$UAVOBJECT_SYNTHETICS/gpspositionsensor.cpp \
$$UAVOBJECT_SYNTHETICS/gpstime.cpp \
$$UAVOBJECT_SYNTHETICS/gpssatellites.cpp \
$$UAVOBJECT_SYNTHETICS/gpssettings.cpp \
$$UAVOBJECT_SYNTHETICS/pathaction.cpp \
$$UAVOBJECT_SYNTHETICS/pathdesired.cpp \
$$UAVOBJECT_SYNTHETICS/pathplan.cpp \
$$UAVOBJECT_SYNTHETICS/pathstatus.cpp \
$$UAVOBJECT_SYNTHETICS/pathsummary.cpp \
$$UAVOBJECT_SYNTHETICS/gpsvelocitysensor.cpp \
$$UAVOBJECT_SYNTHETICS/positionstate.cpp \
$$UAVOBJECT_SYNTHETICS/flightbatterystate.cpp \
$$UAVOBJECT_SYNTHETICS/homelocation.cpp \
$$UAVOBJECT_SYNTHETICS/mixersettings.cpp \
$$UAVOBJECT_SYNTHETICS/mixerstatus.cpp \
$$UAVOBJECT_SYNTHETICS/velocitydesired.cpp \
$$UAVOBJECT_SYNTHETICS/velocitystate.cpp \
$$UAVOBJECT_SYNTHETICS/groundtruth.cpp \
$$UAVOBJECT_SYNTHETICS/fixedwingpathfollowersettings.cpp \
$$UAVOBJECT_SYNTHETICS/fixedwingpathfollowerstatus.cpp \
$$UAVOBJECT_SYNTHETICS/vtolpathfollowersettings.cpp \
$$UAVOBJECT_SYNTHETICS/groundpathfollowersettings.cpp \
$$UAVOBJECT_SYNTHETICS/ratedesired.cpp \
$$UAVOBJECT_SYNTHETICS/firmwareiapobj.cpp \
$$UAVOBJECT_SYNTHETICS/i2cstats.cpp \
$$UAVOBJECT_SYNTHETICS/flightbatterysettings.cpp \
$$UAVOBJECT_SYNTHETICS/taskinfo.cpp \
$$UAVOBJECT_SYNTHETICS/callbackinfo.cpp \
$$UAVOBJECT_SYNTHETICS/flightplanstatus.cpp \
$$UAVOBJECT_SYNTHETICS/flightplansettings.cpp \
$$UAVOBJECT_SYNTHETICS/flightplancontrol.cpp \
$$UAVOBJECT_SYNTHETICS/watchdogstatus.cpp \
$$UAVOBJECT_SYNTHETICS/nedaccel.cpp \
$$UAVOBJECT_SYNTHETICS/sonaraltitude.cpp \
$$UAVOBJECT_SYNTHETICS/uavobjectsinit.cpp \
$$UAVOBJECT_SYNTHETICS/flightstatus.cpp \
$$UAVOBJECT_SYNTHETICS/hwsettings.cpp \
$$UAVOBJECT_SYNTHETICS/gcsreceiver.cpp \
$$UAVOBJECT_SYNTHETICS/receiveractivity.cpp \
$$UAVOBJECT_SYNTHETICS/receiverstatus.cpp \
$$UAVOBJECT_SYNTHETICS/attitudesettings.cpp \
$$UAVOBJECT_SYNTHETICS/txpidsettings.cpp \
$$UAVOBJECT_SYNTHETICS/cameradesired.cpp \
$$UAVOBJECT_SYNTHETICS/faultsettings.cpp \
$$UAVOBJECT_SYNTHETICS/poilearnsettings.cpp \
$$UAVOBJECT_SYNTHETICS/poilocation.cpp \
$$UAVOBJECT_SYNTHETICS/oplinksettings.cpp \
$$UAVOBJECT_SYNTHETICS/oplinkstatus.cpp \
$$UAVOBJECT_SYNTHETICS/oplinkreceiver.cpp \
$$UAVOBJECT_SYNTHETICS/radiocombridgestats.cpp \
$$UAVOBJECT_SYNTHETICS/osdsettings.cpp \
$$UAVOBJECT_SYNTHETICS/waypoint.cpp \
$$UAVOBJECT_SYNTHETICS/waypointactive.cpp \
$$UAVOBJECT_SYNTHETICS/mpugyroaccelsettings.cpp \
$$UAVOBJECT_SYNTHETICS/takeofflocation.cpp \
$$UAVOBJECT_SYNTHETICS/auxmagsensor.cpp \
$$UAVOBJECT_SYNTHETICS/auxmagsettings.cpp \
$$UAVOBJECT_SYNTHETICS/gpsextendedstatus.cpp \
$$UAVOBJECT_SYNTHETICS/perfcounter.cpp
win32 {
UAVOBJGENERATOR = ../../../../uavobjgenerator/uavobjgenerator.exe
} else {
UAVOBJGENERATOR = ../../../../uavobjgenerator/uavobjgenerator
}
# Add in all of the uavobjects
UAVOBJS = \
$${UAVOBJ_XML_DIR}/statusgrounddrive.xml \
$${UAVOBJ_XML_DIR}/statusvtolautotakeoff.xml \
$${UAVOBJ_XML_DIR}/pidstatus.xml \
$${UAVOBJ_XML_DIR}/statusvtolland.xml \
$${UAVOBJ_XML_DIR}/vtolselftuningstats.xml \
$${UAVOBJ_XML_DIR}/accelgyrosettings.xml \
$${UAVOBJ_XML_DIR}/accessorydesired.xml \
$${UAVOBJ_XML_DIR}/barosensor.xml \
$${UAVOBJ_XML_DIR}/airspeedsensor.xml \
$${UAVOBJ_XML_DIR}/airspeedsettings.xml \
$${UAVOBJ_XML_DIR}/airspeedstate.xml \
$${UAVOBJ_XML_DIR}/attitudestate.xml \
$${UAVOBJ_XML_DIR}/attitudesimulated.xml \
$${UAVOBJ_XML_DIR}/altitudeholdsettings.xml \
$${UAVOBJ_XML_DIR}/altitudeholdstatus.xml \
$${UAVOBJ_XML_DIR}/altitudefiltersettings.xml \
$${UAVOBJ_XML_DIR}/debuglogsettings.xml \
$${UAVOBJ_XML_DIR}/debuglogcontrol.xml \
$${UAVOBJ_XML_DIR}/debuglogstatus.xml \
$${UAVOBJ_XML_DIR}/debuglogentry.xml \
$${UAVOBJ_XML_DIR}/ekfconfiguration.xml \
$${UAVOBJ_XML_DIR}/ekfstatevariance.xml \
$${UAVOBJ_XML_DIR}/revocalibration.xml \
$${UAVOBJ_XML_DIR}/revosettings.xml \
$${UAVOBJ_XML_DIR}/gcstelemetrystats.xml \
$${UAVOBJ_XML_DIR}/gyrostate.xml \
$${UAVOBJ_XML_DIR}/gyrosensor.xml \
$${UAVOBJ_XML_DIR}/accelsensor.xml \
$${UAVOBJ_XML_DIR}/accelstate.xml \
$${UAVOBJ_XML_DIR}/magsensor.xml \
$${UAVOBJ_XML_DIR}/magstate.xml \
$${UAVOBJ_XML_DIR}/camerastabsettings.xml \
$${UAVOBJ_XML_DIR}/flighttelemetrystats.xml \
$${UAVOBJ_XML_DIR}/systemstats.xml \
$${UAVOBJ_XML_DIR}/systemalarms.xml \
$${UAVOBJ_XML_DIR}/objectpersistence.xml \
$${UAVOBJ_XML_DIR}/overosyncstats.xml \
$${UAVOBJ_XML_DIR}/overosyncsettings.xml \
$${UAVOBJ_XML_DIR}/systemsettings.xml \
$${UAVOBJ_XML_DIR}/stabilizationstatus.xml \
$${UAVOBJ_XML_DIR}/stabilizationsettings.xml \
$${UAVOBJ_XML_DIR}/stabilizationsettingsbank1.xml \
$${UAVOBJ_XML_DIR}/stabilizationsettingsbank2.xml \
$${UAVOBJ_XML_DIR}/stabilizationsettingsbank3.xml \
$${UAVOBJ_XML_DIR}/stabilizationbank.xml \
$${UAVOBJ_XML_DIR}/manualcontrolsettings.xml \
$${UAVOBJ_XML_DIR}/manualcontrolcommand.xml \
$${UAVOBJ_XML_DIR}/flightmodesettings.xml \
$${UAVOBJ_XML_DIR}/stabilizationdesired.xml \
$${UAVOBJ_XML_DIR}/actuatorsettings.xml \
$${UAVOBJ_XML_DIR}/actuatordesired.xml \
$${UAVOBJ_XML_DIR}/actuatorcommand.xml \
$${UAVOBJ_XML_DIR}/gpspositionsensor.xml \
$${UAVOBJ_XML_DIR}/gpstime.xml \
$${UAVOBJ_XML_DIR}/gpssatellites.xml \
$${UAVOBJ_XML_DIR}/gpssettings.xml \
$${UAVOBJ_XML_DIR}/pathaction.xml \
$${UAVOBJ_XML_DIR}/pathdesired.xml \
$${UAVOBJ_XML_DIR}/pathplan.xml \
$${UAVOBJ_XML_DIR}/pathstatus.xml \
$${UAVOBJ_XML_DIR}/pathsummary.xml \
$${UAVOBJ_XML_DIR}/gpsvelocitysensor.xml \
$${UAVOBJ_XML_DIR}/positionstate.xml \
$${UAVOBJ_XML_DIR}/flightbatterystate.xml \
$${UAVOBJ_XML_DIR}/homelocation.xml \
$${UAVOBJ_XML_DIR}/mixersettings.xml \
$${UAVOBJ_XML_DIR}/mixerstatus.xml \
$${UAVOBJ_XML_DIR}/velocitydesired.xml \
$${UAVOBJ_XML_DIR}/velocitystate.xml \
$${UAVOBJ_XML_DIR}/groundtruth.xml \
$${UAVOBJ_XML_DIR}/fixedwingpathfollowersettings.xml \
$${UAVOBJ_XML_DIR}/fixedwingpathfollowerstatus.xml \
$${UAVOBJ_XML_DIR}/vtolpathfollowersettings.xml \
$${UAVOBJ_XML_DIR}/groundpathfollowersettings.xml \
$${UAVOBJ_XML_DIR}/ratedesired.xml \
$${UAVOBJ_XML_DIR}/firmwareiapobj.xml \
$${UAVOBJ_XML_DIR}/i2cstats.xml \
$${UAVOBJ_XML_DIR}/flightbatterysettings.xml \
$${UAVOBJ_XML_DIR}/taskinfo.xml \
$${UAVOBJ_XML_DIR}/callbackinfo.xml \
$${UAVOBJ_XML_DIR}/flightplanstatus.xml \
$${UAVOBJ_XML_DIR}/flightplansettings.xml \
$${UAVOBJ_XML_DIR}/flightplancontrol.xml \
$${UAVOBJ_XML_DIR}/watchdogstatus.xml \
$${UAVOBJ_XML_DIR}/nedaccel.xml \
$${UAVOBJ_XML_DIR}/sonaraltitude.xml \
$${UAVOBJ_XML_DIR}/flightstatus.xml \
$${UAVOBJ_XML_DIR}/hwsettings.xml \
$${UAVOBJ_XML_DIR}/gcsreceiver.xml \
$${UAVOBJ_XML_DIR}/receiveractivity.xml \
$${UAVOBJ_XML_DIR}/receiverstatus.xml \
$${UAVOBJ_XML_DIR}/attitudesettings.xml \
$${UAVOBJ_XML_DIR}/txpidsettings.xml \
$${UAVOBJ_XML_DIR}/cameradesired.xml \
$${UAVOBJ_XML_DIR}/faultsettings.xml \
$${UAVOBJ_XML_DIR}/poilearnsettings.xml \
$${UAVOBJ_XML_DIR}/poilocation.xml \
$${UAVOBJ_XML_DIR}/oplinksettings.xml \
$${UAVOBJ_XML_DIR}/oplinkstatus.xml \
$${UAVOBJ_XML_DIR}/oplinkreceiver.xml \
$${UAVOBJ_XML_DIR}/radiocombridgestats.xml \
$${UAVOBJ_XML_DIR}/osdsettings.xml \
$${UAVOBJ_XML_DIR}/waypoint.xml \
$${UAVOBJ_XML_DIR}/waypointactive.xml \
$${UAVOBJ_XML_DIR}/mpu6000settings.xml \
$${UAVOBJ_XML_DIR}/takeofflocation.xml \
$${UAVOBJ_XML_DIR}/auxmagsensor.xml \
$${UAVOBJ_XML_DIR}/auxmagsettings.xml \
$${UAVOBJ_XML_DIR}/gpsextendedstatus.xml \
$${UAVOBJ_XML_DIR}/perfcounter.xml
include(uavobjgenerator.pri)

View File

@ -1,9 +1,2 @@
include(../../plugins/coreplugin/coreplugin.pri)
include(../../libs/utils/utils.pri)
# Provide the path to the auto-generated uavobject source files for the GCS.
UAVOBJECT_SYNTHETICS=$${GCS_BUILD_TREE}/../uavobject-synthetics/gcs
#message(UAVOBJECT_SYNTHETICS is $$UAVOBJECT_SYNTHETICS)
# Add the include path to the auto-generated uavobject include files.
INCLUDEPATH += $$UAVOBJECT_SYNTHETICS

View File

@ -0,0 +1,39 @@
UAVOBJ_INIT_CPP = uavobjectsinit.cpp
UAVOBJ_INIT_CPP_TEMPLATE = $${UAVOBJ_INIT_CPP}.template
uavobjgenerator.input = UAVOBJS
uavobjgenerator.commands = $$shell_path($${UAVOBJGENERATOR}) -gcs $${UAVOBJ_XML_DIR} $${UAVOBJ_ROOT_DIR} ${QMAKE_FILE_BASE}
silent:uavobjgenerator.commands = @echo uavobjgenerator -gcs && $${uavobjgenerator.commands}
uavobjgenerator_header.depends = $${UAVOBJ_INIT_CPP_TEMPLATE}
uavobjgenerator.output = $${UAVOBJ_INIT_CPP}
uavobjgenerator.variable_out = SOURCES
uavobjgenerator.CONFIG += combine
QMAKE_EXTRA_COMPILERS += uavobjgenerator
uavobjgenerator_header.input = UAVOBJS
# We don't want any commands here because uavobjgenerator also creates .cpp, but if command is empty no rules are created
uavobjgenerator_header.commands = $$escape_expand(\\n)
uavobjgenerator_header.depends = $${UAVOBJ_INIT_CPP}
uavobjgenerator_header.output = ${QMAKE_FILE_BASE}.h # Actually generated by uavobjgenerator for this depends
uavobjgenerator_header.variable_out = UAVOBJS_HEADERS
QMAKE_EXTRA_COMPILERS += uavobjgenerator_header
uavobjgenerator_source.input = UAVOBJS
# We don't want any commands here because uavobjgenerator also creates .cpp, but if command is empty no rules are created
uavobjgenerator_source.commands = $$escape_expand(\\n)
uavobjgenerator_source.depends = $${UAVOBJ_INIT_CPP}
uavobjgenerator_source.output = ${QMAKE_FILE_BASE}.cpp # Actually generated by uavobjgenerator for this depends
uavobjgenerator_source.variable_out = SOURCES
QMAKE_EXTRA_COMPILERS += uavobjgenerator_source
# Do our own moc without moc_verify because the files aren't generated when verified
load(moc)
uavobjgenerator_moc.commands = $$moc_header.commands
uavobjgenerator_moc.output = $$moc_header.output
uavobjgenerator_moc.input = UAVOBJS_HEADERS
uavobjgenerator_moc.variable_out = GENERATED_SOURCES
QMAKE_EXTRA_COMPILERS += uavobjgenerator_moc

View File

@ -1,69 +0,0 @@
#
# Qmake project for UAVObjects generation.
# Copyright (c) 2009-2013, The OpenPilot Team, http://www.openpilot.org
#
TEMPLATE = aux
# Some handy defines
defineReplace(targetPath) {
return($$replace(1, /, $$QMAKE_DIR_SEP))
}
defineReplace(addNewline) {
return($$escape_expand(\\n\\t))
}
# QMAKESPEC should be defined by qmake but sometimes it is not
isEmpty(QMAKESPEC) {
win32:SPEC = win32-g++
macx-g++:SPEC = macx-g++
linux-g++:SPEC = linux-g++
linux-g++-32:SPEC = linux-g++
linux-g++-64:SPEC = linux-g++-64
} else {
SPEC = $$QMAKESPEC
}
# Some platform-dependent options
win32|unix {
CONFIG(release, debug|release) {
BUILD_CONFIG = release
} else {
BUILD_CONFIG = debug
}
}
win32 {
# Windows sometimes remembers working directory changed from Makefile, sometimes not.
# That's why pushd/popd is used here - to make sure that we know current directory.
uavobjects.commands += -$(MKDIR) $$targetPath(../uavobject-synthetics) $$addNewline()
uavobjects.commands += pushd $$targetPath(../uavobject-synthetics) &&
uavobjects.commands += $$targetPath(../uavobjgenerator/$${BUILD_CONFIG}/uavobjgenerator)
uavobjects.commands += $$targetPath(../../shared/uavobjectdefinition)
uavobjects.commands += $$targetPath(../..) &&
uavobjects.commands += popd $$addNewline()
uavobjects.commands += -$(MKDIR) $$targetPath(../openpilotgcs) $$addNewline()
uavobjects.commands += pushd $$targetPath(../openpilotgcs) &&
uavobjects.commands += $(QMAKE) -spec $$SPEC CONFIG+=$${BUILD_CONFIG} -r
uavobjects.commands += $$targetPath(../../ground/openpilotgcs/)openpilotgcs.pro &&
uavobjects.commands += popd $$addNewline()
}
!win32 {
uavobjects.commands += $(MKDIR) -p ../uavobject-synthetics $$addNewline()
uavobjects.commands += cd ../uavobject-synthetics &&
uavobjects.commands += ../uavobjgenerator/uavobjgenerator
uavobjects.commands += ../../shared/uavobjectdefinition ../.. &&
uavobjects.commands += $(MKDIR) -p ../openpilotgcs $$addNewline()
uavobjects.commands += cd ../openpilotgcs &&
uavobjects.commands += $(QMAKE) ../../ground/openpilotgcs/openpilotgcs.pro
uavobjects.commands += -spec $$SPEC CONFIG+=$${BUILD_CONFIG} -r $$addNewline()
}
uavobjects.depends = FORCE
QMAKE_EXTRA_TARGETS += uavobjects
PRE_TARGETDEPS += uavobjects

View File

@ -36,7 +36,7 @@ bool UAVObjectGeneratorFlight::generate(UAVObjectParser *parser, QString templat
QString flightObjInit, objInc, objFileNames, objNames;
qint32 sizeCalc;
flightCodePath = QDir(templatepath + QString(FLIGHT_CODE_DIR));
flightOutputPath = QDir(outputpath + QString("flight"));
flightOutputPath = QDir(outputpath);
flightOutputPath.mkpath(flightOutputPath.absolutePath());
flightCodeTemplate = readFile(flightCodePath.absoluteFilePath("uavobject.c.template"));

View File

@ -36,7 +36,7 @@ bool UAVObjectGeneratorGCS::generate(UAVObjectParser *parser, QString templatepa
<< "UINT8" << "UINT16" << "UINT32" << "FLOAT32" << "ENUM";
gcsCodePath = QDir(templatepath + QString(GCS_CODE_DIR));
gcsOutputPath = QDir(outputpath + QString("gcs"));
gcsOutputPath = QDir(outputpath);
gcsOutputPath.mkpath(gcsOutputPath.absolutePath());
gcsCodeTemplate = readFile(gcsCodePath.absoluteFilePath("uavobject.cpp.template"));

View File

@ -37,7 +37,7 @@ bool UAVObjectGeneratorJava::generate(UAVObjectParser *parser, QString templatep
<< "UINT8" << "UINT16" << "UINT32" << "FLOAT32" << "ENUM";
javaCodePath = QDir(templatepath + QString(JAVA_TEMPLATE_DIR));
javaOutputPath = QDir(outputpath + QString("java"));
javaOutputPath = QDir(outputpath);
javaOutputPath.mkpath(javaOutputPath.absolutePath());
javaCodeTemplate = readFile(javaCodePath.absoluteFilePath("uavobject.java.template"));

View File

@ -36,7 +36,7 @@ bool UAVObjectGeneratorMatlab::generate(UAVObjectParser *parser, QString templat
<< "1" << "2" << "4" << "4" << "1";
QDir matlabTemplatePath = QDir(templatepath + QString(MATLAB_CODE_DIR));
QDir matlabOutputPath = QDir(outputpath + QString("matlab"));
QDir matlabOutputPath = QDir(outputpath);
matlabOutputPath.mkpath(matlabOutputPath.absolutePath());
QString matlabCodeTemplate = readFile(matlabTemplatePath.absoluteFilePath("uavobject.m.template"));

View File

@ -31,7 +31,7 @@ bool UAVObjectGeneratorPython::generate(UAVObjectParser *parser, QString templat
{
// Load template and setup output directory
pythonCodePath = QDir(templatepath + QString("flight/modules/FlightPlan/lib"));
pythonOutputPath = QDir(outputpath + QString("python"));
pythonOutputPath = QDir(outputpath);
pythonOutputPath.mkpath(pythonOutputPath.absolutePath());
pythonCodeTemplate = readFile(pythonCodePath.absoluteFilePath("uavobject.pyt.template"));
if (pythonCodeTemplate.isEmpty()) {

View File

@ -37,7 +37,7 @@ bool UAVObjectGeneratorWireshark::generate(UAVObjectParser *parser, QString temp
wiresharkCodePath = QDir(templatepath + QString("ground/openpilotgcs/src/plugins/uavobjects/wireshark"));
wiresharkOutputPath = QDir(outputpath + QString("wireshark"));
wiresharkOutputPath = QDir(outputpath);
wiresharkOutputPath.mkpath(wiresharkOutputPath.absolutePath());
wiresharkCodeTemplate = readFile(wiresharkCodePath.absoluteFilePath("op-uavobjects/packet-op-uavobjects.c.template"));

View File

@ -47,7 +47,7 @@ using namespace std;
*/
void usage()
{
cout << "Usage: uavobjectgenerator [-gcs] [-flight] [-java] [-python] [-matlab] [-wireshark] [-none] [-v] xml_path template_base [UAVObj1] ... [UAVObjN]" << endl;
cout << "Usage: uavobjectgenerator [language] [-v] xml_path template_base [UAVObj1] ... [UAVObjN]" << endl;
cout << "Languages: " << endl;
cout << "\t-gcs build groundstation code" << endl;
cout << "\t-flight build flight code" << endl;
@ -55,9 +55,8 @@ void usage()
cout << "\t-python build python code" << endl;
cout << "\t-matlab build matlab code" << endl;
cout << "\t-wireshark build wireshark plugin" << endl;
cout << "\tIf no language is specified ( and not -none ) -> all are built." << endl;
cout << "\tIf no language is specified none are built - just parse xmls." << endl;
cout << "Misc: " << endl;
cout << "\t-none build no language - just parse xml's" << endl;
cout << "\t-h this help" << endl;
cout << "\t-v verbose" << endl;
cout << "\tinput_path path to UAVObject definition (.xml) files." << endl;
@ -109,9 +108,7 @@ int main(int argc, char *argv[])
bool do_python = (arguments_stringlist.removeAll("-python") > 0);
bool do_matlab = (arguments_stringlist.removeAll("-matlab") > 0);
bool do_wireshark = (arguments_stringlist.removeAll("-wireshark") > 0);
bool do_none = (arguments_stringlist.removeAll("-none") > 0); //
bool do_all = ((do_gcs || do_flight || do_java || do_python || do_matlab) == false);
bool do_allObjects = true;
if (arguments_stringlist.length() >= 2) {
@ -205,47 +202,33 @@ int main(int argc, char *argv[])
cout << "used units: " << parser->all_units.join(",").toStdString() << endl;
}
if (do_none) {
return RETURN_OK;
}
// generate flight code if wanted
if (do_flight | do_all) {
if (do_flight) {
// generate flight code if wanted
cout << "generating flight code" << endl;
UAVObjectGeneratorFlight flightgen;
flightgen.generate(parser, templatepath, outputpath);
}
// generate gcs code if wanted
if (do_gcs | do_all) {
} else if (do_gcs) {
// generate gcs code if wanted
cout << "generating gcs code" << endl;
UAVObjectGeneratorGCS gcsgen;
gcsgen.generate(parser, templatepath, outputpath);
}
// generate java code if wanted
if (do_java | do_all) {
} else if (do_java) {
// generate java code if wanted
cout << "generating java code" << endl;
UAVObjectGeneratorJava javagen;
javagen.generate(parser, templatepath, outputpath);
}
// generate python code if wanted
if (do_python | do_all) {
} else if (do_python) {
// generate python code if wanted
cout << "generating python code" << endl;
UAVObjectGeneratorPython pygen;
pygen.generate(parser, templatepath, outputpath);
}
// generate matlab code if wanted
if (do_matlab | do_all) {
} else if (do_matlab) {
// generate matlab code if wanted
cout << "generating matlab code" << endl;
UAVObjectGeneratorMatlab matlabgen;
matlabgen.generate(parser, templatepath, outputpath);
}
// generate wireshark plugin if wanted
if (do_wireshark | do_all) {
} else if (do_wireshark) {
// generate wireshark plugin if wanted
cout << "generating wireshark code" << endl;
UAVObjectGeneratorWireshark wiresharkgen;
wiresharkgen.generate(parser, templatepath, outputpath);

View File

@ -12,6 +12,7 @@ TARGET = uavobjgenerator
CONFIG += console
CONFIG -= app_bundle
TEMPLATE = app
DESTDIR = $$OUT_PWD # Set a consistent output dir on windows
SOURCES += main.cpp \
uavobjectparser.cpp \
generators/generator_io.cpp \