diff --git a/src/MissionManager/MissionController.cc b/src/MissionManager/MissionController.cc index ff341049420790ba83a202a18f1e764a5cdb912e..b94aece55e07cedafa68d83975a4a7a25c9ce73e 100644 --- a/src/MissionManager/MissionController.cc +++ b/src/MissionManager/MissionController.cc @@ -2592,7 +2592,7 @@ MissionController::SendToVehiclePreCheckState MissionController::sendToVehiclePr if (_managerVehicle->armed() && _managerVehicle->flightMode() == _managerVehicle->missionFlightMode()) { return SendToVehiclePreCheckStateActiveMission; } - if (_controllerVehicle->firmwareType() != _managerVehicle->firmwareType() || _controllerVehicle->vehicleType() != _managerVehicle->vehicleType()) { + if (_controllerVehicle->firmwareType() != _managerVehicle->firmwareType() || QGCMAVLink::vehicleClass(_controllerVehicle->vehicleType()) != QGCMAVLink::vehicleClass(_managerVehicle->vehicleType())) { return SendToVehiclePreCheckStateFirwmareVehicleMismatch; } return SendToVehiclePreCheckStateOk; diff --git a/src/comm/QGCMAVLink.cc b/src/comm/QGCMAVLink.cc index 33201be4981de85442177e41d8591c0955d94e94..dba930268ff5b26aa906562ad95c1247711bbee2 100644 --- a/src/comm/QGCMAVLink.cc +++ b/src/comm/QGCMAVLink.cc @@ -61,6 +61,23 @@ bool QGCMAVLink::isVTOL(MAV_TYPE mavType) } } +MAV_TYPE QGCMAVLink::vehicleClass(MAV_TYPE mavType) +{ + if (isFixedWing(mavType)) { + return MAV_TYPE_FIXED_WING; + } else if (isRover(mavType)) { + return MAV_TYPE_GROUND_ROVER; + } else if (isSub(mavType)) { + return MAV_TYPE_SUBMARINE; + } else if (isMultiRotor(mavType)) { + return MAV_TYPE_QUADROTOR; + } else if (isVTOL(mavType)) { + return MAV_TYPE_VTOL_QUADROTOR; + } + + return MAV_TYPE_GENERIC; +} + QString QGCMAVLink::mavResultToString(MAV_RESULT result) { switch (result) { diff --git a/src/comm/QGCMAVLink.h b/src/comm/QGCMAVLink.h index 608bf3f14309616c371ea9c2e1d37d65c423f146..1a105485003618102cfaa2a3a968761ad413d17f 100644 --- a/src/comm/QGCMAVLink.h +++ b/src/comm/QGCMAVLink.h @@ -53,6 +53,7 @@ public: static bool isSub (MAV_TYPE mavType); static bool isMultiRotor (MAV_TYPE mavType); static bool isVTOL (MAV_TYPE mavType); + static MAV_TYPE vehicleClass (MAV_TYPE mavType); static QString mavResultToString (MAV_RESULT result); };