diff --git a/src/modules/logger/log_writer.h b/src/modules/logger/log_writer.h index 07ebbee387..1285685da1 100644 --- a/src/modules/logger/log_writer.h +++ b/src/modules/logger/log_writer.h @@ -65,6 +65,11 @@ public: void stop_log(); + /** + * whether logging is currently active or not. + */ + bool is_started() const { return _should_run; } + /** * Write data to be logged. The caller must call lock() before calling this. * @param dropout_start timestamp when lastest dropout occured. 0 if no dropout at the moment. diff --git a/src/modules/logger/logger.cpp b/src/modules/logger/logger.cpp index 3deacc3194..0de68d20bd 100644 --- a/src/modules/logger/logger.cpp +++ b/src/modules/logger/logger.cpp @@ -215,7 +215,7 @@ int Logger::start(char *const *argv) void Logger::status() { - if (!_enabled) { + if (!_writer.is_started()) { PX4_INFO("Running, but not logging"); } else { @@ -225,7 +225,7 @@ void Logger::status() } void Logger::print_statistics() { - if (!_enabled) { + if (!_writer.is_started()) { return; } @@ -637,6 +637,7 @@ void Logger::run() PX4_ERR("init of writer failed (alloc failed)"); return; } + pthread_t writer_thread; int ret = _writer.thread_start(writer_thread); @@ -693,7 +694,7 @@ void Logger::run() } } - if (_enabled) { + if (_writer.is_started()) { bool data_written = false; @@ -1048,7 +1049,7 @@ bool Logger::get_log_time(struct tm *tt, bool boot_time) void Logger::start_log() { - if (_enabled) { + if (_writer.is_started()) { return; } @@ -1072,17 +1073,15 @@ void Logger::start_log() write_parameters(); write_all_add_logged_msg(); _writer.notify(); - _enabled = true; _start_time = hrt_absolute_time(); } void Logger::stop_log() { - if (!_enabled) { + if (!_writer.is_started()) { return; } - _enabled = false; _writer.stop_log(); } diff --git a/src/modules/logger/logger.h b/src/modules/logger/logger.h index a6fbd2ab8c..4c50f90ab0 100644 --- a/src/modules/logger/logger.h +++ b/src/modules/logger/logger.h @@ -219,7 +219,6 @@ private: char _log_dir[LOG_DIR_LEN]; char _log_file_name[32]; bool _has_log_dir = false; - bool _enabled = false; bool _was_armed = false; bool _arm_override;