Index: sources/cloudsync/CloudSyncController.cpp =================================================================== diff -u -r026721c53d9c1fe9bbf99ce184afdb6610553d1f -r3965beb5e2516db06c7a00e11e6270ffee75ca51 --- sources/cloudsync/CloudSyncController.cpp (.../CloudSyncController.cpp) (revision 026721c53d9c1fe9bbf99ce184afdb6610553d1f) +++ sources/cloudsync/CloudSyncController.cpp (.../CloudSyncController.cpp) (revision 3965beb5e2516db06c7a00e11e6270ffee75ca51) @@ -881,7 +881,7 @@ tmp = vMessage.params[2];//Log upload Rejection Reason mRejectReason = tmp.toUInt(&ok); if ( ! ok ) { toLog(eError_ParamMismatch , {eError_LogUploadRejected, 2}); ok = false; goto lOut; } - toLog(eError_LogUploadRejected , {eError_LogUploadRejected, mLogName, mRejectReason}); + toLog(eError_LogUploadRejected , {eError_LogUploadRejected, mRejectReason, mLogName}); ok = false; } Index: sources/device/DeviceController.cpp =================================================================== diff -u -r57556232c024a703ab87644901c4d65e7d18d1cc -r3965beb5e2516db06c7a00e11e6270ffee75ca51 --- sources/device/DeviceController.cpp (.../DeviceController.cpp) (revision 57556232c024a703ab87644901c4d65e7d18d1cc) +++ sources/device/DeviceController.cpp (.../DeviceController.cpp) (revision 3965beb5e2516db06c7a00e11e6270ffee75ca51) @@ -1003,6 +1003,7 @@ if ( gLogCompress ) { ok = FileHandler::backupFile(fileSrc); } + logTally(QString(), fileDest); ok = QFile::rename(fileSrc + gzipSufx, fileDest + gzipSufx); // Now the serial received and the system is logging in the log with the serial number, @@ -1013,7 +1014,9 @@ fileDest.replace( _Logger.logFileNameHDSN(), _Logger.logFileNameHDSN() + _Logger.fileSeparator() + _Logger.logFileNameHDSN_default() ); if ( ! QFile::exists(fileSrc) ) goto lOut; - ok = FileHandler::backupFile(fileSrc); + if ( gLogCompress ) { + ok = FileHandler::backupFile(fileSrc); + } ok = QFile::rename(fileSrc + gzipSufx, fileDest + gzipSufx); } @@ -1038,8 +1041,12 @@ QFileInfo fileInfo(vFileName); QString filePath; QString fileBase(fileInfo.baseName()); + QString regstr = "u\\d*."; + QRegExp reg(regstr); - const QString pendingExt = _Logger.logFileNamePendingSubExt(); + const QString pendingExt; + if (reg.indexIn(fileInfo.completeSuffix()) != -1) { pendingExt = reg.cap(0);} else {ok = false; goto lOut;} + const QString uploadExt = _Logger.logFileNameUploadedSubExt(); const QString fileSufx(fileInfo.completeSuffix().replace(pendingExt, uploadExt)); @@ -1050,44 +1057,28 @@ if ( ! ok ) { LOG_APPED_UI(QString("CS Incorrect log upload type [%1]").arg(fileSufx)); goto lOut; } // DEBUG qDebug() << __FUNCTION__ << "\n" << vFileName << "\n" << fileDest; + logTally(filePath, fileDest); ok = QFile::rename(filePath + vFileName, filePath + fileDest); lOut: return ok; } -bool DeviceController::logDuplicate(const QString &vFileName) +quint8 DeviceController::logTally(const QString &vFilePath, QString &vFileDest) { if ( ! gLogUpload ) return false; // no log Uploaded rename - bool ok = true; - QFileInfo fileInfo(vFileName); - QString filePath; - QString fileDest; - QString fileBase(fileInfo.baseName()); + QString tFileDest = vFileDest; quint8 tally = 0; - const QString pendingExt = _Logger.logFileNamePendingSubExt(); - const QString uploadExt = _Logger.logFileNameUploadedSubExt(); - - Logger::LogType logType = _Logger.logFileLogType(vFileName, filePath); - ok = logType != Logger::eLogNone; - if ( ! ok ) { LOG_APPED_UI(QString("CS Incorrect log upload type [%1]").arg(fileInfo.completeSuffix())); goto lOut; } - // DEBUG qDebug() << __FUNCTION__ << "\n" << vFileName << "\n" << fileDest; - - do { - QString subExt = (tally == 0) ? uploadExt : QString("c%1.").arg(tally); - - QString fileSufx = fileInfo.completeSuffix().replace(pendingExt, subExt); - - fileDest = QString("%1.%2").arg(fileBase, fileSufx); + do { //do while used incase no c*. exists + tFileDest = (tally == 0) ? vFileDest.arg("") : vFileDest.arg(tally); ++tally; + } while (QFile::exists(vFilePath + tFileDest)); - } while (QFile::exists(filePath + fileDest)); + vFileDest = tFileDest; + qDebug() << __FUNCTION__ << "\n" << vFileName << "\n" << vFileDest; - qDebug() << __FUNCTION__ << "\n" << vFileName << "\n" << fileDest; -// ok = QFile::rename(filePath + vFileName, filePath + fileDest); -lOut: - return ok; + return tally; } void DeviceController::onLogUpload(const QString &vFileName, const quint32 &vAccepted, const quint32 &vRejectReason) @@ -1098,9 +1089,9 @@ if (vAccepted) ok = logUpload( vFileName); else{ switch (vRejectReason){ - case CloudSyncController::LogUploadRejectReason_Enum::eLogUpload_NoConnectivity : ok = false; break; //Connectivity Error - case CloudSyncController::LogUploadRejectReason_Enum::eLogUpload_NoCredentials : ok = false; break; //Credential Error - case CloudSyncController::LogUploadRejectReason_Enum::eLogUpload_Duplicate : logUpload( vFileName); break; //Duplicate Error + case CloudSyncController::LogUploadRejectReason_Enum::eLogUpload_NoConnectivity : ok = false; break; //Connectivity Error + case CloudSyncController::LogUploadRejectReason_Enum::eLogUpload_NoCredentials : ok = false; _logUpload = false; break; //Credential Error + case CloudSyncController::LogUploadRejectReason_Enum::eLogUpload_Duplicate : logUpload( vFileName); break; //Duplicate Error } } emit didLogUpload(ok, vFileName); @@ -1148,6 +1139,7 @@ */ void DeviceController::findPendingLogs() { + if ( ! _logUpload ) return; if ( ! gLogUpload ) return; // no log upload pending detection static QString pendingLog = ""; @@ -1161,7 +1153,7 @@ QFileInfoList pendingFiles; QString logLoc = Log_Folder_Base; - QString logExt = QString("*.%1*").arg(_Logger.logFileNamePendingSubExt()); // "*.u.*"; + QString logExt = QString("*.%1*").arg(_Logger.logFileNamePendingSubExt('*')); // "*.u*.*"; for( auto logFolder : { Log_Folder_Application, Log_Folder_Service/*, Log_Folder_CloudSync*/ } ) { pendingFiles = Storage::FileHandler::find( logLoc + logFolder, { logExt } ); // look into the list. Index: sources/device/DeviceController.h =================================================================== diff -u -r57556232c024a703ab87644901c4d65e7d18d1cc -r3965beb5e2516db06c7a00e11e6270ffee75ca51 --- sources/device/DeviceController.h (.../DeviceController.h) (revision 57556232c024a703ab87644901c4d65e7d18d1cc) +++ sources/device/DeviceController.h (.../DeviceController.h) (revision 3965beb5e2516db06c7a00e11e6270ffee75ca51) @@ -217,13 +217,16 @@ QString _macBluetooth = ""; QString _netCloudSync = ""; - bool _hasThread = false; - bool _hasSalt = false; + bool _hasThread = false; + bool _hasSalt = false; + bool _logUpload = true; + //TODO: all of these should use the TimesProcess (instead of QProcess) // to be able to kill the process automatically after the set time out. DEVICE_DEV_DEFINITION_LIST + public slots: bool init(); bool init(QThread &vThread); @@ -284,7 +287,7 @@ bool logBackup(const QString &vFileName); bool logUpload(const QString &vFileName); - bool logDuplicate(const QString &vFileName); + quint8 logTally(const QString &vFilePath, QString &vFileDest); signals: Index: sources/storage/Logger.h =================================================================== diff -u -r52bd89b3860281744d9794f0f003c36c4d59a2dc -r3965beb5e2516db06c7a00e11e6270ffee75ca51 --- sources/storage/Logger.h (.../Logger.h) (revision 52bd89b3860281744d9794f0f003c36c4d59a2dc) +++ sources/storage/Logger.h (.../Logger.h) (revision 3965beb5e2516db06c7a00e11e6270ffee75ca51) @@ -146,8 +146,8 @@ { LogType::eLogTrtmt, "Treatment" }, }; - const char * _logFileNamePendingSubExt = "u."; - const char * _logFileNameUploadedSubExt = "c."; + const char * _logFileNamePendingSubExt = "u%1."; + const char * _logFileNameUploadedSubExt = "c%1."; const char * _logFileNameCompressExt = Storage::gzipExt; const TLogData _logFileNameExt { { LogType::eLogAppED, ".log" }, // Application log @@ -187,12 +187,12 @@ bool _init = false; public: - QString logFileNamePendingSubExt() { - return _logFileNamePendingSubExt; + QString logFileNamePendingSubExt(QString vArg = "") { + return vArg == "" ? _logFileNamePendingSubExt :_logFileNamePendingSubExt.arg(vArg); } - QString logFileNameUploadedSubExt() { - return _logFileNameUploadedSubExt; + QString logFileNameUploadedSubExt(QString vArg = "") { + return vArg == "" ? _logFileNameUploadedSubExt : _logFileNameUploadedSubExt.arg(vArg); } QString logFileNameExt ( LogType vLogType ) {