code baron58

Nous répertorions ici, divers programmes pouvant vous aider dans vos premiers pas et vos étapes futures

code baron58

Messagede FiX » Ven 26 Oct 2012 16:47

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.
Dernière édition par FiX le Mer 7 Nov 2012 15:12, édité 3 fois.
i7 2600k/P8P67pro/16Go PC3 17000/RX 580/SSD 250 Go et 120Go/W10x64
https://www.facebook.com/cessna150.sim
Avatar de l’utilisateur
FiX
 
Messages: 4664
Inscription: 8/01/10
Localisation: Reims/Maubeuge

Re: code baron58

Messagede Colibri » Ven 26 Oct 2012 17:10

Merci pour le partage, Fix. Tu devrais faire des heureux !
applaublanc
Vincent
Avatar de l’utilisateur
Colibri
 
Messages: 1456
Inscription: 13/05/09
Localisation: Guérande (44)

Re: code baron58

Messagede christian » Mar 30 Oct 2012 11:30

Salut ,ben voilà ,il y'a déjà moi.Merci pour le partage Fix applaublanc
Christian ..
carte mère msi Z270 -CG Nvidia GTX1070-trois écrans 27" sur matrox + un 20"+5"et un 12" -processeur I7 7700k (co) ov à 4.9ghz -16ghz DDR4-SSD 500 gigas Samsung pour P3DV4 +SSD 125gigas + seven 64+Addon France VFR
Avatar de l’utilisateur
christian
 
Messages: 136
Inscription: 1/05/09
Localisation: LFAW- Errouville

Re: code baron58

Messagede Boutondair » Mar 30 Oct 2012 12:25

merci affiche merci affiche merci affiche merci affiche

Super sympa ton partage Fix

David cligneoeil applaublanc
Image Image
Petit je rêvais que je volerais, maintenant grâce au virtuel je vole !!!!!
Avatar de l’utilisateur
Boutondair
Administrateur du site
 
Messages: 4174
Inscription: 20/04/09
Localisation: Ballans (17) proche de Cognac

Re: code baron58

Messagede FiX » Mer 7 Nov 2012 15:13

Mise à jour du code avec le pilote auto (altitude et VS) ainsi que les radios nav/com
i7 2600k/P8P67pro/16Go PC3 17000/RX 580/SSD 250 Go et 120Go/W10x64
https://www.facebook.com/cessna150.sim
Avatar de l’utilisateur
FiX
 
Messages: 4664
Inscription: 8/01/10
Localisation: Reims/Maubeuge


Retourner vers Programmes testés et prêts à l'emploi





Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités