diff --git a/.gitignore b/.gitignore index 9df004d33..ec955ff34 100644 --- a/.gitignore +++ b/.gitignore @@ -68,49 +68,6 @@ #ignore autogenerated files - they should really go into special dirs to be ignored more easy ground/src/plugins/uavobjects/OPLogConvert.m -ground/src/plugins/uavobjects/actuatorcommand.py -ground/src/plugins/uavobjects/actuatordesired.py -ground/src/plugins/uavobjects/actuatorsettings.py -ground/src/plugins/uavobjects/ahrscalibration.py -ground/src/plugins/uavobjects/ahrssettings.py -ground/src/plugins/uavobjects/ahrsstatus.py -ground/src/plugins/uavobjects/attitudeactual.py -ground/src/plugins/uavobjects/attitudedesired.py -ground/src/plugins/uavobjects/attituderaw.py -ground/src/plugins/uavobjects/baroaltitude.py -ground/src/plugins/uavobjects/batterysettings.py -ground/src/plugins/uavobjects/firmwareiapobj.py -ground/src/plugins/uavobjects/flightbatterystate.py -ground/src/plugins/uavobjects/flightplancontrol.py -ground/src/plugins/uavobjects/flightplansettings.py -ground/src/plugins/uavobjects/flightplanstatus.py -ground/src/plugins/uavobjects/flighttelemetrystats.py -ground/src/plugins/uavobjects/gcstelemetrystats.py -ground/src/plugins/uavobjects/gpsposition.py -ground/src/plugins/uavobjects/gpssatellites.py -ground/src/plugins/uavobjects/gpstime.py -ground/src/plugins/uavobjects/guidancesettings.py -ground/src/plugins/uavobjects/homelocation.py -ground/src/plugins/uavobjects/i2cstats.py -ground/src/plugins/uavobjects/manualcontrolcommand.py -ground/src/plugins/uavobjects/manualcontrolsettings.py -ground/src/plugins/uavobjects/mixersettings.py -ground/src/plugins/uavobjects/mixerstatus.py -ground/src/plugins/uavobjects/objectpersistence.py -ground/src/plugins/uavobjects/pipxtrememodemsettings.py -ground/src/plugins/uavobjects/pipxtrememodemstatus.py -ground/src/plugins/uavobjects/positionactual.py -ground/src/plugins/uavobjects/positiondesired.py -ground/src/plugins/uavobjects/ratedesired.py -ground/src/plugins/uavobjects/stabilizationsettings.py -ground/src/plugins/uavobjects/systemalarms.py -ground/src/plugins/uavobjects/systemsettings.py -ground/src/plugins/uavobjects/systemstats.py -ground/src/plugins/uavobjects/taskinfo.py -ground/src/plugins/uavobjects/telemetrysettings.py -ground/src/plugins/uavobjects/velocityactual.py -ground/src/plugins/uavobjects/velocitydesired.py -ground/src/plugins/uavobjects/watchdogstatus.py openpilotgcs-build-desktop flight/Project/OpenPilotOSX/OpenPilotOSX.xcodeproj/*.mode1v3 diff --git a/Makefile b/Makefile index 75947a01e..3d2f7fa49 100644 --- a/Makefile +++ b/Makefile @@ -214,7 +214,7 @@ uavobject-synthetics: mkdir -p $(BUILD_DIR)/$@ .PHONY:uavobjects -uavobjects: uavobjects_gcs uavobjects_flight +uavobjects: uavobjects_gcs uavobjects_flight uavobjects_python uavobjects_gcs: uavobject-synthetics uavobjgenerator mkdir -p $(BUILD_DIR)/uavobject-synthetics/gcs @@ -224,6 +224,10 @@ uavobjects_flight: uavobject-synthetics uavobjgenerator mkdir -p $(BUILD_DIR)/uavobject-synthetics/flight $(UAVOBJGENERATOR) -flight "$(ROOT_DIR)/" +uavobjects_python: uavobject-synthetics uavobjgenerator + mkdir -p $(BUILD_DIR)/uavobject-synthetics/python + $(UAVOBJGENERATOR) -python "$(ROOT_DIR)/" + uavobjects_test: uavobject-synthetics uavobjgenerator $(UAVOBJGENERATOR) -v -none "$(ROOT_DIR)/" diff --git a/ground/src/libs/uavobjgenerator/generators/python/uavobjectgeneratorpython.cpp b/ground/src/libs/uavobjgenerator/generators/python/uavobjectgeneratorpython.cpp index fc5e3c0ac..a1418563d 100644 --- a/ground/src/libs/uavobjgenerator/generators/python/uavobjectgeneratorpython.cpp +++ b/ground/src/libs/uavobjgenerator/generators/python/uavobjectgeneratorpython.cpp @@ -27,11 +27,12 @@ #include "uavobjectgeneratorpython.h" using namespace std; -bool UAVObjectGeneratorPython::generate(UAVObjectParser* parser,QString basepath) { +bool UAVObjectGeneratorPython::generate(UAVObjectParser* parser,QString basepath,QString outputpath) { fieldTypeStrPython << "b" << "h" << "i" << "B" << "H" << "I" << "f" << "b"; pythonCodePath = QDir( basepath + QString("ground/src/plugins/uavobjects")); + pythonOutputPath = QDir( outputpath + QString("python")); pythonCodeTemplate = readFile( pythonCodePath.absoluteFilePath("uavobjecttemplate.py") ); @@ -106,7 +107,7 @@ bool UAVObjectGeneratorPython::process_object(ObjectInfo* info) outCode.replace(QString("$(DATAFIELDS)"), fields); // Write the Python code - bool res = writeFileIfDiffrent( pythonCodePath.absolutePath() + "/" + info->namelc + ".py", outCode ); + bool res = writeFileIfDiffrent( pythonOutputPath.absolutePath() + "/" + info->namelc + ".py", outCode ); if (!res) { cout << "Error: Could not write Python output files" << endl; return false; diff --git a/ground/src/libs/uavobjgenerator/generators/python/uavobjectgeneratorpython.h b/ground/src/libs/uavobjgenerator/generators/python/uavobjectgeneratorpython.h index 9e65fe7f7..a38806f22 100644 --- a/ground/src/libs/uavobjgenerator/generators/python/uavobjectgeneratorpython.h +++ b/ground/src/libs/uavobjgenerator/generators/python/uavobjectgeneratorpython.h @@ -32,13 +32,14 @@ class UAVObjectGeneratorPython { public: - bool generate(UAVObjectParser* gen,QString basepath); + bool generate(UAVObjectParser* gen,QString basepath,QString outputpath); private: bool process_object(ObjectInfo* info); QString pythonCodeTemplate; QDir pythonCodePath; + QDir pythonOutputPath; QStringList fieldTypeStrPython; }; diff --git a/ground/src/libs/uavobjgenerator/main.cpp b/ground/src/libs/uavobjgenerator/main.cpp index 2aa7c3de1..2e1c30f3b 100644 --- a/ground/src/libs/uavobjgenerator/main.cpp +++ b/ground/src/libs/uavobjgenerator/main.cpp @@ -190,7 +190,7 @@ int main(int argc, char *argv[]) if (do_python|do_all) { cout << "generating python code" << endl ; UAVObjectGeneratorPython pygen; - pygen.generate(parser,basepath); + pygen.generate(parser,basepath,outputpath); } // generate matlab code if wanted