Attempt to fix the progress bar issue on Companion Read Firmware function on Windows, dfu-util 0.7 (DFU mode)

This commit is contained in:
Bertrand Songis
2020-06-13 12:46:21 +02:00
parent 5198b9a8a7
commit 281daa7a67
2 changed files with 10 additions and 6 deletions
+8 -4
View File
@@ -136,10 +136,8 @@ void FlashProcess::onKillTimerElapsed()
void FlashProcess::analyseStandardOutput(const QString & text)
{
// qDebug() << text;
currStdoutLine.append(text);
if (currStdoutLine.contains("size = ")) {
int pos = currStdoutLine.lastIndexOf("size = ");
QString temp = currStdoutLine.mid(pos+7);
@@ -147,17 +145,23 @@ void FlashProcess::analyseStandardOutput(const QString & text)
int size = temp.left(pos).toInt();
progress->setMaximum(size / 2048);
}
if (currStdoutLine.contains("\n")) {
int nlPos = currStdoutLine.lastIndexOf("\n");
currStdoutLine = currStdoutLine.mid(nlPos+1);
}
if (!currStdoutLine.isEmpty()) {
if (currStdoutLine.at(0) == QChar('.')) {
int pos = currStdoutLine.lastIndexOf(".");
progress->setValue(pos);
}
else if (currStdoutLine.startsWith("Starting upload: [")) {
int pos = (currStdoutLine.lastIndexOf("#")-19)*100/256;
int pos = (currStdoutLine.lastIndexOf("#") - 19) * 100 / 256;
progress->setValue(pos);
}
else if (currStdoutLine.startsWith("[") && progress->getText().contains("bytes_per_hash=2048")) {
int pos = (currStdoutLine.lastIndexOf("#") - 1) * 2048 / (2 * 1024 * 1024); // TODO depends on bin size
progress->setValue(pos);
}
}
+2 -2
View File
@@ -53,10 +53,10 @@ protected:
void analyseStandardError(const QString &text);
void errorWizard();
void addReadFuses();
ProgressWidget *progress;
ProgressWidget * progress;
const QString cmd;
const QStringList args;
QProcess *process;
QProcess * process;
bool hasErrors;
QString currStdoutLine;
QString currStderrLine;