Commit 56efe884 authored by Michael Carpenter's avatar Michael Carpenter

Initial commit of APM2.5 Firmware loading config screen via Avrdude

parent 95e4e9bf
This diff is collapsed.
......@@ -262,8 +262,9 @@ FORMS += src/ui/MainWindow.ui \
src/ui/configuration/AdvParameterList.ui \
src/ui/configuration/ArduRoverPidConfig.ui \
src/ui/configuration/terminalconsole.ui \
src/ui/configuration/SerialSettingsDialog.ui
src/ui/configuration/SerialSettingsDialog.ui \
src/ui/configuration/ApmFirmwareConfig.ui \
src/ui/configuration/ApmFirmwareStatus.ui
INCLUDEPATH += src \
src/ui \
src/ui/linechart \
......@@ -453,7 +454,9 @@ HEADERS += src/MG.h \
src/ui/configuration/console.h \
src/ui/configuration/SerialSettingsDialog.h \
src/ui/configuration/terminalconsole.h \
src/ui/configuration/ApmHighlighter.h
src/ui/configuration/ApmHighlighter.h \
src/ui/configuration/ApmFirmwareConfig.h \
src/ui/configuration/ApmFirmwareStatus.h
# Google Earth is only supported on Mac OS and Windows with Visual Studio Compiler
macx|macx-g++|macx-g++42|win32-msvc2008|win32-msvc2010|win32-msvc2012::HEADERS += src/ui/map3D/QGCGoogleEarthView.h
......@@ -662,7 +665,9 @@ SOURCES += src/main.cc \
src/ui/configuration/terminalconsole.cpp \
src/ui/configuration/console.cpp \
src/ui/configuration/SerialSettingsDialog.cc \
src/ui/configuration/ApmHighlighter.cc
src/ui/configuration/ApmHighlighter.cc \
src/ui/configuration/ApmFirmwareConfig.cc \
src/ui/configuration/ApmFirmwareStatus.cc
# Enable Google Earth only on Mac OS and Windows with Visual Studio compiler
macx|macx-g++|macx-g++42|win32-msvc2008|win32-msvc2010|win32-msvc2012::SOURCES += src/ui/map3D/QGCGoogleEarthView.cc
......
......@@ -119,6 +119,43 @@
<file>files/images/devices/cameraGimalRoll1.png</file>
<file>files/images/devices/cameraGimalYaw.png</file>
<file>files/images/devices/Shutter.png</file>
<file>files/images/firmware/apmcopter.png</file>
<file>files/images/firmware/apmplane.png</file>
<file>files/images/firmware/apmrover.png</file>
<file>files/images/firmware/FW icons 2013+logos.ai</file>
<file>files/images/firmware/heli.png</file>
<file>files/images/firmware/heli_off.png</file>
<file>files/images/firmware/heli_on.png</file>
<file>files/images/firmware/hexa_off.png</file>
<file>files/images/firmware/hexa_on.png</file>
<file>files/images/firmware/hexaplus.png</file>
<file>files/images/firmware/hexax.png</file>
<file>files/images/firmware/hexay.png</file>
<file>files/images/firmware/octaplus.png</file>
<file>files/images/firmware/octax.png</file>
<file>files/images/firmware/octo_off.png</file>
<file>files/images/firmware/octo_on.png</file>
<file>files/images/firmware/octx.png</file>
<file>files/images/firmware/plane.png</file>
<file>files/images/firmware/plane_off.png</file>
<file>files/images/firmware/plane_on.png</file>
<file>files/images/firmware/quad_off.png</file>
<file>files/images/firmware/quad_on.png</file>
<file>files/images/firmware/quad_T_off.png</file>
<file>files/images/firmware/quad_T_on.png</file>
<file>files/images/firmware/quadplus.png</file>
<file>files/images/firmware/quadx.png</file>
<file>files/images/firmware/quady.png</file>
<file>files/images/firmware/rover.png</file>
<file>files/images/firmware/rover_off.png</file>
<file>files/images/firmware/rover_on.png</file>
<file>files/images/firmware/Tir_off.png</file>
<file>files/images/firmware/Tir_on.png</file>
<file>files/images/firmware/triy.png</file>
<file>files/images/firmware/X8.png</file>
<file>files/images/firmware/X8_on.png</file>
<file>files/images/firmware/Y6_off.png</file>
<file>files/images/firmware/Y6_on.png</file>
</qresource>
<qresource prefix="/general">
<file alias="vera.ttf">files/styles/Vera.ttf</file>
......
This diff is collapsed.
#ifndef APMFIRMWARECONFIG_H
#define APMFIRMWARECONFIG_H
#include <QWidget>
#include <QNetworkAccessManager>
#include <QNetworkRequest>
#include <QNetworkReply>
#include <QDebug>
#include <QTemporaryFile>
#include <QProcess>
#include "qserialport.h"
#include "ui_ApmFirmwareConfig.h"
#include "ApmFirmwareStatus.h"
class ApmFirmwareConfig : public QWidget
{
Q_OBJECT
public:
explicit ApmFirmwareConfig(QWidget *parent = 0);
~ApmFirmwareConfig();
private slots:
void firmwareListFinished();
void firmwareListError(QNetworkReply::NetworkError error);
void burnButtonClicked();
void betaFirmwareButtonClicked();
void downloadFinished();
void firmwareProcessFinished(int status);
void firmwareProcessReadyRead();
void firmwareProcessError(QProcess::ProcessError error);
private:
ApmFirmwareStatus *firmwareStatus;
QTemporaryFile *m_tempFirmwareFile;
QNetworkAccessManager *m_networkManager;
void requestFirmwares(bool beta);
bool stripVersionFromGitReply(QString url,QString reply,QString type,QString stable,QString *out);
bool m_betaFirmwareChecked;
QMap<QPushButton*,QString> m_buttonToUrlMap;
Ui::ApmFirmwareConfig ui;
class FirmwareDef
{
public:
QString url;
QString url2560;
QString url25602;
QString urlpx4;
QString type;
QString name;
QString desc;
int version;
};
QList<FirmwareDef> m_firmwareList;
};
#endif // APMFIRMWARECONFIG_H
This diff is collapsed.
#include "ApmFirmwareStatus.h"
ApmFirmwareStatus::ApmFirmwareStatus(QWidget *parent) : QWidget(parent)
{
ui.setupUi(this);
ui.progressBar->setMaximum(50);
}
ApmFirmwareStatus::~ApmFirmwareStatus()
{
}
void ApmFirmwareStatus::passMessage(QString msg)
{
ui.textBrowser->append(msg);
}
void ApmFirmwareStatus::setStatus(QString message)
{
ui.label->setText("<h2>" + message + "</h2>");
}
void ApmFirmwareStatus::resetProgress()
{
ui.progressBar->setValue(0);
}
void ApmFirmwareStatus::progressTick()
{
ui.progressBar->setValue(ui.progressBar->value()+1);
}
#ifndef APMFIRMWARESTATUS_H
#define APMFIRMWARESTATUS_H
#include <QWidget>
#include "ui_ApmFirmwareStatus.h"
class ApmFirmwareStatus : public QWidget
{
Q_OBJECT
public:
explicit ApmFirmwareStatus(QWidget *parent = 0);
~ApmFirmwareStatus();
void passMessage(QString msg);
void setStatus(QString message);
void resetProgress();
void progressTick();
private:
Ui::ApmFirmwareStatus ui;
};
#endif // APMFIRMWARESTATUS_H
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>ApmFirmwareStatus</class>
<widget class="QWidget" name="ApmFirmwareStatus">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>889</width>
<height>313</height>
</rect>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
<widget class="QPushButton" name="closePushButton">
<property name="geometry">
<rect>
<x>390</x>
<y>110</y>
<width>75</width>
<height>23</height>
</rect>
</property>
<property name="text">
<string>Close</string>
</property>
</widget>
<widget class="QTextBrowser" name="textBrowser">
<property name="geometry">
<rect>
<x>10</x>
<y>150</y>
<width>871</width>
<height>141</height>
</rect>
</property>
</widget>
<widget class="QLabel" name="label">
<property name="geometry">
<rect>
<x>20</x>
<y>20</y>
<width>291</width>
<height>31</height>
</rect>
</property>
<property name="text">
<string>&lt;h2&gt;Status&lt;/h2&gt;</string>
</property>
</widget>
<widget class="QProgressBar" name="progressBar">
<property name="geometry">
<rect>
<x>10</x>
<y>70</y>
<width>851</width>
<height>23</height>
</rect>
</property>
<property name="value">
<number>0</number>
</property>
</widget>
</widget>
<resources/>
<connections/>
</ui>
......@@ -60,9 +60,9 @@ ApmHardwareConfig::ApmHardwareConfig(QWidget *parent) : QWidget(parent)
connect(ui.frameTypeButton,SIGNAL(clicked()),this,SLOT(activateStackedWidget()));
QWidget *widget = new QWidget(this);
ui.stackedWidget->addWidget(widget); //Firmware placeholder.
m_buttonToConfigWidgetMap[ui.firmwareButton] = widget;
m_apmFirmwareConfig = new ApmFirmwareConfig(this);
ui.stackedWidget->addWidget(m_apmFirmwareConfig); //Firmware placeholder.
m_buttonToConfigWidgetMap[ui.firmwareButton] = m_apmFirmwareConfig;
connect(ui.firmwareButton,SIGNAL(clicked()),this,SLOT(activateStackedWidget()));
m_frameConfig = new FrameTypeConfig(this);
......
......@@ -49,6 +49,7 @@ This file is part of the QGROUNDCONTROL project
#include "CameraGimbalConfig.h"
#include "AntennaTrackerConfig.h"
#include "ApmPlaneLevel.h"
#include "ApmFirmwareConfig.h"
class ApmHardwareConfig : public QWidget
{
......@@ -63,6 +64,7 @@ private:
AccelCalibrationConfig *m_accelConfig;
RadioCalibrationConfig *m_radioConfig;
ApmFirmwareConfig *m_apmFirmwareConfig;
Radio3DRConfig *m_radio3drConfig;
BatteryMonitorConfig *m_batteryConfig;
SonarConfig *m_sonarConfig;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment