Tu peux l'utiliser en entier, tu changes juste le n° d'entrée de ton encodeur variable Var 0310
BOB
- Code: Tout sélectionner
// *****************************************************************************
// * Config_SIOC ver 3.5 - By Manolo Vélez - www.opencockpits.com
// *****************************************************************************
// * FileName : sioc mcp fsx.txt
// * Date : 08/09/2009
Var 0000, Value 0 // Inicializa / Inicialization
{
&CONTADOR = 0
&CHECK = TIMER 999 ,0 ,25
&CMD = 1
&D_COURSE1 = 360
&D_COURSE2 = 360
&D_HDG = 360
&D_ALT = 10000
&D_VS = -999999
&T_IAS = 100
&AP_IAS = 1
&AP_IAS = DELAY 0 ,10
}
Var 0001, name AP_MASTER_SW, Link FSUIPC_INOUT, Offset $07BC, Length 4
{
IF &CMD = 1
{
IF &AP_MASTER_SW = 1
{
&O_CMDA = 1
&O_CMDB = 0
}
ELSE
{
&O_CMDA = 0
&O_CMDB = 0
}
}
ELSE
{
IF &AP_MASTER_SW = 1
{
&O_CMDA = 0
&O_CMDB = 1
}
ELSE
{
&O_CMDA = 0
&O_CMDB = 0
}
}
}
Var 0002, Link FSUIPC_INOUT, Offset $07C0, Length 4 // AP_LVL
Var 0003, Link FSUIPC_INOUT, Offset $07C4, Length 4 // AP_NAV1
{
IF V0003 = 1
{
&O_LNAV = 1
}
ELSE
{
&O_LNAV = 0
}
}
Var 0004, Link FSUIPC_INOUT, Offset $07C8, Length 4 // AP_HDG_SEL
{
IF V0004 = 1
{
&O_HDGSEL = 1
}
ELSE
{
&O_HDGSEL = 0
}
}
Var 0005, name APD_HDG, Link FSUIPC_INOUT, Offset $07CC, Length 2 // APD_HDG
Var 0006, name AP_ALT, Link FSUIPC_INOUT, Offset $07D0, Length 4 // AP_ALT
{
IF &AP_ALT = 1
{
&O_ALTHLD = 1
}
ELSE
{
&O_ALTHLD = 0
}
}
Var 0007, name AP_IAS, Link FSUIPC_INOUT, Offset $07DC, Length 4 // AP_IAS
{
IF &AP_IAS = 1
{
&SPEED = 1
&O_SPEED = 1
&F_IAS = &T_IAS
}
ELSE
{
IF &AP_MACH = 0
{
&O_SPEED = 0
}
}
}
Var 0008, name APD_IAS, Link FSUIPC_INOUT, Offset $07E2, Length 2 // D_IAS
Var 0009, name APD_ALT, Link FSUIPC_INOUT, Offset $07D4, Length 4 // APD_ALT
Var 0011, name AP_MACH, Link FSUIPC_INOUT, Offset $07E4, Length 4 // AP_MACH
{
IF &AP_MACH = 1
{
&SPEED = 2
&O_SPEED = 1
}
ELSE
{
IF &AP_IAS = 0
{
&O_SPEED = 0
}
}
}
Var 0012, name APD_MACH, Link FSUIPC_INOUT, Offset $07E8, Length 4 // APD_MACH
Var 0013, Link FSUIPC_INOUT, Offset $3210, Length 2 // LOCALV_IAS/M
Var 0014, name APD_VS, Link FSUIPC_INOUT, Offset $07F2, Length 2, Type 1 // D_V/S
Var 0015, Link FSUIPC_INOUT, Offset $0810, Length 4 // AP_AT
{
IF V0015 = 1
{
&O_AT = 1
}
ELSE
{
&O_AT = 0
}
}
Var 0016, Link FSUIPC_INOUT, Offset $2EE0, Length 4 // AP_FD
Var 0017, Link FSUIPC_INOUT, Offset $07C4, Length 4 // AP_NAV
Var 0018, Link FSUIPC_INOUT, Offset $0800, Length 4 // AP_APP
{
IF V0018 = 1
{
&O_APP = 1
}
ELSE
{
&O_APP = 0
}
}
Var 0019, Link FSUIPC_INOUT, Offset $0804, Length 4 // AP_BC
Var 0020, Link FSUIPC_INOUT, Offset $0808, Length 4 // AP_YD
Var 0021, name APD_COURSE1, Link FSUIPC_INOUT, Offset $0C4E, Length 2 // APD_COURSE1
Var 0022, name APD_COURSE2, Link FSUIPC_INOUT, Offset $0C5E, Length 2 // APD_COURSE2
Var 0023, name FS_IAS, Link FSUIPC_IN, Offset $02BC, Length 4 // IAS FS
Var 0024, name FS_MACH, Link FSUIPC_IN, Offset $11C6, Length 2 // IAS FS
Var 0025, Link FSUIPC_INOUT, Offset $07FC, Length 4 // AP_APP2
Var 0026, name AP_N1, Link FSUIPC_INOUT, Offset $080C, Length 4
Var 0050, name CMD
{
IF &CMD = 1
{
&O_CMDA = TESTBIT &AP_MASTER_SW ,0 // LED_AP_SW
}
ELSE
{
&O_CMDB = TESTBIT &AP_MASTER_SW ,0 // LED_AP_SW
}
}
Var 0051, name SPEED
{
IF &SPEED <> 2
{
&O_DECIMAL = 0
&F_IAS = &T_IAS
}
ELSE
{
&O_DECIMAL = 1
&F_IAS = &T_MACH
}
}
Var 0052, name T_IAS
Var 0053, name T_MACH
Var 0054, name F_IAS
{
IF &SPEED <> 2
{
&O_DECIMAL = 0
&D_IAS = &F_IAS
&APD_IAS = DELAY &F_IAS ,10
}
ELSE
{
&O_DECIMAL = 1
&D_IAS = &F_IAS
L0 = &F_IAS * 655.36
&APD_MACH = DELAY L0 ,10
}
}
Var 0056, name CHECK, Link SUBRUTINE
{
&CONTADOR = &CONTADOR + 1
IF &CONTADOR > 10000
{
&CONTADOR = 1000
}
ELSE
{
IF &CONTADOR > 4
{
IF &APD_VS <> &D_VS
{
&D_VS = &APD_VS
}
}
}
}
Var 0057, name CONTADOR
Var 0100, name D_COURSE1, Link IOCARD_DISPLAY, Digit 0, Numbers 3
{
&APD_COURSE1 = &D_COURSE1
}
Var 0102, name D_IAS, Link IOCARD_DISPLAY, Digit 3, Numbers 3
Var 0104, name D_HDG, Link IOCARD_DISPLAY, Digit 6, Numbers 3
{
L1 = &D_HDG * 182.04444
L0 = L1 + 1
&APD_HDG = L0
}
Var 0106, name D_ALT, Link IOCARD_DISPLAY, Digit 9, Numbers 5
{
L0 = &D_ALT * 19975.37
&APD_ALT = L0
}
Var 0108, name D_VS, Link IOCARD_DISPLAY, Digit 14, Numbers 5
Var 0110, name D_COURSE2, Link IOCARD_DISPLAY, Digit 19, Numbers 3
{
&APD_COURSE2 = &D_COURSE2
}
Var 0200, name O_DECIMAL, Link IOCARD_OUT, Output 20
Var 0202, name O_N1, Link IOCARD_OUT, Output 21
Var 0204, name O_AT, Link IOCARD_OUT, Output 22
Var 0206, name O_SPEED, Link IOCARD_OUT, Output 23
Var 0208, name O_LVLCHG, Link IOCARD_OUT, Output 24
Var 0210, name O_VNAV, Link IOCARD_OUT, Output 25
Var 0212, name O_HDGSEL, Link IOCARD_OUT, Output 26
Var 0214, name O_APP, Link IOCARD_OUT, Output 27
Var 0216, name O_VORLOC, Link IOCARD_OUT, Output 28
Var 0218, name O_LNAV, Link IOCARD_OUT, Output 29
Var 0220, name O_ALTHLD, Link IOCARD_OUT, Output 30
Var 0222, name O_VS, Link IOCARD_OUT, Output 31
Var 0224, name O_CWSA, Link IOCARD_OUT, Output 32
Var 0226, name O_CMDA, Link IOCARD_OUT, Output 33
Var 0228, name O_CWSB, Link IOCARD_OUT, Output 34
Var 0230, name O_CMDB, Link IOCARD_OUT, Output 35
Var 0300, name E_IAS, Link IOCARD_ENCODER, Input 0, Aceleration 4, Type 2
{
IF &SPEED <> 2
{
L0 = &E_IAS * -1
&T_IAS = LIMIT 0 ,500 ,L0
&F_IAS = &T_IAS
}
ELSE
{
L0 = &E_IAS * -1
&T_MACH = LIMIT 0 ,99 ,L0
&F_IAS = &T_MACH
}
}
Var 0302, name E_ALT, Link IOCARD_ENCODER, Input 2, Aceleration 4, Type 2
{
L0 = &E_ALT * -100
&D_ALT = LIMIT 0 ,50000 ,L0
}
Var 0304, name E_COURSE1, Link IOCARD_ENCODER, Input 4, Aceleration 4, Type 2
{
L0 = &E_COURSE1 * -1
&D_COURSE1 = ROTATE 1 ,360 ,L0
}
Var 0306, name E_HDG, Link IOCARD_ENCODER, Input 6, Aceleration 4, Type 2
{
L0 = &E_HDG * -1
&D_HDG = ROTATE 1 ,360 ,L0
}
Var 0308, name E_COURSE2, Link IOCARD_ENCODER, Input 9, Aceleration 4, Type 2
{
L0 = &E_COURSE2 * -1
&D_COURSE2 = ROTATE 1 ,360 ,L0
}
Var 0310, name E_VS, Link IOCARD_ENCODER, Input 11, Aceleration 4, Type 2
{
L0 = &E_VS * -100
&D_VS = LIMIT -9000 ,9000 ,L0
&CONTADOR = 0
&APD_VS = &D_VS
}
Var 0400, name I_CO, Link IOCARD_SW, Input 13, Type P
{
IF &O_SPEED = 1
{
IF &SPEED <> 0
{
IF &SPEED = 1
{
L0 = &FS_MACH / 204.8
&T_MACH = L0
&AP_MACH = 1
}
ELSE
{
L0 = &FS_IAS / 128
&T_IAS = L0
&AP_IAS = 1
}
}
}
}
Var 0402, name I_FD2, Link IOCARD_SW, Input 14
Var 0404, name I_DISENGAGE, Link IOCARD_SW, Input 15
{
IF &I_DISENGAGE = 1
{
&AP_MASTER_SW = 0
}
}
Var 0406, name I_FD1, Link IOCARD_SW, Input 16
{
IF &I_FD1 = 1
{
V0016 = 1
}
ELSE
{
V0016 = 0
}
}
Var 0408, name I_CWSB, Link IOCARD_SW, Input 18
Var 0410, name I_CMDB, Link IOCARD_SW, Input 19
{
IF &I_CMDB = 1
{
&CMD = 2
IF &AP_MASTER_SW = 1
{
&AP_MASTER_SW = 0
}
ELSE
{
&AP_MASTER_SW = 1
}
}
}
Var 0412, name I_CWSA, Link IOCARD_SW, Input 20
Var 0414, name I_CMDA, Link IOCARD_SW, Input 21
{
IF &I_DISENGAGE = 0
{
IF &I_CMDA = 1
{
&CMD = 1
IF &AP_MASTER_SW = 1
{
&AP_MASTER_SW = 0
}
ELSE
{
&AP_MASTER_SW = 1
}
}
}
}
Var 0416, name I_VS, Link IOCARD_SW, Input 22
Var 0418, name I_ALTHLD, Link IOCARD_SW, Input 23
{
IF &I_ALTHLD = 1
{
IF &AP_ALT <> 1
{
&AP_ALT = 1
}
ELSE
{
&AP_ALT = 0
}
}
}
Var 0420, name I_APPB, Link IOCARD_SW, Input 24
{
IF &I_APPB = 1
{
IF V0018 <> 1
{
V0018 = 1
V0025 = 1
}
ELSE
{
V0018 = 0
V0025 = 0
}
}
}
Var 0422, name I_VORLOC, Link IOCARD_SW, Input 25
{
IF &I_VORLOC = 1
{
IF V0017 <> 1
{
V0017 = 1
}
ELSE
{
V0017 = 0
}
}
}
Var 0424, name I_LNAV, Link IOCARD_SW, Input 27
Var 0426, name I_HDGSEL, Link IOCARD_SW, Input 28
{
IF &I_HDGSEL = 1
{
IF V0004 <> 1
{
V0004 = 1
}
ELSE
{
V0004 = 0
}
}
}
Var 0428, name I_LVLCHG, Link IOCARD_SW, Input 29
Var 0430, name I_VNAV, Link IOCARD_SW, Input 30
Var 0432, name I_SPEED, Link IOCARD_SW, Input 31
{
IF &I_SPEED = 1
{
IF &SPEED = 0
{
&AP_IAS = 1
&O_N1 = 0
}
ELSE
{
&AP_IAS = 0
&AP_MACH = 0
&SPEED = 0
}
}
}
Var 0434, name I_N1, Link IOCARD_SW, Input 32, Type P
{
IF &I_N1 = 1
{
&AP_N1 = 1
&O_N1 = 1
&O_SPEED = 0
}
ELSE
{
&AP_N1 = 0
&O_N1 = 0
}
}
Var 0436, name I_AT, Link IOCARD_SW, Input 33
{
IF &I_AT = 1
{
V0015 = 1
}
ELSE
{
V0015 = 0
}
}