Index: sources/ApplicationController.cpp =================================================================== diff -u -rc9f8f8cf3c6c37fc6460d8675c62c9442c4d4263 -re64766e5551e32c3ffd55c6b1fcb222128a1c325 --- sources/ApplicationController.cpp (.../ApplicationController.cpp) (revision c9f8f8cf3c6c37fc6460d8675c62c9442c4d4263) +++ sources/ApplicationController.cpp (.../ApplicationController.cpp) (revision e64766e5551e32c3ffd55c6b1fcb222128a1c325) @@ -145,7 +145,10 @@ this , SLOT( onExport ())); connect(&_Logger , SIGNAL(didExportStat (quint32, const QString &, quint8)), this , SLOT( onExportStat (quint32, const QString &, quint8))); + connect(&_Logger , SIGNAL(didLogIOFailed ()), + this , SIGNAL(didIOFailedLogs ())); + // Settings - move to application thread connect(this, SIGNAL(didSettingsInit()), this, SLOT( onSettingsInit())); Index: sources/ApplicationController.h =================================================================== diff -u -rc9f8f8cf3c6c37fc6460d8675c62c9442c4d4263 -re64766e5551e32c3ffd55c6b1fcb222128a1c325 --- sources/ApplicationController.h (.../ApplicationController.h) (revision c9f8f8cf3c6c37fc6460d8675c62c9442c4d4263) +++ sources/ApplicationController.h (.../ApplicationController.h) (revision e64766e5551e32c3ffd55c6b1fcb222128a1c325) @@ -134,6 +134,8 @@ void didSDCardSpaceChange(bool vReady, qint64 vTotal, qint64 vAvailable, quint8 vPercent); void didSDCardSpaceTooLow(quint8 vAvailablePercent); + void didIOFailedLogs(); + void didExport (); void didExportStat (quint32 vIndex, const QString &vFileName, quint8 vPercent); /*! Index: sources/device/DeviceController.cpp =================================================================== diff -u -r7c86f3854db9ad02d95681203198d75a0d65c9fa -re64766e5551e32c3ffd55c6b1fcb222128a1c325 --- sources/device/DeviceController.cpp (.../DeviceController.cpp) (revision 7c86f3854db9ad02d95681203198d75a0d65c9fa) +++ sources/device/DeviceController.cpp (.../DeviceController.cpp) (revision e64766e5551e32c3ffd55c6b1fcb222128a1c325) @@ -657,3 +657,4 @@ { emit didWatchFileChange(vFile); } + Index: sources/gui/GuiController.cpp =================================================================== diff -u -raf8d98b36b427e2b5f4d6659fcf3b58ee79eab6a -re64766e5551e32c3ffd55c6b1fcb222128a1c325 --- sources/gui/GuiController.cpp (.../GuiController.cpp) (revision af8d98b36b427e2b5f4d6659fcf3b58ee79eab6a) +++ sources/gui/GuiController.cpp (.../GuiController.cpp) (revision e64766e5551e32c3ffd55c6b1fcb222128a1c325) @@ -90,6 +90,8 @@ this , SLOT( onSDCardSpaceChange(bool, qint64, qint64, quint8))); connect(&_ApplicationController, SIGNAL(didSDCardSpaceTooLow(quint8)), this , SLOT( onSDCardSpaceTooLow(quint8))); + connect(&_ApplicationController, SIGNAL(didIOFailedLogs()), + this , SLOT(onIOFailedSD ())); // Export connect(&_ApplicationController, SIGNAL(didExport()), @@ -290,7 +292,7 @@ //DEBUG:0: qDebug() << " ***** GuiController " << Storage::SDCard_Base_Path_Name << vIsReady << vIsReadOnly << gDisableSDCFailLogStop; //TODO : May probably need to send the following alarm in case the SD-Card fails after successful post and stop logging as well. - // emit didActionTransmit(GuiActionType::ID_AlarmTriggered, {GuiAlarmID::ALARM_ID_UI_POST_FAILURE_SDCARD ,0,0,0,0,0,0,0}); +// emit didActionTransmit(GuiActionType::ID_AlarmTriggered, {GuiAlarmID::ALARM_ID_UI_POST_FAILURE_SDCARD ,0,0,0,0,0,0,0}); emit didSDCardStateChange(vIsReady, vIsReadOnly); } @@ -371,3 +373,14 @@ AlarmStatusData data = AlarmGenerator::ALARM_ID_HD_COMM_TIMEOUT(); emit didActionReceive(data); } + +/*! + * \brief GuiController::onIOFailed + * \details This slot is when an SD I/O failure is indicated + * \param vFile - the file name. + */ +void GuiController::onIOFailedSD() +{ + qDebug()< HD/DG Index: sources/storage/Logger.cpp =================================================================== diff -u -rc9f8f8cf3c6c37fc6460d8675c62c9442c4d4263 -re64766e5551e32c3ffd55c6b1fcb222128a1c325 --- sources/storage/Logger.cpp (.../Logger.cpp) (revision c9f8f8cf3c6c37fc6460d8675c62c9442c4d4263) +++ sources/storage/Logger.cpp (.../Logger.cpp) (revision e64766e5551e32c3ffd55c6b1fcb222128a1c325) @@ -321,8 +321,10 @@ if (logPathName.isEmpty()) logPathName = _logPathNames[eLogDebug]; _logFileName = logPathName + fileName; - FileHandler::write(_logFileName, mContent + "\r\n", true); + bool isWritten = FileHandler::write(_logFileName, mContent + "\r\n", true); + if(!isWritten) emit didLogIOFailed(); + // console out the log if enabled. if (_enableConsoleOut) { qDebug().noquote() << mContent; @@ -436,6 +438,12 @@ // disabled coco begin validated: This needs user interaction to export to USB device // has been tested manually LOG_DEBUG(QString("Export %1 ended: %2").arg(_logNames[_exportLogsType]).arg(_exportLogsWatcher.result())); + + qDebug()<< "_exportLogsWatcher.result()" << _exportLogsWatcher.result(); + if(!_exportLogsWatcher.result()){ + emit didLogIOFailed(); + return; + } emit didExportLogs(); } // disabled coco end Index: sources/storage/Logger.h =================================================================== diff -u -raf8d98b36b427e2b5f4d6659fcf3b58ee79eab6a -re64766e5551e32c3ffd55c6b1fcb222128a1c325 --- sources/storage/Logger.h (.../Logger.h) (revision af8d98b36b427e2b5f4d6659fcf3b58ee79eab6a) +++ sources/storage/Logger.h (.../Logger.h) (revision e64766e5551e32c3ffd55c6b1fcb222128a1c325) @@ -150,6 +150,7 @@ signals: void didLogPathSet(Logger::LogType vLogType, const QString &vLogPath); + void didLogIOFailed(); public slots: bool init();