mirror of
https://bitbucket.org/librepilot/librepilot.git
synced 2025-02-21 11:54:15 +01:00
OP-35 Update to GCS Uploader plugin to reflect latest BL changes. Bug fixes too, should be more stable & reliable.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2138 ebee16cc-31ac-478f-84a7-5cbb03baadba
This commit is contained in:
parent
d57441e8f4
commit
d233d65e86
@ -116,7 +116,18 @@ void deviceWidget::uploadFirmware()
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
status("Starting firmware upload.");
|
status("Starting firmware upload");
|
||||||
|
// We don't know which device was used previously, so we
|
||||||
|
// are cautious and reenter DFU for this deviceID:
|
||||||
|
if(!m_dfu->enterDFU(deviceID))
|
||||||
|
{
|
||||||
|
status("Error:Could not enter DFU mode");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
OP_DFU::Status ret=m_dfu->StatusRequest();
|
||||||
|
qDebug() << m_dfu->StatusToString(ret);
|
||||||
|
m_dfu->AbortOperation(); // Necessary, otherwise I get random failures.
|
||||||
|
|
||||||
connect(m_dfu, SIGNAL(progressUpdated(int)), this, SLOT(setProgress(int)));
|
connect(m_dfu, SIGNAL(progressUpdated(int)), this, SLOT(setProgress(int)));
|
||||||
connect(m_dfu, SIGNAL(operationProgress(QString)), this, SLOT(status(QString)));
|
connect(m_dfu, SIGNAL(operationProgress(QString)), this, SLOT(status(QString)));
|
||||||
connect(m_dfu, SIGNAL(uploadFinished(OP_DFU::Status)), this, SLOT(uploadFinished(OP_DFU::Status)));
|
connect(m_dfu, SIGNAL(uploadFinished(OP_DFU::Status)), this, SLOT(uploadFinished(OP_DFU::Status)));
|
||||||
|
@ -241,25 +241,39 @@ void UploaderGadgetWidget::systemRescue()
|
|||||||
log("** Follow those instructions to attempt a system rescue **");
|
log("** Follow those instructions to attempt a system rescue **");
|
||||||
log("**********************************************************");
|
log("**********************************************************");
|
||||||
log("You will be prompted to first connect USB, then system power");
|
log("You will be prompted to first connect USB, then system power");
|
||||||
log ("Connect USB in 3 seconds...");
|
log ("Connect USB in 2 seconds...");
|
||||||
rescueStep = RESCUE_STEP1;
|
rescueStep = RESCUE_STEP1;
|
||||||
QTimer::singleShot(1000, this, SLOT(systemRescue()));
|
QTimer::singleShot(1000, this, SLOT(systemRescue()));
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case RESCUE_STEP1:
|
case RESCUE_STEP1:
|
||||||
rescueStep = RESCUE_STEP2;
|
rescueStep = RESCUE_STEP2;
|
||||||
log (" ...2...");
|
log (" ...1...");
|
||||||
QTimer::singleShot(1000, this, SLOT(systemRescue()));
|
QTimer::singleShot(1000, this, SLOT(systemRescue()));
|
||||||
break;
|
break;
|
||||||
case RESCUE_STEP2:
|
case RESCUE_STEP2:
|
||||||
rescueStep = RESCUE_STEP3;
|
rescueStep = RESCUE_STEP3;
|
||||||
log(" ...1...");
|
log(" ...Now!");
|
||||||
QTimer::singleShot(1000, this, SLOT(systemRescue()));
|
QTimer::singleShot(1000, this, SLOT(systemRescue()));
|
||||||
break;
|
break;
|
||||||
case RESCUE_STEP3:
|
case RESCUE_STEP3:
|
||||||
log("... NOW!\n***\n");
|
log("... Detecting Mainboard...");
|
||||||
log("Connect Power in 1 second...");
|
repaint();
|
||||||
rescueStep = RESCUE_POWER2;
|
if (!dfu)
|
||||||
|
dfu = new DFUObject(true);
|
||||||
|
dfu->AbortOperation();
|
||||||
|
if(!dfu->enterDFU(0))
|
||||||
|
{
|
||||||
|
log("Could not enter DFU mode.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if(!dfu->findDevices())
|
||||||
|
{
|
||||||
|
log("Could not detect mainboard.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
rescueStep = RESCUE_POWER1;
|
||||||
|
log("Connect Power in 2 second...");
|
||||||
QTimer::singleShot(1000, this, SLOT(systemRescue()));
|
QTimer::singleShot(1000, this, SLOT(systemRescue()));
|
||||||
break;
|
break;
|
||||||
case RESCUE_POWER1:
|
case RESCUE_POWER1:
|
||||||
@ -270,19 +284,12 @@ void UploaderGadgetWidget::systemRescue()
|
|||||||
case RESCUE_POWER2:
|
case RESCUE_POWER2:
|
||||||
log("... NOW!\n***\nWaiting...");
|
log("... NOW!\n***\nWaiting...");
|
||||||
rescueStep = RESCUE_DETECT;
|
rescueStep = RESCUE_DETECT;
|
||||||
QTimer::singleShot(3000, this, SLOT(systemRescue()));
|
QTimer::singleShot(4000, this, SLOT(systemRescue()));
|
||||||
break;
|
break;
|
||||||
case RESCUE_DETECT:
|
case RESCUE_DETECT:
|
||||||
rescueStep = RESCUE_STEP0;
|
rescueStep = RESCUE_STEP0;
|
||||||
log("Polling for devices...");
|
log("Detecting AHRS...");
|
||||||
repaint();
|
repaint();
|
||||||
if (!dfu)
|
|
||||||
dfu = new DFUObject(true);
|
|
||||||
if(!dfu->enterDFU(0))
|
|
||||||
{
|
|
||||||
log("Could not enter DFU mode.");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if(!dfu->findDevices())
|
if(!dfu->findDevices())
|
||||||
{
|
{
|
||||||
log("Could not detect devices.");
|
log("Could not detect devices.");
|
||||||
@ -304,7 +311,6 @@ void UploaderGadgetWidget::systemRescue()
|
|||||||
m_config->resetButton->setEnabled(false);
|
m_config->resetButton->setEnabled(false);
|
||||||
m_config->bootButton->setEnabled(true);
|
m_config->bootButton->setEnabled(true);
|
||||||
currentStep = IAP_STATE_BOOTLOADER; // So that we can boot from the GUI afterwards.
|
currentStep = IAP_STATE_BOOTLOADER; // So that we can boot from the GUI afterwards.
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user