Jump to content
The simFlight Network Forums

Opencockpits MCP integration with B737 NGX


Recommended Posts

Hi,

For Pete or others,

I have now a fully working Opencockpit MCP integrated with PMDGNGX. All switches, dials and displays are working, but..

Turning the dial(knob) for i.e. the CRS1 ( the same is valid for SPD, HDG, ALT, VS and CRS2) results in delayed feedback ( displaying the numbers in the CRS1 window on the OC MCP compared to the CRS1 window in PMDGNGXs MCP) from FSUIPC via LUA script and my SIOC script ( the Opencockpits software).

This is valid when I turn the dial in a fast way. It always ends up with the same number in both windows ( PMDG MCP and OC MCP), so everything is correct.

When turning the dial slow everything is in sync, but also here the delay is about 1/2 second ( from a number turns up on PMDG MCP until the same number turns up on OC MCP.

I guess it is more of a delay than sync problem. The SIOC script is not the delaying party in my view.

Is there a way I can adjust either FSUIPC, LUA to make the sync problem less visible when turning the dials in a fast way?

I am running the latest FSUIPC for FSX. I have a fast I7 2600K running 4,4Ghz.

The program involed in my setup is FSX- FSUIPC ( and LUA) - SIOC.

IN short I set switches and dial CRS etc. with keystrokes, then reads the Lvars from PMDGNGX, and display them on my OC MCP via SIOC. In this way my OC MCP is both a master and slave relative to the PMDGNGX. This because I have not found any way to write LVars into PMDGNGX.

My implemetation could sure be better, but this is my first attempt to work with FSUIPC, LUA and SIOC and it works. Any suggestion to make it better are welcomed.

My LUA file PMDGNGX:

while 1 do

--store the value that is read from the NGX L:vars:

mcpspdw = ipc.readLvar("ngx_SPDwindow")

mcphdgw = ipc.readLvar("ngx_HDGwindow")

mcpaltw = ipc.readLvar("ngx_ALTwindow")

mcpvsw = ipc.readLvar("ngx_VSwindow")

mcpcrs1w = ipc.readLvar("ngx_CRSwindowL")

mcpcrs2w = ipc.readLvar("ngx_CRSwindowR")

mcpatal = ipc.readLvar("ngx_MCP_ATArm")

mcpfd1s = ipc.readLvar("ngx_MCP_FDLeft")

mcpfd2s = ipc.readLvar("ngx_MCP_FDRight")

mcpvnavl = ipc.readLvar("ngx_MCP_VNav")

mcplnavl = ipc.readLvar("ngx_MCP_LNav")

mcpvorl = ipc.readLvar("ngx_MCP_VORLock")

mcpn1l = ipc.readLvar("ngx_MCP_N1")

mcpspdl = ipc.readLvar("ngx_MCP_Speed")

mcplvll = ipc.readLvar("ngx_MCP_LvlChg")

mcphdgl = ipc.readLvar("ngx_MCP_HdgSel")

mcpappl = ipc.readLvar("ngx_MCP_App")

mcpalthl = ipc.readLvar("ngx_MCP_AltHold")

mcpvsl = ipc.readLvar("ngx_MCP_VS")

mcpcmdal = ipc.readLvar("ngx_MCP_CMDA")

mcpcmdbl = ipc.readLvar("ngx_MCP_CMDB")

mcpcswal = ipc.readLvar("ngx_MCP_CSWA")

mcpcswbl = ipc.readLvar("ngx_MCP_CSWB")

--write the stored value to 0x0000 format offsets that SIOC can read:

ipc.writeUW("66C0", mcpcrs1w)

ipc.writeUW("66C2", mcpspdw)

ipc.writeUW("66C4", mcphdgw)

ipc.writeUW("66C6", mcpaltw)

ipc.writeUW("66C8", mcpvsw)

ipc.writeUW("66CA", mcpcrs2w)

ipc.writeUB("66CC", mcpfd1s)

ipc.writeUB("66CD", mcpn1l)

ipc.writeUB("66CE", mcpatal)

ipc.writeUB("66CF", mcpspdl)

ipc.writeUB("66D0", mcplvll)

ipc.writeUB("66D1", mcpvnavl)

ipc.writeUB("66D2", mcphdgl)

ipc.writeUB("66D3", mcpappl)

ipc.writeUB("66D4", mcpvorl)

ipc.writeUB("66D5", mcplnavl)

ipc.writeUB("66D6", mcpalthl)

ipc.writeUB("66D7", mcpvsl)

ipc.writeUB("66D8", mcpcswal)

ipc.writeUB("66D9", mcpcmdal)

ipc.writeUB("66DA", mcpcswbl)

ipc.writeUB("66DB", mcpcmdbl)

ipc.writeUB("66DC", mcpfd2s)

ipc.sleep(50)

end

I am using the virtual joystick for simulating keypresses defined in PMDG for all MCP functions.COnfigured in the FSUIPC config file below.

My FSUIPC config file :

[Auto]

1=Lua PMDGNGX

[General]

UpdatedByVersion=4727

History=VOSNKHSSB0OYVFLH3PJ4A

MouseWheelTrim=No

MouseWheelTrimSpeed=1

JoystickTimeout=20

PollGFTQ6=Yes

BlankDisplays=No

FixControlAccel=No

FixMachSpeedBug=No

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=Substring

UseProfiles=Yes

EnableMouseLook=No

TCASid=Flight

TCASrange=40

AxisCalibration=No

DirectAxesToCalibs=No

ShowMultilineWindow=Yes

SuppressSingleline=No

SuppressMultilineFS=No

AxisIntercepts=No

DontResetAxes=No

GetNearestAirports=No

WeatherReadFactor=2

WeatherRewriteSeconds=1

CustomWeatherModify=No

SimConnectStallTime=1

LuaRerunDelay=66

Console=No

ConsoleWindow=-32000,-32000,-31835,-31929

[JoyNames]

AutoAssignLetters=No

1=Saitek Pro Flight Rudder Pedals

1.GUID={177CD7E0-D5A6-11E0-8001-444553540000}

0=Saitek Pro Flight Yoke

0.GUID={BE0CDA70-CF33-11E0-8001-444553540000}

2=Saitek Pro Flight Quadrant

2.GUID={177F21D0-D5A6-11E0-8002-444553540000}

[buttons]

ButtonRepeat=20,10

1=P64,0,K84,11

2=P64,1,K82,10

3=P64,2,K76,11

4=P64,3,K66,10

5=P64,4,K72,10

6=P64,5,K65,10

7=P64,6,K79,10

8=P64,7,K78,10

9=P64,8,K90,10

10=P64,9,K88,9

11=P64,10,K90,8

12=P64,11,K90,11

13=P64,12,K87,10

14=P64,13,K87,11

15=P64,14,K70,10

16=P64,15,K82,9

17=P64,16,K84,10

18=P64,17,K88,10

19=P64,18,K70,11

20=U64,14,K70,10

21=U64,15,K82,9

22=U64,18,K70,11

23=U64,17,K88,10

!1=//COURSE CAPT

24=CP(+64,19)64,20,K74,11

25=CU(+64,19)64,20,K74,10

26=CP(+64,20)64,19,K74,10

27=CU(+64,20)64,19,K74,11

28=CP(-64,19)64,20,K74,10

29=CU(-64,19)64,20,K74,11

30=CP(-64,20)64,19,K74,11

31=CU(-64,20)64,19,K74,10

!2=//IAS

32=CP(+64,21)64,22,K75,11

33=CU(+64,21)64,22,K75,10

34=CP(+64,22)64,21,K75,10

35=CU(+64,22)64,21,K75,11

36=CP(-64,21)64,22,K75,10

37=CU(-64,21)64,22,K75,11

38=CP(-64,22)64,21,K75,11

39=CU(-64,22)64,21,K75,10

!3=//HEADING

40=CP(+64,23)64,24,K77,11

41=CU(+64,23)64,24,K77,10

42=CP(+64,24)64,23,K77,10

43=CU(+64,24)64,23,K77,11

44=CP(-64,23)64,24,K77,10

45=CU(-64,23)64,24,K77,11

46=CP(-64,24)64,23,K77,11

47=CU(-64,24)64,23,K77,10

!4=//ALTITUDE

48=CP(+64,25)64,26,K73,11

49=CU(+64,25)64,26,K73,10

50=CP(+64,26)64,25,K73,10

51=CU(+64,26)64,25,K73,11

52=CP(-64,25)64,26,K73,10

53=CU(-64,25)64,26,K73,11

54=CP(-64,26)64,25,K73,11

55=CU(-64,26)64,25,K73,10

!5=//VERT SPEED

56=CP(+64,27)64,28,K74,9

57=CU(+64,27)64,28,K73,9

58=CP(+64,28)64,27,K73,9

59=CU(+64,28)64,27,K74,9

60=CP(-64,27)64,28,K73,9

61=CU(-64,27)64,28,K74,9

62=CP(-64,28)64,27,K74,9

63=CU(-64,28)64,27,K73,9

!6=//COURSE FO

64=CP(+64,29)64,30,K79,11

65=CU(+64,29)64,30,K79,9

66=CP(+64,30)64,29,K79,9

67=CU(+64,30)64,29,K79,11

68=CP(-64,29)64,30,K79,9

69=CU(-64,29)64,30,K79,11

70=CP(-64,30)64,29,K79,11

71=CU(-64,30)64,29,K79,9

72=P65,1,K72,9

73=P65,3,K72,11

74=P65,2,K85,11

!7=// BANK SEL

75=CP(F+65,2)(+64,23)64,24,K89,11

76=CU(F+65,2)(+64,23)64,24,K89,10

77=CP(F+65,2)(+64,24)64,23,K89,10

78=CU(F+65,2)(+64,24)64,23,K89,11

79=CP(F+65,2)(-64,23)64,24,K89,10

80=CU(F+65,2)(-64,23)64,24,K89,11

81=CP(F+65,2)(-64,24)64,23,K89,11

82=CU(F+65,2)(-64,24)64,23,K89,10

[AutoSave]

Next=1

Interval=60

Files=10

SaveOnGround=No

AutoSaveEnabled=No

[GPSout]

GPSoutEnabled=No

[GPSout2]

GPSoutEnabled=No

[WideServer]

WideFSenabled=Yes

[sounds]

Path=D:\FSX\Sound\

Device1=Primær lyddriver

Device2=Høyttalere (Realtek High Definition Audio)

Device3=Realtek HDMI Output (Realtek High Definition Audio)

Device4=Realtek Digital Output (Realtek High Definition Audio)

[LuaFiles]

1=display vals

2=Fuel737

3=gfdDisplay

4=GFpower

5=HidDemo

6=init pos

7=ipcDebug

8=landing

9=liar

10=log lvars

11=MasterClient

12=MyDisplay

13=Payload737

14=record to csv

15=SlaveServer

16=SyncAxis

17=testclnt

18=testsrvr

19=ThrustSym

20=ThrustSym4

21=TripleUse

22=VRI_SetBaro

23=VRI_SetMach

24=WP6test

25=lesdisplayb

26=NGX_AUTO

27=lesdisplay

28=PMDGNGX

29=log NGXLVARs

30=PMDGNGX01

31=PMDGNGX02

[Window.LUA display]

Docked=12770, 4703, 3515, 3976

Undocked=88, 46, 301, 290

[Monitor]

Monitor0=0,66C0,3,0

Display=2

Monitor1=0,66C2,3,0

My SIOC script for my own build OC MCP:

// *****************************************************************************

// * Config_SIOC ver 1.97 - By Manolo Vélez - www.opencockpits.com

// *****************************************************************************

// * FileName : MCP_PMDG B737NGX_FSUIPC_11.txt

// * Date : 1/10/2011

// * Ver : 1.1 by Roar Kristensen

// * config file for own build OC MCP in PMDG B737NGX using FSUIPC

//********************************

// START

//********************************

Var 1 Link IOCARD_SW Input 23 Type I

{

&FO_JoyStick64 = CHANGEBIT 0 v1 // toggle N1 in MCP via FSUIPC

}

Var 3 Link IOCARD_SW Input 26 Type I

{

&FO_JoyStick64 = CHANGEBIT 1 v3 // toggle SPEED in MCP via FSUIPC

}

Var 4 Link IOCARD_SW Input 25 Type I

{

&FO_JoyStick64 = CHANGEBIT 2 v4 // toggle LVL CHG in MCP via FSUIPC

}

Var 5 Link IOCARD_SW Input 38 Type I

{

&FO_JoyStick64 = CHANGEBIT 3 v5 // toggle V NAV in MCP via FSUIPC

}

Var 6 Link IOCARD_SW Input 24 Type I

{

&FO_JoyStick64 = CHANGEBIT 4 v6 // toggle HDG SEL in MCP via FSUIPC

}

Var 7 Link IOCARD_SW Input 02 Type I

{

&FO_JoyStick64 = CHANGEBIT 5 v7 // toggle APP in MCP via FSUIPC

}

Var 8 Link IOCARD_SW Input 00 Type I

{

&FO_JoyStick64 = CHANGEBIT 6 v8 // toggle VOR LOC in MCP via FSUIPC

}

Var 9 Link IOCARD_SW Input 01 Type I

{

&FO_JoyStick64 = CHANGEBIT 7 v9 // toggle L NAV in MCP via FSUIPC

}

Var 10 Link IOCARD_SW Input 31 Type I

{

&FO_JoyStick64 = CHANGEBIT 8 v10 // toggle ALT HLD in MCP via FSUIPC

}

Var 11 Link IOCARD_SW Input 27 Type I

{

&FO_JoyStick64 = CHANGEBIT 9 v11 // toggle V/S in MCP via FSUIPC

}

Var 12 Link IOCARD_SW Input 14 Type I

{

&FO_JoyStick64 = CHANGEBIT 10 v12 // toggle CMD A in MCP via FSUIPC

}

Var 13 Link IOCARD_SW Input 11 Type I

{

&FO_JoyStick64 = CHANGEBIT 11 v13 // toggle CMD B in MCP via FSUIPC

}

Var 14 Link IOCARD_SW Input 15 Type I

{

&FO_JoyStick64 = CHANGEBIT 12 v14 // toggle CWS A in MCP via FSUIPC

}

Var 15 Link IOCARD_SW Input 13 Type I

{

&FO_JoyStick64 = CHANGEBIT 13 v15 // toggle CWS B in MCP via FSUIPC

}

Var 16 Link IOCARD_SW Input 22 Type I

{

&FO_JoyStick64 = CHANGEBIT 14 v16 // toggle F/D CAPT in MCP via FSUIPC

}

Var 17 Link IOCARD_SW Input 21 Type I

{

&FO_JoyStick64 = CHANGEBIT 15 v17 // toggle A/T ARM in MCP via FSUIPC

}

Var 18 Link IOCARD_SW Input 20 Type I

{

&FO_JoyStick64 = CHANGEBIT 16 v18 // toggle C/O in MCP via FSUIPC

}

Var 19 Link IOCARD_SW Input 19 Type I

{

&FO_JoyStick64 = CHANGEBIT 17 v19 // toggle DISENGAGE in MCP via FSUIPC

}

Var 20 Link IOCARD_SW Input 18 Type I

{

&FO_JoyStick64 = CHANGEBIT 18 v20 // toggle F/D FO in MCP via FSUIPC

}

// Next is the codes for rotaries

//-----------------------------------------

Var 21 Link IOCARD_SW Input 32 Type I

{

&FO_JoyStick64 = CHANGEBIT 19 v21 // turn COURSE CAPT in MCP via FSUIPC

}

Var 22 Link IOCARD_SW Input 33 Type I

{

&FO_JoyStick64 = CHANGEBIT 20 v22 // turn COURSE CAPT in MCP via FSUIPC

}

Var 23 Link IOCARD_SW Input 28 Type I

{

&FO_JoyStick64 = CHANGEBIT 21 v23 // turn IAS/MACH in MCP via FSUIPC

}

Var 24 Link IOCARD_SW Input 29 Type I

{

&FO_JoyStick64 = CHANGEBIT 22 v24 // turn IAS/MACH in MCP via FSUIPC

}

Var 25 Link IOCARD_SW Input 7 Type I

{

&FO_JoyStick64 = CHANGEBIT 23 v25 // turn HEADING in MCP via FSUIPC

}

Var 26 Link IOCARD_SW Input 8 Type I

{

&FO_JoyStick64 = CHANGEBIT 24 v26 // turn HEADING in MCP via FSUIPC

}

Var 27 Link IOCARD_SW Input 4 Type I

{

&FO_JoyStick64 = CHANGEBIT 25 v27 // turn ALTITUDE in MCP via FSUIPC

}

Var 28 Link IOCARD_SW Input 5 Type I

{

&FO_JoyStick64 = CHANGEBIT 26 v28 // turn ALTITUDE in MCP via FSUIPC

}

Var 29 Link IOCARD_SW Input 16 Type I

{

&FO_JoyStick64 = CHANGEBIT 27 v29 // turn VERT SPEED in MCP via FSUIPC

}

Var 30 Link IOCARD_SW Input 17 Type I

{

&FO_JoyStick64 = CHANGEBIT 28 v30 // turn VERT SPEED in MCP via FSUIPC

}

Var 31 Link IOCARD_SW Input 9 Type I

{

&FO_JoyStick64 = CHANGEBIT 29 v31 // turn COURSE FO in MCP via FSUIPC

}

Var 32 Link IOCARD_SW Input 10 Type I

{

&FO_JoyStick64 = CHANGEBIT 30 v32 // turn COURSE FO in MCP via FSUIPC

}

Var 33 Link IOCARD_SW Input 35 Type I

{

&FO_JoyStick65 = CHANGEBIT 0 v33 // toogle noname in MCP via FSUIPC

}

Var 34 Link IOCARD_SW Input 34 Type I

{

&FO_JoyStick65 = CHANGEBIT 1 v34 // turn SPEED INTV in MCP via FSUIPC

}

Var 35 Link IOCARD_SW Input 6 Type I

{

&FO_JoyStick65 = CHANGEBIT 2 v35 // toogle BANK in MCP via FSUIPC

}

Var 36 Link IOCARD_SW Input 3 Type I

{

&FO_JoyStick65 = CHANGEBIT 3 v36 // turn ALT INTV FO in MCP via FSUIPC

}

Var 2 name FO_JoyStick64 Link FSUIPC_OUT Offset $3340 Length 4

Var 37 name FO_JoyStick65 Link FSUIPC_OUT Offset $3344 Length 4

// DIGITS

Var 100 Link FSUIPC_IN Offset $66C0 Length 2 // Reading CRS1 from NGX via FSUIPC

{

v101 = v100

}

Var 101, name D_CRS1, Link IOCARD_DISPLAY, Digit 13, Numbers 3

Var 102 Link FSUIPC_IN Offset $66C2 Length 2 // Reading SPD from NGX via FSUIPC

{

v103 = v102

}

Var 103, name D_SPD, Link IOCARD_DISPLAY, Digit 10, Numbers 3

Var 104 Link FSUIPC_IN Offset $66C4 Length 2 // Reading HDG from NGX via FSUIPC

{

v105 = v104

}

Var 105, name D_HDG, Link IOCARD_DISPLAY, Digit 7, Numbers 3

Var 106 Link FSUIPC_IN Offset $66C6 Length 2 // Reading ALT from NGX via FSUIPC

{

v107 = v106

}

Var 107, name D_ALT, Link IOCARD_DISPLAY, Digit 2, Numbers 5

Var 108 Link FSUIPC_IN Offset $66C8 Length 2 // Reading VS from NGX via FSUIPC

{

IF V108 <= 6000

{

v109 = v108

&Sign = -999999 // blank

}

ELSE

{

v109 = 65536 - v108

&Sign = -999998 // minus sign '-'

}

}

Var 109, name D_VS, Link IOCARD_DISPLAY, Digit 16, Numbers 4

var 189 name Sign Link IOCARD_DISPLAY Digit 20 Numbers 1

Var 110 Link FSUIPC_IN Offset $66CA Length 2 // Reading CRS2 from NGX via FSUIPC

{

v111 = v110

}

Var 111, name CRS2, Link IOCARD_DISPLAY, Digit 23, Numbers 3

// OUTPUTS

// Var 200, name DECIMAL, Link IOCARD_OUT, Output 20 // hva er dette, må sjekkes

Var 122 Link FSUIPC_IN Offset $66CD Length 1 // Reading N1 from NGX via FSUIPC

{

v202 = v122

}

Var 202, name O_N1, Link IOCARD_OUT, Output 47

Var 123 Link FSUIPC_IN Offset $66CE Length 1 // Reading AT ARM from NGX via FSUIPC

{

v203 = v123

}

Var 203, name O_AT, Link IOCARD_OUT, Output 40

Var 124 Link FSUIPC_IN Offset $66CF Length 1 // Reading SPD from NGX via FSUIPC

{

v204 = v124

}

Var 204, name O_SPEED, Link IOCARD_OUT, Output 46

Var 125 Link FSUIPC_IN Offset $66D0 Length 1 // Reading LCHG from NGX via FSUIPC

{

v205 = v125

}

Var 205, name O_LVLCHG, Link IOCARD_OUT, Output 45

Var 126 Link FSUIPC_IN Offset $66D1 Length 1 // Reading VNAV from NGX via FSUIPC

{

v206 = v126

}

Var 206, name O_VNAV, Link IOCARD_OUT, Output 39

Var 127 Link FSUIPC_IN Offset $66D2 Length 1 // Reading HDGSEL from NGX via FSUIPC

{

v207 = v127

}

Var 207, name O_HDGSEL, Link IOCARD_OUT, Output 44

Var 128 Link FSUIPC_IN Offset $66D3 Length 1 // Reading APP from NGX via FSUIPC

{

v208 = v128

}

Var 208, name O_APP, Link IOCARD_OUT, Output 43

Var 129 Link FSUIPC_IN Offset $66D4 Length 1 // Reading VORLOC from NGX via FSUIPC

{

v209 = v129

}

Var 209, name O_VORLOC, Link IOCARD_OUT, Output 42

Var 130 Link FSUIPC_IN Offset $66D5 Length 1 // Reading LNAV from NGX via FSUIPC

{

v210 = v130

}

Var 210, name O_LNAV, Link IOCARD_OUT, Output 41

Var 131 Link FSUIPC_IN Offset $66D6 Length 1 // Reading ALTHD from NGX via FSUIPC

{

v211 = v131

}

Var 211, name O_ALTHLD, Link IOCARD_OUT, Output 11

Var 132 Link FSUIPC_IN Offset $66D7 Length 1 // Reading VS from NGX via FSUIPC

{

v212 = v132

IF v132 = 0

{

v109 = -999999 // blank the display

&Sign = -999999 // blank

}

}

Var 212, name O_VS, Link IOCARD_OUT, Output 12

Var 133 Link FSUIPC_IN Offset $66D8 Length 1 // Reading CSWA from NGX via FSUIPC

{

v213 = v133

}

Var 213, name O_CWSA, Link IOCARD_OUT, Output 13

Var 134 Link FSUIPC_IN Offset $66D9 Length 1 // Reading CMDA from NGX via FSUIPC

{

v214 = v134

}

Var 214, name O_CMDA, Link IOCARD_OUT, Output 16

Var 135 Link FSUIPC_IN Offset $66DA Length 1 // Reading CSWB from NGX via FSUIPC

{

v215 = v135

}

Var 215, name O_CWSB, Link IOCARD_OUT, Output 14

Var 136 Link FSUIPC_IN Offset $66DB Length 1 // Reading CMDB from NGX via FSUIPC

{

v216 = v136

}

Var 216, name O_CMDB, Link IOCARD_OUT, Output 15

Link to comment
Share on other sites

When turning the dial slow everything is in sync, but also here the delay is about 1/2 second ( from a number turns up on PMDG MCP until the same number turns up on OC MCP.

The normal way to drive displays is to update locally at the same time as sending the value to FS. Ignore updates from FS for a while after seeing a local update -- I usually allow about 500 mSecs. It sounds like you are sending values to FS then updating the local display when you get a response. Depending in all sorts of things that can naturally seem a bit disjointed. Always update locally too. Whilst updating locally you don't want to see the FS values, just use lthe last value from FS when the user has stopped turning the dial for, say, that 500 mSecs, maybe a little more.

Sorry, I don't understand most of the rest of what you posted, except to note that the Lua is VERY inefficient. You should only update things that change, not everything on every loop. And of ocurse using keystrokes in FS is awfully inefficient. Thery just pile up in Windows message queues. I'd wait until PMDG issue their SDK if I were you, rather than tolerate that.

Regards

Pete

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.