// ***************************************************************************** // * Opencockpits MCP - By Manolo Vélez - www.opencockpits.com // ***************************************************************************** // * FileName : MCP_Ifly.txt // * Date : 2015-11-12 Var 0000 // INITIALIZATION { } // DIGITS Var 100, name D_COURSE11, Link IOCARD_DISPLAY, Digit 0, Numbers 1 Var 101 name D_COURSE12, Link IOCARD_DISPLAY, Digit 1, Numbers 1 Var 102, name D_COURSE13, Link IOCARD_DISPLAY, Digit 2, Numbers 1 Var 112, name D_SPEED1, Link IOCARD_DISPLAY, Digit 3, Numbers 1 Var 113, name D_SPEED2, Link IOCARD_DISPLAY, Digit 4, Numbers 1 Var 114, name D_SPEED3, Link IOCARD_DISPLAY, Digit 5, Numbers 1 Var 124, name D_HDG1, Link IOCARD_DISPLAY, Digit 6, Numbers 1 Var 125, name D_HDG2, Link IOCARD_DISPLAY, Digit 7, Numbers 1 Var 126, name D_HDG3, Link IOCARD_DISPLAY, Digit 8, Numbers 1 Var 127, name D_BANK, Link IOCARD_DISPLAY, Digit 6, Numbers 2 Var 136, name D_ALT1, Link IOCARD_DISPLAY, Digit 9, Numbers 1 Var 137, name D_ALT2, Link IOCARD_DISPLAY, Digit 10, Numbers 1 Var 138, name D_ALT3, Link IOCARD_DISPLAY, Digit 11, Numbers 1 Var 139, name D_ALT4, Link IOCARD_DISPLAY, Digit 12, Numbers 1 Var 140, name D_ALT5, Link IOCARD_DISPLAY, Digit 13, Numbers 1 Var 145, name D_VS, Link IOCARD_DISPLAY, Digit 14, Numbers 5 Var 146, name S_VS, link SUBRUTINE { L0 = 0 IF &VS_1 > 9 { &D_VS = -999999 } ELSE { IF &VS_1000 < 10 { L0 = &VS_1000 * 1000 } IF &VS_100 < 10 { L1 = &VS_100 * 100 IF &VS_F = 12 { L1 = L1 + L0 L1 = L1 * -1 &D_VS = L1 } ELSE { &D_VS = L1 + L0 } } } } Var 150, name D_COURSE21, Link IOCARD_DISPLAY, Digit 19, Numbers 1 Var 151, name D_COURSE22, Link IOCARD_DISPLAY, Digit 20, Numbers 1 Var 152, name D_COURSE23, Link IOCARD_DISPLAY, Digit 21, Numbers 1 Var 153, name o_IASSYMB, link iocp, offset 6 // Flashing A/B in IAS window, 0=No warning, 1=Flashing A, 2=Flashing B { IF &O_IASSYMB = 10 { &D_IAS_IND = -999999 } ELSE { IF &O_IASSYMB = 11 { &D_IAS_IND = -999996 } IF &O_IASSYMB = 08 { &D_IAS_IND = 8 } } } Var 154, name d_ias_ind, Link IOCARD_DISPLAY, Digit 22, numbers 1 // OUTPUTS Var 200, name DECIMAL, 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 // ROTARY ENCODERS Var 300, name E_IAS, Link IOCARD_ENCODER, Input 0, Aceleration 1, Type 2 { if &E_IAS < 0 { &commands = 207 &commands = -1 } ELSE { &commands = 208 &commands = -1 } } Var 302, name E_ALT, Link IOCARD_ENCODER, Input 2, Aceleration 1, Type 2 { if &E_ALT < 0 { &commands = 214 &commands = -1 } ELSE { &commands = 215 &commands = -1 } } Var 304, name E_COURSE1, Link IOCARD_ENCODER, Input 4, Aceleration 1, Type 2 { if &E_COURSE1 < 0 { &commands = 197 &commands = -1 } ELSE { &commands = 198 &commands = -1 } } Var 306, name E_HDG, Link IOCARD_ENCODER, Input 6, Aceleration 1, Type 2 { IF &E_HDG < 0 { If &Bank_act = 0 { &commands = 223 &commands = -1 } If &I_BANK_SW = 1 { &commands = 225 &commands = -1 } } ELSE { If &Bank_act = 0 { &commands = 224 &commands = -1 } If &I_BANK_SW = 1 { &commands = 226 &commands = -1 } } } Var 308, name E_COURSE2, Link IOCARD_ENCODER, Input 9, Aceleration 1, Type 2 { if &E_COURSE2 < 0 { &commands = 199 &commands = -1 } ELSE { &commands = 200 &commands = -1 } } Var 310, name E_VS, Link IOCARD_ENCODER, Input 11, Aceleration 1, Type 2 { if &E_VS > 0 { &commands = 217 &commands = -1 } ELSE { &commands = 218 &commands = -1 } } // SWITCHES //========== Var 400, name I_CO, Link IOCARD_SW, Input 13 { if &I_CO = 1 { &commands = 204 &commands = -1 } } Var 402, name I_FD2, Link IOCARD_SW, Input 14 { if &I_FD2 = 1 { &commands = 192 &commands = -1 } else { &commands = 193 &commands = -1 } } Var 404, name I_DISENGAGE, Link IOCARD_SW, Input 15 { if &I_DISENGAGE = 1 { &commands = 196 &commands = -1 } else { &commands = 195 &commands = -1 } } Var 406, name I_FD1, Link IOCARD_SW, Input 16 { if &I_FD1 = 1 { &commands = 189 &commands = -1 } else { &commands = 190 &commands = -1 } } Var 408, name I_CWSB, Link IOCARD_SW, Input 18 { if &I_CWSB = 1 { &commands = 187 &commands = -1 } } Var 410, name I_CMDB, Link IOCARD_SW, Input 19 { if &I_CMDB = 1 { &commands = 185 &commands = -1 } } Var 412, name I_CWSA, Link IOCARD_SW, Input 20 { if &I_CWSA = 1 { &commands = 186 &commands = -1 } } Var 414, name I_CMDA, Link IOCARD_SW, Input 21 { if &I_CMDA = 1 { &commands = 184 &commands = -1 } } Var 416, name I_VS, Link IOCARD_SW, Input 22 { if &I_VS = 1 { &commands = 216 &commands = -1 } } Var 418, name I_ALTHLD, Link IOCARD_SW, Input 23 { if &I_ALTHLD = 1 { &commands = 213 &commands = -1 } } Var 420, name I_APPR, Link IOCARD_SW, Input 24 { if &I_APPR = 1 { &commands = 212 &commands = -1 } } Var 422, name I_VORLOC, Link IOCARD_SW, Input 25 { if &I_VORLOC = 1 { &commands = 221 &commands = -1 } } Var 424, name I_LNAV, Link IOCARD_SW, Input 27 { if &I_LNAV = 1 { &commands = 220 &commands = -1 } } Var 426, name I_HDGSEL, Link IOCARD_SW, Input 28 { if &I_HDGSEL = 1 { &commands = 222 &commands = -1 } } Var 428, name I_LVLCHG, Link IOCARD_SW, Input 29 { if &I_LVLCHG = 1 { &commands = 211 &commands = -1 } } Var 430, name I_VNAV, Link IOCARD_SW, Input 30 { if &I_VNAV = 1 { &commands = 210 &commands = -1 } } Var 432, name I_SPEED, Link IOCARD_SW, Input 31 { if &I_SPEED = 1 { &commands = 206 &commands = -1 } } Var 434, name I_N1, Link IOCARD_SW, Input 32 { if &I_N1 = 1 { &commands = 205 &commands = -1 } } Var 436, name I_AT, Link IOCARD_SW, Input 33 { if &I_AT = 1 { &commands = 202 &commands = -1 } else { &commands = 203 &commands = -1 } } Var 438, name I_SPD_INTER, Link IOCARD_SW, Input 37 { if &I_SPD_INTER = 1 { &commands = 209 &commands = -1 } } Var 440, name I_ALT_INTER, Link IOCARD_SW, Input 36 { if &I_ALT_INTER = 1 { &commands = 219 &commands = -1 } } Var 441, name HDG_temp Var 443, name BANK_act 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 // display del heading } Else { &Bank_act = 0 // &D_HDG = &HDG_temp // display del heading } } Var 0510, name COURSE_1_100, Link IOCP, Offset 1 // Course_1_100_Status { IF &COURSE_1_100 > 9 { &D_COURSE13 = -999999 } ELSE { &D_COURSE13 = &COURSE_1_100 } } Var 0515, name COURSE_1_10, Link IOCP, Offset 2 // Course_1_10_Status { IF &COURSE_1_10 > 9 { &D_COURSE12 = -999999 } ELSE { &D_COURSE12 = &COURSE_1_10 } } Var 0520, name COURSE_1_1, Link IOCP, Offset 3 // Course_1_1_Status { IF &COURSE_1_1 > 9 { &D_COURSE11 = -999999 } ELSE { &D_COURSE11 = &COURSE_1_1 } } Var 0525, name SPEED_100, Link IOCP, Offset 7 // SPD_100_Status { if &SPEED_100 > 9 { IF &SPEED_100 = 14 { &DECIMAL = 1 } ELSE { &DECIMAL = 0 } &D_SPEED3 = -999999 } else { &D_SPEED3 = &SPEED_100 &DECIMAL = 0 } } Var 0530, name SPEED_10, Link IOCP, Offset 8 // SPD_10_Status { IF &SPEED_10 > 9 { &D_SPEED2 = -999999 } ELSE { &D_SPEED2 = &SPEED_10 } } Var 0535, name SPEED_1, Link IOCP, Offset 9 // SPD_1_Status { IF &SPEED_1 > 9 { &D_SPEED1 = -999999 } ELSE { &D_SPEED1 = &SPEED_1 } } Var 0540, name HDG_100, Link IOCP, Offset 11 // HDG_100_Status { IF &HDG_100 > 9 { &D_HDG3 = -999999 } ELSE { &D_HDG3 = &HDG_100 } } Var 0545, name HDG_10, Link IOCP, Offset 12 // HDG_10_Status { IF &HDG_10 > 9 { &D_HDG2 = -999999 } ELSE { &D_HDG2 = &HDG_10 } } Var 0550, name HDG_1, Link IOCP, Offset 13 // HDG_1_Status { IF &HDG_1 > 9 { &D_HDG1 = -999999 } ELSE { &D_HDG1 = &HDG_1 } } Var 0555, name ALT_10000, Link IOCP, Offset 15 // ALT_10000_Status { if &ALT_10000 > 9 { &D_ALT5 = -999999 } else { &D_ALT5 = &ALT_10000 } } Var 0560, name ALT_1000, Link IOCP, Offset 16 // ALT_1000_Status { if &ALT_1000 > 9 { &D_ALT4 = -999999 } else { &D_ALT4 = &ALT_1000 } } Var 0565, name ALT_100, Link IOCP, Offset 17 // ALT_100_Status { if &ALT_100 > 9 { &D_ALT3 = -999999 } else { &D_ALT3 = &ALT_100 } } Var 0570, name ALT_10, Link IOCP, Offset 18 // ALT_10_Status { if &ALT_10 > 9 { &D_ALT2 = -999999 } else { &D_ALT2 = &ALT_10 } } Var 0575, name ALT_1, Link IOCP, Offset 19 // ALT_1_Status { if &ALT_1 > 9 { &D_ALT1 = -999999 } else { &D_ALT1 = &ALT_1 } } Var 0580, name VS_1000, Link IOCP, Offset 21 // VS_1000_Status { CALL &S_VS } Var 0585, name VS_100, Link IOCP, Offset 22 // VS_100_Status { CALL &S_VS } Var 0590, name VS_10, Link IOCP, Offset 23 // VS_10_Status { CALL &S_VS } Var 0595, name VS_1, Link IOCP, Offset 24 // VS_1_Status { CALL &S_VS } Var 0600, name VS_f, Link IOCP, Offset 20 // VS_flag_Status { CALL &S_VS } Var 0610, name COURSE_2_100, Link IOCP, Offset 27 // Course_2_100_Status { IF &COURSE_2_100 > 9 { &D_COURSE23 = -999999 } ELSE { &D_COURSE23 = &COURSE_2_100 } } Var 0615, name COURSE_2_10, Link IOCP, Offset 28 // Course_2_10_Status { IF &COURSE_2_10 > 9 { &D_COURSE22 = -999999 } ELSE { &D_COURSE22 = &COURSE_2_10 } } Var 0620, name COURSE_2_1, Link IOCP, Offset 29 // Course_2_1_Status { IF &COURSE_2_1 > 9 { &D_COURSE21 = -999999 } ELSE { &D_COURSE21 = &COURSE_2_1 } } Var 0625, name IO_N1, Link IOCP, Offset 46 { &O_N1 = &IO_N1 } Var 0630, name IO_AT, Link IOCP, Offset 4 { &O_AT = &IO_AT } Var 0635, name IO_SPEED, Link IOCP, Offset 47 { &O_SPEED = &IO_SPEED } Var 0640, name IO_LVLCHG, Link IOCP, Offset 48 { &O_LVLCHG = &IO_LVLCHG } Var 0645, name IO_VNAV, Link IOCP, Offset 10 { &O_VNAV = &IO_VNAV } Var 0650, name IO_HDGSEL, Link IOCP, Offset 49 { &O_HDGSEL = &IO_HDGSEL } Var 0655, name IO_APP, Link IOCP, Offset 50 { &O_APP = &IO_APP } Var 0660, name IO_VORLOC, Link IOCP, Offset 37 { &O_VORLOC = &IO_VORLOC } Var 0665, name IO_LNAV, Link IOCP, Offset 14 { &O_LNAV = &IO_LNAV } Var 0670, name IO_ALTHLD, Link IOCP, Offset 51 { &O_ALTHLD = &IO_ALTHLD } Var 0675, name IO_VS, Link IOCP, Offset 52 { &O_VS = &IO_VS } Var 0680, name IO_CWSA, Link IOCP, Offset 41 { &O_CWSA = &IO_CWSA } Var 0685, name IO_CMDA, Link IOCP, Offset 25 { &O_CMDA = &IO_CMDA } Var 0690, name IO_CWSB, Link IOCP, Offset 42 { &O_CWSB = &IO_CWSB } Var 0695, name IO_CMDB, Link IOCP, Offset 26 { &O_CMDB = &IO_CMDB } Var 0700, name IO_FD1, Link IOCP, Offset 31 { &O_FD1 = &IO_FD1 } Var 0705, name IO_FD2, Link IOCP, Offset 43 { &O_FD2 = &IO_FD2 } Var 0710, name BANK_SEL, Link IOCP, Offset 35 Var 9000, name commands, Link IOCP, Offset 1000 // Send commands