Skip to content

Commit 1b0ceae

Browse files
committed
LP-525 [PikoBLX] Cleaned up HW configuration, added PPM Port (pad) combo. Verified GCS HW page.
1 parent 4f22425 commit 1b0ceae

5 files changed

Lines changed: 66 additions & 54 deletions

File tree

flight/targets/boards/pikoblx/firmware/pios_board.c

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -223,7 +223,9 @@ void PIOS_Board_Init(void)
223223
}
224224

225225
#ifdef PIOS_INCLUDE_PPM
226-
PIOS_BOARD_IO_Configure_PPM_RCVR(&pios_ppm_cfg);
226+
if (boardHwSettings.PPMPort == HWPIKOBLXSETTINGS_PPMPORT_ENABLED) {
227+
PIOS_BOARD_IO_Configure_PPM_RCVR(&pios_ppm_cfg);
228+
}
227229
#endif
228230

229231
#ifdef PIOS_INCLUDE_GCSRCVR

ground/gcs/src/plugins/config/configgadgetwidget.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@
4444
#include "configsparky2hwwidget.h"
4545
#include "configspracingf3evohwwidget.h"
4646
#include "configtinyfishhwwidget.h"
47+
#include "configpikoblxhwwidget.h"
4748
#include "defaultconfigwidget.h"
4849

4950
#include <extensionsystem/pluginmanager.h>
@@ -270,7 +271,7 @@ void ConfigGadgetWidget::onAutopilotConnect()
270271
widget = new ConfigSPRacingF3EVOHWWidget(this);
271272
break;
272273
case 0x1005:
273-
// widget = new ConfigPikoBLXHWWidget(this);
274+
widget = new ConfigPikoBLXHWWidget(this);
274275
break;
275276
case 0x1006:
276277
widget = new ConfigTinyFISHHWWidget(this);

ground/gcs/src/plugins/config/configpikoblxhwwidget.cpp

Lines changed: 17 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -50,15 +50,16 @@ ConfigPikoBLXHWWidget::ConfigPikoBLXHWWidget(QWidget *parent) : ConfigTaskWidget
5050
addWidgetBinding("HwPikoBLXSettings", "UARTPort", m_ui->cbUART2, 1, 1, true);
5151
addWidgetBinding("HwPikoBLXSettings", "UARTPort", m_ui->cbUART3, 2, 1, true);
5252
addWidgetBinding("HwPikoBLXSettings", "LEDPort", m_ui->cbLEDPort);
53-
53+
addWidgetBinding("HwPikoBLXSettings", "PPMPort", m_ui->cbPPMPort);
54+
5455
m_cbUART[0] = m_ui->cbUART1;
5556
m_cbUART[1] = m_ui->cbUART2;
5657
m_cbUART[2] = m_ui->cbUART3;
57-
58-
for(quint32 i = 0; i < HwPikoBLXSettings::UARTPORT_NUMELEM; ++i) {
58+
59+
for (quint32 i = 0; i < HwPikoBLXSettings::UARTPORT_NUMELEM; ++i) {
5960
connect(m_cbUART[i], static_cast<void(QComboBox::*) (int)>(&QComboBox::currentIndexChanged), this, &ConfigPikoBLXHWWidget::UARTxChanged);
6061
}
61-
62+
6263
m_ui->commonHWSettings->registerWidgets(*this);
6364

6465
connect(m_ui->commonHWSettings, &CommonHWSettingsWidget::USBVCPFunctionChanged, this, &ConfigPikoBLXHWWidget::USBVCPFunctionChanged);
@@ -74,10 +75,10 @@ ConfigPikoBLXHWWidget::~ConfigPikoBLXHWWidget()
7475
void ConfigPikoBLXHWWidget::refreshWidgetsValuesImpl(UAVObject *obj)
7576
{
7677
// is this needed? This is to force sane state
77-
// UART1Changed(0);
78-
// UART2Changed(0);
79-
// UART3Changed(0);
80-
78+
// UART1Changed(0);
79+
// UART2Changed(0);
80+
// UART3Changed(0);
81+
8182
m_ui->commonHWSettings->refreshWidgetsValues(obj);
8283
}
8384

@@ -88,9 +89,9 @@ void ConfigPikoBLXHWWidget::updateObjectsFromWidgetsImpl()
8889

8990
void ConfigPikoBLXHWWidget::updateFeatures()
9091
{
91-
quint32 features = CommonHWSettingsWidget::F_USB;
92+
quint32 features = CommonHWSettingsWidget::F_USB;
9293

93-
for(quint32 i = 0; i < HwPikoBLXSettings::UARTPORT_NUMELEM; ++i) {
94+
for (quint32 i = 0; i < HwPikoBLXSettings::UARTPORT_NUMELEM; ++i) {
9495
switch (getComboboxSelectedOption(m_cbUART[i])) {
9596
case HwPikoBLXSettings::UARTPORT_TELEMETRY:
9697
features |= CommonHWSettingsWidget::F_TELEMETRY;
@@ -131,13 +132,13 @@ bool ConfigPikoBLXHWWidget::optionConflict(int uartOption, int vcpOption)
131132
void ConfigPikoBLXHWWidget::UARTxChanged(int index)
132133
{
133134
Q_UNUSED(index);
134-
135+
135136
QComboBox *cbUARTx = qobject_cast<QComboBox *>(sender());
136-
137-
if(!cbUARTx) {
137+
138+
if (!cbUARTx) {
138139
return;
139140
}
140-
141+
141142
// Everything except HwPikoBLXSettings::UARTPORT_DISABLED and HwPikoBLXSettings::UARTPORT_DSM
142143
// is allowed on single port only.
143144
// HoTT SUMD & SUMH belong to the same receiver group, therefore cannot be configure at the same time
@@ -150,8 +151,7 @@ void ConfigPikoBLXHWWidget::UARTxChanged(int index)
150151
}
151152

152153
if (option != HwPikoBLXSettings::UARTPORT_DISABLED && option != HwPikoBLXSettings::UARTPORT_DSM) {
153-
154-
for(quint32 i = 0; i < HwPikoBLXSettings::UARTPORT_NUMELEM; ++i) {
154+
for (quint32 i = 0; i < HwPikoBLXSettings::UARTPORT_NUMELEM; ++i) {
155155
if (m_cbUART[i] == cbUARTx) {
156156
continue;
157157
}
@@ -180,12 +180,11 @@ void ConfigPikoBLXHWWidget::USBVCPFunctionChanged(int index)
180180

181181
int vcpOption = getComboboxSelectedOption(m_ui->commonHWSettings->USBVCPComboBox());
182182

183-
for(quint32 i = 0; i < HwPikoBLXSettings::UARTPORT_NUMELEM; ++i) {
183+
for (quint32 i = 0; i < HwPikoBLXSettings::UARTPORT_NUMELEM; ++i) {
184184
if (optionConflict(getComboboxSelectedOption(m_cbUART[i]), vcpOption)) {
185185
setComboboxSelectedOption(m_cbUART[i], HwPikoBLXSettings::UARTPORT_DISABLED);
186186
}
187187
}
188188

189189
updateFeatures();
190190
}
191-

ground/gcs/src/plugins/config/configpikoblxhwwidget.ui

Lines changed: 42 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -282,6 +282,42 @@
282282
</item>
283283
<item row="1" column="0">
284284
<layout class="QGridLayout" name="gridLayout_2">
285+
<item row="1" column="1">
286+
<widget class="QComboBox" name="cbLEDPort"/>
287+
</item>
288+
<item row="3" column="0">
289+
<widget class="QLabel" name="lbUART2">
290+
<property name="text">
291+
<string>UART2</string>
292+
</property>
293+
<property name="alignment">
294+
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
295+
</property>
296+
</widget>
297+
</item>
298+
<item row="2" column="0">
299+
<widget class="QLabel" name="lbUART1">
300+
<property name="text">
301+
<string>UART1</string>
302+
</property>
303+
<property name="alignment">
304+
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
305+
</property>
306+
</widget>
307+
</item>
308+
<item row="2" column="1">
309+
<widget class="QComboBox" name="cbUART1"/>
310+
</item>
311+
<item row="3" column="1">
312+
<widget class="QComboBox" name="cbUART2">
313+
<property name="sizePolicy">
314+
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
315+
<horstretch>0</horstretch>
316+
<verstretch>0</verstretch>
317+
</sizepolicy>
318+
</property>
319+
</widget>
320+
</item>
285321
<item row="4" column="1">
286322
<widget class="QComboBox" name="cbUART3"/>
287323
</item>
@@ -311,7 +347,7 @@
311347
</property>
312348
</widget>
313349
</item>
314-
<item row="5" column="0">
350+
<item row="6" column="0">
315351
<spacer name="verticalSpacer_4">
316352
<property name="orientation">
317353
<enum>Qt::Vertical</enum>
@@ -334,41 +370,15 @@
334370
</property>
335371
</widget>
336372
</item>
337-
<item row="1" column="1">
338-
<widget class="QComboBox" name="cbLEDPort"/>
339-
</item>
340-
<item row="3" column="0">
341-
<widget class="QLabel" name="lbUART2">
342-
<property name="text">
343-
<string>UART2</string>
344-
</property>
345-
<property name="alignment">
346-
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
347-
</property>
348-
</widget>
349-
</item>
350-
<item row="2" column="0">
351-
<widget class="QLabel" name="lbUART1">
373+
<item row="5" column="0">
374+
<widget class="QLabel" name="lblPPM">
352375
<property name="text">
353-
<string>UART1</string>
354-
</property>
355-
<property name="alignment">
356-
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
376+
<string>PPM Port (pad)</string>
357377
</property>
358378
</widget>
359379
</item>
360-
<item row="2" column="1">
361-
<widget class="QComboBox" name="cbUART1"/>
362-
</item>
363-
<item row="3" column="1">
364-
<widget class="QComboBox" name="cbUART2">
365-
<property name="sizePolicy">
366-
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
367-
<horstretch>0</horstretch>
368-
<verstretch>0</verstretch>
369-
</sizepolicy>
370-
</property>
371-
</widget>
380+
<item row="5" column="1">
381+
<widget class="QComboBox" name="cbPPMPort"/>
372382
</item>
373383
</layout>
374384
</item>

shared/uavobjectdefinition/hwpikoblxsettings.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
<xml>
22
<object name="HwPikoBLXSettings" singleinstance="true" settings="true" category="System">
33
<description>Furious FPV Piko BLX Micro Flight Controller hardware configuration</description>
4-
<field name="UARTPort" units="function" type="enum" elements="3" options="Disabled,Telemetry,GPS,S.Bus,DSM,EX.Bus,HoTT SUMD,HoTT SUMH,SRXL,IBus,DebugConsole,ComBridge,MSP,MAVLink,HoTT Telemetry,FrskySensorHub" defaultvalue="Disabled"/>
4+
<field name="UARTPort" units="function" type="enum" elements="3" options="Disabled,Telemetry,GPS,S.Bus,DSM,EX.Bus,HoTT SUMD,HoTT SUMH,SRXL,IBus,DebugConsole,ComBridge,MSP,MAVLink,HoTT Telemetry,FrskySensorHub" defaultvalue="Disabled" limits=";;%EQ:Disabled:S.Bus:DSM:EX.Bus:HoTT SUMD:HoTT SUMH:SRXL:IBus"/>
55
<field name="LEDPort" units="function" type="enum" elements="1" options="Disabled,WS281x" defaultvalue="Disabled"/>
6-
6+
<field name="PPMPort" units="function" type="enum" elements="1" options="Disabled,Enabled" defaultvalue="Disabled"/>
77
<access gcs="readwrite" flight="readwrite"/>
88
<telemetrygcs acked="true" updatemode="onchange" period="0"/>
99
<telemetryflight acked="true" updatemode="onchange" period="0"/>

0 commit comments

Comments
 (0)