Voila toute une après midi que j'essai, sans succès, de faire fonctionner un code.
Je présente la chose.
Apres discussion entre Twin Otteriste (donc avec Philippe Papa Lima) il y a dans le Twin d'Aerosoft une fonction qui n'est pas simulé.
La fonction "REFUEL" qui permet de transférer du carburant des réservoirs principaux (AFT et FWD) vers les réservoirs des ailes.

Les 4 réservoirs sont disponibles dans FSX et utilisent les variables par défaut de FSX.
Donc je me suis dis qu'il était possible avec SIOC de simuler cette fonction.
J'ai tout d'abord fait un code simple pour voir si on pouvait transférer du carburant du réservoir FWD vers le réservoir d'aile droite.

- Code: Tout sélectionner
Var 0640, name Fuel_Center, Link FSUIPC_INOUT, Offset $0B74, Length 4 // Capacity Fuel Tank Center FWD 100 % = 8388608 = 559.4 Kg
Var 0642, name FuelAux_Right, Link FSUIPC_INOUT, Offset $0BA4, Length 4 // Capacity Fuel Tank Aux Right 8388908 = 100 % = 112 Kg
Var 0644, name sw_Refuel_Rgt, Link IOCARD_SW, Input 128, Type I // Switch Refuel Fuel Tank Aux Right
{
IF &sw_Refuel_Rgt = 1 // SI LE SWITCH EST 1
{
&Fuel_Center = &Fuel_Center - 83891
&FuelAux_Right = &FuelAux_Right + 446998
}
ELSE // SI LE SWITCH EST 0
{
&Fuel_Center = &Fuel_Center
&FuelAux_Right = &FuelAux_Right
}
}
Ce code fonctionne évidement qu'une fois à chaque manœuvre du switch.
Je précise que seule les offset qui sont en lecture et écriture pour les réservoirs sont en %.
Maintenant je cherche à ce que ce transfert se fasse tant que le switch est sur 1 (REFUEL) et s'arrête quand je remet le switch sur 0 (OFF).
- Code: Tout sélectionner
Var 0640, name Fuel_Center, Link FSUIPC_INOUT, Offset $0B74, Length 4 // Capacity Fuel Tank Center FWD 100 % = 8388608 = 559.4 Kg
Var 0642, name FuelAux_Right, Link FSUIPC_INOUT, Offset $0BA4, Length 4 // Capacity Fuel Tank Aux Right 8388908 = 100 % = 112 Kg
Var 0644, name sw_Refuel_Rgt, Link IOCARD_SW, Input 128, Type I // Switch Refuel Fuel Tank Aux Right
{
IF &sw_Refuel_Rgt > 0 // SI LE SWITCH EST > 0
{
&sw_Refuel_Rgt = TIMER 1,1,100
&Fuel_Center = &Fuel_Center - 15248.305 // Refuel - 1 Kg = - 15248.305
}
ELSE // SI LE SWITCH EST 0
{
&Fuel_Center = &Fuel_Center
}
}
Pour l'instant, j'essaie juste de décrémenter pour le réservoir FWD. Avec ce code, si ca décrémente bien avec le switch sur REFUEL, quand je met le switch sur OFF, le TIMER ne s'arrête pas.
Je me suis dit que faire croire à une manœuvre du switch jusqu' a 100 fois, pourquoi pas... mais la je sèche.
A+
Christian