diff --git a/sw/airborne/boards/ardrone/navdata.c b/sw/airborne/boards/ardrone/navdata.c index c57ba6f93c..c3b502efdf 100644 --- a/sw/airborne/boards/ardrone/navdata.c +++ b/sw/airborne/boards/ardrone/navdata.c @@ -34,6 +34,7 @@ #include #include #include +#include #include "navdata.h" #define NAVDATA_PACKET_SIZE 60 @@ -61,6 +62,8 @@ static void navdata_write(const uint8_t *buf, size_t count) ssize_t n = write(nav_fd, buf + written, count - written); if (n < 0) { + if (errno == EAGAIN || errno == EWOULDBLOCK) + continue; perror("navdata_write: Write failed"); // FIXME: what's sensible to do at this point? return;