// // * FileName : B200.txt par Bernard BAUQUE // * Date de début: 09/08/2009 // * // * version V1.9.R12 de décembre 2019 sous Sioc 5B05 avec Lua et Lvars de B200 de Flight One // variables essais = section 1 à 20 // offsets FS = section 21 à 199 // potentiomètres = section 250 // sous routine = section 300 // interrupteurs = section 400 // encodeurs = section 500 // affichage display = section 600 // leds alarmes = section 700 // variables individuelles = section 900 // servo moteurs = section 1000 // pedestal carte FC = section 4000 // outputs carte FC = section 5000 // gestion du panneau carburant = section 6000 // GPWS = section 8000 // --------------------------------------------------------------- // | | // | DETAILS DES MODIFICATIONS DE CODE | // | | // --------------------------------------------------------------- // // * ----------------------------------------------------------------------------------------------------------------------------------------- // * 12/2019 // * - rajout routine 306 pour tester l'inter trim elev au démarrage ( suite au changement de pic carte fabien ) // * - modification de la routine 363 (CAD) pour init de la valeur du sélecteur d'altitude du PA qui correspond maintenant à celle du vol sauvegardé // * - correction du bug qui faisait repasser le sélecteur d'altitude à zéro après l'init lorsque je tournais l'encodeur dans var 506 // // * ----------------------------------------------------------------------------------------------------------------------------------------- // * 11/2019 // * - rajout code pour le transpondeur Collins ctl92,c'est pas parfait car je n'arrive pas à compter en octal // // // * ----------------------------------------------------------------------------------------------------------------------------------------- // * 09/2019 // * - correction routine 327, problème déclenchement alarme du sélecteur d'altitude // * // * ----------------------------------------------------------------------------------------------------------------------------------------- // * 04/2019 // * - correction bug inter ext power, la manip de bit ne fonctionnait pas pour cette jauge // * - rajout de la fonctionnalité fréquence standbye sur nav1 et mémorisation de fréquence avec bouton STO (var 4061, input 52) // * - correction bug déclenchement son FSB ( mauvais offset de variable dans essaisound.txtx) // * - correction bug sur switchs autoignition qui n'étaient pas en concordance avec le pit virtuel et pouvaient empêcher le démarrage // * - rajout de la commande pitot bloqué ( 66307 ) si réchauffage pitot off avec temp < 2°C dans var 103 et var togglepitot pour controler // * l'état bloqué ou non du pitot et éviter de relancer la commande // * - passage sous jauges airmanager suite à l'install de Asp4, car trop de blocage avec les jauges précédentes // * // * ----------------------------------------------------------------------------------------------------------------------------------------- // * 03/2019 // * - programmation de la jauge cabin climb avec Lvar, routine 302 et servo moteur // * - correction bug adf qui affichait 0000 à la mise en route de l'avionics // * - correction bug alarmes l et rdcgen qui s'éteignaient après le test des alarmes // * - correction bug crossfeed la var était à 0 au lieu de 1 au lancement, corrigé dans la routine cad // * - gain de 7 variables 66C par manipulation de bits depuis LUA dans la var $66C0 pour la gestion du premier groupe d'alarmes // * - programmation dela jauge prop amps avec servo sur input 4 de la carte servo device 3 var 1010 + lvar $66c1 // * - rajout du voyant orange ext power du panneau bas alarmes // * - externalisation des fréquences mémorisées de com1 dans un fichier memcom.txt lu par le script Lua et possibilité de sauvegarde // * par appui sur le poussoir STO // * - regroupement de 8 inters dans la lvar_inter1 66D0 pour gagner 7 offsets libres // * // * ----------------------------------------------------------------------------------------------------------------------------------------- // * 02/2019 // * - passage du simulateur sous B200 Flight One // * - correction voyant dh pour qu'il clignote avec clignoquartsec // * - passage des alarmes vertes ignition sous script LUA pour suivre les valeurs Lvars du B200 de flightOne // * - installation de tout le système groupe de parc avec inter, jauge, lvar et script LUA // * - suppression de la routine et de l'alarme hydro_ pressure, sera remplacée par la gestion de l'alarme HYDR FLUID Low et bouton de test // * - correction bug, les alarmes vertes bleed air off doivent s'allumer dès la bat On // * - passage de tout le panneau carburant en gestion script LUA // * - correction de la temporisation de la variable Batt charge alarme orange elle doit être de 6 secondes, c'est en fait le temps où // * le courant de charge de la batterie dépasse 7 ampères // * - rajout de la gestion de l'alarme rvs not ready par le script LUA // * - rajout de la gestion de l'alarme Hyd fluid low par le script LUA // * ----------------------------------------------------------------------------------------------------------------------------------------- // * 01/2019 // * // * - correction bug allumage des display ADF, ils s'allumaient en tournant l'encodeur même si bat et avionics off, routine 371 // * - branchement de la led orange DH sur output 41 et programmation routine 372 // * - rajout var 452 pour le test des leds rouges de la poignée de train, le poussoir est sur le panneau pilote droit HD LT TEST // * - modif code mise en concordance des var 0800 et 07fc pour avoir le guidage pa sur le glide // * - correctif switch pa (var 36 et 4009 ) car le PA ne peut être engagé au sol // * // * ----------------------------------------------------------------------------------------------------------------------------------------- // * 12/2018 // * - modif de l'ini de la jauge de Fabien D pour que l'EHSI s'allume avec l'inter de l'EFIS et non pas avec l'inter avionics // * celà se fait avec la var $0bCC // * - correction bug extinction alarme pitot off dans la var 101, l'alarme ne s'éteignait pas, même au dessus de 5° // * - modif routine 366 pour allumer les alarmes rouge bl air fail si inter bleed air valves inst et envir sont à off // * en attendant de modifier les inters pour des 3 positions // * // * ----------------------------------------------------------------------------------------------------------------------------------------- // * 10/2018 // * - rajout code pour l'alarme sonore de non sortie de train, rajout variable 989 // * ----------------------------------------------------------------------------------------------------------------------------------------- // * 07/2018 // * - correction bug allumage voyants de train routine 203 // * - programmation de l'ergot de blocage de la manette de train dans la var 36 par servo moteur var 1009 // * - rajout inter EFIS power var 4044 et variable 151 EFIS_POWER pour l'allumage de l'EFIS par l'inter et la jauge Air manager // * // * ----------------------------------------------------------------------------------------------------------------------------------------- // * 05/2018 // * - correction bug qui empêchait l'alarme verte air cond N1 de s'éteindre lorsque la batterie était coupée et call de l'alarme // * à l'allumage batterie // * // * ----------------------------------------------------------------------------------------------------------------------------------------- // * 03/2018 // * - modification encodeurs crs et hdg de la platine AP65 pour fonctionner que si PA power On // * - correction anomalie qui faisait allumer les voyants verts ignition en manoeuvrant les inter start engine ou eng autoignit sans battery On // * - correction anomalie qui faisait que le voyant orange rvs not ready continuait à clignoter moteurs éteints // * // * ----------------------------------------------------------------------------------------------------------------------------------------- // * ----------------------------------------------------------------------------------------------------------------------------------------- // * 02/2018 // * - réécriture de la routine al_autofeather, nettoyage du programme, suppression de routines inutiles // * - réécriture routine de pas d'hélice pour permettre la mise en drapeau par l'autofeather même si la manette prop n'est // * pas en mode drapeau // * - modif de la routine air_cond_n1 qui ne déclenche l'alarme verte que lorsque RPM N1 de droite est en dessous de 62% // * - modification de la routine 364 pour tenir compte d'une perte de puissance de 5% si bleed air enclenché // * - écriture d'une nouvelle routine pour l'alarme du train d'atterrissage combinée avec les switchs du vrai trottle // * - modification de la var 416 pour ne permettre de mettre le frein de parking et l'enlever que si les 2 pédales de freins sont enfoncées // * ------------------------------------------------------------------------------------------------------------------------------------------ // * ---------------------------------------------------------------------------------------------------------------------------------- // * 01/2018 // * - passage des 4 inters du panneau copilote sur la carte usb du pédestal, inputs 10,11,20,23 // * - rajout var 141, offset 7310 pour le poussoir de l'alti pour le passage de Hp à Mb // * - rajout musique d'ambiance quatar couplée avec l'inter smoke & fsb // * - câblage de l'alarme alt warning sur output 20 et programmation de la routine d'alarme dans la var 28 // * - rajout de la var 144 offset $328 pour le dump pression cabine avec value 1 au démarrage // * - révision de la condition avion au sol ou en l'air par calcul sur la var 126 $31E4 car l'avion n'était jamais considéré en l'air // * - rajout des voyants fire ext de var 749 à 754 sur outputs du connecteur db9 de la master OC // * - programmation des inputs 40,41 et 42 pour le commutateur de test extincteurs et sondes fire // * - correction d'une anomalie dans les routines 321 et 322 qui n'affichaient pas la tension battery quand les genératrices // * étaient Off et le poussoir enfoncé // * - rajout du switch dump press cabine sur input 43 avec rajout de son de fuite d'air // * - rajout de la variable flag_DH pour déclencher le son DH_Tone.wav quand on est sous la DH et mise au point de l'alarme // * - correction de la routine 313 affichage de standbye com1 qui passait mal du haut vers le bas, çà affichait le ground de louvigny 121.70 // * - clignotements des voyants bleu et jaune OMI conformes au réel // * - correction d'une anomalie sur les standbye pompes qui peuvent être actionnées même si bat n'est pas on // * car elles sont sur le hot bus et ne dépendent pas du main bus // * // * ---------------------------------------------------------------------------------------------------------------------------------- // * ----------------------------------------------------------------------------------------------------------------------------------- // * 12/2017 - rajout potentiomètre pour la luminosité de l'EADI var $7309 // * - installation de l'EADI de JacquesZ sur second PC sous Airmanager 2.1.3 // * - rajout encodeur réglage DH sur input 37 et 38 seconde carte Io Fabien Deheegher // * - modif de la var 504 pour ne rendre le réglage de qnh opérationnel qu'avec battery et avionics On // * // * ----------------------------------------------------------------------------------------------------------------------------------- // * // * 11/2017 - INSTALLATION AIR MANAGER V 2.1.3 en réseau // * // * ----------------------------------------------------------------------------------------------------------------------------------- // * 10/2017 - remise en route du programme de rédirection des sons d'alarmes sur le second Pc // * - rajout de l'indication sonore V1 variable 984 et modif du fichier essaisound en conséquence // * - revision de l'alarme orange clignotante RVS not ready ( routine 309 ), elle ne fonctionnait plus // * - révision complète des routines Gaz droit et gauche 364 et 365 pour avoir un torque à 240 en position iddle // * et plusieurs niveaux de reverses // * - correction bug alarme caution qu'il fallait valider 2 X pour l'éteindre ( var 449 ) // * - correction extinction alarme orange ice engine quand les volets anti ice sont déployés ( var 403 et 404 ) // * // * // * // * // * ----------------------------------------------------------------------------------------------------------------------------------- // * 09/2017 // * - mise à 0 des bits de la variable audio dans la routine CAD car ils ne sont pas à 0 au démarrage de P3DV4 // * // * // * ----------------------------------------------------------------------------------------------------------------------------------- // * // * 08/2017 PASSAGE SOUS P3DV4 // * // * ----------------------------------------------------------------------------------------------------------------------------------- // * 04/2017 // * - modification de programmation pour jouer les sons d'alarme sur l'autre pc par sioc en réseau // * avec des variables linkées IOCP // * le second Pc a maintenant un programme .ssi qui tourne en client pour les sons d'alarme // * - correction d'une anomalie qui faisait qu'on pouvait manoeuvrer le pas d'hélice avec le moteur à l'arrêt // * - rajout variable 080 ( $09e2 ) pour allumer une led sur le monitoring BFF quand le vibreur est On // * // * // * ------------------------------------------------------------------------------------------------------------------------------------ // * // * 03/2017 // * - programmation de l'index du trim par servo à partir de la var $0BC2 en attendant de voir comment je peux faire avec la carte moteur // * rajout de la coupure alim servo au bout d'une seconde pour éviter le bruit // * // * // * ------------------------------------------------------------------------------------------------------------------------------------ // * // * 02/2017 - résolution du problème fréquence standbye com1 que je n'arrivais pas à changer par fsuipc suite au changement d'encodeur // * - branchement du yoke BFF // * - les commandes de trim pour elevator et aileron sont enlevées et le servo déconnecté pour éviter de chauffer // * - le bouton rouge de désengage AP sur le yoke a été rebranché sur la carte BU836A et désengage le PA par joy 0 bouton 3 // * - suite à un problème j'ai mis le potentiomètre du palonnier sur l'input 3 de la carte servo device 14 // * // * ------------------------------------------------------------------------------------------------------------------------------------ // * // * 01/2017 - rajout clignotement des leds vertes autofeather lors du test autofeather avant décollage // * - révision de la prog dans les var 67 et 77 suite au rajout du switch de test autofeather ( position momentanée ) input 12 // * - réaffectation des variables du panneau pilot bas gauche, libération des inputs 14 et 15 par couplage des inter ice vanne // * avec les poignées rouge pour éviter le double emploi // * - affectation de l'input 14 à la commande push back du clavier ATC // * // * // * --------------------------------------------------------------------------------------------------------------------------------------- // -------------------------------------------------------------------------------------- // corrections à faire sur le programme et évolutions des fonctionnalités du simulateur | // -------------------------------------------------------------------------------------- // revoir la prog capture nav de l'AP pour éteindre le voyant arm dès capture nav, se mettre en hdg au pa et nav pa, si l'angle est sup à 70 ° arm nav est allumé // dès que l'angle est bon, mode hdg doit s'éteindre ainsi que arm nav est le pa suit alors la radiale programmée par l'encodeur course // voir l'init des voyants fcp65, ils s'allument et s'éteignent bien lors de l'appui sur test mais éteint aussi hdg et alt si enclenché avant test // voir pour modifier le son de dépressurisation en mettant un bout en silencieux et en le lançant en continu pour qu'il soit haché et non continu // voir la variable 0B00 qui est sensée donner la valeur d'enclenchement des reverses -4096 normalement // voir pour changer les inters gen au profit de 2 inters avec position OFF/ON/mom ON pour reset Gen Var 0000, name INIT, Value 0 // Variable d'initialisation { &ACFT_ON_GND = 1 // avion au sol &dump_presscab = &dump_cab_sw // concordance switch pressu cabine au départ call &DISP_OAT_COND call &led_train call &boot_alarmes call &al_press_huile call &ini_sw // subrutine 300 call &AL_PRK_BRK // subroutine 351 call &calc_L_amps call &calc_r_amps call &al_pressfuel // subroutine 320 call &AL_AP call &cad // cold and dark &pitot = 0 } // -------------------------------------------------------------------------------------------------------------------------------------------- // de 1 à 20 variables de tests // Var 1, name manualgear_sw, Link IOCARD_SW, device 1, Input 44, Type P // { // l0 = 1000 // if &gear < 16383 // { // &gear = &gear + l0 // &gear = limit 0 16383 0 // } // } var 2 , name Rautofeatclign var 3 , name Lautofeatclign Var 004, name pitch_fd, Link FSUIPC_inOUT, Offset $2ee8, Length 8 Var 005, name rel_bearing, Link FSUIPC_inOUT, Offset $0C56, Length 2 // cap relatif vor1 { } Var 006, name Lpropfeathflag // ce flag permet la mise en drapeau même si la manette de pas d'hélice gauche n'est pas positionnée sur feather { call &helice_gauche } Var 007, name Rpropfeathflag // ce flag permet la mise en drapeau même si la manette de pas d'hélice droite n'est pas positionnée sur feather { call &helice_droite } Var 008, name helice_gauche, link subrutine // routine pour le pas d'hélice gauche { l0 = &L_prop_LEVER * 1.78 // facteur de multiplication pour amener le pot à 255 if &L_ENG_FIRING = 1 // si le moteur est en marche pour éviter de pouvoir manoeuvrer à l'arrêt { if &Lpropfeathflag = 0 // si le flag de mise en drapeau n'est pas actif { if l0 < 8 { &l_prop = -4096 } else { &l_prop = l0 * 64.25 } &l_prop = limit -4096 16383 0 } else // si le flag est actif mis à 1 par la routine al_autofeather { &l_prop = -4096 } } } Var 009, name helice_droite, link subrutine // routine pour le pas d'hélice droite { l0 = &R_prop_LEVER - 142 // remise à zéro l1 = l0 * 2.25 // facteur de multiplication pour pot à 255 if &R_ENG_FIRING = 1 // si le moteur est en marche pour éviter de pouvoir manoeuvrer à l'arrêt { if &Rpropfeathflag = 0 // si le flag de mise en drapeau n'est pas actif { if l1 < 8 { &r_prop = -4096 } else { &r_prop = l1 * 64.25 } &r_prop = limit -4096 16383 0 } else // si le flag est actif mis à 1 par la routine al_autofeather { &r_prop = -4096 } } } var 10,name loxpdr // Var 0010, name R_powergear_sw, Link IOCARD_SW, device 1, input 44 // switch alarme train sur manette power droite // { // call &al_train // } var 11,name loadf var 12,name l1adfapres var 14,name l2adf // Var 0011, name L_powergear_sw, Link IOCARD_SW, device 1, input 45 // switch alarme train sur manette power gauche // { // call &al_train // } // Var 0012, name horn_silenc_sw, Link IOCARD_SW, device 1, input 46, type P // poussoir horn silence sur tableau de bord Var 0013, name horn_silence // flag horn_silence pour couper le son d'alarme du train // Var 0014, name al_train , link subrutine // alarme train depuis les manettes de puissance ou les flaps down // { // C0 = &R_powergear_sw = 1 // voir s'ils doivent être inversés // C1 = &L_powergear_sw = 1 // if C0 or C1 // si une des manettes est en dessous de 80% N1 // { // if &gear < 16383 // que le train n'est pas abaissé // { // if &flaps < 16383 // { // // allumer les leds rouges de train // if &horn_silence = 0 // { // déclencher le son alarme train interruptible par le poussoir horn_silence // il faut 2 sons identiques mais avec des noms différents car un des deux ne pourra être interrompu // par le horn silence // } // } // } // } // else // { // // éteindre les leds rouges // // couper le son interruptible // // remettre le flag horn silence à 0 // } // if &flaps = 16383 // si les volets sont full down et que le train n'est pas sorti peu importe les switchs // { // de manettes, les leds s'allument et le son ne peut être interrompu // if &gear < 16383 // { // déclencher le son d'alarme de train non interruptible // allumer les leds rouges // } // else // { // éteindre les leds rouges // couper le son ininterruptible // } // } // } // -------------------------------------------------------------------------------------------------------------------------------------------- Var 0019, name difference_alt { } // --------------------------------------------------------------- // | | // | SECTION VARIABLES FSUIPC | // | | // --------------------------------------------------------------- Var 0021, name sec_fs, Link FSUIPC_INOUT, Offset $023a, Length 1 // secondes de FS { &clignoseconde = MOD &sec_fs ,2 &clignodemisec = 1 &clignodemisec = delay 0, 50 call &PAN_sondepitot call &al_land_light if &battery = 1 // si batterie on { if &ACFT_ON_GND = 1 // si l'avion est au sol { c0 = &L_ENG_FIRING = 0 c1 = &R_ENG_FIRING = 0 if c0 AND c1 // moteurs éteints { if &LEV_M_AUX_SW = 1 // si inter fuel quantity sur main { if &plein_ltank_sw = 1 // on remplit les réservoirs principaux { &left_tank = &left_tank + 40000 &tmp_l_tank = &left_tank } if &plein_rtank_sw = 1 { &right_tank = &right_tank + 40000 &tmp_r_tank = &right_tank } } if &LEV_M_AUX_SW = 0 // inter fuel quantity sur Aux { if &plein_ltank_sw = 1 // on remplit les réservoirs auxilliaires { &aux_ltank = &aux_ltank + 40000 &tmp_l_tank = &aux_ltank } if &plein_rtank_sw = 1 { &aux_rtank = &aux_rtank + 40000 &tmp_r_tank = &aux_rtank } } } } } } Var 0022, name ALTerna_static, Link FSUIPC_INOUT, Offset $029b, Length 1 // alternate static source Var 0023, name PITOT, Link FSUIPC_INOUT, Offset $029C, Length 1 // Commande réchauffage Pitot Var 0024, name fs_devcompas, Link FSUIPC_IN, Offset $02A0, Length 2 // deviation compas Var 0025 name speed_aircraft, Link FSUIPC_IN, Offset $02BC, Length 4 // vitesse de l'avion en knot * 128 { L0 = &speed_aircraft / 128 if L0 > 110 // c'est V1 { IF &ACFT_ON_GND = 1 // si l'avion est au sol { &flag_V1 = 1 // pour déclencher le son V1.wav } else { &flag_v1 = 0 // pour éviter qu'il se déclenche en vol } } else { &flag_V1 = 0 } } Var 0026, name fs_VS, Link FSUIPC_IN, Offset $02C8, Length 4 // Vertical speed de FS Var 0027, name fs_compas, Link FSUIPC_IN, Offset $02CC, Length 8 // cap compas { l0 = &fs_compas L1 = &compensateur &compas_step = l0 * 100 &compas_step = &compas_step - L1 // avec -4000 je suis juste sur le cap hsi 36000 pour un tour IF &Compas_step < 36000 // correction nécessitée par l’ajustement du point 0 { &compas_step = 36000 + &compas_step } } var 0028, name fs_press_cab, link fsuipc_inout, offset $0318, length 4 { if &fs_press_cab > 12500 { &ALT_WARN_LED = 1 // alarme altitude warning } else { &ALT_WARN_LED = 0 // alarme altitude warning } } var 0029, name difpresscab, link fsuipc_inout, offset $0324, length 4 Var 0030, name X_ADF1High Link FSUIPC_INOUT Offset $034C Length 2 // Offset chiffres hauts de l'adf { call &aff_adf } Var 0031, name COM1, Link FSUIPC_inOUT, Offset $034E, Length 2 // OUT COM1 { call &radio_dis_cond } var 0032, name Fs_nav1, link fsuipc_inout, offset $0350, Length 2 // affichage nav1 actif { call &radio_dis_cond } Var 0033, name NAV2, Link FSUIPC_OUT, Offset $0352, Length 2 // OUT NAV2 Var 0034, name fs_XPDR, Link FSUIPC_INOUT, Offset $0354, Length 2 // Transpondeur { &xpdr = frombcd &fs_xpdr } var 0035, name xpdr Var 0036, name X_ADF1Low Link FSUIPC_INOUT Offset $0356 Length 2 // Offset chiffres bas de l'adf { Call &aff_adf } Var 0037, name ACFT_ON_GND, Link FSUIPC_OUT, Offset $0366, Length 2 // Détection avion au sol/en l'air { call &alarm_dh IF &ACFT_ON_GND = 1 { if &ap = 1 // désengage Autopilote au sol { &ap = 0 } &servo_train = delay 9, 500 &servo_train = delay 0, 600 // &CHECK_BANK = 0 // mises à 0 pour le gpws &CHECK_FLAPS = 0 &CHECK_GEARS = 0 // &CHECK_TER_LAND = 0 &CHECK_GLIDE = 0 } IF &ACFT_ON_GND = 0 { &servo_train = 450 &servo_train = delay 0, 500 } } Var 0038, name STALL, Link FSUIPC_INOUT, Offset $036C, Length 1, Value 0 // Détection du décrochage Var 0039, name bill_turncoord, Link FSUIPC_INOUT, Offset $036E, Length 1, Type 1 // bille du coordinateur de virage { // equation y=-0.608x + 631 // si besoin d'ajuster la bille au centre &B5 = 0 L1 = -0.608 * &bill_turncoord L1 = L1 + 631 // si besoin d'ajuster la bille au centre L1 = L1 + &B5 IF L1 >= 707 { L1 = 707 } IF L1 <= 555 { L1 = 555 } &servo_bille = L1 // servo sur output 4 } Var 0040, name nav1or2, Link FSUIPC_INout, Offset $0374, Length 2, value 256 // switch nav1= 256 nav2=512 { call &APSYS } Var 0041, name DME_SELECT, Link FSUIPC_INOUT, Offset $0378, Length 2, Value 1 // Sélection DME1/DME2 Var 0042, name turn_rate, Link FSUIPC_INOUT, Offset $037C, Length 2 { IF &turn_rate >= 0 { L0 = &turn_rate } IF &turn_rate > 60000 { L0 = &turn_rate - 65535 } // equation y=0.211x + 735 L1 = 0.211 * L0 L1 = L1 + 735 L2 = L1 - 85 // - 30 si besoin d'ajuster la position zéro (centre) L2 = LIMIT 400 750 0 if &AVNCS_SW = 1 { &servo_turn = L2 // aiguille turn sur servo } } var 0043, name alti, link fsuipc_inout, offset $0574, length 4 // altitude en mètres utilisée pour l'alarme du sélecteur d'altitude { call &AP_ALT_SEL // routine pour le voyant arm du mode alt sel du PA et orange de l'altimètre et déclenchement du son alerte_alti call &al_rvsnotready // routine pour déclencher l'alarme rvs not ready } Var 0044, name heading, Link FSUIPC_IN, Offset $0580, Length 4 // cap { } Var 0045, name AP, Link FSUIPC_INOUT, Offset $07BC, Length 4 // Commande du P.A. { IF &AP = 1 { &AP_DISC_LED = 0 // alarme rouge AP DISC éteinte &AP_APP65_LED = 1 // VOYANT VERT PA ENGAGE APP65A &AP_APP65tmp = 1 &AP_FCP65LED = 1 // VOYANT VERT AP FCP65A &AP_FCP65tmp = 1 } ELSE { IF &BATTERY = 1 { &AP_DISC_LED = 1 &cliapdis65 = 1 // fait clignoter le voyant AP disengage APP65 et fcp65 pendant 5 secondes dans var 911 &cliapdis65 = delay 0, 500 &APDISAPP65_LED = delay 1, 550 // VOYANT JAUNE PA DISENGAGE APP65A &APDISAPP65tmp = 1 &DIS_FCP65LED = delay 1, 550 // voyant jaune PA disengage sur FCP 65 A &DIS_FCP65tmp = 1 &AP_APP65_LED = 0 // VOYANT VERT PA ENGAGE APP65A &AP_FCP65LED = 0 // VOYANT VERT AP FCP65A &AP_FCP65tmp = 0 &AP_APP65tmp = 0 // lancer une routine qui remet fs_rudder_tab et fs_aileron_tab d'équerre L0 = &pot_ruddertab * 155 L0 = L0 - 19530 &Fs_rudder_tab = L0 / 1000 &Fs_trim_out = delay 250, 50 // pour recaler le trim } } } Var 0046, name AP_HDG_LOCK, Link FSUIPC_INOUT, Offset $07C0, Length 4 // Wing Leveler Var 0047, name AP_NAV, Link FSUIPC_INOUT, Offset $07C4, Length 4, Value 0 // Commande PA mode NAV { &NAV_FCP65LED = &AP_NAV // LE VOYANT VERT NAV FCP65A SUIT LE MODE if &ap_nav = 1 { L0 = TESTBIT &Fs_NAV_capt ,1 // le bit 1 à 1 indique que nav1 est reçue if L0 = 0 // si nav1 est non capté { &NAV_ARMFCPLED = 1 // allumer voyant ambre ARM SUR FCP 65 } else // sinon si capté { &NAV_ARMFCPLED = 0 // éteindre voyant ambre ARM SUR FCP 65 } } else // si le mode nav n'est pas en fonction { &NAV_ARMFCPLED = 0 // éteindre voyant ambre ARM SUR FCP 65 } } Var 0048, name AP_HDG, Link FSUIPC_INOUT, Offset $07C8, Length 4, Value 0 // Commande PA mode HDG { &HDG_FCP65LED = &ap_hdg // VOYANT VERT HDG FCP65A } Var 0049, name HDG_SEL, Link FSUIPC_INOUT, Offset $07CC, Length 2 // Sélection de Cap Var 0050, name PA_ALT_SEL, Link FSUIPC_INOUT, Offset $07D0, Length 4 // Commande PA altitude sélectionnée au selecteur altitude { } Var 0051, name ALT_SEL, Link FSUIPC_INOUT, Offset $07D4, Length 4 // sélection Altitude affichée au selecteur en mètres * 65536 { call &AP_ALT_SEL } var 0052, name alert_alti, link fsuipc_inout, offset $07d6, length 2 // en metres { } Var 0053, name PA_ALT, Link FSUIPC_INOUT, Offset $07D8, Length 4 // Commande PA maintient altitude actuelle altitude hold { &ALT_FCP65LED = &PA_ALT // VOYANT VERT ALT FCP65A } Var 0054, name AP_VS, Link FSUIPC_INOUT, Offset $07EC, Length 2 // Commande PA V/S { &VS_FCP65LED = &AP_VS // VOYANT VERT VS FCP65A } Var 0055, name VERT_SPEED_SEL, Link FSUIPC_INOUT, Offset $07F2, Length 2 // sélection de vitesse verticale V/S Var 0056, name AP_GS_CAPT, Link FSUIPC_INOUT, Offset $07FC, Length 4, Value 0 // Commande capture de Glide { IF &ap_gs_capt <> &ap_appr // force les mêmes valeurs { &ap_gs_capt = &ap_appr } } Var 0057, name AP_APPR, Link FSUIPC_INOUT, Offset $0800, Length 4, Value 0 // Commande PA mode APPR { &ap_gs_capt = &ap_appr &APPR_FCP65LED = &ap_appr // VOYANT VERT APPR FCP65A call &AP_GS_ALIVE // voir si glideslope reçu } Var 0058, name AP_BC, Link FSUIPC_INOUT, Offset $0804, Length 4, Value 0 // Commande PA mode Back Course Var 0059, name AP_YD, Link FSUIPC_INOUT, Offset $0808, Length 4, Value 0 // Commande PA Yaw Damper { if &POWER_PA_SW = 1 { if &AP_YD = 1 { &YAW_APP65_LED = 1 &YAW_APP65tmp = 1 &YAWDAPP65_LED = 0 &YAWDAPP65tmp = 0 } else { &cliYAWDAPP65 = 1 &cliYAWDAPP65 = delay 0, 500 &YAWDAPP65_LED = delay 1, 550 &YAWDAPP65tmp = 1 &YAW_APP65_LED = 0 &YAW_APP65tmp = 0 } } else { &YAWDAPP65_LED = 0 &YAWDAPP65tmp = 0 &YAW_APP65_LED = 0 &YAW_APP65tmp = 0 } } Var 0060, name L_ENG_THROTTLE, Link FSUIPC_INOUT, Offset $088C, Length 2 // variable gaz moteur gauche Var 0061, name l_prop, Link FSUIPC_inout, Offset $088e, Length 2 // Commande propeller gauche { call &al_rvsnotready } Var 0062, name L_ENG_FFLOW, Link FSUIPC_INOUT, Offset $0890, Length 2 // Fuel Flow moteur 1 (gauche) Var 0063, name L_ENG_START, Link FSUIPC_INOUT, Offset $0892, Length 2 // Allumage moteur 1 (gauche) { IF &battery = 1 { IF &L_ENG_START = 1 { &L_notransf_led = 1 &L_notransf_led = delay 0,2000 } } } Var 0064, name L_ENG_FIRING, Link FSUIPC_INOUT, Offset $0894, Length 2 // Moteur 1 (gauche) en marche Var 0065, name L_OIL_PRESS, Link FSUIPC_INOUT, Offset $08BA, Length 2 // Pression d'huile moteur gauche { CALL &al_press_huile } Var 0066, name L_HYDR_PRESS, Link FSUIPC_INOUT, Offset $08D8, Length 4 // Pression hydraulique moteur gauche Var 0067, name L_HYDR_QTY, Link FSUIPC_INOUT, Offset $08DC, Length 4 // Quantité liquide hydraulique moteur gauche Var 0068, name L_ENG_TORQUE, Link FSUIPC_INOUT, Offset $08F4, Length 4 // Torque du moteur 1 (gauche ) en pourcentage { call &al_autofeather call &AL_LAUTO_IGNI } Var 0069, name l_press_fuel, Link FSUIPC_INOUT, Offset $08F8, Length 4 // pression carburant moteur 1 (gauche) { call &al_pressfuel } Var 0070, name L_FUEL_FLOW, Link FSUIPC_IN, Offset $0918, Length 8, Numbers 2 // Débit de carburant moteur 1 gauche PPH x 100 Var 0071, name R_ENG_THROTTLE, Link FSUIPC_INOUT, Offset $0924, Length 2 // variable gaz moteur 2 droit Var 0072, name r_prop, Link FSUIPC_INOUT, Offset $0926, Length 2 // Commande propeller droit { call &al_rvsnotready } Var 0073, name R_ENG_FFLOW, Link FSUIPC_INOUT, Offset $0928, Length 2 // Fuel Flow moteur 2 (droit) Var 0074, name R_ENG_START, Link FSUIPC_INOUT, Offset $092A, Length 2 // Allumage moteur 2 (droit) { IF &battery = 1 { IF &R_ENG_START = 1 { // voyant no transfert droit s'allume et s'éteint après 20 secondes &R_notransf_led = 1 &R_notransf_led = delay 0,2000 } ELSE { &R_notransf_led = 0 } IF &R_ENG_START = 2 // générateur droit ON { &BATTCHARG_LED = 1 // l'alarme orange BATT CHG s'allume &BATTCHARG_LED = DELAY 0 ,600 // puis s'éteint après 6 secondes &BATCHARGLEDtmp = 1 // l'alarme tempo s'allume &BATCHARGLEDtmp = DELAY 0 ,600 // puis s'éteint après 6 secondes } } } Var 0075, name R_ENG_FIRING, Link FSUIPC_INOUT, Offset $092C, Length 2 // Moteur 2 (droit) en marche Var 0076, name R_OIL_PRESS, Link FSUIPC_INOUT, Offset $0952, Length 2 // Pression d'huile moteur droit { call &al_press_huile } Var 0077, name R_HYDR_PRESS, Link FSUIPC_INOUT, Offset $0970, Length 4 // Pression hydraulique moteur droit Var 0078, name R_HYDR_QTY, Link FSUIPC_INOUT, Offset $0974, Length 4 // Quantité liquide hydraulique moteur droit Var 0079, name R_ENG_TORQUE, Link FSUIPC_INOUT, Offset $098C, Length 4 // Couple du moteur 2 ( droit ) { call &al_autofeather call &AL_RAUTO_igni call &al_air_cond_n1 // alarme verte air conditionné } Var 0080, name r_press_fuel, Link FSUIPC_INOUT, Offset $0990, Length 4 // pression carburant moteur droit { call &al_pressfuel } Var 0081, name R_FUEL_FLOW, Link FSUIPC_IN, Offset $09B0, Length 8, Numbers 2 // Débit de carburant droit PPH x 100 var 0082, name shaker_bff, link fsuipc_inout, offset $09e2, length 2 // variable de smoke utilisée par fsuipc pour la mettre ON lorsque le vibreur est actif Var 0083 name Inner_Mkr, Link FSUIPC_IN, Offset $0BAC, Length 2 // INNER Marker { &Inner_Mkr_LED = &inner_mkr } Var 0084 name Middle_Mkr, Link FSUIPC_IN, Offset $0BAE, Length 2 // MIDDLE Marker { IF &Middle_Mkr = 1 { &middle_mkr_led = &clignoquartsec } ELSE { &Middle_Mkr_LED = 0 } } Var 0085 name Outer_Mkr, Link FSUIPC_IN, Offset $0BB0, Length 2 // Outer Marker { IF &Outer_Mkr = 1 { &outer_mkr_led = &clignodemisec } ELSE { &Outer_Mkr_LED = 0 } } Var 0086, name FS_pal, Link FSUIPC_INOUT, Offset $0BBA, Length 2 // Offset du palonnier Var 0087, name FS_elevator, Link FSUIPC_INOUT, Offset $0BB2, Length 2 // Offset elevator du yoke Var 0088, name Fs_trim_out, Link FSUIPC_inOUT, Offset $0BC0, Length 2 // Offset du trim en écriture piloté par le potentiomètre { &trimrAPP65_LED = 0 if &fs_trim_out = 16383 { &trimrAPP65_LED = 1 } if &fs_trim_out = -16257 { &trimrAPP65_LED = 1 } } Var 0089, name Fs_trim_read, Link FSUIPC_IN, Offset $0BC2, Length 2 // indicateur du trim de profondeur en lecture { if &Fs_trim_read < 49000 // dans la plage UP { L0 = &Fs_trim_read * -0.031 L1 = L0 + 512 } else // dans la plage DN { L0 = &Fs_trim_read - 49152 L1 = L0 * -0.031 L1 = L1 + 1020 } L1 = limit 1 1020 0 &servo_trim = L1 &servo_trim = delay 0,1000 // pour couper l'alim du servo au bout d'une seconde &trim_fab = L1 // nouveau moteur asservi sur carte Fabien } Var 0090 name left_brake, Link FSUIPC_INOUT, Offset $0BC4, Length 2 // frein gauche Var 0091 name right_brake, Link FSUIPC_INOUT, Offset $0BC6, Length 2 // frein droit Var 0092, name PKG_BRK, Link FSUIPC_INOUT, Offset $0BC8, Length 2 // Commande de frein de parking Var 0093, name FLAPS, Link FSUIPC_INOUT, Offset $0BDC, Length 4, Value 0 // Volets { CALL &al_gear } Var 0094, name FLAPSleft, Link FSUIPC_INOUT, Offset $0BE0, Length 4 // Volets chaque changement donne la position sur la gauge // de facon lente { L0 = &flapsleft * -1 L0 = L0 + 16383 L0 = L0 / 15.4 L0 = LIMIT 85 950 0 &servo_flaps = l0 } Var 0095, name GEAR, Link FSUIPC_INOUT, Offset $0BE8, Length 4 // Commande du train { call &al_rvsnotready CALL &al_prop_sync CALL &al_gear CALL &Led_train call &al_land_light // alarmes vertes si train up avec landing ou taxi light ON IF &GEAR < 16383 // gpws { &CHECK_FLAPS = 0 &CHECK_GLIDE = 0 } ELSE { IF &GEAR = 16383 { &CHECK_GEARS = 0 } } } Var 0096, name NOSE_GEAR_POS, Link FSUIPC_IN, Offset $0BEC, Length 4 // Position du train avant { CALL &Led_train } Var 0097, name RIGHT_GEAR_POS, Link FSUIPC_IN, Offset $0BF0, Length 4 // Position du train droit { CALL &Led_train } Var 0098, name LEFT_GEAR_POS, Link FSUIPC_IN, Offset $0BF4, Length 4 // Position du train gauche { CALL &Led_train } Var 0099, name NAV1_GS_flag, Link FSUIPC_INOUT, Offset $0C4C, Length 1 // glideslope de nav1 alive si à 1 { call &AP_GS_ALIVE } Var 0100, name NAV1_GS_needle, Link FSUIPC_INOUT, Offset $0C49, Length 1 // angle de glide slope de nav1 de -119 à + 119 { call &AP_GS_ALIVE } Var 0101, name CRS_NAV1_SEL, Link FSUIPC_INOUT, Offset $0C4E, Length 2 // Sélection Course OBS1 $0c5e pour obs2 { call &apsys if &CRS_NAV1_SEL > 360 { &CRS_NAV1_SEL = &CRS_NAV1_SEL - 360 } if &CRS_NAV1_SEL <= 0 { &CRS_NAV1_SEL = &CRS_NAV1_SEL + 360 } } Var 0102, name LIGHTS, Link FSUIPC_INOUT, Offset $0D0C, Length 2 // Commande éclairages { call &al_land_light } Var 0103, name oat, Link FSUIPC_INout, Offset $0E8C, Length 2, Type 1 // température extérieure { call &PAN_sondepitot L0 = &OAT / 256 &OAT_DIS = TRUNC L0 // résultat de la division tronquée pour ne pas dépasser 4 digits if &oat < 1200 // si temp < 5° { if &battery = 1 { &icing_led = 1 &icingledtmp = 1 if &pitot = 0 // si rechauf pitot off { if &ACFT_ON_GND = 0 // si avion en l'air { if &oat < 300 // environ 1° pour laisser le temps de réagir à l'allumage de l'alarme pitot off avant de bloquer le pitot { if &togglepitot = 0 { &fs_commande = delay 66307, 3000 // blocage pitot dans les 30 secondes &fs_commande = DELAY 0 ,6000 // raz après 1 minute &togglepitot = 1 // pour que la commande 66307 ne soit lancée qu'une fois } } &PITOTOFF_LED = 1 &pitotoffledtmp = 1 } } else // si rechauf pitot On { if &Test_alarm_sw = 0 // pour éviter que l'alarme s'éteigne lors du test { &PITOTOFF_LED = 0 &pitotoffledtmp = 0 } } } } else // si temp > 5° { if &Test_alarm_sw = 0 // pour éviter que l'alarme s'éteigne lors du test { &icing_led = 0 &icingledtmp = 0 &PITOTOFF_LED = 0 &pitotoffledtmp = 0 } } CALL &DISP_OAT_COND } Var 0104, name gps_nav, Link FSUIPC_INout, Offset $132C, Length 4, value 0 // switch Auto pilot nav gps { call &APSYS } Var 0105, name N1_lengine, Link FSUIPC_INOUT, Offset $2000, Length 8 // pourcentage N1 moteur 1 (gauche) { call &al_autofeather call &al_gear } var 0106, name fs_lbl_airpsi, link fsuipc_inout, offset $206c, length 8 { call &al_bleedair } Var 0107, name N1_rengine, Link FSUIPC_INOUT, Offset $2100, Length 8 // pourcentage N1 moteur 2 (droit) { call &al_autofeather call &al_gear call &al_air_cond_n1 // le switch pour test de l'air conditionné n'est que sur le moteur droit d'après la doc } var 0108, name fs_rbl_airpsi, link fsuipc_inout, offset $216c, length 8 { call &al_bleedair } var 0109, name sound_alti, Link FSUIPC_INout, Offset $2254, Length 4, value 0 // var qui permet le déclenchement du son de l'alarme selecteur alti var 0110, name volt_bat, link FSUIPC_INOUT, Offset $2834, Length 8, Numbers 2 // Tension batterie Var 0111, name FS_MAINBAT_BUS, Link FSUIPC_IN, Offset $2840, Length 8, numbers 2 // valeur tension main bus Var 0112, name FS_AVBUS_VOLT, Link FSUIPC_IN, Offset $2850, Length 8, numbers 2 // valeur tension avionics bus Var 0113, name genL_VOLTS, Link FSUIPC_IN, Offset $2880, Length 8 // voltage generatrice gauche { if &genl_volts = 28 { if &Test_alarm_sw = 0 // pour éviter que l'alarme s'éteigne lors du test { &lDC_GEN_LED = DELAY 0 ,500 // s'éteint après 5 secondes &LDC_GEN_LEDtmp = delay 0 ,500 } } else { &lDC_GEN_LED = 1 &LDC_GEN_LEDtmp = 1 } } Var 0114, name L_ALTAMPs, Link FSUIPC_IN, Offset $2888, Length 8, numbers 2 // valeur ampérage génératrice gauche { call &calc_L_amps } Var 0115, name genR_VOLTS, Link FSUIPC_IN, Offset $2890, Length 8 // voltage generatrice droite { if &genr_volts = 28 { if &Test_alarm_sw = 0 // pour éviter que l'alarme s'éteigne lors du test { &rDC_GEN_LED = DELAY 0 ,500 // s'éteint après 5 secondes &RDC_GEN_LEDtmp = 0 } } else { &rDC_GEN_LED = 1 &RDC_GEN_LEDtmp = 1 } } Var 0116, name R_ALTAMPS, Link FSUIPC_IN, Offset $2898, Length 8, numbers 2 // ampérage génératrice droite { call &calc_r_amps } Var 0117, name AUTOFEATHER, Link FSUIPC_INOUT, Offset $2E88, Length 2 // Offset Autofeather { call &al_autofeather } Var 0118, name Fs_aileron_tab, Link FSUIPC_inOUT, Offset $2EB0, Length 8, Numbers 2 // OUT Trim elevator Var 0119, name Fs_rudder_tab, Link FSUIPC_inOUT, Offset $2EC0, Length 8, Numbers 2 // OUT Trim Direction Var 0120, name PROP_SYNC, Link FSUIPC_INOUT, Offset $2EC8, Length 1 // Commande synchro hélices { call &al_prop_sync } Var 0121, name AP_FD, Link FSUIPC_INOUT, Offset $2EE0, Length 4, Value 0 // Commande PA Flight Director var 0122, name fs_poids, link FSUIPC_INOUT, Offset $30C0, Length 8, Numbers 2 // poids de l'avion Var 0123, name BATTERY, Link FSUIPC_INOUT, Offset $3102, Length 1, Value 0 // Commande Master Battery { &BATTERY = &BATT_SW // Concordance FS/cockpit IF &battery = 1 { // faire changer l'offset de l'adf pour que l'affichage ssd1306 soit concordant //l0 = frombcd &x_adf1high // l0 = &x_adf1high // l1 = l0 - 1 // l2 = l1 // &X_ADF1High = l2 // l2 = l2 + 1 // &X_ADF1High = delay l2,100 &OVH_12V = 0 // amène le 12 volt à l'overhead par la carte relai, le relai est inversé if &avncs = 0 { &flag_turnbank = 1 } else { &flag_turnbank = 0 } &LIGHTS = clearBIT 5 // instruments au min de luminosité if &l_eng_start = 0 // si moteur gauche non démarré { if &r_eng_start = 0 // et moteur droit non démarré { CALL &boot_alarmes // routine 350 } } if &genl_volts = 0 { &lDC_GEN_LED = 1 &lDC_GEN_LEDtmp = 1 } if &genr_volts = 0 { &rDC_GEN_LED = 1 &rDC_GEN_LEDtmp = 1 } &LBLAIROFF_LED = 1 &RBLAIROFF_LED = 1 // les voyants verts doivent s'allumer dès bat on } ELSE { &LIGHTS = CLEARBIT 5 &OVH_12V = 1 // coupe le 12 volt à l'overhead par la carte relai &inverter_LED = 0 // alarme rouge INVERTER éteinte &INVERTERLEDtmp = 0 &AP_DISC_LED = 0 &AP_DISC_LEDtmp = 0 &pwrdme_LED = 0 &rvs_LED = 0 &rDC_GEN_LED = 0 &lDC_GEN_LED = 0 &rDC_GEN_LEDtmp = 0 &lDC_GEN_LEDtmp = 0 &LIGNITION_LED = 0 &RIGNITION_LED = 0 &LANDING_LED = 0 &TAXILIGHT_LED = 0 &BEACON_LED = 0 &STROBES_LED = 0 &NAVLIGHT_LED = 0 &LICEVAN_LED = 0 &LICVANEXT_LED = 0 &RICEVAN_LED = 0 &RICVANEXT_LED = 0 &flag_turnbank = 0 &PITOTOFF_LED = 0 &AP_APP65_LED = 0 // VOYANT VERT PA ENGAGE APP65A éteint &APDISAPP65_LED = 0 // VOYANT JAUNE PA DISENGAGE APP65A éteint &APDISAPP65tmp = 0 &DIS_FCP65LED = 0 // voyant jaune PA disengage fcp65a éteint &DIS_FCP65tmp = 0 &AP_FCP65LED = 0 // VOYANT VERT AP FCP65A éteint &AP_APP65tmp = 0 &AP_FCP65tmp = 0 &VS_FCP65LED = 0 &YAW_APP65_LED = 0 &YAW_APP65tmp = 0 &YAWDAPP65_LED = 0 &YAWDAPP65tmp = 0 &BATTCHARG_LED = 0 &select_alt_LED = 0 &HDG_FCP65LED = 0 // VOYANT VERT HDG FCP65A &LBLAIROFF_LED = 0 &RBLAIROFF_LED = 0 &LEFT_GEAR_LED = 0 &RBLAIR_FAILled = 0 &LBLAIR_FAILled = 0 &AIRCNDOFF_LED = 0 &HYDFLUID_LED = 0 // sera remplacé par un voyant orange hyd fluid low &valid_warning = 1 // pour stopper le bip d'alarme Master warning &AIRCNDOFF_LED = 0 &AIRCNDOFLEDtmp = 0 &TRIMOFF_LED = 0 } CALL &RADIO_DIS_COND call &calc_L_amps call &calc_r_amps call &led_train call &al_press_huile call &al_prk_brk call &al_pressfuel call &al_bleedair call &al_prop_sync call &calc_disp_tank // routine de mise en marche des jauges carburants call &al_air_cond_n1 call &tst_elevtrimsw } Var 0124, name AVNCS, Link FSUIPC_INOUT, Offset $3103, Length 1 // Commande Avionique { &AVNCS = &AVNCS_SW // Concordance FS/Cockpit CALL &RADIO_DIS_COND call &aff_adf if &avncs = 0 // si avionics off { &flag_turnbank = 1 // on allume l'indicateur rouge OFF du turn and bank sur output 40 } else { &flag_turnbank = 0 } } Var 0125, name fs_commande, Link FSUIPC_OUT, Offset $3110, Length 4 // offset qui me sert pour envoyer des commandes Var 0126, name fs_par_comm, Link FSUIPC_OUT, Offset $3114, Length 4 // paramètre de la commande 3110 Var 0127 name COM2, Link FSUIPC_OUT, Offset $3118, Length 2 // OUT COM2 Var 0128, name Fs_comstby, Link FSUIPC_INout, Offset $311A, Length 2 // com1 standbye { L0 = frombcd &Fs_comstby L0 = L0 + 10000 &COM1_DIS = L0 } Var 0129, name AUDIO, Link FSUIPC_INOUT, Offset $3122, Length 1 // Ecoute radios Var 0130, name FS_pompes, Link FSUIPC_INOUT, Offset $3125, Length 1 // Pompes carburant Var 0131, name FS_ground_alti, Link FSUIPC_INOUT, Offset $31E4, Length 4 // Offset radio altitude sol * 65536 { call &alarm_dh // alarmes GPWS déportées sur le second PC } Var 0132, name Fs_NAV_capt, Link FSUIPC_IN, Offset $3300, Length 2 // Offset capture nav { L0 = TESTBIT &Fs_NAV_capt ,1 // le bit 1 à 1 indique que nav1 est reçue if &ap_nav = 1 // si autopilote en mode nav // et non réception de nav1 { if L0 = 0 { &NAV_ARMFCPLED = 1 // allumer voyant ambre ARM SUR FCP 65 } else // si réception { &NAV_ARMFCPLED = 0 // éteindre voyant ambre ARM SUR FCP 65 } } } Var 0133, name FS_alt_feet, Link FSUIPC_INOUT, Offset $3324, Length 4 // Offset altitude en pied Var 0134, name V_JOYSTICK, Link FSUIPC_OUT, Offset $3340, Length 2 // joystick virtuel pour l'atc var 0135, name fs_doors, link fsuipc_inout, offset $3367, length 1 Var 0136, name fs_nosmoke, Link FSUIPC_INOUT, Offset $341c, Length 1 // no smoke de fs utilisé pour changer l'affichage millibar ou hp de l'altimètre Am Var 0137, name fs_seatbelt, Link FSUIPC_INOUT, Offset $341d, Length 1 // offset seatbelt utilisé pour reset alti air manager var 0138, name decision_hight, Link FSUIPC_INout, Offset $3428, Length 8, value 0 // var hauteur de décision en mètres var 0139, name trim_elev_cl, Link FSUIPC_INout, Offset $66FA, length 2 // elle était à Length 8 var qui permet l'écriture de l'élevator trim de BFF_CL // ------------------------------------------------------------------------------------------------------------------------------------------------------- // offsets libres de Fsuipc Var 0140, name fs_NAV_ADF_RMI, Link FSUIPC_OUT, Offset $7301, Length 1 // passage nav -> adf pour les aiguilles du RMI Var 0141, name fs_ehsi, Link FSUIPC_OUT, Offset $7307, Length 1 // var pour mode ehsi (hsi arc ou map) Var 0142, name fs_lumehsi, Link FSUIPC_OUT, Offset $7308, Length 1 // luminosité ehsi Var 0143, name fs_lumeadi, Link FSUIPC_OUT, Offset $7309, Length 1 // luminosité eadi Var 0144, name fs_mode_baro, Link FSUIPC_OUT, Offset $7310, Length 1 // affichage baro en Hp ou Mbar pour l'alti de Fabien Deheegher Var 0145, name airspeed_1, Link FSUIPC_out, Offset $9001, Length 2 // seconde aiguille sur jauge airspeed de Fabien Var 0146, name trim_fab, Link FSUIPC_out, Offset $9002, Length 2 // var pour trim elevator carte moteur // --------------------------------------------------------------------------------------------------------------------------------------------------------- var 0147, name dump_presscab, link fsuipc_inout, offset $0328, length 4, value 1 // par défaut je dois le mettre à 1 pour ne pas permettre la pressu cabine tant que bleed air à Off var 0148, name rate_presscab, link fsuipc_inout, offset $0320, length 4, value 1 Var 0149, name hour_fs, Link FSUIPC_INOUT, Offset $0238, Length 1 // heure de FS Var 0150, name min_fs, Link FSUIPC_INOUT, Offset $0239, Length 1 // minutes de FS { // call &al_land_light } var 0151, name fs_propdeice, link fsuipc_inout, offset $2440, length 4 Var 0152, name mois_fs, Link FSUIPC_INOUT, Offset $0244, Length 1 // mois de FS var 0153, name EFIS_POWER, link fsuipc_inout, offset $0BCC, length 4 // variable pour l'allumage de l'EFIS par Airmanager, en fait c'est la variable spoilers non utilisée Var 0154, name fs_ceintures, Link FSUIPC_INOUT, Offset $0b51, Length 1 // ------------------------------------------- // Offsets libres pour gérer les Lvars du B200 FlightOne // ------------------------------------------- Var 0155, name LVAR_ALARM1, Link FSUIPC_INout, Offset $66C0, Length 1 // offset libre pour le premier groupe d'alarmes via LUA { &LIGNITION_LED = TESTBIT &LVAR_ALARM1,0 // attribution de la valeur du premier bit au voyant d'alarme verte Lignition &RIGNITION_LED = TESTBIT &LVAR_ALARM1,1 // attribution de la valeur du second bit au voyant d'alarme verte Rignition &LBLAIROFF_LED = TESTBIT &LVAR_ALARM1,2 // attribution de la valeur du troisième bit au voyant d'alarme verte L Blair Off &RBLAIROFF_LED = TESTBIT &LVAR_ALARM1,3 // attribution de la valeur du quatrième bit au voyant d'alarme verte R Blair Off &Lnotransf_led = TESTBIT &LVAR_ALARM1,4 // attribution de la valeur du cinquième bit au voyant d'alarme jaune L Notransfert &Rnotransf_led = TESTBIT &LVAR_ALARM1,5 // attribution de la valeur du sixième bit au voyant d'alarme jaune R Notransfert &RBLAIR_FAILled = TESTBIT &LVAR_ALARM1,6 // attribution de la valeur du septième bit au voyant d'alarme rouge RBlairFail &LBLAIR_FAILled = TESTBIT &LVAR_ALARM1,7 // attribution de la valeur du huitième bit au voyant d'alarme rouge LBlairFail } Var 0156, name LVApropdeice, Link fsuipc_inout, offset $66c1 , length 1 // inter dégivrage helice auto Var 0157, name LVAjaugeprop, Link fsuipc_inout, offset $66c2 , length 1 // jauge prop amps { L0 = &lvajaugeprop * -3 // pour faire - 350 et arriver à un bon calibrage, diminuer ce chiffre fait descendre l'aiguille L0 = L0 + 960 L0 = LIMIT 100 1022 0 &servo_propamps = l0 } var 0158, name lvar_rateclimb, link fsuipc_inout, offset $66c3, length 1 // potar taux de montée cabine Var 0159, name LVAR_LBLDSW, Link FSUIPC_INout, Offset $66C4, Length 1 // position du switch L bleed air ( 2 = off, 1 = Env off, 0 = Open ) Var 0160, name LVAR_RBLDSW, Link FSUIPC_INout, Offset $66C5, Length 1 // position du switch R bleed air ( 2 = off, 1 = Env off, 0 = Open ) Var 0161, name LVAR_IceLighSW, Link FSUIPC_INout, Offset $66C6, Length 1 // position du switch IceLight var 0162, name luacptcom1, link fsuipc_inout, offset $66c7, length 1 // valeur du cpteur inter de défilement fréquence com1 pour lua var 0163, name luastocom1, link fsuipc_inout, offset $66c8, length 1 // poussoir sto de com1 { if &luastocom1 = 1 // je dois ranger la stbye affichée sur les displays dans l'élement du tableau { L0 = frombcd &Fs_comstby L0 = L0 + 10000 &luastbyecom1 = L0 // je modifie la valeur de l'offset pour déclencher l'event lua } } Var 0164, name LVAR_electrim, Link FSUIPC_INout, Offset $66C9, Length 1 // Voyant vert elec trim off { &TRIMOFF_LED = &LVAR_electrim } Var 0165, name LVAR_inter1, Link FSUIPC_INout, Offset $66D0, Length 1 // offset du premier groupement inters Var 0166, name LVAR_crossfeed, Link FSUIPC_INout, Offset $66D8, Length 1 // position du switch crossfeed Var 0167, name LVAR_Rvsnoread, Link FSUIPC_INout, Offset $66E1, Length 1 // voyant orange rvs not ready { &rvs_LED_temp = &LVAR_Rvsnoread &rvs_led = &LVAR_Rvsnoread } Var 0168, name LVAR_hydfluidL, Link FSUIPC_INout, Offset $66E2, Length 1 // voyant orange hydro fluid low { &HYDFLUID_LED = &LVAR_hydfluidL } Var 0169, name LVAR_cab_climb, Link FSUIPC_INout, Offset $66E3, Length 4 // aiguille de la jauge cabin climb { CALL &Float32, &LVAR_cab_climb // charge la routine de conversion float32 avec la Lvar en paramètre } var 0170, name lvar_floatclim, link fsuipc_inout, offset $66e7, length 1 // float potar taux de montée cabine var 0171, name luastbyecom1, link fsuipc_inout, offset $66e8, length 2 // stbye de com1 en provenance du fichier memcom.txt de LUA Var 0172 name LVAR_ext_pwr, Link FSUIPC_INout, Offset $66D1, Length 1 // offset du externe power var 0180, name luacptnav1, link fsuipc_inout, offset $66D2, length 1 // valeur du cpteur inter de défilement fréquence nav1 pour lua var 0181, name luastbyenav1, link fsuipc_inout, offset $66D3, length 2 // stbye de nav1 en provenance du fichier memnav.txt de LUA var 0182, name luastonav1, link fsuipc_inout, offset $66D5, length 1 // bouton sto nav1 { if &luastonav1 = 1 // je dois ranger la stbye affichée sur les displays dans l'élément du tableau { L0 = frombcd &Fs_nav1stbye // l0 prend la valeur de l'offset 311E L0 = L0 + 10000 // on rajoute 10000 &luastbyenav1 = L0 // modification de $66D3 pour déclencher l'event lua } } var 0183, name luasurfdeice, link fsuipc_inout, offset $66d6, length 1 var 0184, name lualautoignisw, link fsuipc_inout, offset $66d7, length 1 // switch gauche ignition var 0185, name luarautoignisw, link fsuipc_inout, offset $66d9, length 1 // switch droit ignition var 0186, name Fs_nav1stbye, link fsuipc_inout, offset $311e, Length 2 // offset nav1 standbye { call &radio_dis_cond } // --------------------------------------------------------------- // | | // | SECTION POTENTIOMETRES | // | | // --------------------------------------------------------------- Var 0261, name pot_L_brake, Link usb_analogic, device 2, Input 1, PosL 0, PosC 50, PosR 121 // Potentiomètre frein gauche 0 à 121 sur carte servo device 14 { l0 = &pot_L_brake * 205 l0 = limit 0 16384 0 &left_brake = l0 } Var 0262, name pot_R_brake, Link usb_analogic, device 2, Input 2, PosL 0, PosC 47, PosR 95 // Potentiomètre frein droit 0 à 95 sur carte servo device 14 { l0 = &pot_r_brake * 215 l0 = limit 0 16384 0 &right_brake = l0 } var 0264,name pot_trim,link iocard_analogic, input 2,posL 0,posC 127,posR 255 // potentiomètre 10 tours de commande du trim { L0 = &pot_trim * 128 L1 = 16383 - L0 L1 = LIMIT -16383 16383 0 if &ap = 0 // pour eviter que ap n'arrive pas à prendre la main sur le trim { &fs_trim_out = L1 L2 = &pot_trim * 4 L2 = LIMIT 1 1020 0 } // &servo_trim = L2 } var 0265,name PALONNIER,link usb_analogic, device 2, input 3,posL 0,posC 127,posR 255 // potentiomètre commande du palonnier (va de 107 à 180) sur carte servo device 14 { // L1 = 16383 * 2 32766 // L1 = L1 / 142 ( 142 = la course du potar quand il est remis à 0) = 230,74 L1 = 230 L0 = &palonnier - 65 // 207 à fond pédale droite 65 à fond gauche l0 va donc avoir une course de 142 C0 = &palonnier > 68 C1 = &palonnier < 74 if C0 and C1 // plage de centrage { &fs_pal = 0 } else { L0 = L0 * L1 L0 = L0 - 16383 L0 = LIMIT -16383 16383 0 &fs_pal = L0 } } Var 0266, name pot_ruddertab, Link iocard_analogic, Input 4, PosL 0, PosC 128, PosR 255 // Potentiomètre du rudder trim { L0 = &pot_ruddertab * 155 L0 = L0 - 19530 &Fs_rudder_tab = L0 / 1000 } var 267,name pot_lumehsi,link usb_analogic,input 1, posL 0,posC 127,posR 255 // potar luminosité de l'ehsi { &fs_lumehsi = &pot_lumehsi } var 268,name pot_lumeadi,link usb_analogic,input 2,posL 0,posC 127,posR 255 // potar luminosité de l'eadi { &fs_lumeadi = &pot_lumeadi } Var 0269, name pot_compens, Link usb_analogic, Input 3, PosL 0, PosC 128, PosR 255 // Pot compensateur du compas { L0 = &pot_compens * 30 &compensateur = L0 // &compensateur = 4000 l2 = &fs_compas L1 = &compensateur &compas_step = l2 * 100 &compas_step = &compas_step - L1 // avec -4000 je suis juste sur le cap hsi 36000 pour un tour IF &Compas_step < 36000 // correction nécessitée par l’ajustement du point 0 { &compas_step = 36000 + &compas_step } } var 270,name pot_son,link usb_analogic,device 2, input 4, posL 0,posC 127,posR 255 // potar essai variation volume carte servo device 14 { &vol_son1 = &pot_son / 2 &vol_son1 = limit 0 100 0 } var 272, name vol_son1 var 273,name pot_rateclimb,link usb_analogic,device 3, input 1, posL 0,posC 127,posR 255 // potar variation taux de montée cabine { l0 = &pot_rateclimb / 28 l0 = trunc l0 &lvar_rateclimb = l0 } // --------------------------------------------------------------- // | | // | SECTION SOUS ROUTINES | // | | // --------------------------------------------------------------- Var 0300, name ini_sw, Link SUBRUTINE // conformité interrupteurs avec variables { &GEAR = &GEAR_SW * 16383 &BATTERY = &BATT_SW &AVNCS = &AVNCS_SW &PKG_BRK = &PKG_BRK_SW * 32767 &PROP_SYNC = &PROP_SYNC_SW } Var 0301, name STAB_FLAPS_SND, Link SUBRUTINE // Alarme chauff stab/volets Var 0302, name Float32, Link SUBRUTINE // conversion du float32 de la var cabin_climb en entier pour pilotage du servo de la jauge { L0 = TESTBIT &Float32 ,31 IF L0 = 1 { &Signe = -1 } ELSE { &Signe = 1 } &exp = -127 L0 = TESTBIT &Float32 ,23 &exp = L0 + &exp L0 = TESTBIT &Float32 ,24 L0 = 2 * L0 &exp = L0 + &exp L0 = TESTBIT &Float32 ,25 L0 = 4 * L0 &exp = L0 + &exp L0 = TESTBIT &Float32 ,26 L0 = 8 * L0 &exp = L0 + &exp L0 = TESTBIT &Float32 ,27 L0 = 16 * L0 &exp = L0 + &exp L0 = TESTBIT &Float32 ,28 L0 = 32 * L0 &exp = L0 + &exp L0 = TESTBIT &Float32 ,29 L0 = 64 * L0 &exp = L0 + &exp L0 = TESTBIT &Float32 ,30 L0 = 128 * L0 &exp = L0 + &exp &Mantisse = 0 L0 = TESTBIT &Float32 ,22 L0 = L0 / 2 L0 = L0 * 10000000 &Mantisse = L0 + &Mantisse L0 = TESTBIT &Float32 ,21 L0 = L0 / 4 L0 = L0 * 10000000 &Mantisse = L0 + &Mantisse L0 = TESTBIT &Float32 ,20 L0 = L0 / 8 L0 = L0 * 10000000 &Mantisse = L0 + &Mantisse L0 = TESTBIT &Float32 ,19 L0 = L0 / 16 L0 = L0 * 10000000 &Mantisse = L0 + &Mantisse L0 = TESTBIT &Float32 ,18 L0 = L0 / 32 L0 = L0 * 10000000 &Mantisse = L0 + &Mantisse L0 = TESTBIT &Float32 ,17 L0 = L0 / 64 L0 = L0 * 10000000 &Mantisse = L0 + &Mantisse L0 = TESTBIT &Float32 ,16 L0 = L0 / 128 L0 = L0 * 10000000 &Mantisse = L0 + &Mantisse L0 = TESTBIT &Float32 ,15 L0 = L0 / 256 L0 = L0 * 10000000 &Mantisse = L0 + &Mantisse L0 = TESTBIT &Float32 ,14 L0 = L0 / 512 L0 = L0 * 10000000 &Mantisse = L0 + &Mantisse L0 = TESTBIT &Float32 ,13 L0 = L0 / 1024 L0 = L0 * 10000000 &Mantisse = L0 + &Mantisse L0 = TESTBIT &Float32 ,12 L0 = L0 / 2048 L0 = L0 * 10000000 &Mantisse = L0 + &Mantisse L0 = TESTBIT &Float32 ,11 L0 = L0 / 4096 L0 = L0 * 10000000 &Mantisse = L0 + &Mantisse L0 = TESTBIT &Float32 ,10 L0 = L0 / 8192 L0 = L0 * 10000000 &Mantisse = L0 + &Mantisse L0 = TESTBIT &Float32 ,9 L0 = L0 / 16384 L0 = L0 * 10000000 &Mantisse = L0 + &Mantisse L0 = TESTBIT &Float32 ,8 L0 = L0 / 32768 L0 = L0 * 10000000 &Mantisse = L0 + &Mantisse L0 = TESTBIT &Float32 ,7 L0 = L0 / 65536 L0 = L0 * 10000000 &Mantisse = L0 + &Mantisse L0 = TESTBIT &Float32 ,6 L0 = L0 / 131072 L0 = L0 * 10000000 &Mantisse = L0 + &Mantisse L0 = TESTBIT &Float32 ,5 L0 = L0 / 262144 L0 = L0 * 10000000 &Mantisse = L0 + &Mantisse L0 = TESTBIT &Float32 ,4 L0 = L0 / 524288 L0 = L0 * 10000000 &Mantisse = L0 + &Mantisse L0 = TESTBIT &Float32 ,3 L0 = L0 / 1048576 L0 = L0 * 10000000 &Mantisse = L0 + &Mantisse L0 = TESTBIT &Float32 ,2 L0 = L0 / 2097152 L0 = L0 * 10000000 &Mantisse = L0 + &Mantisse L0 = TESTBIT &Float32 ,1 L0 = L0 / 4194304 L0 = L0 * 10000000 &Mantisse = L0 + &Mantisse L0 = TESTBIT &Float32 ,0 L0 = L0 / 8388608 L0 = L0 * 10000000 &Mantisse = L0 + &Mantisse L0 = &Mantisse / 10000000 L0 = L0 + 1 L1 = POWER 2 ,&exp L2 = &Signe * L0 L2 = L2 * L1 &Resultat = L2 } Var 303, name DISP_OAT_COND, Link SUBRUTINE // Conditions d'affichage Displays OAT { IF &BATTERY = 1 // la batterie est sur ON { IF &AVNCS = 1 { IF &oat_CouF_P = 1 { L0 = &oat / 256 L0 = L0 * 9 L1 = L0 / 5 L2 = L1 + 32 // conversion C° en Farenheit &OAT_DIS = trunc L2 // affichage en farenheit &oat_CouF = 8 // affichage du F } ELSE { L0 = &OAT / 256 &OAT_DIS = trunc L0 // affichage en C° &oat_CouF = 9 // affichage du C } } ELSE { &OAT_DIS = -999999 // Afficheurs éteints &oat_CouF = -999999 // Afficheur C ou F éteint } } ELSE { &OAT_DIS = -999999 // Afficheurs éteints &oat_CouF = -999999 // Afficheur C ou F éteint } } Var 0304, name L_FEATHERING, Link SUBRUTINE // mise en drapeau manuelle { // if &l_feather_sw = 1 // micro switch manette gauche // { // if &l_eng_throttle < 2000 // { // if &l_eng_fflow <= 7000 // low iddle // { // // &l_prop = -4096 // } // } // } } Var 0305, name R_FEATHERING, Link SUBRUTINE // mise en drapeau manuelle { // if &r_feather_sw = 1 // micro switch manette gauche // { // if &r_eng_throttle < 2000 // { // if &r_eng_fflow <= 7000 // low iddle // { // // &r_prop = -4096 // } // } // } } var 0306, name tst_elevtrimsw, link SUBRUTINE { IF &BATTERY = 1 // Si la batterie est sur on { if &elev_trim_SW = 0 { &lvar_inter1 = clearbit 0 &TRIMOFF_LED = 1 // led verte annonciateurs } else { &lvar_inter1 = setbit 0 &trimoff_led = 0 } } } Var 0308, name Led_train, link subrutine { IF &BATTERY = 1 // si la batterie est sur ON { IF &NOSE_GEAR_POS > 16300 { &NOSE_GEAR_LED = 1 &GEAR_TRANS_LED = 0 } ELSE { IF &NOSE_GEAR_POS >= 1 { &NOSE_GEAR_LED = 0 &GEAR_TRANS_LED = 1 } ELSE { IF &NOSE_GEAR_POS = 0 { &NOSE_GEAR_LED = 0 &GEAR_TRANS_LED = 0 } } } IF &RIGHT_GEAR_POS > 16300 { &GEAR_TRANS_LED = 0 &RIGHT_GEAR_LED = DELAY 1 ,80 } ELSE { IF &RIGHT_GEAR_POS >= 1 { &RIGHT_GEAR_LED = 0 &GEAR_TRANS_LED = 1 } ELSE { IF &RIGHT_GEAR_POS = 0 { &RIGHT_GEAR_LED = 0 &GEAR_TRANS_LED = 0 } } } IF &LEFT_GEAR_POS > 16300 { &GEAR_TRANS_LED = 0 &LEFT_GEAR_LED = DELAY 1 ,160 } ELSE { IF &LEFT_GEAR_POS >= 1 { &LEFT_GEAR_LED = 0 &GEAR_TRANS_LED = 1 } ELSE { IF &LEFT_GEAR_POS = 0 { &LEFT_GEAR_LED = 0 &GEAR_TRANS_LED = 0 } } } } ELSE // si la batterie est off on éteint tout { &NOSE_GEAR_LED = 0 &RIGHT_GEAR_LED = 0 &LEFT_GEAR_LED = 0 &GEAR_TRANS_LED = 0 } } Var 0309, name al_rvsnotready, Link SUBRUTINE // alarme orange RVS NOT READY { if &gear = 16383 // si le train sorti { L0 = &l_prop + &R_PROP // ne doit pas être inférieur à 32000 L1 = &R_ENG_FFLOW + &L_ENG_FFLOW // = le total des manettes conditions lever 6000 + 6000 avec les 2 moteurs en route L2 = L0 + L1 IF L2 > 44000 { &rvs_led = 0 &rvsledtmp = 0 } else { if L1 > 11000 { &rvs_led = 1 &rvsledtmp = 1 } } } else { &rvs_led = 0 &rvsledtmp = 0 } } Var 0312, name AVIONIQUE, Link SUBRUTINE // Mise en route des instruments seulement si courant { &AVIONIQUE = &L_ENG_FIRING + &R_ENG_FIRING IF &AVIONIQUE >= 1 // Si un des 2 moteurs en route { &AVNCS = &AVNCS_SW // Ecrans allumés si inter ON } ELSE { &AVNCS = 0 // Les 2 moteurs arrêtés = écrans éteints } } Var 0313, name RADIO_DIS_COND, Link SUBRUTINE // Conditions affichage boitiers com1, nav1 et adf { IF &BATTERY = 0 // Si général off { &COM1_DIS = -999999 // Affichage off &com1_active = -999999 &Display_nav1 = -999999 // Affichage OFF &d_nav1stbye = -999999 // affichage standbye nav1 off &D_ADF1 = -999999 // Affichage OFF } IF &BATTERY = 1 // Si général on { IF &AVNCS = 0 // Si avionics off { l0 = &on_com1_sw l1 = &sq_com1_sw l2 = l0 + l1 if l2 > 0 // si commutateur com1 ou squelch est ON { &COM1_DIS = -999998 // Affichage com1 stbye ----- &com1_active = -999998 // Affichage com1 active ----- } else { &COM1_DIS = -999999 // Affichage com1 stbye off &com1_active = -999999 // Affichage com1 active off } if &POWER_NAV1_SW = 1 // si commutateur power nav1 ON { &Display_nav1 = -999998 // Affichage nav1 ----- } else // si commutateur power nav1 OFF { &Display_nav1 = -999999 // Affichage nav1 OFF } &D_ADF1 = -999998 // Affichage ADF ---- } } IF &BATTERY = 1 // Si général on { IF &AVNCS = 1 // Si avionics on { l0 = &on_com1_sw l1 = &sq_com1_sw l2 = l0 + l1 if l2 > 0 { L0 = frombcd &com1 &com1_active = L0 + 10000 // affichage active com1 L0 = frombcd &Fs_comstby &com1_dis = L0 + 10000 // Affichage standbye } else { &COM1_DIS = -999999 // Affichage com1 stbye off &com1_active = -999999 // Affichage com1 active off } if &POWER_NAV1_SW = 1 // si commutateur power nav1 ON { l0 = frombcd &fs_nav1 // on affiche nav1 &Display_nav1 = l0 + 10000 l1 = frombcd &fs_nav1stbye l1 = l1 + 10000 &d_nav1stbye = l1 } else // si commutateur power nav1 OFF { &Display_nav1 = -999999 // Affichage nav1 OFF &d_nav1stbye = -999999 } call &CalcADF1Freq &D_ADF1 = &ADF1Freq } } } Var 0314,name CALC_CODALT link subrutine // calcul du codeur altimétrique { if &CALC_CODALT > 499 // 49900 pieds = valeur max sur le vrai sélecteur d'altitude Collins pre-80c { &CALC_CODALT = 499 } if &CALC_CODALT < 0 { &CALC_CODALT = 0 } &ALT_SEL = &CALC_CODALT * 1997537 } Var 0315,name calc_course, link subrutine // calcul course { if &calc_course > 360 { &calc_course = &calc_course - 360 } if &calc_course <= 0 { &calc_course = &calc_course + 360 } &CRS_NAV1_SEL = &calc_course } Var 0316,name CAL_PROP, link subrutine // calcul du prop { } var 0317, name CalcADF1Freq Link Subrutine { L0 = &ADF1High * 10 // high * 10 &ADF1Freq = L0 + &ADF1Low // + decimal CALL &OutADF1 } Var 0318, name OutADF1 Link SUBRUTINE { &D_ADF1 = &ADF1Freq } var 0319, name CalcADF1LowR Link Subrutine { L0 = MOD &ADF1High 10 L0 = L0 * 10 &ADF1LowR = L0 + &ADF1Low } var 0320, name CalcADF1High Link Subrutine { L0 = DIV &ADF1LowR 10 L1 = &ADF1HighR * 10 &ADF1High = L0 + L1 } Var 0321, name calc_r_amps, Link subrutine // calcul charge et voltage droite { if &L_GAUGE_SW = 0 // si le poussoir gauche n'est pas enfoncé on affiche l'ampérage { L0 = &r_altamps * -1 // exemple pour 1600, çà donne - 1600 L0 = L0 / 100 // çà donne - 16 l0 = l0 * 7.2 // 7.2 c'est la course totale divisée par 100 çà donne - 115.2 if &r_altamps <> 0 { L0 = L0 + 920 // pour la décaller un peu plus à droite je prend 920 } else { L0 = L0 + 1020 // pour bien la mettre à zéro } L0 = LIMIT 300 1020 0 &r_gauge_volt = l0 } else // si le poussoir est enfoncé on affiche le voltage { if &genr_VOLTS > 0 { L0 = &genr_VOLTS * -1 l0 = l0 * 24 // la course totale servo 1020 - 300 divisée par le nombre de graduations 30 çà donne 24 L0 = L0 + 1020 L0 = LIMIT 300 1020 0 &r_gauge_volt = TIMER l0,-3,1 // pour que le servo se déplace lentement c'est plus réaliste } else { L0 = &FS_MAINBAT_BUS * -1 l0 = l0 / 100 // car il est sur 4 chiffres l0 = l0 * 24 // la course totale servo 1020 - 300 divisée par le nombre de graduations 30 çà donne 24 L0 = L0 + 1020 L0 = LIMIT 300 1020 0 &r_gauge_volt = TIMER l0,-4,1 // pour que le servo se déplace lentement c'est plus réaliste } } } Var 0322, name calc_l_amps, Link subrutine // calcul charge et voltage generatrice gauche { if &L_GAUGE_SW = 0 // si le poussoir n'est pas enfoncé on affiche l'ampérage { L0 = &l_altamps * -1 // exemple pour 1600, çà donne - 1600 L0 = L0 / 100 // çà donne - 16 l0 = l0 * 7.2 // 7.2 c'est la course totale divisée par 100 çà donne - 115.2 if &l_altamps <> 0 { L0 = L0 + 920 // pour la décaller un peu plus à droite je prend 920 } else { L0 = L0 + 1020 // pour bien la mettre à zéro } L0 = LIMIT 300 1020 0 &l_gauge_volt = l0 } else // si le poussoir est enfoncé on affiche le voltage { if &genL_VOLTS > 0 { L0 = &genL_VOLTS * -1 l0 = l0 * 24 // la course totale servo 1020 - 300 divisée par le nombre de graduations 30 çà donne 24 L0 = L0 + 1020 L0 = LIMIT 300 1020 0 &l_gauge_volt = TIMER l0,-4,1 // pour que le servo se déplace lentement c'est plus réaliste } else { L0 = &FS_MAINBAT_BUS * -1 l0 = l0 / 100 // car il est sur 4 chiffres l0 = l0 * 24 // la course totale servo 1020 - 300 divisée par le nombre de graduations 30 çà donne 24 L0 = L0 + 1020 L0 = LIMIT 300 1020 0 &l_gauge_volt = TIMER l0,-4,1 // pour que le servo se déplace lentement c'est plus réaliste } } } Var 0323 name CALC_HDG, link subrutine // calcul hdg { if &CALC_HDG > 360 { &CALC_HDG = &CALC_HDG - 360 } if &CALC_HDG <= 0 { &CALC_HDG = &CALC_HDG + 360 } l1 = &CALC_HDG * 182.04444 l0 = l1 + 1 &HDG_SEL = l0 } Var 0324, name APSYS, Link subrutine // routine pour le switch gps nav autopilot { // &gps_nav = &GPS_NAV_SW if &gps_nav = 1 // mode gps { &Display_nav1 = -999998 } else // mode nav { if &nav1or2 = 256 { l0 = frombcd &fs_nav1 // on affiche nav1 &Display_nav1 = l0 + 10000 } } } var 0325, name self_test_pa, link subrutine // routine de self test du PA quand on appuie sur le bouton PA ENG de la platine APP 65 A { &AP_APP65_LED = 1 // VOYANT VERT PA ENGAGE APP65A &AP_APP65tmp = 1 &AP_FCP65LED = 1 // VOYANT VERT AP FCP65A &AP_FCP65tmp = 1 &DIS_FCP65LED = 1 // VOYANT JAUNE DIS FCP65A &DIS_FCP65tmp = 1 &DIS_FCP65LED = delay 0,200 // VOYANT JAUNE DIS FCP65A &DIS_FCP65tmp = 0 &APDISAPP65_LED = 1 // VOYANT JAUNE PA DISENGAGE APP65A &APDISAPP65_LED = delay 0,200 // VOYANT JAUNE PA DISENGAGE APP65A &APDISAPP65tmp = 0 &trimrAPP65_LED = 1 // VOYANT ROUGE TRIM APP65A &trimrAPP65_LED = delay 0,200 // VOYANT ROUGE TRIM APP65A &REDAP_FCP65LED = 1 // VOYANT ROUGE AP FCP65A &REDAP_FCP65LED = delay 0,200 // VOYANT ROUGE AP FCP65A } Var 0326, name AP_GS_ALIVE, Link SUBRUTINE // ce qu'il y a à faire si réception glide slope { if &nav1_gs_flag = 1 // si réception du glideslope nav1 { if &AP_APPR = 1 // si le mode approche est enclenché { if &NAV1_GS_needle > 50 // si l'angle est compris entre 50 et 250 { if &NAV1_GS_needle < 250 { &GS_ARMFCPLED = 1 // allume VOYANT JAUNE GS ARM FCP65A &GS_ARMFCPtmp = 1 &GS_FCP65LED = 1 // allume la led verte GS } } else // le glide est capturé { &GS_ARMFCPLED = 0 // éteint VOYANT JAUNE GS ARM FCP65A &GS_ARMFCPtmp = 0 &play_sound = 21 // déclenche son glideslope } &GS_FCP65LED = 1 // allume la led verte GS &AP_GS_CAPT = 1 // passe le PA en mode capture de glide } } else { &GS_FCP65LED = 0 &AP_GS_CAPT = 0 // annule le mode capture de glide &GS_ARMFCPLED = 0 // éteint VOYANT JAUNE GS ARM FCP65A &GS_ARMFCPtmp = 0 } } Var 0327, name AP_ALT_SEL, Link SUBRUTINE // ce qu'il y a à faire si altitude sélectionnée est atteinte avec le mode alt sel enclenché { l0 = &alti - &alert_alti // altitude avion en mètres - altitude sélectionnée en mètres l1 = abs L0 &difference_alt = l1 // &différence_alt est là juste pour le déboggage if &fs_vs > 0 // si je suis en montée { if l1 < 92 // si la différence est inférieure à 91,44 mètres ( 300 pieds ) { &sound_alti = 1 } else { &sound_alti = 0 } if l1 < 305 // si la différence est inférieure à 304,8 mètres ( 1000 pieds ) { &sound_alti = 1 } else { &sound_alti = 0 } } else // je suis en descente { if l1 < 305 // si la différence est inférieure à 304,80 mètres ( 1000 pieds ) { &sound_alti = 1 } else { &sound_alti = 0 } // if l1 < 92 // si la différence est inférieure à 91,44 mètres ( 300 pieds ) // { // &sound_alti = 1 // } // else // { // &sound_alti = 0 // } } if &PA_ALT_SEL = 1 // si le mode alt sel est enclenché { if l1 > 300 // si la différence d'altitude excède 1000 pieds { &ALT_ARMFCPLED = 1 // allume VOYANT JAUNE ALT ARM FCP65A &ALTSEL_FCPLED = 1 // allume le voyant vert ALT &select_alt_LED = 0 // éteint le rappel d'alarme orange sur l'altimètre } if l1 > 98 // si la différence d'altitude excède 300 pieds mais est inférieure à 1000 pieds le voyant doit s'allumer { if l1 < 300 { if &select_alt_LED = 0 { //&sound_alti = 1 // &play_sound = 24 // le son alarm_selectalti doit être joué une fois // &play_sound = 0 } &ALT_ARMFCPLED = 1 // allume VOYANT JAUNE ALT ARM FCP65A &ALTSEL_FCPLED = 1 // allume le voyant vert ALT &select_alt_LED = 1 // allume le rappel d'alarme orange sur l'altimètre } } else // si la différence est inférieure à 300 pieds { &ALT_ARMFCPLED = 0 // éteint VOYANT JAUNE ALT ARM FCP65A &ALTSEL_FCPLED = 1 // allume le voyant vert ALT &select_alt_led = 0 // éteint le rappel d'alarme orange sur altimètre } if l1 = 0 // si l'altitude sélectionné = altitude de l'avion { &select_alt_LED = 1 &select_alt_LED = delay 0, 500 // s'éteint au bout de 5 secondes } } else { &ALTSEL_FCPLED = 0 // éteint le voyant vert ALT &ALT_ARMFCPLED = 0 // éteint VOYANT JAUNE ALT ARM FCP65A &select_alt_led = 0 } } var 0328,name cal_PALO, Link SUBRUTINE { L1 = 230 L0 = &palonnier - 65 // 207 à fond pédale droite 65 à fond gauche L0 = L0 * L1 L0 = L0 - 16383 L0 = LIMIT -16383 16383 0 &fs_pal = L0 } // --------------------------------------------------------------- // | | // | SECTION SOUS ROUTINES ALARMES | // | | // --------------------------------------------------------------- Var 0350, name boot_alarmes, Link SUBRUTINE // démarrage des voyant alarmes et beep batterie { IF &BATTERY = 1 // la batterie est sur ON { &AP_DISC_LED = 1 &AP_DISC_LEDtmp = 1 &L_OIL_PRES_LED = 1 &LOILPRESLEDtmp = 1 &ROILPRESLEDtmp = 1 &LFUEL_PRES_LED = 1 &LFUELPRESStmp = 1 &RFUEL_PRES_LED = 1 &RFUELPRESStmp = 1 &INVERTER_LED = 1 &INVERTERLEDtmp = 1 &PKG_BRK_LED = 1 &PROP_SYNC_LED = 1 &propsyncLEDtmp = 1 } else { &AP_DISC_LED = 0 &AP_DISC_LEDtmp = 0 &L_OIL_PRES_LED = 0 &LOILPRESLEDtmp = 0 &ROILPRESLEDtmp = 0 &LFUEL_PRES_LED = 0 &LFUELPRESStmp = 0 &RFUEL_PRES_LED = 0 &RFUELPRESStmp = 0 &INVERTER_LED = 0 &INVERTERLEDtmp = 0 &PKG_BRK_LED = 0 &PROP_SYNC_LED = 0 &propsyncLEDtmp = 0 &lDC_GEN_LED = 0 &rDC_GEN_LED = 0 &select_alt_LED = 0 // rappel d'alarme orange du sélecteur d'altitude sur altimètre } } Var 0351, name TEST_LEDS, Link SUBRUTINE { &AP_DISC_LED = &Test_alarm_sw OR &AP_DISC_LEDtmp &PKG_BRK_LED = &Test_alarm_sw OR &PKG_BRK // >la LED prend la valeur 32767 !!!! OK &INVERTER_LED = &Test_alarm_sw OR &INVERTERLEDtmp &L_OIL_PRES_LED = &Test_alarm_sw OR &LOILPRESLEDtmp &RBLAIR_failled = &test_alarm_sw OR &RBL_FAILledtmp &LBLAIR_failled = &test_alarm_sw OR &LBL_FAILledtmp &PROP_SYNC_LED = &Test_alarm_sw OR &propsyncLEDtmp &rvs_LED_temp = &Test_alarm_sw OR &rvs_LED &icing_led = &test_alarm_sw OR &icingledtmp &licevan_led = &test_alarm_sw OR &licevan_ledtmp &ricevan_led = &test_alarm_sw OR &ricevan_ledtmp &battcharg_led = &test_alarm_sw OR &batchargledtmp &EXTPOWER_LED = &test_alarm_sw OR &EXTPOWERLEDtmp &PITOTOFF_LED = &test_alarm_sw OR &pitotoffledtmp &LAUTOFEAT_LED = &test_alarm_sw OR &LAUTOFEALEDtmp &rAUTOFEAT_LED = &test_alarm_sw OR &rAUTOFEALEDtmp &LFUEL_PRES_LED = &Test_alarm_sw OR &LFUELPRESStmp &RFUEL_PRES_LED = &Test_alarm_sw OR &RFUELPRESStmp &FIRE_LEFT_LED = &Test_alarm_sw // OR &L_FIRE_SW &FIRE_RIGHT_LED = &Test_alarm_sw // OR &R_FIRE_SW &BEACON_LED = &test_alarm_sw OR &BEACON_LEDtmp &TRIMOFF_LED = &test_alarm_sw OR &TRIMOFF_LEDtmp &AIRCNDOFF_LED = &test_alarm_sw OR &AIRCNDOFLEDtmp &STROBES_LED = &test_alarm_sw OR &STROBES_LEDtmp &ricvanext_led = &test_alarm_sw OR &ricvanexledtmp &licvanext_led = &test_alarm_sw OR &licvanexledtmp &PASSOXYON_LED = &test_alarm_sw OR &PASSOXYLEDtmp &cli_landingled = &test_alarm_sw OR &clilandledtmp &navlight_led = &test_alarm_sw OR &navlightledtmp &cli_taxiled = &test_alarm_sw OR &clitaxiledtmp &LIGNITION_LED = &test_alarm_sw OR &lignitiledtmp &rIGNITION_LED = &test_alarm_sw OR &rignitiledtmp &lblairoff_led = &test_alarm_sw OR &lblairofledtmp &rblairoff_led = &test_alarm_sw OR &rblairofledtmp &CAUTLGND_LED = &test_alarm_sw OR &CAUTLGNDLEDtmp &FUELCROSS_LED = &test_alarm_sw OR &FUELCROSLEDtmp &LDC_GEN_LED = &test_alarm_sw OR &LDC_GEN_LEDtmp &RDC_GEN_LED = &test_alarm_sw OR &RDC_GEN_LEDtmp &HYDFLUID_LED = &test_alarm_sw or &hydfluidledtmp &dh_led = &test_alarm_sw or &dh_ledtmp } Var 0352, name al_gear, Link SUBRUTINE // alarme du train { if &N1_rengine < 70 // si % N1 moteur droit inférieur à 70 avec flaps down et train rentré on déclenche l'alarme { if &flaps > 0 { if &gear = 0 { &GEAR_TRANS_LED = 1 &flag_soundgear = 1 } } } if &N1_lengine < 70 // si % N1 moteur gauche inférieur à 70 avec flaps down et train rentré on déclenche l'alarme { if &flaps > 0 { if &gear = 0 { &GEAR_TRANS_LED = 1 &flag_soundgear = 1 } } } IF &FLAPS = 16383 // Flaps DN { if &gear = 0 // et train rentré { &GEAR_TRANS_LED = 1 // alarme ON &flag_soundgear = 1 } } IF &GEAR = 16383 { if &flaps = 0 { &GEAR_TRANS_LED = 0 &flag_soundgear = 0 } } } Var 0353, name al_prop_sync, Link SUBRUTINE // Alarme orange PROP SYNC ON { if &battery = 1 { IF &PROP_SYNC = 1 { IF &GEAR = 16383 { &PROP_SYNC_LED = 1 // Alarme orange &propsyncLEDtmp = 1 } IF &GEAR = 0 { &PROP_SYNC_LED = 0 &propsyncLEDtmp = 0 } } ELSE // si inter Prop Sync OFF { &PROP_SYNC_LED = 0 &propsyncLEDtmp = 0 } } else // si batterie off { &PROP_SYNC_LED = 0 &propsyncLEDtmp = 0 } } var 0354, name al_pressfuel, link subrutine // alarmes rouge pour la pression de carburant { if &battery = 1 { IF &l_press_fuel < 10 // selon manuel l'alarme rouge s'allume dès que la haute pression fuel tombe en dessous de 10 +- 1 psi { if &Lpompe_SW = 0 // et si standbye pomp = off input 42 { &LFUEL_PRES_LED = 1 &LFUELPRESStmp = 1 } else // sinon la standbye pump gauche est enclenchée -> alarme éteinte { // si coupe circuit on quand il ne seront plus en série avec les condition lever &LFUEL_PRES_LED = 0 &LFUELPRESStmp = 0 } if &r_XFEED_SW = 1 { &LFUEL_PRES_LED = 0 // les 2 voyants doivent s'éteindre si cross feed ON car cela active les 2 standbye pump &LFUELPRESStmp = 0 &rFUEL_PRES_LED = 0 &rFUELPRESStmp = 0 } } ELSE // si fluel flow gauche > 60 { if &Test_alarm_sw = 0 // pour éviter que l'alarme s'éteigne lors du test { &LFUEL_PRES_LED = 0 &LFUELPRESStmp = 0 } } IF &r_press_fuel < 10 { if &rpompe_sw = 0 // et si standbye pomp = off input 40 { &RFUEL_PRES_LED = 1 &RFUELPRESStmp = 1 } else { &RFUEL_PRES_LED = 0 &RFUELPRESStmp = 0 } if &l_XFEED_SW = 1 { &LFUEL_PRES_LED = 0 &LFUELPRESStmp = 0 &rFUEL_PRES_LED = 0 &rFUELPRESStmp = 0 } } ELSE // si fuel flow > 10 { if &Test_alarm_sw = 0 // pour éviter que l'alarme s'éteigne lors du test { &RFUEL_PRES_LED = 0 &RFUELPRESStmp = 0 } } } else // si la batterie est off { &LFUEL_PRES_LED = 0 &LFUELPRESStmp = 0 &RFUEL_PRES_LED = 0 &RFUELPRESStmp = 0 } } Var 0355,name AL_PRK_BRK, link subrutine // alarme orange parkink brake { IF &BATTERY = 0 // Si général off { &PKG_BRK_LED = 0 // led parking éteinte } else { &PKG_BRK_LED = &PKG_BRK } } var 0356, name al_press_huile, link subrutine // alarmes rouge pression huile moteurs { if &battery = 1 { IF &L_OIL_PRESS < 15000 { &L_OIL_PRES_LED = 1 &LOILPRESLEDtmp = 1 } ELSE { if &Test_alarm_sw = 0 // pour éviter que l'alarme s'éteigne lors du test { &L_OIL_PRES_LED = 0 &LOILPRESLEDtmp = 0 } } IF &R_OIL_PRESS < 15000 { &ROILPRESLEDtmp = 1 } ELSE { if &Test_alarm_sw = 0 // pour éviter que l'alarme s'éteigne lors du test { &ROILPRESLEDtmp = 0 } } } else { &L_OIL_PRES_LED = 0 &LOILPRESLEDtmp = 0 &ROILPRESLEDtmp = 0 } } Var 0357,name AL_AP, link subrutine // alarme rouge autopilot disconnect { IF &BATTERY = 0 // Si général off { &AP_DISC_LED = 0 // led autopilot disconnect éteinte &AP_DISC_LEDtmp = 0 } else // Si général on { IF &AP = 1 // et autopilot on { &AP_DISC_LED = 0 // led autopilot disconnect éteinte &AP_DISC_LEDtmp = 0 } else // si autopilot off { &AP_DISC_LED = 1 // led autopilot disconnect allumée &AP_DISC_LEDtmp = 1 &play_sound = 20 &play_sound = 0 } } } Var 0358, name al_air_cond_n1, Link SUBRUTINE // Alarme verte AIR COND N1 LOW { IF &BATTERY = 1 // Si général on { if &N1_rengine < 62 // d'après la doc le switch pour N1 low n'est que sur le moteur droit et n'est actif que si rpm inf à 62% { &AIRCNDOFF_LED = 1 &AIRCNDOFLEDtmp = 1 } else { if &Test_alarm_sw = 0 // pour éviter que l'alarme s'éteigne lors du test { &AIRCNDOFF_LED = 0 &AIRCNDOFLEDtmp = 0 } } } } var 0359, name PAN_sondepitot , link subrutine // fonction test sonde pitot grillée { if &ACFT_ON_GND = 1 // si avion au sol { if &pitot = 1 // si réchauffage pitot { &sonde_grillee = 1 } } if &ACFT_ON_GND = 0 // si avion est en l'air { } } Var 0360, name test_fcp65A, Link SUBRUTINE // test des leds platines app65A et fcp65A { &YAW_APP65_LED = &test_fcp65_sw OR &YAW_APP65tmp // VOYANT VERT YAW ENGAGE APP65A &YAWDAPP65_LED = &test_fcp65_sw OR &YAWDAPP65tmp // VOYANT JAUNE YAW DISENGAGE APP65A &AP_APP65_LED = &test_fcp65_sw OR &AP_APP65tmp // VOYANT VERT PA ENGAGE APP65A &APDISAPP65_LED = &test_fcp65_sw OR &APDISAPP65tmp // VOYANT JAUNE PA DISENGAGE APP65A &trimrAPP65_LED = &test_fcp65_sw // VOYANT ROUGE TRIM APP65A &A_AP_APP65_LED = &test_fcp65_sw // VOYANT JAUNE A APP65A &R_APP65_LED = &test_fcp65_sw // VOYANT JAUNE R DROIT APP65A &RE_APP65_LED = &test_fcp65_sw // VOYANT JAUNE E DROIT APP65A &120_APP65_LED = &test_fcp65_sw // VOYANT VERT 1/2 TOUR APP65A &SRAPP65_LED = &test_fcp65_sw // VOYANT VERT SR APP65A &trimjAPP65_LED = &test_fcp65_sw // VOYANT JAUNE TRIM APP65A &trimrAPP65_LED = &test_fcp65_sw // VOYANT ROUGE TRIM APP65A &GS_ARMFCPLED = &test_fcp65_sw OR &GS_ARMFCPtmp // VOYANT JAUNE GS ARM FCP65A &APPRARMFCPLED = &test_fcp65_sw OR &APPRARMFCPtmp // VOYANT JAUNE APPR ARM FCP65A &ALT_ARMFCPLED = &test_fcp65_sw OR &ALT_ARMFCPtmp // VOYANT JAUNE ALT ARM FCP65A &NAV_ARMFCPLED = &test_fcp65_sw OR &NAV_ARMFCPtmp // VOYANT JAUNE NAV ARM FCP65A &DSC_FCP65LED = &test_fcp65_sw OR &DSC_FCP65tmp // VOYANT VERT DSC FCP65A &CLM_FCP65LED = &test_fcp65_sw OR &CLM_FCP65tmp // VOYANT VERT CLM FCP65A &GS_FCP65LED = &test_fcp65_sw OR &GS_FCP65tmp // VOYANT VERT GS FCP65A &VS_FCP65LED = &test_fcp65_sw OR &VS_FCP65tmp // VOYANT VERT VS FCP65A &ALTSEL_FCPLED = &test_fcp65_sw // VOYANT VERT ALT SEL FCP65A &ALT_FCP65LED = &test_fcp65_sw // VOYANT VERT ALT FCP65A &120_FCP65LED = &test_fcp65_sw // VOYANT VERT 1/2 0 FCP65A &VNAV_FCP65LED = &test_fcp65_sw // VOYANT VERT VNAV FCP65A &BC_FCP65LED = &test_fcp65_sw // VOYANT VERT BC FCP65A &APPR_FCP65LED = &test_fcp65_sw // VOYANT VERT APPR FCP65A &NAV_FCP65LED = &test_fcp65_sw // VOYANT VERT NAV FCP65A &HDG_FCP65LED = &test_fcp65_sw // VOYANT VERT HDG FCP65A &AP_FCP65LED = &test_fcp65_sw OR &AP_FCP65tmp // VOYANT VERT AP FCP65A &DIS_FCP65LED = &test_fcp65_sw OR &DIS_FCP65tmp // VOYANT JAUNE DIS FCP65A &REDAP_FCP65LED = &test_fcp65_sw // VOYANT ROUGE AP FCP65A } Var 0361, name AL_LAUTO_IGNI, Link SUBRUTINE // Alarme Auto Ignition gauche { IF &L_AUTO_IGNISW = 1 { IF &L_ENG_TORQUE < 3276 // valeur pour Torque=400 { // &LIGNITION_LED = delay 1,300 // alarme verte L IGNITION ON } ELSE // si Torque >400 { if &Test_alarm_sw = 0 // pour éviter que l'alarme s'éteigne lors du test { // &LIGNITION_LED = 0 } } } ELSE // inter sur OFF { if &Test_alarm_sw = 0 // pour éviter que l'alarme s'éteigne lors du test { // &LIGNITION_LED = 0 } } } Var 0362, name AL_RAUTO_IGNI, Link SUBRUTINE // Alarme Auto Ignition droite { IF &R_AUTO_IGNISW = 1 { IF &R_ENG_TORQUE < 3276 // valeur pour Torque=400 { // &RIGNITION_LED = delay 1, 400 // alarme verte R IGNITION ON } ELSE // si Torque >400 { if &Test_alarm_sw = 0 // pour éviter que l'alarme s'éteigne lors du test { // &RIGNITION_LED = 0 } } } ELSE // inter sur OFF { if &Test_alarm_sw = 0 // pour éviter que l'alarme s'éteigne lors du test { // &RIGNITION_LED = 0 } } } Var 0363, name CAD, Link SUBRUTINE // fonction cold and dark qui initialise le simu { IF &CAD_SW = 1 { &servo_train = delay 9, 200 &servo_train = delay 0, 500 &AP_YD = 0 IF &PKG_BRK_SW = 1 { &PKG_BRK = 32767 // Frein de parking ON } ELSE { &PKG_BRK = 0 } // changement de la variable $07d6 pour init du sélecteur d'altitude du pa à la valeur sauvegardée dans le vol // pour être prise en compte par l'event offset du script altsel.lua // ------------------------------------------------------------------------------------------------------------ l0 = &alert_alti L1 = l0 + 100 &alert_alti = L1 &alerT_alti = delay L0,100 // ------------------------------------------------------------------------------------------------------------ IF &BATTERY = 1 { &OVH_12V = 0 // amène le 12 volt à l'overhead par la carte relai if &avncs = 0 { &flag_turnbank = 1 } else { &flag_turnbank = 0 } // &LIGHTS = SETBIT 5 instruments au max de luminosité if &l_eng_start = 0 // moteur gauche non démarré { if &r_eng_start = 0 // moteur droit non démarré { CALL &boot_alarmes // routine 350 } } if &genl_volts = 0 { &lDC_GEN_LED = 1 } if &genr_volts = 0 { &rDC_GEN_LED = 1 } } ELSE { &LIGHTS = CLEARBIT 5 &OVH_12V = 1 // coupe le 12 volt à l'overhead par la carte relai &INVERTER_LED = 0 // alarme rouge INVERTER éteinte &INVERTERLEDtmp = 0 &AP_DISC_LED = 0 &AP_DISC_LEDtmp = 0 &pwrdme_LED = 0 &rvs_LED = 0 &rvsledtmp = 0 &rDC_GEN_LED = 0 &lDC_GEN_LED = 0 &LANDING_LED = 0 &TAXILIGHT_LED = 0 &strobes_led = 0 // alarme verte strobe &STROBES_LEDtmp = 0 &NAVLIGHT_LED = 0 &navlightledtmp = 0 &LICEVAN_LED = 0 &licevan_ledtmp = 0 &LICVANEXT_LED = 0 &licvanexledtmp = 0 &RICEVAN_LED = 0 &ricevan_ledtmp = 0 &ricvanexledtmp = 0 &RICVANEXT_LED = 0 &PASSOXYON_LED = 0 &PASSOXYLEDtmp = 0 &R_ENG_FFLOW = 0 // Position "CutOff" et Firewall CutOff &L_ENG_FFLOW = 0 // Position "CutOff" et Firewall CutOff &icing_led = 0 &icingledtmp = 0 &flag_turnbank = 0 &light_beacon = 0 // lumière rouge beacon &PITOTOFF_LED = 0 // alarme orange pitot off &pitotoffledtmp = 0 &FUELCROSS_LED = 0 // alarme verte FUEL CROSSFEED &FUELCROSLEDtmp = 0 &PROP_SYNC_LED = 0 &propsyncLEDtmp = 0 &YAW_APP65_LED = 0 &YAW_APP65tmp = 0 &BATTCHARG_LED = 0 &batchargledtmp = 0 &extpower_led = 0 &extpowerledtmp = 0 &select_alt_led = 0 // rappel d'alarme orange du sélecteur d'altitude sur altimètre &RBLAIR_FAILled = 0 // alarme rouge bleed air fail &LBLAIR_FAILled = 0 // alarme rouge bleed air fail &ALT_WARN_LED = 0 // alarme rouge altitude warning &RBL_FAILledtmp = 0 &LBL_FAILledtmp = 0 &AIRCNDOFF_led = 0 &AIRCNDOFLEDtmp = 0 &HYDFLUID_led = 0 // sera remplacé par un voyant orange hyd fluid low &hydfluidledtmp = 0 &LAUTOFEAT_LED = 0 &LAUTOFEALEDtmp = 0 &rAUTOFEAT_LED = 0 &rAUTOFEALEDtmp = 0 &BEACON_LED = 0 // alarme verte beacon &BEACON_LEDtmp = 0 &TRIMOFF_LED = 0 &TRIMOFF_LEDtmp = 0 &clilandledtmp = 0 &clitaxiledtmp = 0 &LIGNITION_LED = 0 &RIGNITION_LED = 0 &lignitiledtmp = 0 &rignitiledtmp = 0 &lblairoff_led = 0 &rblairoff_led = 0 &lblairofledtmp = 0 &rblairofledtmp = 0 &CAUTLGND_LED = 0 &CAUTLGNDLEDtmp = 0 &VS_FCP65LED = 0 &AUDIO = CHANGEBIT 1 ,0 // mise à 0 des inters com panel audio pour P3DV4 &AUDIO = CHANGEBIT 2 ,0 &AUDIO = CHANGEBIT 3 ,0 &AUDIO = CHANGEBIT 4 ,0 &AUDIO = CHANGEBIT 6 ,0 &AUDIO = CHANGEBIT 7 ,0 &AP_YD = 0 &dh_led = 0 &dh_ledtmp = 0 } CALL &RADIO_DIS_COND call &calc_L_amps call &calc_r_amps call &led_train call &al_press_huile call &al_prk_brk call &al_pressfuel call &al_prop_sync call &alarm_dh &gauge_110Volts = 1022 // init de la jauge inverter à 0 &l_gauge_volt = 1020 // init de la jauge volts gauche à 0 &FS_pompes = 0 // éteint les pompes &play_sound = 0 // évite le son master warning au démarrage &dump_presscab = 1 // la cabine ne doit pas être pressurisée au démarrage &rDC_GEN_LED = 0 &lDC_GEN_LED = 0 &LVAR_crossfeed = 1 // pour que la var corresponde à l'inter au centre } } Var 0364, name GAZ_DROIT , Link SUBRUTINE // fonction de calcul de la commande gaz moteur droit potar de 54 à 255 177 en iddle 91 en butée avant reverse { l0 = &POT_R_power - 91 // pour remettre le potar à zéro // facteur de multiplication = 99.90 16384 / 164 = 99.90 164 = l'ampleur du potar (255 - 91) if &POT_R_power < 177 { l1 = l0 * 51 } else { if &POT_R_power < 194 { if &POT_R_power > 176 { l1 = &POT_R_power * 16 } } if &POT_R_power < 202 { if &POT_R_power > 193 { l1 = &POT_R_power * 24 } } if &POT_R_power < 210 { if &POT_R_power > 201 { l1 = &POT_R_power * 32 } } if &POT_R_power < 226 { if &POT_R_power > 209 { l1 = &POT_R_power * 48 } } if &POT_R_power > 225 { l1 = &POT_R_power * 64.25 } } C0 = &r_eng_antice = 1 // c0 = 1 si engine anti ice droit est engagé C1 = &RBLEEDAIR_SW = 1 // c1 = 1 si bleed air droit est enclenché if C0 AND C1 { &R_ENG_THROTTLE = l1 * 0.85 // - 15% } else { if C0 // si vanne ice enclenchée moteur - 10 % { &R_ENG_THROTTLE = l1 * 0.9 } else { if C1 // si bleed air enclenchée moteur - 5 % { &R_ENG_THROTTLE = l1 * 0.95 } else { &R_ENG_THROTTLE = l1 } } } // ----------------------------- // programmation des reverses // ----------------------------- IF &POT_R_power < 91 { IF &POT_R_power > 82 { if &ACFT_ON_GND = 1 // si avion au sol { &R_ENG_THROTTLE = 65406 } } } IF &POT_R_power < 83 { IF &POT_R_power > 73 { if &ACFT_ON_GND = 1 // si avion au sol { &R_ENG_THROTTLE = 64007 } } } IF &POT_R_power < 74 { IF &POT_R_power > 64 { if &ACFT_ON_GND = 1 // si avion au sol { &R_ENG_THROTTLE = 62708 } } } IF &POT_R_power < 65 { IF &POT_R_power > 50 { if &ACFT_ON_GND = 1 // si avion au sol { &R_ENG_THROTTLE = 61441 } } } } Var 0365, name GAZ_GAUCHE , Link SUBRUTINE // fonction de calcul de la commande gaz moteur gauche pot de 41 à 255 159 en iddle 74 en butée avant reverse { l0 = &POT_L_power - 74 // pour remettre le potar à zéro // facteur de multiplication = 90.51 16384 / 181 = 90.51 181 = l'ampleur du potar (255 - 74) if &POT_L_power < 160 { l1 = l0 * 51 } else { if &POT_L_power < 176 { if &POT_L_power > 158 { l1 = &POT_L_power * 17.81 } } if &POT_L_power < 186 { if &POT_L_power > 175 { l1 = &POT_L_power * 24 } } if &POT_L_power < 193 { if &POT_L_power > 185 { l1 = &POT_L_power * 32 } } if &POT_L_power < 209 { if &POT_L_power > 192 { l1 = &POT_L_power * 48 } } if &POT_L_power > 209 { l1 = &POT_L_power * 64.25 } } if &l_eng_antice = 0 { &L_ENG_THROTTLE = l1 } else // si vanne ice enclenchée moteur - 10 % { &L_ENG_THROTTLE = l1 * 0.9 } // ----------------------------- // programmation des reverses // ----------------------------- IF &POT_L_power < 72 { IF &POT_L_power > 66 { if &ACFT_ON_GND = 1 // si avion au sol { &L_ENG_THROTTLE = 65406 } } } IF &POT_L_power < 67 { IF &POT_L_power > 60 { if &ACFT_ON_GND = 1 // si avion au sol { &L_ENG_THROTTLE = 64007 } } } IF &POT_L_power < 61 { IF &POT_L_power > 54 { if &ACFT_ON_GND = 1 // si avion au sol { &L_ENG_THROTTLE = 62708 } } } IF &POT_L_power < 55 { IF &POT_L_power > 45 { if &ACFT_ON_GND = 1 // si avion au sol { &L_ENG_THROTTLE = 61441 } } } } var 0366, name al_bleedair, link subrutine // gestion des alarmes rouges et verte bleed air { IF &BATTERY = 1 { if &fs_rbl_airpsi < 18 { &RBL_FAILledtmp = 1 } else // si j'ai de la pression d'air à droite { if &RBLEEDAIR_SW = 0 // si l'inter bleed air valves droit est à OFF { &RBL_FAILledtmp = 1 &rblairofledtmp = 1 } else { if &Test_alarm_sw = 0 // pour éviter que l'alarme s'éteigne lors du test { &RBL_FAILledtmp = 0 &rblairofledtmp = 0 } } } if &fs_lbl_airpsi < 18 { &lBL_FAILledtmp = 1 } else { if &LBLEEDAIR_SW = 0 // si l'inter bleed air valves gauche est à OFF { &lBL_FAILledtmp = 1 &lblairofledtmp = 1 } else { if &Test_alarm_sw = 0 // pour éviter que l'alarme s'éteigne lors du test { &lBL_FAILledtmp = 0 &lblairofledtmp = 0 } } } } } var 0369, name al_land_light, link subrutine // allume les alarmes vertes landing et taxi light si train UP et lumières allumées { IF &GEAR < 16383 // si le train est rentré { C0 = TESTBIT &LIGHTS ,2 // si les feux d'atterrissage sont allumés C1 = testbit &lights ,3 // si les feux taxi sont allumés if c0 { &LANDING_LED = delay 1,1000 } else { &LANDING_LED = 0 } if c1 { &TAXILIGHT_LED = delay 1, 1000 } else { &TAXILIGHT_LED = 0 } } else // si train sorti { &LANDING_LED = 0 &TAXILIGHT_LED = 0 } } Var 0370, name al_autofeather, Link SUBRUTINE // alarme autofeather { if &AUTOFEATHER = 1 // si l'autofeather est armé { if &N1_lengine > 90 // si RPM N1 gauche est supérieur à 90 % { if &R_ENG_TORQUE > 6554 // si le torque moteur droit est supérieur à > 400 feet/lbs { &Lautofeat_led = 1 &lautofealedtmp = 1 // allumer voyant vert L autofeather gauche } else { &Lautofeat_led = 0 &lautofealedtmp = 0 // éteindre voyant vert L autofeather gauche } if &R_ENG_TORQUE < 3276 // si le torque moteur droit est inférieur à 200 feet/lbs { &Rautofeat_led = 0 // éteindre le voyant vert autofeather droit &Rautofealedtmp = 0 // éteindre voyant vert R autofeather droit &Rpropfeathflag = 1 // mettre l'hélice droite en drapeau } else { &Rpropfeathflag = 0 // remettre le flag à zéro pour permettre à l'hélice de retrouver sa position } } if &N1_rengine > 90 // si RPM N1 droit est supérieur à 90 % { if &L_ENG_TORQUE > 6554 // si le torque moteur gauche est supérieur à 400 feet/lbs { &Rautofeat_led = 1 &Rautofealedtmp = 1 // allumer voyant vert R autofeather droit } else { &Rautofeat_led = 0 &Rautofealedtmp = 0 // éteindre voyant vert R autofeather droit } if &L_ENG_TORQUE < 3276 // si le torque moteur gauche est inférieur à 200 feet/lbs { &Lautofeat_led = 0 // éteindre le voyant vert autofeather gauche &lautofealedtmp = 0 // éteindre voyant vert L autofeather gauche &Lpropfeathflag = 1 // mettre l'hélice gauche en drapeau } else { &Lpropfeathflag = 0 // remettre le flag à zéro pour permettre à l'hélice de retrouver sa position } } } else // si l'autofeather n'est pas armé { if &tstautofeat_sw = 1 // si l'inter autofeather est sur test je ne teste plus sur le rpm mais sur le torque puisque les micro contacts sont shuntés { if &L_ENG_TORQUE > 4000 // si le torque N1 gauche est supérieur à 50 % { if &R_ENG_TORQUE > 4000 // si le torque moteur droit est supérieur à 400 feet/lbs { &Lautofeat_led = 1 &Lautofealedtmp = 1 // allumer voyant vert L autofeather gauche } else { &Lautofeat_led = 0 &Lautofealedtmp = 0 // éteindre voyant vert L autofeather gauche } if &R_ENG_TORQUE < 3100 // si le torque moteur droit est inférieur à 200 feet/lbs { &Rautofeatclign = 1 // faire clignoter le voyant vert autofeather droit car le couple oscille &Rpropfeathflag = 1 // mettre l'hélice droite en drapeau } else { &Rautofeatclign = 0 &Rpropfeathflag = 0 // remettre le flag à zéro pour permettre à l'hélice de retrouver sa position } } if &R_ENG_TORQUE > 4000 // si torque N1 droit est supérieur à 50 % { if &L_ENG_TORQUE > 4000 // si le torque moteur gauche est supérieur à 400 feet/lbs { &Rautofeat_led = 1 &Rautofealedtmp = 1 // allumer voyant vert R autofeather droit } else { &Rautofeat_led = 0 &Rautofealedtmp = 0 // éteindre voyant vert R autofeather droit } if &L_ENG_TORQUE < 3100 // si le torque moteur gauche est inférieur à 200 feet/lbs { &Lautofeatclign = 1 // faire clignoter le voyant vert autofeather gauche car le couple oscille &Lpropfeathflag = 1 // mettre l'hélice gauche en drapeau } else { &Lautofeatclign = 0 &Lpropfeathflag = 0 // remettre le flag à zéro pour permettre à l'hélice de retrouver sa position } } } else { &Lautofeat_led = 0 &Lautofealedtmp = 0 // on éteint tous les voyants &Rautofeat_led = 0 &Rautofealedtmp = 0 } } } var 0371, name aff_adf, link subrutine { if &BATT_SW = 0 // si l'inter batt est off { &D_adf1 = -999999 // afficheurs éteints } else { if &AVNCS_SW = 0 // si l'inter avionics est off { &D_adf1 = -999998 // afficheurs tirets } else { IF &X_ADF1Low <> &ADF1Low // block values coming from rotary { &ADF1Low = &X_ADF1Low CALL &CalcADF1LowR CALL &CalcADF1Freq } L0 = FROMBCD &X_ADF1High IF &ADF1High <> L0 // block values coming from rotary { &ADF1High = L0 &ADF1HighR = DIV &ADF1High 10 CALL &CalcADF1LowR CALL &CalcADF1Freq } CALL &CalcADF1LowR CALL &CalcADF1Freq } } } var 0372, name alarm_DH, link subrutine // alarme décision altitude { L0 = &fs_ground_alti / 65536 if l0 < &decision_hight // déclenche le son alarme en dessous de l'altitude de décision par le flag dh { if &acft_on_gnd = 0 // si l'avion est en l'air { if &fs_vs < 0 // si on est en descente { &flag_DH = 1 } } else { &flag_DH = 0 } } else { &flag_DH = 0 } // &dh_led = &flag_DH &dh_ledtmp = &flag_dh if &fs_ground_alti > 131072 // supérieure a 2 mètres du sol { &acft_on_gnd = 0 } else { &acft_on_gnd = 1 } } // --------------------------------------------------------------- // | | // | SECTION INTERRUPTEURS | // | | // --------------------------------------------------------------- Var 0400, name BATT_SW, Link IOCARD_SW, Input 0 // Inter Master Battery { &BATTERY = &BATT_SW } Var 0401, name AVNCS_SW, Link IOCARD_SW, Input 1 // Inter Avionique { IF &BATTERY = 1 // Si général on { &AVNCS = &AVNCS_SW call &avionique call &DISP_OAT_COND if &avncs_sw = 1 { &fs_commande = 65569 &fs_commande = DELAY 0 ,10 // raz après 100 msec } } } Var 0402, name INVERTER_SW, Link IOCARD_SW, Input 2 // Commande Inverter { IF &BATTERY = 1 // Si général on { IF &INVERTER_SW = 1 { &INVERTER_LED = 0 // alarme rouge INVERTER éteinte &INVERTERLEDtmp = 0 &gauge_110Volts = timer 810, -2, 1 } ELSE { &INVERTER_LED = 1 &INVERTERLEDtmp = 1 &gauge_110Volts = 1022 } } } Var 0403, name R_ENG_ANTICE, Link IOCARD_SW, Input 3 // Engine anti ice droit { IF &BATTERY = 1 { if &r_eng_antice = 1 { &lvar_inter1 = setbit 2 &RICVANEXT_LED = delay 1,500 // alarme verte } else { &lvar_inter1 = clearbit 2 &RICVANEXT_LED = delay 0,200 // alarme verte } &ricevan_ledtmp = &r_eng_antice &ricevan_ledtmp = delay 0,1000 &ricvanexledtmp = delay &r_eng_antice,1200 } else { &RICEVAN_LED = 0 // alarme orange &ricevan_ledtmp = 0 &ricvanexledtmp = 0 } } Var 0404, name L_ENG_ANTICE, Link IOCARD_SW, Input 4 // Engine anti ice gauche { IF &BATTERY = 1 { if &l_eng_antice = 1 { &lvar_inter1 = setbit 3 &LICVANEXT_LED = delay 1,500 // allumage alarme verte } else { &lvar_inter1 = clearbit 3 &lICVANEXT_LED = delay 0,200 // extinction alarme verte } &licevan_ledtmp = &l_eng_antice &licevan_ledtmp = delay 0,1000 &licvanexledtmp = delay &l_eng_antice,1000 } else { &LICEVAN_LED = 0 &licevan_ledtmp = 0 &licvanexledtmp = 0 } } Var 0405, name L_AUTO_IGNISW, Link IOCARD_SW, Input 5 // Engine autoignition gauche { &lualautoignisw = &L_AUTO_ignisw } Var 0406, name R_AUTO_IGNISW, Link IOCARD_SW, Input 6 // Engine autoignition droit { &luarautoignisw = &R_AUTO_ignisw } Var 0407, name L_GEN_SW, Link IOCARD_SW, Input 7 // Inter générateur gauche { IF &L_GEN_SW = 1 { IF &BATTERY = 1 { &L_ENG_START = 2 // Géné 1 ON } } ELSE { &L_ENG_START = 0 } } Var 0408, name R_GEN_SW, Link IOCARD_SW, Input 8 // Inter générateur droit { IF &R_GEN_SW = 1 { IF &BATTERY = 1 { &R_ENG_START = 2 // Géné 2 ON call &calc_r_amps } } ELSE { &R_ENG_START = 0 } } Var 0409, name R_ENG_START_SW, Link IOCARD_SW, Input 9 // Inter démarrage moteur droit (2) { IF &BATTERY = 1 { IF &R_ENG_START_SW = 1 { &R_ENG_START = 1 // Démarrage moteur droit } ELSE { &R_ENG_START = 0 if &Test_alarm_sw = 0 // pour éviter que l'alarme s'éteigne lors du test { // &rIGNITION_LED = 0 } } } } Var 0410, name L_ENG_START_SW, Link IOCARD_SW, Input 10 // Inter démarrage moteur gauche (1) { IF &BATTERY = 1 { IF &L_ENG_START_SW = 1 { &L_ENG_START = 1 // démarrage moteur gauche } ELSE { &L_ENG_START = 0 if &Test_alarm_sw = 0 // pour éviter que l'alarme s'éteigne lors du test { // &lIGNITION_LED = 0 } } } } Var 0411, name AUTOFEATHER_SW, Link IOCARD_SW, Input 11 // Inter Autofeather { IF &BATTERY = 1 // Si général on { &AUTOFEATHER = &AUTOFEATHER_SW // Autofeather prend la valeur du switch } else // battery off { &AUTOFEATHER = 0 // Autofeather off } } Var 0412, name tstautofeat_sw, Link IOCARD_SW, Input 12 // inter test autofeather Var 0413, name AC_GAUGE_SW, Link IOCARD_SW, Input 13 // Poussoir de la gauge AC volts { IF &INVERTER_SW = 1 { if &ac_gauge_sw = 1 { &gauge_110Volts = 750 } else { &gauge_110Volts = 810 } } } Var 0414, name PUSHBACK_SW, Link IOCARD_SW, Input 14 // Commande du push back sur clavier ATC { IF &BATTERY = 1 // Si général on { if &pushback_sw = 1 { &KEYS = 11 // génère un shift + i pour push back cette combinaison de touche est déclarée dans les commandes FS &KEYS = 0 // ré-initialisation } } } Var 0415, name L_GAUGE_SW, Link IOCARD_SW, Input 15, type I // Poussoir de la gauge génératrice gauche { call &calc_L_amps call &calc_r_amps } var 0416, name PKG_BRK_SW, Link IOCARD_SW, Input 16 // Inter Parking Brake { C0 = &pot_L_brake > 150 C1 = &pot_R_brake > 150 if C0 and C1 // si j'enfonce les 2 pédales le frein de parking peut être actionné { &PKG_BRK = &pkg_brk_sw * 32767 // Frein de parking ON } call &AL_PRK_BRK // subroutine 351 } Var 0417, name GEAR_SW, Link IOCARD_SW, Input 17 // Inter manette de train { &GEAR = &GEAR_SW * 16383 // train sorti } Var 0418, name CAD_SW,Link IOCARD_SW, input 18 , type p // poussoir fast erect qui appelle la fonction 363 cold and dark { call &cad } Var 0419, name alti80_SW, Link IOCARD_SW, Input 19, type P // poussoir sur altimètre pour changement de Hp à Mb { &fs_nosmoke = &alti80_SW // var 341c utilisée pour changer mb en hp sur l'alti avec le script Lua } Var 0420, name POWER_NAV1_SW, Link IOCARD_SW, Input 20 // Commande de l'allumage de NAV1 { call &RADIO_DIS_COND } // clavier de l'atc Var 0421, name CLAV_ATC1, Link IOCARD_SW, Input 21 // touche 1 du clavier ATC { IF &BATTERY = 1 // Si général on { IF &CLAV_ATC1 = 1 { &KEYS = 21 // génère un &pour ATC &KEYS = 0 // ré-initialisation } ELSE { &KEYS = 21 &KEYS = 0 } } } Var 0422, name CLAV_ATC3, Link IOCARD_SW, Input 22 // touche 3 du clavier ATC { IF &BATTERY = 1 // Si général on { IF &CLAV_ATC3 = 1 { &KEYS = 23 // génère un " pour ATC &KEYS = 0 // ré-initialisation } ELSE { &KEYS = 23 &KEYS = 0 } } } Var 0423, name CLAV_ATC4, Link IOCARD_SW, Input 23 // touche 4 du clavier ATC { IF &BATTERY = 1 // Si général on { IF &CLAV_ATC4 = 1 { &KEYS = 24 // génère un ' pour ATC &KEYS = 0 // ré-initialisation } ELSE { &KEYS = 24 &KEYS = 0 } } } Var 0424, name CLAV_ATC5, Link IOCARD_SW, Input 24 // touche 5 du clavier ATC { IF &BATTERY = 1 // Si général on { IF &CLAV_ATC5 = 1 { &KEYS = 25 // génère un ( pour ATC &KEYS = 0 // ré-initialisation } ELSE { &KEYS = 25 &KEYS = 0 } } } Var 0425, name CLAV_ATC6, Link IOCARD_SW, Input 25 // touche 6 du clavier ATC { IF &BATTERY = 1 // Si général on { IF &CLAV_ATC6 = 1 { &KEYS = 26 // génère un - pour ATC &KEYS = 0 // ré-initialisation } ELSE { &KEYS = 26 &KEYS = 0 } } } Var 0426, name AtcWindow, Link IOCARD_SW, Input 26 // ouverture de la fenêtre ATC { &V_JOYSTICK = CHANGEBIT 0 ,&AtcWindow } // input 27 libre ? Var 0428, name plein_ltank_sw, Link IOCARD_SW, Input 28, Type i // bouton poussoir de plein réservoir gauche { // chaque seconde de fs dans la variable 096 on rajoute 40000 à la variable left_tank } Var 0429, name sw_com1_mem, Link IOCARD_SW, Input 29, Type P // Inter de défilement des fréquences mémorisée pour comm1 { IF &BATTERY = 1 // Si général on { IF &AVNCS = 1 // Si avionics on { // &luacptcom1 = &cpteur_com1 // pour transmettre le compteur au script lua &cpteur_com1 = rotate 1, 5 , 1 &com1_dis = &luastbyecom1 // récupère la valeur de fréquence du tableau de lua &Fs_comstby = tobcd &com1_dis // conversion } } } Var 0430, name comm1_act_sw, Link IOCARD_SW, Input 30, Type P // Inter de bascule comm 1 active standbye { IF &BATTERY = 1 // Si général on { IF &AVNCS = 1 // Si avionics on { L0 = frombcd &com1 &COM1 = TOBCD &COM1_DIS &com1_active = &com1_dis &com1_dis = L0 &Fs_comstby = tobcd &com1_dis // il faut que FSCOMstbye prenne la valeur de com1 } } } // input 31 libre ? Var 0432, name plein_rtank_sw, Link IOCARD_SW, Input 32, Type i // bouton poussoir de plein réservoir droit { // chaque seconde de fs dans la variable 096 on rajoute 40000 à la variable right_tank } Var 0433, name PROP_SYNC_SW, Link IOCARD_SW, Input 33 // Inter synchro hélices { &PROP_SYNC = &PROP_SYNC_SW CALL &al_prop_sync } // Var 0434 , Link IOCARD_SW, Input 34 Encodeur QNH // Var 0435 , Link IOCARD_SW, Input 35 Encodeur QNH Var 436, name Lauxtransf_sw, Link IOCARD_SW, Input 36 // auxilliaire transfert override gauche { if &Lauxtransf_sw = 1 { &LVAR_inter1 = clearbit 6 } else { &LVAR_inter1 = setbit 6 } } Var 437, name L_XFEED_SW, Link IOCARD_SW, Input 37 // Crossfeed du réservoir droit vers gauche { &fs_pompes = changebit 1 &L_xfeed_sw // car l'enclenchement du crosfeed droit ou gauche active les standbye pump &fs_pompes = changebit 0 &L_xfeed_sw IF &L_XFEED_SW = 1 { &LVAR_crossfeed = 0 // &FUEL_TANK_SEL = 15 // droite vers gauche if &battery = 1 { &FUELCROSS_LED = 1 // alarme verte FUEL CROSSFEED &FUELCROSLEDtmp = 1 } } else { &LVAR_crossfeed = 1 &FUELCROSS_LED = 0 // Alarme verte FUEL CROSSFEED &FUELCROSLEDtmp = 0 } call &al_pressfuel // pour rallumer l'alarme rouge press fuel si crossfeed à l'arrêt car le crossfeed active les standbye pompes } Var 438, name R_XFEED_SW, Link IOCARD_SW, Input 38 // Crossfeed du réservoir gauche vers le droit { &fs_pompes = changebit 1 &R_xfeed_sw // car l'enclenchement du crossfeed droit ou gauche active les standbye pump &fs_pompes = changebit 0 &R_xfeed_sw IF &R_XFEED_SW = 1 // Sélecteur vers la droite { &LVAR_crossfeed = 2 // &FUEL_TANK_SEL = 14 // gauche vers droite if &battery = 1 { &FUELCROSS_LED = 1 // Alarme verte FUEL CROSSFEED &FUELCROSLEDtmp = 1 } } else { &LVAR_crossfeed = 1 &FUELCROSS_LED = 0 // Alarme verte FUEL CROSSFEED &FUELCROSLEDtmp = 0 } call &al_pressfuel // pour rallumer l'alarme rouge press fuel si crossfeed à l'arrêt car le crossfeed active les standbye pompes } Var 439, name Rauxtransf_SW, Link IOCARD_SW, Input 39 // auxillaire transfert override droit { if &Rauxtransf_sw = 1 { &LVAR_inter1 = clearbit 7 } else { &LVAR_inter1 = setbit 7 } } Var 0440, name Rpompe_SW, Link IOCARD_SW, Input 40 // standbye pompe droite { // les pompes sont sur le hot battery bus et ne dépendent pas de bat on sur le main bus if &Rpompe_sw = 1 { &lvar_inter1 = setbit 5 } else { &lvar_inter1 = clearbit 5 } &fs_pompes = changebit 1 &Rpompe_sw call &al_pressfuel // pour éteindre l'alarme rouge si standbye pump On } Var 0441, name LEV_M_AUX_SW, Link IOCARD_SW, Input 41 // inter bascule lecture niveau main ou aux { call &calc_disp_tank } Var 0442, name Lpompe_SW, Link IOCARD_SW, Input 42 // standbye pompe gauche { if &Lpompe_sw = 1 { &lvar_inter1 = setbit 4 } else { &lvar_inter1 = clearbit 4 } &fs_pompes = changebit 0 &Lpompe_sw call &al_pressfuel } // input 43 encodeur VS // input 44 encodeur Vs // input 45 et 46 encodeur selecteur altitude Var 0447, name LEFT_RMI_SW, Link IOCARD_SW, Input 47 // INTER GAUCHE DU RMI { IF &BATTERY = 1 // Si général on { IF &left_rmi_sw = 1 { &fs_NAV_ADF_RMI = CHANGEBIT 0 &LEFT_RMI_SW // passage NAV1 et ADF aiguille jaune du rmi } } } Var 0448, name RESETWARN_SW,Link IOCARD_SW, input 48 , type p // poussoir pour validation alarme warning rouge, ce poussoir remet valid_warning à 1 { &valid_warning = 1 } Var 0449, name RSTCAUTION_SW,Link IOCARD_SW, input 49 , type p // poussoir pour validation alarme caution jaune, ce poussoir remet valid_caution à 1 { &valid_caution = 1 } Var 0450, name surf_deice_sw Link IOCARD_SW, Input 50, Type i // inter surface deice { IF &BATTERY = 1 { if &surf_deice_sw = 0 { &luasurfdeice = 1 } else { &luasurfdeice = 2 } } } Var 0451, name doors_SW Link IOCARD_SW, Input 51 Type i // ouverture fermeture des portes { if &doors_sw = 1 { &fs_doors = 255 &dump_presscab = 1 // pas de pressurisation possible } else { &fs_doors = 0 &dump_presscab = 0 } } Var 0452, name HD_LT_TEST_SW Link IOCARD_SW, Input 52, Type i // test des lampes rouges poignée de train { IF &BATTERY = 1 { &GEAR_TRANS_LED = &HD_LT_TEST_SW } } Var 0453, name oat_CouF_P, Link IOCARD_SW, Input 53, Type P // bouton poussoir de l'OAT pou C° ou F° { IF &AVNCS = 1 { IF &oat_CouF_P = 1 { L0 = &oat / 256 L0 = L0 * 9 L1 = L0 / 5 L2 = L1 + 32 // conversion C° en Farenheit &OAT_DIS = trunc L2 // affichage en farenheit &oat_CouF = 8 // affichage du F } ELSE { L0 = &OAT / 256 &OAT_DIS = trunc L0 // affichage en C° &oat_CouF = 9 // affichage du C } } } // de 54 à 62 1er groupe de fils du panneau bas droit pilote Var 0454, name strobelight_sw, Link IOCARD_SW, Input 54 // inter feux strobe { IF &BATTERY = 1 { &STROBES_LED = &strobelight_sw &STROBES_LEDtmp = &strobelight_sw IF &strobelight_SW = 1 { &LIGHTS = SETBIT 4 } ELSE { &LIGHTS = CLEARBIT 4 } } } Var 0455, name beaconlight_SW, Link IOCARD_SW, Input 55 // inter allumage feux beacon { if &battery = 1 { &BEACON_LED = &beaconlight_sw // alarme verte &beacon_ledtmp = &beaconlight_sw &light_beacon = &beaconlight_sw // lampe rouge beacon clignotante 1/2 seconde IF &beaconlight_SW = 1 { &LIGHTS = SETBIT 1 } ELSE { &LIGHTS = CLEARBIT 1 } } else { &light_beacon = 0 // lampe rouge beacon clignotante éteinte } } Var 0456, name LANDING_SW, Link IOCARD_SW Input 56 // Inter feux landing { IF &BATTERY = 1 { IF &LANDING_SW = 0 { &LIGHTS = SETBIT 2 } ELSE { &LIGHTS = CLEARBIT 2 } } call &al_land_light } Var 0457, name TAXI_SW, Link IOCARD_SW, Input 57 // Inter feux taxi { IF &BATTERY = 1 { IF &TAXI_SW = 0 { &LIGHTS = SETBIT 3 } ELSE { &LIGHTS = CLEARBIT 3 } } call &al_land_light } Var 0458, name ice_light_sw, Link IOCARD_SW, Input 58 // feux d'ailes pour détection de glace { IF &BATTERY = 1 // Si général on { IF &ice_light_sw = 0 { &LVAR_IceLighSW = 1 // pour B200 flightOne &LIGHTS = SETBIT 7 } ELSE { &LVAR_IceLighSW = 0 // pour B200 flightOne &LIGHTS = CLEARBIT 7 } } } Var 0459, name NAV_SW, Link IOCARD_SW, Input 59 // Inter feux navigation { IF &BATTERY = 1 { IF &nav_SW = 0 { &LIGHTS = SETBIT 0 &navLIGHT_LED = 1 &navlightledtmp = 1 } ELSE { &LIGHTS = CLEARBIT 0 &navLIGHT_LED = 0 &navlightledtmp = 0 } } } Var 0460, name recogn_sw, Link IOCARD_SW, Input 60 // inter feux de reconnaissance sur les ailes { IF &BATTERY = 1 // Si général on { IF &recogn_sw = 0 { &LIGHTS = SETBIT 6 } ELSE { &LIGHTS = CLEARBIT 6 } } } Var 0461, name tail_light_sw, Link IOCARD_SW, Input 61 // inter feux tail flood { IF &BATTERY = 1 { IF &tail_light_SW = 0 { &LIGHTS = SETBIT 8 } ELSE { &LIGHTS = CLEARBIT 8 } } } Var 0462, name PITOT_SW, Link IOCARD_SW Input 62, Type I // Inter réchauffage pitot { IF &BATTERY = 1 { &PITOT = &PITOT_SW call &PAN_sondepitot } } Var 0463, name ADF_AUDIO_SW, Link IOCARD_SW, Input 63, Type i // Audio ADF { &AUDIO = CHANGEBIT 0 ,&ADF_AUDIO_SW // Ecoute ADF } Var 0464, name Test_alarm_sw, Link IOCARD_SW, Input 64, Type i // Poussoir de test de toutes les alarmes { IF &BATTERY = 1 // Si général on { CALL &TEST_LEDS } } Var 0465, name DME_AUDIO_SW, Link IOCARD_SW, Input 65, Type I // Audio DME { if &dme_AUDIO_SW = 1 { &AUDIO = CHANGEBIT 1 ,1 // Ecoute dme } else { &AUDIO = CHANGEBIT 1 ,0 } } Var 0466, name Apropdeice_sw, Link IOCARD_SW, Input 66 // inter dégivrage helice auto { &LVApropdeice = &Apropdeice_sw } Var 0467, name MKR_AUDIO_SW, Link IOCARD_SW, Input 67, Type i // Audio MKR { if &mkr_AUDIO_SW = 1 { &AUDIO = CHANGEBIT 2 ,1 // Ecoute mkr } else { &AUDIO = CHANGEBIT 2 ,0 } } Var 0468, name NAV2_AUDIO_SW, Link IOCARD_SW, Input 68, Type i // Audio NAV2 { // rajouter test bus volts > 1700 &AUDIO = CHANGEBIT 3 ,&NAV2_AUDIO_SW // Ecoute nav2 } Var 0469, name NAV1_AUDIO_SW, Link IOCARD_SW, Input 69,Type I // Audio NAV1 { if &NAV1_AUDIO_SW = 1 { &AUDIO = CHANGEBIT 4 ,1 // Ecoute nav1 } else { &AUDIO = CHANGEBIT 4 ,0 } } Var 0470, name COM2_AUDIO_SW, Link IOCARD_SW, Input 70 ,Type I // Audio COM2 { if &com2_AUDIO_SW = 1 { &AUDIO = CHANGEBIT 6 ,1 // Ecoute com2 } else { &AUDIO = CHANGEBIT 6 ,0 } } Var 0471, name COM1_AUDIO_SW, Link IOCARD_SW, Input 71 ,Type I // Audio COM1 { if &com1_AUDIO_SW = 1 { &AUDIO = CHANGEBIT 7 ,1 // Ecoute com1 } else { &AUDIO = CHANGEBIT 7 ,0 } } Var 0472, name RIGHT_RMI_SW, Link IOCARD_SW, device 2, Input 60 // non actif INTER DROIT DU RMI { IF &BATTERY = 1 // Si général on { IF &right_rmi_sw = 1 { &fs_NAV_ADF_RMI = CHANGEBIT 1 &right_rmi_sw // passage NAV2 et ADF aiguille verte du rmi } } } // --------------------------------------------------------------- // | | // | SECTION ENCODEURS | // | | // --------------------------------------------------------------- Var 0502, name vs_ROT, Link IOCARD_ENCODER, Input 43, Aceleration 2, Type 2 // Encodeur vs { IF &BATTERY = 1 // Si général on { l0 = &vs_rot * 100 &VERT_SPEED_SEL = &Vert_speed_sel + L0 &PLAY_SOUND = 3 // son n°3 clic vs &PLAY_SOUND = 0 // ràz } } Var 0504, name QNH_ROT, Link IOCARD_ENCODER, Input 34, Aceleration 2, Type 2 // Encodeur QNH by Nico entrée 34 { IF &BATTERY = 1 // Si général on { IF &AVNCS = 1 // Si avionics on { L0 = &QNH_ROT IF L0 > 0 // à droite { &fs_commande = 65883 &fs_commande = DELAY 0 ,10 // raz après 100 msec } ELSE { IF L0 < 0 // à gauche { &fs_commande = 65884 &fs_commande = DELAY 0 ,10 } } } } } Var 0506 name RO_ALT_SEL Link IOCARD_encoder, input 45, Aceleration 2, Type 2 // encodeur sélection altitude { L2 = &alt_sel / 1997537 // pour éviter que la manip de l'encodeur fasse repasser à zéro &CALC_CODALT = L2 + &RO_ALT_SEL } // --------------------------------------------------------------- // | | // | SECTION AFFICHAGE DISPLAY | // | | // --------------------------------------------------------------- Var 0601, name Display_nav1 Link IOCARD_DISPLAY Digit 0 Numbers 5 // affichage display nav1 Var 0602, name D_ADF1 Link IOCARD_DISPLAY Digit 5 Numbers 4 // affichage adf Var 0603, name D_NAV1STBYE Link IOCARD_DISPLAY Digit 9 Numbers 5 // affichage standbye nav1 Var 0604, name COM1_DIS, Link IOCARD_DISPLAY, Digit 16, Numbers 5 // affichage COM1 STANDBYE Var 0605, name COM1_ACTIVE, Link IOCARD_DISPLAY, Digit 21, Numbers 5 // affichage COM1 ACTIVE Var 0606, name oat_CouF, Link IOCARD_DISPLAY, Digit 26, Numbers 1 // Affichage lettre Cou F Temp extérieure Var 0607, name OAT_DIS, Link IOCARD_DISPLAY, Digit 27, Numbers 4 // Affichage Temp. extérieure // --------------------------------------------------------------- // | | // | SECTION LED | // | | // --------------------------------------------------------------- // les outputs qui ne servent plus 14,16,22,33,36,37,38,39,41,43 Var 0711, name Lnotransf_led, Link IOCARD_OUT,Output 11 // Alarme orange gauche no transfert panneau carburant Var 0712, name Rnotransf_led, Link IOCARD_OUT,Output 12 // Alarme orange droite no transfert panneau carburant Var 0713, name RFUEL_PRES_LED, Link IOCARD_OUT,Output 13 // Alarme rouge pression carburant droite { &MASTER_WARNING = CHANGEBIT 1 ,&RFUEL_PRES_LED if &RFUEL_PRES_LED = 1 { &valid_warning = 0 // pour allumer la led warning en attentant la validation de l'alarme par le poussoir } } Var 0715, name FIRE_RIGHT_LED, Link IOCARD_OUT, Output 15 // Alarme rouge FIRE R ENG { &MASTER_WARNING = CHANGEBIT 2 ,&FIRE_RIGHT_LED if &FIRE_RIGHT_LED = 1 { &valid_warning = 0 // pour allumer la led warning en attentant la validation de l'alarme par le poussoir } } Var 0716, name L_OIL_PRES_LED, Link IOCARD_OUT, Output 16 // Alarme rouge L oil press ne sert plus Var 0717, name AP_DISC_LED, Link IOCARD_OUT,Output 17 // Alarme rouge AP DISC { &MASTER_WARNING = CHANGEBIT 4 ,&AP_DISC_LED if &AP_DISC_LED = 1 { &valid_warning = 0 // pour allumer la led warning en attentant la validation de l'alarme par le poussoir } } Var 0718, name INVERTER_LED, Link IOCARD_OUT,Output 18 // Alarme rouge INVERTER { &MASTER_WARNING = CHANGEBIT 5 ,&INVERTER_LED if &INVERTER_LED = 1 { &valid_warning = 0 // pour allumer la led warning en attentant la validation de l'alarme par le poussoir } } Var 0719, name FIRE_LEFT_LED, Link IOCARD_OUT, Output 19 // Alarme rouge FIRE L ENG { &MASTER_WARNING = CHANGEBIT 2 ,&FIRE_LEFT_LED if &FIRE_LEFT_LED = 1 { &valid_warning = 0 // pour allumer la led warning en attentant la validation de l'alarme par le poussoir } } Var 0720, name ALT_WARN_LED, Link IOCARD_OUT, Output 20 // Alarme rouge ALTITUDE ALERTE pour la pressurisation cabine { &MASTER_WARNING = CHANGEBIT 10 ,&alt_warn_led if &alt_warn_led = 1 { &valid_warning = 0 // pour allumer la led warning en attentant la validation de l'alarme par le poussoir } } Var 0721, name APTRIMFAIL_LED, Link IOCARD_OUT, Output 21 // Alarme rouge AP TRIM FAIL Var 0723, name RBLAIR_FAILled, Link IOCARD_OUT,Output 23 // Alarme rouge r bleed AIR fail { &MASTER_WARNING = CHANGEBIT 7 ,&RBLAIR_FAILled if &RBLAIR_FAILled = 1 { &valid_warning = 0 // pour allumer la led warning en attentant la validation de l'alarme par le poussoir } } Var 0724, name LBLAIR_FAILled, Link IOCARD_OUT,Output 24 // Alarme rouge l bleed AIR fail { &MASTER_WARNING = CHANGEBIT 8 ,&LBLAIR_FAILled if &LBLAIR_FAILled = 1 { &valid_warning = 0 // pour allumer la led warning en attentant la validation de l'alarme par le poussoir } } Var 0725, name LFUEL_PRES_LED, Link IOCARD_OUT,Output 25 // Alarme rouge pression carburant gauche { &MASTER_WARNING = CHANGEBIT 9 ,&LFUEL_PRES_LED if &LFUEL_PRES_LED = 1 { &valid_warning = 0 // pour allumer la led warning en attentant la validation de l'alarme par le poussoir } } Var 0726, name light_beacon, Link IOCARD_OUT,Output 26 // lumière rouge clignotante beacon Var 0727, name GEAR_TRANS_LED, Link IOCARD_OUT, Output 27 // Voyant rouge train en transit Var 0728, name NOSE_GEAR_LED, Link IOCARD_OUT, Output 28 // Voyant vert train avant sorti Var 0729, name LEFT_GEAR_LED, Link IOCARD_OUT, Output 29 // Voyant vert train gauche sorti Var 0730, name RIGHT_GEAR_LED, Link IOCARD_OUT, Output 30 // Voyant vert train droit sorti Var 0731, name WARNING_LED, Link IOCARD_OUT, Output 31 // Alarme Master Warning Var 0732, name OVH_12V, Link IOCARD_OUT, Output 32 // 12 volts sur l'overhead si batt on Var 0734, name R_notransf_led, Link IOCARD_OUT,Output 34 // voyant no transfert droit sur panneau carburant var 0735, name L_notransf_led, Link IOCARD_OUT,Output 35 // voyant no transfert gauche sur panneau carburant Var 0740, name flag_turnbank, Link IOCARD_OUT,Output 40 // flag rouge arrêt du turn and bank Var 0741, name dh_LED, Link IOCARD_OUT,Output 41 // led orange dh Var 0743, name select_alt_LED, Link IOCARD_OUT, Output 42 // LED alerte selecteur altitude Var 0744, name Outer_Mkr_LED, Link IOCARD_OUT, Output 44 // LED Outer Marker Var 0745, name Middle_Mkr_LEd, Link IOCARD_OUT, Output 45 // LED Middle Marker Var 0746, name Inner_Mkr_LED, Link IOCARD_OUT, Output 46 // LED Inner Marker Var 0747, name pwrdme_LED, Link IOCARD_OUT, Output 47 // voyant power dme sera utilisé pour le voyant DH // ----------------------------------- // voyants des Fire Ext du glareshield // ----------------------------------- Var 0749, name R_eng_fire_LED, Link IOCARD_OUT, Output 49 // voyant rouge eng fire ext de droite Var 0750, name R_OK_fire_LED, Link IOCARD_OUT, Output 50 // voyant vert OK eng fire ext de droite Var 0751, name R_D_fire_LED, Link IOCARD_OUT, Output 51 // voyant jaune D eng fire ext de droite Var 0752, name L_OK_fire_LED, Link IOCARD_OUT, Output 52 // voyant vert OK eng fire ext de gauche Var 0753, name L_D_fire_LED, Link IOCARD_OUT, Output 53 // voyant jaune D eng fire ext de gauche Var 0754, name L_eng_fire_LED, Link IOCARD_OUT, Output 54 // voyant rouge eng fire ext de gauche Var 0762, name O_nav1DP Link IOCARD_OUT, Device 1, Output 62 // point decimal nav 1 Var 0763, name CAUTION_LED, Link IOCARD_OUT, Output 33 // Renvoi d'alarme Master Caution jaune clignotant sur glareshield // --------------------------------------------------------------- // | | // | SECTION VARIABLES INDIVIDUELLES | // | | // --------------------------------------------------------------- Var 0900, name WNDSHLD_TIMER, Value 0 // Temporisateur pour chauff pare-brise Var 0901, name cligno_alti, Value 0 // clignotant rapide pour l'alarme orange du codeur altimétrique var 0902, name togglepitot, value 0 // variable pour l'état du blocage pitot Var 0904, name WING_DEICE // Dégivrage des ailes Var 0905, name L_ICE_VANE // Volet anti-glace moteur gauche { } Var 0906, name R_ICE_VANE // Volet anti-glace moteur droit { } var 0907, name YAW_DA_Mode // variable pour bascule YAW DAMPER { &AP_YD = &YAW_DA_MODE } Var 0908, name MASTER_WARNING // Commande de l'alarme WARNING Var 0909, name CAUTION_WARN // Commande de l'alarme CAUTION var 0910, name clignoseconde var 0911, name clignodemisec // clignotant 1/2 seconde { &clignoquartsec = 1 &clignoquartsec = delay 0, 15 if &battery = 1 { if &valid_warning = 0 // si le poussoir n'a pas été poussé pour valider l'alarme rouge { IF &MASTER_WARNING > 1 // si au moins 1 alarme rouge ON la led Warning clignote à la demi seconde { &WARNING_LED = &clignodemisec } } else // si le poussoir a été enfoncé pour valider l'alarme rouge { &WARNING_LED = 0 } if &valid_caution = 0 // si le poussoir n'a pas été poussé pour valider l'alarme jaune { IF &caution_warn > 1 // si au moins 1 alarme jaune ON la led caution clignote à la demi seconde { &CAUTION_LED = &clignodemisec } } else // si le poussoir a été enfoncé pour valider l'alarme jaune { &CAUTION_LED = 0 } if &beaconlight_SW = 1 { &light_beacon = &clignodemisec } else { if &Test_alarm_sw = 0 // pour éviter que l'alarme beacon s'éteigne lors du test { &light_beacon = 0 } } if &rvs_led = 1 // clignotement de l'alarme jaune RVS not ready { &rvs_led_temp = &clignodemisec } else { if &Test_alarm_sw = 0 // pour éviter que l'alarme rvs s'éteigne lors du test { &rvs_led_temp = 0 } } if &outer_mkr = 1 { &outer_mkr_led = &clignodemisec } else { if &Test_alarm_sw = 0 // pour éviter que l'alarme ne s'éteigne lors du test { &outer_mkr_led = 0 } } if &Lautofeatclign = 1 { &Lautofeat_led = &clignodemisec } else { if &Test_alarm_sw = 0 // pour éviter que l'alarme ne s'éteigne lors du test { &Lautofeat_led = 0 } } if &Rautofeatclign = 1 { &Rautofeat_led = &clignodemisec } else { if &Test_alarm_sw = 0 // pour éviter que l'alarme ne s'éteigne lors du test { &Rautofeat_led = 0 } } } else // si battery off { &outer_mkr_led = 0 &rvs_led_temp = 0 &light_beacon = 0 if &Test_alarm_sw = 0 // pour éviter que l'alarme rvs s'éteigne lors du test { &rvs_led_temp = 0 &rvsledtmp = 0 } &WARNING_LED = 0 &CAUTION_LED = 0 &valid_warning = 1 } } var 0912, name clignoquartsec // clignotant quart de seconde { &clignohuitsec = 1 &clignohuitsec = delay 0, 7 if &flag_dh = 1 { &dh_led = &clignoquartsec &dh_ledtmp = 1 } else { if &Test_alarm_sw = 0 // pour éviter que l'alarme ne s'éteigne lors du test { &dh_led = 0 &dh_ledtmp = 0 } } if &middle_mkr = 1 { &middle_mkr_led = &clignoquartsec } else { if &Test_alarm_sw = 0 // pour éviter que l'alarme ne s'éteigne lors du test { &middle_mkr_led = 0 } } if &LANDING_LED = 1 { &cli_landingled = &clignoquartsec &clilandledtmp = 1 } else { if &Test_alarm_sw = 0 // pour éviter que l'alarme landing light s'éteigne lors du test { &cli_landingled = 0 &clilandledtmp = 0 } } if &TAXILIGHT_LED = 1 { &cli_taxiled = &clignoquartsec } else { if &Test_alarm_sw = 0 // pour éviter que l'alarme taxi light s'éteigne lors du test { &cli_taxiled = 0 } } if &cliapdis65 = 1 { &APDISAPP65_LED = &clignoquartsec // fait clignoter le voyant dis de la platine app65 et fcp65 pendant 5 secondes } if &cliYAWDAPP65 = 1 { &YAWDAPP65_LED = &clignoquartsec // fait clignoter le voyant dis du yawdamper de la platine app65 pendant 5 secondes } } var 0913,name clignohuitsec // clignotant huitième de seconde { call &cal_palo } var 0914, name cpteur_5sec var 0915, name cpteur_com1 // compteur pour incrémentation défilement fréquences com1 { &luacptcom1 = delay &cpteur_com1,200 // pour transmettre le compteur au script lua en décalé pour avoir le temps de transmettre par lua à l'arduino (channel mem ) } Var 0916, name nav1_dis // --------------------------------- // vars pour la routine float32 Var 0917, name Signe Var 0918, name exp Var 0919, name Mantisse Var 0920, name Resultat { L0 = &resultat * -1 l0 = L0 / 9 L0 = L0 + 450 L0 = LIMIT 100 1020 0 &servo_climb = L0 } // ---------------------------------- Var 0921, name PLAY_SOUND, Link SOUND // Lance un fichier son Var 0922, name STOP_SOUND, Link SOUND, Type S // arrête un fichier son en boucle Var 0923, name ADF1High // FSUIPC ADF value high: 3 digits Var 0924, name ADF1Low // FSUIPC ADF value: 1 digit var 0925, name ADF1Freq // total (needed for display): 4 digits Var 0926, name ADF1HighR // higher TWO digits controlled by rotarie Var 0927, name ADF1LowR // lower TWO digits controlled by rotarie Var 0929, name comm1Mode // 0 = Low, 1 = High pour bascule entier/decimal comm1 var 0930, name calc_trim var 0931,name LFUELPRESStmp // variable tampon pour le test alarme pression carburant gauche var 0932,name RFUELPRESStmp // variable tampon pour le test alarme pression carburant droit var 0933,name INVERTERLEDtmp // variable tampon pour le test alarme inverter var 0934,name AP_DISC_LEDtmp // variable tampon pour l'alarme autopilot disconnect var 0935,name LOILPRESLEDtmp // variable tampon pour le test alarme huile var 0936,name ROILPRESLEDtmp // variable tampon pour le test alarme huile var 0937,name propsyncLEDtmp // variable tampon pour le test alarme propsync var 0938,name rvsLEDtmp // variable tampon pour le test alarme rvs not ready var 0939,name icingledtmp // variable tampon pour le test alarme icing var 0940,name licevan_LEDtmp // variable tampon pour le test alarme l ice vanne var 0941,name ricevan_LEDtmp // variable tampon pour le test alarme l ice vanne var 0942,name hydfluidledtmp // variable tampon pour le test alarme hyd fluid low var 0943,name batchargLEDtmp // variable tampon pour le test alarme batt charge var 0944,name extpowerledtmp var 0945,name pitotoffledtmp var 0946,name RAUTOFEALEDtmp var 0947,name LAUTOFEALEDtmp var 0948,name BEACON_LEDtmp var 0949,name TRIMOFF_LEDtmp var 0950,name AIRCNDOFLEDtmp var 0951,name STROBES_LEDtmp var 0952,name ricvanexledtmp var 0953,name licvanexledtmp var 0954,name passoxyledtmp var 0955,name clilandledtmp var 0956,name navlightledtmp var 0957,name clitaxiledtmp var 0958,name lignitiledtmp var 0959,name rignitiledtmp var 0960,name lblairofledtmp var 0961,name rblairofledtmp var 0962,name CAUTLGNDLEDtmp var 0963,name FUELCROSLEDtmp var 0964,name RBL_FAILledtmp // variable tampon pour alarmes rouge BLAIR FAIL var 0965,name LBL_FAILledtmp var 0966,name RDC_GEN_LEDtmp var 0967,name LDC_GEN_LEDtmp var 0968,name GS_ARMFCPtmp var 0969,name APPRARMFCPtmp var 0970,name ALT_ARMFCPtmp var 0971,name NAV_ARMFCPtmp var 0972,name DSC_FCP65tmp var 0973,name CLM_FCP65tmp var 0974,name GS_FCP65tmp var 0975,name VS_FCP65tmp var 0976,name AP_FCP65tmp var 0977,name AP_APP65tmp var 0978,name YAWDAPP65tmp var 0979,name YAW_APP65tmp var 0980,name APDISAPP65tmp var 0981,name cliapdis65 // variable pour le clignotement du voyant dis AP sur les platines APP65A et FCP65A var 0982,name DIS_FCP65tmp var 0983,name cliYAWDAPP65 // variable pour le clignotement du voyant dis du Yaw damper sur la platine APP65A var 0984,name flag_v1, value 0 var 0985,name flag_DH, value 0 { &dh_ledtmp = &flag_dh } var 0986,name sonde_grillee, value 0 // sonde pitot grillée var 0987,name dh_ledtmp, value 0 var 0988,name val_avio var 0989,name flag_soundgear // variable déclenchant le son alarme train var 0990,name rvs_led // variable déclenchant le clignotement de la led orange rvs not ready { if &rvs_led = 1 { &valid_caution = 0 } } Var 0991, name KEYS, Link KEYS Var 0992, name N_PITOT // voir var 415 Var 0993, name ICE_OAT // variable relais pour alarme ICING Var 0994, name valid_warning, value 1 // variable de test de la validation de l'alarme warning rouge // si cette variable est à 1 les alarmes rouge ont été validées et donc la led reste éteinte et le son stoppé jusqu'au déclenchement d'une nouvelle alarme Var 0995, name valid_caution, value 0 // variable de test de la validation de l'alarme caution jaune // si cette variable est à 1 les alarmes jaune ont été validées et donc la led reste éteinte jusqu'au déclenchement d'une nouvelle alarme Var 0996, name compensateur var 0997, name cpteur_nav1 var 0998, name landing_led // variable déclenchant le clignotement de l'alarme verte landing light var 0999, name TAXILIGHT_LED // variable déclenchant le clignotement de l'alarme verte taxi light // --------------------------------------------------------------- // | | // | SECTION SERVO MOTEURS et MOTEURS PAS à PAS | // | | // --------------------------------------------------------------- Var 1001, name servo_flaps, Link USB_SERVOS, device 2, Output 1, PosL 1, PosC 512, PosR 1023 // servo pour l'indicateur de position des flaps Var 1002, name servo_train, Link USB_SERVOS, device 2, Output 2, PosL 1, PosC 512, PosR 1020 // servo ergot du train device 14 Var 1003, name gauge_110Volts, Link USB_SERVOS,device 2, Output 3, PosL 1, PosC 512, PosR 1020 // servo indicateur tension fréquence 110 volts var 1004, name servo_bille // ne sert pas pour l'instant si ce n'est pour la prog de l'offset $036E Var 1005, name l_Gauge_volt, Link USB_SERVOS, device 2, Output 5, PosL 1, PosC 512, PosR 1020 // gauge volt gauche Var 1006, name r_Gauge_volt, Link USB_SERVOS, device 2, Output 6, PosL 1, PosC 512, PosR 1020 // gauge volt droite Var 1007, name servo_climb, Link USB_SERVOS, device 3, Output 1, PosL 1, PosC 512, PosR 1020 // servo indicateur cabin climb sur carte servo device 82 Var 1008, name servo_trim, Link USB_SERVOS, device 3, Output 2, PosL 1, PosC 512, PosR 1020 // servo indicateur position trim sur carte servo device 82 (débranché ) Var 1009, name servo_turn, Link USB_SERVOS, device 3, Output 3, PosL 300, PosC 650, PosR 1000 // aiguille du coordinateur de virage Var 1010, name servo_propamps, Link USB_SERVOS, device 3, Output 4, PosL 1, PosC 512, PosR 1020 // indicateur prop amps Var 1011, name compas_step, Link USB_Stepper, Output 1, PosL 6, PosC 0, PosR 4, type H // stepper compas // --------------------------------------------------------------- // | | // | SECTION PEDESTAL pour la carte France cockpit | // | | // --------------------------------------------------------------- var 4051,name R_prop_LEVER,link iocard_analogic, device 1,input 1,posL 0,posC 127,posR 255 // pas d'hélice droite course potar 142 à 255 { call &helice_droite } var 4052,name L_prop_LEVER,link iocard_analogic, device 1,input 2,posL 0,posC 127,posR 255 // pas d'hélice gauche course potar 0 à 152 { call &helice_gauche } var 4053,name POT_L_power,link IOCARD_ANALOGIC, device 1, input 3,posL 0,posC 127,posR 255 // Commande gaz moteur gauche 41 à 255 160 en iddle 74 en butée avant reverse { call &GAZ_GAUCHE } var 4054,name POT_R_power,link iocard_analogic, device 1, input 4,posL 0,posC 127,posR 255 // Commande gaz moteur droit potar 54 à 255 177 en iddle 91 en butée avant reverse { call &GAZ_DROIT } Var 4001, name hdg_sel_rot, Link IOCARD_ENCODER, device 1, Input 1, Aceleration 2, Type 2 // Encoder HDG { IF &BATTERY = 1 // Si général on { IF &POWER_PA_SW = 1 // si inter principal PA on { L0 = &hdg_sel_rot * 1 &calc_hdg = &calc_hdg + l0 } } } // 4002 Input 2 PRISE PAR Encoder HDG Var 4003, name course_SEL_ROT, Link IOCARD_encoder, device 1, input 3, Aceleration 2, Type 2 // encodeur sélection course { IF &BATTERY = 1 // Si général on { IF &POWER_PA_SW = 1 // si inter principal PA on { l0 = &course_SEL_ROT * 1 &CRS_NAV1_SEL = &CRS_NAV1_SEL + l0 } } } // 4004 Input 4 PRISE PAR Encoder Course Var 4005, name POWER_PA_SW, Link IOCARD_SW, device 1, Input 5 // Commande power PA { IF &BATTERY = 1 // Si général on { IF &POWER_PA_SW = 1 { } ELSE { &YAWDAPP65_LED = 0 // extinction led Yawdamper &YAWDAPP65tmp = 0 &YAW_APP65_LED = 0 &YAW_APP65tmp = 0 &AP_APP65_LED = 0 // extinction led PA &AP_APP65tmp = 0 &APDISAPP65_LED = 0 &APDISAPP65tmp = 0 &DIS_FCP65LED = 0 // voyant jaune PA disengage fcp65a éteint &DIS_FCP65tmp = 0 &HDG_FCP65LED = 0 // VOYANT VERT HDG FCP65A éteint &AP_FCP65LED = 0 // VOYANT VERT AP FCP65A } } } Var 4006, name FD_PA_SW, Link IOCARD_SW, device 1, Input 6,Type I // Commande FD PA { IF &BATTERY = 1 // Si général on { IF &POWER_PA_SW = 1 { &ap_fd = &fd_pa_sw } } } Var 4007, Link IOCARD_SW, device 1, Input 7, Type P // Libre Var 4008, name YAW_PA_SW, Link IOCARD_SW, device 1, Input 8 , type P // Commande YAW DAMPER PA { IF &BATTERY = 1 // Si général on { IF &POWER_PA_SW = 1 { if &yaw_pa_sw = 0 { &YAW_DA_Mode = 0 } else { &YAW_DA_Mode = 1 } } } } Var 4009, name PA_ENG_SW, Link IOCARD_SW, device 1, Input 9, Type P // Commande PA ENGAGE { IF &BATTERY = 1 // Si général on { IF &POWER_PA_SW = 1 { if &pa_eng_sw = 0 { &ap = 0 } else { if &acft_on_gnd = 0 // car le pa ne peut pas être engagé au sol { call &self_test_pa // lance le self test du pa &ap = 1 } else { &ap = 0 } } call &al_ap } } } Var 4010, name RBLEEDAIR_SW, Link IOCARD_SW, device 1, Input 10 // inter bleed air droit (fil bleu) { // &LVAR_RBLDSW = &RBLEEDAIR_SW IF &BATTERY = 1 // Si général on { if &rbleedair_sw = 0 { &LVAR_RBLDSW = 1 // &rBLAIROFF_LED = 1 if &lbleedair_sw = 0 // et si en plus le bleed air gauche est à 0 - > pas de pressu cabine { &dump_presscab = 1 } } else { &LVAR_RBLDSW = 0 &dump_presscab = 0 // on permet la pressu cabine // &rBLAIROFF_LED = 0 } call &al_bleedair } } Var 4011, name LBLEEDAIR_SW, Link IOCARD_SW, device 1, Input 11 // inter bleed air gauche (fil vert) { // &LVAR_LBLDSW = &LBLEEDAIR_SW IF &BATTERY = 1 // Si général on { if &lbleedair_sw = 0 { &LVAR_LBLDSW = 1 // &LBLAIROFF_LED = 1 if &rbleedair_sw = 0 // et si en plus le bleed air droit est à 0 - > pas de pressu cabine { &dump_presscab = 1 } } else { &LVAR_LBLDSW = 0 &dump_presscab = 0 // on permet la pressu cabine // &LBLAIROFF_LED = 0 } call &al_bleedair } } Var 4012, name R_ENG_hidle_SW, Link IOCARD_SW, device 1, Input 12 // Inter hight iddle condition moteur 2 (droit) { IF &R_ENG_hidle_SW = 1 { &R_ENG_FFLOW = 16384 // Position "hight iddle" } else { &R_ENG_FFLOW = 6000 // Position "low iddle" } } Var 4013, name VS_UP_SW, Link IOCARD_SW, device 1, Input 13, type P // poussoir up sur platine APP65A { IF &BATTERY = 1 // Si général on { IF &POWER_PA_SW = 1 { if &ap = 1 { &fs_elevator = &fs_elevator + 10 &PLAY_SOUND = 3 // son n°3 clic vs &PLAY_SOUND = 0 // ràz } } } } Var 4014, name VS_DOWN_SW, Link IOCARD_SW, device 1, Input 14, type P // poussoir down sur platine APP65A { IF &BATTERY = 1 // Si général on { IF &POWER_PA_SW = 1 { if &ap = 1 { &fs_elevator = &fs_elevator - 10 &PLAY_SOUND = 3 // son n°3 clic vs &PLAY_SOUND = 0 // ràz } } } } Var 04015, name L_ENG_CUTOF_SW, Link IOCARD_SW, device 1, Input 15 // Inter Fuel CutOff moteur 1 (gauche) en série avec firewall sur panneau breaker { IF &L_ENG_CUTOF_SW = 0 { &L_ENG_FFLOW = 0 // Position "CutOff" et Firewall CutOff &rvs_led = 0 } ELSE { &L_ENG_FFLOW = 6000 // valeur pour Low Idle } } Var 4016, name R_ENG_CUTOF_SW, Link IOCARD_SW, device 1, Input 16 // Inter Fuel CutOff moteur 2 (droit) en série avec firewall sur panneau breaker { IF &R_ENG_CUTOF_SW = 0 { &R_ENG_FFLOW = 0 // Position "CutOff" et Firewall CutOff &rvs_led = 0 } ELSE { &R_ENG_FFLOW = 6000 // Valeur pour Low Idle } } Var 04017, name FLAPS_UP_SW, Link IOCARD_SW, device 1,Input 17 // Volets position UP { IF &FLAPS_UP_SW = 1 // inter volets sur UP { &FLAPS = 0 // volets rentrés } else { &FLAPS = 8191 // volets approche } } Var 04018, name FLAPS_DN_SW, Link IOCARD_SW, device 1,Input 18 // Volets position DOWN { if &flaps_dn_sw = 1 { &FLAPS = 16383 // Volets sortis } else { if &flaps_up_sw = 1 { &FLAPS = 0 // volets rentrés } else { &FLAPS = 8191 // volets approche } } } Var 4019 name hdg_SW, Link IOCARD_SW, device 1, Input 19 // poussoir hdg direct sur platine PA { IF &BATTERY = 1 // Si général on { IF &POWER_PA_SW = 1 // si inter principal PA on { if &hdg_sw = 1 { // il faut que la pinule aille directement sur le cap actuel pour éviter de tourner l'encodeur &HDG_SEL = &fs_compas * 182.04444 &calc_hdg = &fs_compas } } } } Var 4020, name stall_SW ,Link IOCARD_SW, device 1, input 23, Type i // INTER test stall warning { if &battery = 1 { if &stall_sw = 1 { &stall = 0 } if &stall_sw = 0 { &stall = 1 } } } Var 4021, name PA_ALTSEL_SW, Link IOCARD_SW, device 1, input 21, type P // poussoir fcp 65A mode ALT SEL { IF &BATTERY = 1 // Si général on { IF &POWER_PA_SW = 1 // si inter principal PA on { if &pa_alt_sel = 0 { &pa_alt_sel = 1 &PLAY_SOUND = 0 // ràz if &pa_alt = 1 { &pa_alt = 0 // désactivation du mode alti actuelle si enclenché } } else { &pa_alt_sel = 0 &PLAY_SOUND = 20 } } } } Var 04022, name PA_ALT_SW, Link IOCARD_SW, device 1, input 22, type P // poussoir fcp 65A mode ALT maintient l'altitude actuelle { IF &BATTERY = 1 // Si général on { IF &POWER_PA_SW = 1 // si inter principal PA on { if &pa_alt = 0 { if &pa_alt_sel = 1 { &pa_alt_sel = 0 } &pa_alt = 1 &PLAY_SOUND = 0 // ràz } else { &pa_alt = 0 &PLAY_SOUND = 20 } } } } Var 4023, name NOSMOKEFSB_SW Link IOCARD_SW, device 1, Input 20, Type i // INTER NO SMOKE ET FSB { &fs_ceintures = &nosmokefsb_sw // sons déportés sur le second pc } Var 04024, name PA_APPr_SW, Link IOCARD_SW, device 1, input 24, type P // poussoir fcp 65A mode APPR { IF &BATTERY = 1 // Si général on { IF &POWER_PA_SW = 1 // si inter principal PA on { if &ap_appr = 0 { &AP_APPR = 1 // quand on passe en mode appr on désactive le mode hdg, nav et bc ( à voir hdg actif tant que loc non capturé ? ) call &AP_GS_ALIVE &PLAY_SOUND = 0 // ràz if &ap_hdg = 1 { &ap_hdg = 0 } if &ap_nav = 1 { &ap_nav = 0 } if &pa_alt_sel = 1 { &pa_alt_sel = 0 } if &pa_alt = 1 { &pa_alt = 0 // désactivation du mode alti actuelle si enclenché } } else { &ap_appr = 0 &PLAY_SOUND = 20 } } } } Var 4025, name STOcom1_sw Link IOCARD_SW, device 1, Input 25, Type I // test pour memcom1 poussoir DSC platine FCP65, doit être de type I et pas P { // &luastocom1 = &STOcom1_sw &fs_seatbelt = &STOcom1_sw // essai pour reset alti 80 } Var 4026, name PA_NAV_SW, Link IOCARD_SW, device 1, input 26, type P // poussoir fcp 65A mode NAV { IF &BATTERY = 1 // Si général on { IF &POWER_PA_SW = 1 // si inter principal PA on { IF &pa_nav_sw = 1 { IF &ap_nav = 0 { &AP_APPR = 0 // coupe l'APP pour enclencher le mode NAV &AP_GS_CAPT = 0 &ap_nav = 1 } ELSE { &ap_nav = 0 } } // if &AP_NAV = 0 // { // &ap_nav = 1 // if &ap_hdg = 1 // { // &ap_hdg = 0 // } // if &ap_appr = 1 // { // &ap_appr = 0 // } // } // else // { // &ap_nav = 0 // &PLAY_SOUND = 20 // } } } } Var 04027, name PA_hdg_SW, Link IOCARD_SW, device 1, Input 27, type P // poussoir mode hdg sur fcp 65 A { IF &BATTERY = 1 // Si général on { IF &POWER_PA_SW = 1 // si inter principal PA on { if &ap_hdg = 0 { &ap_hdg = 1 if &ap_nav = 1 { &ap_nav = 0 } if &ap_appr = 1 { &ap_appr = 0 } } else { &ap_hdg = 0 &PLAY_SOUND = 20 } } } } Var 04028, name PA_climb_sw, Link IOCARD_SW, device 1, Input 28 // poussoir mode climb sur fcp 65 a { } Var 04029, name AP_VS_SW, Link IOCARD_SW, device 1, input 29, type P // poussoir fcp 65A mode VS { IF &BATTERY = 1 // Si général on { IF &POWER_PA_SW = 1 // si inter principal PA on { if &AP_VS = 0 { &ap_vs = 1 if &ap_appr = 1 { &ap_appr = 0 } if &pa_alt = 1 { &pa_alt = 0 } if &pa_alt_sel = 1 { &pa_alt_sel = 0 } // désactiver mode approch, alt, alt sel } else { &ap_vs = 0 &PLAY_SOUND = 20 } } } // &VERT_SPEED_SEL = &AP_VS_SW } Var 4030, name Sq_com1_sw, Link IOCARD_sw, device 1, input 30 // commutateur de com1 pour squelch off { IF &BATTERY = 1 // Si général on { if &sq_com1_sw = 1 { &stop_sound = 22 &STOP_SOUND = 0 } } call &radio_dis_cond } Var 4031, name On_com1_sw, Link IOCARD_sw, device 1, input 31 // commutateur de com1 pour mise à On { IF &BATTERY = 1 // Si général on { if &on_com1_sw = 1 { &PLAY_SOUND = 22 // son n°22 &PLAY_SOUND = 0 } else { &STOP_SOUND = 22 &STOP_SOUND = 0 } } call &radio_dis_cond } Var 4036, name test_fcp65_sw, Link IOCARD_SW, device 1, Input 36 // poussoir de test des led platine fcp65A { IF &BATTERY = 1 // Si général on { IF &POWER_PA_SW = 1 // si inter principal PA on { call &test_fcp65A } } } Var 4037, name hsi_mode_sw, Link IOCARD_sw, device 1, input 37 // mode de l'ehsi hsi ou arc { IF &BATTERY = 1 // Si général on { IF &AVNCS = 1 // Si avionics on { if &hsi_mode_sw = 1 { &fs_ehsi = 1 // hsi mode } else { &fs_ehsi = 14 // 2 arc mode } } } } Var 4038, name DH_ROT, Link IOCARD_encoder, device 1, input 38, Aceleration 2, Type 2 // réglage de la dh { L0 = &DH_ROT IF L0 > 0 // à droite { &fs_commande = 66322 &fs_commande = DELAY 0 ,10 // raz après 100 msec } ELSE { IF L0 < 0 // à gauche { &fs_commande = 66321 &fs_commande = DELAY 0 ,10 } } } Var 4040, name EXT_L_TST_SW, Link IOCARD_SW, device 1, input 40 // position L du commutateur de test extincteur { IF &BATTERY = 1 // Si général on { &l_OK_fire_LED = &ext_l_tst_sw &l_D_fire_LED = &ext_l_tst_sw } } Var 4041, name EXT_123_TST_SW, Link IOCARD_SW, device 1, input 41 // position 1,2,3 du commutateur de test sondes fire { IF &BATTERY = 1 // Si général on { &L_eng_fire_LED = &ext_123_tst_sw &r_eng_fire_LED = &ext_123_tst_sw &FIRE_RIGHT_LED = &ext_123_tst_sw &FIRE_left_LED = &ext_123_tst_sw } } Var 4042, name EXT_R_TST_SW, Link IOCARD_SW, device 1, input 42 // position R du commutateur de test extincteur { IF &BATTERY = 1 // Si général on { &R_OK_fire_LED = &ext_r_tst_sw &R_D_fire_LED = &ext_r_tst_sw } } Var 4043, name dump_cab_sw, Link IOCARD_SW, device 1, input 43 // switch dump pression cabine { &dump_presscab = &dump_cab_sw } Var 4044, name EFIS_POWER_sw, Link IOCARD_SW, device 1, input 44 // Interrupteur power platine EFIS { &EFIS_POWER = &EFIS_POWER_SW } Var 4045, name direct_crs_sw, Link IOCARD_SW, device 1, input 45 // poussoir direct course { if &direct_crs_sw = 1 { &CRS_NAV1_SEL = &rel_bearing + &fs_compas } } Var 4046, name LBLEEDAIROF_SW, Link IOCARD_SW, device 1, Input 46 // inter bleed air gauche pour OFF { IF &BATTERY = 1 // Si général on { if &lbleedairof_sw = 0 { &LVAR_LBLDSW = 1 if &rbleedair_sw = 0 // et si en plus le bleed air droit est à 0 - > pas de pressu cabine { &dump_presscab = 1 } } else { &LVAR_LBLDSW = 2 &dump_presscab = 1 // on ne permet pas la pressu cabine } call &al_bleedair } } Var 4047, name RBLEEDAIROF_SW, Link IOCARD_SW, device 1, Input 47 // inter bleed air droit pour OFF { IF &BATTERY = 1 // Si général on { if &rbleedairof_sw = 0 { &LVAR_RBLDSW = 1 if &lbleedair_sw = 0 // et si en plus le bleed gauche est à 0 - > pas de pressu cabine { &dump_presscab = 1 } } else { &LVAR_RBLDSW = 2 &dump_presscab = 1 // on ne permet pas la pressu cabine } call &al_bleedair } } Var 4048, name elev_trim_SW, Link IOCARD_SW, device 1, Input 48 // inter elev-trim sur pedestal { call &tst_elevtrimsw } Var 4049, name nav1_act_SW, Link IOCARD_SW, device 1, Input 49, type P // inter de bascule nav1 standbye vers active { IF &BATTERY = 1 // Si général on { IF &AVNCS = 1 // Si avionics on { L0 = frombcd &fs_nav1 // charge l0 avec la fréq active nav1 &fs_nav1 = TOBCD &d_nav1stbye // l'offset de la freq active de nav1 prend la valeur de l'afficheur standbye nav1 &Display_nav1 = &d_nav1stbye // l'afficheur de la freq active de nav1 prend la valeur de l'afficheur standbye &d_nav1stbye = L0 // l'afficheur de la freq standbye prend la valeur de l0 donc de la freq active avant la bascule &Fs_nav1stbye = tobcd &d_nav1stbye // il faut que l'offset nav1stbye prenne la valeur de l'afficheur nav1 standbye } } } Var 4050, name nav1_mem_SW, Link IOCARD_SW, device 1, Input 50 , type P // inter défilement fréquence mémorisée pour nav1 { IF &BATTERY = 1 // Si général on { IF &AVNCS = 1 // Si avionics on { &luacptnav1 = &cpteur_nav1 // pour transmettre le compteur au script lua &cpteur_nav1 = rotate 1, 5 , 1 &d_nav1stbye = &luastbyenav1 // récupère la valeur de fréquence du tableau de lua &Fs_nav1stbye = tobcd &d_nav1stbye // conversion } } } Var 4060, name ext_power_SW, Link IOCARD_SW, device 1, Input 51 // inter pour connecter le groupe de parc { if &ext_power_sw = 1 { //&lvar_inter1 = setbit 1 &LVAR_ext_pwr = 1 } else { // &lvar_inter1 = clearbit 1 &LVAR_ext_pwr = 0 } &EXTPOWER_LED = &ext_power_sw } Var 4061, name STOnav1_sw Link IOCARD_SW, device 1, Input 52, Type I // poussoir sto de nav1 doit être de type I { &luastonav1 = &STOnav1_sw } Var 4062, name com1decim_rot, Link IOCARD_ENCODER, device 1, Input 53, Aceleration 2, Type 2 // Encoder decimaux com1 { L0 = &com1decim_rot * 25 l1 = abs l0 &testent_com1 = l0 if &surf_deice_sw = 1 { IF L0 > 0 // à gauche { &fs_commande = 65638 &fs_commande = DELAY 0 ,10 // raz après 100 msec } ELSE // à droite { &fs_commande = 65639 &fs_commande = DELAY 0 ,10 } } ELSE { IF L0 > 0 // à gauche { // L2 = frombcd &com1 &com1_decimales = &com1_decimales - l0 if &com1_decimales < 0 { &com1_decimales = 75 } // &com1 = tobcd l2 } ELSE { // L2 = frombcd &com1 &com1_decimales = &com1_decimales + l1 if &com1_decimales > 75 { &com1_decimales = 0 } // &com1 = tobcd l2 } } } Var 4063, name com1entier_rot, Link IOCARD_ENCODER, device 1, Input 55, Aceleration 2, Type 2 // Encoder entiers com1 { L0 = &com1entier_rot l1 = abs l0 &testent_com1 = l0 if &surf_deice_sw = 1 { IF L0 > 0 // à gauche { &fs_commande = 65636 &fs_commande = DELAY 0 ,10 // raz après 100 msec } else // à droite { &fs_commande = 65637 &fs_commande = DELAY 0 ,10 } } ELSE { IF L0 > 0 // à gauche { &com1_entiers = &com1_entiers - l0 if &com1_entiers < 18 { &com1_entiers = 35 } } else { &com1_entiers = &com1_entiers + l1 if &com1_entiers > 35 { &com1_entiers = 18 } } } } // Var 4064, name com1_act_sw, Link IOCARD_SW, device 1, input 57 , type p // poussoir pour mettre com1 en position ACT //{ //} var 4065, name testent_com1 var 4066, name com1_entiers var 4067, name com1_decimales Var 4068, name xpdrlow_rot, Link IOCARD_ENCODER, device 1, Input 57, Aceleration 2, Type 2 // Encodeur extérieur chiffres de gauche du transpondeur { L0 = &xpdrlow_rot IF L0 > 0 // à gauche { &xpdr = &xpdr - 100 //&fs_commande = 66457 // pour essai sur 2eme chiffre du transpondeur //&fs_commande = DELAY 0 ,10 // raz après 100 msec } else // à droite { &xpdr = &xpdr + 100 // &fs_commande = 65653 // &fs_commande = DELAY 0 ,10 } &xpdr = limit 1200, 7777, 0 // &fs_xpdr = tobcd &xpdr } Var 4069, name xpdrhigh_rot, Link IOCARD_ENCODER, device 1, Input 59, Aceleration 2, Type 2 // Encodeur intérieur chiffres de droite du transpondeur { L0 = &xpdrhigh_rot IF L0 < 0 // à gauche { &xpdr = &xpdr - 1 } else // à droite { &xpdr = &xpdr + 1 } &xpdr = limit 1200, 7777, 0 // &fs_xpdr = tobcd &xpdr } Var 5311, name LDC_GEN_LED, Link IOCARD_OUT, device 1, Output 11 // Alarme orange L DC GEN { &CAUTION_WARN = CHANGEBIT 1 ,&LDC_GEN_LED if &ldc_gen_led = 1 { &valid_caution = 0 } } Var 5312, name PKG_BRK_LED, Link IOCARD_OUT, device 1,Output 12 // Alarme orange PARKING BRAKE { &CAUTION_WARN = CHANGEBIT 2 ,&PKG_BRK_LED if &pkg_brk_led = 1 { &valid_caution = 0 } } Var 5313, name PROP_SYNC_LED, Link IOCARD_OUT,device 1,Output 13 // Alarme orange PROP SYNC ON { &CAUTION_WARN = CHANGEBIT 3 ,&PROP_SYNC_LED if &prop_sync_led = 1 { &valid_caution = 0 } } Var 5314, name rvs_LED_temp, Link IOCARD_OUT, device 1, Output 14 // Alarme orange clignotante rvs not ready { &CAUTION_WARN = CHANGEBIT 4 ,&rvs_LED } Var 5315, name icing_LED, Link IOCARD_OUT, device 1, Output 15 // Alarme orange icing { &CAUTION_WARN = CHANGEBIT 5 ,&icing_LED if &icing_led = 1 { &valid_caution = 0 } } Var 5316, name RDC_GEN_LED, Link IOCARD_OUT, device 1, Output 16 // Alarme orange R DC GEN ancien 42 { &CAUTION_WARN = CHANGEBIT 6 ,&RDC_GEN_LED if &rdc_gen_led = 1 { &valid_caution = 0 } } Var 5317, name licevan_LED, Link IOCARD_OUT, device 1, Output 17 // Alarme orange L ICE VANE { &CAUTION_WARN = CHANGEBIT 7 ,&LICEVAN_LED if &licevan_led = 1 { &valid_caution = 0 } } Var 5318, name HYDFLUID_LED, Link IOCARD_OUT, device 1, Output 18 // Alarme orange HYD FLUID LOW { &CAUTION_WARN = CHANGEBIT 8 ,&HYDFLUID_LED if &hydfluid_led = 1 { &valid_caution = 0 } } Var 5319, name BATTCHARG_LED, Link IOCARD_OUT, device 1, Output 19 // Alarme orange BATTERIE CHARGE { &CAUTION_WARN = CHANGEBIT 9 ,&BATTCHARG_LED if &battcharg_led = 1 { &valid_caution = 0 } } Var 5320, name EXTPOWER_LED, Link IOCARD_OUT, device 1, Output 20 // Alarme orange EXTERN POWER Var 5321, name PITOTOFF_LED, Link IOCARD_OUT, device 1, Output 21 // Alarme orange PITOT OFF { &CAUTION_WARN = CHANGEBIT 10 ,&PITOTOFF_LED if &pitotoff_led = 1 { &valid_caution = 0 } } Var 5322, name RICEVAN_LED, Link IOCARD_OUT, device 1, Output 22 // Alarme orange R ICE VANE { &CAUTION_WARN = CHANGEBIT 11 ,&RICEVAN_LED if &ricevan_led = 1 { &valid_caution = 0 } } Var 5323, name LAUTOFEAT_LED, Link IOCARD_OUT, device 1, Output 23 // ANNONCE VERTE L AUTOFEATHER Var 5324, name BEACON_LED, Link IOCARD_OUT, device 1, Output 24 // ANNONCE VERTE BEACON Var 5325, name TRIMOFF_LED, Link IOCARD_OUT, device 1, Output 25 // ANNONCE VERTE ELEC TRIM OFF Var 5326, name AIRCNDOFF_LED, Link IOCARD_OUT, device 1, Output 26 // ANNONCE VERTE AIR COND OFF Var 5327, name STROBES_LED, Link IOCARD_OUT, device 1, Output 27 // ANNONCE VERTE STROBES Var 5328, name RAUTOFEAT_LED, Link IOCARD_OUT, device 1, Output 28 // ANNONCE VERTE R AUTOFEATHER Var 5329, name LICVANEXT_LED, Link IOCARD_OUT, device 1, Output 29 // ANNONCE VERTE L ICE VANE EXT Var 5330, name PASSOXYON_LED, Link IOCARD_OUT, device 1, Output 30 // ANNONCE VERTE PASS OXY ON Var 5331, name cli_landingled, Link IOCARD_OUT, device 1, Output 31 // ANNONCE VERTE LANDING LIGHT Var 5332, name NAVLIGHT_LED, Link IOCARD_OUT, device 1, Output 32 // ANNONCE VERTE NAV LIGHT Var 5333, name cli_taxiled, Link IOCARD_OUT, device 1, Output 33 // ANNONCE VERTE TAXI LIGHT Var 5334, name RICVANEXT_LED, Link IOCARD_OUT, device 1, Output 34 // ANNONCE VERTE R ICE VANE EXT Var 5335, name LIGNITION_LED, Link IOCARD_OUT, device 1, Output 35 // ANNONCE VERTE L IGNITION ON Var 5336, name LBLAIROFF_LED, Link IOCARD_OUT, device 1, Output 36 // ANNONCE VERTE L BLAIR OFF Var 5337, name CAUTLGND_LED, Link IOCARD_OUT, device 1, Output 37 // ANNONCE VERTE CAUTION LGND OFF Var 5338, name FUELCROSS_LED, Link IOCARD_OUT, device 1, Output 38 // ANNONCE VERTE FUEL CROSSFEED Var 5339, name RBLAIROFF_LED, Link IOCARD_OUT, device 1, Output 39 // ANNONCE VERTE R BLAIR OFF Var 5340, name RIGNITION_LED, Link IOCARD_OUT, device 1, Output 40 // ANNONCE VERTE R IGNITION ON // LED TEMOINS DE LA PLATINE APP 65A Var 5360, name YAW_APP65_LED, Link IOCARD_OUT, device 1, Output 75 // VOYANT VERT YAW ENGAGE APP65A Var 5361, name YAWDAPP65_LED, Link IOCARD_OUT, device 1, Output 76 // VOYANT JAUNE YAW DISENGAGE APP65A Var 5362, name AP_APP65_LED, Link IOCARD_OUT, device 1, Output 77 // VOYANT VERT PA ENGAGE APP65A Var 5363, name APDISAPP65_LED, Link IOCARD_OUT, device 1, Output 78 // VOYANT JAUNE PA DISENGAGE APP65A // Var 5364, name YAW_APP65_LED, Link IOCARD_OUT, device 2, Output 79 // VOYANT JAUNE E GAUCHE APP65A // Var 5365, name YAWDAPP65_LED, Link IOCARD_OUT, device 2, Output 80 // VOYANT JAUNE L GAUCHE APP65A Var 5366, name A_AP_APP65_LED, Link IOCARD_OUT, device 1, Output 81 // VOYANT JAUNE A APP65A Var 5367, name R_APP65_LED, Link IOCARD_OUT, device 1, Output 82 // VOYANT JAUNE R DROIT APP65A Var 5368, name RE_APP65_LED, Link IOCARD_OUT, device 1, Output 83 // VOYANT JAUNE E DROIT APP65A Var 5369, name 120_APP65_LED, Link IOCARD_OUT, device 1, Output 84 // VOYANT VERT 1/2 TOUR APP65A Var 5370, name SRAPP65_LED, Link IOCARD_OUT, device 1, Output 85 // VOYANT VERT SR APP65A Var 5371, name trimjAPP65_LED, Link IOCARD_OUT, device 1, Output 86 // VOYANT JAUNE TRIM APP65A Var 5372, name trimrAPP65_LED, Link IOCARD_OUT, device 1, Output 87 // VOYANT ROUGE TRIM APP65A // LED TEMOINS DE LA PLATINE FCP 65A Var 5373, name GS_ARMFCPLED, Link IOCARD_OUT, device 1, Output 88 // VOYANT JAUNE GS ARM FCP65A Var 5374, name APPRARMFCPLED, Link IOCARD_OUT, device 1, Output 89 // VOYANT JAUNE APPR ARM FCP65A Var 5375, name ALT_ARMFCPLED, Link IOCARD_OUT, device 1, Output 90 // VOYANT JAUNE ALT ARM FCP65A Var 5376, name NAV_ARMFCPLED, Link IOCARD_OUT, device 1, Output 91 // VOYANT JAUNE NAV ARM FCP65A Var 5377, name DSC_FCP65LED, Link IOCARD_OUT, device 1, Output 92 // VOYANT VERT DSC FCP65A Var 5378, name CLM_FCP65LED, Link IOCARD_OUT, device 1, Output 93 // VOYANT VERT CLM FCP65A Var 5379, name GS_FCP65LED, Link IOCARD_OUT, device 1, Output 94 // VOYANT VERT GS FCP65A Var 5380, name VS_FCP65LED, Link IOCARD_OUT, device 1, Output 95 // VOYANT VERT VS FCP65A Var 5381, name ALTSEL_FCPLED, Link IOCARD_OUT, device 1, Output 96 // VOYANT VERT ALT SEL FCP65A Var 5382, name ALT_FCP65LED, Link IOCARD_OUT, device 1, Output 97 // VOYANT VERT ALT FCP65A Var 5383, name 120_FCP65LED, Link IOCARD_OUT, device 1, Output 98 // VOYANT VERT 1/2 0 FCP65A Var 5384, name VNAV_FCP65LED, Link IOCARD_OUT, device 1, Output 99 // VOYANT VERT VNAV FCP65A Var 5385, name BC_FCP65LED, Link IOCARD_OUT, device 1, Output 100 // VOYANT VERT BC FCP65A Var 5386, name APPR_FCP65LED, Link IOCARD_OUT, device 1, Output 101 // VOYANT VERT APPR FCP65A Var 5387, name NAV_FCP65LED, Link IOCARD_OUT, device 1, Output 102 // VOYANT VERT NAV FCP65A Var 5388, name HDG_FCP65LED, Link IOCARD_OUT, device 1, Output 103 // VOYANT VERT HDG FCP65A Var 5389, name AP_FCP65LED, Link IOCARD_OUT, device 1, Output 104 // VOYANT VERT AP FCP65A Var 5390, name DIS_FCP65LED, Link IOCARD_OUT, device 1, Output 105 // VOYANT JAUNE DIS FCP65A Var 5391, name REDAP_FCP65LED, Link IOCARD_OUT, device 1, Output 106 // VOYANT ROUGE AP FCP65A // -------------------------- // panneau carburant // -------------------------- var 6001, name left_tank, link FSUIPC_INout, offset $0b7c, length 4 // niveau réservoir gauche { &tmp_l_tank = &left_tank } var 6002, name right_tank, link FSUIPC_INout, offset $0b94, length 4 // niveau réservoir droit { &tmp_r_tank = &right_tank } // Complément d'info: selon FSInterrogate // 0AF8 Fuel tank select (lenght 2) read write // 0=Off, 1=All, 2=Left, 3=Right, // 4=LeftAux, 5=RightAux, // 6=Center, 7=Centre2, 8=Centre3, // 9=Ext1, 10=Ext2, // 11=RtTip, 12=LftTip, // 14=CrossFeed Left to Right, 15=CrossFeed Right to Left Var 6003, name FUEL_TANK_SEL, Link FSUIPC_INOUT, Offset $0AF8, Length 2 // sélection des réservoirs Utilisé entre autre pour le Crossfeed var 6005, name tmp_l_tank, link FSUIPC_out, offset $3598, length 4 // temp lue par le driver fdbus pour niveau réservoir gauche { call &calc_disp_tank } var 6006, name tmp_r_tank, link FSUIPC_out, offset $359c, length 4 // temp lue par le driver fdbus pour niveau réservoir droit { call &calc_disp_tank } var 6007, name aux_ltank, link FSUIPC_out, offset $0b84, length 4 // niveau réservoir aux gauche { } var 6008, name aux_rtank, link FSUIPC_out, offset $0bA4, length 4 // niveau réservoir aux droit { } Var 6012, name calc_disp_tank, Link subrutine // routine affichage réservoirs par les jauges { if &battery = 1 { if &LEV_M_AUX_SW = 1 // les gauges carburants affichent le niveau des réservoirs principaux { &tmp_l_tank = &left_tank &tmp_r_tank = &right_tank } else // ou affichage des niveaux réservoirs auxilliaires si le switch est sur 0 { &tmp_l_tank = &aux_ltank &tmp_r_tank = &aux_rtank } } else // si bat off les jauges sont à l'arrêt { &tmp_l_tank = 0 &tmp_r_tank = 0 } } // ------------------------------------------------------------------------------- // // Code pour le GPWS // // ------------------------------------------------------------------------------- Var 08000, name 10, Value 0 Var 08001, name 20, Value 0 Var 08002, name 30, Value 0 Var 08003, name 40, Value 0 Var 08004, name 50, Value 0 Var 08005, name 80KTS, Value 0 Var 08006, name 100, Value 0 Var 08007, name 200, Value 0 Var 08008, name 300, Value 0 Var 08009, name 400, Value 0 Var 08010, name 500, Value 0 Var 08011, name 1000, Value 0 Var 08012, name 2500, Value 0 Var 08013, name APDISCONNECT, Value 0 Var 08014, name CAUTION, Value 0 Var 08015, name CAUTIONTERRAIN, Value 0 Var 08016, name DONTSINK, Value 0 Var 08017, name GLIDESLOPE, Value 0 Var 08018, name MINIMUMS, Value 0 Var 08019, name PULLUP, Value 0 Var 08020, name SINKRATE, Value 0 Var 08021, name TERRAIN, Value 0 Var 08022, name TERRAINTERRAIN, Value 0 Var 08023, name TOOLOWFLAPS, Value 0 Var 08024, name TOOLOWGEAR, Value 0 Var 08025, name TOOLOWTERRAIN, Value 0 Var 08026, name V1, Value 0 Var 08027, name VR, Value 0 Var 08028, name V2, Value 0 Var 08029, name BANKANGLE, Value 0 Var 08033, name CHECK_FLAPS, Value 0 { IF &CHECK_FLAPS = 0 { &TOOLOWFLAPS = 0 &LINK_FLAPS = 0 } ELSE { IF &CHECK_FLAPS = 1 { &LINK_FLAPS = 999999 &LINK_FLAPS = TIMER 0 ,-1 ,300 } } } Var 08039, name CHECK_GLIDE, Value 0 { IF &CHECK_GLIDE = 0 { &GLIDESLOPE = 0 &LINK_GLIDE = 0 &LED_BELOW_FO = 0 } ELSE { IF &CHECK_GLIDE = 1 { &LED_BELOW_FO = 1 &LINK_GLIDE = 999999 &LINK_GLIDE = TIMER 0 ,-1 ,200 } } } Var 08040, name CHECK_GEARS, Value 0 { IF &CHECK_GEARS = 0 { &TOOLOWGEAR = 0 &LINK_GEARS = 0 } ELSE { IF &CHECK_GEARS = 1 { &LINK_GEARS = 999999 &LINK_GEARS = TIMER 0 ,-1 ,300 } } } Var 08041, name LINK_FLAPS { L0 = MOD &LINK_FLAPS ,2 IF L0 = 0 { &TOOLOWFLAPS = 0 } ELSE { IF L0 = 1 { &TOOLOWFLAPS = 1 &TOOLOWFLAPS = DELAY 0 ,150 } } } Var 08042, name LINK_GLIDE { L0 = MOD &LINK_GLIDE ,2 IF L0 = 0 { &GLIDESLOPE = 0 } ELSE { IF L0 = 1 { &GLIDESLOPE = 1 &GLIDESLOPE = DELAY 0 ,150 } } } Var 08043, name LINK_GEARS // LINK TOO LOW GEARS { L0 = MOD &LINK_GEARS ,2 IF L0 = 0 { &TOOLOWGEAR = 0 } ELSE { IF L0 = 1 { &PLAY_SOUND = 18 // son n°18 toolowgears.wav &PLAY_SOUND = 0 // ràz // &TOOLOWGEAR = 1 // &TOOLOWGEAR = DELAY 0 ,200 } } } Var 08044, name LED_BELOW_FO, Link IOCARD_OUT, Output 80 // à voir LED BELOW GLIDE FO Var 08045, name LED_GPWS_INOP, Link IOCARD_OUT, Output 81 // à voir led gpws inop