Fixed SD status reporting with new parser
This commit is contained in:
parent
a83a677bfa
commit
0b25c5709d
@ -71,6 +71,7 @@ MainWindow::MainWindow(QWidget *parent) :
|
||||
connect(this, SIGNAL(eepromReady()), this, SLOT(openEEPROMeditor()));
|
||||
|
||||
qRegisterMetaType<TemperatureReadings>("TemperatureReadings");
|
||||
qRegisterMetaType<SDProgress>("SDProgress");
|
||||
parser = new Parser();
|
||||
parserThread = new QThread();
|
||||
parser->moveToThread(parserThread);
|
||||
@ -97,7 +98,7 @@ MainWindow::MainWindow(QWidget *parent) :
|
||||
else sendTimer.setInterval(5);
|
||||
sendTimer.start();
|
||||
|
||||
progressSDTimer.setInterval(3000);
|
||||
progressSDTimer.setInterval(2000);
|
||||
if(chekingSDStatus)progressSDTimer.start();
|
||||
|
||||
tempWarning.setInterval(10000);
|
||||
@ -822,14 +823,15 @@ void MainWindow::selectSDfile(QString file)
|
||||
ui->fileBox->setDisabled(false);
|
||||
}
|
||||
|
||||
void MainWindow::updateSDStatus(double currentSDbytes)
|
||||
void MainWindow::updateSDStatus(SDProgress p)
|
||||
{
|
||||
ui->filelines->setText(QString::number(sdBytes)
|
||||
ui->filelines->setText(QString::number(p.progress)
|
||||
+ QString("/")
|
||||
+ QString::number(currentSDbytes)
|
||||
+ QString::number(p.total)
|
||||
+ QString(" bytes"));
|
||||
ui->progressBar->setValue(currentSDbytes/sdBytes * 100);
|
||||
if(currentSDbytes == sdBytes) sdprinting = false;
|
||||
if(p.progress != 0) ui->progressBar->setValue(((double)p.progress/p.total) * 100);
|
||||
else ui->progressBar->setValue(0);
|
||||
if(p.total == p.progress) sdprinting = false;
|
||||
}
|
||||
|
||||
void MainWindow::checkSDStatus()
|
||||
|
||||
@ -91,7 +91,7 @@ private slots:
|
||||
void initSDprinting(QStringList sdFiles);
|
||||
void selectSDfile(QString file);
|
||||
void checkSDStatus();
|
||||
void updateSDStatus(double currentSDbytes);
|
||||
void updateSDStatus(SDProgress p);
|
||||
void requestEEPROMSettings();
|
||||
void openEEPROMeditor();
|
||||
void sendEEPROMsettings(QStringList changes);
|
||||
|
||||
25
parser.cpp
25
parser.cpp
@ -57,7 +57,12 @@ void Parser::parse(QByteArray data)
|
||||
}
|
||||
|
||||
if(data.startsWith("ok"))
|
||||
emit recievedOkNum(data.split(' ').at(1).toInt());
|
||||
{
|
||||
QStringList tmp = QString(data).split(' ');
|
||||
if(tmp.size() > 1)
|
||||
emit recievedOkNum(tmp.at(1).toInt());
|
||||
else emit recievedOkNum(0);
|
||||
}
|
||||
else if(data.startsWith("T:"))
|
||||
{
|
||||
TemperatureReadings r;
|
||||
@ -79,6 +84,7 @@ void Parser::parse(QByteArray data)
|
||||
else if(data.startsWith("start")) emit recievedStart();
|
||||
else if(data.startsWith("SD pr"))
|
||||
{
|
||||
/*
|
||||
QString tmp;
|
||||
QString fragment = data.split(' ').at(3);
|
||||
for(int i = 0; fragment.at(i) != '/'; ++i)
|
||||
@ -86,6 +92,22 @@ void Parser::parse(QByteArray data)
|
||||
tmp += fragment.at(i);
|
||||
}
|
||||
emit recievedSDUpdate(tmp.toDouble());
|
||||
*/
|
||||
SDProgress p;
|
||||
QRegExp rxp("\\d+/\\d+");
|
||||
QStringList tmp;
|
||||
|
||||
if(rxp.indexIn(data) != -1)
|
||||
{
|
||||
tmp = rxp.cap(0).split('/');
|
||||
|
||||
p.progress = tmp.at(0).toLong();
|
||||
p.total = tmp.at(1).toLong();
|
||||
}
|
||||
else return;
|
||||
|
||||
emit recievedSDUpdate(p);
|
||||
|
||||
}
|
||||
else if(data.startsWith("Not SD "));
|
||||
else if(data.contains("Begin file list"))
|
||||
@ -95,7 +117,6 @@ void Parser::parse(QByteArray data)
|
||||
}
|
||||
else if(data.contains("REPETIER")) emit recievedFirmware(Repetier);
|
||||
else if(data.contains("MARLIN")) emit recievedFirmware(Marlin);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
2
parser.h
2
parser.h
@ -27,7 +27,7 @@ protected:
|
||||
|
||||
signals:
|
||||
void recievedTemperature(TemperatureReadings);
|
||||
void recievedSDUpdate(double);
|
||||
void recievedSDUpdate(SDProgress);
|
||||
void recievedEEPROMLine(QString);
|
||||
void recievingEEPROMDone();
|
||||
void recievedSDFilesList(QStringList);
|
||||
|
||||
@ -22,6 +22,11 @@ namespace RepRaptor
|
||||
int T, P;
|
||||
QString S;
|
||||
} repetierEEPROMline;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
unsigned long int progress, total;
|
||||
} SDProgress;
|
||||
}
|
||||
|
||||
#endif // REPRAPTOR_H
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user