Skip to content

Commit

Permalink
fix(a380x/eng): XML fix for thrust levers (flybywiresim#9004)
Browse files Browse the repository at this point in the history
* update THR lever angles for detents

* fix throttle drag (disable drag to reverse)

* fix idle detent sound (idle at 0)

* move TOGA to detent sound, keep IdleDetent sound
  • Loading branch information
flogross89 authored Oct 2, 2024
1 parent fe604df commit 3e62926
Show file tree
Hide file tree
Showing 3 changed files with 31 additions and 19 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -115,6 +115,9 @@
<HELPID>HELPID_GAUGE_THROTTLE_THROTTLE</HELPID>
<STEPS_NUMBER>4</STEPS_NUMBER>
<DRAG_CODE>
(L:#POSITION_VAR#, number) 1 &lt; if{
1 (&gt;L:#POSITION_VAR#)
}
(L:#POSITION_VAR#, number) sp0
0 sp1
l0 1 &lt; if{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -793,58 +793,66 @@
</Sound>

<Sound WwiseData="true" WwiseEvent="detent" Continuous="false" ViewPoint="Inside" NodeName="LEVER_THROTTLE_1" LocalVar="A32NX_3D_THROTTLE_LEVER_POSITION_1" Units="PERCENT">
<Range LowerBound="73" UpperBound="77" />
<Range LowerBound="96" UpperBound="100" />
</Sound>

<Sound WwiseData="true" WwiseEvent="detent" Continuous="false" ViewPoint="Inside" NodeName="LEVER_THROTTLE_2" LocalVar="A32NX_3D_THROTTLE_LEVER_POSITION_2" Units="PERCENT">
<Range LowerBound="73" UpperBound="77" />
<Range LowerBound="96" UpperBound="100" />
</Sound>

<Sound WwiseData="true" WwiseEvent="detent" Continuous="false" ViewPoint="Inside" NodeName="LEVER_THROTTLE_3" LocalVar="A32NX_3D_THROTTLE_LEVER_POSITION_3" Units="PERCENT">
<Range LowerBound="73" UpperBound="77" />
<Range LowerBound="96" UpperBound="100" />
</Sound>

<Sound WwiseData="true" WwiseEvent="detent" Continuous="false" ViewPoint="Inside" NodeName="LEVER_THROTTLE_4" LocalVar="A32NX_3D_THROTTLE_LEVER_POSITION_4" Units="PERCENT">
<Range LowerBound="73" UpperBound="77" />
<Range LowerBound="96" UpperBound="100" />
</Sound>

<Sound WwiseData="true" WwiseEvent="detent" Continuous="false" ViewPoint="Inside" NodeName="LEVER_THROTTLE_1" LocalVar="A32NX_3D_THROTTLE_LEVER_POSITION_1" Units="PERCENT">
<Range LowerBound="48" UpperBound="52" />
<Range LowerBound="69" UpperBound="73" />
</Sound>

<Sound WwiseData="true" WwiseEvent="detent" Continuous="false" ViewPoint="Inside" NodeName="LEVER_THROTTLE_2" LocalVar="A32NX_3D_THROTTLE_LEVER_POSITION_2" Units="PERCENT">
<Range LowerBound="48" UpperBound="52" />
<Range LowerBound="69" UpperBound="73" />
</Sound>

<Sound WwiseData="true" WwiseEvent="detent" Continuous="false" ViewPoint="Inside" NodeName="LEVER_THROTTLE_3" LocalVar="A32NX_3D_THROTTLE_LEVER_POSITION_3" Units="PERCENT">
<Range LowerBound="48" UpperBound="52" />
<Range LowerBound="69" UpperBound="73" />
</Sound>

<Sound WwiseData="true" WwiseEvent="detent" Continuous="false" ViewPoint="Inside" NodeName="LEVER_THROTTLE_4" LocalVar="A32NX_3D_THROTTLE_LEVER_POSITION_4" Units="PERCENT">
<Range LowerBound="48" UpperBound="52" />
<Range LowerBound="69" UpperBound="73" />
</Sound>

<Sound WwiseData="true" WwiseEvent="detent" Continuous="false" ViewPoint="Inside" NodeName="LEVER_THROTTLE_1" LocalVar="A32NX_3D_THROTTLE_LEVER_POSITION_1" Units="PERCENT">
<Range LowerBound="52" UpperBound="56" />
</Sound>

<Sound WwiseData="true" WwiseEvent="detent" Continuous="false" ViewPoint="Inside" NodeName="LEVER_THROTTLE_2" LocalVar="A32NX_3D_THROTTLE_LEVER_POSITION_2" Units="PERCENT">
<Range LowerBound="52" UpperBound="56" />
</Sound>

<Sound WwiseData="true" WwiseEvent="detent" Continuous="false" ViewPoint="Inside" NodeName="LEVER_THROTTLE_3" LocalVar="A32NX_3D_THROTTLE_LEVER_POSITION_3" Units="PERCENT">
<Range LowerBound="52" UpperBound="56" />
</Sound>

<Sound WwiseData="true" WwiseEvent="detent" Continuous="false" ViewPoint="Inside" NodeName="LEVER_THROTTLE_4" LocalVar="A32NX_3D_THROTTLE_LEVER_POSITION_4" Units="PERCENT">
<Range LowerBound="52" UpperBound="56" />
</Sound>

<Sound WwiseData="true" WwiseEvent="IdleDetent" Continuous="false" ViewPoint="Inside" NodeName="LEVER_THROTTLE_1" LocalVar="A32NX_3D_THROTTLE_LEVER_POSITION_1" Units="PERCENT">
<Range LowerBound="23" UpperBound="27" />
<Range LowerBound="98" />
<Range UpperBound="0" />
</Sound>

<Sound WwiseData="true" WwiseEvent="IdleDetent" Continuous="false" ViewPoint="Inside" NodeName="LEVER_THROTTLE_2" LocalVar="A32NX_3D_THROTTLE_LEVER_POSITION_2" Units="PERCENT">
<Range LowerBound="23" UpperBound="27" />
<Range LowerBound="98" />
<Range UpperBound="0" />
</Sound>

<Sound WwiseData="true" WwiseEvent="IdleDetent" Continuous="false" ViewPoint="Inside" NodeName="LEVER_THROTTLE_3" LocalVar="A32NX_3D_THROTTLE_LEVER_POSITION_3" Units="PERCENT">
<Range LowerBound="23" UpperBound="27" />
<Range LowerBound="98" />
<Range UpperBound="0" />
</Sound>

<Sound WwiseData="true" WwiseEvent="IdleDetent" Continuous="false" ViewPoint="Inside" NodeName="LEVER_THROTTLE_4" LocalVar="A32NX_3D_THROTTLE_LEVER_POSITION_4" Units="PERCENT">
<Range LowerBound="23" UpperBound="27" />
<Range LowerBound="98" />
<Range UpperBound="0" />
</Sound>

Expand Down
7 changes: 4 additions & 3 deletions fbw-a380x/src/wasm/fbw_a380/src/FlyByWireInterface.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -274,8 +274,8 @@ void FlyByWireInterface::loadConfiguration() {
std::vector<std::pair<double, double>> mappingTable3d;
mappingTable3d.emplace_back(-20.0, 0.0);
mappingTable3d.emplace_back(0.0, 0.0);
mappingTable3d.emplace_back(25.0, 50.0);
mappingTable3d.emplace_back(35.0, 75.0);
mappingTable3d.emplace_back(25.0, 54.0);
mappingTable3d.emplace_back(35.0, 71.0);
mappingTable3d.emplace_back(45.0, 100.0);
idThrottlePositionLookupTable3d.initialize(mappingTable3d, 0, 100);
}
Expand Down Expand Up @@ -2811,7 +2811,8 @@ bool FlyByWireInterface::updateAutothrust(double sampleTime) {

// update warnings
auto fwcFlightPhase = idFwcFlightPhase->get();
if (fwcFlightPhase == 2 || fwcFlightPhase == 3 || fwcFlightPhase == 4 || fwcFlightPhase == 5 || fwcFlightPhase == 10 || fwcFlightPhase == 11) {
if (fwcFlightPhase == 2 || fwcFlightPhase == 3 || fwcFlightPhase == 4 || fwcFlightPhase == 5 || fwcFlightPhase == 10 ||
fwcFlightPhase == 11) {
idAutothrustThrustLeverWarningFlex->set(autoThrustOutput.thrust_lever_warning_flex);
idAutothrustThrustLeverWarningToga->set(autoThrustOutput.thrust_lever_warning_toga);
} else {
Expand Down

0 comments on commit 3e62926

Please sign in to comment.