From 8e236c995477009749b3ea82b51c1dca2703ce71 Mon Sep 17 00:00:00 2001 From: Richard von Lehe Date: Wed, 25 Mar 2015 08:03:35 -0500 Subject: [PATCH 01/11] OP-1740 UAVO_GetSetFunctionsTakeEnum - getting started --- ground/uavobjgenerator/uavobjectparser.cpp | 5 ++--- ground/uavobjgenerator/uavobjectparser.h | 2 -- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/ground/uavobjgenerator/uavobjectparser.cpp b/ground/uavobjgenerator/uavobjectparser.cpp index dde870df4..50a70bef5 100644 --- a/ground/uavobjgenerator/uavobjectparser.cpp +++ b/ground/uavobjgenerator/uavobjectparser.cpp @@ -25,6 +25,8 @@ */ #include "uavobjectparser.h" +#include +#include #include /** * Constructor @@ -213,9 +215,6 @@ QString UAVObjectParser::parseXML(QString & xml, QString & filename) // Sort all fields according to size qStableSort(info->fields.begin(), info->fields.end(), fieldTypeLessThan); - // Sort all fields according to size - qStableSort(info->fields.begin(), info->fields.end(), fieldTypeLessThan); - // Make sure that required elements were found if (!fieldFound) { return QString("Object::field element is missing"); diff --git a/ground/uavobjgenerator/uavobjectparser.h b/ground/uavobjgenerator/uavobjectparser.h index ccc537cdf..368b2ebde 100644 --- a/ground/uavobjgenerator/uavobjectparser.h +++ b/ground/uavobjgenerator/uavobjectparser.h @@ -30,8 +30,6 @@ #include #include #include -#include -#include #include #include From 69fae1b9775621d29d241188fc40de2a95241806 Mon Sep 17 00:00:00 2001 From: Richard von Lehe Date: Sat, 28 Mar 2015 23:27:07 -0500 Subject: [PATCH 02/11] Fix misspelling in function name --- .../generators/flight/uavobjectgeneratorflight.cpp | 10 +++++----- .../generators/gcs/uavobjectgeneratorgcs.cpp | 6 +++--- ground/uavobjgenerator/generators/generator_io.cpp | 2 +- ground/uavobjgenerator/generators/generator_io.h | 2 +- .../generators/java/uavobjectgeneratorjava.cpp | 4 ++-- .../generators/python/uavobjectgeneratorpython.cpp | 2 +- .../wireshark/uavobjectgeneratorwireshark.cpp | 4 ++-- 7 files changed, 15 insertions(+), 15 deletions(-) diff --git a/ground/uavobjgenerator/generators/flight/uavobjectgeneratorflight.cpp b/ground/uavobjgenerator/generators/flight/uavobjectgeneratorflight.cpp index 1cc41bbf7..289831003 100644 --- a/ground/uavobjgenerator/generators/flight/uavobjectgeneratorflight.cpp +++ b/ground/uavobjgenerator/generators/flight/uavobjectgeneratorflight.cpp @@ -68,7 +68,7 @@ bool UAVObjectGeneratorFlight::generate(UAVObjectParser *parser, QString templat // Write the flight object inialization files flightInitTemplate.replace(QString("$(OBJINC)"), objInc); flightInitTemplate.replace(QString("$(OBJINIT)"), flightObjInit); - bool res = writeFileIfDiffrent(flightOutputPath.absolutePath() + "/uavobjectsinit.c", + bool res = writeFileIfDifferent(flightOutputPath.absolutePath() + "/uavobjectsinit.c", flightInitTemplate); if (!res) { cout << "Error: Could not write flight object init file" << endl; @@ -77,7 +77,7 @@ bool UAVObjectGeneratorFlight::generate(UAVObjectParser *parser, QString templat // Write the flight object initialization header flightInitIncludeTemplate.replace(QString("$(SIZECALCULATION)"), QString().setNum(sizeCalc)); - res = writeFileIfDiffrent(flightOutputPath.absolutePath() + "/uavobjectsinit.h", + res = writeFileIfDifferent(flightOutputPath.absolutePath() + "/uavobjectsinit.h", flightInitIncludeTemplate); if (!res) { cout << "Error: Could not write flight object init header file" << endl; @@ -87,7 +87,7 @@ bool UAVObjectGeneratorFlight::generate(UAVObjectParser *parser, QString templat // Write the flight object Makefile flightMakeTemplate.replace(QString("$(UAVOBJFILENAMES)"), objFileNames); flightMakeTemplate.replace(QString("$(UAVOBJNAMES)"), objNames); - res = writeFileIfDiffrent(flightOutputPath.absolutePath() + "/Makefile.inc", + res = writeFileIfDifferent(flightOutputPath.absolutePath() + "/Makefile.inc", flightMakeTemplate); if (!res) { cout << "Error: Could not write flight Makefile" << endl; @@ -394,13 +394,13 @@ bool UAVObjectGeneratorFlight::process_object(ObjectInfo *info) outInclude.replace(QString("$(SETGETFIELDSEXTERN)"), setgetfieldsextern); // Write the flight code - bool res = writeFileIfDiffrent(flightOutputPath.absolutePath() + "/" + info->namelc + ".c", outCode); + bool res = writeFileIfDifferent(flightOutputPath.absolutePath() + "/" + info->namelc + ".c", outCode); if (!res) { cout << "Error: Could not write flight code files" << endl; return false; } - res = writeFileIfDiffrent(flightOutputPath.absolutePath() + "/" + info->namelc + ".h", outInclude); + res = writeFileIfDifferent(flightOutputPath.absolutePath() + "/" + info->namelc + ".h", outInclude); if (!res) { cout << "Error: Could not write flight include files" << endl; return false; diff --git a/ground/uavobjgenerator/generators/gcs/uavobjectgeneratorgcs.cpp b/ground/uavobjgenerator/generators/gcs/uavobjectgeneratorgcs.cpp index 1279e8e4f..bfb05a36c 100644 --- a/ground/uavobjgenerator/generators/gcs/uavobjectgeneratorgcs.cpp +++ b/ground/uavobjgenerator/generators/gcs/uavobjectgeneratorgcs.cpp @@ -62,7 +62,7 @@ bool UAVObjectGeneratorGCS::generate(UAVObjectParser *parser, QString templatepa // Write the gcs object inialization files gcsInitTemplate.replace(QString("$(OBJINC)"), objInc); gcsInitTemplate.replace(QString("$(OBJINIT)"), gcsObjInit); - bool res = writeFileIfDiffrent(gcsOutputPath.absolutePath() + "/uavobjectsinit.cpp", gcsInitTemplate); + bool res = writeFileIfDifferent(gcsOutputPath.absolutePath() + "/uavobjectsinit.cpp", gcsInitTemplate); if (!res) { cout << "Error: Could not write output files" << endl; return false; @@ -371,12 +371,12 @@ bool UAVObjectGeneratorGCS::process_object(ObjectInfo *info) outCode.replace(QString("$(INITFIELDS)"), initfields); // Write the GCS code - bool res = writeFileIfDiffrent(gcsOutputPath.absolutePath() + "/" + info->namelc + ".cpp", outCode); + bool res = writeFileIfDifferent(gcsOutputPath.absolutePath() + "/" + info->namelc + ".cpp", outCode); if (!res) { cout << "Error: Could not write gcs output files" << endl; return false; } - res = writeFileIfDiffrent(gcsOutputPath.absolutePath() + "/" + info->namelc + ".h", outInclude); + res = writeFileIfDifferent(gcsOutputPath.absolutePath() + "/" + info->namelc + ".h", outInclude); if (!res) { cout << "Error: Could not write gcs output files" << endl; return false; diff --git a/ground/uavobjgenerator/generators/generator_io.cpp b/ground/uavobjgenerator/generators/generator_io.cpp index 67afdd05a..fa352e277 100644 --- a/ground/uavobjgenerator/generators/generator_io.cpp +++ b/ground/uavobjgenerator/generators/generator_io.cpp @@ -75,7 +75,7 @@ bool writeFile(QString name, QString & str) /** * Write contents of string to file if the content changes */ -bool writeFileIfDiffrent(QString name, QString & str) +bool writeFileIfDifferent(QString name, QString & str) { if (str == readFile(name, false)) { return true; diff --git a/ground/uavobjgenerator/generators/generator_io.h b/ground/uavobjgenerator/generators/generator_io.h index 8d4500bf4..8987696fe 100644 --- a/ground/uavobjgenerator/generators/generator_io.h +++ b/ground/uavobjgenerator/generators/generator_io.h @@ -37,6 +37,6 @@ QString readFile(QString name); QString readFile(QString name); bool writeFile(QString name, QString & str); -bool writeFileIfDiffrent(QString name, QString & str); +bool writeFileIfDifferent(QString name, QString & str); #endif diff --git a/ground/uavobjgenerator/generators/java/uavobjectgeneratorjava.cpp b/ground/uavobjgenerator/generators/java/uavobjectgeneratorjava.cpp index a4e97457d..bbd788c1f 100644 --- a/ground/uavobjgenerator/generators/java/uavobjectgeneratorjava.cpp +++ b/ground/uavobjgenerator/generators/java/uavobjectgeneratorjava.cpp @@ -62,7 +62,7 @@ bool UAVObjectGeneratorJava::generate(UAVObjectParser *parser, QString templatep // Write the gcs object inialization files javaInitTemplate.replace(QString("$(OBJINC)"), objInc); javaInitTemplate.replace(QString("$(OBJINIT)"), javaObjInit); - bool res = writeFileIfDiffrent(javaOutputPath.absolutePath() + "/UAVObjectsInitialize.java", javaInitTemplate); + bool res = writeFileIfDifferent(javaOutputPath.absolutePath() + "/UAVObjectsInitialize.java", javaInitTemplate); if (!res) { cout << "Error: Could not write output files" << endl; return false; @@ -238,7 +238,7 @@ bool UAVObjectGeneratorJava::process_object(ObjectInfo *info) outCode.replace(QString("$(INITFIELDS)"), initfields); // Write the java code - bool res = writeFileIfDiffrent(javaOutputPath.absolutePath() + "/" + info->name + ".java", outCode); + bool res = writeFileIfDifferent(javaOutputPath.absolutePath() + "/" + info->name + ".java", outCode); if (!res) { cout << "Error: Could not write gcs output files" << endl; return false; diff --git a/ground/uavobjgenerator/generators/python/uavobjectgeneratorpython.cpp b/ground/uavobjgenerator/generators/python/uavobjectgeneratorpython.cpp index f1ee41143..2703e59cc 100644 --- a/ground/uavobjgenerator/generators/python/uavobjectgeneratorpython.cpp +++ b/ground/uavobjgenerator/generators/python/uavobjectgeneratorpython.cpp @@ -110,7 +110,7 @@ bool UAVObjectGeneratorPython::process_object(ObjectInfo *info) outCode.replace(QString("$(DATAFIELDINIT)"), fields); // Write the Python code - bool res = writeFileIfDiffrent(pythonOutputPath.absolutePath() + "/" + info->namelc + ".py", outCode); + bool res = writeFileIfDifferent(pythonOutputPath.absolutePath() + "/" + info->namelc + ".py", outCode); if (!res) { cout << "Error: Could not write Python output files" << endl; return false; diff --git a/ground/uavobjgenerator/generators/wireshark/uavobjectgeneratorwireshark.cpp b/ground/uavobjgenerator/generators/wireshark/uavobjectgeneratorwireshark.cpp index 8a095f342..c06c9df46 100644 --- a/ground/uavobjgenerator/generators/wireshark/uavobjectgeneratorwireshark.cpp +++ b/ground/uavobjgenerator/generators/wireshark/uavobjectgeneratorwireshark.cpp @@ -93,7 +93,7 @@ bool UAVObjectGeneratorWireshark::generate(UAVObjectParser *parser, QString temp /* Write the uavobject dissector's Makefile.common */ wiresharkMakeTemplate.replace(QString("$(UAVOBJFILENAMES)"), objFileNames); - bool res = writeFileIfDiffrent(uavobjectsOutputPath.absolutePath() + "/Makefile.common", + bool res = writeFileIfDifferent(uavobjectsOutputPath.absolutePath() + "/Makefile.common", wiresharkMakeTemplate); if (!res) { cout << "Error: Could not write wireshark Makefile" << endl; @@ -279,7 +279,7 @@ bool UAVObjectGeneratorWireshark::process_object(ObjectInfo *info, QDir outputpa outCode.replace(QString("$(HEADERFIELDS)"), headerfields); // Write the flight code - bool res = writeFileIfDiffrent(outputpath.absolutePath() + "/packet-op-uavobjects-" + info->namelc + ".c", outCode); + bool res = writeFileIfDifferent(outputpath.absolutePath() + "/packet-op-uavobjects-" + info->namelc + ".c", outCode); if (!res) { cout << "Error: Could not write wireshark code files" << endl; return false; From 04497a5b7799c7569d50286e3bdc029e0e64f1f1 Mon Sep 17 00:00:00 2001 From: Richard von Lehe Date: Wed, 8 Apr 2015 18:38:49 -0500 Subject: [PATCH 03/11] enums sorted out in code and template, need to merge in latest --- .../flight/uavobjectgeneratorflight.cpp | 44 +++++++++++++------ 1 file changed, 31 insertions(+), 13 deletions(-) diff --git a/ground/uavobjgenerator/generators/flight/uavobjectgeneratorflight.cpp b/ground/uavobjgenerator/generators/flight/uavobjectgeneratorflight.cpp index 289831003..9ae807b1e 100644 --- a/ground/uavobjgenerator/generators/flight/uavobjectgeneratorflight.cpp +++ b/ground/uavobjgenerator/generators/flight/uavobjectgeneratorflight.cpp @@ -115,13 +115,30 @@ bool UAVObjectGeneratorFlight::process_object(ObjectInfo *info) replaceCommonTags(outInclude, info); replaceCommonTags(outCode, info); + // Use the appropriate typedef for enums where we find them. Set up + // that StringList here for use below. + // + QStringList typeList; + for (int n = 0; n < info->fields.length(); ++n) + { + if (info->fields[n]->type == FIELDTYPE_ENUM) + { + typeList << QString("%1%2Options").arg(info->name).arg(info->fields[n]->name); + } + else + { + typeList << fieldTypeStrC[info->fields[n]->type]; + } + } + // Replace the $(DATAFIELDS) tag QString type; QString fields; QString dataStructures; for (int n = 0; n < info->fields.length(); ++n) { // Determine type - type = fieldTypeStrC[info->fields[n]->type]; + //type = fieldTypeStrC[info->fields[n]->type]; // RHV TODO: remove + type = typeList[n]; // Append field // Check if it a named set and creates structures accordingly if (info->fields[n]->numElements > 1) { @@ -260,28 +277,29 @@ bool UAVObjectGeneratorFlight::process_object(ObjectInfo *info) { // For non-array fields if (info->fields[n]->numElements == 1) { + /* Set */ setgetfields.append(QString("void %2%3Set(%1 *New%3)\n") - .arg(fieldTypeStrC[info->fields[n]->type]) + .arg(typeList[n]) .arg(info->name) .arg(info->fields[n]->name)); setgetfields.append(QString("{\n")); setgetfields.append(QString(" UAVObjSetDataField(%1Handle(), (void *)New%2, offsetof(%1Data, %2), sizeof(%3));\n") .arg(info->name) .arg(info->fields[n]->name) - .arg(fieldTypeStrC[info->fields[n]->type])); + .arg(typeList[n])); setgetfields.append(QString("}\n")); /* GET */ setgetfields.append(QString("void %2%3Get(%1 *New%3)\n") - .arg(fieldTypeStrC[info->fields[n]->type]) + .arg(typeList[n]) .arg(info->name) .arg(info->fields[n]->name)); setgetfields.append(QString("{\n")); setgetfields.append(QString(" UAVObjGetDataField(%1Handle(), (void *)New%2, offsetof(%1Data, %2), sizeof(%3));\n") .arg(info->name) .arg(info->fields[n]->name) - .arg(fieldTypeStrC[info->fields[n]->type])); + .arg(typeList[n])); setgetfields.append(QString("}\n")); } else { // When no struct accessor is available for a field array accessor is the default. @@ -300,7 +318,7 @@ bool UAVObjectGeneratorFlight::process_object(ObjectInfo *info) .arg(info->name) .arg(info->fields[n]->name) .arg(info->fields[n]->numElements) - .arg(fieldTypeStrC[info->fields[n]->type])); + .arg(typeList[n])); setgetfields.append(QString("}\n")); /* GET */ @@ -313,7 +331,7 @@ bool UAVObjectGeneratorFlight::process_object(ObjectInfo *info) .arg(info->name) .arg(info->fields[n]->name) .arg(info->fields[n]->numElements) - .arg(fieldTypeStrC[info->fields[n]->type])); + .arg(typeList[n])); setgetfields.append(QString("}\n")); // Append array suffix to array accessors @@ -323,7 +341,7 @@ bool UAVObjectGeneratorFlight::process_object(ObjectInfo *info) // array based field accessor /* SET */ setgetfields.append(QString("void %2%3%4Set( %1 *New%3 )\n") - .arg(fieldTypeStrC[info->fields[n]->type]) + .arg(typeList[n]) .arg(info->name) .arg(info->fields[n]->name) .arg(suffix)); @@ -332,12 +350,12 @@ bool UAVObjectGeneratorFlight::process_object(ObjectInfo *info) .arg(info->name) .arg(info->fields[n]->name) .arg(info->fields[n]->numElements) - .arg(fieldTypeStrC[info->fields[n]->type])); + .arg(typeList[n])); setgetfields.append(QString("}\n")); /* GET */ setgetfields.append(QString("void %2%3%4Get( %1 *New%3 )\n") - .arg(fieldTypeStrC[info->fields[n]->type]) + .arg(typeList[n]) .arg(info->name) .arg(info->fields[n]->name) .arg(suffix)); @@ -346,7 +364,7 @@ bool UAVObjectGeneratorFlight::process_object(ObjectInfo *info) .arg(info->name) .arg(info->fields[n]->name) .arg(info->fields[n]->numElements) - .arg(fieldTypeStrC[info->fields[n]->type])); + .arg(typeList[n])); setgetfields.append(QString("}\n")); } } @@ -378,14 +396,14 @@ bool UAVObjectGeneratorFlight::process_object(ObjectInfo *info) } /* SET */ setgetfieldsextern.append(QString("extern void %2%3%4Set(%1 *New%3);\n") - .arg(fieldTypeStrC[info->fields[n]->type]) + .arg(typeList[n]) .arg(info->name) .arg(info->fields[n]->name) .arg(suffix)); /* GET */ setgetfieldsextern.append(QString("extern void %2%3%4Get(%1 *New%3);\n") - .arg(fieldTypeStrC[info->fields[n]->type]) + .arg(typeList[n]) .arg(info->name) .arg(info->fields[n]->name) .arg(suffix)); From 4c5cebf5c660ead63a8e2c115a2d466d141a6bee Mon Sep 17 00:00:00 2001 From: Richard von Lehe Date: Wed, 8 Apr 2015 21:40:15 -0500 Subject: [PATCH 04/11] OP-1740 UAV0 GetSet Functions Take Enum: getting codebase to compile - multiple changes needed, still incomplete (i.e. this commit will not compile, but I want to save my changes on more than just my machine :-) --- flight/modules/ManualControl/armhandler.c | 2 ++ .../PathFollower/inc/vtollandcontroller.h | 2 +- flight/modules/PathFollower/inc/vtollandfsm.h | 4 +-- .../PathFollower/vtolbrakecontroller.cpp | 2 ++ .../PathFollower/vtollandcontroller.cpp | 2 +- flight/modules/PathFollower/vtollandfsm.cpp | 26 +++++++++---------- flight/uavobjects/inc/uavobject.h.template | 4 +-- 7 files changed, 23 insertions(+), 19 deletions(-) diff --git a/flight/modules/ManualControl/armhandler.c b/flight/modules/ManualControl/armhandler.c index 2013c7580..7fd73ada9 100644 --- a/flight/modules/ManualControl/armhandler.c +++ b/flight/modules/ManualControl/armhandler.c @@ -179,6 +179,8 @@ void armHandler(bool newinit, FrameType_t frameType) case FLIGHTMODESETTINGS_ARMING_ACCESSORY2: armingInputLevel = -1.0f * acc.AccessoryVal; break; + default: + break; } bool manualArm = false; diff --git a/flight/modules/PathFollower/inc/vtollandcontroller.h b/flight/modules/PathFollower/inc/vtollandcontroller.h index 23fd2c346..c770df0b3 100644 --- a/flight/modules/PathFollower/inc/vtollandcontroller.h +++ b/flight/modules/PathFollower/inc/vtollandcontroller.h @@ -64,7 +64,7 @@ public: private: void UpdateVelocityDesired(void); int8_t UpdateStabilizationDesired(bool yaw_attitude, float yaw_direction); - void setArmedIfChanged(uint8_t val); + void setArmedIfChanged(FlightStatusArmedOptions val); PathFollowerFSM *fsm; VtolPathFollowerSettingsData *vtolPathFollowerSettings; diff --git a/flight/modules/PathFollower/inc/vtollandfsm.h b/flight/modules/PathFollower/inc/vtollandfsm.h index fb806a5da..dec143c41 100644 --- a/flight/modules/PathFollower/inc/vtollandfsm.h +++ b/flight/modules/PathFollower/inc/vtollandfsm.h @@ -82,7 +82,7 @@ protected: // FSM instance data type typedef struct { StatusVtolLandData fsmLandStatus; - PathFollowerFSM_LandState_T currentState; + StatusVtolLandStateOptions currentState; TakeOffLocationData takeOffLocation; uint32_t stateRunCount; uint32_t stateTimeoutCount; @@ -133,7 +133,7 @@ protected: void setup_abort(void); void run_abort(uint8_t); void initFSM(void); - void setState(PathFollowerFSM_LandState_T newState, StatusVtolLandStateExitReasonOptions reason); + void setState(StatusVtolLandStateOptions newState, StatusVtolLandStateExitReasonOptions reason); int32_t runState(); int32_t runAlways(); void updateVtolLandFSMStatus(); diff --git a/flight/modules/PathFollower/vtolbrakecontroller.cpp b/flight/modules/PathFollower/vtolbrakecontroller.cpp index f985edc6f..625567887 100644 --- a/flight/modules/PathFollower/vtolbrakecontroller.cpp +++ b/flight/modules/PathFollower/vtolbrakecontroller.cpp @@ -312,6 +312,8 @@ int8_t VtolBrakeController::UpdateStabilizationDesired(void) // and a better throttle management to the standard Position Hold. thrustMode = FLIGHTMODESETTINGS_STABILIZATION1SETTINGS_ALTITUDEVARIO; break; + default: + break; } stabDesired.StabilizationMode.Thrust = thrustMode; } diff --git a/flight/modules/PathFollower/vtollandcontroller.cpp b/flight/modules/PathFollower/vtollandcontroller.cpp index 8e2fce732..a950971e0 100644 --- a/flight/modules/PathFollower/vtollandcontroller.cpp +++ b/flight/modules/PathFollower/vtollandcontroller.cpp @@ -274,7 +274,7 @@ void VtolLandController::UpdateAutoPilot() PathStatusSet(pathStatus); } -void VtolLandController::setArmedIfChanged(uint8_t val) +void VtolLandController::setArmedIfChanged(FlightStatusArmedOptions val) { if (flightStatus->Armed != val) { flightStatus->Armed = val; diff --git a/flight/modules/PathFollower/vtollandfsm.cpp b/flight/modules/PathFollower/vtollandfsm.cpp index c8f02e0be..4dbbe63c1 100644 --- a/flight/modules/PathFollower/vtollandfsm.cpp +++ b/flight/modules/PathFollower/vtollandfsm.cpp @@ -149,16 +149,16 @@ void VtolLandFSM::Inactive(void) void VtolLandFSM::initFSM(void) { if (vtolPathFollowerSettings != 0) { - setState(LAND_STATE_INACTIVE, STATUSVTOLLAND_STATEEXITREASON_NONE); + setState(STATUSVTOLLAND_STATE_INACTIVE, STATUSVTOLLAND_STATEEXITREASON_NONE); } else { - mLandData->currentState = LAND_STATE_INACTIVE; + mLandData->currentState = STATUSVTOLLAND_STATE_INACTIVE; } } void VtolLandFSM::Activate() { memset(mLandData, sizeof(VtolLandFSMData_T), 0); - mLandData->currentState = LAND_STATE_INACTIVE; + mLandData->currentState = STATUSVTOLLAND_STATE_INACTIVE; mLandData->flLowAltitude = false; mLandData->flAltitudeHold = false; mLandData->fsmLandStatus.averageDescentRate = MIN_LANDRATE; @@ -167,38 +167,38 @@ void VtolLandFSM::Activate() mLandData->boundThrustMin = vtolPathFollowerSettings->ThrustLimits.Min; mLandData->boundThrustMax = vtolPathFollowerSettings->ThrustLimits.Max; TakeOffLocationGet(&(mLandData->takeOffLocation)); - mLandData->fsmLandStatus.AltitudeAtState[LAND_STATE_INACTIVE] = 0.0f; + mLandData->fsmLandStatus.AltitudeAtState[STATUSVTOLLAND_STATE_INACTIVE] = 0.0f; assessAltitude(); if (pathDesired->Mode == PATHDESIRED_MODE_LAND) { #ifndef DEBUG_GROUNDIMPACT - setState(LAND_STATE_INIT_ALTHOLD, STATUSVTOLLAND_STATEEXITREASON_NONE); + setState(STATUSVTOLLAND_STATE_INITALTHOLD, STATUSVTOLLAND_STATEEXITREASON_NONE); #else - setState(LAND_STATE_WTG_FOR_GROUNDEFFECT, STATUSVTOLLAND_STATEEXITREASON_NONE); + setState(STATUSVTOLLAND_STATE_WTGFORGROUNDEFFECT, STATUSVTOLLAND_STATEEXITREASON_NONE); #endif } else { // move to error state and callback to position hold - setState(LAND_STATE_ABORT, STATUSVTOLLAND_STATEEXITREASON_NONE); + setState(STATUSVTOLLAND_STATE_ABORT, STATUSVTOLLAND_STATEEXITREASON_NONE); } } void VtolLandFSM::Abort(void) { - setState(LAND_STATE_ABORT, STATUSVTOLLAND_STATEEXITREASON_NONE); + setState(STATUSVTOLLAND_STATE_ABORT, STATUSVTOLLAND_STATEEXITREASON_NONE); } PathFollowerFSMState_T VtolLandFSM::GetCurrentState(void) { switch (mLandData->currentState) { - case LAND_STATE_INACTIVE: + case STATUSVTOLLAND_STATE_INACTIVE: return PFFSM_STATE_INACTIVE; break; - case LAND_STATE_ABORT: + case STATUSVTOLLAND_STATE_ABORT: return PFFSM_STATE_ABORT; break; - case LAND_STATE_DISARMED: + case STATUSVTOLLAND_STATE_DISARMED: return PFFSM_STATE_DISARMED; break; @@ -278,7 +278,7 @@ void VtolLandFSM::CheckPidScaler(pid_scaler *local_scaler) // Set the new state and perform setup for subsequent state run calls // This is called by state run functions on event detection that drive // state transitions. -void VtolLandFSM::setState(PathFollowerFSM_LandState_T newState, StatusVtolLandStateExitReasonOptions reason) +void VtolLandFSM::setState(StatusVtolLandStateOptions newState, StatusVtolLandStateExitReasonOptions reason) { mLandData->fsmLandStatus.StateExitReason[mLandData->currentState] = reason; @@ -287,7 +287,7 @@ void VtolLandFSM::setState(PathFollowerFSM_LandState_T newState, StatusVtolLandS } mLandData->currentState = newState; - if (newState != LAND_STATE_INACTIVE) { + if (newState != STATUSVTOLLAND_STATE_INACTIVE) { PositionStateData positionState; PositionStateGet(&positionState); float takeOffDown = 0.0f; diff --git a/flight/uavobjects/inc/uavobject.h.template b/flight/uavobjects/inc/uavobject.h.template index a17a657a6..6f3317f7f 100644 --- a/flight/uavobjects/inc/uavobject.h.template +++ b/flight/uavobjects/inc/uavobject.h.template @@ -52,6 +52,8 @@ int32_t $(NAME)Initialize(); UAVObjHandle $(NAME)Handle(); void $(NAME)SetDefaults(UAVObjHandle obj, uint16_t instId); +$(DATAFIELDINFO) + $(DATASTRUCTURES) /* * Packed Object data (unaligned). @@ -86,8 +88,6 @@ static inline int32_t $(NAME)GetMetadata(UAVObjMetadata *dataOut) { return UAVOb static inline int32_t $(NAME)SetMetadata(const UAVObjMetadata *dataIn) { return UAVObjSetMetadata($(NAME)Handle(), dataIn); } static inline int8_t $(NAME)ReadOnly() { return UAVObjReadOnly($(NAME)Handle()); } -$(DATAFIELDINFO) - /* Set/Get functions */ $(SETGETFIELDSEXTERN) From b3a7a89dcaa2fb5b872f6eb85b0e1d062c5095bf Mon Sep 17 00:00:00 2001 From: Richard von Lehe Date: Thu, 9 Apr 2015 20:04:44 -0500 Subject: [PATCH 05/11] OP-1740: GetSet functions take enum: Fix remaining compile errors in PathFollower and Airspeed modules. --- flight/modules/Airspeed/airspeed.c | 2 ++ .../PathFollower/vtolbrakecontroller.cpp | 2 +- flight/modules/PathFollower/vtollandfsm.cpp | 26 +++++++++---------- 3 files changed, 16 insertions(+), 14 deletions(-) diff --git a/flight/modules/Airspeed/airspeed.c b/flight/modules/Airspeed/airspeed.c index d44682c98..d86a692a6 100644 --- a/flight/modules/Airspeed/airspeed.c +++ b/flight/modules/Airspeed/airspeed.c @@ -169,6 +169,8 @@ static void airspeedTask(__attribute__((unused)) void *parameters) imu_airspeedInitialize(&airspeedSettings); } break; + default: + break; } } switch (airspeedSettings.AirspeedSensorType) { diff --git a/flight/modules/PathFollower/vtolbrakecontroller.cpp b/flight/modules/PathFollower/vtolbrakecontroller.cpp index 625567887..141421e73 100644 --- a/flight/modules/PathFollower/vtolbrakecontroller.cpp +++ b/flight/modules/PathFollower/vtolbrakecontroller.cpp @@ -315,7 +315,7 @@ int8_t VtolBrakeController::UpdateStabilizationDesired(void) default: break; } - stabDesired.StabilizationMode.Thrust = thrustMode; + stabDesired.StabilizationMode.Thrust = (StabilizationDesiredStabilizationModeOptions) thrustMode; } // set the thrust value diff --git a/flight/modules/PathFollower/vtollandfsm.cpp b/flight/modules/PathFollower/vtollandfsm.cpp index 4dbbe63c1..b4aff11cd 100644 --- a/flight/modules/PathFollower/vtollandfsm.cpp +++ b/flight/modules/PathFollower/vtollandfsm.cpp @@ -390,7 +390,7 @@ void VtolLandFSM::run_init_althold(uint8_t flTimeout) { if (flTimeout) { mLandData->flAltitudeHold = false; - setState(LAND_STATE_WTG_FOR_DESCENTRATE, STATUSVTOLLAND_STATEEXITREASON_TIMEOUT); + setState(STATUSVTOLLAND_STATE_WTGFORDESCENTRATE, STATUSVTOLLAND_STATEEXITREASON_TIMEOUT); } } @@ -427,13 +427,13 @@ void VtolLandFSM::run_wtg_for_descentrate(uint8_t flTimeout) if (velocityState.Down > (LANDRATE_LOWLIMIT_FACTOR * mLandData->fsmLandStatus.targetDescentRate) && velocityState.Down < (LANDRATE_HILIMIT_FACTOR * mLandData->fsmLandStatus.targetDescentRate)) { if (mLandData->observationCount++ > WTG_FOR_DESCENTRATE_COUNT_LIMIT) { - setState(LAND_STATE_AT_DESCENTRATE, STATUSVTOLLAND_STATEEXITREASON_DESCENTRATEOK); + setState(STATUSVTOLLAND_STATE_ATDESCENTRATE, STATUSVTOLLAND_STATEEXITREASON_DESCENTRATEOK); return; } } if (flTimeout) { - setState(LAND_STATE_ABORT, STATUSVTOLLAND_STATEEXITREASON_TIMEOUT); + setState(STATUSVTOLLAND_STATE_ABORT, STATUSVTOLLAND_STATEEXITREASON_TIMEOUT); } } @@ -476,7 +476,7 @@ void VtolLandFSM::run_at_descentrate(uint8_t flTimeout) mLandData->fsmLandStatus.calculatedNeutralThrust = boundf(mLandData->fsmLandStatus.calculatedNeutralThrust, vtolPathFollowerSettings->ThrustLimits.Neutral, vtolPathFollowerSettings->ThrustLimits.Max); - setState(LAND_STATE_WTG_FOR_GROUNDEFFECT, STATUSVTOLLAND_STATEEXITREASON_DESCENTRATEOK); + setState(STATUSVTOLLAND_STATE_WTGFORGROUNDEFFECT, STATUSVTOLLAND_STATEEXITREASON_DESCENTRATEOK); } } @@ -534,7 +534,7 @@ void VtolLandFSM::run_wtg_for_groundeffect(__attribute__((unused)) uint8_t flTim if (flBounce || flBounceAccel) { mLandData->observation2Count++; if (mLandData->observation2Count > BOUNCE_TRIGGER_COUNT) { - setState(LAND_STATE_GROUNDEFFECT, (flBounce ? STATUSVTOLLAND_STATEEXITREASON_BOUNCEVELOCITY : STATUSVTOLLAND_STATEEXITREASON_BOUNCEACCEL)); + setState(STATUSVTOLLAND_STATE_GROUNDEFFECT, (flBounce ? STATUSVTOLLAND_STATEEXITREASON_BOUNCEVELOCITY : STATUSVTOLLAND_STATEEXITREASON_BOUNCEACCEL)); return; } } else { @@ -548,7 +548,7 @@ void VtolLandFSM::run_wtg_for_groundeffect(__attribute__((unused)) uint8_t flTim mLandData->observationCount++; if (mLandData->observationCount > GROUNDEFFECT_SLOWDOWN_COUNT) { #ifndef DEBUG_GROUNDIMPACT - setState(LAND_STATE_GROUNDEFFECT, STATUSVTOLLAND_STATEEXITREASON_LOWDESCENTRATE); + setState(STATUSVTOLLAND_STATE_GROUNDEFFECT, STATUSVTOLLAND_STATEEXITREASON_LOWDESCENTRATE); #endif return; } @@ -580,7 +580,7 @@ void VtolLandFSM::run_groundeffect(__attribute__((unused)) uint8_t flTimeout) StabilizationDesiredGet(&stabDesired); if (stabDesired.Thrust < 0.0f) { - setState(LAND_STATE_THRUSTOFF, STATUSVTOLLAND_STATEEXITREASON_ZEROTHRUST); + setState(STATUSVTOLLAND_STATE_THRUSTOFF, STATUSVTOLLAND_STATEEXITREASON_ZEROTHRUST); return; } @@ -597,12 +597,12 @@ void VtolLandFSM::run_groundeffect(__attribute__((unused)) uint8_t flTimeout) float east_error = mLandData->expectedLandPositionEast - positionState.East; float positionError = sqrtf(north_error * north_error + east_error * east_error); if (positionError > 0.3f) { - setState(LAND_STATE_THRUSTDOWN, STATUSVTOLLAND_STATEEXITREASON_POSITIONERROR); + setState(STATUSVTOLLAND_STATE_THRUSTDOWN, STATUSVTOLLAND_STATEEXITREASON_POSITIONERROR); return; } if (flTimeout) { - setState(LAND_STATE_THRUSTDOWN, STATUSVTOLLAND_STATEEXITREASON_TIMEOUT); + setState(STATUSVTOLLAND_STATE_THRUSTDOWN, STATUSVTOLLAND_STATEEXITREASON_TIMEOUT); } } @@ -628,11 +628,11 @@ void VtolLandFSM::run_thrustdown(__attribute__((unused)) uint8_t flTimeout) StabilizationDesiredData stabDesired; StabilizationDesiredGet(&stabDesired); if (stabDesired.Thrust < 0.0f || mLandData->thrustLimit < 0.0f) { - setState(LAND_STATE_THRUSTOFF, STATUSVTOLLAND_STATEEXITREASON_ZEROTHRUST); + setState(STATUSVTOLLAND_STATE_THRUSTOFF, STATUSVTOLLAND_STATEEXITREASON_ZEROTHRUST); } if (flTimeout) { - setState(LAND_STATE_THRUSTOFF, STATUSVTOLLAND_STATEEXITREASON_TIMEOUT); + setState(STATUSVTOLLAND_STATE_THRUSTOFF, STATUSVTOLLAND_STATEEXITREASON_TIMEOUT); } } @@ -647,7 +647,7 @@ void VtolLandFSM::setup_thrustoff(void) void VtolLandFSM::run_thrustoff(__attribute__((unused)) uint8_t flTimeout) { - setState(LAND_STATE_DISARMED, STATUSVTOLLAND_STATEEXITREASON_NONE); + setState(STATUSVTOLLAND_STATE_DISARMED, STATUSVTOLLAND_STATEEXITREASON_NONE); } // STATE: DISARMED @@ -665,7 +665,7 @@ void VtolLandFSM::run_disarmed(__attribute__((unused)) uint8_t flTimeout) { #ifdef DEBUG_GROUNDIMPACT if (mLandData->observationCount++ > 100) { - setState(LAND_STATE_WTG_FOR_GROUNDEFFECT, STATUSVTOLLAND_STATEEXITREASON_NONE); + setState(STATUSVTOLLAND_STATE_WTGFORGROUNDEFFECT, STATUSVTOLLAND_STATEEXITREASON_NONE); } #endif } From e6de41855b2ee936117207ddd39f013b373f5be3 Mon Sep 17 00:00:00 2001 From: Rich von Lehe Date: Sat, 11 Apr 2015 15:43:04 -0500 Subject: [PATCH 06/11] OP-1740: GetSet use enums: Getting more files to conform to using enums instead of uint8_t... --- flight/libraries/plans.c | 2 +- flight/libraries/sanitycheck.c | 22 +++++++++---------- flight/modules/Airspeed/airspeed.c | 4 ++-- flight/modules/GPS/GPS.c | 6 ++--- flight/modules/Logging/Logging.c | 2 +- flight/modules/ManualControl/manualcontrol.c | 4 ++-- .../ManualControl/pathfollowerhandler.c | 6 ++--- .../modules/ManualControl/stabilizedhandler.c | 14 ++++++------ .../ManualControl/takeofflocationhandler.c | 12 +++++----- flight/modules/PathPlanner/pathplanner.c | 2 +- flight/modules/Stabilization/innerloop.c | 2 +- flight/modules/Stabilization/outerloop.c | 2 +- flight/modules/Telemetry/telemetry.c | 2 +- .../boards/simposix/firmware/pios_board.c | 11 +++++++--- 14 files changed, 48 insertions(+), 43 deletions(-) diff --git a/flight/libraries/plans.c b/flight/libraries/plans.c index 650a0cc78..a2720f463 100644 --- a/flight/libraries/plans.c +++ b/flight/libraries/plans.c @@ -154,7 +154,7 @@ void plan_setup_returnToBase() pathDesired.StartingVelocity = 0.0f; pathDesired.EndingVelocity = 0.0f; - uint8_t ReturnToBaseNextCommand; + FlightModeSettingsReturnToBaseNextCommandOptions ReturnToBaseNextCommand; FlightModeSettingsReturnToBaseNextCommandGet(&ReturnToBaseNextCommand); pathDesired.ModeParameters[PATHDESIRED_MODEPARAMETER_GOTOENDPOINT_NEXTCOMMAND] = (float)ReturnToBaseNextCommand; pathDesired.ModeParameters[PATHDESIRED_MODEPARAMETER_GOTOENDPOINT_UNUSED1] = 0.0f; diff --git a/flight/libraries/sanitycheck.c b/flight/libraries/sanitycheck.c index 7f16cc1c1..8302668f3 100644 --- a/flight/libraries/sanitycheck.c +++ b/flight/libraries/sanitycheck.c @@ -74,7 +74,7 @@ int32_t configuration_check() // Classify navigation capability #ifdef REVOLUTION RevoSettingsInitialize(); - uint8_t revoFusion; + RevoSettingsFusionAlgorithmOptions revoFusion; RevoSettingsFusionAlgorithmGet(&revoFusion); bool navCapableFusion; switch (revoFusion) { @@ -104,8 +104,8 @@ int32_t configuration_check() // For each available flight mode position sanity check the available // modes uint8_t num_modes; - uint8_t modes[FLIGHTMODESETTINGS_FLIGHTMODEPOSITION_NUMELEM]; - uint8_t FlightModeAssistMap[STABILIZATIONSETTINGS_FLIGHTMODEASSISTMAP_NUMELEM]; + FlightModeSettingsFlightModePositionOptions modes[FLIGHTMODESETTINGS_FLIGHTMODEPOSITION_NUMELEM]; + StabilizationSettingsFlightModeAssistMapOptions FlightModeAssistMap[STABILIZATIONSETTINGS_FLIGHTMODEASSISTMAP_NUMELEM]; ManualControlSettingsFlightModeNumberGet(&num_modes); StabilizationSettingsFlightModeAssistMapGet(FlightModeAssistMap); FlightModeSettingsFlightModePositionGet(modes); @@ -208,7 +208,7 @@ int32_t configuration_check() } } - uint8_t checks_disabled; + FlightModeSettingsDisableSanityChecksOptions checks_disabled; FlightModeSettingsDisableSanityChecksGet(&checks_disabled); if (checks_disabled == FLIGHTMODESETTINGS_DISABLESANITYCHECKS_TRUE) { severity = SYSTEMALARMS_ALARM_WARNING; @@ -236,22 +236,22 @@ static bool check_stabilization_settings(int index, bool multirotor, bool copter // Get the different axis modes for this switch position switch (index) { case 1: - FlightModeSettingsStabilization1SettingsArrayGet(modes); + FlightModeSettingsStabilization1SettingsArrayGet((FlightModeSettingsStabilization1SettingsOptions*) modes); break; case 2: - FlightModeSettingsStabilization2SettingsArrayGet(modes); + FlightModeSettingsStabilization2SettingsArrayGet((FlightModeSettingsStabilization2SettingsOptions*) modes); break; case 3: - FlightModeSettingsStabilization3SettingsArrayGet(modes); + FlightModeSettingsStabilization3SettingsArrayGet((FlightModeSettingsStabilization3SettingsOptions*) modes); break; case 4: - FlightModeSettingsStabilization4SettingsArrayGet(modes); + FlightModeSettingsStabilization4SettingsArrayGet((FlightModeSettingsStabilization4SettingsOptions*) modes); break; case 5: - FlightModeSettingsStabilization5SettingsArrayGet(modes); + FlightModeSettingsStabilization5SettingsArrayGet((FlightModeSettingsStabilization5SettingsOptions*) modes); break; case 6: - FlightModeSettingsStabilization6SettingsArrayGet(modes); + FlightModeSettingsStabilization6SettingsArrayGet((FlightModeSettingsStabilization6SettingsOptions*) modes); break; default: return false; @@ -325,7 +325,7 @@ static bool check_stabilization_settings(int index, bool multirotor, bool copter FrameType_t GetCurrentFrameType() { - uint8_t airframe_type; + SystemSettingsAirframeTypeOptions airframe_type; SystemSettingsAirframeTypeGet(&airframe_type); switch ((SystemSettingsAirframeTypeOptions)airframe_type) { diff --git a/flight/modules/Airspeed/airspeed.c b/flight/modules/Airspeed/airspeed.c index d86a692a6..b46ba55db 100644 --- a/flight/modules/Airspeed/airspeed.c +++ b/flight/modules/Airspeed/airspeed.c @@ -98,7 +98,7 @@ int32_t AirspeedInitialize() #else HwSettingsInitialize(); - uint8_t optionalModules[HWSETTINGS_OPTIONALMODULES_NUMELEM]; + HwSettingsOptionalModulesOptions optionalModules[HWSETTINGS_OPTIONALMODULES_NUMELEM]; HwSettingsOptionalModulesArrayGet(optionalModules); @@ -110,7 +110,7 @@ int32_t AirspeedInitialize() } #endif - uint8_t adcRouting[HWSETTINGS_ADCROUTING_NUMELEM]; + HwSettingsADCRoutingOptions adcRouting[HWSETTINGS_ADCROUTING_NUMELEM]; HwSettingsADCRoutingArrayGet(adcRouting); // Determine if the barometric airspeed sensor is routed to an ADC pin diff --git a/flight/modules/GPS/GPS.c b/flight/modules/GPS/GPS.c index 460f6fdc1..d9a080256 100644 --- a/flight/modules/GPS/GPS.c +++ b/flight/modules/GPS/GPS.c @@ -153,7 +153,7 @@ int32_t GPSStart(void) int32_t GPSInitialize(void) { gpsPort = PIOS_COM_GPS; - uint8_t gpsProtocol; + GPSSettingsDataProtocolOptions gpsProtocol; #ifdef MODULE_GPS_BUILTIN gpsEnabled = true; @@ -338,7 +338,7 @@ static void gpsTask(__attribute__((unused)) void *parameters) (gpsSettings.DataProtocol == GPSSETTINGS_DATAPROTOCOL_UBX && gpspositionsensor.AutoConfigStatus == GPSPOSITIONSENSOR_AUTOCONFIGSTATUS_ERROR)) { // we have not received any valid GPS sentences for a while. // either the GPS is not plugged in or a hardware problem or the GPS has locked up. - uint8_t status = GPSPOSITIONSENSOR_STATUS_NOGPS; + GPSPositionSensorStatusOptions status = GPSPOSITIONSENSOR_STATUS_NOGPS; GPSPositionSensorStatusSet(&status); AlarmsSet(SYSTEMALARMS_ALARM_GPS, SYSTEMALARMS_ALARM_ERROR); } else { @@ -439,7 +439,7 @@ static void updateHwSettings() { if (gpsPort) { // Retrieve settings - uint8_t speed; + HwSettingsGPSSpeedOptions speed; HwSettingsGPSSpeedGet(&speed); // Set port speed diff --git a/flight/modules/Logging/Logging.c b/flight/modules/Logging/Logging.c index bc0733186..7529420d2 100644 --- a/flight/modules/Logging/Logging.c +++ b/flight/modules/Logging/Logging.c @@ -134,7 +134,7 @@ static void ControlUpdatedCb(__attribute__((unused)) UAVObjEvent *ev) } DebugLogEntrySet(entry); } else if (control.Operation == DEBUGLOGCONTROL_OPERATION_FORMATFLASH) { - uint8_t armed; + FlightStatusArmedOptions armed; FlightStatusArmedGet(&armed); if (armed == FLIGHTSTATUS_ARMED_DISARMED) { PIOS_DEBUGLOG_Format(); diff --git a/flight/modules/ManualControl/manualcontrol.c b/flight/modules/ManualControl/manualcontrol.c index 70b872296..b90a09ccf 100644 --- a/flight/modules/ManualControl/manualcontrol.c +++ b/flight/modules/ManualControl/manualcontrol.c @@ -182,7 +182,7 @@ static void SettingsUpdatedCb(__attribute__((unused)) UAVObjEvent *ev) { frameType = GetCurrentFrameType(); #ifndef PIOS_EXCLUDE_ADVANCED_FEATURES - uint8_t TreatCustomCraftAs; + VtolPathFollowerSettingsTreatCustomCraftAsOptions TreatCustomCraftAs; VtolPathFollowerSettingsTreatCustomCraftAsGet(&TreatCustomCraftAs); @@ -485,7 +485,7 @@ static uint8_t isAssistedFlightMode(uint8_t position, uint8_t flightMode, Flight { uint8_t flightModeAssistOption = STABILIZATIONSETTINGS_FLIGHTMODEASSISTMAP_NONE; uint8_t isAssistedFlag = FLIGHTSTATUS_FLIGHTMODEASSIST_NONE; - uint8_t FlightModeAssistMap[STABILIZATIONSETTINGS_FLIGHTMODEASSISTMAP_NUMELEM]; + StabilizationSettingsFlightModeAssistMapOptions FlightModeAssistMap[STABILIZATIONSETTINGS_FLIGHTMODEASSISTMAP_NUMELEM]; StabilizationSettingsFlightModeAssistMapGet(FlightModeAssistMap); if (position < STABILIZATIONSETTINGS_FLIGHTMODEASSISTMAP_NUMELEM) { diff --git a/flight/modules/ManualControl/pathfollowerhandler.c b/flight/modules/ManualControl/pathfollowerhandler.c index 1a0818b68..972366268 100644 --- a/flight/modules/ManualControl/pathfollowerhandler.c +++ b/flight/modules/ManualControl/pathfollowerhandler.c @@ -55,9 +55,9 @@ void pathFollowerHandler(bool newinit) plan_initialize(); } - uint8_t flightMode; - uint8_t assistedControlFlightMode; - uint8_t flightModeAssist; + FlightStatusFlightModeOptions flightMode; + FlightStatusAssistedControlStateOptions assistedControlFlightMode; + FlightStatusFlightModeAssistOptions flightModeAssist; FlightStatusFlightModeGet(&flightMode); FlightStatusFlightModeAssistGet(&flightModeAssist); FlightStatusAssistedControlStateGet(&assistedControlFlightMode); diff --git a/flight/modules/ManualControl/stabilizedhandler.c b/flight/modules/ManualControl/stabilizedhandler.c index 4621a7171..0a523d3f6 100644 --- a/flight/modules/ManualControl/stabilizedhandler.c +++ b/flight/modules/ManualControl/stabilizedhandler.c @@ -96,27 +96,27 @@ void stabilizedHandler(bool newinit) switch (flightStatus.FlightMode) { case FLIGHTSTATUS_FLIGHTMODE_STABILIZED1: - stab_settings = FlightModeSettingsStabilization1SettingsToArray(settings.Stabilization1Settings); + stab_settings = (uint8_t*) FlightModeSettingsStabilization1SettingsToArray(settings.Stabilization1Settings); break; case FLIGHTSTATUS_FLIGHTMODE_STABILIZED2: - stab_settings = FlightModeSettingsStabilization2SettingsToArray(settings.Stabilization2Settings); + stab_settings = (uint8_t*) FlightModeSettingsStabilization2SettingsToArray(settings.Stabilization2Settings); break; case FLIGHTSTATUS_FLIGHTMODE_STABILIZED3: - stab_settings = FlightModeSettingsStabilization3SettingsToArray(settings.Stabilization3Settings); + stab_settings = (uint8_t*) FlightModeSettingsStabilization3SettingsToArray(settings.Stabilization3Settings); break; case FLIGHTSTATUS_FLIGHTMODE_STABILIZED4: - stab_settings = FlightModeSettingsStabilization4SettingsToArray(settings.Stabilization4Settings); + stab_settings = (uint8_t*) FlightModeSettingsStabilization4SettingsToArray(settings.Stabilization4Settings); break; case FLIGHTSTATUS_FLIGHTMODE_STABILIZED5: - stab_settings = FlightModeSettingsStabilization5SettingsToArray(settings.Stabilization5Settings); + stab_settings = (uint8_t*) FlightModeSettingsStabilization5SettingsToArray(settings.Stabilization5Settings); break; case FLIGHTSTATUS_FLIGHTMODE_STABILIZED6: - stab_settings = FlightModeSettingsStabilization6SettingsToArray(settings.Stabilization6Settings); + stab_settings = (uint8_t*) FlightModeSettingsStabilization6SettingsToArray(settings.Stabilization6Settings); break; default: // Major error, this should not occur because only enter this block when one of these is true AlarmsSet(SYSTEMALARMS_ALARM_MANUALCONTROL, SYSTEMALARMS_ALARM_CRITICAL); - stab_settings = FlightModeSettingsStabilization1SettingsToArray(settings.Stabilization1Settings); + stab_settings = (uint8_t*) FlightModeSettingsStabilization1SettingsToArray(settings.Stabilization1Settings); return; } diff --git a/flight/modules/ManualControl/takeofflocationhandler.c b/flight/modules/ManualControl/takeofflocationhandler.c index 42a10777d..93332f2b1 100644 --- a/flight/modules/ManualControl/takeofflocationhandler.c +++ b/flight/modules/ManualControl/takeofflocationhandler.c @@ -42,8 +42,8 @@ void takeOffLocationHandlerInit() { TakeOffLocationInitialize(); // check whether there is a preset/valid takeoff location - uint8_t mode; - uint8_t status; + TakeOffLocationModeOptions mode; + TakeOffLocationStatusOptions status; TakeOffLocationModeGet(&mode); TakeOffLocationStatusGet(&status); // preset with invalid location will actually behave like FirstTakeoff @@ -61,8 +61,8 @@ void takeOffLocationHandlerInit() */ void takeOffLocationHandler() { - uint8_t armed; - uint8_t status; + FlightStatusArmedOptions armed; + TakeOffLocationStatusOptions status; FlightStatusArmedGet(&armed); @@ -77,7 +77,7 @@ void takeOffLocationHandler() case FLIGHTSTATUS_ARMED_ARMING: case FLIGHTSTATUS_ARMED_ARMED: if (!locationSet || status != TAKEOFFLOCATION_STATUS_VALID) { - uint8_t mode; + TakeOffLocationModeOptions mode; TakeOffLocationModeGet(&mode); if ((mode != TAKEOFFLOCATION_MODE_PRESET) || (status == TAKEOFFLOCATION_STATUS_INVALID)) { @@ -91,7 +91,7 @@ void takeOffLocationHandler() case FLIGHTSTATUS_ARMED_DISARMED: // unset if location is to be acquired at each arming if (locationSet) { - uint8_t mode; + TakeOffLocationModeOptions mode; TakeOffLocationModeGet(&mode); if (mode == TAKEOFFLOCATION_MODE_ARMINGLOCATION) { locationSet = false; diff --git a/flight/modules/PathPlanner/pathplanner.c b/flight/modules/PathPlanner/pathplanner.c index ab6442391..7e3c92bba 100644 --- a/flight/modules/PathPlanner/pathplanner.c +++ b/flight/modules/PathPlanner/pathplanner.c @@ -138,7 +138,7 @@ MODULE_INITCALL(PathPlannerInitialize, PathPlannerStart); static void SettingsUpdatedCb(__attribute__((unused)) UAVObjEvent *ev) { - uint8_t TreatCustomCraftAs; + VtolPathFollowerSettingsTreatCustomCraftAsOptions TreatCustomCraftAs; VtolPathFollowerSettingsTreatCustomCraftAsGet(&TreatCustomCraftAs); diff --git a/flight/modules/Stabilization/innerloop.c b/flight/modules/Stabilization/innerloop.c index 2ed1ae57b..b772b0602 100644 --- a/flight/modules/Stabilization/innerloop.c +++ b/flight/modules/Stabilization/innerloop.c @@ -334,7 +334,7 @@ static void stabilizationInnerloopTask() } { - uint8_t armed; + FlightStatusArmedOptions armed; FlightStatusArmedGet(&armed); float throttleDesired; ManualControlCommandThrottleGet(&throttleDesired); diff --git a/flight/modules/Stabilization/outerloop.c b/flight/modules/Stabilization/outerloop.c index 995003208..b4ea4e73f 100644 --- a/flight/modules/Stabilization/outerloop.c +++ b/flight/modules/Stabilization/outerloop.c @@ -264,7 +264,7 @@ static void stabilizationOuterloopTask() RateDesiredSet(&rateDesired); { - uint8_t armed; + FlightStatusArmedOptions armed; FlightStatusArmedGet(&armed); float throttleDesired; ManualControlCommandThrottleGet(&throttleDesired); diff --git a/flight/modules/Telemetry/telemetry.c b/flight/modules/Telemetry/telemetry.c index 86d565891..0cddc68ed 100644 --- a/flight/modules/Telemetry/telemetry.c +++ b/flight/modules/Telemetry/telemetry.c @@ -685,7 +685,7 @@ static void updateSettings() { if (telemetryPort) { // Retrieve settings - uint8_t speed; + HwSettingsTelemetrySpeedOptions speed; HwSettingsTelemetrySpeedGet(&speed); // Set port speed diff --git a/flight/targets/boards/simposix/firmware/pios_board.c b/flight/targets/boards/simposix/firmware/pios_board.c index 781833d32..19799d2d4 100644 --- a/flight/targets/boards/simposix/firmware/pios_board.c +++ b/flight/targets/boards/simposix/firmware/pios_board.c @@ -152,7 +152,7 @@ void PIOS_Board_Init(void) /* Configure IO ports */ /* Configure Telemetry port */ - uint8_t hwsettings_rv_telemetryport; + HwSettingsRV_TelemetryPortOptions hwsettings_rv_telemetryport; HwSettingsRV_TelemetryPortGet(&hwsettings_rv_telemetryport); switch (hwsettings_rv_telemetryport) { @@ -164,10 +164,12 @@ void PIOS_Board_Init(void) case HWSETTINGS_RV_TELEMETRYPORT_COMAUX: PIOS_Board_configure_com(&pios_udp_telem_cfg, PIOS_COM_AUX_RX_BUF_LEN, PIOS_COM_AUX_TX_BUF_LEN, &pios_udp_com_driver, &pios_com_aux_id); break; + default: + break; } /* hwsettings_rv_telemetryport */ /* Configure GPS port */ - uint8_t hwsettings_rv_gpsport; + HwSettingsRV_GPSPortOptions hwsettings_rv_gpsport; HwSettingsRV_GPSPortGet(&hwsettings_rv_gpsport); switch (hwsettings_rv_gpsport) { case HWSETTINGS_RV_GPSPORT_DISABLED: @@ -184,10 +186,12 @@ void PIOS_Board_Init(void) case HWSETTINGS_RV_GPSPORT_COMAUX: PIOS_Board_configure_com(&pios_udp_gps_cfg, PIOS_COM_AUX_RX_BUF_LEN, PIOS_COM_AUX_TX_BUF_LEN, &pios_udp_com_driver, &pios_com_aux_id); break; + default: + break; } /* hwsettings_rv_gpsport */ /* Configure AUXPort */ - uint8_t hwsettings_rv_auxport; + HwSettingsRV_AuxPortOptions hwsettings_rv_auxport; HwSettingsRV_AuxPortGet(&hwsettings_rv_auxport); switch (hwsettings_rv_auxport) { @@ -201,6 +205,7 @@ void PIOS_Board_Init(void) case HWSETTINGS_RV_AUXPORT_COMAUX: PIOS_Board_configure_com(&pios_udp_aux_cfg, PIOS_COM_AUX_RX_BUF_LEN, PIOS_COM_AUX_TX_BUF_LEN, &pios_udp_com_driver, &pios_com_aux_id); break; + default: break; } /* hwsettings_rv_auxport */ } From 782944bfb1fd373fcda300b0063ee518cc2eaa9a Mon Sep 17 00:00:00 2001 From: Rich von Lehe Date: Sun, 12 Apr 2015 16:20:09 -0500 Subject: [PATCH 07/11] OP-1740: uavobj use enums: clean up errors --- flight/modules/PathFollower/vtolbrakefsm.cpp | 6 +++--- flight/modules/PathFollower/vtollandfsm.cpp | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/flight/modules/PathFollower/vtolbrakefsm.cpp b/flight/modules/PathFollower/vtolbrakefsm.cpp index e9e47f889..6401e0a2f 100644 --- a/flight/modules/PathFollower/vtolbrakefsm.cpp +++ b/flight/modules/PathFollower/vtolbrakefsm.cpp @@ -101,7 +101,7 @@ int32_t VtolBrakeFSM::Initialize(VtolPathFollowerSettingsData *ptr_vtolPathFollo mBrakeData = (VtolBrakeFSMData_T *)pios_malloc(sizeof(VtolBrakeFSMData_T)); PIOS_Assert(mBrakeData); } - memset(mBrakeData, sizeof(VtolBrakeFSMData_T), 0); + memset(mBrakeData, 0, sizeof(VtolBrakeFSMData_T)); vtolPathFollowerSettings = ptr_vtolPathFollowerSettings; pathDesired = ptr_pathDesired; flightStatus = ptr_flightStatus; @@ -113,7 +113,7 @@ int32_t VtolBrakeFSM::Initialize(VtolPathFollowerSettingsData *ptr_vtolPathFollo void VtolBrakeFSM::Inactive(void) { - memset(mBrakeData, sizeof(VtolBrakeFSMData_T), 0); + memset(mBrakeData, 0, sizeof(VtolBrakeFSMData_T)); initFSM(); } @@ -125,7 +125,7 @@ void VtolBrakeFSM::initFSM(void) void VtolBrakeFSM::Activate() { - memset(mBrakeData, sizeof(VtolBrakeFSMData_T), 0); + memset(mBrakeData, 0, sizeof(VtolBrakeFSMData_T)); mBrakeData->currentState = BRAKE_STATE_INACTIVE; setState(BRAKE_STATE_BRAKE, FSMBRAKESTATUS_STATEEXITREASON_NONE); } diff --git a/flight/modules/PathFollower/vtollandfsm.cpp b/flight/modules/PathFollower/vtollandfsm.cpp index b4aff11cd..415d1fead 100644 --- a/flight/modules/PathFollower/vtollandfsm.cpp +++ b/flight/modules/PathFollower/vtollandfsm.cpp @@ -130,7 +130,7 @@ int32_t VtolLandFSM::Initialize(VtolPathFollowerSettingsData *ptr_vtolPathFollow mLandData = (VtolLandFSMData_T *)pios_malloc(sizeof(VtolLandFSMData_T)); PIOS_Assert(mLandData); } - memset(mLandData, sizeof(VtolLandFSMData_T), 0); + memset(mLandData, 0, sizeof(VtolLandFSMData_T)); vtolPathFollowerSettings = ptr_vtolPathFollowerSettings; pathDesired = ptr_pathDesired; flightStatus = ptr_flightStatus; @@ -141,7 +141,7 @@ int32_t VtolLandFSM::Initialize(VtolPathFollowerSettingsData *ptr_vtolPathFollow void VtolLandFSM::Inactive(void) { - memset(mLandData, sizeof(VtolLandFSMData_T), 0); + memset(mLandData, 0, sizeof(VtolLandFSMData_T)); initFSM(); } @@ -157,7 +157,7 @@ void VtolLandFSM::initFSM(void) void VtolLandFSM::Activate() { - memset(mLandData, sizeof(VtolLandFSMData_T), 0); + memset(mLandData, 0, sizeof(VtolLandFSMData_T)); mLandData->currentState = STATUSVTOLLAND_STATE_INACTIVE; mLandData->flLowAltitude = false; mLandData->flAltitudeHold = false; From 1ac4c63fa7b3ee28af07c7727bb88ef85da5756b Mon Sep 17 00:00:00 2001 From: Richard von Lehe Date: Sun, 12 Apr 2015 22:05:05 -0500 Subject: [PATCH 08/11] OP-1740: UAVObjects use enums --- flight/modules/System/systemmod.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/flight/modules/System/systemmod.c b/flight/modules/System/systemmod.c index 33567d827..8ee248eb9 100644 --- a/flight/modules/System/systemmod.c +++ b/flight/modules/System/systemmod.c @@ -101,7 +101,9 @@ static enum { STACKOVERFLOW_NONE = 0, STACKOVERFLOW_WARNING = 1, STACKOVERFLOW_C static bool mallocFailed; static HwSettingsData bootHwSettings; static FrameType_t bootFrameType; +#if !defined(ARCH_POSIX) && !defined(ARCH_WIN32) static struct PIOS_FLASHFS_Stats fsStats; +#endif // Private functions static void objectUpdatedCb(UAVObjEvent *ev); From ef6cf262d5b25ef1928f802297a241e11aa28aae Mon Sep 17 00:00:00 2001 From: Richard von Lehe Date: Wed, 15 Apr 2015 21:57:38 -0500 Subject: [PATCH 09/11] OP-1740: GetSet use enums: tidy --- .../generators/flight/uavobjectgeneratorflight.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/ground/uavobjgenerator/generators/flight/uavobjectgeneratorflight.cpp b/ground/uavobjgenerator/generators/flight/uavobjectgeneratorflight.cpp index 9ae807b1e..4fe024cda 100644 --- a/ground/uavobjgenerator/generators/flight/uavobjectgeneratorflight.cpp +++ b/ground/uavobjgenerator/generators/flight/uavobjectgeneratorflight.cpp @@ -137,7 +137,6 @@ bool UAVObjectGeneratorFlight::process_object(ObjectInfo *info) QString dataStructures; for (int n = 0; n < info->fields.length(); ++n) { // Determine type - //type = fieldTypeStrC[info->fields[n]->type]; // RHV TODO: remove type = typeList[n]; // Append field // Check if it a named set and creates structures accordingly From 604585f74e3b4416158fc6891c7991318863ac63 Mon Sep 17 00:00:00 2001 From: Richard von Lehe Date: Mon, 20 Apr 2015 08:31:26 -0500 Subject: [PATCH 10/11] OP-1740: GetSet use enums. Need to pack the enums to retain byte compatibility. --- .../generators/flight/uavobjectgeneratorflight.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ground/uavobjgenerator/generators/flight/uavobjectgeneratorflight.cpp b/ground/uavobjgenerator/generators/flight/uavobjectgeneratorflight.cpp index 4fe024cda..3d3cbdf8c 100644 --- a/ground/uavobjgenerator/generators/flight/uavobjectgeneratorflight.cpp +++ b/ground/uavobjgenerator/generators/flight/uavobjectgeneratorflight.cpp @@ -174,7 +174,7 @@ bool UAVObjectGeneratorFlight::process_object(ObjectInfo *info) // Only for enum types if (info->fields[n]->type == FIELDTYPE_ENUM) { enums.append(QString("\n// Enumeration options for field %1\n").arg(info->fields[n]->name)); - enums.append("typedef enum {\n"); + enums.append("typedef enum __attribute__ ((__packed__)) {\n"); // Go through each option QStringList options = info->fields[n]->options; for (int m = 0; m < options.length(); ++m) { From d22b96d24bc7d8dd304c04f0f77fce91b32a09de Mon Sep 17 00:00:00 2001 From: Richard von Lehe Date: Sun, 26 Apr 2015 17:46:49 -0500 Subject: [PATCH 11/11] OP-1740: Force latest Pathfollower changes to use uavobj enums. --- .../inc/vtolautotakeoffcontroller.h | 2 +- .../PathFollower/inc/vtolautotakeofffsm.h | 4 +- .../vtolautotakeoffcontroller.cpp | 2 +- .../PathFollower/vtolautotakeofffsm.cpp | 56 +++++++++---------- 4 files changed, 32 insertions(+), 32 deletions(-) diff --git a/flight/modules/PathFollower/inc/vtolautotakeoffcontroller.h b/flight/modules/PathFollower/inc/vtolautotakeoffcontroller.h index 30a8c9277..64ec94447 100644 --- a/flight/modules/PathFollower/inc/vtolautotakeoffcontroller.h +++ b/flight/modules/PathFollower/inc/vtolautotakeoffcontroller.h @@ -64,7 +64,7 @@ public: private: void UpdateVelocityDesired(void); int8_t UpdateStabilizationDesired(bool yaw_attitude, float yaw_direction); - void setArmedIfChanged(uint8_t val); + void setArmedIfChanged(FlightStatusArmedOptions val); VtolAutoTakeoffFSM *fsm; VtolPathFollowerSettingsData *vtolPathFollowerSettings; diff --git a/flight/modules/PathFollower/inc/vtolautotakeofffsm.h b/flight/modules/PathFollower/inc/vtolautotakeofffsm.h index f1b2b4017..fd6832bd7 100644 --- a/flight/modules/PathFollower/inc/vtolautotakeofffsm.h +++ b/flight/modules/PathFollower/inc/vtolautotakeofffsm.h @@ -82,7 +82,7 @@ protected: // FSM instance data type typedef struct { StatusVtolAutoTakeoffData fsmAutoTakeoffStatus; - PathFollowerFSM_AutoTakeoffState_T currentState; + StatusVtolAutoTakeoffStateOptions currentState; TakeOffLocationData takeOffLocation; uint32_t stateRunCount; uint32_t stateTimeoutCount; @@ -142,7 +142,7 @@ protected: void run_abort(uint8_t); void initFSM(void); - void setState(PathFollowerFSM_AutoTakeoffState_T newState, StatusVtolAutoTakeoffStateExitReasonOptions reason); + void setState(StatusVtolAutoTakeoffStateOptions newState, StatusVtolAutoTakeoffStateExitReasonOptions reason); int32_t runState(); int32_t runAlways(); diff --git a/flight/modules/PathFollower/vtolautotakeoffcontroller.cpp b/flight/modules/PathFollower/vtolautotakeoffcontroller.cpp index 292d0df50..96bfaef9e 100644 --- a/flight/modules/PathFollower/vtolautotakeoffcontroller.cpp +++ b/flight/modules/PathFollower/vtolautotakeoffcontroller.cpp @@ -299,7 +299,7 @@ void VtolAutoTakeoffController::UpdateAutoPilot() PathStatusSet(pathStatus); } -void VtolAutoTakeoffController::setArmedIfChanged(uint8_t val) +void VtolAutoTakeoffController::setArmedIfChanged(FlightStatusArmedOptions val) { if (flightStatus->Armed != val) { flightStatus->Armed = val; diff --git a/flight/modules/PathFollower/vtolautotakeofffsm.cpp b/flight/modules/PathFollower/vtolautotakeofffsm.cpp index fb4b102be..4fa320f43 100644 --- a/flight/modules/PathFollower/vtolautotakeofffsm.cpp +++ b/flight/modules/PathFollower/vtolautotakeofffsm.cpp @@ -128,23 +128,23 @@ void VtolAutoTakeoffFSM::Inactive(void) void VtolAutoTakeoffFSM::initFSM(void) { if (vtolPathFollowerSettings != 0) { - setState(AUTOTAKEOFF_STATE_INACTIVE, STATUSVTOLAUTOTAKEOFF_STATEEXITREASON_NONE); + setState(STATUSVTOLAUTOTAKEOFF_STATE_INACTIVE, STATUSVTOLAUTOTAKEOFF_STATEEXITREASON_NONE); } else { - mAutoTakeoffData->currentState = AUTOTAKEOFF_STATE_INACTIVE; + mAutoTakeoffData->currentState = STATUSVTOLAUTOTAKEOFF_STATE_INACTIVE; } } void VtolAutoTakeoffFSM::Activate() { memset(mAutoTakeoffData, 0, sizeof(VtolAutoTakeoffFSMData_T)); - mAutoTakeoffData->currentState = AUTOTAKEOFF_STATE_INACTIVE; + mAutoTakeoffData->currentState = STATUSVTOLAUTOTAKEOFF_STATE_INACTIVE; mAutoTakeoffData->flLowAltitude = true; mAutoTakeoffData->flAltitudeHold = false; mAutoTakeoffData->boundThrustMin = 0.0f; mAutoTakeoffData->boundThrustMax = 0.0f; mAutoTakeoffData->flZeroStabiHorizontal = true; // turn off positional controllers TakeOffLocationGet(&(mAutoTakeoffData->takeOffLocation)); - mAutoTakeoffData->fsmAutoTakeoffStatus.AltitudeAtState[AUTOTAKEOFF_STATE_INACTIVE] = 0.0f; + mAutoTakeoffData->fsmAutoTakeoffStatus.AltitudeAtState[STATUSVTOLAUTOTAKEOFF_STATE_INACTIVE] = 0.0f; mAutoTakeoffData->fsmAutoTakeoffStatus.ControlState = STATUSVTOLAUTOTAKEOFF_CONTROLSTATE_WAITFORARMED; assessAltitude(); @@ -153,31 +153,31 @@ void VtolAutoTakeoffFSM::Activate() StabilizationDesiredData stabDesired; StabilizationDesiredGet(&stabDesired); if (stabDesired.Thrust > vtolPathFollowerSettings->ThrustLimits.Min) { - setState(AUTOTAKEOFF_STATE_HOLD, STATUSVTOLAUTOTAKEOFF_STATEEXITREASON_NONE); + setState(STATUSVTOLAUTOTAKEOFF_STATE_HOLD, STATUSVTOLAUTOTAKEOFF_STATEEXITREASON_NONE); return; } // initially inactive and wait for a change in controlstate. - setState(AUTOTAKEOFF_STATE_INACTIVE, STATUSVTOLAUTOTAKEOFF_STATEEXITREASON_NONE); + setState(STATUSVTOLAUTOTAKEOFF_STATE_INACTIVE, STATUSVTOLAUTOTAKEOFF_STATEEXITREASON_NONE); } void VtolAutoTakeoffFSM::Abort(void) { - setState(AUTOTAKEOFF_STATE_ABORT, STATUSVTOLAUTOTAKEOFF_STATEEXITREASON_NONE); + setState(STATUSVTOLAUTOTAKEOFF_STATE_ABORT, STATUSVTOLAUTOTAKEOFF_STATEEXITREASON_NONE); } PathFollowerFSMState_T VtolAutoTakeoffFSM::GetCurrentState(void) { switch (mAutoTakeoffData->currentState) { - case AUTOTAKEOFF_STATE_INACTIVE: + case STATUSVTOLAUTOTAKEOFF_STATE_INACTIVE: return PFFSM_STATE_INACTIVE; break; - case AUTOTAKEOFF_STATE_ABORT: + case STATUSVTOLAUTOTAKEOFF_STATE_ABORT: return PFFSM_STATE_ABORT; break; - case AUTOTAKEOFF_STATE_DISARMED: + case STATUSVTOLAUTOTAKEOFF_STATE_DISARMED: return PFFSM_STATE_DISARMED; break; @@ -248,7 +248,7 @@ void VtolAutoTakeoffFSM::ConstrainStabiDesired(StabilizationDesiredData *stabDes // Set the new state and perform setup for subsequent state run calls // This is called by state run functions on event detection that drive // state transitions. -void VtolAutoTakeoffFSM::setState(PathFollowerFSM_AutoTakeoffState_T newState, StatusVtolAutoTakeoffStateExitReasonOptions reason) +void VtolAutoTakeoffFSM::setState(StatusVtolAutoTakeoffStateOptions newState, StatusVtolAutoTakeoffStateExitReasonOptions reason) { mAutoTakeoffData->fsmAutoTakeoffStatus.StateExitReason[mAutoTakeoffData->currentState] = reason; @@ -257,7 +257,7 @@ void VtolAutoTakeoffFSM::setState(PathFollowerFSM_AutoTakeoffState_T newState, S } mAutoTakeoffData->currentState = newState; - if (newState != AUTOTAKEOFF_STATE_INACTIVE) { + if (newState != STATUSVTOLAUTOTAKEOFF_STATE_INACTIVE) { PositionStateData positionState; PositionStateGet(&positionState); float takeOffDown = 0.0f; @@ -324,22 +324,22 @@ void VtolAutoTakeoffFSM::setControlState(StatusVtolAutoTakeoffControlStateOption switch (controlState) { case STATUSVTOLAUTOTAKEOFF_CONTROLSTATE_WAITFORARMED: - setState(AUTOTAKEOFF_STATE_INACTIVE, STATUSVTOLAUTOTAKEOFF_STATEEXITREASON_NONE); + setState(STATUSVTOLAUTOTAKEOFF_STATE_INACTIVE, STATUSVTOLAUTOTAKEOFF_STATEEXITREASON_NONE); break; case STATUSVTOLAUTOTAKEOFF_CONTROLSTATE_WAITFORMIDTHROTTLE: - setState(AUTOTAKEOFF_STATE_INACTIVE, STATUSVTOLAUTOTAKEOFF_STATEEXITREASON_NONE); + setState(STATUSVTOLAUTOTAKEOFF_STATE_INACTIVE, STATUSVTOLAUTOTAKEOFF_STATEEXITREASON_NONE); break; case STATUSVTOLAUTOTAKEOFF_CONTROLSTATE_REQUIREUNARMEDFIRST: - setState(AUTOTAKEOFF_STATE_INACTIVE, STATUSVTOLAUTOTAKEOFF_STATEEXITREASON_NONE); + setState(STATUSVTOLAUTOTAKEOFF_STATE_INACTIVE, STATUSVTOLAUTOTAKEOFF_STATEEXITREASON_NONE); break; case STATUSVTOLAUTOTAKEOFF_CONTROLSTATE_INITIATE: - setState(AUTOTAKEOFF_STATE_CHECKSTATE, STATUSVTOLAUTOTAKEOFF_STATEEXITREASON_NONE); + setState(STATUSVTOLAUTOTAKEOFF_STATE_CHECKSTATE, STATUSVTOLAUTOTAKEOFF_STATEEXITREASON_NONE); break; case STATUSVTOLAUTOTAKEOFF_CONTROLSTATE_POSITIONHOLD: - setState(AUTOTAKEOFF_STATE_HOLD, STATUSVTOLAUTOTAKEOFF_STATEEXITREASON_NONE); + setState(STATUSVTOLAUTOTAKEOFF_STATE_HOLD, STATUSVTOLAUTOTAKEOFF_STATEEXITREASON_NONE); break; case STATUSVTOLAUTOTAKEOFF_CONTROLSTATE_ABORT: - setState(AUTOTAKEOFF_STATE_ABORT, STATUSVTOLAUTOTAKEOFF_STATEEXITREASON_NONE); + setState(STATUSVTOLAUTOTAKEOFF_STATE_ABORT, STATUSVTOLAUTOTAKEOFF_STATEEXITREASON_NONE); break; } } @@ -367,7 +367,7 @@ void VtolAutoTakeoffFSM::setup_checkstate(void) StabilizationDesiredGet(&stabDesired); if (stabDesired.Thrust > vtolPathFollowerSettings->ThrustLimits.Min) { - setState(AUTOTAKEOFF_STATE_HOLD, STATUSVTOLAUTOTAKEOFF_STATEEXITREASON_NONE); + setState(STATUSVTOLAUTOTAKEOFF_STATE_HOLD, STATUSVTOLAUTOTAKEOFF_STATEEXITREASON_NONE); return; } @@ -377,7 +377,7 @@ void VtolAutoTakeoffFSM::setup_checkstate(void) mAutoTakeoffData->boundThrustMin = -0.1f; mAutoTakeoffData->boundThrustMax = 0.0f; - setState(AUTOTAKEOFF_STATE_SLOWSTART, STATUSVTOLAUTOTAKEOFF_STATEEXITREASON_TIMEOUT); + setState(STATUSVTOLAUTOTAKEOFF_STATE_SLOWSTART, STATUSVTOLAUTOTAKEOFF_STATEEXITREASON_TIMEOUT); } // STATE: SLOWSTART spools up motors to vtol min over 2 seconds for effect. @@ -415,7 +415,7 @@ void VtolAutoTakeoffFSM::run_slowstart(__attribute__((unused)) uint8_t flTimeout } if (flTimeout) { - setState(AUTOTAKEOFF_STATE_THRUSTUP, STATUSVTOLAUTOTAKEOFF_STATEEXITREASON_TIMEOUT); + setState(STATUSVTOLAUTOTAKEOFF_STATE_THRUSTUP, STATUSVTOLAUTOTAKEOFF_STATEEXITREASON_TIMEOUT); } } @@ -442,7 +442,7 @@ void VtolAutoTakeoffFSM::run_thrustup(__attribute__((unused)) uint8_t flTimeout) } if (flTimeout) { - setState(AUTOTAKEOFF_STATE_TAKEOFF, STATUSVTOLAUTOTAKEOFF_STATEEXITREASON_TIMEOUT); + setState(STATUSVTOLAUTOTAKEOFF_STATE_TAKEOFF, STATUSVTOLAUTOTAKEOFF_STATEEXITREASON_TIMEOUT); } } @@ -458,7 +458,7 @@ void VtolAutoTakeoffFSM::run_takeoff(__attribute__((unused)) uint8_t flTimeout) StabilizationDesiredGet(&stabDesired); if (stabDesired.Thrust < 0.0f) { - setState(AUTOTAKEOFF_STATE_THRUSTOFF, STATUSVTOLAUTOTAKEOFF_STATEEXITREASON_ZEROTHRUST); + setState(STATUSVTOLAUTOTAKEOFF_STATE_THRUSTOFF, STATUSVTOLAUTOTAKEOFF_STATEEXITREASON_ZEROTHRUST); return; } @@ -470,11 +470,11 @@ void VtolAutoTakeoffFSM::run_takeoff(__attribute__((unused)) uint8_t flTimeout) float down_error = pathDesired->End.Down - positionState.Down; float positionError = sqrtf(north_error * north_error + east_error * east_error); if (positionError > 3.0f) { - setState(AUTOTAKEOFF_STATE_THRUSTDOWN, STATUSVTOLAUTOTAKEOFF_STATEEXITREASON_POSITIONERROR); + setState(STATUSVTOLAUTOTAKEOFF_STATE_THRUSTDOWN, STATUSVTOLAUTOTAKEOFF_STATEEXITREASON_POSITIONERROR); return; } if (fabsf(down_error) < 0.5f) { - setState(AUTOTAKEOFF_STATE_HOLD, STATUSVTOLAUTOTAKEOFF_STATEEXITREASON_ARRIVEDATALT); + setState(STATUSVTOLAUTOTAKEOFF_STATE_HOLD, STATUSVTOLAUTOTAKEOFF_STATEEXITREASON_ARRIVEDATALT); return; } } @@ -515,11 +515,11 @@ void VtolAutoTakeoffFSM::run_thrustdown(__attribute__((unused)) uint8_t flTimeou StabilizationDesiredData stabDesired; StabilizationDesiredGet(&stabDesired); if (stabDesired.Thrust < 0.0f || mAutoTakeoffData->thrustLimit < 0.0f) { - setState(AUTOTAKEOFF_STATE_THRUSTOFF, STATUSVTOLAUTOTAKEOFF_STATEEXITREASON_ZEROTHRUST); + setState(STATUSVTOLAUTOTAKEOFF_STATE_THRUSTOFF, STATUSVTOLAUTOTAKEOFF_STATEEXITREASON_ZEROTHRUST); } if (flTimeout) { - setState(AUTOTAKEOFF_STATE_THRUSTOFF, STATUSVTOLAUTOTAKEOFF_STATEEXITREASON_TIMEOUT); + setState(STATUSVTOLAUTOTAKEOFF_STATE_THRUSTOFF, STATUSVTOLAUTOTAKEOFF_STATEEXITREASON_TIMEOUT); } } @@ -534,7 +534,7 @@ void VtolAutoTakeoffFSM::setup_thrustoff(void) void VtolAutoTakeoffFSM::run_thrustoff(__attribute__((unused)) uint8_t flTimeout) { - setState(AUTOTAKEOFF_STATE_DISARMED, STATUSVTOLAUTOTAKEOFF_STATEEXITREASON_NONE); + setState(STATUSVTOLAUTOTAKEOFF_STATE_DISARMED, STATUSVTOLAUTOTAKEOFF_STATEEXITREASON_NONE); } // STATE: DISARMED