Jump to content
The simFlight Network Forums

pmdg sdk offset configuration in saitek multipanel


Recommended Posts

Hi

i have Version 4.823 by Pete Dowson, im trying to configurate saitek multipanel with pmdg ngx via offset configuration, i already read the information about PMDG 737NGX external connection SDK

// and offset for pmdg my question is how i must do to configurate this offset?

thanks

Link to comment
Share on other sites

i have Version 4.823 by Pete Dowson

The currently supported version is 4.827.

im trying to configurate saitek multipanel with pmdg ngx via offset configuration, i already read the information about PMDG 737NGX external connection SDK

// and offset for pmdg my question is how i must do to configurate this offset?

What's is this "Saitek Multipanel" intended to do for you? The PMDG mapped offsets for the 737NGX are only for information OUT of the NGX, not controlling it. What driver program have you got which is able to send that information to this panel of yours? Are you writing one or using someone else's?

FSUIPC is not a hardware driver and knows nothing about your "multipanel". If it looks like a reguiar joystick device then FSUIPC can be used, like FSX, to program the buttons and switches, but that would not be using offsets mapped to 737NGX outputs.

Regards

Pete

Link to comment
Share on other sites

Hello pete

I am using spad to configurate the offset but i cant make it work, i select in the fsuipc buttons and switches, offset by word set, the offset parameter for hdg, or other function and theres no result, my question is there any chance to configure the offset to make the sáitek multipanel to work with pmdg ngx?

Thanks

Link to comment
Share on other sites

I am using spad to configurate the offset but i cant make it work, i select in the fsuipc buttons and switches, offset by word set, the offset parameter for hdg, or other function and theres no result, my question is there any chance to configure the offset to make the sáitek multipanel to work with pmdg ngx?

There are no offsets that I know of for controlling PMDG 737NGX values. The offsets mapped are READ ONLY as clearly stated. They provide information FROM the aircraft, not control of the aircraft! This is made clear in the document.

To control the PMDG 737NGX you assign to its controls. Every function and value has a control number, which you can assign. Things like the Heading would be set by a control number and a parameter. As I said in the offset list document, the control numbers are all obtained from the .h file in the PMDG 737NGX SDK installed by their update.

Regards

Pete

Link to comment
Share on other sites

Hello pete

I am using spad to configurate the offset but i cant make it work, i select in the fsuipc buttons and switches, offset by word set, the offset parameter for hdg, or other function and theres no result, my question is there any chance to configure the offset to make the sáitek multipanel to work with pmdg ngx?

Thanks

You can use Spad + FSUIPC to control 737NGX. Try my Lua files.

PMDG737NGX_AP.LUA

-- PMDG NGX737 module v. 1.4 --

-- Jan 2012

-- ## Autopilot switches ###############

meters2feet = 100/2.54/12

feet2meters = 12*2.54/100

function NGX_AP_FD1_toggle ()

ipc.control(70010, 536870912)

ipc.control(70010, 131072)

end

--function NGX_AP_FD1_on ()

if ipcPARAM == 1 then

if ipc.readLvar('ngx_switch_378_a') == 100 then

NGX_AP_FD1_toggle ()

end

end

--function NGX_AP_FD1_off ()

if ipcPARAM == 2 then

if ipc.readLvar('ngx_switch_378_a') == 0 then

NGX_AP_FD1_toggle ()

end

end

function NGX_AP_FD2_toggle ()

ipc.control(70039, 536870912)

ipc.control(70039, 131072)

end

--function NGX_AP_FD2_on ()

if ipcPARAM == 3 then

if ipc.readLvar('ngx_switch_407_a') == 100 then

NGX_AP_FD2_toggle ()

end

end

--function NGX_AP_FD2_off ()

if ipcPARAM == 4 then

if ipc.readLvar('ngx_switch_407_a') == 0 then

NGX_AP_FD2_toggle ()

end

end

--function NGX_AP_FD_both_on ()

if ipcPARAM == 5 then

if ipc.readLvar('ngx_switch_378_a') == 100 then

NGX_AP_FD1_toggle ()

end

if ipc.readLvar('ngx_switch_407_a') == 100 then

NGX_AP_FD2_toggle ()

end

end

--function NGX_AP_FD_both_off ()

if ipcPARAM == 6 then

if ipc.readLvar('ngx_switch_378_a') == 0 then

NGX_AP_FD1_toggle ()

end

if ipc.readLvar('ngx_switch_407_a') == 0 then

NGX_AP_FD2_toggle ()

end

end

function NGX_AP_ATHR_toggle ()

ipc.control(70012, 536870912)

ipc.control(70012, 131072)

end

--function NGX_AP_ATHR_arm ()

if ipcPARAM == 7 then

if ipc.readLvar('ngx_switch_380_a') == 100 then

NGX_AP_ATHR_toggle ()

end

end

--function NGX_AP_ATHR_off ()

if ipcPARAM == 8 then

if ipc.readLvar('ngx_switch_380_a') == 0 then

NGX_AP_ATHR_toggle ()

end

end

function NGX_AP_MASTER_toggle ()

ipc.control(70038, 536870912)

ipc.control(70038, 131072)

end

--function NGX_AP_MASTER_on ()

if ipcPARAM == 9 then

if ipc.readLvar('ngx_switch_406_a') == 100 then

NGX_AP_MASTER_toggle ()

end

end

--function NGX_AP_MASTER_off ()

if ipcPARAM == 10 then

if ipc.readLvar('ngx_switch_406_a') == 0 then

NGX_AP_MASTER_toggle ()

end

end

function NGX_ATHR_soft_disconnect ()

ipc.writeLvar('ngx_switch_682_a', 100);

ipc.control(65860, 536870912)

ipc.sleep(150);

ipc.writeLvar('ngx_switch_682_a', 0);

DspShow ("ATHR", "soft")

end

function NGX_AP_soft_disconnect ()

ipc.writeLvar('ngx_switch_1004_a', 100);

ipc.control(65580, 536870912)

ipc.sleep(150);

ipc.writeLvar('ngx_switch_1004_a', 0);

DspShow (" AP ", "soft")

end

function NGX_AP_TOGA ()

ipc.control(65861, 536870912)

DspShow (" AP ", "TOGA")

end

-- ## Autopilot Dials ###############

function NGX_AP_CRSL_show ()

ipc.sleep(50)

OBS1 = ipc.readLvar("L:ngx_CRSwindowL")

if _MCP1 () then

DspShow("CRSL", OBS1)

else

DspCRS(OBS1)

end

end

function NGX_AP_CRSR_show ()

ipc.sleep(50)

OBS2 = ipc.readLvar("L:ngx_CRSwindowR")

if _MCP1 () then

DspShow("CRSR", OBS2)

else

DspCRS(OBS2)

end

end

--function NGX_AP_CRSL_inc ()

if ipcPARAM == 11 then

ipc.control(70008, 16384)

--NGX_AP_CRSL_show ()

end

function NGX_AP_CRSL_incfast ()

local i

for i = 1, 4 do ipc.control(70008, 16384) end

--NGX_AP_CRSL_show ()

end

--function NGX_AP_CRSL_dec ()

if ipcPARAM == 12 then

ipc.control(70008, 8192)

--NGX_AP_CRSL_show ()

end

function NGX_AP_CRSL_decfast ()

local i

for i = 1, 4 do ipc.control(70008, 8192) end

NGX_AP_CRSL_show ()

end

function NGX_AP_CRSR_inc ()

ipc.control(70041, 16384)

NGX_AP_CRSR_show ()

end

function NGX_AP_CRSR_incfast ()

local i

for i = 1, 4 do ipc.control(70041, 16384) end

NGX_AP_CRSR_show ()

end

function NGX_AP_CRSR_dec ()

ipc.control(70041, 8192)

NGX_AP_CRSR_show ()

end

function NGX_AP_CRSR_decfast ()

local i

for i = 1, 4 do ipc.control(70041, 8192) end

NGX_AP_CRSR_show ()

end

function NGX_AP_CRS_LR_sync ()

-- linking to the current DME selected

mcp_crs_mode = RADIOS_SUBMODE

end

function NGX_AP_CRS_LR_toggle ()

-- toggling value form 1 to 2

-- 1 - left CRS, 2 - right CRS

if _MCP1() then

-- manual toggling

mcp_crs_mode = 3 - mcp_crs_mode

else

-- linking to the current DME selected

mcp_crs_mode = RADIOS_SUBMODE

end

if _MCP1 () then

if mcp_crs_mode == 1 then

DspShow('CRS', 'LEFT')

else

DspShow('CRS', 'RGHT')

end

end

end

function NGX_AP_CRS_LR_inc ()

if mcp_crs_mode == 1 then

NGX_AP_CRSL_inc ()

else

NGX_AP_CRSR_inc ()

end

end

function NGX_AP_CRS_LR_incfast ()

if mcp_crs_mode == 1 then

NGX_AP_CRSL_incfast ()

else

NGX_AP_CRSR_incfast ()

end

end

function NGX_AP_CRS_LR_dec ()

if mcp_crs_mode == 1 then

NGX_AP_CRSL_dec ()

else

NGX_AP_CRSR_dec ()

end

end

function NGX_AP_CRS_LR_decfast ()

if mcp_crs_mode == 1 then

NGX_AP_CRSL_decfast ()

else

NGX_AP_CRSR_decfast ()

end

end

function NGX_AP_SPD_show ()

ipc.sleep(50)

ngx_spd = ipc.readLvar("L:ngx_SPDwindow")

if ngx_spd < 0 then ngx_spd = 0 end

ipc.writeUW(0x07E2,ngx_spd)

end

--function NGX_AP_SPD_inc ()

if ipcPARAM == 13 then

ipc.control(70016, 16384)

NGX_AP_SPD_show ()

end

function NGX_AP_SPD_incfast ()

local i

for i = 1, 4 do ipc.control(70016, 16384) end

NGX_AP_SPD_show ()

end

--function NGX_AP_SPD_dec ()

if ipcPARAM == 14 then

ipc.control(70016, 8192)

NGX_AP_SPD_show ()

end

function NGX_AP_SPD_decfast ()

local i

for i = 1, 4 do ipc.control(70016, 8192) end

NGX_AP_SPD_show ()

end

function NGX_AP_HDG_show ()

ipc.sleep(50)

local ngx_hdg = ipc.readLvar("L:ngx_HDGwindow")

ipc.writeUW(0x07CC, ngx_hdg)

end

function NGX_AP_HDG_BANK_toggle ()

-- toggling value form 1 to 2

-- 1 - HDG, 2 - BANK

mcp_hdg_mode = 3 - mcp_hdg_mode

if mcp_hdg_mode == 1 then

DspShow('HDG', '--')

else

NGX_AP_BANK_show ()

end

end

--function NGX_AP_HDG_inc ()

if ipcPARAM == 15 then

ipc.control(70022, 16384)

--NGX_AP_BANK_inc ()

--NGX_AP_HDG_show ()

end

function NGX_AP_HDG_incfast ()

if mcp_hdg_mode == 1 then

local i

for i = 1, 4 do ipc.control(70022, 16384) end

else

NGX_AP_BANK_inc ()

end

NGX_AP_HDG_show ()

end

--function NGX_AP_HDG_dec ()

if ipcPARAM == 16 then

ipc.control(70022, 8192)

--NGX_AP_BANK_dec ()

--NGX_AP_HDG_show ()

end

function NGX_AP_HDG_decfast ()

if mcp_hdg_mode == 1 then

local i

for i = 1, 4 do ipc.control(70022, 8192) end

else

NGX_AP_BANK_dec ()

end

NGX_AP_HDG_show ()

end

function NGX_AP_BANK_show ()

if ipc.readLvar('ngx_switch_389_a') == 0 then

DspShow ("BANK", " 10")

elseif ipc.readLvar('ngx_switch_389_a') == 10 then

DspShow ("BANK", " 15")

elseif ipc.readLvar('ngx_switch_389_a') == 20 then

DspShow ("BANK", " 20")

elseif ipc.readLvar('ngx_switch_389_a') == 30 then

DspShow ("BANK", " 25")

elseif ipc.readLvar('ngx_switch_389_a') == 40 then

DspShow ("BANK", " 30")

end

end

function NGX_AP_BANK_inc ()

ipc.control(70021, -2147483648)

ipc.control(70021, 524288)

NGX_AP_BANK_show ()

end

function NGX_AP_BANK_dec ()

ipc.control(70021, 536870912)

ipc.control(70021, 131072)

NGX_AP_BANK_show ()

end

function NGX_AP_ALT_show ()

local meters2feet = 100/2.54/12

local feet2meters = 12*2.54/100

ipc.sleep(50)

local ngx_alt = ipc.readLvar("L:ngx_ALTwindow")

-- update bug

local oalt = math.floor(ipc.readUD(0x07D4)*meters2feet/65536 + 0.5)

if (ngx_alt ~= oalt) then

ipc.writeUD(0x07D4, math.floor(ngx_alt*feet2meters*65536 + 0.5))

end

end

--function NGX_AP_ALT_inc ()

if ipcPARAM == 17 then

ipc.control(70032, 16384)

--NGX_AP_ALT_show ()

end

function NGX_AP_ALT_incfast ()

local i

for i = 1, 4 do ipc.control(70032, 16384) end

NGX_AP_ALT_show ()

end

--function NGX_AP_ALT_dec ()

if ipcPARAM == 18 then

ipc.control(70032, 8192)

--NGX_AP_ALT_show ()

end

function NGX_AP_ALT_decfast ()

local i

for i = 1, 4 do ipc.control(70032, 8192) end

NGX_AP_ALT_show ()

end

--function NGX_AP_VS_inc ()

if ipcPARAM == 19 then

ipc.control(70033, 8192)

--NGX_AP_VS_show ()

end

--function NGX_AP_VS_dec ()

if ipcPARAM == 20 then

ipc.control(70033, 16384)

--NGX_AP_VS_show ()

end

function NGX_AP_VS_show ()

ipc.sleep(50)

ngx_vvs = ipc.readLvar("L:ngx_VSwindow")

local vvs = ngx_vvs

if vvs == -20000 then vvs = 0 end

if _MCP1 () then

local val = tostring(math.abs(vvs / 10))

while string.len(val) < 3 do val = '0' .. val end

if vvs == 0 then

val = ' 00 '

elseif vvs > 0 then

val = '+' .. val

else

val = '-' .. val

end

DspShow (" VS ", val)

else

DspVVS(vvs/100)

end

end

-- ## Autopilot buttons ###############

--function NGX_AP_N1 ()

if ipcPARAM == 21 then

for sa = 1, 100, 25 do

ipc.writeLvar("ngx_switch_381_a", sa)

end

for sa = 100, 0, -25 do

ipc.writeLvar("ngx_switch_381_a", sa)

end

ipc.control(70013, 536870912)

ipc.control(70013, 131072)

ipc.sleep(50)

end

--function NGX_AP_SPEED ()

if ipcPARAM == 22 then

for sa = 1, 100, 25 do

ipc.writeLvar("ngx_switch_382_a", sa)

end

for sa = 100, 0, -25 do

ipc.writeLvar("ngx_switch_382_a", sa)

end

ipc.control(70014, 536870912)

ipc.control(70014, 131072)

ipc.sleep(50)

end

--function NGX_AP_CO ()

if ipcPARAM == 23 then

ipc.control(70015, 536870912)

ipc.control(70015, 131072)

--DspShow (" SPD", " C/O")

end

--function NGX_AP_SPD_INTV ()

if ipcPARAM == 24 then

for sa = 1, 100, 25 do

ipc.writeLvar("ngx_switch_383_a", sa)

end

for sa = 100, 0, -25 do

ipc.writeLvar("ngx_switch_383_a", sa)

end

ipc.control(70019, 536870912)

ipc.control(70019, 131072)

--DspShow (" SPD", "INTV")

end

--function NGX_AP_ALT_INTV ()

if ipcPARAM == 24 then

ipc.control(70517, 536870912)

ipc.control(70517, 131072)

--DspShow (" ALT", "INTV")

end

--function NGX_AP_VNAV ()

if ipcPARAM == 25 then

for sa = 1, 100, 25 do

ipc.writeLvar("ngx_switch_386_a", sa)

end

for sa = 100, 0, -25 do

ipc.writeLvar("ngx_switch_386_a", sa)

end

ipc.control(70018, 536870912)

ipc.control(70018, 131072)

ipc.sleep(50)

end

--function NGX_AP_LVLCHG ()

if ipcPARAM == 26 then

for sa = 1, 100, 25 do

ipc.writeLvar("ngx_switch_391_a", sa)

end

for sa = 100, 0, -25 do

ipc.writeLvar("ngx_switch_391_a", sa)

end

ipc.control(70023, 536870912)

ipc.control(70023, 131072)

ipc.sleep(50)

end

--function NGX_AP_HDGSEL ()

if ipcPARAM == 27 then

for sa = 1, 100, 25 do

ipc.writeLvar("ngx_switch_392_a", sa)

end

for sa = 100, 0, -25 do

ipc.writeLvar("ngx_switch_392_a", sa)

end

ipc.control(70024, 536870912)

ipc.control(70024, 131072)

ipc.sleep(50)

end

--function NGX_AP_LNAV ()

if ipcPARAM == 28 then

for sa = 1, 100, 25 do

ipc.writeLvar("ngx_switch_397_a", sa)

end

for sa = 100, 0, -25 do

ipc.writeLvar("ngx_switch_397_a", sa)

end

ipc.control(70029, 536870912)

ipc.control(70029, 131072)

ipc.sleep(50)

end

--function NGX_AP_VORLOC ()

if ipcPARAM == 29 then

for sa = 1, 100, 25 do

ipc.writeLvar("ngx_switch_396_a", sa)

end

for sa = 100, 0, -25 do

ipc.writeLvar("ngx_switch_396_a", sa)

end

ipc.control(70028, 536870912)

ipc.control(70028, 131072)

-- DspShow (" VOR", " LOC")

end

--function NGX_AP_APP ()

if ipcPARAM == 30 then

for sa = 1, 100, 25 do

ipc.writeLvar("ngx_switch_393_a", sa)

end

for sa = 100, 0, -25 do

ipc.writeLvar("ngx_switch_393_a", sa)

end

ipc.control(70025, 536870912)

ipc.control(70025, 131072)

--DspShow (" AP ", " APP")

end

--function NGX_AP_ALTHLD ()

if ipcPARAM == 31 then

for sa = 1, 100, 25 do

ipc.writeLvar("ngx_switch_394_a", sa)

end

for sa = 100, 0, -25 do

ipc.writeLvar("ngx_switch_394_a", sa)

end

ipc.control(70026, 536870912)

ipc.control(70026, 131072)

ipc.sleep(50)

end

--function NGX_AP_VS ()

if ipcPARAM == 32 then

for sa = 1, 100, 25 do

ipc.writeLvar("ngx_switch_395_a", sa)

end

for sa = 100, 0, -25 do

ipc.writeLvar("ngx_switch_395_a", sa)

end

ipc.control(70027, 536870912)

ipc.control(70027, 131072)

ipc.sleep(50)

end

--function NGX_AP_CMDA_toggle ()

if ipcPARAM == 33 then

for sa = 1, 100, 25 do

ipc.writeLvar("ngx_switch_402_a", sa)

end

for sa = 100, 0, -25 do

ipc.writeLvar("ngx_switch_402_a", sa)

end

ipc.control(70034, 536870912)

ipc.control(70034, 131072)

--DspShow (" AP ", "CMDA")

end

--function NGX_AP_CMDB_toggle ()

if ipcPARAM == 34 then

for sa = 1, 100, 25 do

ipc.writeLvar("ngx_switch_403_a", sa)

end

for sa = 100, 0, -25 do

ipc.writeLvar("ngx_switch_403_a", sa)

end

ipc.control(70035, 536870912)

ipc.control(70035, 131072)

--DspShow (" AP ", "CMDB")

end

--function NGX_AP_CWSA ()

if ipcPARAM == 35 then

for sa = 1, 100, 25 do

ipc.writeLvar("ngx_switch_404_a", sa)

end

for sa = 100, 0, -25 do

ipc.writeLvar("ngx_switch_404_a", sa)

end

ipc.control(70036, 536870912)

ipc.control(70036, 131072)

--DspShow (" AP ", "CWSA")

end

--function NGX_AP_CWSB ()

if ipcPARAM == 36 then

for sa = 1, 100, 25 do

ipc.writeLvar("ngx_switch_405_a", sa)

end

for sa = 100, 0, -25 do

ipc.writeLvar("ngx_switch_405_a", sa)

end

ipc.control(70029, 536870912)

ipc.control(70029, 131072)

--DspShow (" AP ", "CWSB")

end

--function NGX_EFIS_ND_MODE_inc ()

if ipcPARAM == 37 then

ipc.control(69991, 16384)

end

--function NGX_EFIS_ND_MODE_dec ()

if ipcPARAM == 38 then

ipc.control(69991, 8192)

end

--function NGX_EFIS_ND_RNG_inc ()

if ipcPARAM == 39 then

ipc.control(69993, 16384)

end

--function NGX_EFIS_ND_RNG_dec ()

if ipcPARAM == 40 then

ipc.control(69993, 8192)

end

--function NGX_GEAR_up ()

if ipcPARAM == 41 then

ipc.control(70087, -2147483648)

end

--function NGX_GEAR_down ()

if ipcPARAM == 42 then

ipc.control(70087, 536870912)

end

And

PMDG737NGX_OVH.LUA

-- PMDG NGX737 module v. 1.4 --

-- Jan 2012

-- ## Lights, external ###############

function NGX_LAND_FIXED_R_on ()

if ipc.readLvar('ngx_switch_114_a') == 0 then

ipc.control(69746, 536870912)

end

end

function NGX_LAND_FIXED_R_off ()

if ipc.readLvar('ngx_switch_114_a') == 100 then

ipc.control(69746, -2147483648)

end

end

function NGX_LAND_FIXED_L_on ()

if ipc.readLvar('ngx_switch_113_a') == 0 then

ipc.control(69745, 536870912)

end

end

function NGX_LAND_FIXED_L_off ()

if ipc.readLvar('ngx_switch_113_a') == 100 then

ipc.control(69745, -2147483648)

end

end

function NGX_LAND_FIXED_BOTH_on ()

NGX_LAND_FIXED_L_on ()

ipc.sleep(100)

NGX_LAND_FIXED_R_on ()

end

function NGX_LAND_FIXED_BOTH_off ()

NGX_LAND_FIXED_L_off ()

ipc.sleep(100)

NGX_LAND_FIXED_R_off ()

end

function NGX_LAND_RETR_R_on ()

ipc.control(69744, 536870912)

ipc.control(69744, 536870912)

end

function NGX_LAND_RETR_R_extend ()

ipc.control(69744, -2147483648)

ipc.control(69744, -2147483648)

ipc.control(69744, 536870912)

end

function NGX_LAND_RETR_R_off ()

ipc.control(69744, -2147483648)

ipc.control(69744, -2147483648)

end

function NGX_LAND_RETR_L_on ()

ipc.control(69743, 536870912)

ipc.control(69743, 536870912)

end

function NGX_LAND_RETR_L_extend ()

ipc.control(69743, -2147483648)

ipc.control(69743, -2147483648)

ipc.control(69743, 536870912)

end

function NGX_LAND_RETR_L_off ()

ipc.control(69743, -2147483648)

ipc.control(69743, -2147483648)

end

function NGX_LAND_RETR_BOTH_on ()

NGX_LAND_RETR_L_on ()

ipc.sleep(100)

NGX_LAND_RETR_R_on ()

end

function NGX_LAND_RETR_BOTH_extend ()

NGX_LAND_RETR_L_extend ()

ipc.sleep(100)

NGX_LAND_RETR_R_extend ()

end

function NGX_LAND_RETR_BOTH_off ()

NGX_LAND_RETR_L_off ()

ipc.sleep(100)

NGX_LAND_RETR_R_off ()

end

--function NGX_LAND_ALL_on ()

if ipcPARAM == 1 then

--DspShow ("LAND", "ON")

ipc.writeLvar('ngx_switch_110_a', 100);

NGX_LAND_RETR_L_on ()

NGX_LAND_RETR_R_on ()

NGX_LAND_FIXED_L_on ()

NGX_LAND_FIXED_R_on ()

ipc.sleep(100)

ipc.writeLvar('ngx_switch_110_a', 0);

end

--function NGX_LAND_ALL_off ()

if ipcPARAM == 2 then

NGX_LAND_RETR_L_off ()

ipc.sleep(100)

NGX_LAND_RETR_R_off ()

ipc.sleep(100)

NGX_LAND_FIXED_L_off ()

ipc.sleep(100)

NGX_LAND_FIXED_R_off ()

end

function NGX_TURNOFF_LEFT_on ()

if ipc.readLvar('ngx_switch_115_a') == 0 then

ipc.control(69747, 536870912)

end

end

function NGX_TURNOFF_LEFT_off ()

if ipc.readLvar('ngx_switch_115_a') == 100 then

ipc.control(69747, 536870912)

end

end

function NGX_TURNOFF_LEFT_toggle ()

ipc.control(69747, 536870912)

end

function NGX_TURNOFF_RIGHT_on ()

if ipc.readLvar('ngx_switch_116_a') == 0 then

ipc.control(69748, 536870912)

end

end

function NGX_TURNOFF_RIGHT_off ()

if ipc.readLvar('ngx_switch_116_a') == 100 then

ipc.control(69748, 536870912)

end

end

function NGX_TURNOFF_RIGHT_toggle ()

ipc.control(69748, 536870912)

end

function NGX_TURNOFF_BOTH_on ()

--if ipcPARAM == 3 then

NGX_TURNOFF_LEFT_on ()

ipc.sleep(100)

NGX_TURNOFF_RIGHT_on ()

end

function NGX_TURNOFF_BOTH_off ()

--if ipcPARAM == 4 then

NGX_TURNOFF_LEFT_off ()

ipc.sleep(100)

NGX_TURNOFF_RIGHT_off ()

end

function NGX_TAXI_on ()

--if ipcPARAM == 5 then

if ipc.readLvar('ngx_switch_117_a') == 0 then

ipc.control(69749, 536870912)

end

end

function NGX_TAXI_off ()

--if ipcPARAM == 6 then

if ipc.readLvar('ngx_switch_117_a') == 100 then

ipc.control(69749, 536870912)

end

end

function NGX_TAXI_toggle ()

ipc.control(69749, 536870912)

end

--function NGX_TAXI_ALL_on ()

if ipcPARAM == 7 then

NGX_TURNOFF_LEFT_on ()

ipc.sleep(100)

NGX_TURNOFF_RIGHT_on ()

ipc.sleep(100)

NGX_TAXI_on ()

end

--function NGX_TAXI_ALL_off ()

if ipcPARAM == 8 then

NGX_TURNOFF_LEFT_off ()

ipc.sleep(100)

NGX_TURNOFF_RIGHT_off ()

ipc.sleep(100)

NGX_TAXI_off ()

end

function NGX_TAXI_ALL_toggle ()

if ipc.readLvar('ngx_switch_117_a') == 0 then

NGX_TAXI_ALL_on ()

else

NGX_TAXI_ALL_off ()

end

end

function NGX_TURNOFF_BOTH_toggle ()

NGX_TURNOFF_LEFT_toggle ()

ipc.sleep(100)

NGX_TURNOFF_RIGHT_toggle ()

end

function NGX_LOGO_on ()

if ipc.readLvar('ngx_switch_122_a') == 0 then

ipc.control(69754, 536870912)

end

end

function NGX_LOGO_off ()

if ipc.readLvar('ngx_switch_122_a') == 100 then

ipc.control(69754, 536870912)

end

end

function NGX_LOGO_toggle ()

if ipc.readLvar('ngx_switch_122_a') == 0 then

NGX_LOGO_on ()

else

NGX_LOGO_off ()

end

end

--function NGX_NAV_strobe ()

if ipcPARAM == 9 then

ipc.control(69755, -2147483648)

ipc.control(69755, -2147483648)

end

--function NGX_NAV_off ()

if ipcPARAM == 10 then

ipc.control(69755, 536870912)

ipc.control(69755, 536870912)

ipc.control(69755, -2147483648)

end

--function NGX_NAV_steady ()

if ipcPARAM == 11 then

ipc.control(69755, 536870912)

ipc.control(69755, 536870912)

end

--function NGX_BEACON_on ()

if ipcPARAM == 14 then

if ipc.readLvar('ngx_switch_124_a') == 0 then

ipc.control(69756, 536870912)

end

end

--function NGX_BEACON_off ()

if ipcPARAM == 15 then

if ipc.readLvar('ngx_switch_124_a') == 100 then

ipc.control(69756, 536870912)

end

end

function NGX_BEACON_toggle ()

if ipc.readLvar('ngx_switch_124_a') == 0 then

NGX_BEACON_on ()

else

NGX_BEACON_off ()

end

end

function NGX_WING_on ()

if ipc.readLvar('ngx_switch_125_a') == 0 then

ipc.control(69757, 536870912)

DspShow ("WING", "ON")

end

end

function NGX_WING_off ()

if ipc.readLvar('ngx_switch_125_a') == 100 then

ipc.control(69757, 536870912)

DspShow ("WING", "OFF")

end

end

function NGX_WING_toggle ()

if ipc.readLvar('ngx_switch_125_a') == 0 then

NGX_WING_on ()

else

NGX_WING_off ()

end

end

function NGX_WHEEL_WELL_on ()

if ipc.readLvar('ngx_switch_126_a') == 0 then

ipc.control(69758, 536870912)

DspShow ("WELL", "ON")

end

end

function NGX_WHEEL_WELL_off ()

if ipc.readLvar('ngx_switch_126_a') == 100 then

ipc.control(69758, 536870912)

DspShow ("WELL", "OFF")

end

end

function NGX_WHEEL_WELL_toggle ()

if ipc.readLvar('ngx_switch_126_a') == 0 then

NGX_WHEEL_WELL_on ()

else

NGX_WHEEL_WELL_off ()

end

end

function NGX_LOGO_and_NAV_steady ()

NGX_LOGO_on ()

NGX_NAV_steady ()

end

function NGX_LOGO_and_NAV_off ()

NGX_LOGO_off ()

NGX_NAV_off ()

end

-- ## Lights, cockpit ###############

function NGX_EMER_lights_armed ()

ELvar = ipc.readLvar("ngx_switch_100_a")

ELcap = ipc.readLvar("ngx_switch_101_a")

if ELcap == 100 then

ipc.control(69733, 536870912) -- cap

end

DspShow ("ELgt", "armd")

end

function NGX_EMER_lights_on ()

ELvar = ipc.readLvar("ngx_switch_100_a")

ELcap = ipc.readLvar("ngx_switch_101_a")

if ELcap == 0 then

ipc.control(69733, 536870912) -- cap

end

_sleep(150, 250)

ipc.control(69732, 536870912) -- inc

ipc.control(69732, 536870912) -- inc

DspShow ("ELgt", "on")

end

function NGX_EMER_lights_off ()

ELvar = ipc.readLvar("ngx_switch_100_a")

ELcap = ipc.readLvar("ngx_switch_101_a")

if ELcap == 0 then

ipc.control(69733, 536870912) -- cap

end

_sleep(150, 250)

ipc.control(69732, -2147483648) -- dec

ipc.control(69732, -2147483648) -- dec

DspShow ("ELgt", "off")

end

function NGX_DOME_dim ()

ipc.control(69890, -2147483648)

ipc.control(69890, 524288)

ipc.sleep(100)

ipc.control(69890, -2147483648)

ipc.control(69890, 524288)

end

function NGX_DOME_bright ()

ipc.control(69890, 536870912)

ipc.control(69890, 131072)

ipc.sleep(100)

ipc.control(69890, 536870912)

ipc.control(69890, 131072)

end

function NGX_DOME_off ()

if ipc.readLvar('ngx_switch_258_a') == 100 then

ipc.control(69890, -2147483648)

ipc.control(69890, 524288)

elseif ipc.readLvar('ngx_switch_258_a') == 0 then

ipc.control(69890, 536870912)

ipc.control(69890, 131072)

end

end

--function NGX_DOME_cycle ()

if ipcPARAM == 16 then

if ipc.readLvar('ngx_switch_258_a') == 100 then

NGX_DOME_off ()

elseif ipc.readLvar('ngx_switch_258_a') == 50 then

NGX_DOME_dim ()

elseif ipc.readLvar('ngx_switch_258_a') == 0 then

NGX_DOME_bright ()

end

end

function NGX_FLOOD_PDST_inc ()

ipc.control(70388, 16384)

end

function NGX_FLOOD_PDST_dec ()

ipc.control(70388, 8192)

end

function NGX_FLOOD_PANEL_inc ()

ipc.control(69969, 16384)

end

function NGX_FLOOD_PANEL_dec ()

ipc.control(69969, 8192)

end

function NGX_FLOOD_MCP_inc ()

ipc.control(69970, 16384)

end

function NGX_FLOOD_MCP_dec ()

ipc.control(69970, 8192)

end

function NGX_LIGHT_OVH_inc ()

ipc.control(69727, 16384)

end

function NGX_LIGHT_OVH_dec ()

ipc.control(69727, 8192)

end

function NGX_LIGHT_CB_inc ()

ipc.control(69726, 16384)

end

function NGX_LIGHT_CB_dec ()

ipc.control(69726, 8192)

end

function NGX_LIGHT_PDST_inc ()

ipc.control(70389, 16384)

end

function NGX_LIGHT_PDST_dec ()

ipc.control(70389, 8192)

end

function NGX_LIGHT_PANEL_L_inc ()

ipc.control(69960, 16384)

end

function NGX_LIGHT_PANEL_L_dec ()

ipc.control(69960, 8192)

end

function NGX_LIGHT_PANEL_R_inc ()

ipc.control(70142, 16384)

end

function NGX_LIGHT_PANEL_R_dec ()

ipc.control(70142, 8192)

end

function NGX_LIGHT_ALL_show ()

local brt = ipc.readLvar('ngx_switch_328_a')

brt = round(brt / 3)

--DspShow ("PANL", tostring(brt) .. '%')

end

function NGX_LIGHT_ALL_inc ()

local i

for i = 1, 5 do

NGX_LIGHT_PANEL_R_inc ()

NGX_LIGHT_PANEL_L_inc ()

NGX_LIGHT_PDST_inc ()

NGX_LIGHT_OVH_inc ()

NGX_LIGHT_CB_inc ()

end

--NGX_LIGHT_ALL_show ()

end

function NGX_LIGHT_ALL_incfast ()

local i

for i = 1, 20 do

NGX_LIGHT_PANEL_R_inc ()

NGX_LIGHT_PANEL_L_inc ()

NGX_LIGHT_PDST_inc ()

NGX_LIGHT_OVH_inc ()

NGX_LIGHT_CB_inc ()

end

NGX_LIGHT_ALL_show ()

end

function NGX_LIGHT_ALL_dec ()

local i

for i = 1, 5 do

NGX_LIGHT_PANEL_R_dec ()

NGX_LIGHT_PANEL_L_dec ()

NGX_LIGHT_PDST_dec ()

NGX_LIGHT_OVH_dec ()

NGX_LIGHT_CB_dec ()

end

NGX_LIGHT_ALL_show ()

end

function NGX_LIGHT_ALL_decfast ()

local i

for i = 1, 20 do

NGX_LIGHT_PANEL_R_dec ()

NGX_LIGHT_PANEL_L_dec ()

NGX_LIGHT_PDST_dec ()

NGX_LIGHT_OVH_dec ()

NGX_LIGHT_CB_dec ()

end

NGX_LIGHT_ALL_show ()

end

function NGX_FLOOD_ALL_show ()

local brt = ipc.readLvar('ngx_switch_337_a')

brt = round(brt / 3)

DspShow ("FLOD", tostring(brt) .. '%')

end

function NGX_FLOOD_ALL_inc ()

local i

for i = 1, 5 do

NGX_FLOOD_MCP_inc ()

NGX_FLOOD_PDST_inc ()

NGX_FLOOD_PANEL_inc ()

end

NGX_FLOOD_ALL_show ()

end

function NGX_FLOOD_ALL_incfast ()

local i

for i = 1, 20 do

NGX_FLOOD_MCP_inc ()

NGX_FLOOD_PDST_inc ()

NGX_FLOOD_PANEL_inc ()

end

NGX_FLOOD_ALL_show ()

end

function NGX_FLOOD_ALL_dec ()

local i

for i = 1, 5 do

NGX_FLOOD_MCP_dec ()

NGX_FLOOD_PDST_dec ()

NGX_FLOOD_PANEL_dec ()

end

NGX_FLOOD_ALL_show ()

end

function NGX_FLOOD_ALL_decfast ()

local i

for i = 1, 20 do

NGX_FLOOD_MCP_dec ()

NGX_FLOOD_PDST_dec ()

NGX_FLOOD_PANEL_dec ()

end

NGX_FLOOD_ALL_show ()

end

-- ## Disp. brightness ###############

function NGX_DU1_INBD_BRT_inc ()

ipc.control(69962, 16384)

end

function NGX_DU1_INBD_BRT_dec ()

ipc.control(69962, 8192)

end

function NGX_DU1_OUTBD_BRT_inc ()

ipc.control(69961, 16384)

end

function NGX_DU1_OUTBD_BRT_dec ()

ipc.control(69961, 8192)

end

function NGX_DU_UPPER_BRT_inc ()

ipc.control(69966, 16384)

end

function NGX_DU_UPPER_BRT_dec ()

ipc.control(69966, 8192)

end

function NGX_DU_LOWER_BRT_inc ()

ipc.control(69964, 16384)

end

function NGX_DU_LOWER_BRT_dec ()

ipc.control(69964, 8192)

end

function NGX_DU2_INBD_BRT_inc ()

ipc.control(70141, 16384)

end

function NGX_DU2_INBD_BRT_dec ()

ipc.control(70141, 8192)

end

function NGX_DU2_OUTBD_BRT_inc ()

ipc.control(70139, 16384)

end

function NGX_DU2_OUTBD_BRT_dec ()

ipc.control(70139, 8192)

end

function NGX_DU_LEFT_BRT_inc ()

NGX_DU1_INBD_BRT_inc ()

NGX_DU1_OUTBD_BRT_inc ()

DspShow ("DU-L", "BRT+")

end

function NGX_DU_LEFT_BRT_incfast ()

local i

for i = 1, 5 do

NGX_DU1_INBD_BRT_inc ()

NGX_DU1_OUTBD_BRT_inc ()

end

DspShow ("DU-L", "BRT+")

end

function NGX_DU_LEFT_BRT_dec ()

NGX_DU1_INBD_BRT_dec ()

NGX_DU1_OUTBD_BRT_dec ()

DspShow ("DU-L", "BRT-")

end

function NGX_DU_LEFT_BRT_decfast ()

local i

for i = 1, 5 do

NGX_DU1_INBD_BRT_dec ()

NGX_DU1_OUTBD_BRT_dec ()

end

DspShow ("DU-L", "BRT-")

end

function NGX_DU_CENTER_inc ()

NGX_DU_UPPER_BRT_inc ()

NGX_DU_LOWER_BRT_inc ()

DspShow ("DU-C", "BRT+")

end

function NGX_DU_CENTER_incfast ()

local i

for i = 1, 5 do

NGX_DU_UPPER_BRT_inc ()

NGX_DU_LOWER_BRT_inc ()

end

DspShow ("DU-C", "BRT+")

end

function NGX_DU_CENTER_dec ()

NGX_DU_UPPER_BRT_dec ()

NGX_DU_LOWER_BRT_dec ()

DspShow ("DU-C", "BRT-")

end

function NGX_DU_CENTER_decfast ()

local i

for i = 1, 5 do

NGX_DU_UPPER_BRT_dec ()

NGX_DU_LOWER_BRT_dec ()

end

DspShow ("DU-C", "BRT-")

end

function NGX_DU_RIGHT_BRT_inc ()

NGX_DU2_INBD_BRT_inc ()

NGX_DU2_OUTBD_BRT_inc ()

DspShow ("DU-R", "BRT+")

end

function NGX_DU_RIGHT_BRT_incfast ()

local i

for i = 1, 5 do

NGX_DU2_INBD_BRT_inc ()

NGX_DU2_OUTBD_BRT_inc ()

end

DspShow ("DU-R", "BRT+")

end

function NGX_DU_RIGHT_BRT_dec ()

NGX_DU2_INBD_BRT_dec ()

NGX_DU2_OUTBD_BRT_dec ()

DspShow ("DU-R", "BRT-")

end

function NGX_DU_RIGHT_BRT_decfast ()

local i

for i = 1, 5 do

NGX_DU2_INBD_BRT_dec ()

NGX_DU2_OUTBD_BRT_dec ()

end

DspShow ("DU-R", "BRT-")

end

function NGX_DU_LR_BRT_inc ()

NGX_DU1_INBD_BRT_inc ()

NGX_DU1_OUTBD_BRT_inc ()

NGX_DU2_INBD_BRT_inc ()

NGX_DU2_OUTBD_BRT_inc ()

DspShow ("DU", "BRT+")

end

function NGX_DU_LR_BRT_incfast ()

local i

for i = 1, 5 do

NGX_DU1_INBD_BRT_inc ()

NGX_DU1_OUTBD_BRT_inc ()

NGX_DU2_INBD_BRT_inc ()

NGX_DU2_OUTBD_BRT_inc ()

end

DspShow ("DU", "BRT+")

end

function NGX_DU_LR_BRT_dec ()

NGX_DU1_INBD_BRT_dec ()

NGX_DU1_OUTBD_BRT_dec ()

NGX_DU2_INBD_BRT_dec ()

NGX_DU2_OUTBD_BRT_dec ()

DspShow ("DU", "BRT-")

end

function NGX_DU_LR_BRT_decfast ()

local i

for i = 1, 5 do

NGX_DU1_INBD_BRT_dec ()

NGX_DU1_OUTBD_BRT_dec ()

NGX_DU2_INBD_BRT_dec ()

NGX_DU2_OUTBD_BRT_dec ()

end

DspShow ("DU", "BRT-")

end

function NGX_DU_ALL_BRT_show ()

local brt = ipc.readLvar('ngx_switch_329_a')

brt = round(brt / 3)

DspShow ("DU", tostring(brt) .. '%')

end

function NGX_DU_ALL_BRT_inc ()

NGX_DU1_INBD_BRT_inc ()

NGX_DU1_OUTBD_BRT_inc ()

NGX_DU_UPPER_BRT_inc ()

NGX_DU_LOWER_BRT_inc ()

NGX_DU2_INBD_BRT_inc ()

NGX_DU2_OUTBD_BRT_inc ()

-- DspShow ("DU", "BRT+")

NGX_DU_ALL_BRT_show ()

end

function NGX_DU_ALL_BRT_incfast ()

local i

for i = 1, 5 do

NGX_DU1_INBD_BRT_inc ()

NGX_DU1_OUTBD_BRT_inc ()

NGX_DU_UPPER_BRT_inc ()

NGX_DU_LOWER_BRT_inc ()

NGX_DU2_INBD_BRT_inc ()

NGX_DU2_OUTBD_BRT_inc ()

end

-- DspShow ("DU", "BRT+")

NGX_DU_ALL_BRT_show ()

end

function NGX_DU_ALL_BRT_dec ()

NGX_DU1_INBD_BRT_dec ()

NGX_DU1_OUTBD_BRT_dec ()

NGX_DU_UPPER_BRT_dec ()

NGX_DU_LOWER_BRT_dec ()

NGX_DU2_INBD_BRT_dec ()

NGX_DU2_OUTBD_BRT_dec ()

-- DspShow ("DU", "BRT-")

NGX_DU_ALL_BRT_show ()

end

function NGX_DU_ALL_BRT_decfast ()

local i

for i = 1, 5 do

NGX_DU1_INBD_BRT_dec ()

NGX_DU1_OUTBD_BRT_dec ()

NGX_DU_UPPER_BRT_dec ()

NGX_DU_LOWER_BRT_dec ()

NGX_DU2_INBD_BRT_dec ()

NGX_DU2_OUTBD_BRT_dec ()

end

-- DspShow ("DU", "BRT-")

NGX_DU_ALL_BRT_show ()

end

-- ## Disp. modes ###############

function NGX_DU1_MAIN_show ()

if ipc.readLvar('ngx_switch_335_a') == 0 then

DspShow ("DUmn", "oPFD")

elseif ipc.readLvar('ngx_switch_335_a') == 10 then

DspShow ("DUmn", "NORM")

elseif ipc.readLvar('ngx_switch_335_a') == 20 then

DspShow ("DUmn", "iENG")

elseif ipc.readLvar('ngx_switch_335_a') == 30 then

DspShow ("DUmn", "iPFD")

elseif ipc.readLvar('ngx_switch_335_a') == 40 then

DspShow ("DUmn", "iMFD")

end

end

function NGX_DU1_MAIN_inc ()

ipc.control(69967, -2147483648)

ipc.control(69967, 524288)

NGX_DU1_MAIN_show ()

end

function NGX_DU1_MAIN_dec ()

ipc.control(69967, 536870912)

ipc.control(69967, 131072)

NGX_DU1_MAIN_show ()

end

function NGX_DU2_MAIN_show ()

if ipc.readLvar('ngx_switch_440_a') == 0 then

DspShow ("DUmn", "oPFD")

elseif ipc.readLvar('ngx_switch_440_a') == 10 then

DspShow ("DUmn", "NORM")

elseif ipc.readLvar('ngx_switch_440_a') == 20 then

DspShow ("DUmn", "iENG")

elseif ipc.readLvar('ngx_switch_440_a') == 30 then

DspShow ("DUmn", "iPFD")

elseif ipc.readLvar('ngx_switch_440_a') == 40 then

DspShow ("DUmn", "iMFD")

end

end

function NGX_DU2_MAIN_inc ()

ipc.control(70072, -2147483648)

ipc.control(70072, 524288)

NGX_DU2_MAIN_show ()

end

function NGX_DU2_MAIN_dec ()

ipc.control(70072, 536870912)

ipc.control(70072, 131072)

NGX_DU2_MAIN_show ()

end

function NGX_DU1_LOWER_show ()

if ipc.readLvar('ngx_switch_336_a') == 0 then

DspShow ("DUlw", "ENG")

elseif ipc.readLvar('ngx_switch_336_a') == 50 then

DspShow ("DUlw", "NORM")

elseif ipc.readLvar('ngx_switch_336_a') == 100 then

DspShow ("DUlw", "ND")

end

end

function NGX_DU1_LOWER_inc ()

ipc.control(69968, -2147483648)

ipc.control(69968, 524288)

NGX_DU1_LOWER_show ()

end

function NGX_DU1_LOWER_dec ()

ipc.control(69968, 536870912)

ipc.control(69968, 131072)

NGX_DU1_LOWER_show ()

end

function NGX_DU2_LOWER_show ()

if ipc.readLvar('ngx_switch_441_a') == 0 then

DspShow ("DUlw", "ENG")

elseif ipc.readLvar('ngx_switch_441_a') == 50 then

DspShow ("DUlw", "NORM")

elseif ipc.readLvar('ngx_switch_441_a') == 100 then

DspShow ("DUlw", "ND")

end

end

function NGX_DU2_LOWER_inc ()

ipc.control(70073, -2147483648)

ipc.control(70073, 524288)

NGX_DU2_LOWER_show ()

end

function NGX_DU2_LOWER_dec ()

ipc.control(70073, 536870912)

ipc.control(70073, 131072)

NGX_DU2_LOWER_show ()

end

function NGX_DU_LOWER_sys ()

ipc.control(70094, 536870912)

DspShow ("DUlw", "SYS")

end

function NGX_DU_LOWER_eng ()

ipc.control(70095, 536870912)

DspShow ("DUlw", "ENG")

end

-- ## Trimmings ###############

--function NGX_ELEV_TRIM_up ()

if ipcPARAM == 18 then

ipc.control(65615)

--ipc.sleep(150)

end

--function NGX_ELEV_TRIM_down ()

if ipcPARAM == 19 then

ipc.control(65607)

--ipc.sleep(150)

end

function NGX_ELEV_TRIM_upfast ()

ipc.control(65615)

ipc.sleep(50)

ipc.control(65615)

ipc.sleep(50)

ipc.control(65615)

ipc.sleep(50)

ipc.control(65615)

ipc.sleep(50)

ipc.control(65615)

ipc.sleep(50)

ipc.control(65615)

ipc.sleep(50)

ipc.control(65615)

ipc.sleep(50)

ipc.control(65615)

ipc.sleep(50)

end

function NGX_ELEV_TRIM_downfast ()

ipc.control(65607)

ipc.sleep(50)

ipc.control(65607)

ipc.sleep(50)

ipc.control(65607)

ipc.sleep(50)

ipc.control(65607)

ipc.sleep(50)

ipc.control(65607)

ipc.sleep(50)

ipc.control(65607)

ipc.sleep(50)

ipc.control(65607)

ipc.sleep(50)

ipc.control(65607)

--ipc.sleep(150)

end

This original from Linda files for PMDG_737NGX i just modify to support Spad with FSUIPC.

Just make Spad send every things as Virtual Joystick then Assign buttons to run Lua Script with parameter equivalent to function listed .

Link to comment
Share on other sites

This original from Linda files for PMDG_737NGX i just modify to support Spad with FSUIPC.

Just make Spad send every things as Virtual Joystick then Assign buttons to run Lua Script with parameter equivalent to function listed .

Hi Billydragon, and thanks for the information above

i am trying to do everything that you told me and i cant make it work, did you use as default configuration in spad or in the manage files you create a PMDG737NGX_AP directory? well i´´ll keep trying or if you can tell me how is composed your modules files i mean to have an idea

thank you

Link to comment
Share on other sites

This original from Linda files for PMDG_737NGX i just modify to support Spad with FSUIPC.

Just make Spad send every things as Virtual Joystick then Assign buttons to run Lua Script with parameter equivalent to function listed .

Hi Billydragon, and thanks for the information above

i am trying to do everything that you told me and i cant make it work, did you use as default configuration in spad or in the manage files you create a PMDG737NGX_AP directory? well i´´ll keep trying or if you can tell me how is composed your modules files i mean to have an idea

thank you

you need to make profile like PAYABLE or HEAVY then change all buttons you want to send FSUIPC Virtual button (NOT FSUIPC OFFSET) try click Send Button to FS you can see FSUIPC received as button the assignment it to lua script i post with parameter.

Link to comment
Share on other sites

Sorry to chimie

If i undesrstand I place PMDG737NGX_AP.LUA inside FSX\Modules

then play with virtual joystick to link as control sent when button pressed in FSuipc.

But then how i link virtual button to a PMDG action i try to LuaSet PMDG737NGX AP and the use a parameter found on your list

but didn't do anyting.

What is the correct method

Thank you

Link to comment
Share on other sites

Sorry to chimie

If i undesrstand I place PMDG737NGX_AP.LUA inside FSX\Modules

then play with virtual joystick to link as control sent when button pressed in FSuipc.

But then how i link virtual button to a PMDG action i try to LuaSet PMDG737NGX AP and the use a parameter found on your list

but didn't do anyting.

What is the correct method

Thank you

I tried that too but doesnt work in that way, the thing is to create a new lua file and then assign manually the buttons via spad, as virtual button, in the list above is provided the information to configure it, well other thing that could be interesting is that peter dowson create a new FS MODULE for pmdg ngx as the IFLYMODULE, that works exelent with the saitek multipanel.

Link to comment
Share on other sites

OK. Step by step as follow:

1. Put file *.lua in FSX/Modules/ folder then restart FSX.

2. SPAD setting to send your buttons as virtual FSUIPC joystick

3. Open FSUIPC in button tab and wait SPAD send button (you can try by click to send in SPAD or real button in Saitek panels)

4. Assignment that button to run LUA PMDG737NGX_AP.LUA (for example) and Parameter need to put number equivalent to function in Lua file.

Note:

Not all function in my script work because i don't need it. Only functions like:

--function NGX_LAND_ALL_on ()

if ipcPARAM == 1 then

--DspShow ("LAND", "ON")

ipc.writeLvar('ngx_switch_110_a', 100);

NGX_LAND_RETR_L_on ()

NGX_LAND_RETR_R_on ()

NGX_LAND_FIXED_L_on ()

NGX_LAND_FIXED_R_on ()

ipc.sleep(100)

ipc.writeLvar('ngx_switch_110_a', 0);

end

--function NGX_LAND_ALL_off ()

if ipcPARAM == 2 then

NGX_LAND_RETR_L_off ()

ipc.sleep(100)

NGX_LAND_RETR_R_off ()

ipc.sleep(100)

NGX_LAND_FIXED_L_off ()

ipc.sleep(100)

NGX_LAND_FIXED_R_off ()

end

Let see : if ipcPARAM == 1 then meaning if Parameter=1 you send to LUA PMDG737NGX_OVH.LUA then this button will turn on all Landing light, set Parameter =2 in this button when release will turn Off Landing light as

--function NGX_LAND_ALL_off ()

if ipcPARAM == 2 then

...

you can get original files action.lua from LINDA aircaft folder change name to as you want (PMDG737.lua or i seperate t to OVH and AP), find function you want then mark function name, replace it by if ipcPARAM = XX, where XX is number you use as parameter FSUIPC will send when assgnment buttons.

Link to comment
Share on other sites

Pete will NOT support Saitek hardware

I think if Peter dosen't want that people ask support for FSUIPC in connection with saitek multipanel, I am shure It would let know everybody and stick a post like someone else has done.

Who knows what are the backstage of all this agreement or illegal aspect between company, when you buy staff you can't be aware if there is any info on forums.

If I knew about all this problem I wold not buy those panel, you are the only one talking about this illegal permission since i start to search for info to use those panel with addons.

Go ahead and post about this manner on all forums that we know like avsim simflight simforum vatsim flightsimworld flightsim just a few if you need support is the best way.

OK. Step by step as follow:

Got it only Autothrottle dosn't work I think there is an error, as you can arm but not disarm.

Thank you.

Link to comment
Share on other sites

Please i need help with the lua files, i do everything that speedbird told me and now when im trying in option button and switches i choose for example the lua PMDGNGXAP.LU and parameter 15 for HDG but nothing happen, my question is? what lua option i must choose for configure the HDG,ALT,SPEED rotary knobs

thanks

Link to comment
Share on other sites

When Pete says he will not add support for Saitek devices, he means that he will not use FSUIPC to directly support them - not that he will not answer users' questions when they are using Saitek devices.

What this means is that Pete will not make Saitek devices work better than they do and he will not add any specific functions or controls for them. Also yes, I can confirm that this is a long standing and well known issue.

Pete does not choose to publicly go around grinding an axe against Saitek for what happened, so that's up to him. All Andy was doing was making you aware of the situation.

Cheers,

Ian P.

Forum Admin Team.

Link to comment
Share on other sites

Got it only Autothrottle dosn't work I think there is an error, as you can arm but not disarm.

Thank you.

Hi Simbio, can you make it work? because i really want to know if that way works fine like billydragon said, well in that case i will need some help configuring it

thanks

Link to comment
Share on other sites

Pete does not choose to publicly go around grinding an axe against Saitek for what happened, so that's up to him. All Andy was doing was making you aware of the situation.

IMHO FSUIPC is one of the main door to let hardware interact with FS, you can read that many simmer, use it to fix their problem for situation.

I think saitek panel and not only have a lot's of handycap on the conception and costumer that payd several hundred euro should be aware of those tedius problem.

If there was more public state cosumer will not get trap on those situation and for shure saitek will change is behave.

People that start to buy hardware like yoke and panel I think they are flyng more then Fsx aircraft and deal with addon such PMDG.

Here a review does it mention about any incompatibility or that the multipanel is not recognize as a standard HID device.

http://www.flightsim.com/main/review/appanel.htm

Hi Simbio, can you make it work? because i really want to know if that way works fine like billydragon said, well in that case i will need some help configuring it

thanks

First there are two file on the post from Billydragon

One is PMDG737NGX_AP.LUA

you must copy and paste from

-- PMDG NGX737 module v. 1.4 --

to

END

The other one is PMDG737NGX_OVH.LUA

same story on pasting on the text.

Place them in FSX\Modules

Normally FSUIPC will recognize them as you start FSX otherwise paste in FSUIPC4.ini those line below

[LuaFiles]

1=PMDG737NGX_AP

2=PMDG737NGX_OVH

Open spad go to multipanel rotary tab chose FSUIPC Virtual Button

Open FSX Go to FSUIPC tab Button+Switches Select FS control

and choose PMDG737NGX_AP

Click send button to Flight Sim

In Parameter of tab Button+Switches field type 15 for HDG clockwise the same that there is in the list from Billydragon if you want you can change the order

--function NGX_AP_HDG_inc ()

if ipcPARAM == 15 then

then go ahead with the same method for couter clockwise and for the other function.

Hope that help

It's similar with the macro method but it's more pawerfull for function like increase fast rotation and other SDK aspect.

Link to comment
Share on other sites

That review is actually a perfect example of very poor reviewing. As you say, the author doesn't mention the lack of ability to use it with anything but default coded aircraft at all, which is a massive ommission. That is exactly the reason I bought a VRinsight M-Panel (more expensive, but a lot better made) after doing some research into the Saitek units.

VRi units are not recognised as HIDs either and use their own software to connect, but there are ways of programming them through FSUIPC if you are so inclined.

At some point I really do have to try bending the VRi M-Panel to my will and doing LUA/Macro programming for it. I have the virtual serial ports emulator to allow FSUIPC to snatch control, but have just never got around to doing it as other things keep jumping into the "to do" list right at the top!

Anyway. Yes, I agree that your point is valid, but whether you want to take that up with Pete on his return is up to you. I won't comment further on it on this thread, just to keep the thread a bit clearer for its intended purpose!

Cheers,

Ian P.

Link to comment
Share on other sites

First there are two file on the post from Billydragon

One is PMDG737NGX_AP.LUA

you must copy and paste from

-- PMDG NGX737 module v. 1.4 --

to

END

The other one is PMDG737NGX_OVH.LUA

same story on pasting on the text.

Place them in FSX\Modules

Normally FSUIPC will recognize them as you start FSX otherwise paste in FSUIPC4.ini those line below

[LuaFiles]

1=PMDG737NGX_AP

2=PMDG737NGX_OVH

Open spad go to multipanel rotary tab chose FSUIPC Virtual Button

Open FSX Go to FSUIPC tab Button+Switches Select FS control

and choose PMDG737NGX_AP

Click send button to Flight Sim

In Parameter of tab Button+Switches field type 15 for HDG clockwise the same that there is in the list from Billydragon if you want you can change the order

--function NGX_AP_HDG_inc ()

if ipcPARAM == 15 then

then go ahead with the same method for couter clockwise and for the other function.

Hope that help

It's similar with the macro method but it's more pawerfull for function like increase fast rotation and other SDK aspect.

Well i do exactly as you told me but theres no action, i have fsuipc version 4.827 updated version, i chose in button and switches -fs controls- lua PMDG737NGX_AP.LUA and parameter 15 for HDG increase everything but no action

i really apreciate your help guys but i go on using the ifly that works great with saitek multipanel due to the ifly module intalled in the modules file

thanks

Link to comment
Share on other sites

Try to clean up file like FSUIPC4.ini i mean remouve it and also the Default.ini inside SPad folder after backup them and restart FSX and Spad.

Try this is

FSUIPC.ini

[buttons]

ButtonRepeat=20,10

1=R1,0,C1001,0

2=U1,0,C1002,0

3=R1,5,K35,8

4=R1,4,K36,8

5=P1,2,K90,8

6=P1,3,C65860,0

7=P2,2,K113,8

8=P2,0,K113,8

9=P2,4,K190,10

10=P2,5,K191,9

11=P64,0,CL1:R,33

12=P64,1,CL1:R,27

13=U64,0,C0,33

14=P64,3,CL1:R,22

15=P64,4,CL1:R,31

16=P64,5,CL1:R,32

17=P65,4,CL1:R,8

18=P65,5,CL1:R,7

19=P64,2,CL1:R,28

20=P64,6,CL1:R,30

21=P65,0,C65595,0

22=P65,1,C65603,0

23=R66,0,CL1:R,17

24=R66,4,CL1:R,13

25=R66,5,CL1:R,14

26=R66,6,CL1:R,16

27=R66,1,CL1:R,18

28=R66,2,CL1:R,19

29=R66,3,CL1:R,20

[LuaFiles]

1=PMDG737NGX_AP

2=PMDG737NGX_OVH

This is in spad

Default.ini

[MultiPanel1]

RotUpActionCRS=VButton,66,9

RotUpActionALT=VButton,66,1

RotDownActionALT=VButton,66,2

ButtonActionAP=VButton,64,1

ButtonActionHDG=VButton,64,2

LongButtonActionAP=None

LongButtonActionHDG=None

AutoThrottleActionOFF=VButton,65,5

AutoThrottleActionARM=VButton,65,6

ButtonActionNAV=VButton,64,3

ButtonActionIAS=VButton,64,4

ButtonActionALT=VButton,64,5

ButtonActionVS=VButton,64,6

ButtonActionAPR=VButton,64,7

ButtonActionREV=VButton,64,8

LongButtonActionNAV=None

LongButtonActionIAS=None

LongButtonActionALT=None

LongButtonActionVS=None

LongButtonActionAPR=None

LongButtonActionREV=None

RotUpActionVS=VButton,66,3

RotUpActionIAS=VButton,66,5

RotUpActionHDG=VButton,66,7

RotDownActionVS=VButton,66,4

RotDownActionIAS=VButton,66,6

RotDownActionHDG=VButton,66,8

RotDownActionCRS=VButton,66,10

FlapsActionDOWN=VButton,65,2

FlapsActionUP=VButton,65,1

Good luck

Link to comment
Share on other sites

Try to clean up file like FSUIPC4.ini i mean remouve it and also the Default.ini inside SPad folder after backup them and restart FSX and Spad.

Hi Fabrizio, i send you my fsuipc.ini file to take a look maybe there is a diferent in the simconnection or something if you can check with your fsuipc.ini file, and i copied the default spad file too as yours

thanks

[General]

UpdatedByVersion=4827

History=07SFD1VZ33UV6SIA00TEW

MouseWheelMove=No

MouseWheelTrim=No

MouseWheelTrimSpeed=1

JoystickTimeout=20

PollGFTQ6=Yes

BlankDisplays=No

FixControlAccel=No

FixMachSpeedBug=No

DeleteVehiclesForAES=Yes

AutoScanDevices=Yes

VisibilityOptions=No

OneCloudLayer=No

CloudTurbulence=No

CloudIcing=No

GenerateCirrus=No

SuppressCloudTurbulence=No

MaxIce=-4

MinIce=-4

UpperWindGusts=No

SuppressWindTurbulence=No

SuppressWindVariance=No

WindTurbulence=No

TurbulenceRate=1.0,5.0

TurbulenceDivisor=20,20,40,40

SuppressAllGusts=No

MaxSurfaceWind=0

WindLimitLevel=200

WindDiscardLevel=400

WindAjustAltitude=No

WindAjustAltitudeBy=2000

SmoothBySimTime=No

WindSmoothing=No

WindSmoothness=2

WindSmoothAirborneOnly=Yes

PressureSmoothness=0

TemperatureSmoothness=0

DisconnTrimForAP=No

ZeroElevForAPAlt=No

ThrottleSyncAll=No

WhiteMessages=No

ShowPMcontrols=No

SpoilerIncrement=512

MagicBattery=No

RudderSpikeRemoval=No

ElevatorSpikeRemoval=No

AileronSpikeRemoval=No

ReversedElevatorTrim=No

ClockSync=No

ClockSyncMins=5

ClearWeatherDynamics=No

OwnWeatherChanges=No

TimeForSelect=4

LoadFlightMenu=No

LoadPlanMenu=No

PauseAfterCrash=No

BrakeReleaseThreshold=75

SaveDataWithFlights=No

ZapSound=firework

ShortAircraftNameOk=No

UseProfiles=Yes

EnableMouseLook=No

AxesWrongRange=No

TCASid=Flight

TCASrange=40

AxisCalibration=No

DirectAxesToCalibs=No

ShowMultilineWindow=Yes

SuppressSingleline=No

SuppressMultilineFS=No

AxisIntercepts=No

DontResetAxes=No

InitDelay=0

GetNearestAirports=Yes

WeatherReadFactor=2

WeatherRewriteSeconds=1

CustomWeatherModify=No

SimConnectStallTime=1

LuaRerunDelay=66

Console=No

FSVersionUsed="Microsoft Flight Simulator X",10.0.61472.0

SimConnectUsed=10.0.61259.0

[JoyNames]

AutoAssignLetters=No

0=Saitek Pro Flight Cessna Yoke

0.GUID={88E265A0-2A59-11E1-8002-444553540000}

1=Saitek Pro Flight Cessna Rudder Pedals

1.GUID={88E265A0-2A59-11E1-8001-444553540000}

[buttons]

ButtonRepeat=20,10

[AutoSave]

Next=1

Interval=60

Files=10

SaveOnGround=No

AutoSaveEnabled=No

[GPSout]

GPSoutEnabled=No

[GPSout2]

GPSoutEnabled=No

[WideServer]

WideFSenabled=Yes

[sounds]

Path=C:\FSX\Sound\

Device1=Primary Sound Driver

Device2=ATI HDMI Output (ATI High Definition Audio Device)

Device3=Speakers (Logitech USB Headset)

Device4=Independent (R.T.C.) Headphones (IDT High Definition Audio CODEC)

Device5=Speakers / Headphones (IDT High Definition Audio CODEC)

[Profile.pmdg 738]

1=Boeing 737-800NGX PMDG House

2=PMDG 737-800NGX PMDG House Winglets

[Axes.pmdg 738]

0=0Z,256,D,22,0,0,0

1=0U,256,D,9,0,0,0

2=0V,256,D,10,0,0,0

[JoystickCalibration]

AllowSuppressForPFCquad=Yes

ExcludeThrottleSet=Yes

ExcludeMixtureSet=Yes

ExcludePropPitchSet=Yes

SepRevsJetsOnly=No

ApplyHeloTrim=No

UseAxisControlsForNRZ=No

FlapsSetControl=0

FlapDetents=No

ReverserControl=66292

Reverser1Control=66422

Reverser2Control=66425

Reverser3Control=66428

Reverser4Control=66431

MaxThrottleForReverser=256

AileronTrimControl=66731

RudderTrimControl=66732

CowlFlaps1Control=66162

CowlFlaps2Control=66163

CowlFlaps3Control=66164

CowlFlaps4Control=66165

SteeringTillerControl=0

MaxSteerSpeed=60

Spoilers=-16380,16380/16

[buttons.pmdg 738]

ButtonRepeat=20,10

1=R1,0,C1001,0

2=U1,0,C1002,0

3=R1,5,K35,8

4=R1,4,K36,8

5=P1,2,K90,8

6=P1,3,C65860,0

7=P2,2,K113,8

8=P2,0,K113,8

9=P2,4,K190,10

10=P2,5,K191,9

11=P64,0,CL1:R,33

12=P64,1,CL1:R,27

13=U64,0,C0,33

14=P64,3,CL1:R,22

15=P64,4,CL1:R,31

16=P64,5,CL1:R,32

17=P65,4,CL1:R,8

18=P65,5,CL1:R,7

19=P64,2,CL1:R,28

20=P64,6,CL1:R,30

21=P65,0,C65595,0

22=P65,1,C65603,0

23=R66,0,CL1:R,17

24=R66,4,CL1:R,13

25=R66,5,CL1:R,14

26=R66,6,CL1:R,16

27=R66,1,CL1:R,18

28=R66,2,CL1:R,19

29=R66,3,CL1:R,20

[Profile.ifly737ng]

1=iFly 737-700 (Normal screen)

[Axes.ifly737ng]

0=0Z,256,D,22,0,0,0

1=0U,256,D,9,0,0,0

2=0V,256,D,10,0,0,0

3=1X,256,D,7,0,0,0

4=1Y,256,D,8,0,0,0

[JoystickCalibration.ifly737ng]

AllowSuppressForPFCquad=Yes

ExcludeThrottleSet=Yes

ExcludeMixtureSet=Yes

ExcludePropPitchSet=Yes

SepRevsJetsOnly=No

ApplyHeloTrim=No

UseAxisControlsForNRZ=No

FlapsSetControl=0

FlapDetents=No

ReverserControl=66292

Reverser1Control=66422

Reverser2Control=66425

Reverser3Control=66428

Reverser4Control=66431

MaxThrottleForReverser=256

AileronTrimControl=66731

RudderTrimControl=66732

CowlFlaps1Control=66162

CowlFlaps2Control=66163

CowlFlaps3Control=66164

CowlFlaps4Control=66165

SteeringTillerControl=0

MaxSteerSpeed=60

LeftBrake=-16380,16380/16

RightBrake=-16380,16380/16

Spoilers=-16380,16380/16

[Profile.boeing737ng]

1=Boeing 737-700NGX PMDG House Winglets

[buttons.boeing737ng]

ButtonRepeat=20,10

1=R1,0,C1001,0

2=U1,0,C1002,0

3=R1,5,K35,8

4=R1,4,K36,8

5=P1,2,K90,8

6=P1,3,C65860,0

7=P2,2,K113,8

8=P2,0,K113,8

9=P2,4,K190,10

10=P2,5,K191,9

11=P64,0,CL1:R,33

12=P64,1,CL1:R,27

13=U64,0,C0,33

14=P64,3,CL1:R,22

15=P64,4,CL1:R,31

16=P64,5,CL1:R,32

17=P65,4,CL1:R,8

18=P65,5,CL1:R,7

19=P64,2,CL1:R,28

20=P64,6,CL1:R,30

21=P65,0,C65595,0

22=P65,1,C65603,0

23=R66,0,CL1:R,17

24=R66,4,CL1:R,13

25=R66,5,CL1:R,14

26=R66,6,CL1:R,16

27=R66,1,CL1:R,18

28=R66,2,CL1:R,19

29=R66,3,CL1:R,20

[LuaFiles]

1=PMDG737NGX_AP.LU

2=PMDG737NGX_OVH.L

Link to comment
Share on other sites

You see all this messy it's caused by Saitek and the result is to bother us on difficult setup.

First in FSUIPC.ini write as it state

[LuaFiles]

1=PMDG737NGX_AP

2=PMDG737NGX_OVH

on the modules folder file must be rename in that way

PMDG737NGX_AP.LUA

PMDG737NGX_OVH.LUA

I think that maybe it's not working because you have a profile Buttons.boeing737ng

Another test is to check in FSUIPC Logging TAB LUA Log LUA plug-in and Debug/Trace Lua Plugins then check Send to console window and click on new log.

The window will tell you if you trigger the right command.

by the way if you use linda it can be a problem so try to uninstall it just to be sure.

Start from scratch backup your file then proceed with a new fsuipc4.ini just remouve the old one, once fsx start a new will be create by FSUIPC itself, do this or you will loose more time the if it works just copy and paste portion of the old one to create profile it's really easy.

Link to comment
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
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use. Guidelines Privacy Policy We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.