Results 1 to 5 of 5
Thread: combining SIOC scripts
-
08-12-2011, 07:21 AM #1
combining SIOC scripts
Hi,
I have a baffling (for me) problem. I have two scripts, one OC script for their MCP and a script I found here for making the rotary switch on the OC XPNDR work.
Both work flawlessly on their own but when I try to combine them they don't.
So here's the XPNDR script :
Code:// ***************************************************************************** // * Config_SIOC - By Mattia Lambreschi // ***************************************************************************** // * FileName : sioc.txt // * Date : 03/02/2011 Var 405, name STATUS Var 399, name TASTO, Link KEYS Var 406, name I_R_STB, Link IOCARD_SW, Input 0 { IF &I_R_STB = 1 { V420 = 10 } } Var 408, name I_R_ALT, Link IOCARD_SW, Input 1 { IF &I_R_ALT = 1 { V420 = 20 } } Var 410, name I_R_XPN, Link IOCARD_SW, Input 2 { IF &I_R_XPN = 1 { V420 = 30 } } Var 412, name I_R_TAO, Link IOCARD_SW, Input 3 { IF &I_R_TAO = 1 { V420 = 40 } } Var 414, name I_R_TAR, Link IOCARD_SW, Input 4 { IF &I_R_TAR = 1 { V420 = 50 } } Var 0420, Link SUBRUTINE { IF V0405 >= V0420 { &TASTO = 1 &TASTO = 0 V0405 = V0420 } ELSE { &TASTO = 2 &TASTO = 0 V0405 = V0420 } }
Code:// ***************************************************************************** // * Config_SIOC ver 3.5 - By Manolo Vélez - www.opencockpits.com // ***************************************************************************** // * FileName : sioc mcp pmdg w_bat.txt // * Date : 14/09/2009 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 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 0086, name BATTERY, Link FSUIPC_INOUT, Offset $3102, Length 1 { IF &BATTERY = 0 { &ALTdisplay = -999999 &CRSLEFTdisplay = -999999 &CRSRdisplay = -999999 &HDGdisplay = -999999 &IASdisplay = -999999 &IASpoint = 0 &VSdisplay = -999999 &VSminus = 0 } ELSE { CALL &ALTaff CALL &HDGaff CALL &IASaff CALL &VSaff &CRSLEFTdisplay = &CRSpmdg &CRSRdisplay = &CRS2pmdg } } 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 }
I adjust the sioc.ini to the following:
Code:IOCP_port=8090 IOCP_timeout=4000 Minimized=No toggle_delay=20 CONFIG_FILE=.\SCRIPTS\test.ssi IOCard_disable=No IOCard_LPT=No [------------- CARDS CONFIG -------------] master=1,5,1,0 MASTER=0,11,2,26 USBStepper=0,0 USBKeys=2,19 USBServos=0,0 USBRelays=0,0 USBDCmotor=0,0 USBAnalogic=0,0 FSUipcdisable=No FSUipcRefresh=50 IOCPini_delay=3000 IOCPclient0_disable=Yes IOCPclient0_host=localhost IOCPclient0_port=8090 IOCPclient1_disable=Yes IOCPclient1_host=localhost IOCPclient1_port=8099 Sound_disable=yes Volume=100 [ #1 ] Sound=APDis.wav,-1,-1,-1 [ #2 ] Sound=*outermk.wav,-1,-1,-1 [ #3 ] Sound=*hello.wav window =a.txt - Bloc de notas #1=\3U\4 #2=\1U\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= #76= #77= #78= #79= #80= #81= #82= #83= #84= #85= #86= #87= #88= #200= [ End of File ]
And fire up FS : The MCP doesn't come alive and does nothing, the xpndr shows 5 zeroes and can't be adjusted and the rotary switch only works in one direction.
Please help ?
-
08-12-2011, 11:37 AM #2
Re: combining SIOC scripts
Hi,
That's because you have defined the MCP to be at logical DEVICE 1 (in your sioc.ini, see the Master statement), while in your MCP script you are using (by default) DEVICE 0 for every in- and output.
The solution is to add DEVICE 1 to every In- and Output definition in your MCP script.
Regards,
Nico Kaan
-
08-13-2011, 01:45 AM #3
Re: combining SIOC scripts
Thanks Nico,
i changed the device number of the USBkeys card and added "device 1" to the few lines of the XPNDR and it works, fantastic.
Is there a way to extinguish the displays of the MCP when you exit FS ? Now they remain alight.
Also there's a few lines of code in the script that if I read correctly if the battery switch is off the displays should be off ?
But when I start the PMDG 737 cold and dark the all the displays (except VS of course) come alive.
regards
Martin
-
08-13-2011, 03:44 AM #4
Re: combining SIOC scripts
Yes there is but it needs some more code. Thisis the way to go
regards,
Nico
-
08-13-2011, 03:55 AM #5
Re: combining SIOC scripts
Thanks, I'll look into that a bit later. I'm doing a flight right now to test things, still have a few issues with the MCP, they probably stem from conflicting keystrokes in RC4 and FSPassenger.
Embrace the freedom of casual encounters on the best dating app in town! One night stands, no...
Night games. No obligations. One...