Commit f5b8a934 authored by Don Gagne's avatar Don Gagne

Make sure trims are within min/max

parent 2607ff74
...@@ -435,8 +435,9 @@ void PX4RCCalibrationTest::_channelHomePosition(void) ...@@ -435,8 +435,9 @@ void PX4RCCalibrationTest::_channelHomePosition(void)
_mockUAS->emitRemoteControlChannelRawChanged(i, (float)PX4RCCalibration::_rcCalPWMCenterPoint); _mockUAS->emitRemoteControlChannelRawChanged(i, (float)PX4RCCalibration::_rcCalPWMCenterPoint);
} }
// Throttle to low position (throttle is not reversed)/ // Throttle to min - 1 (throttle is not reversed). We do this so that the trim value is below the min value. This should end up
_mockUAS->emitRemoteControlChannelRawChanged(_rgFunctionChannelMap[PX4RCCalibration::rcCalFunctionThrottle], _testMinValue); // being validated and raised to min value. If not, something is wrong with RC Cal code.
_mockUAS->emitRemoteControlChannelRawChanged(_rgFunctionChannelMap[PX4RCCalibration::rcCalFunctionThrottle], _testMinValue - 1);
} }
void PX4RCCalibrationTest::_validateParameters(void) void PX4RCCalibrationTest::_validateParameters(void)
......
...@@ -837,6 +837,12 @@ void PX4RCCalibration::_validateCalibration(void) ...@@ -837,6 +837,12 @@ void PX4RCCalibration::_validateCalibration(void)
case rcCalFunctionYaw: case rcCalFunctionYaw:
case rcCalFunctionRoll: case rcCalFunctionRoll:
case rcCalFunctionPitch: case rcCalFunctionPitch:
// Make sure trim is within min/max
if (info->rcTrim < info->rcMin) {
info->rcTrim = info->rcMin;
} else if (info->rcTrim > info->rcMax) {
info->rcTrim = info->rcMax;
}
break; break;
default: default:
// Non-attitude control channels have calculated trim // Non-attitude control channels have calculated trim
...@@ -858,7 +864,6 @@ void PX4RCCalibration::_validateCalibration(void) ...@@ -858,7 +864,6 @@ void PX4RCCalibration::_validateCalibration(void)
/// @brief Saves the rc calibration values to the board parameters. /// @brief Saves the rc calibration values to the board parameters.
/// @param trimsOnly true: write only trim values, false: write all calibration values
void PX4RCCalibration::_writeCalibration(void) void PX4RCCalibration::_writeCalibration(void)
{ {
if (!_mav) return; if (!_mav) return;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment