aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorLorenz Meier <lm@inf.ethz.ch>2013-08-31 11:21:57 +0200
committerLorenz Meier <lm@inf.ethz.ch>2013-08-31 11:21:57 +0200
commit7292e8c7220eb473fef5eb3a95a11fefd1d1e7e8 (patch)
tree0b59c71ac5d2386bbe95f20917b73b5882ae2a35 /src
parentff14a1192c1111747a9d91c800a9e7b10e66b678 (diff)
downloadpx4-firmware-7292e8c7220eb473fef5eb3a95a11fefd1d1e7e8.tar.gz
px4-firmware-7292e8c7220eb473fef5eb3a95a11fefd1d1e7e8.tar.bz2
px4-firmware-7292e8c7220eb473fef5eb3a95a11fefd1d1e7e8.zip
Hotfix for mavlink logbuffer, needs another round of validation.
Diffstat (limited to 'src')
-rw-r--r--src/modules/mavlink/mavlink.c5
-rw-r--r--src/modules/systemlib/mavlink_log.c8
2 files changed, 12 insertions, 1 deletions
diff --git a/src/modules/mavlink/mavlink.c b/src/modules/mavlink/mavlink.c
index d7b0fa9c7..78e01cefb 100644
--- a/src/modules/mavlink/mavlink.c
+++ b/src/modules/mavlink/mavlink.c
@@ -516,7 +516,7 @@ void mavlink_update_system(void)
int mavlink_thread_main(int argc, char *argv[])
{
/* initialize mavlink text message buffering */
- mavlink_logbuffer_init(&lb, 5);
+ mavlink_logbuffer_init(&lb, 2);
int ch;
char *device_name = "/dev/ttyS1";
@@ -738,6 +738,9 @@ int mavlink_thread_main(int argc, char *argv[])
/* Reset the UART flags to original state */
tcsetattr(uart, TCSANOW, &uart_config_original);
+ /* destroy log buffer */
+ mavlink_logbuffer_destroy(&lb);
+
thread_running = false;
exit(0);
diff --git a/src/modules/systemlib/mavlink_log.c b/src/modules/systemlib/mavlink_log.c
index 27608bdbf..03ca71375 100644
--- a/src/modules/systemlib/mavlink_log.c
+++ b/src/modules/systemlib/mavlink_log.c
@@ -54,6 +54,14 @@ __EXPORT void mavlink_logbuffer_init(struct mavlink_logbuffer *lb, int size)
lb->elems = (struct mavlink_logmessage *)calloc(lb->size, sizeof(struct mavlink_logmessage));
}
+__EXPORT void mavlink_logbuffer_destroy(struct mavlink_logbuffer *lb)
+{
+ lb->size = 0;
+ lb->start = 0;
+ lb->count = 0;
+ free(lb->elems);
+}
+
__EXPORT int mavlink_logbuffer_is_full(struct mavlink_logbuffer *lb)
{
return lb->count == (int)lb->size;