save for christmas
This commit is contained in:
@@ -25,7 +25,9 @@ public:
|
||||
static bool umountSDCard();
|
||||
|
||||
static std::optional<QString> checkForUSBStick(QString const &dirPathUnderMountPath = ".");
|
||||
static std::optional<QString> checkForSDCard(QString const &dirPathUnderMountPath = ".");
|
||||
static QString getUSBMountPath(QString const &dirPathUnderMountPath = ".");
|
||||
static QString getSDMountPath(QString const &dirPathUnderMountPath = ".");
|
||||
|
||||
//static QString getUSBDeviceName();
|
||||
static bool umountUSBStick();
|
||||
@@ -54,7 +56,8 @@ public:
|
||||
static QString getPTU4MACAddress();
|
||||
|
||||
static QStringList getJsonFilesOnUsbStick(QString const &mountPath);
|
||||
|
||||
static QString getDCFileOnUsbStick(QString const &mountPath);
|
||||
static QString getDCFileOnSDCard(QString const &mountPath);
|
||||
};
|
||||
|
||||
#endif // SYSTEM_H
|
||||
|
@@ -265,6 +265,20 @@ std::optional<QString> System::checkForUSBStick(QString const &dirPathUnderMount
|
||||
return mountPath.isEmpty() ? std::nullopt : std::optional<QString>(mountPath);
|
||||
}
|
||||
|
||||
std::optional<QString> System::checkForSDCard(QString const &dirPathUnderMountPath) {
|
||||
#if defined (ARCH_DesktopLinux)
|
||||
// DEBUG / TEST:
|
||||
if (QFileInfo(getSDMountPath()).isDir())
|
||||
return true;
|
||||
else
|
||||
return false;
|
||||
#endif
|
||||
|
||||
QString const &mountPath = getSDMountPath(dirPathUnderMountPath);
|
||||
// qCritical() << "MOUNT-PATH" << mountPath;
|
||||
return mountPath.isEmpty() ? std::nullopt : std::optional<QString>(mountPath);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
@@ -315,7 +329,7 @@ QString System::getUSBMountPath(QString const &dirPathUnderMountPath) {
|
||||
|
||||
mountLine = line.split(' ');
|
||||
if (mountLine.size() > 3) {
|
||||
qCritical() << "System::getUSBMountPath(): " << mountLine.at(0) << " is mounted on " << mountLine.at(2);
|
||||
// qCritical() << "System::getUSBMountPath(): " << mountLine.at(0) << " is mounted on " << mountLine.at(2);
|
||||
QDir d(QDir::cleanPath(mountLine.at(2) + QDir::separator() + dirPathUnderMountPath));
|
||||
if (d.exists()) {
|
||||
return mountLine.at(2);
|
||||
@@ -332,6 +346,64 @@ QString System::getUSBMountPath(QString const &dirPathUnderMountPath) {
|
||||
return "";
|
||||
}
|
||||
|
||||
QString System::getSDMountPath(QString const &dirPathUnderMountPath) {
|
||||
|
||||
#if defined (ARCH_DesktopLinux)
|
||||
// DEBUG / TEST:
|
||||
return QDir::homePath().append("/APconfigTest/USB");
|
||||
#endif
|
||||
|
||||
QProcess process;
|
||||
process.setProcessChannelMode(QProcess::MergedChannels);
|
||||
|
||||
QStringList mountLine;
|
||||
|
||||
qDebug() << "System::getSDMountPath()";
|
||||
|
||||
QRegExp devRegExp = QRegExp("dev/mmc*", Qt::CaseSensitive, QRegExp::WildcardUnix);
|
||||
QRegExp mountRegExp = QRegExp("media/mmc*", Qt::CaseSensitive, QRegExp::WildcardUnix);
|
||||
|
||||
QString commandString = "mount";
|
||||
|
||||
process.start(commandString);
|
||||
if (!process.waitForStarted()) {
|
||||
errorMsg = "System::getSDMountPath(): ERROR: waitForStarted()";
|
||||
return "";
|
||||
}
|
||||
if (!process.waitForFinished(600000)) {
|
||||
errorMsg = "System::getSDMountPath(): ERROR: " + process.errorString();
|
||||
qDebug() << errorMsg;
|
||||
return "";
|
||||
}
|
||||
else {
|
||||
QByteArray bytes = process.readAll();
|
||||
QStringList lines = QString(bytes).split("\n");
|
||||
foreach (QString line, lines) {
|
||||
qDebug() << "System::getSDMountPath() line: " << line;
|
||||
|
||||
if (line.contains(devRegExp) && line.contains(mountRegExp)) {
|
||||
|
||||
qDebug() << " -> this line is a usb storage device mount" << line;
|
||||
|
||||
mountLine = line.split(' ');
|
||||
if (mountLine.size() > 3) {
|
||||
// qCritical() << "System::getSDMountPath(): " << mountLine.at(0) << " is mounted on " << mountLine.at(2);
|
||||
QDir d(QDir::cleanPath(mountLine.at(2) + QDir::separator() + dirPathUnderMountPath));
|
||||
if (d.exists()) {
|
||||
return mountLine.at(2);
|
||||
} else {
|
||||
qCritical() << "directory" << d.absolutePath() << "does not exist";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
qDebug() << "System::getSDMountPath() no mounted usb device found!";
|
||||
|
||||
return "";
|
||||
}
|
||||
|
||||
QStringList System::getJsonFilesOnUsbStick(QString const &mountPath) {
|
||||
QStringList jsonFiles;
|
||||
|
||||
@@ -354,6 +426,38 @@ QStringList System::getJsonFilesOnUsbStick(QString const &mountPath) {
|
||||
return jsonFiles;
|
||||
}
|
||||
|
||||
QString System::getDCFileOnUsbStick(QString const &mountPath) {
|
||||
QString dcFile;
|
||||
|
||||
// /media/sda2/etc/dc
|
||||
QString const &dirPath = QDir::cleanPath(mountPath + QDir::separator() + "etc" + QDir::separator() + "dc");
|
||||
QDir d(dirPath);
|
||||
if (d.exists()) {
|
||||
QFileInfo fi(dirPath + QDir::separator() + "dc2c.bin");
|
||||
if (fi.exists()) {
|
||||
dcFile = fi.absoluteFilePath();
|
||||
}
|
||||
}
|
||||
|
||||
return dcFile;
|
||||
}
|
||||
|
||||
QString System::getDCFileOnSDCard(QString const &mountPath) {
|
||||
QString dcFile;
|
||||
|
||||
// /media/sda2/etc/dc
|
||||
QString const &dirPath = QDir::cleanPath(mountPath + QDir::separator() + "etc" + QDir::separator() + "dc");
|
||||
QDir d(dirPath);
|
||||
if (d.exists()) {
|
||||
QFileInfo fi(dirPath + QDir::separator() + "dc2c.bin");
|
||||
if (fi.exists()) {
|
||||
dcFile = fi.absoluteFilePath();
|
||||
}
|
||||
}
|
||||
|
||||
return dcFile;
|
||||
}
|
||||
|
||||
/********************************************************************************
|
||||
* static function to check if a mounted sd-card is writable.
|
||||
*
|
||||
|
Reference in New Issue
Block a user