18 changed files with 0 additions and 1121 deletions
@ -1,157 +0,0 @@ |
|||||||
//#include <QJsonDocument>
|
|
||||||
#include <QFile> |
|
||||||
|
|
||||||
#include "PX4FirmwareUpgradeWorker.h" |
|
||||||
|
|
||||||
#include <SerialLink.h> |
|
||||||
#include <QGC.h> |
|
||||||
#include "uploader.h" |
|
||||||
|
|
||||||
#include <QDebug> |
|
||||||
|
|
||||||
#define PROTO_GET_SYNC 0x21 |
|
||||||
#define PROTO_EOC 0x20 |
|
||||||
#define PROTO_NOP 0x00 |
|
||||||
#define PROTO_OK 0x10 |
|
||||||
#define PROTO_FAILED 0x11 |
|
||||||
#define PROTO_INSYNC 0x12 |
|
||||||
|
|
||||||
PX4FirmwareUpgradeWorker::PX4FirmwareUpgradeWorker(QObject *parent) : |
|
||||||
QObject(parent), |
|
||||||
link(NULL) |
|
||||||
{ |
|
||||||
} |
|
||||||
|
|
||||||
PX4FirmwareUpgradeWorker* PX4FirmwareUpgradeWorker::putWorkerInThread(QObject *parent) |
|
||||||
{ |
|
||||||
PX4FirmwareUpgradeWorker *worker = new PX4FirmwareUpgradeWorker; |
|
||||||
QThread *workerThread = new QThread(parent); |
|
||||||
|
|
||||||
connect(workerThread, SIGNAL(started()), worker, SLOT(startContinousScan())); |
|
||||||
connect(workerThread, SIGNAL(finished()), worker, SLOT(deleteLater())); |
|
||||||
worker->moveToThread(workerThread); |
|
||||||
|
|
||||||
// Starts an event loop, and emits workerThread->started()
|
|
||||||
workerThread->start(); |
|
||||||
return worker; |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
void PX4FirmwareUpgradeWorker::startContinousScan() |
|
||||||
{ |
|
||||||
exitThread = false; |
|
||||||
while (!exitThread) { |
|
||||||
// if (detect()) {
|
|
||||||
// break;
|
|
||||||
// }
|
|
||||||
QGC::SLEEP::msleep(20); |
|
||||||
} |
|
||||||
|
|
||||||
if (exitThread) { |
|
||||||
link->disconnect(); |
|
||||||
delete link; |
|
||||||
exit(0); |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
void PX4FirmwareUpgradeWorker::detect() |
|
||||||
{ |
|
||||||
if (!link) |
|
||||||
{ |
|
||||||
link = new SerialLink("", 921600); |
|
||||||
connect(link, SIGNAL(bytesReceived(LinkInterface*,QByteArray)), this, SLOT(receiveBytes(LinkInterface*,QByteArray))); |
|
||||||
} |
|
||||||
|
|
||||||
// Get a list of ports
|
|
||||||
QVector<QString>* ports = link->getCurrentPorts(); |
|
||||||
|
|
||||||
// Scan
|
|
||||||
for (int i = 0; i < ports->size(); i++) |
|
||||||
{ |
|
||||||
// Ignore known wrong link names
|
|
||||||
|
|
||||||
if (ports->at(i).contains("Bluetooth")) { |
|
||||||
//continue;
|
|
||||||
} |
|
||||||
|
|
||||||
link->setPortName(ports->at(i)); |
|
||||||
// Open port and talk to it
|
|
||||||
link->connect(); |
|
||||||
char buf[2] = { PROTO_GET_SYNC, PROTO_EOC }; |
|
||||||
if (!link->isConnected()) { |
|
||||||
continue; |
|
||||||
} |
|
||||||
// Send sync request
|
|
||||||
insync = false; |
|
||||||
link->writeBytes(buf, 2); |
|
||||||
// Wait for response
|
|
||||||
QGC::SLEEP::msleep(20); |
|
||||||
|
|
||||||
if (insync) |
|
||||||
emit validPortFound(ports->at(i)); |
|
||||||
break; |
|
||||||
} |
|
||||||
|
|
||||||
//ui.portName->setCurrentIndex(ui.baudRate->findText(QString("%1").arg(this->link->getPortName())));
|
|
||||||
|
|
||||||
// Set port
|
|
||||||
|
|
||||||
// Load current link config
|
|
||||||
|
|
||||||
} |
|
||||||
|
|
||||||
void PX4FirmwareUpgradeWorker::receiveBytes(LinkInterface* link, QByteArray b) |
|
||||||
{ |
|
||||||
for (int position = 0; position < b.size(); position++) { |
|
||||||
qDebug() << "BYTES"; |
|
||||||
qDebug() << (char)(b[position]); |
|
||||||
if (((const char)b[position]) == PROTO_INSYNC) |
|
||||||
{ |
|
||||||
qDebug() << "SYNC"; |
|
||||||
insync = true; |
|
||||||
} |
|
||||||
|
|
||||||
if (insync && ((const char)b[position]) == PROTO_OK) |
|
||||||
{ |
|
||||||
emit detectionStatusChanged("Found PX4 board"); |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
printf("\n"); |
|
||||||
} |
|
||||||
|
|
||||||
void PX4FirmwareUpgradeWorker::loadFirmware(const QString &filename) |
|
||||||
{ |
|
||||||
qDebug() << __FILE__ << __LINE__ << "LOADING FW" << filename; |
|
||||||
|
|
||||||
PX4_Uploader uploader; |
|
||||||
const char* filenames[2]; |
|
||||||
filenames[0] = filename.toStdString().c_str(); |
|
||||||
filenames[1] = NULL; |
|
||||||
uploader.upload(filenames, "/dev/tty.usbmodem1"); |
|
||||||
|
|
||||||
// QFile f(filename);
|
|
||||||
// if (f.open(QIODevice::ReadOnly))
|
|
||||||
// {
|
|
||||||
// QByteArray buf = f.readAll();
|
|
||||||
// f.close();
|
|
||||||
// firmware = QJsonDocument::fromBinaryData(buf);
|
|
||||||
// if (firmware.isNull()) {
|
|
||||||
// emit upgradeStatusChanged(tr("Failed decoding file %1").arg(filename));
|
|
||||||
// } else {
|
|
||||||
// emit upgradeStatusChanged(tr("Ready to flash %1").arg(filename));
|
|
||||||
// }
|
|
||||||
// } else {
|
|
||||||
// emit upgradeStatusChanged(tr("Failed opening file %1").arg(filename));
|
|
||||||
// }
|
|
||||||
} |
|
||||||
|
|
||||||
void PX4FirmwareUpgradeWorker::upgrade() |
|
||||||
{ |
|
||||||
emit upgradeStatusChanged(tr("Starting firmware upgrade..")); |
|
||||||
} |
|
||||||
|
|
||||||
void PX4FirmwareUpgradeWorker::abort() |
|
||||||
{ |
|
||||||
exitThread = true; |
|
||||||
} |
|
@ -1,73 +0,0 @@ |
|||||||
#ifndef PX4FIRMWAREUPGRADEWORKER_H |
|
||||||
#define PX4FIRMWAREUPGRADEWORKER_H |
|
||||||
|
|
||||||
#include <QObject> |
|
||||||
//#include <QJsonDocument>
|
|
||||||
|
|
||||||
#include <SerialLink.h> |
|
||||||
|
|
||||||
class PX4FirmwareUpgradeWorker : public QObject |
|
||||||
{ |
|
||||||
Q_OBJECT |
|
||||||
public: |
|
||||||
explicit PX4FirmwareUpgradeWorker(QObject *parent = 0); |
|
||||||
static PX4FirmwareUpgradeWorker* putWorkerInThread(QObject *parent); |
|
||||||
|
|
||||||
signals: |
|
||||||
void detectionStatusChanged(const QString& status); |
|
||||||
void upgradeStatusChanged(const QString& status); |
|
||||||
void upgradeProgressChanged(int percent); |
|
||||||
void validPortFound(const QString& portName); |
|
||||||
|
|
||||||
public slots: |
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief Continously scan for bootloaders |
|
||||||
* @return |
|
||||||
*/ |
|
||||||
void startContinousScan(); |
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief Detect connected PX4 bootloaders |
|
||||||
* |
|
||||||
* If a bootloader was found, the link will be opened to this |
|
||||||
* bootloader and ready for flashing when returning from the call. |
|
||||||
* |
|
||||||
* @return true if found on one link, false else |
|
||||||
*/ |
|
||||||
void detect(); |
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief Upgrade the firmware using the currently connected link |
|
||||||
* @param filename file name / path of the firmware file |
|
||||||
*/ |
|
||||||
void upgrade(); |
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief Load firmware from disk into memory |
|
||||||
* @param filename |
|
||||||
*/ |
|
||||||
void loadFirmware(const QString &filename); |
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief Receive bytes from a link |
|
||||||
* @param link |
|
||||||
* @param b |
|
||||||
*/ |
|
||||||
void receiveBytes(LinkInterface* link, QByteArray b); |
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief Abort upgrade worker |
|
||||||
*/ |
|
||||||
void abort(); |
|
||||||
|
|
||||||
protected: |
|
||||||
bool exitThread; |
|
||||||
|
|
||||||
private: |
|
||||||
SerialLink *link; |
|
||||||
bool insync; |
|
||||||
//QJsonDocument firmware;
|
|
||||||
}; |
|
||||||
|
|
||||||
#endif // PX4FIRMWAREUPGRADEWORKER_H
|
|
@ -1,65 +0,0 @@ |
|||||||
#include <QFileDialog> |
|
||||||
#include <QStandardPaths> |
|
||||||
#include <QSettings> |
|
||||||
|
|
||||||
#include "PX4FirmwareUpgrader.h" |
|
||||||
#include "ui_PX4FirmwareUpgrader.h" |
|
||||||
|
|
||||||
#include <QGC.h> |
|
||||||
#include <QDebug> |
|
||||||
|
|
||||||
|
|
||||||
PX4FirmwareUpgrader::PX4FirmwareUpgrader(QWidget *parent) : |
|
||||||
QWidget(parent), |
|
||||||
ui(new Ui::PX4FirmwareUpgrader) |
|
||||||
{ |
|
||||||
ui->setupUi(this); |
|
||||||
|
|
||||||
connect(ui->selectFileButton, SIGNAL(clicked()), this, SLOT(selectFirmwareFile())); |
|
||||||
connect(ui->flashButton, SIGNAL(clicked()), this, SIGNAL(upgrade())); |
|
||||||
} |
|
||||||
|
|
||||||
PX4FirmwareUpgrader::~PX4FirmwareUpgrader() |
|
||||||
{ |
|
||||||
delete ui; |
|
||||||
} |
|
||||||
|
|
||||||
void PX4FirmwareUpgrader::selectFirmwareFile() |
|
||||||
{ |
|
||||||
QSettings settings; |
|
||||||
QString path = settings.value("PX4_FIRMWARE_PATH", |
|
||||||
QStandardPaths::writableLocation(QStandardPaths::DesktopLocation)).toString(); |
|
||||||
const QString widgetFileExtension(".px4"); |
|
||||||
QString fileName = QFileDialog::getOpenFileName(this, tr("Specify File Name"), |
|
||||||
path, |
|
||||||
tr("PX4 Firmware (*%1);;").arg(widgetFileExtension)); |
|
||||||
settings.setValue("PX4_FIRMWARE_PATH", fileName); |
|
||||||
qDebug() << "EMITTING SIGNAL"; |
|
||||||
emit firmwareFileNameSet(fileName); |
|
||||||
} |
|
||||||
|
|
||||||
void PX4FirmwareUpgrader::setDetectionStatusText(const QString &text) |
|
||||||
{ |
|
||||||
ui->detectionStatusLabel->setText(text); |
|
||||||
} |
|
||||||
|
|
||||||
void PX4FirmwareUpgrader::setFlashStatusText(const QString &text) |
|
||||||
{ |
|
||||||
ui->flashProgressLabel->setText(text); |
|
||||||
qDebug() << __FILE__ << __LINE__ << "LABEL" << text; |
|
||||||
} |
|
||||||
|
|
||||||
void PX4FirmwareUpgrader::setFlashProgress(int percent) |
|
||||||
{ |
|
||||||
ui->flashProgressBar->setValue(percent); |
|
||||||
} |
|
||||||
|
|
||||||
void PX4FirmwareUpgrader::setPortName(const QString &portname) |
|
||||||
{ |
|
||||||
// Prepend newly found port to the list
|
|
||||||
if (ui->serialPortComboBox->findText(portname) == -1) |
|
||||||
{ |
|
||||||
ui->serialPortComboBox->insertItem(0, portname); |
|
||||||
ui->serialPortComboBox->setEditText(portname); |
|
||||||
} |
|
||||||
} |
|
@ -1,41 +0,0 @@ |
|||||||
#ifndef PX4FIRMWAREUPGRADER_H |
|
||||||
#define PX4FIRMWAREUPGRADER_H |
|
||||||
|
|
||||||
#include <QWidget> |
|
||||||
#include <QTimer> |
|
||||||
|
|
||||||
#include <SerialLink.h> |
|
||||||
|
|
||||||
namespace Ui { |
|
||||||
class PX4FirmwareUpgrader; |
|
||||||
} |
|
||||||
|
|
||||||
class PX4FirmwareUpgrader : public QWidget |
|
||||||
{ |
|
||||||
Q_OBJECT |
|
||||||
|
|
||||||
public: |
|
||||||
PX4FirmwareUpgrader(QWidget *parent = 0); |
|
||||||
~PX4FirmwareUpgrader(); |
|
||||||
|
|
||||||
public slots: |
|
||||||
|
|
||||||
void setDetectionStatusText(const QString &text); |
|
||||||
|
|
||||||
void setFlashStatusText(const QString &text); |
|
||||||
|
|
||||||
void setFlashProgress(int percent); |
|
||||||
|
|
||||||
void selectFirmwareFile(); |
|
||||||
|
|
||||||
void setPortName(const QString &portname); |
|
||||||
|
|
||||||
signals: |
|
||||||
void firmwareFileNameSet(const QString &fileName); |
|
||||||
void upgrade(); |
|
||||||
|
|
||||||
private: |
|
||||||
Ui::PX4FirmwareUpgrader *ui; |
|
||||||
}; |
|
||||||
|
|
||||||
#endif // PX4FIRMWAREUPGRADER_H
|
|
@ -1,96 +0,0 @@ |
|||||||
<?xml version="1.0" encoding="UTF-8"?> |
|
||||||
<ui version="4.0"> |
|
||||||
<class>PX4FirmwareUpgrader</class> |
|
||||||
<widget class="QWidget" name="PX4FirmwareUpgrader"> |
|
||||||
<property name="geometry"> |
|
||||||
<rect> |
|
||||||
<x>0</x> |
|
||||||
<y>0</y> |
|
||||||
<width>428</width> |
|
||||||
<height>331</height> |
|
||||||
</rect> |
|
||||||
</property> |
|
||||||
<property name="windowTitle"> |
|
||||||
<string>Form</string> |
|
||||||
</property> |
|
||||||
<layout class="QGridLayout" name="gridLayout"> |
|
||||||
<item row="3" column="0" colspan="3"> |
|
||||||
<widget class="QTextBrowser" name="descriptionTextBrowser"/> |
|
||||||
</item> |
|
||||||
<item row="4" column="0" colspan="3"> |
|
||||||
<widget class="QProgressBar" name="flashProgressBar"> |
|
||||||
<property name="value"> |
|
||||||
<number>24</number> |
|
||||||
</property> |
|
||||||
</widget> |
|
||||||
</item> |
|
||||||
<item row="5" column="0" colspan="2"> |
|
||||||
<widget class="QLabel" name="flashProgressLabel"> |
|
||||||
<property name="text"> |
|
||||||
<string>No update in progress.</string> |
|
||||||
</property> |
|
||||||
</widget> |
|
||||||
</item> |
|
||||||
<item row="2" column="0"> |
|
||||||
<widget class="QComboBox" name="versionComboBox"/> |
|
||||||
</item> |
|
||||||
<item row="2" column="2"> |
|
||||||
<widget class="QPushButton" name="selectFileButton"> |
|
||||||
<property name="text"> |
|
||||||
<string>Select File..</string> |
|
||||||
</property> |
|
||||||
</widget> |
|
||||||
</item> |
|
||||||
<item row="2" column="1"> |
|
||||||
<widget class="QPushButton" name="versionButton"> |
|
||||||
<property name="text"> |
|
||||||
<string>Check Online</string> |
|
||||||
</property> |
|
||||||
</widget> |
|
||||||
</item> |
|
||||||
<item row="1" column="2"> |
|
||||||
<widget class="QPushButton" name="serialPortButton"> |
|
||||||
<property name="enabled"> |
|
||||||
<bool>false</bool> |
|
||||||
</property> |
|
||||||
<property name="text"> |
|
||||||
<string>Set Serial Port</string> |
|
||||||
</property> |
|
||||||
</widget> |
|
||||||
</item> |
|
||||||
<item row="5" column="2"> |
|
||||||
<widget class="QPushButton" name="flashButton"> |
|
||||||
<property name="text"> |
|
||||||
<string>Flash Firmware</string> |
|
||||||
</property> |
|
||||||
</widget> |
|
||||||
</item> |
|
||||||
<item row="0" column="0" colspan="2"> |
|
||||||
<widget class="QLabel" name="detectionStatusLabel"> |
|
||||||
<property name="text"> |
|
||||||
<string>No PX4 board detected..</string> |
|
||||||
</property> |
|
||||||
</widget> |
|
||||||
</item> |
|
||||||
<item row="1" column="1"> |
|
||||||
<widget class="QCheckBox" name="detectionAutoCheckBox"> |
|
||||||
<property name="text"> |
|
||||||
<string>Auto Detect Port</string> |
|
||||||
</property> |
|
||||||
<property name="checked"> |
|
||||||
<bool>true</bool> |
|
||||||
</property> |
|
||||||
</widget> |
|
||||||
</item> |
|
||||||
<item row="1" column="0"> |
|
||||||
<widget class="QComboBox" name="serialPortComboBox"> |
|
||||||
<property name="editable"> |
|
||||||
<bool>true</bool> |
|
||||||
</property> |
|
||||||
</widget> |
|
||||||
</item> |
|
||||||
</layout> |
|
||||||
</widget> |
|
||||||
<resources/> |
|
||||||
<connections/> |
|
||||||
</ui> |
|
@ -1,56 +0,0 @@ |
|||||||
/*=====================================================================
|
|
||||||
|
|
||||||
QGroundControl Open Source Ground Control Station |
|
||||||
|
|
||||||
(c) 2009, 2010 QGROUNDCONTROL PROJECT <http://www.qgroundcontrol.org>
|
|
||||||
|
|
||||||
This file is part of the QGROUNDCONTROL project |
|
||||||
|
|
||||||
QGROUNDCONTROL is free software: you can redistribute it and/or modify |
|
||||||
it under the terms of the GNU General Public License as published by |
|
||||||
the Free Software Foundation, either version 3 of the License, or |
|
||||||
(at your option) any later version. |
|
||||||
|
|
||||||
QGROUNDCONTROL is distributed in the hope that it will be useful, |
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
||||||
GNU General Public License for more details. |
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License |
|
||||||
along with QGROUNDCONTROL. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
|
|
||||||
======================================================================*/ |
|
||||||
|
|
||||||
/**
|
|
||||||
* @file |
|
||||||
* @brief Implementation of QGCFirmwareUpdate |
|
||||||
* @author Lorenz Meier <mavteam@student.ethz.ch> |
|
||||||
* |
|
||||||
*/ |
|
||||||
|
|
||||||
#include "QGCFirmwareUpdate.h" |
|
||||||
#include "ui_QGCFirmwareUpdate.h" |
|
||||||
|
|
||||||
QGCFirmwareUpdate::QGCFirmwareUpdate(QWidget *parent) : |
|
||||||
QWidget(parent), |
|
||||||
ui(new Ui::QGCFirmwareUpdate) |
|
||||||
{ |
|
||||||
ui->setupUi(this); |
|
||||||
} |
|
||||||
|
|
||||||
QGCFirmwareUpdate::~QGCFirmwareUpdate() |
|
||||||
{ |
|
||||||
delete ui; |
|
||||||
} |
|
||||||
|
|
||||||
void QGCFirmwareUpdate::changeEvent(QEvent *e) |
|
||||||
{ |
|
||||||
QWidget::changeEvent(e); |
|
||||||
switch (e->type()) { |
|
||||||
case QEvent::LanguageChange: |
|
||||||
ui->retranslateUi(this); |
|
||||||
break; |
|
||||||
default: |
|
||||||
break; |
|
||||||
} |
|
||||||
} |
|
@ -1,39 +0,0 @@ |
|||||||
#ifndef QGCFIRMWAREUPDATE_H |
|
||||||
#define QGCFIRMWAREUPDATE_H |
|
||||||
|
|
||||||
#include <QWidget> |
|
||||||
|
|
||||||
namespace Ui |
|
||||||
{ |
|
||||||
class QGCFirmwareUpdate; |
|
||||||
} |
|
||||||
|
|
||||||
class QGCFirmwareUpdate : public QWidget |
|
||||||
{ |
|
||||||
Q_OBJECT |
|
||||||
public: |
|
||||||
QGCFirmwareUpdate(QWidget *parent = 0); |
|
||||||
~QGCFirmwareUpdate(); |
|
||||||
|
|
||||||
protected: |
|
||||||
void changeEvent(QEvent *e); |
|
||||||
void showEvent(QShowEvent* event) |
|
||||||
{ |
|
||||||
QWidget::showEvent(event); |
|
||||||
emit visibilityChanged(true); |
|
||||||
} |
|
||||||
|
|
||||||
void hideEvent(QHideEvent* event) |
|
||||||
{ |
|
||||||
QWidget::hideEvent(event); |
|
||||||
emit visibilityChanged(false); |
|
||||||
} |
|
||||||
|
|
||||||
private: |
|
||||||
Ui::QGCFirmwareUpdate *ui; |
|
||||||
|
|
||||||
signals: |
|
||||||
void visibilityChanged(bool visible); |
|
||||||
}; |
|
||||||
|
|
||||||
#endif // QGCFIRMWAREUPDATE_H
|
|
@ -1,27 +0,0 @@ |
|||||||
<?xml version="1.0" encoding="UTF-8"?> |
|
||||||
<ui version="4.0"> |
|
||||||
<class>QGCFirmwareUpdate</class> |
|
||||||
<widget class="QWidget" name="QGCFirmwareUpdate"> |
|
||||||
<property name="geometry"> |
|
||||||
<rect> |
|
||||||
<x>0</x> |
|
||||||
<y>0</y> |
|
||||||
<width>596</width> |
|
||||||
<height>343</height> |
|
||||||
</rect> |
|
||||||
</property> |
|
||||||
<property name="windowTitle"> |
|
||||||
<string>Form</string> |
|
||||||
</property> |
|
||||||
<layout class="QGridLayout" name="gridLayout"> |
|
||||||
<item row="0" column="0"> |
|
||||||
<widget class="QComboBox" name="autopilotComboBox"/> |
|
||||||
</item> |
|
||||||
<item row="1" column="0"> |
|
||||||
<widget class="QWidget" name="widget" native="true"/> |
|
||||||
</item> |
|
||||||
</layout> |
|
||||||
</widget> |
|
||||||
<resources/> |
|
||||||
<connections/> |
|
||||||
</ui> |
|
@ -1,56 +0,0 @@ |
|||||||
/*=====================================================================
|
|
||||||
|
|
||||||
QGroundControl Open Source Ground Control Station |
|
||||||
|
|
||||||
(c) 2009, 2010 QGROUNDCONTROL PROJECT <http://www.qgroundcontrol.org>
|
|
||||||
|
|
||||||
This file is part of the QGROUNDCONTROL project |
|
||||||
|
|
||||||
QGROUNDCONTROL is free software: you can redistribute it and/or modify |
|
||||||
it under the terms of the GNU General Public License as published by |
|
||||||
the Free Software Foundation, either version 3 of the License, or |
|
||||||
(at your option) any later version. |
|
||||||
|
|
||||||
QGROUNDCONTROL is distributed in the hope that it will be useful, |
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
||||||
GNU General Public License for more details. |
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License |
|
||||||
along with QGROUNDCONTROL. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
|
|
||||||
======================================================================*/ |
|
||||||
|
|
||||||
/**
|
|
||||||
* @file |
|
||||||
* @brief Implementation of QGCPxImuFirmwareUpdate |
|
||||||
* @author Lorenz Meier <mavteam@student.ethz.ch> |
|
||||||
* |
|
||||||
*/ |
|
||||||
|
|
||||||
#include "QGCPxImuFirmwareUpdate.h" |
|
||||||
#include "ui_QGCPxImuFirmwareUpdate.h" |
|
||||||
|
|
||||||
QGCPxImuFirmwareUpdate::QGCPxImuFirmwareUpdate(QWidget *parent) : |
|
||||||
QWidget(parent), |
|
||||||
ui(new Ui::QGCPxImuFirmwareUpdate) |
|
||||||
{ |
|
||||||
ui->setupUi(this); |
|
||||||
} |
|
||||||
|
|
||||||
QGCPxImuFirmwareUpdate::~QGCPxImuFirmwareUpdate() |
|
||||||
{ |
|
||||||
delete ui; |
|
||||||
} |
|
||||||
|
|
||||||
void QGCPxImuFirmwareUpdate::changeEvent(QEvent *e) |
|
||||||
{ |
|
||||||
QWidget::changeEvent(e); |
|
||||||
switch (e->type()) { |
|
||||||
case QEvent::LanguageChange: |
|
||||||
ui->retranslateUi(this); |
|
||||||
break; |
|
||||||
default: |
|
||||||
break; |
|
||||||
} |
|
||||||
} |
|
@ -1,54 +0,0 @@ |
|||||||
/*=====================================================================
|
|
||||||
|
|
||||||
QGroundControl Open Source Ground Control Station |
|
||||||
|
|
||||||
(c) 2009, 2010 QGROUNDCONTROL PROJECT <http://www.qgroundcontrol.org>
|
|
||||||
|
|
||||||
This file is part of the QGROUNDCONTROL project |
|
||||||
|
|
||||||
QGROUNDCONTROL is free software: you can redistribute it and/or modify |
|
||||||
it under the terms of the GNU General Public License as published by |
|
||||||
the Free Software Foundation, either version 3 of the License, or |
|
||||||
(at your option) any later version. |
|
||||||
|
|
||||||
QGROUNDCONTROL is distributed in the hope that it will be useful, |
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
||||||
GNU General Public License for more details. |
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License |
|
||||||
along with QGROUNDCONTROL. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
|
|
||||||
======================================================================*/ |
|
||||||
|
|
||||||
/**
|
|
||||||
* @file |
|
||||||
* @brief Declaration of class QGCPxImuFirmwareUpdate |
|
||||||
* @author Lorenz Meier <mail@qgroundcontrol.org> |
|
||||||
*/ |
|
||||||
|
|
||||||
#ifndef QGCPXIMUFIRMWAREUPDATE_H |
|
||||||
#define QGCPXIMUFIRMWAREUPDATE_H |
|
||||||
|
|
||||||
#include <QWidget> |
|
||||||
|
|
||||||
namespace Ui |
|
||||||
{ |
|
||||||
class QGCPxImuFirmwareUpdate; |
|
||||||
} |
|
||||||
|
|
||||||
class QGCPxImuFirmwareUpdate : public QWidget |
|
||||||
{ |
|
||||||
Q_OBJECT |
|
||||||
public: |
|
||||||
QGCPxImuFirmwareUpdate(QWidget *parent = 0); |
|
||||||
~QGCPxImuFirmwareUpdate(); |
|
||||||
|
|
||||||
protected: |
|
||||||
void changeEvent(QEvent *e); |
|
||||||
|
|
||||||
private: |
|
||||||
Ui::QGCPxImuFirmwareUpdate *ui; |
|
||||||
}; |
|
||||||
|
|
||||||
#endif // QGCPXIMUFIRMWAREUPDATE_H
|
|
@ -1,108 +0,0 @@ |
|||||||
<?xml version="1.0" encoding="UTF-8"?> |
|
||||||
<ui version="4.0"> |
|
||||||
<class>QGCPxImuFirmwareUpdate</class> |
|
||||||
<widget class="QWidget" name="QGCPxImuFirmwareUpdate"> |
|
||||||
<property name="geometry"> |
|
||||||
<rect> |
|
||||||
<x>0</x> |
|
||||||
<y>0</y> |
|
||||||
<width>400</width> |
|
||||||
<height>300</height> |
|
||||||
</rect> |
|
||||||
</property> |
|
||||||
<property name="windowTitle"> |
|
||||||
<string>Form</string> |
|
||||||
</property> |
|
||||||
<layout class="QGridLayout" name="gridLayout"> |
|
||||||
<item row="0" column="0" colspan="5"> |
|
||||||
<widget class="QGroupBox" name="groupBox"> |
|
||||||
<property name="title"> |
|
||||||
<string>Instructions</string> |
|
||||||
</property> |
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout"> |
|
||||||
<property name="margin"> |
|
||||||
<number>2</number> |
|
||||||
</property> |
|
||||||
<item> |
|
||||||
<widget class="QPlainTextEdit" name="plainTextEdit"> |
|
||||||
<property name="plainText"> |
|
||||||
<string><h1>pxIMU Firmware Update</h1> |
|
||||||
|
|
||||||
<li> |
|
||||||
<item>Item 1</item> |
|
||||||
</li> |
|
||||||
</string> |
|
||||||
</property> |
|
||||||
</widget> |
|
||||||
</item> |
|
||||||
</layout> |
|
||||||
</widget> |
|
||||||
</item> |
|
||||||
<item row="1" column="0" colspan="2"> |
|
||||||
<widget class="QRadioButton" name="radioButton"> |
|
||||||
<property name="text"> |
|
||||||
<string>From File</string> |
|
||||||
</property> |
|
||||||
</widget> |
|
||||||
</item> |
|
||||||
<item row="1" column="2" colspan="2"> |
|
||||||
<widget class="QLabel" name="label_3"> |
|
||||||
<property name="text"> |
|
||||||
<string>Choose file..</string> |
|
||||||
</property> |
|
||||||
</widget> |
|
||||||
</item> |
|
||||||
<item row="1" column="4"> |
|
||||||
<widget class="QPushButton" name="pushButton_2"> |
|
||||||
<property name="text"> |
|
||||||
<string>Choose File</string> |
|
||||||
</property> |
|
||||||
</widget> |
|
||||||
</item> |
|
||||||
<item row="2" column="0" colspan="2"> |
|
||||||
<widget class="QRadioButton" name="radioButton_2"> |
|
||||||
<property name="text"> |
|
||||||
<string>From Internet</string> |
|
||||||
</property> |
|
||||||
</widget> |
|
||||||
</item> |
|
||||||
<item row="2" column="2" colspan="2"> |
|
||||||
<widget class="QLabel" name="label_4"> |
|
||||||
<property name="text"> |
|
||||||
<string>Firmware v.0.2.1</string> |
|
||||||
</property> |
|
||||||
</widget> |
|
||||||
</item> |
|
||||||
<item row="2" column="4"> |
|
||||||
<widget class="QPushButton" name="pushButton_3"> |
|
||||||
<property name="text"> |
|
||||||
<string>Download</string> |
|
||||||
</property> |
|
||||||
</widget> |
|
||||||
</item> |
|
||||||
<item row="3" column="0"> |
|
||||||
<widget class="QLabel" name="label"> |
|
||||||
<property name="text"> |
|
||||||
<string/> |
|
||||||
</property> |
|
||||||
</widget> |
|
||||||
</item> |
|
||||||
<item row="3" column="1" colspan="2"> |
|
||||||
<widget class="QLabel" name="label_2"> |
|
||||||
<property name="text"> |
|
||||||
<string>Waiting for first user action</string> |
|
||||||
</property> |
|
||||||
</widget> |
|
||||||
</item> |
|
||||||
<item row="3" column="3" colspan="2"> |
|
||||||
<widget class="QPushButton" name="pushButton"> |
|
||||||
<property name="text"> |
|
||||||
<string>Flash Firmware</string> |
|
||||||
</property> |
|
||||||
</widget> |
|
||||||
</item> |
|
||||||
</layout> |
|
||||||
</widget> |
|
||||||
<resources/> |
|
||||||
<connections/> |
|
||||||
</ui> |
|
@ -1,14 +0,0 @@ |
|||||||
#include "QGCFirmwareUpdateWidget.h" |
|
||||||
#include "ui_QGCFirmwareUpdateWidget.h" |
|
||||||
|
|
||||||
QGCFirmwareUpdateWidget::QGCFirmwareUpdateWidget(QWidget *parent) : |
|
||||||
QWidget(parent), |
|
||||||
ui(new Ui::QGCFirmwareUpdateWidget) |
|
||||||
{ |
|
||||||
ui->setupUi(this); |
|
||||||
} |
|
||||||
|
|
||||||
QGCFirmwareUpdateWidget::~QGCFirmwareUpdateWidget() |
|
||||||
{ |
|
||||||
delete ui; |
|
||||||
} |
|
@ -1,22 +0,0 @@ |
|||||||
#ifndef QGCFIRMWAREUPDATEWIDGET_H |
|
||||||
#define QGCFIRMWAREUPDATEWIDGET_H |
|
||||||
|
|
||||||
#include <QWidget> |
|
||||||
|
|
||||||
namespace Ui { |
|
||||||
class QGCFirmwareUpdateWidget; |
|
||||||
} |
|
||||||
|
|
||||||
class QGCFirmwareUpdateWidget : public QWidget |
|
||||||
{ |
|
||||||
Q_OBJECT |
|
||||||
|
|
||||||
public: |
|
||||||
explicit QGCFirmwareUpdateWidget(QWidget *parent = 0); |
|
||||||
~QGCFirmwareUpdateWidget(); |
|
||||||
|
|
||||||
private: |
|
||||||
Ui::QGCFirmwareUpdateWidget *ui; |
|
||||||
}; |
|
||||||
|
|
||||||
#endif // QGCFIRMWAREUPDATEWIDGET_H
|
|
@ -1,122 +0,0 @@ |
|||||||
<?xml version="1.0" encoding="UTF-8"?> |
|
||||||
<ui version="4.0"> |
|
||||||
<class>QGCFirmwareUpdateWidget</class> |
|
||||||
<widget class="QWidget" name="QGCFirmwareUpdateWidget"> |
|
||||||
<property name="geometry"> |
|
||||||
<rect> |
|
||||||
<x>0</x> |
|
||||||
<y>0</y> |
|
||||||
<width>638</width> |
|
||||||
<height>412</height> |
|
||||||
</rect> |
|
||||||
</property> |
|
||||||
<property name="windowTitle"> |
|
||||||
<string>Form</string> |
|
||||||
</property> |
|
||||||
<layout class="QGridLayout" name="gridLayout"> |
|
||||||
<item row="0" column="0" colspan="2"> |
|
||||||
<widget class="QLabel" name="label_2"> |
|
||||||
<property name="text"> |
|
||||||
<string>1) Select Autopilot</string> |
|
||||||
</property> |
|
||||||
</widget> |
|
||||||
</item> |
|
||||||
<item row="1" column="0" colspan="2"> |
|
||||||
<widget class="QListWidget" name="autopilotListWidget"/> |
|
||||||
</item> |
|
||||||
<item row="1" column="2"> |
|
||||||
<widget class="QTextEdit" name="textEdit"> |
|
||||||
<property name="readOnly"> |
|
||||||
<bool>true</bool> |
|
||||||
</property> |
|
||||||
<property name="html"> |
|
||||||
<string><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> |
|
||||||
<html><head><meta name="qrichtext" content="1" /><style type="text/css"> |
|
||||||
p, li { white-space: pre-wrap; } |
|
||||||
</style></head><body style=" font-family:'Lucida Grande'; font-size:13pt; font-weight:400; font-style:normal;"> |
|
||||||
<p style=" margin-top:14px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:large; font-weight:600;">Autopilot Selection</span></p> |
|
||||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:10pt;">Select one of the connected autopilots from the list on the left.</span></p></body></html></string> |
|
||||||
</property> |
|
||||||
</widget> |
|
||||||
</item> |
|
||||||
<item row="1" column="3" rowspan="4" colspan="2"> |
|
||||||
<widget class="QTextEdit" name="firmwareInfo"> |
|
||||||
<property name="readOnly"> |
|
||||||
<bool>true</bool> |
|
||||||
</property> |
|
||||||
<property name="html"> |
|
||||||
<string><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> |
|
||||||
<html><head><meta name="qrichtext" content="1" /><style type="text/css"> |
|
||||||
p, li { white-space: pre-wrap; } |
|
||||||
</style></head><body style=" font-family:'Lucida Grande'; font-size:13pt; font-weight:400; font-style:normal;"> |
|
||||||
<p style=" margin-top:14px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:large; font-weight:600;">AP Firmware v0.9.1</span></p> |
|
||||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:10pt;">This software update...</span></p> |
|
||||||
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:10pt;"></p> |
|
||||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:10pt;">FIXES:</span></p> |
|
||||||
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:10pt;"></p> |
|
||||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:10pt;">- Fix1</span></p> |
|
||||||
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:10pt;"></p> |
|
||||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:10pt;">FEATURES:</span></p> |
|
||||||
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:10pt;"></p> |
|
||||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:10pt;">- New feature 1</span></p></body></html></string> |
|
||||||
</property> |
|
||||||
</widget> |
|
||||||
</item> |
|
||||||
<item row="2" column="0" colspan="2"> |
|
||||||
<widget class="QLabel" name="label_3"> |
|
||||||
<property name="text"> |
|
||||||
<string>2) Select Software Version</string> |
|
||||||
</property> |
|
||||||
</widget> |
|
||||||
</item> |
|
||||||
<item row="3" column="0" colspan="2"> |
|
||||||
<widget class="QListWidget" name="firmwareListWidget"/> |
|
||||||
</item> |
|
||||||
<item row="3" column="2" rowspan="2"> |
|
||||||
<widget class="QTextEdit" name="textEdit_2"> |
|
||||||
<property name="readOnly"> |
|
||||||
<bool>true</bool> |
|
||||||
</property> |
|
||||||
<property name="html"> |
|
||||||
<string><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> |
|
||||||
<html><head><meta name="qrichtext" content="1" /><style type="text/css"> |
|
||||||
p, li { white-space: pre-wrap; } |
|
||||||
</style></head><body style=" font-family:'Lucida Grande'; font-size:13pt; font-weight:400; font-style:normal;"> |
|
||||||
<p style=" margin-top:14px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:large; font-weight:600;">Software Version Selection</span></p> |
|
||||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:10pt;">Select the software version from the online repository on the left or choose the select file button to load a file from the harddisk. Detail information is shown on the right.</span></p></body></html></string> |
|
||||||
</property> |
|
||||||
</widget> |
|
||||||
</item> |
|
||||||
<item row="4" column="1"> |
|
||||||
<widget class="QPushButton" name="selectFileButton"> |
|
||||||
<property name="text"> |
|
||||||
<string>Select File..</string> |
|
||||||
</property> |
|
||||||
</widget> |
|
||||||
</item> |
|
||||||
<item row="5" column="0" rowspan="2" colspan="5"> |
|
||||||
<widget class="QProgressBar" name="progressBar"> |
|
||||||
<property name="value"> |
|
||||||
<number>24</number> |
|
||||||
</property> |
|
||||||
</widget> |
|
||||||
</item> |
|
||||||
<item row="6" column="4" rowspan="2"> |
|
||||||
<widget class="QPushButton" name="flashFirmwareButton"> |
|
||||||
<property name="text"> |
|
||||||
<string>Flash Firmware</string> |
|
||||||
</property> |
|
||||||
</widget> |
|
||||||
</item> |
|
||||||
<item row="7" column="0"> |
|
||||||
<widget class="QLabel" name="label"> |
|
||||||
<property name="text"> |
|
||||||
<string>Status</string> |
|
||||||
</property> |
|
||||||
</widget> |
|
||||||
</item> |
|
||||||
</layout> |
|
||||||
</widget> |
|
||||||
<resources/> |
|
||||||
<connections/> |
|
||||||
</ui> |
|
@ -1,14 +0,0 @@ |
|||||||
#include "QGCPX4FirmwareUpdate.h" |
|
||||||
#include "ui_QGCPX4FirmwareUpdate.h" |
|
||||||
|
|
||||||
QGCPX4FirmwareUpdate::QGCPX4FirmwareUpdate(QWidget *parent) : |
|
||||||
QWidget(parent), |
|
||||||
ui(new Ui::QGCPX4FirmwareUpdate) |
|
||||||
{ |
|
||||||
ui->setupUi(this); |
|
||||||
} |
|
||||||
|
|
||||||
QGCPX4FirmwareUpdate::~QGCPX4FirmwareUpdate() |
|
||||||
{ |
|
||||||
delete ui; |
|
||||||
} |
|
@ -1,22 +0,0 @@ |
|||||||
#ifndef QGCPX4FIRMWAREUPDATE_H |
|
||||||
#define QGCPX4FIRMWAREUPDATE_H |
|
||||||
|
|
||||||
#include <QWidget> |
|
||||||
|
|
||||||
namespace Ui { |
|
||||||
class QGCPX4FirmwareUpdate; |
|
||||||
} |
|
||||||
|
|
||||||
class QGCPX4FirmwareUpdate : public QWidget |
|
||||||
{ |
|
||||||
Q_OBJECT |
|
||||||
|
|
||||||
public: |
|
||||||
explicit QGCPX4FirmwareUpdate(QWidget *parent = 0); |
|
||||||
~QGCPX4FirmwareUpdate(); |
|
||||||
|
|
||||||
private: |
|
||||||
Ui::QGCPX4FirmwareUpdate *ui; |
|
||||||
}; |
|
||||||
|
|
||||||
#endif // QGCPX4FIRMWAREUPDATE_H
|
|
@ -1,143 +0,0 @@ |
|||||||
<?xml version="1.0" encoding="UTF-8"?> |
|
||||||
<ui version="4.0"> |
|
||||||
<class>QGCPX4FirmwareUpdate</class> |
|
||||||
<widget class="QWidget" name="QGCPX4FirmwareUpdate"> |
|
||||||
<property name="geometry"> |
|
||||||
<rect> |
|
||||||
<x>0</x> |
|
||||||
<y>0</y> |
|
||||||
<width>400</width> |
|
||||||
<height>300</height> |
|
||||||
</rect> |
|
||||||
</property> |
|
||||||
<property name="windowTitle"> |
|
||||||
<string>Form</string> |
|
||||||
</property> |
|
||||||
<layout class="QGridLayout" name="gridLayout"> |
|
||||||
<item row="0" column="0" colspan="4"> |
|
||||||
<widget class="QTabWidget" name="tabWidget"> |
|
||||||
<property name="currentIndex"> |
|
||||||
<number>2</number> |
|
||||||
</property> |
|
||||||
<widget class="QWidget" name="firmwareSelectTab"> |
|
||||||
<attribute name="title"> |
|
||||||
<string>Firmware</string> |
|
||||||
</attribute> |
|
||||||
<layout class="QGridLayout" name="gridLayout_2"> |
|
||||||
<property name="leftMargin"> |
|
||||||
<number>6</number> |
|
||||||
</property> |
|
||||||
<property name="rightMargin"> |
|
||||||
<number>6</number> |
|
||||||
</property> |
|
||||||
<property name="bottomMargin"> |
|
||||||
<number>6</number> |
|
||||||
</property> |
|
||||||
<item row="0" column="0" colspan="2"> |
|
||||||
<widget class="QListWidget" name="fileList"/> |
|
||||||
</item> |
|
||||||
<item row="1" column="0"> |
|
||||||
<widget class="QLineEdit" name="fileLineEdit"/> |
|
||||||
</item> |
|
||||||
<item row="1" column="1"> |
|
||||||
<widget class="QPushButton" name="selectFileButton"> |
|
||||||
<property name="text"> |
|
||||||
<string>Select File</string> |
|
||||||
</property> |
|
||||||
</widget> |
|
||||||
</item> |
|
||||||
</layout> |
|
||||||
</widget> |
|
||||||
<widget class="QWidget" name="settingsBackupTab"> |
|
||||||
<attribute name="title"> |
|
||||||
<string>Settings</string> |
|
||||||
</attribute> |
|
||||||
<layout class="QGridLayout" name="gridLayout_3"> |
|
||||||
<item row="0" column="0"> |
|
||||||
<widget class="QLineEdit" name="lineEdit"/> |
|
||||||
</item> |
|
||||||
<item row="0" column="1"> |
|
||||||
<widget class="QPushButton" name="settingsStoreButton"> |
|
||||||
<property name="text"> |
|
||||||
<string>Select File</string> |
|
||||||
</property> |
|
||||||
</widget> |
|
||||||
</item> |
|
||||||
</layout> |
|
||||||
</widget> |
|
||||||
<widget class="QWidget" name="flashTab"> |
|
||||||
<attribute name="title"> |
|
||||||
<string>Flash Firmware</string> |
|
||||||
</attribute> |
|
||||||
<layout class="QGridLayout" name="gridLayout_4"> |
|
||||||
<item row="0" column="0"> |
|
||||||
<widget class="QLabel" name="fileLabel"> |
|
||||||
<property name="text"> |
|
||||||
<string>Filename</string> |
|
||||||
</property> |
|
||||||
</widget> |
|
||||||
</item> |
|
||||||
<item row="1" column="0"> |
|
||||||
<widget class="QProgressBar" name="progressBar"> |
|
||||||
<property name="value"> |
|
||||||
<number>24</number> |
|
||||||
</property> |
|
||||||
</widget> |
|
||||||
</item> |
|
||||||
<item row="2" column="0"> |
|
||||||
<widget class="QLabel" name="statusLabel"> |
|
||||||
<property name="text"> |
|
||||||
<string>Status</string> |
|
||||||
</property> |
|
||||||
</widget> |
|
||||||
</item> |
|
||||||
<item row="3" column="0"> |
|
||||||
<widget class="QPushButton" name="flashButton"> |
|
||||||
<property name="text"> |
|
||||||
<string>Flash Firmware</string> |
|
||||||
</property> |
|
||||||
</widget> |
|
||||||
</item> |
|
||||||
</layout> |
|
||||||
</widget> |
|
||||||
</widget> |
|
||||||
</item> |
|
||||||
<item row="1" column="0"> |
|
||||||
<spacer name="horizontalSpacer"> |
|
||||||
<property name="orientation"> |
|
||||||
<enum>Qt::Horizontal</enum> |
|
||||||
</property> |
|
||||||
<property name="sizeHint" stdset="0"> |
|
||||||
<size> |
|
||||||
<width>40</width> |
|
||||||
<height>20</height> |
|
||||||
</size> |
|
||||||
</property> |
|
||||||
</spacer> |
|
||||||
</item> |
|
||||||
<item row="1" column="1"> |
|
||||||
<widget class="QPushButton" name="pushButton"> |
|
||||||
<property name="text"> |
|
||||||
<string>Prev</string> |
|
||||||
</property> |
|
||||||
</widget> |
|
||||||
</item> |
|
||||||
<item row="1" column="2"> |
|
||||||
<widget class="QPushButton" name="pushButton_2"> |
|
||||||
<property name="text"> |
|
||||||
<string>Next</string> |
|
||||||
</property> |
|
||||||
</widget> |
|
||||||
</item> |
|
||||||
<item row="1" column="3"> |
|
||||||
<widget class="QPushButton" name="pushButton_3"> |
|
||||||
<property name="text"> |
|
||||||
<string>Flash</string> |
|
||||||
</property> |
|
||||||
</widget> |
|
||||||
</item> |
|
||||||
</layout> |
|
||||||
</widget> |
|
||||||
<resources/> |
|
||||||
<connections/> |
|
||||||
</ui> |
|
Loading…
Reference in new issue