Avionic

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.

// *****************************************************************************
// * Config_SIOC ver 3.7B1   -     By Manolo Vélez    -    www.opencockpits.com
// *****************************************************************************
// * FileName : sioc.txt
// * Date : 08/02/2010



Var 0000, name iNITIALISATION
{
  CALL &Init_inters     // Sub 0300
}
Au démarrage de Sioc, permet d'initialiser l'inter en fonction du panneau physique.

Var 0015, name AVIONIC, Link FSUIPC_INOUT, Offset $3103, Length 1     // Commande Avionique 0403
{
  CALL &AVIONIQUE     // Sub 0351 Ecrans instrum. allumé/étient
}
Lorsque cette variable est à 1 l'avionique est allumé. Dans FS, cela fonctionne même si les moteur n'ont pas démarré ce qui pourrait être une source de décharge rapide de la batterie. J'ai donc conditionné l'allumage des écrans au démarrage d'au moins un des moteur. Ici, ce n'est pas l'inter qui commande à FS mais la Subroutine 0351 AVIONIQUE. En cas de changement de l'ètat de la variable, par un clic malheureux pas exemple, l'avionique ne s'allumera que si les conditions sont remplies.



Var 0037, name L_ENGINCOMBUST, Link FSUIPC_IN, Offset $0894, Length 2     // "1" si moteur gauche démarré
{
  CALL &AVIONIQUE     // Sub 0351 Ecrans instrum. allumé/étient
}

Var 0038, name R_ENGINCOMBUST, Link FSUIPC_IN, Offset $092C, Length 2     // "1" si moteur droit démarré
{
  CALL &AVIONIQUE     // Sub 0351 Ecrans instrum. allumé/étient
}
Voila deux Offset très pratique pour la gestion du courant et de pas mal d'autre petites choses. Si le moteur à démarré, la valeur est à 1. Si un des moteur change d'ètat, on va voir dans la subroutine AVIONIQUE si l'on doit allumé ou éteindre les écrans.



Var 0300, name Init_inters, Link SUBRUTINE     // Initialisation des Inters
{  
  &AVIONIC = &AVIONIC_SW    Initialiser l'inter en fonction du panneau physique. 
}

Var 0351, name AVIONIQUE, Link SUBRUTINE     // Mise en route instrument si courant
{
  &AVIONIQUE = &L_ENGINCOMBUST + &R_ENGINCOMBUST
  IF &AVIONIQUE >= 1     // Si un des 2 moteurs en route
  {
    &AVIONIC = &AVIONIC_SW         // Ecrans allumés si inter ON
  }
  ELSE
  {
    &AVIONIC = 0         // Les 2 moteurs arrêtés, les écrans sont éteints
  }
}
Si un moteur est en route et que l'inter est sur ON les écrans s'allument.


Var 0403, name AVIONIC_SW, Link IOCARD_SW, Input 12     // Inter Avionique 0015
{
  CALL &AVIONIQUE     // Subrutine 0351éteindre ou allumer l'avionique
  CALL &EXT_POWER     // Subrutine 0319 Eteindre ou rallumer EXT PWR
}