Merge 784e627c0f119656098c4f6f6bd77bf4745608f2 into e2fb18970e360da2b7cfc29388287f6710efe772

This commit is contained in:
Darkgeem 2025-12-11 01:25:06 +01:00 committed by GitHub
commit 675fc7e44f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -22,6 +22,7 @@ void PM3Process::connectPM3(const QString& path, const QStringList args)
QString result; QString result;
Util::ClientType clientType; Util::ClientType clientType;
setRequiringOutput(true); setRequiringOutput(true);
QRegularExpression osPattern("(os:\\s+|OS\\.+\\s+)");
// stash for reconnect // stash for reconnect
currPath = path; currPath = path;
@ -44,7 +45,8 @@ void PM3Process::connectPM3(const QString& path, const QStringList args)
{ {
waitForReadyRead(200); waitForReadyRead(200);
result += *requiredOutput; result += *requiredOutput;
if(result.contains("os: ")) // if(result.contains("os: "))
if(osPattern.match(result).hasMatch())
break; break;
} }
setRequiringOutput(false); setRequiringOutput(false);
@ -53,12 +55,16 @@ void PM3Process::connectPM3(const QString& path, const QStringList args)
{ {
clientType = Util::CLIENTTYPE_OFFICIAL; clientType = Util::CLIENTTYPE_OFFICIAL;
} }
if(result.contains("os: ")) // make sure the PM3 is connected // if(result.contains("os: ")) // make sure the PM3 is connected
if(osPattern.match(result).hasMatch())
{ {
emit changeClientType(clientType); emit changeClientType(clientType);
result = result.mid(result.indexOf("os: ")); // result = result.mid(result.indexOf("os: "));
QRegularExpressionMatch osMatch = osPattern.match(result);
result = result.mid(osMatch.capturedStart());
result = result.left(result.indexOf("\n")); result = result.left(result.indexOf("\n"));
result = result.mid(4, result.indexOf(" ", 4) - 4); // result = result.mid(4, result.indexOf(" ", 4) - 4);
result = result.mid(osMatch.capturedLength(), result.indexOf(" ", osMatch.capturedLength()) - osMatch.capturedLength());
emit PM3StatedChanged(true, result); emit PM3StatedChanged(true, result);
} }
else else