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.

MCP Combo 1 and Jeehell FMGS A320 software

Featured Replies

Hello Lua and Linda experts,

 

i have a problem with the VRinsigt MCP Combo 1 and the A320 FMGS software from jeehell.

 

The programmer of the jeehell A320 cockpit software has created a lua actions file to
connect the MCP combo to the jeehell A320 software. In Linda i have created an aircraft
profil with this actions file as base.

 

Then i have configured the HDG rotary and 2 keys for switching the QNH between mb/inhg for testing.

If i start up the FSX and Linda there is no sync between the FCU displays from the jeehell software
and the MCP displays. The same with the key´s they do not work.

 

I think the Linda and fsuipc connection ist good because when i use an fsx default aircraft all is fine.

Have somebody an idea for this problem ? I´m not a programmer but i have checked the offsets in the lua actions file
with the offsets in the docu from jeehell software an all is ok.

 

In linda i can see a list of all functions from the lua actions file to give them a button on the mcp
but it is not working. In this menu with the functions list are 2 menu entries like Evtimer (Time) and
Init Vars what about this entries i have done nothing with this entries or is that the problem is there an action
to do someting with this "files" or entries. i think this is the defination of the lua variables but i can do
nothing with them.

 

 

I hope somebody has an idea. :smile:

 

BR

 

Veit

 

 

 

Here the fsuipc log when i give a command with the HDG rotary, then there is a lua error in the log:

 
******** FSUIPC4, Version 4.921f by Pete Dowson *********
Running inside FSX
Module base=077C0000
User Name="blanked"
User Addr="blanked"
FSUIPC4 Key is provided
WideFS7 Key is provided
        0 System time = 23/11/2013 14:21:06
        0 FLT UNC path = "C:\Dokumente und Einstellungen\FSX\Eigene Dateien\Flight Simulator X-Dateien\"
       16 Trying to connect to SimConnect Acc/SP2 Oct07 ...
       16 FS UNC path = "\\FSX1\fsx\"
      609 Run: "D:\fsx\Modules\linda.exe"
      641 LogOptions=00000000 00000001
      641 SIM1 Frictions access gained
      641 Wind smoothing fix is fully installed
      641 G3D.DLL fix attempt installed ok
      641 SimConnect_Open succeeded: waiting to check version okay
      641 Trying to use SimConnect Acc/SP2 Oct07
      672 VRI port 1 "com3" opened
     1703 Running in "Microsoft Flight Simulator X", Version: 10.0.61637.0 (SimConnect: 10.0.61259.0)
     1703 Initialising SimConnect data requests now
     1703 FSUIPC Menu entry added
     1734 C:\Dokumente und Einstellungen\FSX\Eigene Dateien\Flight Simulator X-Dateien\DUS Standard.FLT
     1734 \\FSX1\fsx\SimObjects\Airplanes\a320 FMGS JH Project Airbus A320-214\pa320-cfm56-2.AIR
     2219 VRI FMER ("MCP Combi") detected on port com3
    32734 System time = 23/11/2013 14:21:39, Simulator time = 14:21:09 (14:21Z)
    32844 Aircraft="a320 FMGS JH Project Airbus A320-214"
    33734 Starting everything now ...
    33734 LUA.0: beginning "D:\fsx\Modules\ipcReady.lua"
    33734 LUA.0: ended "D:\fsx\Modules\ipcReady.lua"
    33734 AES Link established
    33734 Run: "C:\Programme\IOCards\iocard.exe"
    33750 LUA.1:

    33750 LUA.1: [iNIT]LINDA:: Loading...
    33953 LUA.1: LINDA:: Aircraft: a320 FMGS JH Project Airbus A320-21
    33953 LUA.1: LINDA:: Aircraft module detected: a320 FMGS JH Project Airbus A320-214
    34000 LUA.0: LINDA:: AivlaSoft library loaded...
    34016 LUA.0: LINDA:: FSX standard library loaded...
    34031 LUA.0: LINDA:: IVAO library loaded...
    34031 LUA.0: LINDA:: RealityXP library loaded...
    34031 LUA.0: LINDA:: Weather library loaded...
    34047 LUA.0: LINDA:: A2A MAP library loaded...
    35063 Advanced Weather Interface Enabled
    35250 LUA.0: LINDA:: RADIOS : Empty command for :: COM1 Select
    36656 LUA.0: LINDA:: Module: a320 FMGS JH Project Airbus A320-214 Started...
    36656 LUA.0: LINDA:: Ready to go, Captain!
    36656 LUA.0: LINDA::
    38063 LUA.0: LINDA:: Offsets watching list cleared!
   389047 *** LUA Error: D:\fsx\modules\linda/system/handlers-mcp.lua:664: attempt to concatenate global 'HDGmode' (a boolean value)
   389703 *** LUA Error: D:\fsx\modules\linda/system/handlers-mcp.lua:664: attempt to concatenate global 'HDGmode' (a boolean value)
   390141 *** LUA Error: D:\fsx\modules\linda/system/handlers-mcp.lua:664: attempt to concatenate global 'HDGmode' (a boolean value)
   390563 *** LUA Error: D:\fsx\modules\linda/system/handlers-mcp.lua:664: attempt to concatenate global 'HDGmode' (a boolean value)
   391297 *** LUA Error: D:\fsx\modules\linda/system/handlers-mcp.lua:664: attempt to concatenate global 'HDGmode' (a boolean value)
   391625 *** LUA Error: D:\fsx\modules\linda/system/handlers-mcp.lua:664: attempt to concatenate global 'HDGmode' (a boolean value)
   391891 *** LUA Error: D:\fsx\modules\linda/system/handlers-mcp.lua:664: attempt to concatenate global 'HDGmode' (a boolean value)
   392281 *** LUA Error: D:\fsx\modules\linda/system/handlers-mcp.lua:664: attempt to concatenate global 'HDGmode' (a boolean value)
   392813 *** LUA Error: D:\fsx\modules\linda/system/handlers-mcp.lua:664: attempt to concatenate global 'HDGmode' (a boolean value)

 

 

 

 

 

The actions file from jeehell as base for the MCP profile-------------------------------------------------------------------------------

 

 

 

-- JeeHell FMGS

function EvTimer (Time)
  AP_SPD = ipc.readSW(0x73C1)
  AP_HDG = ipc.readSW(0x73C3)
  AP_ALT = ipc.readSW(0x73C5)
  CPT_QNH = ipc.readSW(0x73C8)
  dispSPD(AP_SPD)
  dispHDG(AP_HDG)
  dispALT(AP_ALT)
end

-- Initial variables
function InitVars ()
 AP_SPD = 100
 AP_HDG = 0
 AP_ALT = 100
 AP_VS = 0
    CPT_QNH = 1013
    inHg = false
    SPDmode = true
    HDGmode = true
    ALT_100 = true
    event.timer(500, "EvTimer")
end

-- ## FCU controls #####################################

 

function FCU_AP1 ()
  ipc.writeUB(0x78eb,9)
end

function FCU_AP2 ()
  ipc.writeUB(0x78eb,10)
end

function FCU_ATHR ()
  ipc.writeUB(0x78eb,11)
end

function FCU_LOC ()
  ipc.writeUB(0x78eb,13)
end

function FCU_APPR ()
  ipc.writeUB(0x78eb,12)
end

function FCU_EXPED ()
  ipc.writeUB(0x78eb,14)
end

function FCU_HDG_selected ()
  ipc.writeUB(0x78eb,3)
end

function FCU_HDG_managed ()
  ipc.writeUB(0x78eb,4)
end

function FCU_HDG_inc ()
  AP_HDG = AP_HDG + 1
  if AP_HDG > 359 then AP_HDG = 0 end
  ipc.writeUB(0x73CC,2)
  ipc.writeUW(0x73CD,AP_HDG)
  DispHDG(AP_HDG)
end

function FCU_HDG_dec ()
  AP_HDG = AP_HDG - 1
  if AP_HDG < 0 then AP_HDG = 359 end
  ipc.writeUB(0x73CC,2)
  ipc.writeUW(0x73CD,AP_HDG)
  DispHDG(AP_HDG)
end

 

function FCU_HDG_fastinc ()
  AP_HDG = AP_HDG + 2
  if AP_HDG > 359 then AP_HDG = 0 end
  ipc.writeUB(0x73CC,2)
  ipc.writeUW(0x73CD,AP_HDG)
  DispHDG(AP_HDG)
end

function FCU_HDG_fastdec ()
  AP_HDG = AP_HDG - 2
  if AP_HDG < 0 then AP_HDG = 359 end
  ipc.writeUB(0x73CC,2)
  ipc.writeUW(0x73CD,AP_HDG)
  DispHDG(AP_HDG)
end

function FCU_SPD_selected ()
  ipc.writeUB(0x78eb,1)
end

function FCU_SPD_managed ()
  ipc.writeUB(0x78eb,2)
end

function FCU_SPD_inc ()
  if spdmode == true then
    AP_SPD = AP_SPD + 1
    if AP_SPD > 399 then AP_SPD = 399 end
    ipc.writeUB(0x73CC,1)
    ipc.writeUW(0x73CD,AP_SPD)
  else
    AP_SPD = AP_SPD + 1
    if AP_SPD > 99 then AP_SPD = 99 end
    ipc.writeUB(0x73CC,1)
    ipc.writeUW(0x73CD,AP_SPD)
  end
  DispSPD(AP_SPD)
end

function FCU_SPD_dec ()
  if spdmode == true then
    AP_SPD = AP_SPD - 1
    if AP_SPD < 100  then AP_SPD = 100 end
    ipc.writeUB(0x73CC,1)
    ipc.writeUW(0x73CD,AP_SPD)
  else
    AP_SPD = AP_SPD - 1
    if AP_SPD < 10 then AP_SPD = 10 end
    ipc.writeUB(0x73CC,1)
    ipc.writeUW(0x73CD,AP_SPD)
  end
  DispSPD(AP_SPD)
end

 

function FCU_SPD_fastinc ()
  if spdmode == true then
    AP_SPD = AP_SPD + 2
    if AP_SPD > 399 then AP_SPD = 399 end
    ipc.writeUB(0x73CC,1)
    ipc.writeUW(0x73CD,AP_SPD)
  else
    AP_SPD = AP_SPD + 2
    if AP_SPD > 99 then AP_SPD = 99 end
    ipc.writeUB(0x73CC,1)
    ipc.writeUW(0x73CD,AP_SPD)
  end
  DispSPD(AP_SPD)
end

function FCU_SPD_fastdec ()
  if spdmode == true then
    AP_SPD = AP_SPD - 2
    if AP_SPD < 100  then AP_SPD = 100 end
    ipc.writeUB(0x73CC,1)
    ipc.writeUW(0x73CD,AP_SPD)
  else
    AP_SPD = AP_SPD - 2
    if AP_SPD < 10 then AP_SPD = 10 end
    ipc.writeUB(0x73CC,1)
    ipc.writeUW(0x73CD,AP_SPD)
  end
  DispSPD(AP_SPD)
end

 

function FCU_ALT_selected ()
  ipc.writeUB(0x78eb,5)
end

function FCU_ALT_managed ()
  ipc.writeUB(0x78eb,6)
end

function FCU_ALT_inc ()
    if ALT_100 == true then
      AP_ALT = AP_ALT + 1
    else
      AP_ALT = AP_ALT + 10
    end
    if AP_ALT > 490  then AP_ALT = 490 end
    ipc.writeUB(0x73CC,3)
    ipc.writeUW(0x73CD,AP_ALT)
    DispALT(AP_ALT)
end

function FCU_ALT_dec ()
    if ALT_100 == true then
      AP_ALT = AP_ALT - 1
    else
      AP_ALT = AP_ALT - 10
    end
    if AP_ALT < 1  then AP_ALT = 1 end
    ipc.writeUB(0x73CC,3)
    ipc.writeUW(0x73CD,AP_ALT)
    DispALT(AP_ALT)
end

 

function FCU_ALT_fastinc ()
    if ALT_100 == true then
      AP_ALT = AP_ALT + 2
    else
      AP_ALT = AP_ALT + 20
    end
    if AP_ALT > 490  then AP_ALT = 490 end
    ipc.writeUB(0x73CC,3)
    ipc.writeUW(0x73CD,AP_ALT)
    DispALT(AP_ALT)
end

function FCU_ALT_fastdec ()
    if ALT_100 == true then
      AP_ALT = AP_ALT - 2
    else
      AP_ALT = AP_ALT - 20
    end
    if AP_ALT < 1  then AP_ALT = 1 end
    ipc.writeUB(0x73CC,3)
    ipc.writeUW(0x73CD,AP_ALT)
    DispALT(AP_ALT)
end

function FCU_VS_push ()
  ipc.writeUB(0x78eb,8)
end

function FCU_VS_pull ()
  ipc.writeUB(0x78eb,7)
end

function FCU_VS_inc ()
    if HDGmode == true then
      AP_VS = AP_VS + 100
      if AP_VS > 6000  then AP_VS = 6000 end
    else
      AP_VS = AP_VS + 1
      if AP_VS > 99  then AP_VS = 99 end
    end
    ipc.writeUB(0x73CC,4)
    ipc.writeUW(0x73CD,AP_VS)
    DispVS(AP_VS)
end

function FCU_VS_dec ()
    if HDGmode == true then
      AP_VS = AP_VS - 100
      if AP_VS < -6000  then AP_VS = -6000 end
    else
      AP_VS = AP_VS - 1
      if AP_VS < -99  then AP_VS = -99 end
    end
    ipc.writeUB(0x73CC,4)
    ipc.writeUW(0x73CD,AP_VS)
    DispVS(AP_VS)
end

 

 

function FCU_VS_fastinc ()
    if HDGmode == true then
      AP_VS = AP_VS + 200
      if AP_VS > 6000  then AP_VS = 6000 end
    else
      AP_VS = AP_VS + 2
      if AP_VS > 99  then AP_VS = 99 end
    end
    ipc.writeUB(0x73CC,4)
    ipc.writeUW(0x73CD,AP_VS)
    DispVS(AP_VS)
end

function FCU_VS_fastdec ()
    if HDGmode == true then
      AP_VS = AP_VS - 200
      if AP_VS < -6000  then AP_VS = -6000 end
    else
      AP_VS = AP_VS - 2
      if AP_VS < -99  then AP_VS = -99 end
    end
    ipc.writeUB(0x73CC,4)
    ipc.writeUW(0x73CD,AP_VS)
    DispVS(AP_VS)
end

 

function FCU_SPDMACH ()
  ipc.writeUB(0x78eb,16)
  SPDmode = not SPDmode
end

function FCU_VSFPA ()
  ipc.writeUB(0x78eb,15)
  HDGmode = not HDGmode
end

function FCU_METRIC_ALT ()
  ipc.writeUB(0x78eb,17)
end

function FCU_ALT100 ()
  ALT_100 = true
end

function FCU_ALT1000 ()
  ALT_100 = false
end

function FCU_ALT100_1000_toggle ()
  ALT_100 = not ALT_100
end

function DispSPD (value)
    if _MCP1 () then
      DspSPD (math.abs(value))
    else
      if value == -999 then DspSPDs('---')
      elseif SPDmode==false then DspSPDs('.' .. tostring(value))
      else DspSPD (value) end
    end
end

function DispHDG (value)
    if _MCP1 () then
      DspHDG (math.abs(value))
    else
      if value == -999 then DspSPDs('---')
      else DspSPD (value) end
    end
end

function DispALT (value)
    DspALT (round(value/100))
end

function DispVS (vvs)
    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

-- ## CPT EFIS controls #####################################

function CPT_EFIS_FD ()
  ipc.writeUB(0x78eb,18)
end

function CPT_EFIS_LS ()
  ipc.writeUB(0x78eb,19)
end

function CPT_EFIS_WPT ()
  ipc.writeUB(0x78eb,69)
end

function CPT_EFIS_ARPT ()
  ipc.writeUB(0x78eb,72)
end

function CPT_EFIS_VORD ()
  ipc.writeUB(0x78eb,70)
end

function CPT_EFIS_NDB()
  ipc.writeUB(0x78eb,71)
end

function CPT_EFIS_CSTR ()
  ipc.writeUB(0x78eb,68)
end

function CPT_EFIS_NAV1_VOR1 ()
  ipc.writeUB(0x78eb,37)
end

function CPT_EFIS_NAV1_ADF1 ()
  ipc.writeUB(0x78eb,38)
end

function CPT_EFIS_NAV1_OFF ()
  ipc.writeUB(0x78eb,39)
end

function CPT_EFIS_NAV2_VOR2 ()
  ipc.writeUB(0x78eb,40)
end

function CPT_EFIS_NAV2_ADF2 ()
  ipc.writeUB(0x78eb,41)
end

function CPT_EFIS_NAV2_OFF ()
  ipc.writeUB(0x78eb,42)
end

function CPT_EFIS_inHg ()
  inHg = true
  ipc.writeUB(0x78eb,22)
end

function CPT_EFIS_mb ()
  inHg = false
  ipc.writeUB(0x78eb,23)
end

function CPT_EFIS_mb_inHg_toggle ()
end

function CPT_EFIS_QNH_push ()
  ipc.writeUB(0x78eb,21)
end

function CPT_EFIS_QNH_pull ()
  ipc.writeUB(0x78eb,20)
end

function CPT_EFIS_QNH_toggle ()
  if inHg == true then
    ipc.writeUB(0x78eb,23)
  else
    ipc.writeUB(0x78eb,23)
  end
  inHg = not inHg
end

function CPT_EFIS_QNH_inc ()
  CPT_QNH = CPT_QNH + 1
  if CPT_QNH > 1050 then CPT_QNH = 1050 end
  ipc.writeUB(0x73CC,5)
  ipc.writeUW(0x73CD,CPT_QNH)
end

function CPT_EFIS_QNH_dec ()
  CPT_QNH = CPT_QNH - 1
  if CPT_QNH < 930 then CPT_QNH = 930 end
  ipc.writeUB(0x73CC,5)
  ipc.writeUW(0x73CD,CPT_QNH)
end

function CPT_EFIS_RANGE_10 ()
  ipc.writeUW(0x78EB,31)
end

function CPT_EFIS_RANGE_20 ()
  ipc.writeUW(0x78EB,32)
end

function CPT_EFIS_RANGE_40 ()
  ipc.writeUW(0x78EB,33)
end

function CPT_EFIS_RANGE_80 ()
  ipc.writeUW(0x78EB,34)
end

function CPT_EFIS_RANGE_160 ()
  ipc.writeUW(0x78EB,35)
end

function CPT_EFIS_RANGE_320 ()
  ipc.writeUW(0x78EB,36)
end

function CPT_EFIS_NDMODE_ILS ()
  ipc.writeUW(0x78EB,26)
end

function CPT_EFIS_NDMODE_VOR ()
  ipc.writeUW(0x78EB,27)
end

function CPT_EFIS_NDMODE_NAV ()
  ipc.writeUW(0x78EB,28)
end

function CPT_EFIS_NDMODE_ARC ()
  ipc.writeUW(0x78EB,29)
end

function CPT_EFIS_NDMODE_PLAN ()
  ipc.writeUW(0x78EB,30)
end

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.