Jump to content
Sign in to follow this  
eslader

How are you guys handling the >4 engine planes?

Recommended Posts

On 6/30/2023 at 1:55 PM, The Flight Level said:

Not sure If this helps, but I thought I would pass this one on.

 

Not one SECOND in that video mentioned throttles lol!


Russell Gough

SE London

spacer.png

Share this post


Link to post
Share on other sites
Posted (edited)

My solution to control all the Latécoère (6) and the “Dornier Do X” (12) engines with a 4 throttle controller.

I defined the 4 lever axes in FSUIPC7 and then put the following modified script into the fsuipc7.exe folder.

Create and use an MSFS controller config with the throttles removed for the Latecoere and Dornier X.

Many thanks to the person who sent me the original code. Note: the script doesn’t work with the Hercules for some reason, I use SPAD.neXt for the Hercules.

 

--=====================================

 

--    File Throttle.lua
    
--    Put this file to the FSUIPC folder that contains the FSUIPC.ini file
    
--    Add the file name to the [AUTO] section of the .ini file like this
    
    --    [AUTO]
    --    1=lua throttle

    --    or (make sure numbering is consistent if the AUTO section already has entries)

    --    [AUTO]
    --    1=lua xyz1
    --    2=lua xyz2
    --    3=lua throttle

----------------------------------------------------------

    --variable definitions

local user_aircraft_type = ""            -- holds name of user aircraft in sim
local number_of_engines = ""            -- how many engines on the current aircraft
local calc_code = ""                    -- string to hold RPN code
local combine_throttles = 0                -- 0 = no, 1 = yes
local My_Aircraft_Type = 0                -- Number assigned to a recognised aircraft


    --this is called whenever new aircraft is loaded in the sim

function aircraft_changed(offset, uat)    
    user_aircraft_type = ipc.readSTR(0x3D00, 256)
    number_of_engines = ipc.readUW(0x0AEC)
    ipc.log("in change_aircraft_name = <"..offset.."  "..user_aircraft_type..">")
    ipc.log("Number of engines = <"..offset.."  "..number_of_engines..">")
    
    if string.find(user_aircraft_type,"Latecoere") then   -- Is this a recognised aircraft
        My_Aircraft_Type = 1
    elseif string.find(user_aircraft_type,"Dornier Do X") then
        My_Aircraft_Type = 2
    else
        My_Aircraft_Type = 0
        os.exit()  -- Not a recognised aircraft, so stop the script.
    end
end


    --this is called when Thrustlever 1 changes

function throttle_lever_1(offset, value)    

    if My_Aircraft_Type == 1 then
        value = ((value + 16384) / 32767.0) * 100.0        -- squeeze value to 0-100
        value = value > 99.0 and 100 or value < 1.0 and 0 or value
        calc_code = value .. " (>A:GENERAL ENG THROTTLE LEVER POSITION:1, Percent) " ..            -- throttle 1
                    value .. " (>A:GENERAL ENG THROTTLE LEVER POSITION:2, Percent) "             -- throttle 2
        ipc.execCalcCode(calc_code)
    elseif My_Aircraft_Type == 2 then
        value = ((value + 16384) / 32767.0) * 100.0        -- squeeze value to 0-100
        value = value > 99.0 and 100 or value < 1.0 and 0 or value
        calc_code = value .. " (>A:GENERAL ENG THROTTLE LEVER POSITION:1, Percent) " ..            -- throttle 1
                    value .. " (>A:GENERAL ENG THROTTLE LEVER POSITION:2, Percent) " ..            -- throttle 2
                    value .. " (>A:GENERAL ENG THROTTLE LEVER POSITION:3, Percent) "             -- throttle 3                    
        ipc.execCalcCode(calc_code)        
    end
end


    --this is called when Thrustlever 2 changes

function throttle_lever_2(offset, value)    
    if My_Aircraft_Type == 1 then
            value = ((value + 16384) / 32767.0) * 100.0                -- squeeze value to 0-100
            value = value > 99.0 and 100 or value < 1.0 and 0 or value
            calc_code = value .. " (>A:GENERAL ENG THROTTLE LEVER POSITION:3, Percent) "         -- throttle 3
            ipc.execCalcCode(calc_code)
    elseif My_Aircraft_Type == 2 then    
            value = ((value + 16384) / 32767.0) * 100.0                -- squeeze value to 0-100
            value = value > 99.0 and 100 or value < 1.0 and 0 or value
            calc_code = value .. " (>A:GENERAL ENG THROTTLE LEVER POSITION:4, Percent) " ..        -- throttle 4
                        value .. " (>A:GENERAL ENG THROTTLE LEVER POSITION:5, Percent) " ..        -- throttle 5
                        value .. " (>A:GENERAL ENG THROTTLE LEVER POSITION:6, Percent) "         -- throttle 6                    
            ipc.execCalcCode(calc_code)
    end
end


    --this is called when Thrustlever 3 changes

function throttle_lever_3(offset, value)    
    if My_Aircraft_Type == 1 then
            value = ((value + 16384) / 32767.0) * 100.0                -- squeeze value to 0-100
            value = value > 99.0 and 100 or value < 1.0 and 0 or value
            calc_code = value .. " (>A:GENERAL ENG THROTTLE LEVER POSITION:4, Percent) "         -- throttle 4
            ipc.execCalcCode(calc_code)
    elseif My_Aircraft_Type == 2 then
            value = ((value + 16384) / 32767.0) * 100.0                -- squeeze value to 0-100
            value = value > 99.0 and 100 or value < 1.0 and 0 or value
            calc_code = value .. " (>A:GENERAL ENG THROTTLE LEVER POSITION:7, Percent) " ..        -- throttle 7
                        value .. " (>A:GENERAL ENG THROTTLE LEVER POSITION:8, Percent) " ..        -- throttle 8
                        value .. " (>A:GENERAL ENG THROTTLE LEVER POSITION:9, Percent) "         -- throttle 9                    
            ipc.execCalcCode(calc_code)
    end
end


    --this is called when Thrustlever 4 changes

function throttle_lever_4(offset, value)    
    if My_Aircraft_Type == 1 then
            value = ((value + 16384) / 32767.0) * 100.0                -- squeeze value to 0-100
            value = value > 99.0 and 100 or value < 1.0 and 0 or value
            calc_code = value .. " (>A:GENERAL ENG THROTTLE LEVER POSITION:5, Percent) " ..        -- throttle 5
                        value .. " (>A:GENERAL ENG THROTTLE LEVER POSITION:6, Percent) "         -- throttle 6
            ipc.execCalcCode(calc_code)
    elseif My_Aircraft_Type == 2 then
            value = ((value + 16384) / 32767.0) * 100.0                -- squeeze value to 0-100
            value = value > 99.0 and 100 or value < 1.0 and 0 or value
            calc_code = value .. " (>A:GENERAL ENG THROTTLE LEVER POSITION:10, Percent) " ..    -- throttle 10                    
                        value .. " (>A:GENERAL ENG THROTTLE LEVER POSITION:11, Percent) " ..    -- throttle 11                        
                        value .. " (>A:GENERAL ENG THROTTLE LEVER POSITION:12, Percent) "         -- throttle 12                        
            ipc.execCalcCode(calc_code)
    end
end


    --callbacks

event.offset (0x3D00, "STR", 64, "aircraft_changed")
event.offset (0x25F0, "SW", "throttle_lever_1")    
event.offset (0x25F2, "SW", "throttle_lever_2")    
event.offset (0x25F4, "SW", "throttle_lever_3")    
event.offset (0x25F6, "SW", "throttle_lever_4")    

--=====================================

 

Edited by smoothchat
  • Like 1

Specs: Win10, 4790K, nVidia 1080ti, Saitek Yoke+Quadrant+Radio/Switch and AP panels, VRInsight 737 overhead, Virtual Avionics 737 MCP. 3 x 1440*900 main display + 1024*600 VDU display. NLR V3 Motion seat. Oculus DK2 CV1 HTC Vive VR headsets.

Share this post


Link to post
Share on other sites
On 6/28/2023 at 5:13 PM, regis9 said:

I have to resort to doing a binding in MSFS rather than FSUIPC where one axis controls all four engines.  I tried a few times to use FSUIPC to bind the left axis to engines 1&2 and the right axis to 3&4 without success on the bae-146.

What is the procedure? If you don't mind. Thanks

Share this post


Link to post
Share on other sites

I use all 4 jet throttles for the bae146. More fun that way for me


Hero X--8086k@5.1ghz--32GBddr4--2080ti--Acer GSync 4k Monitor + 1080p Monitor--Honeycomb Alpha/Bravo+Saitek Pedals--Thrustmaster T16000+Throttle. P2ATC, AIG/FSLTL, GSX, 600gb of scenery, PMS/TDI 750, Auto FPS, FG Mod, FSrealistic, FScrewRAAS,RexTextures/Seasons,Navigraph etc

A2A Comanche---Bae146, F28, Arrow(s), BS Dukes, Bonanza & BS King Air---FSR500--COWS DA42---Fx HJet+VisionJet---FSW 414 +LearJet---FSS E175+P2006T+Analog Version---Fenix 320-------PMDG DC-6+737+9---C22J---Milviz C310+Porter---SWS PC-12, Kodiak, Zenith+RV14---Big Radialsl Goose---IFE MB339+F-35---NextGen EMB----Carenado Seneca + PC12---AS CRJ Series----Asobo ATR---

Share this post


Link to post
Share on other sites
On 6/28/2023 at 3:09 PM, tgsweat said:

I have the bravo and use two throttle levers, so two engines on each lever.  

Exactly what I do, I have the Flightsim Factory Handles \ Lever set, since I fly the Airbus quite a lot and my lazy side kicks in, so I duplicated (modify) my Fenix Bravo Profile in MSFS for the Just Flight BAE146 (I like to fly this lately, since the update). For the 146, the 2 throttle lever setup works fine for me. Actually makes it easier to sync the 4 engines (I know, I'm cheating)😉


i913900KF (5.8GHz) | Case: Fractal PopAir RGB I Gigabyte Z790 UD AX| MSI Gaming RTX 4070Ti Super 16GB | Kingston Fury Beast 32GB DDR5 | SOLIDIGM P41 Plus 2TB NVMe M.2 SSD | Samsung SSD 870 EVO 2TB | Thermalright Frozen Notte 240 MM Liquid Cooling | Samsung 41" Monitor 1920 x 1080 60Hz | Honeycomb Alpha & Bravo | Logitech G Pro pedals | Tobii EyeTracker | 850W Thermaltake 80+ GOLD |

Share this post


Link to post
Share on other sites

I use a CH Throttle Quadrant, and works great at 4 engines aircraft (DC6, B747, A340,etc)

Also reversers work OK for the 4 engines

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Tom Allensworth,
    Founder of AVSIM Online


  • Flight Simulation's Premier Resource!

    AVSIM is a free service to the flight simulation community. AVSIM is staffed completely by volunteers and all funds donated to AVSIM go directly back to supporting the community. Your donation here helps to pay our bandwidth costs, emergency funding, and other general costs that crop up from time to time. Thank you for your support!

    Click here for more information and to see all donations year to date.
×
×
  • Create New...