From d1d7a9201507728d5a3909abd8523b16e176055b Mon Sep 17 00:00:00 2001 From: Thomas Gubler Date: Sun, 28 Dec 2014 21:57:59 +0100 Subject: [PATCH] rc2param: min and max value --- libs/mavlink/include/mavlink/v1.0 | 2 +- src/uas/UAS.cc | 14 +-- src/uas/UAS.h | 2 +- src/uas/UASInterface.h | 2 +- src/ui/QGCMapRCToParamDialog.cpp | 4 +- src/ui/QGCMapRCToParamDialog.h | 4 +- src/ui/QGCMapRCToParamDialog.ui | 136 +++++++++++++++++++++--------- 7 files changed, 111 insertions(+), 53 deletions(-) diff --git a/libs/mavlink/include/mavlink/v1.0 b/libs/mavlink/include/mavlink/v1.0 index c0a0dff2b..c96b64adc 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 2362cd069..c3e7e0c83 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 f838b02b3..9762ce985 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 41ca137f2..9aeca9525 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 1e71b2e30..79bb9d1c3 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 2155013cc..82f0d9030 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 b7fc43a6f..8fde55314 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 -- 2.22.0