|
|
|
@ -128,12 +128,22 @@ void AP_Compass_SITL::_timer()
@@ -128,12 +128,22 @@ void AP_Compass_SITL::_timer()
|
|
|
|
|
} else { |
|
|
|
|
f.rotate(get_board_orientation()); |
|
|
|
|
} |
|
|
|
|
if (i == 0) { |
|
|
|
|
// scale the first compass to simulate sensor scale factor errors
|
|
|
|
|
f *= _sitl->mag_scaling; |
|
|
|
|
// scale the compass to simulate sensor scale factor errors
|
|
|
|
|
f *= _sitl->mag_scaling[i]; |
|
|
|
|
|
|
|
|
|
switch (_sitl->mag_fail[i]) { |
|
|
|
|
case 0: |
|
|
|
|
accumulate_sample(f, _compass_instance[i], 10); |
|
|
|
|
_last_data[i] = f; |
|
|
|
|
break; |
|
|
|
|
case 1: |
|
|
|
|
// no data
|
|
|
|
|
break; |
|
|
|
|
case 2: |
|
|
|
|
// frozen compass
|
|
|
|
|
accumulate_sample(_last_data[i], _compass_instance[i], 10); |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
accumulate_sample(f, _compass_instance[i], 10); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|