Page 1 sur 1

code baron58

MessagePosté: Ven 26 Oct 2012 16:47
de FiX
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

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.

Re: code baron58

MessagePosté: Ven 26 Oct 2012 17:10
de Colibri
Merci pour le partage, Fix. Tu devrais faire des heureux !
applaublanc

Re: code baron58

MessagePosté: Mar 30 Oct 2012 11:30
de christian
Salut ,ben voilà ,il y'a déjà moi.Merci pour le partage Fix applaublanc
Christian ..

Re: code baron58

MessagePosté: Mar 30 Oct 2012 12:25
de Boutondair
merci affiche merci affiche merci affiche merci affiche

Super sympa ton partage Fix

David cligneoeil applaublanc

Re: code baron58

MessagePosté: Mer 7 Nov 2012 15:13
de FiX
Mise à jour du code avec le pilote auto (altitude et VS) ainsi que les radios nav/com