Alarme EXT PWR


Attention, ce code (en NOIR) ne peut pas être utilisé en copié-collé à cause des explications (en JAUNE).
Pour que cela ne vous pose pas de souci rendez vous ICI pour retrouver le programme complet sans explication.


Ne sachant pas avec précision comment fonctionne un groupe d'alimentation extérieur ni les modalités d'utilisation, j'ai extrapolé en fonction des indications données par Claude Kieffer ICI. J'y ai ajouté quelques conditions, si un des moteur tourne l'alarme s'éteint (pas sur que ce soit une bonne idées) mais aussi si le frein est desserré ou si l'avion est en vol (en cas de manip catastrophique en plein vol). Cela me semble improbable mais plus logique, sinon bonjour la trainée,

 

 

Var 0319, name EXT_POWER, Link SUBRUTINE     // Alarme EXT POWER
{
  L0 = &AVIONIC_SW + &INVERTER_SW
  L1 = &R_ENG_TORQUE + &R_GEN_SW
  L2 = L0 + L1
  L1 = &N_PKG_BRAKE - &N_ACFT_ON_GND     // Avion au sol et frein serré
  L0 = L1 + L2
  L1 = &L_ENG_TORQUE + &L_GEN_SW
  L2 = L0 + L1
  IF L2 = 0     // Si les 6 inters Off et moteurs arrêtés
  {
    &EXT_PWR_LED = &BATTERY_SW         // Led allumée si inter Batt ON
  }
  ELSE
  {
    &EXT_PWR_LED = 0   
  }
}
L'alarme jaune EXT POWER s'allume systématiquement dès que l'inter BATTERY est sur ON sauf si :
Un des deux moteur tourne - variables &L ENG TORQUE ET R ENG TORQUE ou
Un des inter Avionic, inverter, Gen 1 ou Gen 2 est fermé ou
Si l'avion n'est plus au sol ou si le frein de parc n'est pas serré.

   Pour ces deux dernières conditions l'utilisation directe de la valeur des variables ou des inters n'est pas possible. Lorsque le frein est serré le switch est à 1 et la variable prend la valeur 32767. Si l'avion est au sol, ACFT ON GND à une valeur de 1. Je suis donc passé par des variables internes (ou variables non liées) qui mettent à zéro les valeurs si la condition est remplie. petit exemple pour le frein de parc.


Var 0412, name PKG_BRK_SW, Link IOCARD_SW, Input 7     // Inter de frein de parking
{
  &PKG_BRAKE = &PKG_BRK_SW * 32767     // Inter fermé = freins serrés
  IF &PKG_BRK_SW = 1   Si l'inter est fermé,
  {
    &N_PKG_BRAKE = 0    La variable interne 0007 N PKG BRAKE prend la valeur 0
  }
  ELSE
  {
    &N_PKG_BRAKE = 1    Sinon, elle prend la valeur 1
  }
  CALL &Park_Break_Sub     // Sub 337
}

 


Var 0006, name PKG_BRAKE, Link FSUIPC_INOUT, Offset $0BC8, Length 2     // Frein de parking
{
  &PKG_BRAKE = &PKG_BRK_SW * 32767 On accorde FS et le panneau physique.
}

 



Var 0007, name N_PKG_BRAKE     // Mémorise l'inverse de la valeur de Park Brake SW
{
  CALL &EXT_POWER   Si la valeur change, va éteindre ou rallumer l'alarme  EXT POWER
}

L'ensemble du code de Frein de park est disponible ICI.