// Ce script supporte un MCP et Un EFIS
// Pour que le script fonctionne mettre les numéros de DEVICE comme suit dans CONFIG DEVICE SIOC:
//
// Device 0: MCP
// Device 1: Efis Captain
//
// INITIALIZATION
Var 0000, Value 0
{
&SUB_BLINK = 0
&SUB_BLINK = TIMER 1, 0, 100
}
// Start of MCP Device
// DIGITS
// These are the actual MCP values that are read and written by Prosim. They need to be whole values.
Var 100, name D_COURSE1, Link IOCARD_DISPLAY, Digit 0, Numbers 3
Var 102, name D_IAS, Link IOCARD_DISPLAY, Digit 3, Numbers 3
Var 104, name D_HDG, Link IOCARD_DISPLAY, Digit 6, Numbers 3
Var 106, name D_ALT, Link IOCARD_DISPLAY, Digit 9, Numbers 5
Var 108, name D_VS, Link IOCARD_DISPLAY, Digit 14, Numbers 5
Var 110, name D_COURSE2, Link IOCARD_DISPLAY, Digit 19, Numbers 3
Var 112, Name VS_Trigger // Vertical Speed Trigger
// This variable is set to 1 when the VS wheel is rotated while the VS display is blanked.
// This can trigger a V/S mode if MCP altitude is different than current altitude.
Var 114, name BRIGHT, Link IOCARD_DISPLAY, Digit 32, Numbers 3 // Bright control for digits
Var 116, name D_IAS_IND, Link IOCARD_DISPLAY, Digit 22, Numbers 1
Var 118, name SUB_BLINK, Link SUBRUTINE
{
If &Inhibit_IAS = 0
{
IF &O_IASSYMB = 0
{
&D_IAS_IND = -999999
}
ELSE
{
IF &O_IASSYMB = 1
{
&D_IAS_IND = -999996
&D_IAS_IND = DELAY -999999 80
}
IF &O_IASSYMB = 2
{
&D_IAS_IND = 8
&D_IAS_IND = DELAY -999999 80
}
}
}
}
Var 120, name HDG_temp
Var 122, name BANK_act
// OUTPUTS
// These are the lights on the MCP, written by Prosim
Var 200, name DECIMAL
{
If &Inhibit_IAS = 0 // Do not place the decimal if the display is blanked
{
&IAS_DOT = &DECIMAL
}
}
Var 201, name IAS_DOT, Link IOCARD_OUT, Output 20
Var 202, name O_N1, Link IOCARD_OUT, Output 21
Var 204, name O_AT, Link IOCARD_OUT, Output 22
Var 206, name O_SPEED, Link IOCARD_OUT, Output 23
Var 208, name O_LVLCHG, Link IOCARD_OUT, Output 24
Var 210, name O_VNAV, Link IOCARD_OUT, Output 25
Var 212, name O_HDGSEL, Link IOCARD_OUT, Output 26
Var 214, name O_APP, Link IOCARD_OUT, Output 27
Var 216, name O_VORLOC, Link IOCARD_OUT, Output 28
Var 218, name O_LNAV, Link IOCARD_OUT, Output 29
Var 220, name O_ALTHLD, Link IOCARD_OUT, Output 30
Var 222, name O_VS, Link IOCARD_OUT, Output 31
Var 224, name O_CWSA, Link IOCARD_OUT, Output 32
Var 226, name O_CMDA, Link IOCARD_OUT, Output 33
Var 228, name O_CWSB, Link IOCARD_OUT, Output 34
Var 230, name O_CMDB, Link IOCARD_OUT, Output 35
Var 232, name O_FD1, Link IOCARD_OUT, Output 37
Var 234, name O_FD2, Link IOCARD_OUT, Output 36
Var 236, name O_IASSYMB // Flashing A/B in IAS window, 0=No warning, 1=Flashing A, 2=Flashing B
Var 238, name O_BACKLIGHT // Backlight: 1 = on, 0 = off
// ROTARY ENCODERS
// The rotary encoders control the MCP values. The actual rotary encoder variables are not read or written by Prosim.
// The rotary encoders change the MCP values. Before doing this, they will check the associated inhibit variable, to
// see if the display is not blanked. If the display is blanked, the rotary encoder ds nothing.
Var 300, name E_IAS, Link IOCARD_ENCODER, Input 0, Aceleration 4, Type 2
{
If &Inhibit_IAS = 0
{
L0 = -1 * V300
If &DECIMAL = 1
{
V102 = LIMIT 50, 90, L0
}
Else
{
V102 = LIMIT 110, 400, L0
}
}
}
Var 302, name E_ALT, Link IOCARD_ENCODER, Input 2, Aceleration 4, Type 2
{
If &Inhibit_Alt = 0
{
L0 = -100 * V302
V106 = LIMIT 0 ,50000, L0
}
}
Var 304, name E_COURSE1, Link IOCARD_ENCODER, Input 4, Aceleration 4, Type 2
{
If &Inhibit_OBS1 = 0
{
L0 = V304 * -1
V100 = ROTATE 0, 359, L0
}
}
Var 306, name E_HDG, Link IOCARD_ENCODER, Input 6, Aceleration 4, Type 2
{
If &Inhibit_HDG = 0
{
If &Bank_act = 0
{
L0 = &E_HDG * -1
&D_HDG = ROTATE 0, 359, L0
&HDG_temp = &D_HDG
}
If &I_BANK_SW = 1
{
&D_HDG = &I_BANK_LIMIT
L1 = &E_HDG * -5
&D_HDG = LIMIT 10, 30, L1
&I_BANK_LIMIT = &D_HDG
}
ELSE
{
&D_HDG = &HDG_temp
}
}
}
Var 308, name E_COURSE2, Link IOCARD_ENCODER, Input 9, Aceleration 4, Type 2
{
If &Inhibit_OBS2 = 0
{
L0 = V308 * -1
V110 = ROTATE 0, 359, L0
}
}
Var 310, name E_VS, Link IOCARD_ENCODER, Input 11, Aceleration 4, Type 2
{
If &Inhibit_VS = 0
{
L0 = V310 * -50
V108 = LIMIT -7000, 7000, L0
}
Else
{
&VS_Trigger = 1
}
}
// Display Inhibit
// Display inhibit variables signal the blanking of the displays. They are written by Prosim
Var 320, name Inhibit_IAS
{
If V320 = 1
{
&D_IAS = -999999
V201 = 0
}
Else
{
V201 = &DECIMAL
}
}
Var 322, name Inhibit_Alt
{
If V322 = 1
{
&D_ALT = -999999
}
}
Var 324, name Inhibit_OBS1
{
If V324 = 1
{
&D_COURSE1 = -999999
}
}
Var 326, name Inhibit_HDG
{
If V326 = 1
{
&D_HDG = -999999
}
}
Var 328, name Inhibit_OBS2
{
If V328 = 1
{
&D_COURSE2 = -999999
}
}
Var 330, name Inhibit_VS
{
If V330 = 1
{
&D_VS = -999999
}
}
// SWITCHES
// The MCP switches are read by Prosim
Var 400, name I_CO, Link IOCARD_SW, Input 13
Var 402, name I_FD2, Link IOCARD_SW, Input 14
Var 404, name I_DISENGAGE, Link IOCARD_SW, Input 15
Var 406, name I_FD1, Link IOCARD_SW, Input 16
Var 408, name I_CWSB, Link IOCARD_SW, Input 18
Var 410, name I_CMDB, Link IOCARD_SW, Input 19
Var 412, name I_CWSA, Link IOCARD_SW, Input 20
Var 414, name I_CMDA, Link IOCARD_SW, Input 21
Var 416, name I_VS, Link IOCARD_SW, Input 22
Var 418, name I_ALTHLD, Link IOCARD_SW, Input 23
Var 420, name I_APP, Link IOCARD_SW, Input 24
Var 422, name I_VORLOC, Link IOCARD_SW, Input 25
Var 424, name I_LNAV, Link IOCARD_SW, Input 27
Var 426, name I_HDGSEL, Link IOCARD_SW, Input 28
Var 428, name I_LVLCHG, Link IOCARD_SW, Input 29
Var 430, name I_VNAV, Link IOCARD_SW, Input 30
Var 432, name I_SPEED, Link IOCARD_SW, Input 31
Var 434, name I_N1, Link IOCARD_SW, Input 32
Var 436, name I_AT, Link IOCARD_SW, Input 33
Var 438, name I_SPD_INTER, Link IOCARD_SW, Input 37
Var 440, name I_ALT_INTER, Link IOCARD_SW, Input 36
Var 442, name I_BANK_LIMIT, VALUE 10
Var 444, name I_BANK_SW, Link IOCARD_SW, Input 34 // Activate bank limit
{
If &I_BANK_SW = 1
{
&Bank_act = 1
&D_HDG = &I_BANK_LIMIT
}
Else
{
&Bank_act = 0
&D_HDG = &HDG_temp
}
}
//=====================================================================
// End Of MCP device
//=====================================================================
// Start of EFIS Captain
// Prosim reads from 500 - 522
Var 500, name I_E1_DISPMODE
Var 501, name I_E1_ZOOM
Var 502, name I_E1_NAV1
Var 503, name I_E1_NAV2
Var 504, name I_E1_STA, Link IOCARD_SW, Device 1, Input 27
Var 505, name I_E1_WPT, Link IOCARD_SW, Device 1, Input 28
Var 506, name I_E1_CTR, Link IOCARD_SW, Device 1, Input 29
Var 507, name I_E1_ARPT, Link IOCARD_SW, Device 1, Input 30
Var 508, name I_E1_TFC, Link IOCARD_SW, Device 1, Input 31
Var 509, name I_E1_DATA, Link IOCARD_SW, Device 1, Input 32
Var 510, name I_E1_POS, Link IOCARD_SW, Device 1, Input 33
Var 511, name I_E1_FPV, Link IOCARD_SW, Device 1, Input 34
Var 512, name I_E1_MTR, Link IOCARD_SW, Device 1, Input 38
Var 513, name I_E1_MINRST
Var 514, name I_E1_QNHSTD
Var 515, name I_E1_MINRADIO
Var 516, name I_E1_MINBARO
Var 517, name I_E1_CHANGEMIN
Var 518, name I_E1_BAROHPA
Var 519, name I_E1_BAROINCH
Var 520, name I_E1_CHGBARO
Var 521, name I_E1_TERR
Var 522, name I_E1_WXR
Var 523, Link IOCARD_SW, Device 1, Input 10 // VOR mode
{
If V523 = 1
{
&I_E1_DISPMODE = 2
}
}
Var 524, Link IOCARD_SW, Device 1, Input 11 // MAP mode
{
If V524 = 1
{
&I_E1_DISPMODE = 3
}
}
Var 525, Link IOCARD_SW, Device 1, Input 12 // PLAN mode
{
If V525 = 1
{
&I_E1_DISPMODE = 4
}
}
Var 526, Link IOCARD_SW, Device 1, Input 0 // Range 5
{
If V526 = 1
{
&I_E1_ZOOM = 1
}
}
Var 527, Link IOCARD_SW, Device 1, Input 1 // Range 10
{
If V527 = 1
{
&I_E1_ZOOM = 2
}
}
Var 528, Link IOCARD_SW, Device 1, Input 2 // Range 20
{
If V528 = 1
{
&I_E1_ZOOM = 3
}
}
Var 529, Link IOCARD_SW, Device 1, Input 3 // Range 40
{
If V529 = 1
{
&I_E1_ZOOM = 4
}
}
Var 530, Link IOCARD_SW, Device 1, Input 4 // Range 80
{
If V530 = 1
{
&I_E1_ZOOM = 5
}
}
Var 531, Link IOCARD_SW, Device 1, Input 5 // Range 160
{
If V531 = 1
{
&I_E1_ZOOM = 6
}
}
Var 532, Link IOCARD_SW, Device 1, Input 6 // Range 320
{
If V532 = 1
{
&I_E1_ZOOM = 7
}
}
Var 533, Link IOCARD_SW, Device 1, Input 7 // Range 640
{
If V533 = 1
{
&I_E1_ZOOM = 8
}
}
Var 535, Link IOCARD_SW, Device 1, Input 36 // NAV 1 VOR
{
CALL &E1NAV1
}
Var 536, Link IOCARD_SW, Device 1, Input 37 // NAV 1 ADF
{
CALL &E1NAV1
}
var 537, name E1NAV1, Link SUBRUTINE
{
If V535 = 1
{
&I_E1_NAV1 = 1
}
Else
{
If V536 = 1
{
&I_E1_NAV1 = 2
}
Else
{
&I_E1_NAV1 = 0
}
}
}
Var 538, Link IOCARD_SW, Device 1, Input 18 // NAV 2 VOR
{
CALL &E1NAV2
}
Var 539, Link IOCARD_SW, Device 1, Input 19 // NAV 2 ADF
{
CALL &E1NAV2
}
var 540, name E1NAV2, Link SUBRUTINE
{
If V538 = 1
{
&I_E1_NAV2 = 1
}
Else
{
If V539 = 1
{
&I_E1_NAV2 = 2
}
Else
{
&I_E1_NAV2 = 0
}
}
}
Var 541, Link IOCARD_SW, Device 1, Input 9 // APP mode
{
If V541 = 1
{
&I_E1_DISPMODE = 1
}
}
var 550, name Min1Moved
Var 551, name Bar1Moved
// Minimums knob push button
Var 552, Link IOCARD_SW, Device 1, Input 25
{
If V552 = 1
{
&Min1Moved = 0
}
Else
{
If &Min1Moved = 0
{
&I_E1_MINRST = Toggle 0
}
}
}
// QNH knob push button
Var 553, Link IOCARD_SW, Device 1, Input 22
{
If V553 = 1
{
&Bar1Moved = 0
}
Else
{
If &Bar1Moved = 0
{
&I_E1_QNHSTD = Toggle 0
}
}
}
// Minimums rotary encoder
Var 554, Link IOCARD_ENCODER, Device 1, Input 23, Aceleration 4, Type 2
{
&Min1Moved = 1
If V552 = 1
{
If V554 > 0
{
&I_E1_MINRADIO = Toggle 0
}
Else
{
&I_E1_MINBARO = Toggle 0
}
}
Else
{
&I_E1_CHANGEMIN = V554 * -1
&I_E1_CHANGEMIN = 0
}
}
// QNH rotary encoder
Var 555, Link IOCARD_ENCODER, Device 1, Input 20, Aceleration 4, Type 2
{
&Bar1Moved = 1
If V553 = 1
{
If V555 > 0
{
&I_E1_BAROINCH = Toggle 0
}
Else
{
&I_E1_BAROHPA = Toggle 0
}
}
Else
{
&I_E1_CHGBARO = V555 * -1
&I_E1_CHGBARO = 0
}
}
// End of EFIS Captain
//=====================================================================