Browse Source

Rover: replaced constrain() with constrain_float()

master
Andrew Tridgell 12 years ago
parent
commit
b13406859f
  1. 6
      APMrover2/GCS_Mavlink.pde
  2. 4
      APMrover2/Steering.pde
  3. 2
      APMrover2/navigation.pde
  4. 2
      APMrover2/test.pde

6
APMrover2/GCS_Mavlink.pde

@ -1595,17 +1595,17 @@ void GCS_MAVLINK::handleMessage(mavlink_message_t* msg) @@ -1595,17 +1595,17 @@ void GCS_MAVLINK::handleMessage(mavlink_message_t* msg)
} else if (var_type == AP_PARAM_INT32) {
if (packet.param_value < 0) rounding_addition = -rounding_addition;
float v = packet.param_value+rounding_addition;
v = constrain(v, -2147483648.0f, 2147483647.0f);
v = constrain_float(v, -2147483648.0f, 2147483647.0f);
((AP_Int32 *)vp)->set_and_save(v);
} else if (var_type == AP_PARAM_INT16) {
if (packet.param_value < 0) rounding_addition = -rounding_addition;
float v = packet.param_value+rounding_addition;
v = constrain(v, -32768, 32767);
v = constrain_float(v, -32768, 32767);
((AP_Int16 *)vp)->set_and_save(v);
} else if (var_type == AP_PARAM_INT8) {
if (packet.param_value < 0) rounding_addition = -rounding_addition;
float v = packet.param_value+rounding_addition;
v = constrain(v, -128, 127);
v = constrain_float(v, -128, 127);
((AP_Int8 *)vp)->set_and_save(v);
} else {
// we don't support mavlink set on this parameter

4
APMrover2/Steering.pde

@ -92,7 +92,7 @@ static void calc_throttle(float target_speed) @@ -92,7 +92,7 @@ static void calc_throttle(float target_speed)
SPEED_TURN_GAIN percentage.
*/
float steer_rate = fabsf((nav_steer_cd/nav_gain_scaler) / (float)SERVO_MAX);
steer_rate = constrain(steer_rate, 0.0, 1.0);
steer_rate = constrain_float(steer_rate, 0.0, 1.0);
float reduction = 1.0 - steer_rate*(100 - g.speed_turn_gain)*0.01;
if (control_mode >= AUTO && wp_distance <= g.speed_turn_dist) {
@ -129,7 +129,7 @@ static void calc_nav_steer() @@ -129,7 +129,7 @@ static void calc_nav_steer()
} else {
nav_gain_scaler = g.speed_cruise / ground_speed;
}
nav_gain_scaler = constrain(nav_gain_scaler, 0.2f, 1.4f);
nav_gain_scaler = constrain_float(nav_gain_scaler, 0.2f, 1.4f);
// Calculate the required turn of the wheels rover
// ----------------------------------------

2
APMrover2/navigation.pde

@ -52,7 +52,7 @@ static void update_crosstrack(void) @@ -52,7 +52,7 @@ static void update_crosstrack(void)
// ----------------
if (abs(wrap_180_cd(target_bearing - crosstrack_bearing)) < 4500) { // If we are too far off or too close we don't do track following
crosstrack_error = sinf(radians((target_bearing - crosstrack_bearing) / (float)100)) * wp_distance; // Meters we are off track line
nav_bearing += constrain(crosstrack_error * g.crosstrack_gain, -g.crosstrack_entry_angle.get(), g.crosstrack_entry_angle.get());
nav_bearing += constrain_float(crosstrack_error * g.crosstrack_gain, -g.crosstrack_entry_angle.get(), g.crosstrack_entry_angle.get());
nav_bearing = wrap_360_cd(nav_bearing);
}
}

2
APMrover2/test.pde

@ -154,7 +154,7 @@ test_radio(uint8_t argc, const Menu::arg *argv) @@ -154,7 +154,7 @@ test_radio(uint8_t argc, const Menu::arg *argv)
// ------------------------------
set_servos();
tuning_value = constrain(((float)(g.rc_7.radio_in - g.rc_7.radio_min) / (float)(g.rc_7.radio_max - g.rc_7.radio_min)),0,1);
tuning_value = constrain_float(((float)(g.rc_7.radio_in - g.rc_7.radio_min) / (float)(g.rc_7.radio_max - g.rc_7.radio_min)),0,1);
cliSerial->printf_P(PSTR("IN 1: %d\t2: %d\t3: %d\t4: %d\t5: %d\t6: %d\t7: %d\t8: %d Tuning = %2.3f\n"),
g.channel_steer.control_in,

Loading…
Cancel
Save