Results 1 to 10 of 29
Thread: Efis and mcp together on pmdg
-
08-03-2008, 01:44 AM #1
- Join Date
- Aug 2008
- Location
- Istanbul
- Posts
- 88
Efis and mcp together on pmdg
Dear cockpit builders,
I have purchased OpenCockpits MCP and EFIS module. I know this might be the millionth time you read such questions wich all of you have been through but I probably have the same problem with all of you when you have started this.
My MCP works perfect, no problems at all, However the EFIS only works on the baro setting and nothing else. Even though the sioc does whatever it programmed to do when I looked at the code I found out some parameters defined with unknown offsets for FSUIPC like 04F8.
I have downloaded the code from opencockpits site. I am suspecting that this is for Project Magenta as the offset does not show on FSUIPC SDK.
I have also tried to send key presses thorugh the emulator exactly as the MCP module does but that seems to not to work even though I have cheked the key config from PMDG comand set and entered manually from the keyboard.
Please help,
Thank you in advance,
-
08-03-2008, 08:33 PM #2
You might want to check this thread.
http://www.mycockpit.org/forums/showthread.php?t=12908
He shows the programming for a B-737. Maybe you can get some ideas?
Good luck. Opencockpiots is great stuff. But it can be **** getting it to work.John
System:
ASUS P5Q SE/R
Intel Q9550 O/C to 3.4 GHz
4 GB 1066 DDR2 RAM
300 GB WD 10,000 RPM Raptor SATA Drive
GeForce 8800 GT 512 KB RAM
Matrox TH2Go with three 19" Sumsung 940 BX
IR Track 4
-
08-03-2008, 10:01 PM #3
-
08-04-2008, 12:27 PM #4
- Join Date
- Aug 2008
- Location
- Istanbul
- Posts
- 88
Thanks for the answers, after struggling for 3 days I have finally get it to work. It turns out to be that I am right.PMDG does not support the FSUIPS offsets given in the programming text of EFIS by Opencockpits. Those offsets are for PM software. So I ended up using the good old keyboard emulator and get most functions to work. The last bit is the rotary switches. It will always bother me but since there is no FSUIPC offset I am gonna have to reset all the rotary switches before I run the simulator to PMDG Cold and Dark alues. In other words EFIS ND mode should be in APP and the range should be in 5 miles.
The only problem left now is the RADIOand BARO rotary switch. I am gonna have to find a good way to make it work but it will take some more days I guess.
Nevertheless any ideas will be appreciated.
Thanks again
Barkay
P.S. What do you exactly mean by upgrade your firmware. I did not come across such a thing in Opencockpits web site. Can you please explain?Last edited by barkay; 08-04-2008 at 12:28 PM. Reason: addition of text
-
08-04-2008, 12:51 PM #5
You can set up the radio encoder pots the same way, but you will have to return to the default FS frequencies before shutting down the sim (if you have a frequency display on the radios).
You can edit the default frequencies if you wish. I have mine set up for Innsbruck since I depart a lot from that airport.Boeing Skunk Works
Remember...140, 250, and REALLY FAST!
We don't need no stinkin' ETOPS!
Powered by FS9 & BOEING
-
08-05-2008, 07:05 AM #6
- Join Date
- Aug 2007
- Location
- Kallinge, Sweden
- Posts
- 29
Hi Barkey, I have the same OC setup as you... and the same issues of course. I have asked OC about this (and some other issues) and got this reply:
Hi Conny>>
We have found that some differences between FS2004 and FSX concerning the MCP inputs and outputs.>>
In FSX
Var 216, name O_VORLOC, Link IOCARD_OUT, Output 29 (instead of 2
Var 218, name O_LNAV, Link IOCARD_OUT, Output 28 (instead of 29)
Var 422, name I_VORLOC, Link IOCARD_SW, Input 27 (instead of 25)
Var 424, name I_LNAV, Link IOCARD_SW, Input 25 (instead of 27)>>
>>
This solves the VORLOC/LNAV and Alt HELD/VS problem>>
>>
As FS2004 did not have the C/O and N1 functions in his MCP, there are no variables allocated.>>
We are actually working in a complete solution for FSX default airplanes MCP and EFIS, that will not need FSUIPC. We expect this to be a matter of one or two weeks.
So it seems like there are some fixes that will be done soon
However I would appreciate if you could share your SIOC fixes so far.
Right now I only got Baro settings to work.
This is what it looks like.
Var 0000, Value 0
{
&SUB_BAR = 1023
Var 0204, name I_BARONSW, Link IOCARD_SW, Device 1, Input 22
{
IF &I_BARONSW = 1
{
&SUB_BAR = 1013
L0 = 1013 * 16
L0 = L0 + 1
&FS_QNH = L0
Var 0216, name E_BARO, Link IOCARD_ENCODER, Device 1, Input 20, Aceleration 1, Type 2
{
L0 = &E_BARO * -1
&SUB_BAR = &SUB_BAR + L0
-
08-05-2008, 07:07 AM #7
- Join Date
- Aug 2007
- Location
- Kallinge, Sweden
- Posts
- 29
-
08-05-2008, 11:05 AM #8
- Join Date
- Aug 2008
- Location
- Istanbul
- Posts
- 88
CoNa,
Thanks for the effort. I am on a business trip right now but I will post my files on firday. Right now I got all the function buttons working (FPV, MTRS, WXR,STA etc.) Baro is working no problem however as there is no push button down there for MB and InHG I willassign one of the unusued buttons maybe like TERR to it.
Problem still continues in the ND range and the ND mode switches.
I could not come up with a logic to send keys yet. I know how to send keys but the sequence is bad
For example, PMDG opens ND mode in MAP mode by default.
If I want to get it forward to pln mode all I have to do is to tell sioc that if PLN variable is 1 the send the key pres to increase ND mode one notch. When I want to come back from that and I say If MAP mode equals 1 then I can again take it one notch back, but since I can not read via offsets I can not initialize the value so if I start on MAP mode as default SIOC sees the MAP value as 1 and tries to decrease the mode and vice versa. So I am still trying to come up to a solution. One of the posts was mentioning an additional software called OGS. I think somethign similar to PM in a very basic way but reserves its offsets. So If I can initialize the condition than it is down hill from there.
Best Regards,
-
08-10-2008, 06:05 AM #9
- Join Date
- Aug 2008
- Location
- Istanbul
- Posts
- 88
Dear Friends,
Finally everything works perfect except one little initialization problem. I could not solve it yet.
Before giving the files let me talk about this problem. Since there no specific offset for the EFIS switches in PMDG my problem is I can not initialize the position of the ND Mode and ND Range. If I have left them in values other than ND Mode=MAP and ND Range=5 (which are the default PMDG loading) system does not recognise the position of the button. So ıave to make one full ound to initialize it manually. Except this everthing with the below sioc.ini, and sioc.txt works perfect.
NOTE: I have changed a lot of button settings in PMDG key settings for EFIS and MCP. They are in Sioc.ini file. If you do ot understand them I can also send you the keys I have set
*********FIRST THE SIOC.INI **************
[ fichero de configuracion para el SIOC ver. 3.52 ]
IOCP_port=8092
IOCP_timeout=4000
Minimized=No
toggle_delay=20
CONFIG_FILE=.\sioc.ssi
[************** IOCARDS MODULE ***************]
IOCard_disable=No
IOCard_LPT=No
[ MASTER=(Device index),(Type),(Number of cards),(Device number) ]
[ Device index : Index used in SIOC variable like device, this is the card used for SIOC sentence ]
[ Use 0 for only one card, for this value you not need specify Device number. If you not use DEVICE parameter in a definition in SIOC script, the default index used is 0]
[ type = 0 : Master Card Emulator ]
[ type = 1 : Master Card connected directly to parallel port ]
[ type = 2 : Master Card connected throught compatibility cable to parallel port ]
[ type = 3 : Expansion Card connected throught parallel port ]
[ type = 4 : USBExpansion Card used ]
[ type = 5 : Opencockpits MCP module ]
[ type = 6 : USBOutputs Card used ]
[ type = 7 : Opencockpits EFIS module ]
[ Number of Cards = Master cards connecteds, 1 to 4 for expansion cards, 1 for a Master card directly connected or Emulator ]
[ Number of device = 0 for Emulator or first USB card detected, parallel port address, device number for specifies USBexpansion card ]
MASTER=0,5,1,32
MASTER=1,7,1,33
[ Others Cards / Otras tarjetas ]
USBStepper=0,0
USBKeys=0,0
USBServos=0,0
USBRelays=0,0
USBDCmotor=0,0
USBAnalogic=0,0
[************** FSUIPC MODULE ***************]
FSUipcdisable=No
FSUipcRefresh=50
[************** IOCP CLIENTS MODULES ***************]
IOCPini_delay=3000
IOCPclient0_disable=no
IOCPclient0_host=localhost
IOCPclient0_port=8090
IOCPclient1_disable=Yes
IOCPclient1_host=localhost
IOCPclient1_port=8099
[************** SOUND MODULE ***************]
Sound_disable=yes
Volume=100
[ #1 ]
Sound=APDis.wav,-1,-1,-1
[************** KEYBOARD EMULATOR MODULE ***************]
[ Nombre exacto de la ventana donde se enviarán las teclas ]
[ Name of window for key send ]
[window = "Project Magenta Glass Cockpit - Build 396" ]
window =Microsoft Flight Simulator 2004 - A Century of flight with WideServer.waiting for clients
[ Asignación de teclas ]
[ assign youe keys ]
#1=
#2=
#3=
#4=
#5=
#6=
#7=
#8=
#9=
#10=
#11=
#12=
#13=
#14=
#15=
#16=
#17=
#18=
#19=
#20=
#21=
#22=
#23=
#24=
#25=
#26=\3\1Y\2\4
#27=
#28=
#29=
#30=
#31=
#32=
#33=
#34=
#35=
#36=
#37=
#38=
#39=
#40=
#41=
#42=
#43=
#44=\1R\2
#45=\3\I\4
#46=\1\G\2
#47=\3\L\4
#48=\3\1H\2\4
#49=\1\O\2
#50=\3\1V\2\4
#51=\3M\4
#52=\3\1Z\2\4
#53=\3\F\4
#54=\3\1\O\2\4
#55=\3\1P\2\4
#56=\3F\4
#57=\3V\4
#58=\3P\4
#59=\3I\4
#60=\1I\2
#61=\3\1N\2\4
#62=\3H\4
#63=\3A|4
#64=\3Z\4
#65=\3\H\4
#66=\3\1A\2\4
#67=\1\H\2
#68=\3\1\H\2\4
#69=\3N\4
#70=\3O\4
#71=\3\I\4
#72=\1\G\2
#73=\3\1\G\2\4
#74=
#75=\1\BM\2
#76=\3\1M\2\4
#77=\1\P\2
#78=\3,\4
#79=
#80=\3\1R\2\4
#81=\3\1Q\2\4
#82=\3\1X\2\4
#83=\3\1E\2\4
#84=\3\1T\2\4
#85=\3\1,\2\4
#86=\3\1O\2\4
#87=\3\1C\2\4
#88=\3\1K\2\4
#89=\3\11\2\4
#90=\3\13\2\4
#91=\3\12\2\4
#92=\3\14\2\4
#93=\3\1S\2\4
#94=\3\1L\2\4
#95=\3K\4
#96=\3J\4
#200=
[ End of File ]
*********NOW THE SIOC.TXT*************
// *****************************************************************************
// * Config_SIOC ver 3.5 - By Manolo Vélez - www.opencockpits.com
// *****************************************************************************
// * FileName : sioc.txt
// * Date : 09.08.2008
Var 0001, name keys, Link KEYS // variable transfert emulateur clavier ( S
Var 0002, name MEMHDG, Value 0
Var 0003, name IAS, Link FSUIPC_IN, Offset $02BC, Length 4
Var 0004, name MACH, Link FSUIPC_IN, Offset $11C6, Length 2
Var 0005, name MEMALT, Value 10000
Var 0006, Value 0
{
&SUB_BAR = 1023
}
Var 0007, name CPTflags // Flags for CPT EFIS ND MODE switches
Var 0008, name Rngflags, Value 1 // range changer
Var 0010, name FDLEFTled, Link IOCARD_OUT, Output 39
Var 0011, name ATled, Link IOCARD_OUT, Output 22
Var 0012, name N1led, Link IOCARD_OUT, Output 21
Var 0013, name SPEEDled, Link IOCARD_OUT, Output 23
Var 0014, name LVLCHGled, Link IOCARD_OUT, Output 24
Var 0015, name HDGled, Link IOCARD_OUT, Output 26
Var 0016, name VNAVled, Link IOCARD_OUT, Output 25
Var 0017, name LNAVled, Link IOCARD_OUT, Output 29
Var 0018, name VORLOCled, Link IOCARD_OUT, Output 28
Var 0019, name APPled, Link IOCARD_OUT, Output 27
Var 0020, name ALTHOLDled, Link IOCARD_OUT, Output 30
Var 0021, name VSled, Link IOCARD_OUT, Output 31
Var 0022, name CMDAled, Link IOCARD_OUT, Output 33
Var 0023, name CMDBled, Link IOCARD_OUT, Output 35
Var 0024, name CWSAled, Link IOCARD_OUT, Output 32
Var 0025, name CWSBled, Link IOCARD_OUT, Output 34
Var 0026, name VSminus, Link IOCARD_OUT, Output 45
Var 0027, name IASpoint, Link IOCARD_OUT, Output 20
Var 0030, name CRSLEFTdisplay, Link IOCARD_DISPLAY, Digit 0, Numbers 3
Var 0031, name IASdisplay, Link IOCARD_DISPLAY, Digit 3, Numbers 3
Var 0032, name HDGdisplay, Link IOCARD_DISPLAY, Digit 6, Numbers 3
Var 0033, name ALTdisplay, Link IOCARD_DISPLAY, Digit 9, Numbers 5
Var 0034, name VSdisplay, Link IOCARD_DISPLAY, Digit 14, Numbers 5
Var 0035, name CRSRdisplay, Link IOCARD_DISPLAY, Digit 19, Numbers 3
Var 0040, name MCPstatus, Link FSUIPC_IN, Offset $62BC, Length 4
{
&FDLEFTled = TESTBIT &MCPstatus ,12
&ATled = TESTBIT &MCPstatus ,14
&N1led = TESTBIT &MCPstatus ,15
&SPEEDled = TESTBIT &MCPstatus ,16
&VNAVled = TESTBIT &MCPstatus ,18
&LVLCHGled = TESTBIT &MCPstatus ,17
&HDGled = TESTBIT &MCPstatus ,22
&LNAVled = TESTBIT &MCPstatus ,19
&VORLOCled = TESTBIT &MCPstatus ,20
&APPled = TESTBIT &MCPstatus ,21
&ALTHOLDled = TESTBIT &MCPstatus ,23
&VSled = TESTBIT &MCPstatus ,24
&CMDAled = TESTBIT &MCPstatus ,8
&CMDBled = TESTBIT &MCPstatus ,9
&CWSAled = TESTBIT &MCPstatus ,25
&CWSBled = TESTBIT &MCPstatus ,26
CALL &HDGaff
CALL &IASaff
CALL &ALTaff
CALL &VSaff
}
Var 0041, name SPDINTV, Link FSUIPC_IN, Offset $62C0, Length 1
{
CALL &IASaff
}
Var 0042, name COstatus, Link FSUIPC_IN, Offset $621E, Length 2
{
CALL &IASaff
}
Var 0050, name CRSpmdg, Link FSUIPC_IN, Offset $0C4E, Length 2
{
IF &CRSpmdg = 360
{
&CRSLEFTdisplay = 0
}
ELSE
{
&CRSLEFTdisplay = &CRSpmdg
}
}
Var 0051, name IASpmdg, Link FSUIPC_IN, Offset $6220, Length 2
{
CALL &IASaff
}
Var 0052, name hdgpmdg, Link FSUIPC_IN, Offset $622C, Length 2
{
CALL &HDGaff
}
Var 0053, name ALTpmdg, Link FSUIPC_IN, Offset $622E, Length 2
{
CALL &ALTaff
}
Var 0054, name VSpmdg, Link FSUIPC_IN, Offset $6230, Length 2
{
CALL &VSaff
}
Var 0055, name CRS2pmdg, Link FSUIPC_IN, Offset $0C4E, Length 2
{
IF &CRS2pmdg = 360
{
&CRSRdisplay = 0
}
ELSE
{
&CRSRdisplay = &CRS2pmdg
}
}
Var 0060, name FDswitch, Link IOCARD_SW, Input 16
{
IF &FDswitch = 1
{
IF &FDLEFTled = 0
{
&keys = 56
&keys = 0
}
}
ELSE
{
IF &FDswitch = 0
{
IF &FDLEFTled = 1
{
&keys = 56
&keys = 0
}
}
}
}
Var 0061, name ATswitch, Link IOCARD_SW, Input 33
{
IF &ATswitch = 1
{
IF &ATled = 0
{
&keys = 44
&keys = 0
}
}
ELSE
{
IF &ATswitch = 0
{
IF &ATled = 1
{
&keys = 44
&keys = 0
}
}
}
}
Var 0062, name N1bp, Link IOCARD_SW, Input 32
{
IF &N1bp = 1
{
&keys = 61
&keys = 0
}
}
Var 0063, name SPEEDbp, Link IOCARD_SW, Input 31
{
IF &SPEEDbp = 1
{
&keys = 51
&keys = 0
}
}
Var 0064, name VNAVbp, Link IOCARD_SW, Input 30
{
IF &VNAVbp = 1
{
&keys = 57
&keys = 0
}
}
Var 0065, name LVLCHGbp, Link IOCARD_SW, Input 29
{
IF &LVLCHGbp = 1
{
&keys = 59
&keys = 0
}
}
Var 0066, name HDGbp, Link IOCARD_SW, Input 28
{
IF &HDGbp = 1
{
&keys = 62
&keys = 0
}
}
Var 0067, name LNAVbp, Link IOCARD_SW, Input 27
{
IF &LNAVbp = 1
{
&keys = 69
&keys = 0
}
}
Var 0068, name VORLOCbp, Link IOCARD_SW, Input 25
{
IF &VORLOCbp = 1
{
&keys = 70
&keys = 0
}
}
Var 0069, name APPbp, Link IOCARD_SW, Input 24
{
IF &APPbp = 1
{
&keys = 63
&keys = 0
}
}
Var 0070, name ALTHOLDbp, Link IOCARD_SW, Input 23
{
IF &ALTHOLDbp = 1
{
&keys = 64
&keys = 0
}
}
Var 0071, name VSbp, Link IOCARD_SW, Input 22
{
IF &VSbp = 1
{
&keys = 58
&keys = 0
}
}
Var 0072, name CMDAbp, Link IOCARD_SW, Input 21
{
IF &CMDAbp = 1
{
&keys = 66
&keys = 0
}
}
Var 0073, name CMDBbp, Link IOCARD_SW, Input 19
{
IF &CMDBbp = 1
{
&keys = 67
&keys = 0
}
}
Var 0074, name CWSAbp, Link IOCARD_SW, Input 20
{
IF &CWSAbp = 1
{
&keys = 65
&keys = 0
}
}
Var 0075, name CWSBbp, Link IOCARD_SW, Input 18
{
IF &CWSBbp = 1
{
&keys = 68
&keys = 0
}
}
Var 0076, name APDISCObp, Link IOCARD_SW, Input 15
{
IF &APDISCObp = 1
{
&keys = 26
&keys = 0
}
ELSE
{
&keys = 26
&keys = 0
}
}
Var 0077, name CObp, Link IOCARD_SW, Input 13
{
IF &CObp = 1
{
&keys = 60
&keys = 0
}
}
Var 0078, name FDRswitch, Link IOCARD_SW, Input 14
{
IF &FDRswitch = 1
{
&keys = 73
&keys = 0
}
ELSE
{
&keys = 73
&keys = 0
}
}
Var 0080, name CRSLEFTrot, Link IOCARD_ENCODER, Input 4, Aceleration 1, Type 2
{
IF &CRSLEFTrot = 1
{
&keys = 45
&keys = 0
}
ELSE
{
&keys = 46
&keys = 0
}
}
Var 0081, name IASrot, Link IOCARD_ENCODER, Input 0, Aceleration 1, Type 2
{
IF &IASrot = 1
{
&keys = 49
&keys = 0
}
ELSE
{
&keys = 50
&keys = 0
}
}
Var 0082, name HDGrot, Link IOCARD_ENCODER, Input 6, Aceleration 1, Type 2
{
IF &HDGrot = 1
{
&keys = 47
&keys = 0
}
ELSE
{
&keys = 48
&keys = 0
}
IF &HDGled = 0
{
L0 = &HDGrot * -1
&MEMHDG = ROTATE 0 ,359 ,L0
}
CALL &HDGaff
}
Var 0083, name ALTrot, Link IOCARD_ENCODER, Input 2, Aceleration 1, Type 2
{
IF &ALTrot = 1
{
&keys = 53
&keys = 0
}
ELSE
{
&keys = 52
&keys = 0
}
IF &VNAVled = 1
{
L0 = &ALTrot * -100
&MEMALT = LIMIT 0 ,50000 ,L0
CALL &ALTaff
}
}
Var 0084, name VSrot, Link IOCARD_ENCODER, Input 11, Aceleration 1, Type 2
{
IF &VSrot = 1
{
&keys = 54
&keys = 0
}
ELSE
{
&keys = 55
&keys = 0
}
}
Var 0085, name CRSRIGHTrot, Link IOCARD_ENCODER, Input 9, Aceleration 1, Type 2
{
IF &CRSRIGHTrot = 1
{
&keys = 45
&keys = 0
}
ELSE
{
&keys = 46
&keys = 0
}
}
Var 9999, name VSaff, Link SUBRUTINE
{
IF &VSled = 1
{
IF &VSpmdg < 60000
{
&VSdisplay = &VSpmdg
&VSminus = 0
}
ELSE
{
L0 = &VSpmdg - 65536
&VSdisplay = L0
&VSminus = 1
}
}
ELSE
{
&VSdisplay = -999999
&VSminus = 0
}
}
Var 9998, name IASaff, Link SUBRUTINE
{
C0 = &SPDINTV = 21
C0 = C0 AND &VNAVled
IF C0
{
&IASdisplay = -999999
}
ELSE
{
IF &COstatus < 4
{
&IASdisplay = &IASpmdg
&IASpoint = 0
}
ELSE
{
L0 = &IASpmdg / &IAS
L0 = L0 * 12800
L0 = L0 * &MACH
&IASdisplay = L0 / 20480
&IASpoint = 1
}
}
}
Var 9997, name HDGaff, Link SUBRUTINE
{
IF &LNAVled = 0
{
IF &hdgpmdg = 360
{
&MEMHDG = 0
}
ELSE
{
&MEMHDG = &hdgpmdg
}
}
&HDGdisplay = &MEMHDG
}
Var 9996, name ALTaff, Link SUBRUTINE
{
IF &VNAVled = 0
{
&MEMALT = &ALTpmdg
}
&ALTdisplay = &MEMALT
}
Var 0500, name I_S2, Link IOCARD_SW, Device 1, Input 28 // EFIS STA
{
IF &I_S2 = 1
{
&keys = 81
&keys = 0
}
}
Var 0501, name I_S1, Link IOCARD_SW, Device 1, Input 27 // EFIS WXR
{
IF &I_S1 = 1
{
&keys = 80
&keys = 0
}
}
Var 0502, name I_S3, Link IOCARD_SW, Device 1, Input 29 // EFIS WPT
{
IF &I_S3 = 1
{
&keys = 82
&keys = 0
}
}
Var 0503, name I_S4, Link IOCARD_SW, Device 1, Input 30 // EFIS ARPT
{
IF &I_S4 = 1
{
&keys = 83
&keys = 0
}
}
Var 0504, name I_S5, Link IOCARD_SW, Device 1, Input 31 // EFIS DATA
{
IF &I_S5 = 1
{
&keys = 84
&keys = 0
}
}
Var 0505, name I_S6, Link IOCARD_SW, Device 1, Input 32 // EFIS POS
{
IF &I_S6 = 1
{
&keys = 85
&keys = 0
}
}
Var 0506, name I_S7, Link IOCARD_SW, Device 1, Input 33 // EFIS TERR
{
IF &I_S7 = 1
{
&keys = 86
&keys = 0
}
}
Var 0507, name I_FPV, Link IOCARD_SW, Device 1, Input 34 // EFIS FPV
{
IF &I_FPV = 1
{
&keys = 87
&keys = 0
}
}
Var 0508, name I_MTRS, Link IOCARD_SW, Device 1, Input 38 // EFIS MTRS
{
IF &I_MTRS = 1
{
&keys = 88
&keys = 0
}
}
Var 0509, name I_BARONSW, Link IOCARD_SW, Device 1, Input 22
{
IF &I_BARONSW = 1
{
&SUB_BAR = 1013
L0 = 1013 * 16
L0 = L0 + 1
&FS_QNH = L0
}
}
Var 0510, name E_BARO, Link IOCARD_ENCODER, Device 1, Input 20, Aceleration 1, Type 2
{
L0 = &E_BARO * -1
&SUB_BAR = &SUB_BAR + L0
}
Var 1002, name SUB_BAR, Link SUBRUTINE
{
L0 = &SUB_BAR * 16
&FS_QNH = L0
}
Var 1204, name FS_QNH, Link FSUIPC_OUT, Offset $0330, Length 2 // FS_QNH_MB
Var 0511, name I_VOR1, Link IOCARD_SW, Device 1, Input 36
{
CALL &VOR1
}
Var 0512, name I_ADF1, Link IOCARD_SW, Device 1, Input 37
{
CALL &ADF1
}
Var 0513, name I_VOR2, Link IOCARD_SW, Device 1, Input 18
{
CALL &VOR2
}
Var 0514, name I_ADF2, Link IOCARD_SW, Device 1, Input 19
{
CALL &ADF2
}
Var 9000, name VOR1, Link SUBRUTINE // VOR1 SET MACRO
{
IF &I_VOR1 = 1
{
IF &I_ADF1 = 0
{
&keys = 89
&keys = 0
}
}
IF &I_VOR1 = 0
{
IF &I_ADF1 = 0
{
&keys = 90
&keys = 0
}
}
}
Var 9001, name ADF1, Link SUBRUTINE // ADF1 SETMACRO
{
IF &I_ADF1 = 1
{
IF &I_VOR1 = 0
{
&keys = 89
&keys = 0
&keys = 89
&keys = 0
}
}
IF &I_VOR1 = 0
{
IF &I_ADF1 = 0
{
&keys = 90
&keys = 0
&keys = 90
&keys = 0
}
}
}
Var 9002, name VOR2, Link SUBRUTINE // VOR2 SET MACRO
{
IF &I_VOR2 = 1
{
IF &I_ADF2 = 0
{
&keys = 91
&keys = 0
}
}
IF &I_VOR2 = 0
{
IF &I_ADF2 = 0
{
&keys = 92
&keys = 0
}
}
}
Var 9003, name ADF2, Link SUBRUTINE // ADF2 SETMACRO
{
IF &I_ADF2 = 1
{
IF &I_VOR2 = 0
{
&keys = 91
&keys = 0
&keys = 91
&keys = 0
}
}
IF &I_VOR2 = 0
{
IF &I_ADF2 = 0
{
&keys = 92
&keys = 0
&keys = 92
&keys = 0
}
}
}
Var 0516, name I_5, Link IOCARD_SW, Device 1, Input 0
{
IF &I_5 = 1
{
IF &Rngflags = 2
{
&keys = 96
&keys = 0
&Rngflags = 1
}
}
}
Var 0518, name I_10, Link IOCARD_SW, Device 1, Input 1
{
IF &I_10 = 1
{
IF &Rngflags = 1
{
&keys = 95
&keys = 0
&Rngflags = CLEARBIT 0
&Rngflags = SETBIT 1
}
IF &Rngflags = 3
{
&keys = 96
&keys = 0
&Rngflags = 2
}
}
}
Var 0520, name I_20, Link IOCARD_SW, Device 1, Input 2
{
IF &I_20 = 1
{
IF &Rngflags = 2
{
&keys = 95
&keys = 0
&Rngflags = CLEARBIT 1
&Rngflags = SETBIT 0
&Rngflags = SETBIT 1
}
IF &Rngflags = 4
{
&keys = 96
&keys = 0
&Rngflags = 3
}
}
}
Var 0522, name I_40, Link IOCARD_SW, Device 1, Input 3
{
IF &I_40 = 1
{
IF &Rngflags = 3
{
&keys = 95
&keys = 0
&Rngflags = CLEARBIT 0
&Rngflags = CLEARBIT 1
&Rngflags = SETBIT 2
}
IF &Rngflags = 5
{
&keys = 96
&keys = 0
&Rngflags = 4
}
}
}
Var 0524, name I_80, Link IOCARD_SW, Device 1, Input 4
{
IF &I_80 = 1
{
IF &Rngflags = 4
{
&keys = 95
&keys = 0
&Rngflags = CLEARBIT 2
&Rngflags = SETBIT 0
&Rngflags = SETBIT 2
}
IF &Rngflags = 6
{
&keys = 96
&keys = 0
&Rngflags = 5
}
}
}
Var 0526, name I_160, Link IOCARD_SW, Device 1, Input 5
{
IF &I_160 = 1
{
IF &Rngflags = 5
{
&keys = 95
&keys = 0
&Rngflags = CLEARBIT 0
&Rngflags = CLEARBIT 2
&Rngflags = SETBIT 1
&Rngflags = SETBIT 2
}
IF &Rngflags = 7
{
&keys = 96
&keys = 0
&Rngflags = 6
}
}
}
Var 0528, name I_320, Link IOCARD_SW, Device 1, Input 6
{
IF &I_320 = 1
{
IF &Rngflags = 6
{
&keys = 95
&keys = 0
&Rngflags = CLEARBIT 1
&Rngflags = CLEARBIT 2
&Rngflags = SETBIT 0
&Rngflags = SETBIT 1
&Rngflags = SETBIT 2
}
IF &Rngflags = 8
{
&keys = 96
&keys = 0
&Rngflags = CLEARBIT 3
&Rngflags = SETBIT 0
&Rngflags = SETBIT 1
&Rngflags = SETBIT 2
}
}
}
Var 0530, name I_640, Link IOCARD_SW, Device 1, Input 7
{
IF &I_640 = 1
{
IF &Rngflags = 7
{
&keys = 95
&keys = 0
&Rngflags = CLEARBIT 0
&Rngflags = CLEARBIT 1
&Rngflags = CLEARBIT 2
&Rngflags = SETBIT 3
}
}
}
Var 0555, name FOflags // Flags for F/O EFIS switches
Var 0532, name I_APP, Link IOCARD_SW, Device 1, Input 9
{
IF &I_APP = 1
{
IF &CPTflags = 128
{
&keys = 93
&keys = 0
&CPTflags = CLEARBIT 7
&CPTflags = SETBIT 8
}
}
}
Var 0536, name I_MAP, Link IOCARD_SW, Device 1, Input 11
{
IF &I_MAP = 1
{
IF &CPTflags = 512
{
&keys = 93
&keys = 0
&CPTflags = CLEARBIT 9
}
IF &CPTflags = 128
{
&keys = 94
&keys = 0
&CPTflags = CLEARBIT 7
}
}
}
Var 0538, name I_PLN, Link IOCARD_SW, Device 1, Input 12
{
IF &I_PLN = 1
{
IF &CPTflags = 0
{
&keys = 94
&keys = 0
&CPTflags = SETBIT 9
}
}
}
Var 0539, name I_VOR, Link IOCARD_SW, Device 1, Input 10
{
IF &I_VOR = 1
{
IF &CPTflags = 0
{
&keys = 93
&keys = 0
&CPTflags = SETBIT 7
}
IF &CPTflags = 256
{
&keys = 94
&keys = 0
&CPTflags = CLEARBIT 8
&CPTflags = SETBIT 7
}
}
}
Var 0541, name E_MIN, Link IOCARD_ENCODER, Device 1, Input 23, Aceleration 1, Type 2
{
IF &E_MIN = 1
{
&keys = 77
&keys = 0
}
ELSE
{
&keys = 76
&keys = 0
}
}
Var 543, name I_MINSW, Link IOCARD_SW, Input 25, Device 1
{
IF &I_MINSW = 1
{
&keys = 78
&keys = 0
}
}
***********************
-
Post Thanks / Like - 1 Thanks, 0 Likes, 0 Dislikes
kalz thanked for this post
-
08-20-2008, 12:11 PM #10
- Join Date
- Apr 2008
- Location
- UK
- Posts
- 40
Hi.
barkay, many thanks for sending me your kb assignments.
Having followed your guide above, I still seem to have a little trouble getting this to work. After loading up fs2004 with the pmdg 737 I then load the sioc script file. There is an initial movement of the altimeter from 29.92 to 30.21 which indicates some sort of connection between sioc and pmdg. However, any commands sent via the efis are not communicated to pmdg and so I have no control via efis.
Many thanks for your time and help in advance
Similar Threads
-
SIOC MCP 737 PMDG with PMDG 747 in fsx displays and leds don't work
By dion73 in forum Computer Hardware SetupReplies: 7Last Post: 04-03-2011, 07:02 AM -
Opencockpits Efis controler amd pmdg 737
By Maxpower in forum General Builder Questions All Aircraft TypesReplies: 1Last Post: 12-27-2010, 02:03 PM -
O/C efis and pmdg
By johnbee in forum OpenCockpits General DiscussionReplies: 0Last Post: 12-22-2010, 05:22 PM -
Opencockpits EFIS MCP PMDG 737 on Windows 7 Home Premium
By speedyteun in forum I/O Interfacing Hardware and SoftwareReplies: 1Last Post: 09-02-2010, 11:53 AM -
newbie needs help !!! with pmdg - efis - encoders!
By jonnydaz53 in forum OpenCockpits General DiscussionReplies: 1Last Post: 09-10-2008, 02:49 AM