diff options
author | Julian Oes <julian@oes.ch> | 2014-04-26 23:08:11 +0200 |
---|---|---|
committer | Julian Oes <julian@oes.ch> | 2014-04-26 23:08:11 +0200 |
commit | e8531e8360e4f061f3cd69db90365f64837a7c76 (patch) | |
tree | fda98a4bf7bd67f339757f921a01976b45e37236 /src/modules/mavlink/mavlink_main.cpp | |
parent | 3a12cb46487980dbf85f4606e316d9643a2b3b23 (diff) | |
parent | 13dfe0447ccfa4f75b551d02b5c979a6ade4c81a (diff) | |
download | px4-firmware-e8531e8360e4f061f3cd69db90365f64837a7c76.tar.gz px4-firmware-e8531e8360e4f061f3cd69db90365f64837a7c76.tar.bz2 px4-firmware-e8531e8360e4f061f3cd69db90365f64837a7c76.zip |
Merge remote-tracking branch 'px4/ekf_home_init' into navigator_cleanup_ekf_home_init
Conflicts:
src/modules/commander/commander.cpp
src/modules/mc_pos_control/mc_pos_control_main.cpp
src/modules/navigator/navigator_main.cpp
src/modules/uORB/topics/vehicle_global_position.h
Diffstat (limited to 'src/modules/mavlink/mavlink_main.cpp')
-rw-r--r-- | src/modules/mavlink/mavlink_main.cpp | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/src/modules/mavlink/mavlink_main.cpp b/src/modules/mavlink/mavlink_main.cpp index 1ba3d70c6..be4114e73 100644 --- a/src/modules/mavlink/mavlink_main.cpp +++ b/src/modules/mavlink/mavlink_main.cpp @@ -189,9 +189,18 @@ mavlink_send_uart_bytes(mavlink_channel_t channel, const uint8_t *ch, int length /* If the wait until transmit flag is on, only transmit after we've received messages. Otherwise, transmit all the time. */ if (instance->should_transmit()) { - ssize_t ret = write(uart, ch, desired); + + /* check if there is space in the buffer, let it overflow else */ + if (!ioctl(uart, FIONWRITE, (unsigned long)&buf_free)) { + + if (desired > buf_free) { + desired = buf_free; + } + } + + ssize_t ret = write(uart, ch, desired); if (ret != desired) { - // XXX do something here, but change to using FIONWRITE and OS buf size for detection + warnx("TX FAIL"); } } |