Skip to content
View in the app

A better way to browse. Learn more.

The AVSIM Community

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

GoFlight MCP LUA Script

Featured Replies

Thanks guys for your replies, appreciated.I tried some weeks ago to trace NGX status led with the precious help provided by Steve cause im bulding my HC based on NGX with OC cards.I have found only some readouts from APU status led, APU EGT values and so on... but nothing about MIP annunciators and others. Im waiting for NGX SDK as other people. This is why im interesting about what you are doing ( im not a programmer or developer ... ) So could be cool share infos whit you guys, If you agree.I do confirm that SICO can assign virtual joy read by FSUIP ( My OvH toggles work with them and macros ) and it seems that SICO can call LUA commands from its scrips. That could be cool whit led status and switches/butttons and so on ( for the readable data of course )Best Regards,FRancesco

Edited by az1228

Francesco Gatta
Managing Director / Media

Royaldutchvirtual.com

Hey guys,I'm a 24-year-old brazilian virtual pilot and I'm having trouble to use my Goflight MCP pro with PMDG 737-ngx. I've already tried all your suggestions and it still doesn't work. I have FSX with SP1 and SP2 instaled, I have the 737 NGX 800 and 900 instaled and also 600 and 700 all up to date.I'dlike to ask few questions:1. Which FSUIPC version should I use?2. What changes do I need to do in FSUIPC to make it work?3. What file NGX_AUTO should I use?My e-mail is [email protected]Thanx,xoxoxoxoxTiciana

  • Author
Hey guys,I'm a 24-year-old brazilian virtual pilot and I'm having trouble to use my Goflight MCP pro with PMDG 737-ngx. I've already tried all your suggestions and it still doesn't work. I have FSX with SP1 and SP2 instaled, I have the 737 NGX 800 and 900 instaled and also 600 and 700 all up to date.I'dlike to ask few questions:1. Which FSUIPC version should I use?2. What changes do I need to do in FSUIPC to make it work?3. What file NGX_AUTO should I use?My e-mail is [email protected]Thanx,xoxoxoxoxTiciana
Hi Ticiana,The file you need is the avsim library. Search for "mcp" and you will see it listed. Instructions are in the file. There is also this thread which contains support info. Please read the last few posts since the file needs some lines changed following changes in FSUIPC.http://forum.avsim.n...e/page__st__100Just download the latest FSUIPC version. There is a link in the readme file in the MCP download.Best wishesSteve

Edited by Steveo38

Stephen Munn

 

  • 2 weeks later...

Hi guys...as per Dietmar data how should be wrote my lua autobrake script, something like this? (Lua script needs to call my virtual joystick buttons on FSUIPC )If you get 5 mins could you help me testing this? function NGX_AUTOBRAKE_OFF ()if ipc.readLvar('ngx_switch_460_a') == 0 thenipc.control(70092, 16384)DspShow ("ABRK", "OFF")elseif ipc.readLvar('ngx_switch_460_a') == 10 thenDspShow ("ABRK", "OFF")elseif ipc.readLvar('ngx_switch_460_a') == 20 thenipc.control(70092, 8192)DspShow ("ABRK", "OFF")elseif ipc.readLvar('ngx_switch_460_a') == 30 thenipc.control(70092, 8192)ipc.control(70092, 8192)DspShow ("ABRK", "OFF")elseif ipc.readLvar('ngx_switch_460_a') == 40 thenipc.control(70092, 8192)ipc.control(70092, 8192)ipc.control(70092, 8192)DspShow ("ABRK", "OFF")elseif ipc.readLvar('ngx_switch_460_a') == 50 thenipc.control(70092, 8192)ipc.control(70092, 8192)ipc.control(70092, 8192)ipc.control(70092, 8192)DspShow ("ABRK", "OFF")endendevent.button(65, 5, "OFF")event.button(65, 8, "RTO")event.button(65, 9, "1")event.button(66, 15, "2")event.button(65, 6, "3")event.button(65, 17, "MAX")Thanks,Francesco

Francesco Gatta
Managing Director / Media

Royaldutchvirtual.com

I've also found this...from Linda forum-- ## Autobrake ###############function NGX_AUTOBRAKE_inc () ipc.control(70092, 16384) NGX_AUTOBRAKE_show ()endfunction NGX_AUTOBRAKE_dec () ipc.control(70092, 8192) NGX_AUTOBRAKE_show ()endfunction NGX_AUTOBRAKE_show () if ipc.readLvar('ngx_switch_460_a') == 0 then DspShow ("ABRK", "RTO") elseif ipc.readLvar('ngx_switch_460_a') == 10 then DspShow ("ABRK", "OFF") elseif ipc.readLvar('ngx_switch_460_a') == 20 then DspShow ("ABRK", "1") elseif ipc.readLvar('ngx_switch_460_a') == 30 then DspShow ("ABRK", "2") elseif ipc.readLvar('ngx_switch_460_a') == 40 then DspShow ("ABRK", "3") elseif ipc.readLvar('ngx_switch_460_a') == 50 then DspShow ("ABRK", "MAX") endendbut how in the script call the buttons ? as i did in the previous scripts addingevent.button(65, 5, "OFF")event.button(65, 8, "RTO")event.button(65, 9, "1")event.button(66, 15, "2")event.button(65, 6, "3")event.button(65, 17, "MAX")is this enought ?Regards,Francesco

Francesco Gatta
Managing Director / Media

Royaldutchvirtual.com

Hi Francesco,just to explain what I did. I wrote for each "Autobrake-Position" one function.via "if ipc.readLvar('ngx_switch_460_a') == 0, 10, 20, ... " I read out the current knob position in the simulator.Then I do the required steps up via "ipc.control(70092, 16384)" or down via "ipc.control(70092, 8192)" tothe position I selected with my knob on the BU0836 board ( works like a joystick board).So overall it is:function NGX_AUTOBRAKE_RTO () if ipc.readLvar('ngx_switch_460_a') == 0 then elseif ipc.readLvar('ngx_switch_460_a') == 10 then ipc.control(70092, 8192) elseif ipc.readLvar('ngx_switch_460_a') == 20 then ipc.control(70092, 8192) ipc.control(70092, 8192) elseif ipc.readLvar('ngx_switch_460_a') == 30 then ipc.control(70092, 8192) ipc.control(70092, 8192) ipc.control(70092, 8192) elseif ipc.readLvar('ngx_switch_460_a') == 40 then ipc.control(70092, 8192) ipc.control(70092, 8192) ipc.control(70092, 8192) ipc.control(70092, 8192) elseif ipc.readLvar('ngx_switch_460_a') == 50 then ipc.control(70092, 8192) ipc.control(70092, 8192) ipc.control(70092, 8192) ipc.control(70092, 8192) ipc.control(70092, 8192) endendfunction NGX_AUTOBRAKE_OFF () if ipc.readLvar('ngx_switch_460_a') == 0 then ipc.control(70092, 16384) elseif ipc.readLvar('ngx_switch_460_a') == 10 then elseif ipc.readLvar('ngx_switch_460_a') == 20 then ipc.control(70092, 8192) elseif ipc.readLvar('ngx_switch_460_a') == 30 then ipc.control(70092, 8192) ipc.control(70092, 8192) elseif ipc.readLvar('ngx_switch_460_a') == 40 then ipc.control(70092, 8192) ipc.control(70092, 8192) ipc.control(70092, 8192) elseif ipc.readLvar('ngx_switch_460_a') == 50 then ipc.control(70092, 8192) ipc.control(70092, 8192) ipc.control(70092, 8192) ipc.control(70092, 8192) endendfunction NGX_AUTOBRAKE_1 () if ipc.readLvar('ngx_switch_460_a') == 0 then ipc.control(70092, 16384) ipc.control(70092, 16384) DspShow ("ABRK", "1") elseif ipc.readLvar('ngx_switch_460_a') == 10 then ipc.control(70092, 16384) DspShow ("ABRK", "1") elseif ipc.readLvar('ngx_switch_460_a') == 20 then DspShow ("ABRK", "1") elseif ipc.readLvar('ngx_switch_460_a') == 30 then ipc.control(70092, 8192) DspShow ("ABRK", "1") elseif ipc.readLvar('ngx_switch_460_a') == 40 then ipc.control(70092, 8192) ipc.control(70092, 8192) DspShow ("ABRK", "1") elseif ipc.readLvar('ngx_switch_460_a') == 50 then ipc.control(70092, 8192) ipc.control(70092, 8192) ipc.control(70092, 8192) DspShow ("ABRK", "1") endendfunction NGX_AUTOBRAKE_2 () if ipc.readLvar('ngx_switch_460_a') == 0 then ipc.control(70092, 16384) ipc.control(70092, 16384) ipc.control(70092, 16384) DspShow ("ABRK", "2") elseif ipc.readLvar('ngx_switch_460_a') == 10 then ipc.control(70092, 16384) ipc.control(70092, 16384) DspShow ("ABRK", "2") elseif ipc.readLvar('ngx_switch_460_a') == 20 then ipc.control(70092, 16384) DspShow ("ABRK", "2") elseif ipc.readLvar('ngx_switch_460_a') == 30 then DspShow ("ABRK", "2") elseif ipc.readLvar('ngx_switch_460_a') == 40 then ipc.control(70092, 8192) DspShow ("ABRK", "2") elseif ipc.readLvar('ngx_switch_460_a') == 50 then ipc.control(70092, 8192) ipc.control(70092, 8192) DspShow ("ABRK", "2") endendfunction NGX_AUTOBRAKE_3 () if ipc.readLvar('ngx_switch_460_a') == 0 then ipc.control(70092, 16384) ipc.control(70092, 16384) ipc.control(70092, 16384) ipc.control(70092, 16384) DspShow ("ABRK", "3") elseif ipc.readLvar('ngx_switch_460_a') == 10 then ipc.control(70092, 16384) ipc.control(70092, 16384) ipc.control(70092, 16384) DspShow ("ABRK", "3") elseif ipc.readLvar('ngx_switch_460_a') == 20 then ipc.control(70092, 16384) ipc.control(70092, 16384) DspShow ("ABRK", "3") elseif ipc.readLvar('ngx_switch_460_a') == 30 then ipc.control(70092, 16384) DspShow ("ABRK", "3") elseif ipc.readLvar('ngx_switch_460_a') == 40 then DspShow ("ABRK", "3") elseif ipc.readLvar('ngx_switch_460_a') == 50 then ipc.control(70092, 8192) DspShow ("ABRK", "3") endendfunction NGX_AUTOBRAKE_MAX () if ipc.readLvar('ngx_switch_460_a') == 0 then ipc.control(70092, 16384) ipc.control(70092, 16384) ipc.control(70092, 16384) ipc.control(70092, 16384) ipc.control(70092, 16384) DspShow ("ABRK", "MAX") elseif ipc.readLvar('ngx_switch_460_a') == 10 then ipc.control(70092, 16384) ipc.control(70092, 16384) ipc.control(70092, 16384) ipc.control(70092, 16384) DspShow ("ABRK", "MAX") elseif ipc.readLvar('ngx_switch_460_a') == 20 then ipc.control(70092, 16384) ipc.control(70092, 16384) ipc.control(70092, 16384) DspShow ("ABRK", "MAX") elseif ipc.readLvar('ngx_switch_460_a') == 30 then ipc.control(70092, 16384) ipc.control(70092, 16384) DspShow ("ABRK", "MAX") elseif ipc.readLvar('ngx_switch_460_a') == 40 then ipc.control(70092, 16384) DspShow ("ABRK", "MAX") elseif ipc.readLvar('ngx_switch_460_a') == 50 then DspShow ("ABRK", "MAX") endend Unfortunately I am not very familar with your SIOC ant the event.button routine but I assume that if you like to use my routines,your routine must be:event.button(65, 5, "NGX_AUTOBRAKE_OFF")event.button(65, 8, "NGX_AUTOBRAKE_RTO")event.button(65, 9, "NGX_AUTOBRAKE_1")event.button(66, 15, "NGX_AUTOBRAKE_2")event.button(65, 6, "NGX_AUTOBRAKE_3")event.button(65, 17, "NGX_AUTOBRAKE_MAX")Let me know if this will work.GreetingsDietmar

Dietmar Kloss

 

PC 1 (Main) - i7, 16 GB RAM, GTX 580, 120 GB SSD for W7, 120 GB SSD for FSX

=========- - FSX, Germany VFR, Mega airports EDDM, EDDF, EGLL, German Airports 2+3, PMDG 737 NGX, FSUIPC 4.7 registered, Wideview Server

PC 2 (Sideview) - i core 2 quad, 8 GB RAM, GTX 260, FSX, Wideview Client

PC 3 (Panels) - AMD E-450, 2GB RAM, Graphik an Mainboard, project magenta GAIFR, RJGC

Modul's - Goflight: EFIS, MCP Pro, T8, P8, LGTII, 166, RP48, Leo Bodnar: BU0836X

Thanks very much Dietmar,what shoud I do for a test, copy it in a txt file called .lua then put it in the module folder and also modify fsuip.ini ?ThanksFrancesco

Francesco Gatta
Managing Director / Media

Royaldutchvirtual.com

Thanks very much Dietmar,what shoud I do for a test, copy it in a txt file called .lua then put it in the module folder and also modify fsuip.ini ?ThanksFrancesco
Oh I thought your routines are from an already existing LUA file....To be honest - I don't know at the moment how to setup a standalone LUA.I did what you proposed to write something for my GoFlight modules by trying to copy routinesfrom Steve but it has not worked. I could not trigger the buttons....Then I put each of my routine in a separate LUA with the name-methodology "function.LUA" and activated it in the FSUIP.INIAfter this I could see it as a button function in the FSUIPC button assignment.But I did not follow this method since it would have required to write dozents of LUA's.....Therefore I used my GoFlight moduls only for ON/OFF functions (e.g. Lights and AES).I wrote one macro with all the LVar's and then I assigned the buttons via FSUIPC.Let me check SIOC and may be in some days I know more ... or I am desperate as you .. ;-)But at least, test what you mentioned and tell me if it has worked.good luck,Dietmar

Dietmar Kloss

 

PC 1 (Main) - i7, 16 GB RAM, GTX 580, 120 GB SSD for W7, 120 GB SSD for FSX

=========- - FSX, Germany VFR, Mega airports EDDM, EDDF, EGLL, German Airports 2+3, PMDG 737 NGX, FSUIPC 4.7 registered, Wideview Server

PC 2 (Sideview) - i core 2 quad, 8 GB RAM, GTX 260, FSX, Wideview Client

PC 3 (Panels) - AMD E-450, 2GB RAM, Graphik an Mainboard, project magenta GAIFR, RJGC

Modul's - Goflight: EFIS, MCP Pro, T8, P8, LGTII, 166, RP48, Leo Bodnar: BU0836X

  • Author
Thanks very much Dietmar,what shoud I do for a test, copy it in a txt file called .lua then put it in the module folder and also modify fsuip.ini ?ThanksFrancesco
The way I do it when developing, is to create a text file in notepad and call it test.lua making sure the .txt extention is removed. I then have a button assigned in FSUIPC that will call test.lua when its pressed and one that kills or stops test.lua. You can do this in the buttons tab on the right hand side. Look for the FS Control tick box and then you will find commands listed as lua test and lua kill test or something similiar. Just assign these commands to the buttons and you can test things out easily. Note, you can call the file anything you like e.g. autobrake.luaIf you run test.lua in a loop your program will run continously until you press the second joystick button that will kill test.lua. e.g.while true do {your code here}endor you can use events which sleep the code and execuite when the specfic event occurs.The same principle can be used to assign small bits of lua code to different buttons and switches. You do not need one big lua file like I used for the MCP, lots of little ones called in the same way as above will work fine.Best wishesSteve

Edited by Steveo38

Stephen Munn

 

  • Author
Hi guys...as per Dietmar data how should be wrote my lua autobrake script, something like this? (Lua script needs to call my virtual joystick buttons on FSUIPC )If you get 5 mins could you help me testing this?function NGX_AUTOBRAKE_OFF ()if ipc.readLvar('ngx_switch_460_a') == 0 thenipc.control(70092, 16384)DspShow ("ABRK", "OFF")elseif ipc.readLvar('ngx_switch_460_a') == 10 thenDspShow ("ABRK", "OFF")elseif ipc.readLvar('ngx_switch_460_a') == 20 thenipc.control(70092, 8192)DspShow ("ABRK", "OFF")elseif ipc.readLvar('ngx_switch_460_a') == 30 thenipc.control(70092, 8192)ipc.control(70092, 8192)DspShow ("ABRK", "OFF")elseif ipc.readLvar('ngx_switch_460_a') == 40 thenipc.control(70092, 8192)ipc.control(70092, 8192)ipc.control(70092, 8192)DspShow ("ABRK", "OFF")elseif ipc.readLvar('ngx_switch_460_a') == 50 thenipc.control(70092, 8192)ipc.control(70092, 8192)ipc.control(70092, 8192)ipc.control(70092, 8192)DspShow ("ABRK", "OFF")endendevent.button(65, 5, "OFF")event.button(65, 8, "RTO")event.button(65, 9, "1")event.button(66, 15, "2")event.button(65, 6, "3")event.button(65, 17, "MAX")Thanks,Francesco
Hi Francesco,Does LINDA recognise your device, if so you just need to assign the LINDA commands to each button. If not, the above code has LINDA specific calls being made which need to be removed. Namely, all the DspShow commands.You then need to assign the lua file to a joystick button as discussed previously. Turn on LUA logging and see what happens. If it doesn't work look in the log file created in the modules directly named as per your lua file e.g. test.lua will have a log file of test.logBest wishesSteve

Edited by Steveo38

Stephen Munn

 

  • 2 weeks later...
Thanks very much Dietmar,what shoud I do for a test, copy it in a txt file called .lua then put it in the module folder and also modify fsuip.ini ?ThanksFrancesco
Hi Francesco,could you get some success? Here is a further hint.I found a page with a brilliant Lua Tutorial.Looke at: http://www.anadrac.com/FSUIPC-Lua-Tutorial/index.htmlIt describes Lua and also the integration into FSUIPC that simplethat even me ( an old guy who wrote last time his own SW during BASIC and TurboPascal times 25 years ago.....)could understand it. In the meantime I'm also a bit familar with SIOC. I have the OC USB-Servo and LED output board and I alreadycan control the Flaps indicator gauge incl. the LED's. Unfortunately SIOC does not read Lvar's. Therefore some times you needto set an FSX offset via a Lua script, that NGX does not use and then read it via SIOC to control a LED. Not that straight forward but a solution until PMDG will publish an SDK.good luckDietmar

Dietmar Kloss

 

PC 1 (Main) - i7, 16 GB RAM, GTX 580, 120 GB SSD for W7, 120 GB SSD for FSX

=========- - FSX, Germany VFR, Mega airports EDDM, EDDF, EGLL, German Airports 2+3, PMDG 737 NGX, FSUIPC 4.7 registered, Wideview Server

PC 2 (Sideview) - i core 2 quad, 8 GB RAM, GTX 260, FSX, Wideview Client

PC 3 (Panels) - AMD E-450, 2GB RAM, Graphik an Mainboard, project magenta GAIFR, RJGC

Modul's - Goflight: EFIS, MCP Pro, T8, P8, LGTII, 166, RP48, Leo Bodnar: BU0836X

Hi Francesco,could you get some success? Here is a further hint.I found a page with a brilliant Lua Tutorial.Looke at: http://www.anadrac.c...rial/index.htmlIt describes Lua and also the integration into FSUIPC that simplethat even me ( an old guy who wrote last time his own SW during BASIC and TurboPascal times 25 years ago.....)could understand it. In the meantime I'm also a bit familar with SIOC. I have the OC USB-Servo and LED output board and I alreadycan control the Flaps indicator gauge incl. the LED's. Unfortunately SIOC does not read Lvar's. Therefore some times you needto set an FSX offset via a Lua script, that NGX does not use and then read it via SIOC to control a LED. Not that straight forward but a solution until PMDG will publish an SDK.good luckDietmar
Hi Dietmar, unfortunately no success.Thanks for posting the amazing Linda link, really appreciated !Regards,FRancesco

Francesco Gatta
Managing Director / Media

Royaldutchvirtual.com

Create an account or sign in to comment

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.