diff --git a/libs/mavlink/include/mavlink/v1.0 b/libs/mavlink/include/mavlink/v1.0
index c0a0dff2b36a97614208559a23a9804ab9f2e636..c96b64adc3ff126559366c445633f88252d53b2d 160000
--- a/libs/mavlink/include/mavlink/v1.0
+++ b/libs/mavlink/include/mavlink/v1.0
@@ -1 +1 @@
-Subproject commit c0a0dff2b36a97614208559a23a9804ab9f2e636
+Subproject commit c96b64adc3ff126559366c445633f88252d53b2d
diff --git a/src/uas/UAS.cc b/src/uas/UAS.cc
index 2362cd069201413881739b9e40ad936fcda4af7a..c3e7e0c83b9592b2b62357ccc5f46f057a37ccad 100644
--- a/src/uas/UAS.cc
+++ b/src/uas/UAS.cc
@@ -3468,9 +3468,9 @@ void UAS::stopLowBattAlarm()
}
}
-void UAS::sendMapRCToParam(QString param_id, float scale, float current_value, quint8 param_rc_channel_index)
+void UAS::sendMapRCToParam(QString param_id, float scale, float value0, quint8 param_rc_channel_index, float valueMin, float valueMax)
{
- qDebug() << "sendMapRCToParam" << param_id << "scale" << scale << "curval" << current_value << "param rc chan index" << param_rc_channel_index;
+ qDebug() << "sendMapRCToParam" << param_id << "scale" << scale << "value0" << value0 << "param rc chan index" << param_rc_channel_index;
mavlink_message_t message;
mavlink_msg_param_map_rc_pack(mavlink->getSystemId(),
@@ -3481,11 +3481,14 @@ void UAS::sendMapRCToParam(QString param_id, float scale, float current_value, q
param_id.toStdString().c_str(),
-1,
param_rc_channel_index,
- current_value,
- scale);
+ value0,
+ scale,
+ valueMin,
+ valueMax);
sendMessage(message);
qDebug() << "Mavlink message sent";
}
+
void UAS::unsetRCToParameterMap()
{
qDebug() << "unsetRCToParameterMap";
@@ -3500,8 +3503,9 @@ void UAS::unsetRCToParameterMap()
-2,
i,
0.0f,
+ 0.0f,
+ 0.0f,
0.0f);
sendMessage(message);
}
}
-
diff --git a/src/uas/UAS.h b/src/uas/UAS.h
index f838b02b36dab981e04fa3932c23771fd8406099..9762ce9856a6d9071313bf2ede87ec4906e6c7cb 100644
--- a/src/uas/UAS.h
+++ b/src/uas/UAS.h
@@ -885,7 +885,7 @@ public slots:
void triggerAction(int action);
/** @brief Send command to map a RC channel to a parameter */
- void sendMapRCToParam(QString param_id, float scale, float current_value, quint8 param_rc_channel_index);
+ void sendMapRCToParam(QString param_id, float scale, float value0, quint8 param_rc_channel_index, float valueMin, float valueMax);
/** @brief Send command to disable all bindings/maps between RC and parameters */
void unsetRCToParameterMap();
diff --git a/src/uas/UASInterface.h b/src/uas/UASInterface.h
index 41ca137f2d8e0e88bda3e95f12c9a6d28fc99fee..9aeca95253e818b42940f6a997ec8d12bdcbda92 100644
--- a/src/uas/UASInterface.h
+++ b/src/uas/UASInterface.h
@@ -392,7 +392,7 @@ public slots:
float flow_comp_m_y, quint8 quality, float ground_distance) = 0;
/** @brief Send command to map a RC channel to a parameter */
- virtual void sendMapRCToParam(QString param_id, float scale, float current_value, quint8 param_rc_channel_index) = 0;
+ virtual void sendMapRCToParam(QString param_id, float scale, float value0, quint8 param_rc_channel_index, float valueMin, float valueMax) = 0;
/** @brief Send command to disable all bindings/maps between RC and parameters */
virtual void unsetRCToParameterMap() = 0;
diff --git a/src/ui/QGCMapRCToParamDialog.cpp b/src/ui/QGCMapRCToParamDialog.cpp
index 1e71b2e30e1ca5974982409d3d996e6cc887efe5..79bb9d1c3fe4e7f77551e52b8801bbb055e9be6e 100644
--- a/src/ui/QGCMapRCToParamDialog.cpp
+++ b/src/ui/QGCMapRCToParamDialog.cpp
@@ -67,7 +67,9 @@ void QGCMapRCToParamDialog::accept() {
emit mapRCToParamDialogResult(param_id,
(float)ui->scaleDoubleSpinBox->value(),
(float)ui->value0DoubleSpinBox->value(),
- (quint8)ui->rcParamChannelComboBox->currentIndex());
+ (quint8)ui->rcParamChannelComboBox->currentIndex(),
+ (float)ui->minValueDoubleSpinBox->value(),
+ (float)ui->maxValueDoubleSpinBox->value());
QDialog::accept();
}
diff --git a/src/ui/QGCMapRCToParamDialog.h b/src/ui/QGCMapRCToParamDialog.h
index 2155013cc0258bb819f99a54036d3b42e617fa90..82f0d90307e43aa44fce0ec635c55ebd6527d302 100644
--- a/src/ui/QGCMapRCToParamDialog.h
+++ b/src/ui/QGCMapRCToParamDialog.h
@@ -76,8 +76,8 @@ public:
~QGCMapRCToParamDialog();
signals:
- void mapRCToParamDialogResult(QString param_id, float scale, float current_value,
- quint8 param_rc_channel_index);
+ void mapRCToParamDialogResult(QString param_id, float scale, float value0,
+ quint8 param_rc_channel_index, float valueMin, float valueMax);
void refreshParam();
public slots:
diff --git a/src/ui/QGCMapRCToParamDialog.ui b/src/ui/QGCMapRCToParamDialog.ui
index b7fc43a6f48bbdead4dab702dbdf4b1cee660640..8fde55314b79ea2913881056387b92e4fb62783d 100644
--- a/src/ui/QGCMapRCToParamDialog.ui
+++ b/src/ui/QGCMapRCToParamDialog.ui
@@ -7,7 +7,7 @@
0
0
400
- 300
+ 315
@@ -17,7 +17,7 @@
30
- 240
+ 280
341
32
@@ -35,13 +35,59 @@
9
9
381
- 231
+ 271
QFormLayout::AllNonFixedFieldsGrow
+ -
+
+
+ Bind
+
+
+
+ -
+
+
+ RC-Parameter Channel (Knob No.)
+
+
+
+ -
+
+
+ false
+
+
+ 1
+
+
-
+
+ 1
+
+
+ -
+
+ 2
+
+
+ -
+
+ 3
+
+
+
+
+ -
+
+
+ to
+
+
+
-
@@ -56,6 +102,13 @@
+ -
+
+
+ with
+
+
+
-
@@ -85,69 +138,68 @@
8
+
+ -100000.000000000000000
+
+
+ 100000.000000000000000
+
- -
-
+
-
+
- RC-Parameter Channel (Knob No.)
+ Minimum Value
- -
-
-
- false
+
-
+
+
+ 8
-
- 1
+
+ -100000.000000000000000
-
-
-
- 1
-
-
- -
-
- 2
-
-
- -
-
- 3
-
-
-
-
- -
-
-
- Bind
+
+ 100000.000000000000000
- -
-
+
-
+
- to
+ Maximum Value
- -
-
-
- with
+
-
+
+
+ 8
+
+
+ -10000.000000000000000
+
+
+ 100000.000000000000000
+
+
+ 1.000000000000000
+
+
+ 10.000000000000000
- -
+
-
Waiting for parameter refresh,,,
- -
+
-
Qt::Vertical