1
0
mirror of https://bitbucket.org/librepilot/librepilot.git synced 2025-02-20 10:54:14 +01:00

LP-520 Oplink : Add PPM Rssi option to Gui - Allow only one PPM port

This commit is contained in:
Laurent Lalanne 2017-05-26 15:32:14 +02:00
parent 20ac6ed1e3
commit 673dbeee40
2 changed files with 29 additions and 2 deletions

View File

@ -82,6 +82,7 @@ ConfigOPLinkWidget::ConfigOPLinkWidget(QWidget *parent) : ConfigTaskWidget(paren
addWidgetBinding("OPLinkSettings", "MaxRFPower", m_oplink->MaxRFTxPower);
addWidgetBinding("OPLinkSettings", "MainPort", m_oplink->MainPort);
addWidgetBinding("OPLinkSettings", "FlexiPort", m_oplink->FlexiPort);
addWidgetBinding("OPLinkSettings", "PPMOutRSSI", m_oplink->PPMoutRssi);
addWidgetBinding("OPLinkSettings", "RadioPriStream", m_oplink->RadioPriStream);
addWidgetBinding("OPLinkSettings", "RadioAuxStream", m_oplink->RadioAuxStream);
addWidgetBinding("OPLinkSettings", "VCPBridge", m_oplink->VCPBridge);
@ -263,6 +264,7 @@ void ConfigOPLinkWidget::updateSettings()
bool is_receiver = isComboboxOptionSelected(m_oplink->Protocol, OPLinkSettings::PROTOCOL_OPLINKRECEIVER);
bool is_oplink = (is_receiver || is_coordinator);
bool is_ppm_only = isComboboxOptionSelected(m_oplink->LinkType, OPLinkSettings::LINKTYPE_CONTROL);
bool is_ppm = isComboboxOptionSelected(m_oplink->LinkType, OPLinkSettings::LINKTYPE_DATAANDCONTROL);
bool is_main_serial = isComboboxOptionSelected(m_oplink->MainPort, OPLinkSettings::MAINPORT_SERIAL);
bool is_main_telem = isComboboxOptionSelected(m_oplink->MainPort, OPLinkSettings::MAINPORT_TELEMETRY);
bool is_flexi_serial = isComboboxOptionSelected(m_oplink->FlexiPort, OPLinkSettings::FLEXIPORT_SERIAL);
@ -277,6 +279,9 @@ void ConfigOPLinkWidget::updateSettings()
bool is_stream_flexi = isComboboxOptionSelected(m_oplink->RadioPriStream, OPLinkSettings::RADIOPRISTREAM_FLEXI) ||
isComboboxOptionSelected(m_oplink->RadioAuxStream, OPLinkSettings::RADIOAUXSTREAM_FLEXI);
bool is_flexi_ppm = isComboboxOptionSelected(m_oplink->FlexiPort, OPLinkSettings::FLEXIPORT_PPM);
bool is_main_ppm = isComboboxOptionSelected(m_oplink->MainPort, OPLinkSettings::MAINPORT_PPM);
if (!is_stream_main && !is_vcp_main && (is_main_serial || is_main_telem)) {
setComboboxSelectedOption(m_oplink->MainPort, OPLinkSettings::MAINPORT_DISABLED);
is_main_serial = false;
@ -295,6 +300,9 @@ void ConfigOPLinkWidget::updateSettings()
m_oplink->MainPort->setEnabled(is_oplink || is_vcp_main);
m_oplink->FlexiPort->setEnabled(is_oplink || is_vcp_flexi);
m_oplink->PPMoutRssi->setEnabled(is_receiver && (is_ppm || is_ppm_only) && (is_flexi_ppm || is_main_ppm));
m_oplink->MainComSpeed->setEnabled(is_oplink && !is_ppm_only && !is_vcp_main && (is_main_serial || is_main_telem));
m_oplink->FlexiComSpeed->setEnabled(is_oplink && !is_ppm_only && !is_vcp_flexi && (is_flexi_serial || is_flexi_telem));
m_oplink->CoordID->setEnabled(is_receiver || is_openlrs);
@ -416,6 +424,9 @@ void ConfigOPLinkWidget::mainPortChanged()
{
switch (getComboboxSelectedOption(m_oplink->MainPort)) {
case OPLinkSettings::MAINPORT_PPM:
if (isComboboxOptionSelected(m_oplink->FlexiPort, OPLinkSettings::FLEXIPORT_PPM)) {
setComboboxSelectedOption(m_oplink->FlexiPort, OPLinkSettings::FLEXIPORT_DISABLED);
}
case OPLinkSettings::MAINPORT_PWM:
case OPLinkSettings::MAINPORT_DISABLED:
if (isComboboxOptionSelected(m_oplink->RadioPriStream, OPLinkSettings::RADIOPRISTREAM_MAIN)) {
@ -439,12 +450,16 @@ void ConfigOPLinkWidget::mainPortChanged()
default:
break;
}
updateSettings();
}
void ConfigOPLinkWidget::flexiPortChanged()
{
switch (getComboboxSelectedOption(m_oplink->FlexiPort)) {
case OPLinkSettings::FLEXIPORT_PPM:
if (isComboboxOptionSelected(m_oplink->MainPort, OPLinkSettings::MAINPORT_PPM)) {
setComboboxSelectedOption(m_oplink->MainPort, OPLinkSettings::MAINPORT_DISABLED);
}
case OPLinkSettings::FLEXIPORT_PWM:
case OPLinkSettings::FLEXIPORT_DISABLED:
if (isComboboxOptionSelected(m_oplink->RadioPriStream, OPLinkSettings::RADIOPRISTREAM_FLEXI)) {
@ -462,14 +477,13 @@ void ConfigOPLinkWidget::flexiPortChanged()
if (isComboboxOptionSelected(m_oplink->MainPort, OPLinkSettings::MAINPORT_TELEMETRY)) {
setComboboxSelectedOption(m_oplink->MainPort, OPLinkSettings::MAINPORT_SERIAL);
}
m_oplink->FlexiComSpeed->setEnabled(true);
break;
case OPLinkSettings::FLEXIPORT_SERIAL:
m_oplink->FlexiComSpeed->setEnabled(true);
break;
default:
break;
}
updateSettings();
}
void ConfigOPLinkWidget::radioPriStreamChanged()

View File

@ -2143,6 +2143,19 @@ Leave blank to use autogenerated Device ID.</string>
</property>
</widget>
</item>
<item row="2" column="3">
<widget class="QComboBox" name="PPMoutRssi"/>
</item>
<item row="2" column="1" colspan="2">
<widget class="QLabel" name="PPMoutRssiLabel">
<property name="text">
<string>PPM RSSI Output</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
</layout>
</widget>
</item>