land_detector: get rid of one dot at a time

This commit is contained in:
Ban Siesta 2015-05-25 19:01:34 +01:00 committed by Lorenz Meier
parent 1734b97635
commit 11f80ceb64
1 changed files with 16 additions and 10 deletions

View File

@ -151,20 +151,26 @@ static int land_detector_start(const char *mode)
/* avoid memory fragmentation by not exiting start handler until the task has fully started */ /* avoid memory fragmentation by not exiting start handler until the task has fully started */
const uint32_t timeout = hrt_absolute_time() + 5000000; //5 second timeout const uint32_t timeout = hrt_absolute_time() + 5000000; //5 second timeout
while (!land_detector_task->isRunning()) { /* avoid printing dots just yet and do one sleep before the first check */
usleep(50000); usleep(10000);
printf(".");
fflush(stdout);
if (hrt_absolute_time() > timeout) { /* check if the waiting involving dots and a newline are still needed */
err(1, "start failed - timeout"); if (!land_detector_task->isRunning()) {
land_detector_stop(); while (!land_detector_task->isRunning()) {
exit(1);
printf(".");
fflush(stdout);
usleep(50000);
if (hrt_absolute_time() > timeout) {
err(1, "start failed - timeout");
land_detector_stop();
exit(1);
}
} }
printf("\n");
} }
printf("\n");
//Remember current active mode //Remember current active mode
strncpy(_currentMode, mode, 12); strncpy(_currentMode, mode, 12);