diff --git a/files/images/px4/calibration/radioCenter.png b/files/images/px4/calibration/mode1/radioCenter.png
similarity index 100%
rename from files/images/px4/calibration/radioCenter.png
rename to files/images/px4/calibration/mode1/radioCenter.png
diff --git a/files/images/px4/calibration/mode1/radioHome.png b/files/images/px4/calibration/mode1/radioHome.png
new file mode 100644
index 0000000000000000000000000000000000000000..d76983650f46d404f8f5a1050182162a513eba76
Binary files /dev/null and b/files/images/px4/calibration/mode1/radioHome.png differ
diff --git a/files/images/px4/calibration/mode1/radioPitchDown.png b/files/images/px4/calibration/mode1/radioPitchDown.png
new file mode 100644
index 0000000000000000000000000000000000000000..56f8d6af9c515c8f495e3bce9b378a9588f43607
Binary files /dev/null and b/files/images/px4/calibration/mode1/radioPitchDown.png differ
diff --git a/files/images/px4/calibration/mode1/radioPitchUp.png b/files/images/px4/calibration/mode1/radioPitchUp.png
new file mode 100644
index 0000000000000000000000000000000000000000..b1f954ae39a34d430b44112d2f50b1af37652264
Binary files /dev/null and b/files/images/px4/calibration/mode1/radioPitchUp.png differ
diff --git a/files/images/px4/calibration/mode1/radioRollLeft.png b/files/images/px4/calibration/mode1/radioRollLeft.png
new file mode 100644
index 0000000000000000000000000000000000000000..7fed7e5061d350cbe1555876faa672d45fa7ec13
Binary files /dev/null and b/files/images/px4/calibration/mode1/radioRollLeft.png differ
diff --git a/files/images/px4/calibration/mode1/radioRollRight.png b/files/images/px4/calibration/mode1/radioRollRight.png
new file mode 100644
index 0000000000000000000000000000000000000000..b532961f3b4baaef14b9352a66f75d5d8823415e
Binary files /dev/null and b/files/images/px4/calibration/mode1/radioRollRight.png differ
diff --git a/files/images/px4/calibration/radioSwitchMinMax.png b/files/images/px4/calibration/mode1/radioSwitchMinMax.png
similarity index 100%
rename from files/images/px4/calibration/radioSwitchMinMax.png
rename to files/images/px4/calibration/mode1/radioSwitchMinMax.png
diff --git a/files/images/px4/calibration/mode1/radioThrottleDown.png b/files/images/px4/calibration/mode1/radioThrottleDown.png
new file mode 100644
index 0000000000000000000000000000000000000000..d76983650f46d404f8f5a1050182162a513eba76
Binary files /dev/null and b/files/images/px4/calibration/mode1/radioThrottleDown.png differ
diff --git a/files/images/px4/calibration/mode1/radioThrottleUp.png b/files/images/px4/calibration/mode1/radioThrottleUp.png
new file mode 100644
index 0000000000000000000000000000000000000000..768aa44f52ac2937ecaf433fb47f55c93687333b
Binary files /dev/null and b/files/images/px4/calibration/mode1/radioThrottleUp.png differ
diff --git a/files/images/px4/calibration/mode1/radioYawLeft.png b/files/images/px4/calibration/mode1/radioYawLeft.png
new file mode 100644
index 0000000000000000000000000000000000000000..489478e444c5a2b3b92e743c677a3a8c0a54fa0c
Binary files /dev/null and b/files/images/px4/calibration/mode1/radioYawLeft.png differ
diff --git a/files/images/px4/calibration/mode1/radioYawRight.png b/files/images/px4/calibration/mode1/radioYawRight.png
new file mode 100644
index 0000000000000000000000000000000000000000..2e86faa96f840a90eb7bb551a7eba07950afc492
Binary files /dev/null and b/files/images/px4/calibration/mode1/radioYawRight.png differ
diff --git a/files/images/px4/calibration/mode2/radioCenter.png b/files/images/px4/calibration/mode2/radioCenter.png
new file mode 100644
index 0000000000000000000000000000000000000000..556321ec4b1c3142dc40acaf8068b4fb57e923a5
Binary files /dev/null and b/files/images/px4/calibration/mode2/radioCenter.png differ
diff --git a/files/images/px4/calibration/radioHome.png b/files/images/px4/calibration/mode2/radioHome.png
similarity index 100%
rename from files/images/px4/calibration/radioHome.png
rename to files/images/px4/calibration/mode2/radioHome.png
diff --git a/files/images/px4/calibration/radioPitchDown.png b/files/images/px4/calibration/mode2/radioPitchDown.png
similarity index 100%
rename from files/images/px4/calibration/radioPitchDown.png
rename to files/images/px4/calibration/mode2/radioPitchDown.png
diff --git a/files/images/px4/calibration/radioPitchUp.png b/files/images/px4/calibration/mode2/radioPitchUp.png
similarity index 100%
rename from files/images/px4/calibration/radioPitchUp.png
rename to files/images/px4/calibration/mode2/radioPitchUp.png
diff --git a/files/images/px4/calibration/radioRollLeft.png b/files/images/px4/calibration/mode2/radioRollLeft.png
similarity index 100%
rename from files/images/px4/calibration/radioRollLeft.png
rename to files/images/px4/calibration/mode2/radioRollLeft.png
diff --git a/files/images/px4/calibration/radioRollRight.png b/files/images/px4/calibration/mode2/radioRollRight.png
similarity index 100%
rename from files/images/px4/calibration/radioRollRight.png
rename to files/images/px4/calibration/mode2/radioRollRight.png
diff --git a/files/images/px4/calibration/mode2/radioSwitchMinMax.png b/files/images/px4/calibration/mode2/radioSwitchMinMax.png
new file mode 100644
index 0000000000000000000000000000000000000000..fb284219df1c7158b4c5b9f5b9d7a5ef6004cb50
Binary files /dev/null and b/files/images/px4/calibration/mode2/radioSwitchMinMax.png differ
diff --git a/files/images/px4/calibration/radioThrottleDown.png b/files/images/px4/calibration/mode2/radioThrottleDown.png
similarity index 100%
rename from files/images/px4/calibration/radioThrottleDown.png
rename to files/images/px4/calibration/mode2/radioThrottleDown.png
diff --git a/files/images/px4/calibration/radioThrottleUp.png b/files/images/px4/calibration/mode2/radioThrottleUp.png
similarity index 100%
rename from files/images/px4/calibration/radioThrottleUp.png
rename to files/images/px4/calibration/mode2/radioThrottleUp.png
diff --git a/files/images/px4/calibration/radioYawLeft.png b/files/images/px4/calibration/mode2/radioYawLeft.png
similarity index 100%
rename from files/images/px4/calibration/radioYawLeft.png
rename to files/images/px4/calibration/mode2/radioYawLeft.png
diff --git a/files/images/px4/calibration/radioYawRight.png b/files/images/px4/calibration/mode2/radioYawRight.png
similarity index 100%
rename from files/images/px4/calibration/radioYawRight.png
rename to files/images/px4/calibration/mode2/radioYawRight.png
diff --git a/qgroundcontrol.qrc b/qgroundcontrol.qrc
index ee2f4254acea26e25284b4f7b809c646fe108b65..c0b6c33e804ec26bff25ebb4cb6ee349a9d11629 100644
--- a/qgroundcontrol.qrc
+++ b/qgroundcontrol.qrc
@@ -175,17 +175,28 @@
files/images/px4/calibration/accel_z-.png
files/images/px4/calibration/accel_y+.png
files/images/px4/calibration/mag_calibration_figure8.png
- files/images/px4/calibration/radioCenter.png
- files/images/px4/calibration/radioHome.png
- files/images/px4/calibration/radioRollLeft.png
- files/images/px4/calibration/radioRollRight.png
- files/images/px4/calibration/radioPitchUp.png
- files/images/px4/calibration/radioPitchDown.png
- files/images/px4/calibration/radioYawLeft.png
- files/images/px4/calibration/radioYawRight.png
- files/images/px4/calibration/radioThrottleUp.png
- files/images/px4/calibration/radioThrottleDown.png
- files/images/px4/calibration/radioSwitchMinMax.png
+ files/images/px4/calibration/mode1/radioCenter.png
+ files/images/px4/calibration/mode1/radioHome.png
+ files/images/px4/calibration/mode1/radioRollLeft.png
+ files/images/px4/calibration/mode1/radioRollRight.png
+ files/images/px4/calibration/mode1/radioPitchUp.png
+ files/images/px4/calibration/mode1/radioPitchDown.png
+ files/images/px4/calibration/mode1/radioYawLeft.png
+ files/images/px4/calibration/mode1/radioYawRight.png
+ files/images/px4/calibration/mode1/radioThrottleUp.png
+ files/images/px4/calibration/mode1/radioThrottleDown.png
+ files/images/px4/calibration/mode1/radioSwitchMinMax.png
+ files/images/px4/calibration/mode2/radioCenter.png
+ files/images/px4/calibration/mode2/radioHome.png
+ files/images/px4/calibration/mode2/radioRollLeft.png
+ files/images/px4/calibration/mode2/radioRollRight.png
+ files/images/px4/calibration/mode2/radioPitchUp.png
+ files/images/px4/calibration/mode2/radioPitchDown.png
+ files/images/px4/calibration/mode2/radioYawLeft.png
+ files/images/px4/calibration/mode2/radioYawRight.png
+ files/images/px4/calibration/mode2/radioThrottleUp.png
+ files/images/px4/calibration/mode2/radioThrottleDown.png
+ files/images/px4/calibration/mode2/radioSwitchMinMax.png
files/images/px4/menu/sensors.png
files/images/px4/menu/firmware_upgrade.png
files/images/px4/menu/plane.png
diff --git a/src/ui/px4_configuration/PX4RCCalibration.cc b/src/ui/px4_configuration/PX4RCCalibration.cc
index 15788203d2295cb7325a8d52bf417d5a1fa528d4..ee18f459b68088989bbc16501801b3dbba1e18a0 100644
--- a/src/ui/px4_configuration/PX4RCCalibration.cc
+++ b/src/ui/px4_configuration/PX4RCCalibration.cc
@@ -26,6 +26,7 @@
/// @author Don Gagne
+#include
#include "PX4RCCalibration.h"
#include "UASManager.h"
@@ -45,6 +46,9 @@ const int PX4RCCalibration::_rcCalMinDelta = 100; ///< Amount of del
const int PX4RCCalibration::_stickDetectSettleMSecs = 500;
const char* PX4RCCalibration::_imageFilePrefix = ":files/images/px4/calibration/";
+const char* PX4RCCalibration::_imageFileMode1Dir = "mode1/";
+const char* PX4RCCalibration::_imageFileMode2Dir = "mode2/";
+const char* PX4RCCalibration::_imageCenter = "radioCenter.png";
const char* PX4RCCalibration::_imageHome = "radioHome.png";
const char* PX4RCCalibration::_imageThrottleUp = "radioThrottleUp.png";
const char* PX4RCCalibration::_imageThrottleDown = "radioThrottleDown.png";
@@ -56,6 +60,9 @@ const char* PX4RCCalibration::_imagePitchUp = "radioPitchUp";
const char* PX4RCCalibration::_imagePitchDown = "radioPitchDown";
const char* PX4RCCalibration::_imageSwitchMinMax = "radioSwitchMinMax";
+const char* PX4RCCalibration::_settingsGroup = "RadioCalibration";
+const char* PX4RCCalibration::_settingsKeyTransmitterMode = "TransmitterMode";
+
const struct PX4RCCalibration::FunctionInfo PX4RCCalibration::_rgFunctionInfo[PX4RCCalibration::rcCalFunctionMax] = {
//Parameter required
{ "RC_MAP_ROLL" },
@@ -74,6 +81,7 @@ const struct PX4RCCalibration::FunctionInfo PX4RCCalibration::_rgFunctionInfo[PX
PX4RCCalibration::PX4RCCalibration(QWidget *parent) :
QWidget(parent),
_currentStep(-1),
+ _transmitterMode(2),
_chanCount(0),
_rcCalState(rcCalStateChannelWait),
_mav(NULL),
@@ -136,11 +144,27 @@ PX4RCCalibration::PX4RCCalibration(QWidget *parent) :
connect(_ui->pitchTrim, &QPushButton::clicked, this, &PX4RCCalibration::_trimNYI);
connect(_ui->throttleTrim, &QPushButton::clicked, this, &PX4RCCalibration::_trimNYI);
+ _loadSettings();
+
+ if (_transmitterMode == 1) {
+ _ui->mode1->setChecked(true);
+ _mode1Toggled(true);
+ } else if (_transmitterMode == 2) {
+ _ui->mode2->setChecked(true);
+ _mode2Toggled(true);
+ } else {
+ Q_ASSERT(false);
+ }
+
+ connect(_ui->mode1, &QAbstractButton::toggled, this, &PX4RCCalibration::_mode1Toggled);
+ connect(_ui->mode2, &QAbstractButton::toggled, this, &PX4RCCalibration::_mode2Toggled);
+
_stopCalibration();
}
PX4RCCalibration::~PX4RCCalibration()
{
+ _storeSettings();
}
/// @brief Returns the state machine entry for the specified state.
@@ -219,7 +243,8 @@ void PX4RCCalibration::_setupCurrentState(void)
const stateMachineEntry* state = _getStateMachineEntry(_currentStep);
_ui->rcCalStatus->setText(state->instructions);
- _ui->radioIcon->setPixmap(QPixmap(QString(_imageFilePrefix) + state->image));
+
+ _setHelpImage(state->image);
_stickDetectChannel = _chanMax;
_stickDetectSettleStarted = false;
@@ -976,6 +1001,8 @@ void PX4RCCalibration::_stopCalibration(void)
_ui->rcCalNext->setEnabled(true);
_ui->rcCalCancel->setEnabled(false);
_ui->rcCalSkip->setEnabled(false);
+
+ _setHelpImage(_imageCenter);
}
/// @brief Saves the current channel values, so that we can detect when the use moves an input.
@@ -1051,3 +1078,65 @@ void PX4RCCalibration::_parameterListUpToDate(void)
_setInternalCalibrationValuesFromParameters();
}
}
+
+void PX4RCCalibration::_loadSettings(void)
+{
+ QSettings settings;
+
+ settings.beginGroup(_settingsGroup);
+ _transmitterMode = settings.value(_settingsKeyTransmitterMode, 2).toInt();
+ settings.endGroup();
+
+ if (_transmitterMode != 1 || _transmitterMode != 2) {
+ _transmitterMode = 2;
+ }
+}
+
+void PX4RCCalibration::_storeSettings(void)
+{
+ QSettings settings;
+
+ settings.beginGroup(_settingsGroup);
+ settings.setValue(_settingsKeyTransmitterMode, _transmitterMode);
+ settings.endGroup();
+}
+
+void PX4RCCalibration::_mode1Toggled(bool checked)
+{
+ if (checked) {
+ _transmitterMode = 1;
+ if (_currentStep != -1) {
+ const stateMachineEntry* state = _getStateMachineEntry(_currentStep);
+ _setHelpImage(state->image);
+ }
+ }
+}
+
+void PX4RCCalibration::_mode2Toggled(bool checked)
+{
+ if (checked) {
+ _transmitterMode = 2;
+ if (_currentStep != -1) {
+ const stateMachineEntry* state = _getStateMachineEntry(_currentStep);
+ _setHelpImage(state->image);
+ }
+ }
+}
+
+void PX4RCCalibration::_setHelpImage(const char* imageFile)
+{
+ QString file = _imageFilePrefix;
+
+ if (_transmitterMode == 1) {
+ file += _imageFileMode1Dir;
+ } else if (_transmitterMode == 2) {
+ file += _imageFileMode2Dir;
+ } else {
+ Q_ASSERT(false);
+ }
+ file += imageFile;
+
+ //qDebug() << "_setHelpImage" << file;
+
+ _ui->radioIcon->setPixmap(QPixmap(file));
+}
diff --git a/src/ui/px4_configuration/PX4RCCalibration.h b/src/ui/px4_configuration/PX4RCCalibration.h
index e5cdbc419f432852e1e229ddb3167b2419f06735..49ba54c6f785a507c304dbf2e956693af00cf6c9 100644
--- a/src/ui/px4_configuration/PX4RCCalibration.h
+++ b/src/ui/px4_configuration/PX4RCCalibration.h
@@ -63,6 +63,9 @@ private slots:
void _skipButton(void);
void _spektrumBind(void);
+ void _mode1Toggled(bool checked);
+ void _mode2Toggled(bool checked);
+
void _trimNYI(void);
void _updateView(void);
@@ -184,12 +187,20 @@ private:
void _showMinMaxOnRadioWidgets(bool show);
void _showTrimOnRadioWidgets(bool show);
+ void _setHelpImage(const char* imageFile);
+
+ void _loadSettings(void);
+ void _storeSettings(void);
+
// @brief Called by unit test code to set the mode to unit testing
void _setUnitTestMode(void){ _unitTestMode = true; }
// Member variables
+ static const char* _imageFileMode1Dir;
+ static const char* _imageFileMode2Dir;
static const char* _imageFilePrefix;
+ static const char* _imageCenter;
static const char* _imageHome;
static const char* _imageThrottleUp;
static const char* _imageThrottleDown;
@@ -201,6 +212,11 @@ private:
static const char* _imagePitchDown;
static const char* _imageSwitchMinMax;
+ static const char* _settingsGroup;
+ static const char* _settingsKeyTransmitterMode;
+
+ int _transmitterMode; ///< 1: transmitter is mode 1, 2: transmitted is mode 2
+
static const int _updateInterval; ///< Interval for ui update timer
static const struct FunctionInfo _rgFunctionInfo[rcCalFunctionMax]; ///< Information associated with each function.
diff --git a/src/ui/px4_configuration/PX4RCCalibration.ui b/src/ui/px4_configuration/PX4RCCalibration.ui
index 6a43cf186996c6db6942b1e341f8b3b9d7b5c8e4..a2231c6d9acba54bcbe2ebe9de354e0d9f5ad755 100644
--- a/src/ui/px4_configuration/PX4RCCalibration.ui
+++ b/src/ui/px4_configuration/PX4RCCalibration.ui
@@ -546,11 +546,53 @@ background-color: rgb(80, 80, 80);s
-
-
-
- Calibration Help
+
+
+ -1
-
+
+ QLayout::SetDefaultConstraint
+
+
+ 0
+
+
+ 0
+
+
-
+
+
+ Calibration Help
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+ Mode 1
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+ Mode 2
+
+
+
+
-
@@ -570,7 +612,7 @@ background-color: rgb(80, 80, 80);s
- :/files/images/px4/calibration/radioCenter.png
+ :/files/images/px4/calibration/radioCenter.png
Qt::AlignCenter
@@ -594,7 +636,7 @@ background-color: rgb(80, 80, 80);s
-
-
+
0
@@ -1172,8 +1214,6 @@ background-color: rgb(179, 179, 179);
1
-
-
-
+