Routine SIOC vannes carburant Baron58

Bonjour à tous,
Voilà mon code pour les vannes carburant du Baron58 !
Merci à FiX pour son code qui m'a bien aidé.
Voilà mon code pour les vannes carburant du Baron58 !
Merci à FiX pour son code qui m'a bien aidé.
- Code: Tout sélectionner
// Routine vannes carburant Baron58
// Pierre01 le 7 11 2014
// 2 switch par vanne (D et G) : Position "ON" et "CROSS FEED"
// Chaque switch est ON dans la position correspondante
// En position OFF, les 2 switch sont "off";
// Delay de 2 secondes entre le basculement des switch et la gestion effective dans SIOC (évite l'arrêt momentané du moteur)
// Delay supplémentaire quand on passe dans la position "off", permet l'arrêt moteur après "x" secondes (7 dans mon cas) réglable avec les Var : &5200 et &5201
//
Var 0000, name init, value 0 // Routine initialisation
{
call &sub_V_Fuel_L // Gestion valve carburant Left
call &sub_V_Fuel_R // Gestion valve carburant Right
}
//
// ==========================================
// ££56 Routine Vannes carburant (Fuel valve)
// ==========================================
//
// Le passage de la position "ON" à "CROSS FEED" provoque un court arrêt moteur d'ou :
// L'appel de la subroutine "sub_V_Fuel_L" ou "sub_V_Fuel_R" après une attente de 2s
// et non par un "CALL" classique.
//
Var 5200, name Valves_delay, value 200 // Delay gestion des switch (entre "OFF", "ON" et "CROSS FEED")
Var 5201, name Valv_delay_of, value 500 // Delay supplémentaire si "OFF" (le moteur stoppe après "&Valves_delay + &Valv_delay_of" s)
Var 5202, name Valve_fuel_L, link FSUIPC_INOUT, Offset $3880, Length 4 // Commande Valve fuel Left
{
CALL &sub_V_Fuel_L // Accord entre FS et les switch vannes
}
Var 5204, name sw_fuel_L_ON, link IOCARD_SW, Input 141 // Switch position "ON"
{
&sub_V_Fuel_L = DELAY 0 &Valves_delay // Appel gestion switch après delay
}
Var 5205, name sw_fuel_L_CF, link IOCARD_SW, Input 140 // Switch position "CROSS FEED"
{
&sub_V_Fuel_L = DELAY 0 &Valves_delay
}
Var 5206, name sub_V_Fuel_L, Link SUBRUTINE // Gestion valve carburant Left
{
if &sw_fuel_L_ON = 1 // Si valve sur ON
{
&Valve_fuel_L = 1 // Commande sur ON
}
else
{
if &sw_fuel_L_CF = 1 // Si valve sur cross Feed
{
&Valve_fuel_L = 3 // Commande sur Cross Feed
}
else
{
&Valve_F_L_OFF = DELAY 0 &Valv_delay_of // delay +long à la fermeture
}
}
}
Var 5207, name Valve_F_L_OFF, link subrutine
{
&Valve_fuel_L = 0 // Fermeture vanne après delay supplémentaire
}
Var 5210, name Valve_fuel_R, link FSUIPC_INOUT, Offset $37C0, Length 4 // Commande Valve fuel Right
{
CALL &sub_V_Fuel_R
}
Var 5212, name sw_fuel_R_ON, link IOCARD_SW, Input 142 // "ON"
{
&sub_V_Fuel_R = DELAY 0 &Valves_delay
}
Var 5214, name sw_fuel_R_CF, link IOCARD_SW, Input 135 // "CROSS FEED"
{
&sub_V_Fuel_R = DELAY 0 &Valves_delay
}
Var 5216, name sub_V_Fuel_R, Link SUBRUTINE // Gestion valve carburant Right
{
if &sw_fuel_R_ON = 1 // Si valve sur ON
{
&Valve_fuel_R = 1 // Commande sur ON
}
else
{
if &sw_fuel_R_CF = 1 // Si valve sur cross Feed
{
&Valve_fuel_R = 2 // Commande sur Cross Feed
}
else
{
&Valve_F_R_OFF = DELAY 0 &Valv_delay_of // delay +long à la fermeture
}
}
}
Var 5217, name Valve_F_R_OFF, link subrutine
{
&Valve_fuel_R = 0 // Fermeture vanne après delay supplémentaire
}