1
0
mirror of https://bitbucket.org/librepilot/librepilot.git synced 2025-03-16 08:29:15 +01:00

LP-72 initial GCS support needs xml limits and firmware tab board image

This commit is contained in:
Alessio Morale 2016-04-24 13:13:13 +02:00 committed by Laurent Lalanne
parent 8db5b034a2
commit 0c0b04233b
19 changed files with 2027 additions and 23 deletions

View File

@ -837,8 +837,8 @@ void PIOS_Board_Init(void)
case HWSETTINGS_RM_RCVRPORT_PPM: case HWSETTINGS_RM_RCVRPORT_PPM:
#if defined(PIOS_INCLUDE_PPM) #if defined(PIOS_INCLUDE_PPM)
PIOS_Board_configure_ppm(&pios_ppm_cfg); PIOS_Board_configure_ppm(&pios_ppm_cfg);
break;
#endif /* PIOS_INCLUDE_PPM */ #endif /* PIOS_INCLUDE_PPM */
break;
case HWSETTINGS_RM_RCVRPORT_SBUS: case HWSETTINGS_RM_RCVRPORT_SBUS:
#if defined(PIOS_INCLUDE_SBUS) #if defined(PIOS_INCLUDE_SBUS)
{ {

View File

@ -55,6 +55,7 @@ HEADERS += \
calibration/calibrationuiutils.h \ calibration/calibrationuiutils.h \
configoplinkwidget.h \ configoplinkwidget.h \
configrevonanohwwidget.h \ configrevonanohwwidget.h \
configsparky2hwwidget.h \
failsafechannelform.h failsafechannelform.h
SOURCES += \ SOURCES += \
@ -97,6 +98,7 @@ SOURCES += \
calibration/gyrobiascalibrationmodel.cpp \ calibration/gyrobiascalibrationmodel.cpp \
configoplinkwidget.cpp \ configoplinkwidget.cpp \
configrevonanohwwidget.cpp \ configrevonanohwwidget.cpp \
configsparky2hwwidget.cpp \
failsafechannelform.cpp failsafechannelform.cpp
FORMS += \ FORMS += \
@ -123,6 +125,7 @@ FORMS += \
configrevohwwidget.ui \ configrevohwwidget.ui \
oplink.ui \ oplink.ui \
configrevonanohwwidget.ui \ configrevonanohwwidget.ui \
configsparky2hwwidget.ui \
failsafechannelform.ui failsafechannelform.ui
OTHER_FILES += \ OTHER_FILES += \

View File

@ -57,5 +57,6 @@
<file>images/error.svg</file> <file>images/error.svg</file>
<file>images/nano_top.png</file> <file>images/nano_top.png</file>
<file>images/cc3d_top.png</file> <file>images/cc3d_top.png</file>
<file>images/sparky2_top.png</file>
</qresource> </qresource>
</RCC> </RCC>

View File

@ -2,7 +2,8 @@
****************************************************************************** ******************************************************************************
* *
* @file configgadgetwidget.cpp * @file configgadgetwidget.cpp
* @author E. Lafargue & The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010. * @author The LibrePilot Project, http://www.librepilot.org Copyright (C) 2015.
* E. Lafargue & The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010.
* @addtogroup GCSPlugins GCS Plugins * @addtogroup GCSPlugins GCS Plugins
* @{ * @{
* @addtogroup ConfigPlugin Config Plugin * @addtogroup ConfigPlugin Config Plugin
@ -39,6 +40,7 @@
#include "configoplinkwidget.h" #include "configoplinkwidget.h"
#include "configrevowidget.h" #include "configrevowidget.h"
#include "configrevonanohwwidget.h" #include "configrevonanohwwidget.h"
#include "configsparky2hwwidget.h"
#include "defaultattitudewidget.h" #include "defaultattitudewidget.h"
#include "defaulthwsettingswidget.h" #include "defaulthwsettingswidget.h"
#include "uavobjectutilmanager.h" #include "uavobjectutilmanager.h"
@ -200,6 +202,12 @@ void ConfigGadgetWidget::onAutopilotConnect()
qwd = new ConfigRevoNanoHWWidget(this); qwd = new ConfigRevoNanoHWWidget(this);
} }
stackWidget->replaceTab(ConfigGadgetWidget::hardware, qwd); stackWidget->replaceTab(ConfigGadgetWidget::hardware, qwd);
} else if ((board & 0xff00) == 0x0b00) {
// Sparky2
QWidget *qwd = new ConfigRevoWidget(this);
stackWidget->replaceTab(ConfigGadgetWidget::sensors, qwd);
qwd = new ConfigSparky2HWWidget(this);
stackWidget->replaceTab(ConfigGadgetWidget::hardware, qwd);
} else { } else {
// Unknown board // Unknown board
qDebug() << "Unknown board " << board; qDebug() << "Unknown board " << board;

View File

@ -94,6 +94,9 @@ void ConnectionDiagram::setupGraphicsScene()
case VehicleConfigurationSource::CONTROLLER_NANO: case VehicleConfigurationSource::CONTROLLER_NANO:
elementsToShow << "controller-nano"; elementsToShow << "controller-nano";
break; break;
case VehicleConfigurationSource::CONTROLLER_SPARKY2:
elementsToShow << "controller-sparky2";
break;
case VehicleConfigurationSource::CONTROLLER_OPLINK: case VehicleConfigurationSource::CONTROLLER_OPLINK:
default: default:
elementsToShow << "controller-cc"; elementsToShow << "controller-cc";
@ -181,6 +184,9 @@ void ConnectionDiagram::setupGraphicsScene()
case VehicleConfigurationSource::CONTROLLER_NANO: case VehicleConfigurationSource::CONTROLLER_NANO:
prefix = "nano-"; prefix = "nano-";
break; break;
case VehicleConfigurationSource::CONTROLLER_SPARKY2:
prefix = "sparky2-";
break;
default: default:
break; break;
} }

View File

@ -117,6 +117,9 @@ SetupWizard::CONTROLLER_TYPE ControllerPage::getControllerType()
case 0x0905: case 0x0905:
return SetupWizard::CONTROLLER_NANO; return SetupWizard::CONTROLLER_NANO;
case 0x0b01:
return SetupWizard::CONTROLLER_SPARKY2;
default: default:
return SetupWizard::CONTROLLER_UNKNOWN; return SetupWizard::CONTROLLER_UNKNOWN;
} }
@ -139,6 +142,7 @@ void ControllerPage::setupBoardTypes()
ui->boardTypeCombo->addItem(tr("OpenPilot OPLink Radio Modem"), SetupWizard::CONTROLLER_OPLINK); ui->boardTypeCombo->addItem(tr("OpenPilot OPLink Radio Modem"), SetupWizard::CONTROLLER_OPLINK);
ui->boardTypeCombo->addItem(tr("OpenPilot DiscoveryF4"), SetupWizard::CONTROLLER_DISCOVERYF4); ui->boardTypeCombo->addItem(tr("OpenPilot DiscoveryF4"), SetupWizard::CONTROLLER_DISCOVERYF4);
ui->boardTypeCombo->addItem(tr("OpenPilot Nano"), SetupWizard::CONTROLLER_NANO); ui->boardTypeCombo->addItem(tr("OpenPilot Nano"), SetupWizard::CONTROLLER_NANO);
ui->boardTypeCombo->addItem(tr("TauLabs Sparky 2.0"), SetupWizard::CONTROLLER_SPARKY2);
} }
void ControllerPage::setControllerType(SetupWizard::CONTROLLER_TYPE type) void ControllerPage::setControllerType(SetupWizard::CONTROLLER_TYPE type)
@ -225,6 +229,11 @@ void ControllerPage::connectionStatusChanged()
ui->boardImg->setPixmap(boardPic.scaled(picSize, Qt::KeepAspectRatio)); ui->boardImg->setPixmap(boardPic.scaled(picSize, Qt::KeepAspectRatio));
break; break;
case SetupWizard::CONTROLLER_SPARKY2:
boardPic.load(":/configgadget/images/sparky2_top.png");
ui->boardImg->setPixmap(boardPic.scaled(picSize, Qt::KeepAspectRatio));
break;
default: default:
ui->boardImg->setPixmap(QPixmap()); ui->boardImg->setPixmap(QPixmap());
break; break;

View File

@ -2,7 +2,8 @@
****************************************************************************** ******************************************************************************
* *
* @file escpage.cpp * @file escpage.cpp
* @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2014. * @author The LibrePilot Project, http://www.librepilot.org Copyright (C) 2015.
* The OpenPilot Team, http://www.openpilot.org Copyright (C) 2014.
* @addtogroup * @addtogroup
* @{ * @{
* @addtogroup EscPage * @addtogroup EscPage
@ -98,6 +99,7 @@ bool EscPage::isSynchOrOneShotAvailable()
} }
break; break;
case SetupWizard::CONTROLLER_REVO: case SetupWizard::CONTROLLER_REVO:
case SetupWizard::CONTROLLER_SPARKY2:
available = true; available = true;
break; break;
default: default:

View File

@ -2,7 +2,8 @@
****************************************************************************** ******************************************************************************
* *
* @file inputpage.cpp * @file inputpage.cpp
* @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2012. * @author The LibrePilot Project, http://www.librepilot.org Copyright (C) 2015.
* The OpenPilot Team, http://www.openpilot.org Copyright (C) 2012.
* @addtogroup * @addtogroup
* @{ * @{
* @addtogroup InputPage * @addtogroup InputPage
@ -111,6 +112,7 @@ bool InputPage::restartNeeded(VehicleConfigurationSource::INPUT_TYPE selectedTyp
case SetupWizard::CONTROLLER_REVO: case SetupWizard::CONTROLLER_REVO:
case SetupWizard::CONTROLLER_DISCOVERYF4: case SetupWizard::CONTROLLER_DISCOVERYF4:
case SetupWizard::CONTROLLER_NANO: case SetupWizard::CONTROLLER_NANO:
case SetupWizard::CONTROLLER_SPARKY2:
{ {
switch (selectedType) { switch (selectedType) {
case VehicleConfigurationSource::INPUT_PWM: case VehicleConfigurationSource::INPUT_PWM:

View File

@ -2,7 +2,8 @@
****************************************************************************** ******************************************************************************
* *
* @file vehiclepage.cpp * @file vehiclepage.cpp
* @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2012. * @author The LibrePilot Project, http://www.librepilot.org Copyright (C) 2015.
* The OpenPilot Team, http://www.openpilot.org Copyright (C) 2012.
* @addtogroup * @addtogroup
* @{ * @{
* @addtogroup VehiclePage * @addtogroup VehiclePage
@ -61,5 +62,6 @@ bool VehiclePage::validatePage()
void VehiclePage::initializePage() void VehiclePage::initializePage()
{ {
// ui->fixedwingButton->setEnabled(getWizard()->getControllerType() == SetupWizard::CONTROLLER_REVO || // ui->fixedwingButton->setEnabled(getWizard()->getControllerType() == SetupWizard::CONTROLLER_REVO ||
// getWizard()->getControllerType() == SetupWizard::CONTROLLER_NANO); // getWizard()->getControllerType() == SetupWizard::CONTROLLER_NANO ||
// getWizard()->getControllerType() == SetupWizard::CONTROLLER_SPARKY2);
} }

View File

@ -2,7 +2,8 @@
****************************************************************************** ******************************************************************************
* *
* @file setupwizard.cpp * @file setupwizard.cpp
* @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2012. * @author The LibrePilot Project, http://www.librepilot.org Copyright (C) 2015.
* The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010.
* @addtogroup GCSPlugins GCS Plugins * @addtogroup GCSPlugins GCS Plugins
* @{ * @{
* @addtogroup Setup Wizard Plugin * @addtogroup Setup Wizard Plugin
@ -98,6 +99,7 @@ int SetupWizard::nextId() const
case CONTROLLER_CC: case CONTROLLER_CC:
case CONTROLLER_CC3D: case CONTROLLER_CC3D:
case CONTROLLER_REVO: case CONTROLLER_REVO:
case CONTROLLER_SPARKY2:
case CONTROLLER_DISCOVERYF4: case CONTROLLER_DISCOVERYF4:
return PAGE_INPUT; return PAGE_INPUT;
@ -156,6 +158,7 @@ int SetupWizard::nextId() const
switch (getControllerType()) { switch (getControllerType()) {
case CONTROLLER_REVO: case CONTROLLER_REVO:
case CONTROLLER_NANO: case CONTROLLER_NANO:
case CONTROLLER_SPARKY2:
return PAGE_GPS; return PAGE_GPS;
default: default:
@ -168,6 +171,7 @@ int SetupWizard::nextId() const
switch (getControllerType()) { switch (getControllerType()) {
case CONTROLLER_REVO: case CONTROLLER_REVO:
case CONTROLLER_NANO: case CONTROLLER_NANO:
case CONTROLLER_SPARKY2:
return PAGE_GPS; return PAGE_GPS;
default: default:
@ -213,6 +217,7 @@ int SetupWizard::nextId() const
case CONTROLLER_CC3D: case CONTROLLER_CC3D:
case CONTROLLER_REVO: case CONTROLLER_REVO:
case CONTROLLER_NANO: case CONTROLLER_NANO:
case CONTROLLER_SPARKY2:
case CONTROLLER_DISCOVERYF4: case CONTROLLER_DISCOVERYF4:
switch (getVehicleType()) { switch (getVehicleType()) {
case VEHICLE_FIXEDWING: case VEHICLE_FIXEDWING:
@ -254,6 +259,9 @@ QString SetupWizard::getSummaryText()
case CONTROLLER_NANO: case CONTROLLER_NANO:
summary.append(tr("OpenPilot Nano")); summary.append(tr("OpenPilot Nano"));
break; break;
case CONTROLLER_SPARKY2:
summary.append(tr("TauLabs Sparky 2.0"));
break;
case CONTROLLER_OPLINK: case CONTROLLER_OPLINK:
summary.append(tr("OpenPilot OPLink Radio Modem")); summary.append(tr("OpenPilot OPLink Radio Modem"));
break; break;
@ -427,7 +435,7 @@ QString SetupWizard::getSummaryText()
} }
// Show GPS Type // Show GPS Type
if (getControllerType() == CONTROLLER_REVO || getControllerType() == CONTROLLER_NANO) { if (getControllerType() == CONTROLLER_REVO || getControllerType() == CONTROLLER_NANO || getControllerType() == CONTROLLER_SPARKY2) {
summary.append("<br>"); summary.append("<br>");
summary.append("<b>").append(tr("GPS type: ")).append("</b>"); summary.append("<b>").append(tr("GPS type: ")).append("</b>");
switch (getGpsType()) { switch (getGpsType()) {
@ -452,7 +460,8 @@ QString SetupWizard::getSummaryText()
} }
// Show Airspeed sensor type // Show Airspeed sensor type
if ((getControllerType() == CONTROLLER_REVO || getControllerType() == CONTROLLER_NANO) && getVehicleType() == VEHICLE_FIXEDWING) { if ((getControllerType() == CONTROLLER_REVO || getControllerType() == CONTROLLER_NANO || getControllerType() == CONTROLLER_SPARKY2)
&& getVehicleType() == VEHICLE_FIXEDWING) {
summary.append("<br>"); summary.append("<br>");
summary.append("<b>").append(tr("Airspeed Sensor: ")).append("</b>"); summary.append("<b>").append(tr("Airspeed Sensor: ")).append("</b>");
switch (getAirspeedType()) { switch (getAirspeedType()) {

View File

@ -27,7 +27,6 @@
*/ */
#include "vehicleconfigurationhelper.h" #include "vehicleconfigurationhelper.h"
#include "extensionsystem/pluginmanager.h" #include "extensionsystem/pluginmanager.h"
#include "uavobjectutilmanager.h" #include "uavobjectutilmanager.h"
@ -187,13 +186,15 @@ void VehicleConfigurationHelper::applyHardwareConfiguration()
break; break;
case VehicleConfigurationSource::CONTROLLER_REVO: case VehicleConfigurationSource::CONTROLLER_REVO:
case VehicleConfigurationSource::CONTROLLER_NANO: case VehicleConfigurationSource::CONTROLLER_NANO:
case VehicleConfigurationSource::CONTROLLER_SPARKY2:
case VehicleConfigurationSource::CONTROLLER_DISCOVERYF4: case VehicleConfigurationSource::CONTROLLER_DISCOVERYF4:
// Reset all ports to their defaults // Reset all ports to their defaults
data.RM_RcvrPort = HwSettings::RM_RCVRPORT_DISABLED; data.RM_RcvrPort = HwSettings::RM_RCVRPORT_DISABLED;
data.RM_FlexiPort = HwSettings::RM_FLEXIPORT_DISABLED; data.RM_FlexiPort = HwSettings::RM_FLEXIPORT_DISABLED;
// Revo uses inbuilt Modem do not set mainport to be active telemetry link for the Revo // Revo/Sparky2 uses inbuilt Modem do not set mainport to be active telemetry link for Revo/Sparky2
if (m_configSource->getControllerType() == VehicleConfigurationSource::CONTROLLER_REVO) { if (m_configSource->getControllerType() == VehicleConfigurationSource::CONTROLLER_REVO
|| m_configSource->getControllerType() == VehicleConfigurationSource::CONTROLLER_SPARKY2) {
data.RM_MainPort = HwSettings::RM_MAINPORT_DISABLED; data.RM_MainPort = HwSettings::RM_MAINPORT_DISABLED;
} else { } else {
data.RM_MainPort = HwSettings::RM_MAINPORT_TELEMETRY; data.RM_MainPort = HwSettings::RM_MAINPORT_TELEMETRY;
@ -207,10 +208,14 @@ void VehicleConfigurationHelper::applyHardwareConfiguration()
data.RM_RcvrPort = HwSettings::RM_RCVRPORT_PPM; data.RM_RcvrPort = HwSettings::RM_RCVRPORT_PPM;
break; break;
case VehicleConfigurationSource::INPUT_SBUS: case VehicleConfigurationSource::INPUT_SBUS:
data.RM_MainPort = HwSettings::RM_MAINPORT_SBUS; if (m_configSource->getControllerType() == VehicleConfigurationSource::CONTROLLER_SPARKY2) {
// We have to set telemetry on flexiport since s.bus needs the mainport on all but Revo. data.RM_RcvrPort = HwSettings::RM_RCVRPORT_SBUS;
if (m_configSource->getControllerType() != VehicleConfigurationSource::CONTROLLER_REVO) { } else {
data.RM_FlexiPort = HwSettings::RM_FLEXIPORT_TELEMETRY; data.RM_MainPort = HwSettings::RM_MAINPORT_SBUS;
// We have to set telemetry on flexport since s.bus needs the mainport on all but Revo.
if (m_configSource->getControllerType() != VehicleConfigurationSource::CONTROLLER_REVO) {
data.RM_FlexiPort = HwSettings::RM_FLEXIPORT_TELEMETRY;
}
} }
break; break;
case VehicleConfigurationSource::INPUT_DSM: case VehicleConfigurationSource::INPUT_DSM:
@ -484,7 +489,8 @@ void VehicleConfigurationHelper::applyActuatorConfiguration()
// Servo always on channel 4 // Servo always on channel 4
data.BankUpdateFreq[0] = escFrequence; data.BankUpdateFreq[0] = escFrequence;
data.BankMode[0] = bankMode; data.BankMode[0] = bankMode;
if (m_configSource->getControllerType() == VehicleConfigurationSource::CONTROLLER_REVO) { if (m_configSource->getControllerType() == VehicleConfigurationSource::CONTROLLER_REVO
|| m_configSource->getControllerType() == VehicleConfigurationSource::CONTROLLER_SPARKY2) {
data.BankUpdateFreq[1] = escFrequence; data.BankUpdateFreq[1] = escFrequence;
data.BankMode[1] = bankMode; data.BankMode[1] = bankMode;
data.BankUpdateFreq[2] = servoFrequence; data.BankUpdateFreq[2] = servoFrequence;
@ -502,7 +508,8 @@ void VehicleConfigurationHelper::applyActuatorConfiguration()
data.BankMode[0] = bankMode; data.BankMode[0] = bankMode;
data.BankUpdateFreq[1] = escFrequence; data.BankUpdateFreq[1] = escFrequence;
data.BankMode[1] = bankMode; data.BankMode[1] = bankMode;
if (m_configSource->getControllerType() == VehicleConfigurationSource::CONTROLLER_REVO) { if (m_configSource->getControllerType() == VehicleConfigurationSource::CONTROLLER_REVO
|| m_configSource->getControllerType() == VehicleConfigurationSource::CONTROLLER_SPARKY2) {
data.BankUpdateFreq[2] = escFrequence; data.BankUpdateFreq[2] = escFrequence;
data.BankMode[2] = bankMode; data.BankMode[2] = bankMode;
} else if (m_configSource->getControllerType() == VehicleConfigurationSource::CONTROLLER_NANO) { } else if (m_configSource->getControllerType() == VehicleConfigurationSource::CONTROLLER_NANO) {
@ -566,7 +573,8 @@ void VehicleConfigurationHelper::applyActuatorConfiguration()
if (i == 1) { if (i == 1) {
data.BankUpdateFreq[i] = escFrequence; data.BankUpdateFreq[i] = escFrequence;
} }
} else if (m_configSource->getControllerType() == VehicleConfigurationSource::CONTROLLER_REVO) { } else if (m_configSource->getControllerType() == VehicleConfigurationSource::CONTROLLER_REVO
|| m_configSource->getControllerType() == VehicleConfigurationSource::CONTROLLER_SPARKY2) {
// Motor output4, bank3 // Motor output4, bank3
if (i == 2) { if (i == 2) {
data.BankUpdateFreq[i] = escFrequence; data.BankUpdateFreq[i] = escFrequence;
@ -611,7 +619,8 @@ void VehicleConfigurationHelper::applyActuatorConfiguration()
if (i == 1) { if (i == 1) {
data.BankUpdateFreq[i] = escFrequence; data.BankUpdateFreq[i] = escFrequence;
} }
} else if (m_configSource->getControllerType() == VehicleConfigurationSource::CONTROLLER_REVO) { } else if (m_configSource->getControllerType() == VehicleConfigurationSource::CONTROLLER_REVO
|| m_configSource->getControllerType() == VehicleConfigurationSource::CONTROLLER_SPARKY2) {
// Motor output4, bank3 // Motor output4, bank3
if (i == 1) { if (i == 1) {
data.BankUpdateFreq[i] = escFrequence; data.BankUpdateFreq[i] = escFrequence;
@ -718,6 +727,7 @@ void VehicleConfigurationHelper::applySensorBiasConfiguration()
} }
case VehicleConfigurationSource::CONTROLLER_REVO: case VehicleConfigurationSource::CONTROLLER_REVO:
case VehicleConfigurationSource::CONTROLLER_NANO: case VehicleConfigurationSource::CONTROLLER_NANO:
case VehicleConfigurationSource::CONTROLLER_SPARKY2:
{ {
RevoCalibration *revolutionCalibration = RevoCalibration::GetInstance(m_uavoManager); RevoCalibration *revolutionCalibration = RevoCalibration::GetInstance(m_uavoManager);
Q_ASSERT(revolutionCalibration); Q_ASSERT(revolutionCalibration);

View File

@ -57,7 +57,7 @@ class VehicleConfigurationSource {
public: public:
VehicleConfigurationSource(); VehicleConfigurationSource();
enum CONTROLLER_TYPE { CONTROLLER_UNKNOWN, CONTROLLER_CC, CONTROLLER_CC3D, CONTROLLER_REVO, CONTROLLER_NANO, CONTROLLER_OPLINK, CONTROLLER_DISCOVERYF4 }; enum CONTROLLER_TYPE { CONTROLLER_UNKNOWN, CONTROLLER_CC, CONTROLLER_CC3D, CONTROLLER_REVO, CONTROLLER_NANO, CONTROLLER_SPARKY2, CONTROLLER_OPLINK, CONTROLLER_DISCOVERYF4 };
enum VEHICLE_TYPE { VEHICLE_UNKNOWN, VEHICLE_MULTI, VEHICLE_FIXEDWING, VEHICLE_HELI, VEHICLE_SURFACE }; enum VEHICLE_TYPE { VEHICLE_UNKNOWN, VEHICLE_MULTI, VEHICLE_FIXEDWING, VEHICLE_HELI, VEHICLE_SURFACE };
enum VEHICLE_SUB_TYPE { MULTI_ROTOR_UNKNOWN, MULTI_ROTOR_TRI_Y, MULTI_ROTOR_QUAD_X, MULTI_ROTOR_QUAD_PLUS, MULTI_ROTOR_QUAD_H, enum VEHICLE_SUB_TYPE { MULTI_ROTOR_UNKNOWN, MULTI_ROTOR_TRI_Y, MULTI_ROTOR_QUAD_X, MULTI_ROTOR_QUAD_PLUS, MULTI_ROTOR_QUAD_H,
MULTI_ROTOR_HEXA, MULTI_ROTOR_HEXA_H, MULTI_ROTOR_HEXA_X, MULTI_ROTOR_HEXA_COAX_Y, MULTI_ROTOR_OCTO, MULTI_ROTOR_HEXA, MULTI_ROTOR_HEXA_H, MULTI_ROTOR_HEXA_X, MULTI_ROTOR_HEXA_COAX_Y, MULTI_ROTOR_OCTO,

View File

@ -247,6 +247,11 @@
<string>Nano</string> <string>Nano</string>
</property> </property>
</item> </item>
<item>
<property name="text">
<string>Sparky2</string>
</property>
</item>
</widget> </widget>
</item> </item>
<item row="1" column="0"> <item row="1" column="0">

View File

@ -59,6 +59,10 @@ public:
// Nano // Nano
return QString("RevoNano"); return QString("RevoNano");
case 0x0b01:
// Sparky 2.0
return QString("Sparky2");
default: default:
return QString(""); return QString("");

View File

@ -2,7 +2,8 @@
****************************************************************************** ******************************************************************************
* *
* @file devicewidget.cpp * @file devicewidget.cpp
* @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010. * @author The LibrePilot Project, http://www.librepilot.org Copyright (C) 2015.
* The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010.
* @addtogroup GCSPlugins GCS Plugins * @addtogroup GCSPlugins GCS Plugins
* @{ * @{
* @addtogroup Uploader Serial and USB Uploader Plugin * @addtogroup Uploader Serial and USB Uploader Plugin
@ -108,6 +109,9 @@ void DeviceWidget::populate()
case 0x0905: case 0x0905:
devicePic.load(":/uploader/images/gcs-board-nano.png"); devicePic.load(":/uploader/images/gcs-board-nano.png");
break; break;
case 0x0b01:
devicePic.load(":/uploader/images/gcs-board-sparky2.png");
break;
default: default:
// Clear // Clear
devicePic.load(""); devicePic.load("");

File diff suppressed because one or more lines are too long

View File

@ -2,7 +2,8 @@
****************************************************************************** ******************************************************************************
* *
* @file runningdevicewidget.cpp * @file runningdevicewidget.cpp
* @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010. * @author The LibrePilot Project, http://www.librepilot.org Copyright (C) 2015.
* The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010.
* @addtogroup GCSPlugins GCS Plugins * @addtogroup GCSPlugins GCS Plugins
* @{ * @{
* @addtogroup Uploader Serial and USB Uploader Plugin * @addtogroup Uploader Serial and USB Uploader Plugin
@ -91,6 +92,9 @@ void RunningDeviceWidget::populate()
case 0x0905: case 0x0905:
devicePic.load(":/uploader/images/gcs-board-nano.png"); devicePic.load(":/uploader/images/gcs-board-nano.png");
break; break;
case 0x0b01:
devicePic.load(":/uploader/images/gcs-board-sparky2.png");
break;
default: default:
// Clear // Clear
devicePic.load(""); devicePic.load("");

View File

@ -19,5 +19,6 @@
<file>images/gcs-board-oplink.png</file> <file>images/gcs-board-oplink.png</file>
<file>images/gcs-board-revo.png</file> <file>images/gcs-board-revo.png</file>
<file>images/gcs-board-nano.png</file> <file>images/gcs-board-nano.png</file>
<file>images/gcs-board-sparky2.png</file>
</qresource> </qresource>
</RCC> </RCC>

View File

@ -773,6 +773,9 @@ bool UploaderGadgetWidget::autoUpdate(bool erase)
case 0x905: case 0x905:
filename = "fw_revonano"; filename = "fw_revonano";
break; break;
case 0xb01:
filename = "fw_sparky2";
break;
default: default:
emit progressUpdate(FAILURE, QVariant(tr("Unknown board id '0x%1'").arg(QString::number(m_dfu->devices[0].ID, 16)))); emit progressUpdate(FAILURE, QVariant(tr("Unknown board id '0x%1'").arg(QString::number(m_dfu->devices[0].ID, 16))));
emit autoUpdateFailed(); emit autoUpdateFailed();