aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLorenz Meier <lm@inf.ethz.ch>2013-07-18 14:24:32 +0200
committerLorenz Meier <lm@inf.ethz.ch>2013-07-18 14:24:32 +0200
commita5c8d8c5f20584f32acaa03e69681a13799fff6d (patch)
tree076993960e8e1c511ee974ceaaeabee45ee9fb15
parent8d1abf4aa441e1c6c886e8af6ecaab2c3ca6e255 (diff)
downloadpx4-firmware-a5c8d8c5f20584f32acaa03e69681a13799fff6d.tar.gz
px4-firmware-a5c8d8c5f20584f32acaa03e69681a13799fff6d.tar.bz2
px4-firmware-a5c8d8c5f20584f32acaa03e69681a13799fff6d.zip
Robustified accel cal
-rw-r--r--src/modules/commander/accelerometer_calibration.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/src/modules/commander/accelerometer_calibration.c b/src/modules/commander/accelerometer_calibration.c
index 48a36ac26..dc653a079 100644
--- a/src/modules/commander/accelerometer_calibration.c
+++ b/src/modules/commander/accelerometer_calibration.c
@@ -283,6 +283,9 @@ int detect_orientation(int mavlink_fd, int sub_sensor_combined) {
hrt_abstime t = t_start;
hrt_abstime t_prev = t_start;
hrt_abstime t_still = 0;
+
+ unsigned poll_errcount = 0;
+
while (true) {
/* wait blocking for new data */
int poll_ret = poll(fds, 1, 1000);
@@ -327,12 +330,14 @@ int detect_orientation(int mavlink_fd, int sub_sensor_combined) {
}
}
} else if (poll_ret == 0) {
- /* any poll failure for 1s is a reason to abort */
- mavlink_log_info(mavlink_fd, "ERROR: poll failure");
- return -3;
+ poll_errcount++;
}
if (t > t_timeout) {
- mavlink_log_info(mavlink_fd, "ERROR: timeout");
+ poll_errcount++;
+ }
+
+ if (poll_errcount > 1000) {
+ mavlink_log_info(mavlink_fd, "ERROR: failed reading accel");
return -1;
}
}