Repeter une action avec SIOC

Questions de programmation / Offset FSUIPC et IOCP

Repeter une action avec SIOC

Messagede arcc » Sam 1 Déc 2018 20:18

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
Un ancien sous-marinier qui a pris de la hauteur.
Avatar de l’utilisateur
arcc
 
Messages: 557
Inscription: 16/12/13
Localisation: La ou fini la terre (Finistere)

Re: Repeter une action avec SIOC

Messagede fab » Sam 1 Déc 2018 22:53

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   
  }
}
Avatar de l’utilisateur
fab
 
Messages: 3025
Inscription: 26/12/12

Re: Repeter une action avec SIOC

Messagede JacquesZ » Dim 2 Déc 2018 09:20

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
i7 4770K, CM Asus Hero, 16Go, DD1To & SSD 500Go, GTX780Ti et GTX970,win 7 64b FSX
3 x 22" sur Matrox Th2Go + 2 x TV 32"
Tdb: 1 x 17" + 1 x 19"
Saitek Multi & radio panel, GNS430 Emuteq, FFB Yoke Brunner
Arduino MEGA+LeoBodnar
Avatar de l’utilisateur
JacquesZ
 
Messages: 1911
Inscription: 24/11/10

Re: Repeter une action avec SIOC

Messagede arcc » Dim 2 Déc 2018 14:00

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
Un ancien sous-marinier qui a pris de la hauteur.
Avatar de l’utilisateur
arcc
 
Messages: 557
Inscription: 16/12/13
Localisation: La ou fini la terre (Finistere)

Re: Repeter une action avec SIOC

Messagede arcc » Dim 2 Déc 2018 19:15

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
Un ancien sous-marinier qui a pris de la hauteur.
Avatar de l’utilisateur
arcc
 
Messages: 557
Inscription: 16/12/13
Localisation: La ou fini la terre (Finistere)

Re: Repeter une action avec SIOC

Messagede fab » Dim 2 Déc 2018 19:32

Bravo à toi pour l'adaptation ! applaublanc
Avatar de l’utilisateur
fab
 
Messages: 3025
Inscription: 26/12/12

Re: Repeter une action avec SIOC

Messagede PapaLima » Lun 3 Déc 2018 01:43

C'est génial !! Un vrai commandant de bord qui se respecte !!

Alors là moi je dis applaublanc B R A V O !!
Avatar de l’utilisateur
PapaLima
 
Messages: 393
Inscription: 14/04/16
Localisation: LFPG

Re: Repeter une action avec SIOC

Messagede PapaLima » Lun 3 Déc 2018 15:04

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
Avatar de l’utilisateur
PapaLima
 
Messages: 393
Inscription: 14/04/16
Localisation: LFPG

Re: Repeter une action avec SIOC

Messagede arcc » Lun 3 Déc 2018 20:18

•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
Un ancien sous-marinier qui a pris de la hauteur.
Avatar de l’utilisateur
arcc
 
Messages: 557
Inscription: 16/12/13
Localisation: La ou fini la terre (Finistere)

Re: Repeter une action avec SIOC

Messagede PapaLima » Lun 3 Déc 2018 22:11

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
Avatar de l’utilisateur
PapaLima
 
Messages: 393
Inscription: 14/04/16
Localisation: LFPG


Retourner vers Programmation Sioc





Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 4 invités