new logger

This commit is contained in:
Daniel Agar
2016-05-14 11:27:07 +02:00
committed by Lorenz Meier
parent 9a0e962cbf
commit dcdeefd5ea
4 changed files with 29 additions and 31 deletions
+1 -1
View File
@@ -31,7 +31,7 @@ then
then then
fi fi
else else
if logger start -b 20 if logger start -b 32
then then
fi fi
fi fi
+27 -28
View File
@@ -22,23 +22,11 @@ LogWriter::LogWriter(uint8_t *buffer, size_t buffer_size) :
void LogWriter::start_log(const char *filename) void LogWriter::start_log(const char *filename)
{ {
::strncpy(_filename, filename, sizeof(_filename)); ::strncpy(_filename, filename, sizeof(_filename));
_fd = ::open(_filename, O_CREAT | O_WRONLY, PX4_O_MODE_666);
if (_fd < 0) {
PX4_WARN("can't open log file %s", _filename);
_should_run = false;
return;
} else {
PX4_WARN("opened log file: %s", _filename);
_should_run = true;
_running = true;
}
// Clear buffer and counters // Clear buffer and counters
_head = 0; _head = 0;
_count = 0; _count = 0;
_total_written = 0; _total_written = 0;
_should_run = true;
notify(); notify();
} }
@@ -102,7 +90,21 @@ void LogWriter::run()
} }
while (!_exit_thread) { while (!_exit_thread) {
// Outer endless loop // Outer endless loop, start new file each time
// _filename must be set before setting _should_run = true
_fd = ::open(_filename, O_CREAT | O_WRONLY, PX4_O_MODE_666);
if (_fd < 0) {
PX4_WARN("can't open log file %s", _filename);
_should_run = false;
continue;
}
PX4_WARN("started, log file: %s", _filename);
_should_run = true;
int poll_count = 0; int poll_count = 0;
int written = 0; int written = 0;
@@ -162,25 +164,22 @@ void LogWriter::run()
_total_written += written; _total_written += written;
} }
if (_running && !_should_run && written == static_cast<int>(available) && !is_part) { if (!_should_run && written == static_cast<int>(available) && !is_part) {
// Stop only when all data written // Stop only when all data written
_running = false;
_head = 0;
_count = 0;
int res = ::close(_fd);
if (res) {
PX4_WARN("error closing log file");
} else {
PX4_WARN("closed logfile: %s, bytes written: %zu", _filename, _total_written);
}
break; break;
} }
} }
_head = 0;
_count = 0;
int res = ::close(_fd);
if (res) {
PX4_WARN("error closing log file");
}
PX4_WARN("stopped, bytes written: %zu", _total_written);
} }
} }
-1
View File
@@ -63,7 +63,6 @@ private:
size_t _count = 0; size_t _count = 0;
size_t _total_written = 0; size_t _total_written = 0;
bool _should_run = false; bool _should_run = false;
bool _running = false;
bool _exit_thread = false; bool _exit_thread = false;
pthread_mutex_t _mtx; pthread_mutex_t _mtx;
pthread_cond_t _cv; pthread_cond_t _cv;
+1 -1
View File
@@ -356,7 +356,7 @@ void Logger::run()
struct mallinfo alloc_info = {}; struct mallinfo alloc_info = {};
#endif /* DBGPRINT */ #endif /* DBGPRINT */
PX4_WARN("logger started"); PX4_WARN("started");
int mkdir_ret = mkdir(LOG_ROOT, S_IRWXU | S_IRWXG | S_IRWXO); int mkdir_ret = mkdir(LOG_ROOT, S_IRWXU | S_IRWXG | S_IRWXO);