mirror of
https://bitbucket.org/librepilot/librepilot.git
synced 2025-03-15 07:29:15 +01:00
OP-1474 Make it possible to select axes to scale
This commit is contained in:
parent
f0c47976a5
commit
9a21eed71e
@ -123,11 +123,42 @@ static float get_pid_scale_source_value()
|
||||
return value;
|
||||
}
|
||||
|
||||
static bool is_roll_pid_thrust_scaled()
|
||||
{
|
||||
uint8_t axes = stabSettings.stabBank.ThrustPIDScaleAxes;
|
||||
|
||||
return axes == STABILIZATIONBANK_THRUSTPIDSCALEAXES_ROLLPITCHYAW ||
|
||||
axes == STABILIZATIONBANK_THRUSTPIDSCALEAXES_ROLLPITCH ||
|
||||
axes == STABILIZATIONBANK_THRUSTPIDSCALEAXES_ROLLYAW ||
|
||||
axes == STABILIZATIONBANK_THRUSTPIDSCALEAXES_ROLL;
|
||||
}
|
||||
|
||||
static bool is_pitch_pid_thrust_scaled()
|
||||
{
|
||||
uint8_t axes = stabSettings.stabBank.ThrustPIDScaleAxes;
|
||||
|
||||
return axes == STABILIZATIONBANK_THRUSTPIDSCALEAXES_ROLLPITCHYAW ||
|
||||
axes == STABILIZATIONBANK_THRUSTPIDSCALEAXES_ROLLPITCH ||
|
||||
axes == STABILIZATIONBANK_THRUSTPIDSCALEAXES_PITCHYAW ||
|
||||
axes == STABILIZATIONBANK_THRUSTPIDSCALEAXES_PITCH;
|
||||
}
|
||||
|
||||
static bool is_yaw_pid_thrust_scaled()
|
||||
{
|
||||
uint8_t axes = stabSettings.stabBank.ThrustPIDScaleAxes;
|
||||
|
||||
return axes == STABILIZATIONBANK_THRUSTPIDSCALEAXES_ROLLPITCHYAW ||
|
||||
axes == STABILIZATIONBANK_THRUSTPIDSCALEAXES_ROLLYAW ||
|
||||
axes == STABILIZATIONBANK_THRUSTPIDSCALEAXES_PITCHYAW ||
|
||||
axes == STABILIZATIONBANK_THRUSTPIDSCALEAXES_YAW;
|
||||
}
|
||||
|
||||
static int is_pid_thrust_scaled_for_axis(int axis)
|
||||
{
|
||||
return stabSettings.stabBank.EnableThrustPIDScaling
|
||||
&& (axis == 0 // Roll
|
||||
|| axis == 1); // Pitch
|
||||
&& ((axis == 0 && is_roll_pid_thrust_scaled())
|
||||
|| (axis == 1 && is_pitch_pid_thrust_scaled())
|
||||
|| (axis == 2 && is_yaw_pid_thrust_scaled()));
|
||||
}
|
||||
|
||||
static bool is_p_scaling_enabled()
|
||||
|
@ -19,6 +19,7 @@
|
||||
<field name="ThrustPIDScaleCurve" units="percent" type="float" elementnames="0,25,50,75,100" defaultvalue="0.3,0.15,0,-0.15,-0.3"/>
|
||||
<field name="ThrustPIDScaleSource" units="" type="enum" elements="1" options="ManualControlThrottle,StabilizationDesiredThrust,ActuatorDesiredThrust" defaultvalue="ActuatorDesiredThrust" />
|
||||
<field name="ThrustPIDScaleTarget" units="" type="enum" elements="1" options="PID,PI,PD,ID,P,I,D" defaultvalue="PID" />
|
||||
<field name="ThrustPIDScaleAxes" units="" type="enum" elements="1" options="Roll Pitch Yaw,Roll Pitch,Roll Yaw,Roll,Pitch Yaw,Pitch,Yaw" defaultvalue="Roll Pitch" />
|
||||
|
||||
<access gcs="readwrite" flight="readwrite"/>
|
||||
<telemetrygcs acked="false" updatemode="manual" period="0"/>
|
||||
|
@ -19,6 +19,7 @@
|
||||
<field name="ThrustPIDScaleCurve" units="percent" type="float" elementnames="0,25,50,75,100" defaultvalue="0.3,0.15,0,-0.15,-0.3"/>
|
||||
<field name="ThrustPIDScaleSource" units="" type="enum" elements="1" options="ManualControlThrottle,StabilizationDesiredThrust,ActuatorDesiredThrust" defaultvalue="ActuatorDesiredThrust" />
|
||||
<field name="ThrustPIDScaleTarget" units="" type="enum" elements="1" options="PID,PI,PD,ID,P,I,D" defaultvalue="PID" />
|
||||
<field name="ThrustPIDScaleAxes" units="" type="enum" elements="1" options="Roll Pitch Yaw,Roll Pitch,Roll Yaw,Roll,Pitch Yaw,Pitch,Yaw" defaultvalue="Roll Pitch" />
|
||||
|
||||
<access gcs="readwrite" flight="readwrite"/>
|
||||
<telemetrygcs acked="true" updatemode="onchange" period="0"/>
|
||||
|
@ -19,6 +19,7 @@
|
||||
<field name="ThrustPIDScaleCurve" units="percent" type="float" elementnames="0,25,50,75,100" defaultvalue="0.3,0.15,0,-0.15,-0.3"/>
|
||||
<field name="ThrustPIDScaleSource" units="" type="enum" elements="1" options="ManualControlThrottle,StabilizationDesiredThrust,ActuatorDesiredThrust" defaultvalue="ActuatorDesiredThrust" />
|
||||
<field name="ThrustPIDScaleTarget" units="" type="enum" elements="1" options="PID,PI,PD,ID,P,I,D" defaultvalue="PID" />
|
||||
<field name="ThrustPIDScaleAxes" units="" type="enum" elements="1" options="Roll Pitch Yaw,Roll Pitch,Roll Yaw,Roll,Pitch Yaw,Pitch,Yaw" defaultvalue="Roll Pitch" />
|
||||
|
||||
<access gcs="readwrite" flight="readwrite"/>
|
||||
<telemetrygcs acked="true" updatemode="onchange" period="0"/>
|
||||
|
@ -19,6 +19,7 @@
|
||||
<field name="ThrustPIDScaleCurve" units="percent" type="float" elementnames="0,25,50,75,100" defaultvalue="0.3,0.15,0,-0.15,-0.3"/>
|
||||
<field name="ThrustPIDScaleSource" units="" type="enum" elements="1" options="ManualControlThrottle,StabilizationDesiredThrust,ActuatorDesiredThrust" defaultvalue="ActuatorDesiredThrust" />
|
||||
<field name="ThrustPIDScaleTarget" units="" type="enum" elements="1" options="PID,PI,PD,ID,P,I,D" defaultvalue="PID" />
|
||||
<field name="ThrustPIDScaleAxes" units="" type="enum" elements="1" options="Roll Pitch Yaw,Roll Pitch,Roll Yaw,Roll,Pitch Yaw,Pitch,Yaw" defaultvalue="Roll Pitch" />
|
||||
|
||||
<access gcs="readwrite" flight="readwrite"/>
|
||||
<telemetrygcs acked="true" updatemode="onchange" period="0"/>
|
||||
|
Loading…
x
Reference in New Issue
Block a user