void Logger::guiToggleLogger(const NMEA_INFO& gps_info, const SETTINGS_COMPUTER& settings, bool noAsk) { if (isLoggerActive()) { guiStopLogger(gps_info, noAsk); } else { guiStartLogger(gps_info, settings, noAsk); } }
void Logger::guiToggleLogger(const NMEA_INFO& gps_info, const SETTINGS_COMPUTER& settings, const ProtectedTaskManager &protected_task_manager, bool noAsk) { if (isLoggerActive()) { guiStopLogger(gps_info, noAsk); } else { guiStartLogger(gps_info, settings, protected_task_manager, noAsk); } }
void Logger::guiStopLogger(const NMEA_INFO &gps_info, bool noAsk) { if (!isLoggerActive()) return; if (noAsk || (MessageBoxX(_("Stop Logger"), _("Stop Logger"), MB_YESNO | MB_ICONQUESTION) == IDYES)) { Poco::ScopedRWLock protect(lock, true); _logger.StopLogger(gps_info); } }
void Logger::guiStartLogger(const NMEA_INFO& gps_info, const SETTINGS_COMPUTER& settings, const ProtectedTaskManager &protected_task_manager, bool noAsk) { if (isLoggerActive() || gps_info.gps.Replay) return; OrderedTask* task = protected_task_manager.task_clone(); Declaration decl(task); Profile::GetDeclarationConfig(decl, settings.plane); if (task) { delete task; if (!noAsk) { TCHAR TaskMessage[1024]; _tcscpy(TaskMessage, _T("Start Logger With Declaration\r\n")); if (decl.size()) { for (unsigned i = 0; i< decl.size(); ++i) { _tcscat(TaskMessage, decl.get_name(i)); _tcscat(TaskMessage, _T("\r\n")); } } else { _tcscat(TaskMessage, _T("None")); } if (MessageBoxX(TaskMessage, _("Start Logger"), MB_YESNO | MB_ICONQUESTION) != IDYES) return; } } if (!LoggerClearFreeSpace(gps_info)) { MessageBoxX(_("Logger inactive, insufficient storage!"), _("Logger Error"), MB_OK| MB_ICONERROR); LogStartUp(_T("Logger not started: Insufficient Storage")); return; } Poco::ScopedRWLock protect(lock, true); _logger.StartLogger(gps_info, settings, strAssetNumber, decl); }