From 1093a65fa92391cf19b584fa3d1cfbb9c25e47e2 Mon Sep 17 00:00:00 2001 From: Tomaz Canabrava Date: Wed, 20 Apr 2016 15:26:13 -0300 Subject: [PATCH] Show a more educative airframe configuration During tests, if the airframe was configured to be an 'X' type we showed just 'X' on the airframe type. It's correct but a single letter - specially an X - made users think that it was a error code, not the airframe name. So, because of that, also show the vehicle type - a wrong value, but elucidative for users. Signed-off-by: Tomaz Canabrava --- .../APM/APMAirframeComponentController.cc | 5 +++ .../APM/APMAirframeComponentController.h | 1 + .../APM/APMAirframeComponentSummary.qml | 4 +-- src/Vehicle/Vehicle.cc | 34 +++++++++++++++++++ src/Vehicle/Vehicle.h | 1 + 5 files changed, 43 insertions(+), 2 deletions(-) diff --git a/src/AutoPilotPlugins/APM/APMAirframeComponentController.cc b/src/AutoPilotPlugins/APM/APMAirframeComponentController.cc index 47a642230..e84640fc7 100644 --- a/src/AutoPilotPlugins/APM/APMAirframeComponentController.cc +++ b/src/AutoPilotPlugins/APM/APMAirframeComponentController.cc @@ -188,6 +188,11 @@ APMAirframeType *APMAirframeComponentController::currentAirframeType() const return _currentAirframeType; } +QString APMAirframeComponentController::currentAirframeTypeName() const +{ + return _vehicle->vehicleTypeName(); +} + APMAirframe *APMAirframeComponentController::currentAirframe() const { return _currentAirframe; diff --git a/src/AutoPilotPlugins/APM/APMAirframeComponentController.h b/src/AutoPilotPlugins/APM/APMAirframeComponentController.h index ef799ab52..613f55dc2 100644 --- a/src/AutoPilotPlugins/APM/APMAirframeComponentController.h +++ b/src/AutoPilotPlugins/APM/APMAirframeComponentController.h @@ -70,6 +70,7 @@ signals: public slots: APMAirframeType *currentAirframeType() const; + Q_INVOKABLE QString currentAirframeTypeName() const; APMAirframe *currentAirframe() const; void setCurrentAirframeType(APMAirframeType *t); void setCurrentAirframe(APMAirframe *t); diff --git a/src/AutoPilotPlugins/APM/APMAirframeComponentSummary.qml b/src/AutoPilotPlugins/APM/APMAirframeComponentSummary.qml index effced4a0..90fed8bf7 100644 --- a/src/AutoPilotPlugins/APM/APMAirframeComponentSummary.qml +++ b/src/AutoPilotPlugins/APM/APMAirframeComponentSummary.qml @@ -28,11 +28,11 @@ FactPanel { VehicleSummaryRow { id: nameRow; labelText: qsTr("Frame Type:") - valueText: sysIdFact.valueString === "0" ? "Plus" + valueText: controller.currentAirframeTypeName() + " " + (sysIdFact.valueString === "0" ? "Plus" : sysIdFact.valueString === "1" ? "X" : sysIdFact.valueString === "2" ? "V" : sysIdFact.valueString == "3" ? "H" - :/* Fact.value == 10 */ "New Y6"; + : /* Fact.value == 10 */ "New Y6"); } } diff --git a/src/Vehicle/Vehicle.cc b/src/Vehicle/Vehicle.cc index 0c062ae11..bf0910082 100644 --- a/src/Vehicle/Vehicle.cc +++ b/src/Vehicle/Vehicle.cc @@ -1420,6 +1420,40 @@ void Vehicle::_setCoordinateValid(bool coordinateValid) } } +QString Vehicle::vehicleTypeName() const { + static QMap typeNames = { + { MAV_TYPE_GENERIC, tr("Generic micro air vehicle" )}, + { MAV_TYPE_FIXED_WING, tr("Fixed wing aircraft")}, + { MAV_TYPE_QUADROTOR, tr("Quadrotor")}, + { MAV_TYPE_COAXIAL, tr("Coaxial helicopter")}, + { MAV_TYPE_HELICOPTER, tr("Normal helicopter with tail rotor.")}, + { MAV_TYPE_ANTENNA_TRACKER, tr("Ground installation")}, + { MAV_TYPE_GCS, tr("Operator control unit / ground control station")}, + { MAV_TYPE_AIRSHIP, tr("Airship, controlled")}, + { MAV_TYPE_FREE_BALLOON, tr("Free balloon, uncontrolled")}, + { MAV_TYPE_ROCKET, tr("Rocket")}, + { MAV_TYPE_GROUND_ROVER, tr("Ground rover")}, + { MAV_TYPE_SURFACE_BOAT, tr("Surface vessel, boat, ship")}, + { MAV_TYPE_SUBMARINE, tr("Submarine")}, + { MAV_TYPE_HEXAROTOR, tr("Hexarotor")}, + { MAV_TYPE_OCTOROTOR, tr("Octorotor")}, + { MAV_TYPE_TRICOPTER, tr("Octorotor")}, + { MAV_TYPE_FLAPPING_WING, tr("Flapping wing")}, + { MAV_TYPE_KITE, tr("Flapping wing")}, + { MAV_TYPE_ONBOARD_CONTROLLER, tr("Onboard companion controller")}, + { MAV_TYPE_VTOL_DUOROTOR, tr("Two-rotor VTOL using control surfaces in vertical operation in addition. Tailsitter")}, + { MAV_TYPE_VTOL_QUADROTOR, tr("Quad-rotor VTOL using a V-shaped quad config in vertical operation. Tailsitter")}, + { MAV_TYPE_VTOL_TILTROTOR, tr("Tiltrotor VTOL")}, + { MAV_TYPE_VTOL_RESERVED2, tr("VTOL reserved 2")}, + { MAV_TYPE_VTOL_RESERVED3, tr("VTOL reserved 3")}, + { MAV_TYPE_VTOL_RESERVED4, tr("VTOL reserved 4")}, + { MAV_TYPE_VTOL_RESERVED5, tr("VTOL reserved 5")}, + { MAV_TYPE_GIMBAL, tr("Onboard gimbal")}, + { MAV_TYPE_ADSB, tr("Onboard ADSB peripheral")}, + }; + return typeNames[_vehicleType]; +} + /// Returns the string to speak to identify the vehicle QString Vehicle::_vehicleIdSpeech(void) { diff --git a/src/Vehicle/Vehicle.h b/src/Vehicle/Vehicle.h index 8880214a4..afcb078e0 100644 --- a/src/Vehicle/Vehicle.h +++ b/src/Vehicle/Vehicle.h @@ -395,6 +395,7 @@ public: int id(void) { return _id; } MAV_AUTOPILOT firmwareType(void) const { return _firmwareType; } MAV_TYPE vehicleType(void) const { return _vehicleType; } + Q_INVOKABLE QString vehicleTypeName(void) const; /// Returns the highest quality link available to the Vehicle LinkInterface* priorityLink(void); -- 2.22.0