Implement helpers getFileVersions() and checkDownloadedJsonVersions().
This commit is contained in:
parent
5d7f13a254
commit
5d7d1a2870
82
update.cpp
82
update.cpp
@ -494,6 +494,88 @@ QStringList Update::getDcSoftAndHardWareVersion() {
|
|||||||
<< "DC SW-version not available";
|
<< "DC SW-version not available";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QString Update::getFileVersion(QString const& jsonFileName) {
|
||||||
|
// "version":"15.10.2023 14:55 02.00.06",
|
||||||
|
static const QRegularExpression re("^.*(\\\"version\\\":)(.*)$");
|
||||||
|
|
||||||
|
QString fileVersion;
|
||||||
|
QFile inputFile(jsonFileName);
|
||||||
|
if (inputFile.open(QIODevice::ReadOnly)) {
|
||||||
|
QTextStream in(&inputFile);
|
||||||
|
while (!in.atEnd()) {
|
||||||
|
QString line = in.readLine();
|
||||||
|
|
||||||
|
QRegularExpressionMatch match;
|
||||||
|
int idx = line.indexOf(re, 0, &match);
|
||||||
|
if (idx != -1) {
|
||||||
|
fileVersion = match.captured(match.lastCapturedIndex());
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
inputFile.close();
|
||||||
|
}
|
||||||
|
|
||||||
|
return fileVersion;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool Update::checkDownloadedJsonVersions(QStringList const& jsonFileNames) {
|
||||||
|
|
||||||
|
for (QStringList::size_type i=0; i < jsonFileNames.size(); ++i) {
|
||||||
|
|
||||||
|
uint8_t jsonNr = 0;
|
||||||
|
QFileInfo fInfo(jsonFileNames[i]);
|
||||||
|
|
||||||
|
if (fInfo.fileName().endsWith("conf.json")) {
|
||||||
|
jsonNr = 1;
|
||||||
|
} else
|
||||||
|
if (fInfo.fileName().endsWith("device.json")) {
|
||||||
|
jsonNr = 2;
|
||||||
|
} else
|
||||||
|
if (fInfo.fileName().endsWith("cash.json")) {
|
||||||
|
jsonNr = 3;
|
||||||
|
} else {
|
||||||
|
QRegularExpressionMatch match;
|
||||||
|
static const QRegularExpression re("^(.*print)([0-3][0-9])\\.json\\s*$");
|
||||||
|
int idx = fInfo.fileName().indexOf(re, 0, &match);
|
||||||
|
if (idx != -1) {
|
||||||
|
QString captured = match.captured(match.lastCapturedIndex());
|
||||||
|
bool ok = false;
|
||||||
|
int n = captured.toInt(&ok);
|
||||||
|
if (ok) {
|
||||||
|
jsonNr = n + 4;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
qCritical() << __PRETTY_FUNCTION__ << fInfo.fileName() << "jsonNr" << jsonNr;
|
||||||
|
|
||||||
|
if (jsonNr != 0) {
|
||||||
|
|
||||||
|
m_hw->sys_requestJsonVersions(jsonNr);
|
||||||
|
QThread::msleep(500);
|
||||||
|
|
||||||
|
char buf[64];
|
||||||
|
memset(buf, 0x00, sizeof(buf));
|
||||||
|
m_hw->sys_getJsonVersions(jsonNr, buf);
|
||||||
|
buf[sizeof(buf)-1] = '\0';
|
||||||
|
|
||||||
|
QString const installedVersion(buf);
|
||||||
|
QString const fileVersion = getFileVersion(jsonFileNames[i]);
|
||||||
|
|
||||||
|
qCritical() << "installed version:" << installedVersion;
|
||||||
|
qCritical() << " file version:" << fileVersion;
|
||||||
|
|
||||||
|
if (installedVersion == fileVersion) {
|
||||||
|
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
qCritical() << "CANNOT FIND JSON-NR FOR" << jsonFileNames[i];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
bool Update::doUpdate(int &displayIndex, QStringList const &filesToWorkOn) {
|
bool Update::doUpdate(int &displayIndex, QStringList const &filesToWorkOn) {
|
||||||
if (m_sys_areDCdataValid == false) {
|
if (m_sys_areDCdataValid == false) {
|
||||||
qCritical() << "ERROR!!! DC DATA NOT VALID -> CA-MASTER-PLUGIN NOT CONNECTED";
|
qCritical() << "ERROR!!! DC DATA NOT VALID -> CA-MASTER-PLUGIN NOT CONNECTED";
|
||||||
|
Loading…
Reference in New Issue
Block a user