diff --git a/ground/openpilotgcs/src/plugins/setupwizard/pages/autoupdatepage.cpp b/ground/openpilotgcs/src/plugins/setupwizard/pages/autoupdatepage.cpp index f950c7ee5..c3ee3c59b 100644 --- a/ground/openpilotgcs/src/plugins/setupwizard/pages/autoupdatepage.cpp +++ b/ground/openpilotgcs/src/plugins/setupwizard/pages/autoupdatepage.cpp @@ -13,6 +13,8 @@ AutoUpdatePage::AutoUpdatePage(SetupWizard *wizard, QWidget *parent) : ui->setupUi(this); ExtensionSystem::PluginManager *pm=ExtensionSystem::PluginManager::instance(); UploaderGadgetFactory * uploader=pm->getObject(); + if(!uploader->isAutoUpdateCapable()) + wizard->next();//FIXME DOESN'T WORK connect(ui->startUpdate,SIGNAL(clicked()),uploader,SIGNAL(autoUpdate())); connect(uploader,SIGNAL(autoUpdateSignal(uploader::AutoUpdateStep,QVariant)),this,SLOT(updateStatus(uploader::AutoUpdateStep,QVariant))); } diff --git a/ground/openpilotgcs/src/plugins/uploader/firmware/fw_coptercontrol.opfw b/ground/openpilotgcs/src/plugins/uploader/firmware/fw_coptercontrol.opfw deleted file mode 100644 index e4c292723..000000000 Binary files a/ground/openpilotgcs/src/plugins/uploader/firmware/fw_coptercontrol.opfw and /dev/null differ diff --git a/ground/openpilotgcs/src/plugins/uploader/uploader.pro b/ground/openpilotgcs/src/plugins/uploader/uploader.pro index 4b2a2c46d..77a85e038 100755 --- a/ground/openpilotgcs/src/plugins/uploader/uploader.pro +++ b/ground/openpilotgcs/src/plugins/uploader/uploader.pro @@ -43,6 +43,6 @@ FORMS += \ RESOURCES += \ uploader.qrc -exists( ../../../../build/ground/opfw_resource/opfw_resource.qrc ) { - \ ../../../../build/ground/opfw_resource/opfw_resource.qrc +exists( ../../../../../build/ground/opfw_resource/opfw_resource.qrc ) { +RESOURCES += ../../../../build/ground/opfw_resource/opfw_resource.qrc } diff --git a/ground/openpilotgcs/src/plugins/uploader/uploader.qrc b/ground/openpilotgcs/src/plugins/uploader/uploader.qrc index 8b4982c49..2c21df666 100644 --- a/ground/openpilotgcs/src/plugins/uploader/uploader.qrc +++ b/ground/openpilotgcs/src/plugins/uploader/uploader.qrc @@ -17,7 +17,4 @@ images/gcs-board-cc3d.png images/pipx.png - - firmware/fw_coptercontrol.opfw - diff --git a/ground/openpilotgcs/src/plugins/uploader/uploadergadgetfactory.cpp b/ground/openpilotgcs/src/plugins/uploader/uploadergadgetfactory.cpp index a42b16102..a9da79d86 100755 --- a/ground/openpilotgcs/src/plugins/uploader/uploadergadgetfactory.cpp +++ b/ground/openpilotgcs/src/plugins/uploader/uploadergadgetfactory.cpp @@ -33,7 +33,7 @@ #include "uploadergadgetwidget.h" UploaderGadgetFactory::UploaderGadgetFactory(QObject *parent) : - IUAVGadgetFactory(QString("Uploader"), tr("Uploader"), parent) + IUAVGadgetFactory(QString("Uploader"), tr("Uploader"), parent),isautocapable(false) { } @@ -44,6 +44,7 @@ UploaderGadgetFactory::~UploaderGadgetFactory() Core::IUAVGadget* UploaderGadgetFactory::createGadget(QWidget *parent) { UploaderGadgetWidget* gadgetWidget = new UploaderGadgetWidget(parent); + isautocapable=gadgetWidget->autoUpdateCapable(); connect(this,SIGNAL(autoUpdate()),gadgetWidget,SLOT(autoUpdate())); connect(gadgetWidget,SIGNAL(autoUpdateSignal(uploader::AutoUpdateStep,QVariant)),this,SIGNAL(autoUpdateSignal(uploader::AutoUpdateStep,QVariant))); return new UploaderGadget(QString("Uploader"), gadgetWidget, parent); @@ -53,4 +54,7 @@ IUAVGadgetConfiguration *UploaderGadgetFactory::createConfiguration(QSettings* q { return new UploaderGadgetConfiguration(QString("Uploader"), qSettings); } - +bool UploaderGadgetFactory::isAutoUpdateCapable() +{ + return isautocapable; +} diff --git a/ground/openpilotgcs/src/plugins/uploader/uploadergadgetfactory.h b/ground/openpilotgcs/src/plugins/uploader/uploadergadgetfactory.h index 9a9edd821..05fc83029 100755 --- a/ground/openpilotgcs/src/plugins/uploader/uploadergadgetfactory.h +++ b/ground/openpilotgcs/src/plugins/uploader/uploadergadgetfactory.h @@ -47,6 +47,9 @@ public: Core::IUAVGadget *createGadget(QWidget *parent); IUAVGadgetConfiguration *createConfiguration(QSettings* qSettings); + bool isAutoUpdateCapable(); +private: + bool isautocapable; signals: void autoUpdateSignal(uploader::AutoUpdateStep,QVariant); void autoUpdate(); diff --git a/ground/openpilotgcs/src/plugins/uploader/uploadergadgetwidget.cpp b/ground/openpilotgcs/src/plugins/uploader/uploadergadgetwidget.cpp index 3760ee984..ca61e1142 100755 --- a/ground/openpilotgcs/src/plugins/uploader/uploadergadgetwidget.cpp +++ b/ground/openpilotgcs/src/plugins/uploader/uploadergadgetwidget.cpp @@ -432,6 +432,11 @@ void UploaderGadgetWidget::commonSystemBoot(bool safeboot) delete dfu; // Frees up the USB/Serial port too dfu = NULL; } +bool UploaderGadgetWidget::autoUpdateCapable() +{ + return QFile::exists(":/build/fw_coptercontrol/fw_coptercontrol.opfw"); +} + bool UploaderGadgetWidget::autoUpdate() { Core::ConnectionManager *cm = Core::ICore::instance()->connectionManager(); @@ -495,18 +500,23 @@ bool UploaderGadgetWidget::autoUpdate() switch (dfu->devices[0].ID) { case 0x401: - filename="fw_coptercontrol.opfw"; + filename="fw_coptercontrol"; break; case 0x402: - filename="fw_coptercontrol.opfw"; + filename="fw_coptercontrol"; break; default: emit autoUpdateSignal(FAILURE,QVariant()); return false; break; } - filename=":/firmware/firmware/"+filename; + filename=":/build/"+filename+"/"+filename+".opfw"; QByteArray firmware; + if(!QFile::exists(filename)) + { + emit autoUpdateSignal(FAILURE,QVariant()); + return false; + } QFile file(filename); if (!file.open(QIODevice::ReadOnly)) { emit autoUpdateSignal(FAILURE,QVariant()); diff --git a/ground/openpilotgcs/src/plugins/uploader/uploadergadgetwidget.h b/ground/openpilotgcs/src/plugins/uploader/uploadergadgetwidget.h index 5b3fc8d3a..67b988a38 100755 --- a/ground/openpilotgcs/src/plugins/uploader/uploadergadgetwidget.h +++ b/ground/openpilotgcs/src/plugins/uploader/uploadergadgetwidget.h @@ -70,7 +70,7 @@ public: UploaderGadgetWidget(QWidget *parent = 0); ~UploaderGadgetWidget(); void log(QString str); - + bool autoUpdateCapable(); public slots: void onAutopilotConnect(); void onAutopilotDisconnect();