Skip to content
Snippets Groups Projects
Commit 49ddb3e0 authored by Matthew Lloyd's avatar Matthew Lloyd Committed by Randy Mackay
Browse files

AP_Compass: avoid division by zero if we haven't received any mag reports

Otherwise, get_field() will return NaNs after once every few calls to
read() during compassmot on PX4 platforms, which causes compassmot to fail.

This is a quick hack around the deeper issue, which could be something
like the PX4 mag driver experiencing starvation and skipping mag reports,
buffer overrun or something else that causes mag reports to be dropped.
Or perhaps we should never expect in the first place that we will always
receive at least one mag report between calls to read().
parent bf65b73f
No related merge requests found
......@@ -92,6 +92,9 @@ bool AP_Compass_PX4::read(void)
}
for (uint8_t i=0; i<_num_instances; i++) {
// avoid division by zero if we haven't received any mag reports
if (_count[i] == 0) continue;
_sum[i] /= _count[i];
_sum[i] *= 1000;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment