code baron58

Pour 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.