Browse Source

Hotfix for mavlink logbuffer, needs another round of validation.

sbg
Lorenz Meier 12 years ago
parent
commit
7292e8c722
  1. 5
      src/modules/mavlink/mavlink.c
  2. 8
      src/modules/systemlib/mavlink_log.c

5
src/modules/mavlink/mavlink.c

@ -516,7 +516,7 @@ void mavlink_update_system(void) @@ -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[]) @@ -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);

8
src/modules/systemlib/mavlink_log.c

@ -54,6 +54,14 @@ __EXPORT void mavlink_logbuffer_init(struct mavlink_logbuffer *lb, int size) @@ -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;

Loading…
Cancel
Save