code baron58
 Posté: Ven 26 Oct 2012 16:47
Posté: Ven 26 Oct 2012 16:47Pour ceux qui comme moi ont besoin d'utiliser des codes existants pour apprendre à  faire leur propre code, je met ici mon dernier script en vigueur, testé et fonctionnel, pour mon baron58.
"Dernier" parce qu'il n'est pas terminé, mais je le mettrais à jour à chaque nouvelle avancée.
A ce jour il me reste à faire:
-l'ADF, le transpondeur
-la boite de mélange audio
-les anti-ice
A noter que le pilote auto et les 4 poussoirs de selection des fréquences activ/sby ne sont pas dans le script car interfacés par la carte Bodnar.
			"Dernier" parce qu'il n'est pas terminé, mais je le mettrais à jour à chaque nouvelle avancée.
A ce jour il me reste à faire:
-l'ADF, le transpondeur
-la boite de mélange audio
-les anti-ice
- Code: Tout sélectionner
- // *****************************************************************************
 // * Config_SIOC ver 4.00 - By Manuel Velez - www.opencockpits.com
 // *****************************************************************************
 // * FileName : code complet.txt
 // * Date : 07/11/2012
 Var 0000, name INI // variable d'initialisation
 {
 &GEAR = 16383
 &FsMag1 = 0
 &FsMag2 = 0
 }
 Var 0016, name DME1_dist, Link FSUIPC_IN, Offset $0300, Length 2 // distance DME1 en nm*10
 {
 L0 = &DME1_dist / 10
 &calc_dist_DME1 = TRUNC L0
 L1 = &calc_dist_DME1 * 10
 &calc_dec_dist1 = &DME1_dist - L1
 }
 Var 0017, name calc_dist_DME1 // affiche la dist DME1 en nm avant virgule
 Var 0018, name calc_dec_dist1 // affiche dist DME1 en nm après virgule
 Var 0020, name DME1_speed, Link FSUIPC_IN, Offset $0302, Length 2 // vitesse DME 1 en kts*10
 {
 L0 = &DME1_speed / 10
 &calc_spd_DME1 = L0
 }
 Var 0021, name calc_spd_DME1 // affiche la vitesse DME1 en kt
 Var 0025, name DME1_time, Link FSUIPC_IN, Offset $0304, Length 2 // time to station DME1 en sec*10
 {
 L0 = &DME1_time / 10 // time to station en sec
 L1 = L0 / 60 // time to station en min
 &calc_time_DME1 = TRUNC L1
 }
 Var 0026, name calc_time_DME1 // affiche time to station DME1 en min
 Var 0028, name DME2_dist, Link FSUIPC_IN, Offset $0306, Length 2 // distance DME2*10
 {
 L0 = &DME2_dist / 10
 &calc_dist_DME2 = TRUNC L0
 L1 = &calc_dist_DME2 * 10
 &calc_dec_dist2 = &DME2_dist - L1
 }
 Var 0029, name calc_dist_DME2 // affiche la dist DME2 en nm avant virgule
 Var 0030, name calc_dec_dist2 // affiche la dist DME2 en nm après virgule
 Var 0032, name DME2_speed, Link FSUIPC_IN, Offset $0308, Length 2 // vitesse DME2 en kts*10
 {
 L0 = &DME2_speed / 10
 &calc_spd_DME2 = L0
 }
 Var 0033, name calc_spd_DME2 // affiche la vitesse DME2 en kt
 Var 0035, name DME2_time, Link FSUIPC_IN, Offset $030A, Length 2 // affiche time to station DME2 en sec*10
 {
 L0 = &DME2_time / 10 // time to station en secondes
 L1 = L0 / 60 // time to station en minutes
 &calc_time_DME2 = TRUNC L1
 }
 Var 0036, name calc_time_DME2 // affiche time to station DME2 en min
 Var 0001, name lcd_1 // lcd 1 (DME audio panel)
 {
 IF &DME_lcd_sw = 1 // switch sur NAV1
 {
 &lcd_1 = 1 // ecran DME1
 }
 ELSE
 {
 &lcd_1 = 0 // ecran DME2
 }
 }
 Var 0120, name DME_lcd_sw, Link IOCARD_SW, Input 28 // selecteur DME du lcd audio panel
 {
 IF &DME_lcd_sw = 1
 {
 &lcd_1 = 1
 }
 ELSE
 {
 &lcd_1 = 0
 }
 }
 Var 0090, name outer_marker, Link FSUIPC_INOUT, Offset $0BB0, Length 2 // état Outer Marker
 {
 CALL &sb_led_marker
 CALL &sb_led_courant
 }
 Var 0091, name Led_outer, Link IOCARD_OUT, Output 25 // LED Outer Marker
 Var 0096, name tpled_outer
 Var 0092, name middle_marker, Link FSUIPC_IN, Offset $0BAE, Length 2 // état Middle Marker
 {
 CALL &sb_led_marker
 CALL &sb_led_courant
 }
 Var 0093, name Led_middle, Link IOCARD_OUT, Output 26 // LED Middle Marker
 Var 0097, name tpled_middle
 Var 0094, name inner_marker, Link FSUIPC_IN, Offset $0BAC, Length 2 // état Inner Marker
 {
 CALL &sb_led_marker
 CALL &sb_led_courant
 }
 Var 0095, name Led_inner, Link IOCARD_OUT, Output 27 // LED Inner Marker
 Var 0098, name tpled_inner
 Var 0099, name sb_led_marker, Link SUBRUTINE // conditions voyants marker
 {
 &tpled_inner = &inner_marker
 &tpled_middle = &middle_marker
 &tpled_outer = &outer_marker
 }
 Var 0100, name fs_nav_gps, Link FSUIPC_INOUT, Offset $132C, Length 4 // selecteur NAV / GPS
 {
 IF &sw_nav_gps = 1
 {
 &fs_nav_gps = 0
 }
 ELSE
 {
 &fs_nav_gps = 1
 }
 }
 Var 0101, name sw_nav_gps, Link IOCARD_SW, Input 10 // SW NAV / GPS
 {
 IF &sw_nav_gps = 1
 {
 &fs_nav_gps = 0
 }
 ELSE
 {
 &fs_nav_gps = 1
 }
 }
 Var 0102, name FLAPS, Link FSUIPC_INOUT, Offset $0BDC, Length 4 // contrôle des flaps 0- 16383
 Var 0103, name sw_flaps_up, Link IOCARD_SW, Input 13 // swith de flap en position up
 {
 IF &sw_flaps_up = 1 // si le switch de flap est en position up
 {
 &FLAPS = 0 // flaps sont relevés
 }
 ELSE
 {
 &FLAPS = 8191 // flaps en position approche
 }
 }
 Var 0104, name sw_flaps_down, Link IOCARD_SW, Input 12 // switch de flaps en position down
 {
 IF &sw_flaps_down = 1
 {
 &FLAPS = 16383
 }
 ELSE
 {
 &FLAPS = 8191
 }
 }
 Var 0105, name led_flap_trans, Link IOCARD_OUT, Output 17 // led flaps transit
 Var 0106, name led_flap_appr, Link IOCARD_OUT, Output 16 // led flaps position approche
 Var 0107, name led_flap_down, Link IOCARD_OUT, Output 15 // led de flap position down
 Var 0206, name tpled_flap_tra, Value 0 // var. temporaire led de flap transit
 Var 0207, name tpled_flap_app, Value 0 // var. temporaire led de flap approche
 Var 0208, name tpled_flap_dow, Value 0 // var. temporaire led de flap down
 Var 0108, name flaps_pos, Link FSUIPC_IN, Offset $0BE0, Length 4 // état des flaps 0- 16383
 {
 CALL &sb_led_flap
 CALL &sb_led_courant
 }
 Var 0109, name sb_led_flap, Link SUBRUTINE // conditions voyants de position des flaps
 {
 IF &flaps_pos = 0
 {
 &tpled_flap_app = 0
 &tpled_flap_tra = 0
 &tpled_flap_dow = 0
 }
 ELSE
 {
 IF &flaps_pos = 16383
 {
 &tpled_flap_dow = 1
 &tpled_flap_app = 0
 &tpled_flap_tra = 0
 }
 ELSE
 {
 IF &flaps_pos = 8192
 {
 &tpled_flap_app = 1
 &tpled_flap_tra = 0
 &tpled_flap_dow = 0
 }
 ELSE
 {
 &tpled_flap_tra = 1
 &tpled_flap_dow = 0
 &tpled_flap_app = 0
 }
 }
 }
 }
 Var 0110, name GEAR, Link FSUIPC_INOUT, Offset $0BE8, Length 4 // train
 {
 CALL &sb_led_gearup
 CALL &sb_led_courant
 }
 Var 0116, name L_GEAR_POS, Link FSUIPC_IN, Offset $0BF4, Length 4 // position train gauche
 {
 CALL &sb_led_gear_L
 CALL &sb_led_courant
 }
 Var 0117, name R_GEAR_POS, Link FSUIPC_IN, Offset $0BF0, Length 4 // position train droit
 {
 CALL &sb_led_gear_R
 CALL &sb_led_courant
 }
 Var 0118, name NOSE_GEAR_POS, Link FSUIPC_IN, Offset $0BEC, Length 4 // position train avant
 {
 CALL &sb_led_gear_N
 CALL &sb_led_courant
 }
 Var 0111, name Led_gear_nose, Link IOCARD_OUT, Output 11 // led train avant
 Var 0112, name Led_gear_L, Link IOCARD_OUT, Output 12 // led train gauche
 Var 0113, name Led_gear_R, Link IOCARD_OUT, Output 13 // led train droit
 Var 0114, name Led_gear_trans, Link IOCARD_OUT, Output 14 // led train TRANSIT
 Var 0210, name tpled_gear_nos, Value 0 // var.temporaire led train avant
 Var 0211, name tpled_gear_L, Value 0 // var. temporaire led train gauche
 Var 0212, name tpled_gear_R, Value 0 // var. temporaire led train droit
 Var 0213, name tpled_gear_tra, Value 0 // var. temporaire led train transit
 Var 0115, name GEAR_SW, Link IOCARD_SW, Input 11 // commande de train
 {
 IF &GEAR_SW = 1
 {
 &GEAR = 16383
 }
 ELSE
 {
 &GEAR = 0
 }
 }
 Var 0140, name sb_led_gear_L, Link SUBRUTINE // condition voyant train gauche
 {
 IF &L_GEAR_POS = 16383
 {
 &tpled_gear_L = 1
 }
 ELSE
 {
 IF &L_GEAR_POS >= 1
 {
 &tpled_gear_L = 0
 }
 ELSE
 {
 IF &L_GEAR_POS = 0
 {
 &tpled_gear_L = 0
 }
 }
 }
 }
 Var 0141, name sb_led_gear_R, Link SUBRUTINE // condition voyant train droit
 {
 IF &R_GEAR_POS = 16383
 {
 &tpled_gear_R = 1
 }
 ELSE
 {
 IF &R_GEAR_POS >= 1
 {
 &tpled_gear_R = 0
 }
 ELSE
 {
 IF &R_GEAR_POS = 0
 {
 &tpled_gear_R = 0
 }
 }
 }
 }
 Var 0142, name sb_led_gear_N, Link SUBRUTINE // condition voyant train avant
 {
 IF &NOSE_GEAR_POS = 16383
 {
 &tpled_gear_nos = 1
 &tpled_gear_tra = 0
 }
 ELSE
 {
 IF &NOSE_GEAR_POS >= 1
 {
 &Led_gear_nose = 0
 &Led_gear_trans = 1
 }
 ELSE
 {
 IF &NOSE_GEAR_POS = 0
 {
 &tpled_gear_nos = 0
 &tpled_gear_tra = 0
 }
 }
 }
 }
 Var 0122, name FsMag1, Link FSUIPC_INOUT, Offset $0892, Length 2 // etat magneto moteur 1
 {
 CALL &sb_led_start
 CALL &sb_led_courant
 }
 Var 0123, name RotLPos1, Link IOCARD_SW, Input 21 // switch magneto moteur 1 sur L-mag
 {
 IF &RotLPos1 = 1
 {
 &FsMag1 = 2
 }
 }
 Var 0124, name RotRPos1, Link IOCARD_SW, Input 26 // switch magneto moteur 1 sur R-mag
 {
 IF &RotLPos1 = 0
 {
 IF &RotRPos1 = 0
 {
 IF &RotBothPos1 = 0
 {
 &FsMag1 = 0
 }
 }
 }
 IF &RotRPos1 = 1
 {
 &FsMag1 = 1
 }
 }
 Var 0125, name RotBothPos1, Link IOCARD_SW, Input 19 // switch magneto moteur 1 sur Both
 {
 IF &RotBothPos1 = 1
 {
 &FsMag1 = 3
 }
 }
 Var 0126, name PushStart1, Link IOCARD_SW, Input 18 // switch start moteur 1
 {
 IF &PushStart1 = 1
 {
 IF &RotBothPos1 = 1
 {
 &FsMag1 = 4
 }
 }
 IF &PushStart1 = 1
 {
 IF &RotBothPos1 = 0
 {
 IF &RotLPos1 = 1
 {
 &FsMag1 = 2
 }
 IF &RotBothPos1 = 1
 {
 &FsMag1 = 3
 }
 IF &RotRPos1 = 1
 {
 &FsMag1 = 1
 }
 IF &RotLPos1 = 0
 {
 IF &RotRPos1 = 0
 {
 IF &RotBothPos1 = 0
 {
 &FsMag1 = 0
 }
 }
 }
 }
 }
 }
 Var 0127, name FsMag2, Link FSUIPC_INOUT, Offset $092A, Length 2 // état magneto moteur 2
 {
 CALL &sb_led_start
 CALL &sb_led_courant
 }
 Var 0128, name RotLPos2, Link IOCARD_SW, Input 22 // switch magneto moteur 2 sur L-mag
 {
 IF &RotLPos2 = 1
 {
 &FsMag2 = 2
 }
 }
 Var 0129, name RotRPos2, Link IOCARD_SW, Input 20 // switch magneto moteur 2 sur R-mag
 {
 IF &RotLPos2 = 0
 {
 IF &RotRPos2 = 0
 {
 IF &RotBothPos2 = 0
 {
 &FsMag2 = 0
 }
 }
 }
 IF &RotRPos2 = 1
 {
 &FsMag2 = 1
 }
 }
 Var 0130, name RotBothPos2, Link IOCARD_SW, Input 24 // switch magneto moteur 2 sur Both
 {
 IF &RotBothPos2 = 1
 {
 &FsMag2 = 3
 }
 }
 Var 0131, name PushStart2, Link IOCARD_SW, Input 25 // switch start moteur 2
 {
 IF &PushStart2 = 1
 {
 IF &RotBothPos2 = 1
 {
 &FsMag2 = 4
 }
 }
 IF &PushStart2 = 1
 {
 IF &RotBothPos2 = 0
 {
 IF &RotLPos2 = 1
 {
 &FsMag2 = 2
 }
 IF &RotBothPos2 = 1
 {
 &FsMag2 = 3
 }
 IF &RotRPos2 = 1
 {
 &FsMag2 = 1
 }
 IF &RotLPos2 = 0
 {
 IF &RotRPos2 = 0
 {
 IF &RotBothPos2 = 0
 {
 &FsMag2 = 0
 }
 }
 }
 }
 }
 }
 Var 0134, name pump1_off_sw, Link IOCARD_SW, Device 1, Input 43 // inter fuel pump 1 position OFF
 {
 IF &pump1_off_sw = 1
 {
 IF &pump1_hi_sw = 0
 {
 &pump_fs = CLEARBIT 0
 }
 }
 ELSE
 {
 &pump_fs = SETBIT 0
 }
 }
 Var 0135, name pump1_hi_sw, Link IOCARD_SW, Device 1, Input 39 // inter fuel pump1 position HI
 {
 IF &pump1_hi_sw = 1
 {
 IF &pump1_off_sw = 0
 {
 &pump_fs = SETBIT 0
 }
 }
 }
 Var 0136, name pump2_off_sw, Link IOCARD_SW, Device 1, Input 35 // inter fuel pump2 position OFF
 {
 IF &pump2_off_sw = 1
 {
 IF &pump2_hi_sw = 0
 {
 &pump_fs = CLEARBIT 1
 }
 }
 ELSE
 {
 &pump_fs = SETBIT 1
 }
 }
 Var 0137, name pump2_hi_sw, Link IOCARD_SW, Device 1, Input 42 // inter fuel pump2 position HI
 {
 IF &pump2_hi_sw = 1
 {
 IF &pump2_off_sw = 0
 {
 &pump_fs = SETBIT 1
 }
 }
 }
 Var 0138, name pump_fs, Link FSUIPC_OUT, Offset $3125, Length 1 // état des fuel pump dans FS
 {
 IF &pump1_off_sw = 1
 {
 IF &pump1_hi_sw = 0
 {
 &pump_fs = CLEARBIT 0
 }
 }
 ELSE
 {
 &pump_fs = SETBIT 0
 }
 IF &pump1_hi_sw = 1
 {
 IF &pump1_off_sw = 0
 {
 &pump_fs = SETBIT 0
 }
 }
 IF &pump2_off_sw = 1
 {
 IF &pump2_hi_sw = 0
 {
 &pump_fs = CLEARBIT 1
 }
 }
 ELSE
 {
 &pump_fs = SETBIT 1
 }
 IF &pump2_hi_sw = 1
 {
 IF &pump2_off_sw = 0
 {
 &pump_fs = SETBIT 1
 }
 }
 }
 Var 0144, name sw_anun_test, Link IOCARD_SW, Device 1, Input 36 // switch de l'anun test
 {
 CALL &sb_anun_test
 }
 Var 0145, name sb_anun_test, Link SUBRUTINE // conditions allumage anun test
 {
 IF &main_busvolt > 1700
 {
 IF &sw_anun_test = 1
 {
 &Led_parking = 1
 &led_flap_appr = 1
 &led_flap_down = 1
 &led_flap_trans = 1
 &Led_gear_L = 1
 &Led_gear_nose = 1
 &Led_gear_R = 1
 &Led_gear_trans = 1
 &Led_inner = 1
 &Led_middle = 1
 &Led_outer = 1
 &led_start = 1
 &Led_Lalt = 1
 &Led_Ralt = 1
 &Led_lowvolt = 1
 &Led_gearup = 1
 &Led_brakes = 1
 }
 ELSE
 {
 &Led_parking = &tpled_park
 &led_flap_appr = &tpled_flap_app
 &led_flap_down = &tpled_flap_dow
 &led_flap_trans = &tpled_flap_tra
 &Led_gear_L = &tpled_gear_L
 &Led_gear_nose = &tpled_gear_nos
 &Led_gear_R = &tpled_gear_R
 &Led_gear_trans = &tpled_gear_tra
 &Led_inner = &tpled_inner
 &Led_middle = &tpled_middle
 &Led_outer = &tpled_outer
 &Led_Lalt = &tpled_Lalt
 &Led_Ralt = &tpled_Ralt
 &led_start = &tpled_start
 &Led_lowvolt = &tpled_lowvolt
 &Led_gearup = &tpled_gearup
 &Led_brakes = &tpled_brakes
 }
 }
 }
 Var 0150, name sw_landing, Link IOCARD_SW, Device 1, Input 34 // landing light
 {
 V0160 = CHANGEBIT 2 ,&sw_landing
 }
 Var 0151, name sw_nav, Link IOCARD_SW, Device 1, Input 22 // nav light
 {
 V0160 = CHANGEBIT 0 ,&sw_nav
 }
 Var 0152, name sw_taxi, Link IOCARD_SW, Device 1, Input 33 // taxi light
 {
 V0160 = CHANGEBIT 3 ,&sw_taxi
 }
 Var 0153, name sw_bcn, Link IOCARD_SW, Device 1, Input 26 // BCN
 {
 V0160 = CHANGEBIT 1 ,&sw_bcn
 }
 Var 0154, name sw_strobe, Link IOCARD_SW, Device 1, Input 18 // Strobe
 {
 V0160 = CHANGEBIT 4 ,&sw_strobe
 }
 Var 0155, name sw_instrument, Link IOCARD_SW, Device 1, Input 19 // instruments
 {
 V0160 = CHANGEBIT 5 ,&sw_instrument
 }
 Var 0156, name sw_wing, Link IOCARD_SW, Device 1, Input 30 // wing
 {
 V0160 = CHANGEBIT 7 ,&sw_wing
 }
 Var 0160, Link FSUIPC_INOUT, Offset $0D0C, Length 2 // Control des Lights
 {
 V0160 = CHANGEBIT 2 ,&sw_landing
 V0160 = CHANGEBIT 0 ,&sw_nav
 V0160 = CHANGEBIT 3 ,&sw_taxi
 V0160 = CHANGEBIT 1 ,&sw_bcn
 V0160 = CHANGEBIT 4 ,&sw_strobe
 V0160 = CHANGEBIT 5 ,&sw_instrument
 V0160 = CHANGEBIT 7 ,&sw_wing
 }
 Var 0165, name Parking, Link FSUIPC_INOUT, Offset $0BC8, Length 2 // Etat parking brake dans FS
 {
 CALL &sb_led_park
 CALL &sb_led_courant
 }
 Var 0166, name Parking_sw, Link IOCARD_SW, Input 23
 {
 IF &Parking_sw = 1
 {
 &Parking = 32767
 }
 ELSE
 {
 &Parking = 0
 }
 }
 Var 0167, name Led_parking, Link IOCARD_OUT, Output 24 // Voyant de parking brake
 Var 0205, name tpled_park, Value 0 // variable temporaire parking led
 Var 0168, name sb_led_park, Link SUBRUTINE // conditions pour le voyant de park brake
 {
 IF &Parking = 32767 // si le frein de park est ON
 {
 &tpled_park = 1
 }
 ELSE
 {
 &tpled_park = 0
 }
 }
 Var 0170, name bat, Link FSUIPC_INOUT, Offset $281C, Length 1
 {
 &bat = &sw_bat
 }
 Var 0171, name sw_bat, Link IOCARD_SW, Input 14
 {
 &bat = &sw_bat
 }
 Var 0172, name prop_sync, Link FSUIPC_INOUT, Offset $243C, Length 4 // synchro hélice
 {
 &prop_sync = &sw_prop_sync
 }
 Var 0173, name sw_prop_sync, Link IOCARD_SW, Input 16 // inter de synchro hélice
 {
 &prop_sync = &sw_prop_sync
 }
 Var 0174, name avionic, Link FSUIPC_INOUT, Offset $2E80, Length 4 // avionic master
 {
 &avionic = &sw_avionic
 }
 Var 0175, name sw_avionic, Link IOCARD_SW, Input 17 // inter avionic master
 {
 &avionic = &sw_avionic
 }
 Var 0176, name left_alt, Link FSUIPC_INOUT, Offset $3B78, Length 4 // L ALT
 {
 &left_alt = &sw_left_alt
 }
 Var 0177, name sw_left_alt, Link IOCARD_SW, Input 15 // inter Left ALT
 {
 &left_alt = &sw_left_alt
 }
 Var 0178, name right_alt, Link FSUIPC_INOUT, Offset $3AB8, Length 4 // R ALT
 {
 &right_alt = &sw_right_alt
 }
 Var 0179, name sw_right_alt, Link IOCARD_SW, Input 9 // inter R ALT
 {
 &right_alt = &sw_right_alt
 }
 Var 0180, name av_busvolt, Link FSUIPC_INOUT, Offset $2850, Length 8, Numbers 2 // état du bus avionic dans FS
 {
 IF &av_busvolt > 1700
 {
 &rly_avbus = 0
 }
 ELSE
 {
 &rly_avbus = 1
 }
 }
 Var 0181, name rly_avbus, Link IOCARD_OUT, Output 19 // sortie relay avionic busvolt
 {
 IF &av_busvolt > 1700 // 1700= 17 Volts
 {
 &rly_avbus = 0
 }
 ELSE
 {
 &rly_avbus = 1
 }
 }
 Var 0185, name Lfuel_sel, Link FSUIPC_INOUT, Offset $3880, Length 4 // état du fuel selector gauche
 {
 IF &Lfuel_off_sw = 0
 {
 IF &Lfuel_xfeed_sw = 0
 {
 &Lfuel_sel = 1
 }
 }
 IF &Lfuel_off_sw = 1
 {
 IF &Lfuel_xfeed_sw = 0
 {
 &Lfuel_sel = 0
 }
 }
 IF &Lfuel_xfeed_sw = 0
 {
 IF &Lfuel_off_sw = 0
 {
 &Lfuel_sel = 1
 }
 }
 IF &Lfuel_xfeed_sw = 1
 {
 &Lfuel_sel = 3
 }
 }
 Var 0187, name Lfuel_off_sw, Link IOCARD_SW, Input 64 // switch fuel selector gauche OFF
 {
 IF &Lfuel_off_sw = 0
 {
 IF &Lfuel_xfeed_sw = 0
 {
 &Lfuel_sel = 1
 }
 }
 IF &Lfuel_off_sw = 1
 {
 IF &Lfuel_xfeed_sw = 0
 {
 &Lfuel_sel = 0
 }
 }
 }
 Var 0188, name Lfuel_xfeed_sw, Link IOCARD_SW, Input 65 // switch fuel selector gauche XFEED
 {
 IF &Lfuel_xfeed_sw = 0
 {
 IF &Lfuel_off_sw = 0
 {
 &Lfuel_sel = 1
 }
 }
 IF &Lfuel_xfeed_sw = 1
 {
 &Lfuel_sel = 3
 }
 }
 Var 0186, name Rfuel_sel, Link FSUIPC_INOUT, Offset $37C0, Length 4 // état du fuel selector droit
 {
 IF &Rfuel_off_sw = 0
 {
 IF &Rfuel_xfeed_sw = 0
 {
 &Rfuel_sel = 1
 }
 }
 IF &Rfuel_off_sw = 1
 {
 IF &Rfuel_xfeed_sw = 0
 {
 &Rfuel_sel = 0
 }
 }
 IF &Rfuel_xfeed_sw = 0
 {
 IF &Rfuel_off_sw = 0
 {
 &Rfuel_sel = 1
 }
 }
 IF &Rfuel_xfeed_sw = 1
 {
 &Rfuel_sel = 2
 }
 }
 Var 0189, name Rfuel_off_sw, Link IOCARD_SW, Input 67 // switch fuel selector droit OFF
 {
 IF &Rfuel_off_sw = 0
 {
 IF &Rfuel_xfeed_sw = 0
 {
 &Rfuel_sel = 1
 }
 }
 IF &Rfuel_off_sw = 1
 {
 IF &Rfuel_xfeed_sw = 0
 {
 &Rfuel_sel = 0
 }
 }
 }
 Var 0190, name Rfuel_xfeed_sw, Link IOCARD_SW, Input 66 // switch fuel selector droit XFEED
 {
 IF &Rfuel_xfeed_sw = 0
 {
 IF &Rfuel_off_sw = 0
 {
 &Rfuel_sel = 1
 }
 }
 IF &Rfuel_xfeed_sw = 1
 {
 &Rfuel_sel = 2
 }
 }
 Var 0200, name main_busvolt, Link FSUIPC_INOUT, Offset $2840, Length 8, Numbers 2 // tension main bus dans FS
 {
 CALL &sb_led_courant
 CALL &sb_rly_mainbus
 CALL &sb_anun_test
 CALL &sb_led_shield
 }
 Var 0201, name sb_rly_mainbus, Link SUBRUTINE // Relay couplé au main bus volt
 {
 IF &main_busvolt > 1700
 {
 &rly_mainbus = 1
 }
 ELSE
 {
 &rly_mainbus = 0
 }
 }
 Var 0202, name rly_mainbus, Link IOCARD_OUT, Output 18 // sortie pour le relay du mainbus
 Var 0203, name sb_led_courant, Link SUBRUTINE // condition voyants en fonction du mainbus
 {
 IF &main_busvolt > 1700
 {
 &Led_parking = &tpled_park
 &led_flap_appr = &tpled_flap_app
 &led_flap_down = &tpled_flap_dow
 &led_flap_trans = &tpled_flap_tra
 &Led_outer = &tpled_outer
 &Led_middle = &tpled_middle
 &Led_inner = &tpled_inner
 &Led_gear_L = &tpled_gear_L
 &Led_gear_nose = &tpled_gear_nos
 &Led_gear_R = &tpled_gear_R
 &Led_gear_trans = &tpled_gear_tra
 &Led_inner = &tpled_inner
 &Led_middle = &tpled_middle
 &Led_outer = &tpled_outer
 &led_start = &tpled_start
 &Led_Lalt = &tpled_Lalt
 &Led_Ralt = &tpled_Ralt
 &Led_lowvolt = &tpled_lowvolt
 &Led_gearup = &tpled_gearup
 &Led_brakes = &tpled_brakes
 }
 ELSE
 {
 &Led_parking = 0
 &led_flap_appr = 0
 &led_flap_down = 0
 &led_flap_trans = 0
 &Led_outer = 0
 &Led_middle = 0
 &Led_inner = 0
 &Led_gear_L = 0
 &Led_gear_nose = 0
 &Led_gear_R = 0
 &Led_gear_trans = 0
 &Led_inner = 0
 &Led_middle = 0
 &Led_outer = 0
 &led_start = 0
 &Led_Lalt = 0
 &Led_Ralt = 0
 &Led_lowvolt = 0
 &Led_gearup = 0
 &Led_brakes = 0
 }
 }
 Var 0215, name tpled_start, Value 0
 Var 0216, name tpled_Lalt, Value 0
 Var 0217, name tpled_Ralt, Value 0
 Var 0218, name tpled_gearup, Value 0
 Var 0219, name tpled_lowvolt, Value 0
 Var 0220, name tpled_brakes, Value 0
 Var 0221, name led_start, Link IOCARD_OUT, Output 48 // voyant start
 Var 0222, name Led_Lalt, Link IOCARD_OUT, Output 47 // voyant L alt
 Var 0223, name Led_Ralt, Link IOCARD_OUT, Output 46 // voyant R alt
 Var 0224, name Led_gearup, Link IOCARD_OUT, Output 45 // voyant gear up
 Var 0225, name Led_lowvolt, Link IOCARD_OUT, Output 44 // voyant low volt
 Var 0226, name Led_brakes, Link IOCARD_OUT, Output 43 // voyant brakes
 Var 0227, name sb_led_shield, Link SUBRUTINE // conditions voyant du glare shield
 {
 CALL &sb_lowvolt
 CALL &sb_led_courant
 CALL &sb_led_Lalt
 CALL &sb_led_Ralt
 CALL &sb_led_start
 }
 Var 0228, name sb_lowvolt, Link SUBRUTINE // routine intermédiare voyant low volt
 {
 IF &main_busvolt < 2600
 {
 &tpled_lowvolt = 1
 }
 ELSE
 {
 &tpled_lowvolt = 0
 }
 }
 Var 0229, name sb_led_Lalt, Link SUBRUTINE // routine intermediaire voyant L-alt
 {
 IF &Lalt_bus_volt < 2800
 {
 &tpled_Lalt = 1
 }
 ELSE
 {
 &tpled_Lalt = 0
 }
 }
 Var 0230, name Lalt_bus_volt, Link FSUIPC_INOUT, Offset $2880, Length 8, Numbers 2 // tension du bus du L-alt
 {
 CALL &sb_led_Lalt
 CALL &sb_led_courant
 }
 Var 0231, name sb_led_Ralt, Link SUBRUTINE // routine intermediaire voyant R-alt
 {
 IF &Ralt_bus_volt < 2800
 {
 &tpled_Ralt = 1
 }
 ELSE
 {
 &tpled_Ralt = 0
 }
 }
 Var 0232, name Ralt_bus_volt, Link FSUIPC_INOUT, Offset $2890, Length 8, Numbers 2 // tension du bus du R-alt
 {
 CALL &sb_led_Ralt
 CALL &sb_led_courant
 }
 Var 0233, name sb_led_start, Link SUBRUTINE // routine intermédiaire voyant start
 {
 C0 = &FsMag1 = 4
 C1 = &FsMag2 = 4
 IF C0 OR C1
 {
 &tpled_start = 1
 }
 ELSE
 {
 &tpled_start = 0
 }
 }
 Var 0234, name sb_led_gearup, Link SUBRUTINE // routine intermediaire voyant gear-up
 {
 IF &GEAR = 16383
 {
 &tpled_gearup = 0
 }
 ELSE
 {
 C0 = &throttle1_pos < 7000
 C1 = &throttle2_pos < 7000
 C2 = C0 OR C1
 C0 = &FLAPS = 16383
 C2 = C0 OR C2
 IF C2
 {
 &tpled_gearup = 1
 }
 ELSE
 {
 &tpled_gearup = 0
 }
 }
 }
 Var 0300, name throttle1_pos, Link FSUIPC_INOUT, Offset $088C, Length 2 // position manette des gaz moteur 1
 {
 CALL &sb_led_gearup
 CALL &sb_led_courant
 }
 Var 0301, name throttle2_pos, Link FSUIPC_INOUT, Offset $0924, Length 2 // position manette des gaz moteur 2
 {
 CALL &sb_led_gearup
 CALL &sb_led_courant
 }
 Var 0500, name BARO_bug, Link FSUIPC_INOUT, Offset $0330, Length 2 // pression athmo *16
 Var 0501, name cts_baro, Link IOCARD_ENCODER, Input 1, Aceleration 2, Type 2 // encodeur baro et obs2 ( avec le sw)
 {
 IF &sw_baro = 1
 {
 &CRS_2_bug = ROTATE 0 ,359 ,&cts_baro
 }
 ELSE
 {
 IF &cts_baro > 0 // turn right
 {
 &BARO_bug = &BARO_bug + 6
 }
 IF &cts_baro < 0 // turn left
 {
 &BARO_bug = &BARO_bug - 6
 }
 }
 }
 Var 0503, name sw_baro, Link IOCARD_SW, Input 0 // switch de l'encodeur baro (pour l'obs2)
 Var 0502, name CRS_2_bug, Link FSUIPC_INOUT, Offset $0C5E, Length 2 // Etat de l'OBS 2
 Var 0510, name CRS_bug, Link FSUIPC_INOUT, Offset $0C4E, Length 2 // Etat de l'OBS nav1
 Var 0511, name sw_crs, Link IOCARD_SW, Input 6 // push OBS nav1
 Var 0512, name cts_crs, Link IOCARD_ENCODER, Input 3, Aceleration 1, Type 2 // encodeur de l'OBS 1
 {
 IF &sw_crs = 1
 {
 L0 = &cts_crs * 10
 &CRS_bug = ROTATE 0 ,359 ,L0
 }
 ELSE
 {
 &CRS_bug = ROTATE 0 ,359 ,&cts_crs
 }
 }
 Var 0505, name HDG_bug, Link FSUIPC_INOUT, Offset $07CC, Length 2 // Etat du selecteur de cap
 Var 0506, name sw_hdg, Link IOCARD_SW, Input 5 // push du selecteur de cap
 Var 0507, name cts_hdg, Link IOCARD_ENCODER, Input 7, Aceleration 1, Type 2 // encodeur du selecteur de cap
 {
 IF &sw_hdg = 1
 {
 L0 = &cts_hdg * -10
 &calc_hdg = ROTATE 1 ,360 ,L0
 }
 ELSE
 {
 L0 = &cts_hdg * -1
 &calc_hdg = ROTATE 1 ,360 ,L0
 }
 }
 Var 0508, name calc_hdg // calcul conversion du cap en degrés
 {
 L0 = &calc_hdg * 65536
 L0 = L0 / 360
 L0 = L0 + 1
 &HDG_bug = L0
 }
 Var 0514, name AP_ALT, Link FSUIPC_INOUT, Offset $07D4, Length 4 // Altitude pilote auto en mètres x 65536
 Var 0515, name AP_VS, Link FSUIPC_INOUT, Offset $07F2, Length 2, Type 1, Value 0 // VS du pilote auto en ft/min
 Var 0516, name cts_ap, Link IOCARD_ENCODER, Input 41, Aceleration 1, Type 2 // encodeur du pilote auto
 {
 IF &sw_ap_alt = 1
 {
 L0 = &cts_ap * -100
 &AP_VS = LIMIT -3000 ,3000 ,L0
 }
 ELSE
 {
 L0 = &cts_ap * -30.48
 &calc_ap_alt = LIMIT 0 ,6400 ,L0
 }
 }
 Var 0517, name calc_ap_alt // conversion de l'altitude du PA en feet
 {
 L0 = &calc_ap_alt * 65536 // en mètres
 &AP_ALT = L0
 }
 Var 0518, name sw_ap_alt, Link IOCARD_SW, Input 36 // switch de l'encodeur du pilote auto
 Var 0600, name fs_sby_com1, Link FSUIPC_INOUT, Offset $311A, Length 2 // frequence standby com1
 Var 0601, name cts_com1, Link IOCARD_ENCODER, Input 57, Aceleration 2, Type 2 // encodeur com1
 {
 IF &sw_com1 = 0 // réglage des entiers
 {
 L0 = &cts_com1 * -1 // inversion sens de rotation de l'encodeur
 &calc_ent_com1 = ROTATE 18 ,36 ,L0
 }
 ELSE // réglage des décimales
 {
 L0 = &cts_com1 * -1 // inversion sens de rotation de l'encodeur
 &calc_dec_com1 = ROTATE 0 ,99 ,L0
 }
 CALL &sb_reg_com1
 }
 Var 0602, name sw_com1, Link IOCARD_SW, Input 39 // switch de l'encodeur com1
 Var 0603, name calc_ent_com1
 Var 0604, name calc_dec_com1
 Var 0605, name sb_reg_com1, Link SUBRUTINE
 {
 L0 = &calc_ent_com1 * 100
 L1 = L0 + &calc_dec_com1
 &fs_sby_com1 = TOBCD L1
 }
 Var 0610, name fs_sby_com2, Link FSUIPC_INOUT, Offset $311C, Length 2 // frequence standby com2
 Var 0611, name cts_com2, Link IOCARD_ENCODER, Input 59, Aceleration 2, Type 2 // encodeur com2
 {
 IF &sw_com2 = 0 // réglage des entiers
 {
 L0 = &cts_com2 * -1 // inversion sens de rotation de l'encodeur
 &calc_ent_com2 = ROTATE 18 ,36 ,L0
 }
 ELSE // réglage des décimales
 {
 L0 = &cts_com2 * -1 // inversion sens de rotation de l'encodeur
 &calc_dec_com2 = ROTATE 0 ,99 ,L0
 }
 CALL &sb_reg_com2
 }
 Var 0612, name sw_com2, Link IOCARD_SW, Input 43 // switch de l'encodeur com2
 Var 0613, name calc_ent_com2
 Var 0614, name calc_dec_com2
 Var 0615, name sb_reg_com2, Link SUBRUTINE
 {
 L0 = &calc_ent_com2 * 100
 L1 = L0 + &calc_dec_com2
 &fs_sby_com2 = TOBCD L1
 }
 Var 0620, name fs_sby_nav1, Link FSUIPC_INOUT, Offset $311E, Length 2 // frequence standby nav1
 Var 0621, name cts_nav1, Link IOCARD_ENCODER, Input 55, Aceleration 2, Type 2 // encodeur nav1
 {
 IF &sw_nav1 = 0 // réglage des entiers
 {
 L0 = &cts_nav1 * -1 // inversion sens de rotation de l'encodeur
 &calc_ent_nav1 = ROTATE 8 ,17 ,L0
 }
 ELSE // réglage des décimales
 {
 L0 = &cts_nav1 * -1 // inversion sens de rotation de l'encodeur
 &calc_dec_nav1 = ROTATE 0 ,99 ,L0
 }
 CALL &sb_reg_nav1
 }
 Var 0622, name sw_nav1, Link IOCARD_SW, Input 44 // switch de l'encodeur nav1
 Var 0623, name calc_ent_nav1
 Var 0624, name calc_dec_nav1
 Var 0625, name sb_reg_nav1, Link SUBRUTINE
 {
 L0 = &calc_ent_nav1 * 100
 L1 = L0 + &calc_dec_nav1
 &fs_sby_nav1 = TOBCD L1
 }
 Var 0630, name fs_sby_nav2, Link FSUIPC_INOUT, Offset $3120, Length 2 // frequence standby nav2
 Var 0631, name cts_nav2, Link IOCARD_ENCODER, Input 61, Aceleration 2, Type 2 // encodeur nav2
 {
 IF &sw_nav1 = 0 // réglage des entiers
 {
 L0 = &cts_nav2 * -1 // inversion sens de rotation de l'encodeur
 &calc_ent_nav2 = ROTATE 8 ,17 ,L0
 }
 ELSE // réglage des décimales
 {
 L0 = &cts_nav2 * -1 // inversion sens de rotation de l'encodeur
 &calc_dec_nav2 = ROTATE 0 ,99 ,L0
 }
 CALL &sb_reg_nav2
 }
 Var 0632, name sw_nav2, Link IOCARD_SW, Input 40 // switch de l'encodeur nav2
 Var 0633, name calc_ent_nav2
 Var 0634, name calc_dec_nav2
 Var 0635, name sb_reg_nav2, Link SUBRUTINE
 {
 L0 = &calc_ent_nav2 * 100
 L1 = L0 + &calc_dec_nav2
 &fs_sby_nav2 = TOBCD L1
 }
A noter que le pilote auto et les 4 poussoirs de selection des fréquences activ/sby ne sont pas dans le script car interfacés par la carte Bodnar.

 
  