VersionManager.cpp 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. #include "VersionManager.h"
  2. #include <QFileInfo>
  3. #include <QRegularExpression>
  4. #include "LoggerHelper.h"
  5. AppVersionInfo VersionManager::getAppVersion(const QString &appName)
  6. {
  7. AppVersionInfo info;
  8. QString linkPath = QString("/home/root/app_run/bin/%1").arg(appName);
  9. QFileInfo linkInfo(linkPath);
  10. if (!linkInfo.exists() || !linkInfo.isSymLink()) {
  11. LOG_WARNING(QString("[%1] The file does not exist or is a non-connected file.").arg(appName));
  12. return info;
  13. }
  14. QString targetPath = linkInfo.symLinkTarget();
  15. QFileInfo targetInfo(targetPath);
  16. QString targetBaseName = targetInfo.fileName();
  17. // 支持 app_CCU/app_TCU/app_PCU
  18. QRegularExpression re(QStringLiteral("%1_V(\\d+)R(\\d+)B(\\d+)").arg(appName));
  19. QRegularExpressionMatch match = re.match(targetBaseName);
  20. if (match.hasMatch()) {
  21. info.linkName = targetBaseName;
  22. info.major = match.captured(1).toInt();
  23. info.minor = match.captured(2).toInt();
  24. info.build = match.captured(3).toInt();
  25. info.success = true;
  26. }
  27. return info;
  28. }
  29. QString VersionManager::getHardwareVersion()
  30. {
  31. QString linkPath = "/home/root/app_run/bin/HWVersion";
  32. QFileInfo linkInfo(linkPath);
  33. if (!linkInfo.exists() || !linkInfo.isSymLink()) {
  34. LOG_WARNING(QString("HWVersion The file does not exist or is a non-connected file."));
  35. return QString();
  36. }
  37. QString targetPath = linkInfo.symLinkTarget();
  38. QFileInfo targetInfo(targetPath);
  39. return targetInfo.fileName();
  40. }