From be9b4d3d3f98c9ac5e3b9d50da7b8c257be8f7f1 Mon Sep 17 00:00:00 2001 From: Gus Grubba Date: Sun, 1 Apr 2018 13:16:55 -0400 Subject: [PATCH] Don't try to start logging if it's been denied. --- src/Vehicle/MAVLinkLogManager.cc | 12 ++++++++++-- src/Vehicle/MAVLinkLogManager.h | 3 ++- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/Vehicle/MAVLinkLogManager.cc b/src/Vehicle/MAVLinkLogManager.cc index 756f432e0..eca0bc3b3 100644 --- a/src/Vehicle/MAVLinkLogManager.cc +++ b/src/Vehicle/MAVLinkLogManager.cc @@ -309,6 +309,7 @@ MAVLinkLogManager::MAVLinkLogManager(QGCApplication* app, QGCToolbox* toolbox) , _deleteAfterUpload(false) , _windSpeed(-1) , _publicLog(false) + , _logginDenied(false) { //-- Get saved settings QSettings settings; @@ -613,7 +614,7 @@ MAVLinkLogManager::cancelUpload() void MAVLinkLogManager::startLogging() { - if(_vehicle && _vehicle->px4Firmware()) { + if(_vehicle && _vehicle->px4Firmware() && !_logginDenied) { if(_createNewLog()) { _vehicle->startMavlinkLog(); _logRunning = true; @@ -847,6 +848,8 @@ MAVLinkLogManager::_activeVehicleChanged(Vehicle* vehicle) // Connect new system if(vehicle && vehicle->px4Firmware()) { _vehicle = vehicle; + //-- Reset logging denied flag as well + _logginDenied = false; connect(_vehicle, &Vehicle::armedChanged, this, &MAVLinkLogManager::_armedChanged); connect(_vehicle, &Vehicle::mavlinkLogData, this, &MAVLinkLogManager::_mavlinkLogData); connect(_vehicle, &Vehicle::mavCommandResult, this, &MAVLinkLogManager::_mavCommandResult); @@ -888,7 +891,12 @@ MAVLinkLogManager::_mavCommandResult(int vehicleId, int component, int command, qCWarning(MAVLinkLogManagerLog) << "Stop MAVLink log command failed."; } else { //-- Could not start logging for some reason. - qCWarning(MAVLinkLogManagerLog) << "Start MAVLink log command failed."; + if(result == MAV_RESULT_DENIED) { + _logginDenied = true; + qCWarning(MAVLinkLogManagerLog) << "Start MAVLink log command denied."; + } else { + qCWarning(MAVLinkLogManagerLog) << "Start MAVLink log command failed."; + } _discardLog(); } } diff --git a/src/Vehicle/MAVLinkLogManager.h b/src/Vehicle/MAVLinkLogManager.h index 507b8bea8..ba47065f6 100644 --- a/src/Vehicle/MAVLinkLogManager.h +++ b/src/Vehicle/MAVLinkLogManager.h @@ -140,7 +140,7 @@ public: bool enableAutoStart () { return _enableAutoStart; } bool uploading (); bool logRunning () { return _logRunning; } - bool canStartLog () { return _vehicle != NULL; } + bool canStartLog () { return _vehicle != NULL && !_logginDenied; } bool deleteAfterUpload () { return _deleteAfterUpload; } bool publicLog () { return _publicLog; } int windSpeed () { return _windSpeed; } @@ -226,6 +226,7 @@ private: QString _rating; bool _publicLog; QString _ulogExtension; + bool _logginDenied; }; -- 2.22.0