aboutsummaryrefslogtreecommitdiff
path: root/src/modules/mavlink
diff options
context:
space:
mode:
authorLorenz Meier <lm@inf.ethz.ch>2013-07-18 14:01:42 +0200
committerLorenz Meier <lm@inf.ethz.ch>2013-07-18 14:01:42 +0200
commit7bf2edc3bf9f04d52c6bd9a64d383acbc2071a00 (patch)
tree001d200d9461e51e3610f76b7fda7f1b507fb701 /src/modules/mavlink
parenta4d0594bd73d6ec24c320380674d94c59a141595 (diff)
downloadpx4-firmware-7bf2edc3bf9f04d52c6bd9a64d383acbc2071a00.tar.gz
px4-firmware-7bf2edc3bf9f04d52c6bd9a64d383acbc2071a00.tar.bz2
px4-firmware-7bf2edc3bf9f04d52c6bd9a64d383acbc2071a00.zip
Script cleanup, WIP on mavlink logging
Diffstat (limited to 'src/modules/mavlink')
-rw-r--r--src/modules/mavlink/mavlink_log.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/modules/mavlink/mavlink_log.c b/src/modules/mavlink/mavlink_log.c
index d9416a08b..192195856 100644
--- a/src/modules/mavlink/mavlink_log.c
+++ b/src/modules/mavlink/mavlink_log.c
@@ -41,16 +41,20 @@
#include <string.h>
#include <stdlib.h>
+#include <stdio.h>
#include <stdarg.h>
#include <mavlink/mavlink_log.h>
+static FILE* text_recorder_fd = NULL;
+
void mavlink_logbuffer_init(struct mavlink_logbuffer *lb, int size)
{
lb->size = size;
lb->start = 0;
lb->count = 0;
lb->elems = (struct mavlink_logmessage *)calloc(lb->size, sizeof(struct mavlink_logmessage));
+ text_recorder_fd = fopen("/fs/microsd/text_recorder.txt", "w");
}
int mavlink_logbuffer_is_full(struct mavlink_logbuffer *lb)
@@ -82,6 +86,13 @@ int mavlink_logbuffer_read(struct mavlink_logbuffer *lb, struct mavlink_logmessa
memcpy(elem, &(lb->elems[lb->start]), sizeof(struct mavlink_logmessage));
lb->start = (lb->start + 1) % lb->size;
--lb->count;
+
+ if (text_recorder_fd) {
+ fwrite(elem->text, 1, strnlen(elem->text, 50), text_recorder_fd);
+ fputc("\n", text_recorder_fd);
+ fsync(text_recorder_fd);
+ }
+
return 0;
} else {