Page 1 sur 1

Repeter une action avec SIOC

MessagePosté: Sam 1 Déc 2018 20:18
de arcc
Bonsoir à tous.

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.
Image

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.

Image

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

Re: Repeter une action avec SIOC

MessagePosté: Sam 1 Déc 2018 22:53
de fab
Je ne sais pas si cela va t'aider mais voici un bout de code qui fait incrémenter une variable [reservoir] lorsque la variable [interrupteur] est a 1 et l’arrête si [interrupteur] passe à 0.

Est si l'interrupteur repasse sur 1, [reservoir] continue de s'incrémenter ...

Je l'ai fait avec une variable "interrupteur" car je n'ai pas de carte IO sous la main. (oui, je sais, c'est toujours le cordonnier qui est mal chaussé" tapebaton

Code: Tout sélectionner
Var 0005, name reservoir

Var 0006, name Remplissage
{
  IF &interrupteur = 1
  {
    &reservoir = &Remplissage   
  }
}

Var 0010, name interrupteur
{
  IF &interrupteur = 1
  {
    &Remplissage = &reservoir   
    &Remplissage = TIMER 100 ,1 ,100
  }
  ELSE
  {
    &Remplissage = 100   
  }
}

Re: Repeter une action avec SIOC

MessagePosté: Dim 2 Déc 2018 09:20
de JacquesZ
A ce propos des Wing tanks, c’est une option sur les Twins Otter.
Apparemment il faut configurer le Twin Aerosoft en faisant une modif dans le fichier Aircraft.cfg, car par défaut ces réservoirs ne sont pas actifs. https://forum.aerosoft.com/index.php?/topic/75194-twin-otter-extended-wing-fuel-tanks/, même si les inters sont bien présents sur le VC.

Il faut aussi penser dans ton code à arrêter le transfert si les réservoirs sont pleins et/ou complètement vides!

Jacques

Re: Repeter une action avec SIOC

MessagePosté: Dim 2 Déc 2018 14:00
de arcc
Pour repondre à Jacques.

merci mais je crois comprendre que c'est pour la version 100 du Twin.
pour la version 300, celle que j'utilise, les reservoirs d'ailes sont tout a fait operationnelles (sans modif du fichier cfg)
Je peux facilement les utiliser en les remplissant soit avec le "Fuel Planner" fournit avec le Twin ou tout simplement dans l'onglet "charge et carburant" de Fsx.
Dans le panel VC les interrupteurs Engine /Off / Refuel ne sont fonctionnels que pour les positions Engine et Off pas pour la position Refuel.


Pour Fab
Merci je vais regarder le code cet apres midi.

Christian

Re: Repeter une action avec SIOC

MessagePosté: Dim 2 Déc 2018 19:15
de arcc
Apres midi pluvieux, après midi studieux.

J'ai réussi, avec vos aides, a faire fonctionner le transfert de carburant entre les réservoirs principaux et les auxiliaires des ailes.
Bien sur un essais en vol sera programmé pour valider le tout.

Comme la justement dit Jacques, j'ai pensé à stopper le transfert quand les réservoirs Auxiliaires sont pleins.

J'ai adapté le code de Fabien pour vider un réservoir tout en remplissant un autre.

J'améliorerais le truc en ajoutant des conditions genre Alim en fonction..

Encore merci à vous deux.

Christian

Philippe si tu me lis chouettedoights

Re: Repeter une action avec SIOC

MessagePosté: Dim 2 Déc 2018 19:32
de fab
Bravo à toi pour l'adaptation ! applaublanc

Re: Repeter une action avec SIOC

MessagePosté: Lun 3 Déc 2018 01:43
de PapaLima
C'est génial !! Un vrai commandant de bord qui se respecte !!

Alors là moi je dis applaublanc B R A V O !!

Re: Repeter une action avec SIOC

MessagePosté: Lun 3 Déc 2018 15:04
de PapaLima
Christian,

J'ai pu avoir quelques informations concernant le fonctionnement de ce panel REFUEL dans un appareil grandeur (DHC-6 Série 300) chouettedoights

  • Le carburant se trouve dans 2 réservoirs sous le fuselage : réservoirs avant (fwd) et arrière (aft)
  • Dans chaque réservoirs, on a 4 cellules interconnectées par des flexibles.
  • Le transfert d'une cellule à l'autre se fait par une pompe à carburant (boost pumps)
  • Le réservoir avant (cellules 1 à 4) alimente le moteur droit. Il contient 691L. Le carburant est collecté via la cellule 4
  • Le réservoir arrière (cellules 5 à 8) alimente le moteur gauche. Il contient 755L. Le carburant est collecté via la cellule 5
  • Le sélecteur de réservoirs (FUEL TANK SELECTOR)
    BOTH ON FWD : Les deux moteurs sont alimentés par le réservoir avant
    NORM : Réservoir avant alimente le moteur droit, le réservoir arrière alimente le moteur gauche
    BOTH ON AFT : Les deux moteurs sont alimentés par le réservoir arrière
  • L'avion peut être équipé de réservoirs d'ailes de 168L chaque pour augmenter l'autonomie (1h de vol supplémentaire par réservoir).
  • Deux inters contrôlent l'alimentation depuis les réservoirs d'ailes.
  • Lorsque le TANK SELECTOR est sur NORM, le réservoir gauche alimente le moteur gauche, le réservoir droit alimente le moteur droit.
  • Les indicateurs de quantité de réservoir L WING TANK et R WING TANK sont gradués en 1/4 de E (Empty/Vide) à F (Full/Plein)
  • Lorsqu'il est plein, le réservoir d'aile contient environ 300Lbs de carburant
  • Le carburant placé dans les réservoirs d'ailes doit être consommé en priorité.
  • Lorsque l'appareil est équipé de skis pour un atterrissage prévu sur de la glace, les réservoirs d'aile ne doivent pas excéder la moitié de leur remplissage. Cette restriction ne s'applique pas pour les appareils montés sur roues ou flotteurs.
  • Contacteur REFUEL 3 positions:
    - L ENGINE ou R ENGINE : Met en marche la pompe réservoir aile gauche (L ENG) ou droite (R ENG)
    - OFF : Coupe les pompes à carburant des réservoirs d'aile
    - REFUEL : Ouvre la valve de remplissage des réservoirs d'aile
  • Les switchs BOOST PUMP doivent être mise sur ON afin de pouvoir alimenter les réservoirs d'aile à partir des réservoirs de fuselage.
  • Si le sélecteur est sur NORM, le réservoir avant remplira le réservoir aile droite et le réservoir arrière le réservoir aile gauche.
  • Le remplissage des réservoirs d'ailes (REFUEL) ne doit pas s'effectuer en vol mais seulement au sol car la cellule collecteur pompée peut se retrouver vide rapidement. Il est permis de faire un remplissage des réservoirs d'ailes pendant le roulage APRES atterrissage mais pas AVANT décollage pour assurer le remplissage max de la cellule 4!
  • Il faut environ 15-20 minutes pour remplir un réservoir d'aile vide à partir de réservoirs de fuselage. Les réservoirs d'aile peuvent aussi être remplis directement via une entrée située sur l'aile

lunettesnoires

Re: Repeter une action avec SIOC

MessagePosté: Lun 3 Déc 2018 20:18
de arcc
•Contacteur REFUEL 3 positions:
- L ENGINE ou R ENGINE : Met en marche la pompe réservoir aile gauche (L ENG) ou droite (R ENG)
- OFF : Coupe les pompes à carburant des réservoirs d'aile
- REFUEL : Ouvre la valve de remplissage des réservoirs d'aile

•Les switchs BOOST PUMP doivent être mise sur ON afin de pouvoir alimenter les réservoirs d'aile à partir des réservoirs de fuselage.


Merci pour ces précisions mais il va falloir que je revois ma copie. tapebaton
Je me doutais bien qu'il y avait de la pompe la dessous
Pour l'instant le transfert se faisait qu'avec le switch sur "Refuel" il va falloir intégrer maintenant les switchs "AFT et FWD Boost Pump"

Bon il va falloir si mettre.

A+
Christian

Re: Repeter une action avec SIOC

MessagePosté: Lun 3 Déc 2018 22:11
de PapaLima
Désolé pour la copie ecroulerire

Je ne me suis pas encore lancé dans la programmation SIOC (çà ne saurait tarder.. on dira pour cet hiver sourirebis ).

Je ne peux donc pas imaginer la complexité de la chose mais je suis ton supporter lunettesnoires