FlightGear - Création d'avions et autres / Creation of aircraft and other

Vous désirez aider à améliorer les avions de Hangar de Helijah, c'est ici que cela se passe / You would like to help improving aircraft from Helijah's hangar, this is where it happens

Vous n'êtes pas identifié(e).

#1 2015-09-13 18:50:24

Didier1963
Developpeur
Lieu : Bordeaux
Inscription : 2012-10-24
Messages : 1 238

Demande de fichier Nasal pour instrument pression d'air

Salut à tous,

Je ne me suis pas encore mis au Nasal, et pour un de mes instruments du Simoun, je crois que je n'aurais pas d'autre choix car je ne pense pas que cela soit réalisable en Xml.

Y aurait-il une bonne ame qui puisse me guider pour créer le fichier nécessaire?

L'instrument :
Manomètre de pession d'air VIET (à droite sur ce screenshot)
mailla11.jpg

Unité de graduation:
Kg/cm2  (de 0 à 50)

Le fonctionnement :
Le moteur Renault Bengali Q6 du Simoun est muni d'un démarreur à air de marque Viet, type C73 bis à air comprimé, ainsi que d'une pompe à air de secours type 200 sans injecteur.
Quand le moteur tourne, il entraine un compresseur qui rempli une bombonne d'air.

Quand on veut démarrer, il suffit de se servir de cette pression emmagasinée pour actionner le démarreur et lancer le moteur.

Il me faudrait donc :
- un remplissage de x kg/cm2 par tour moteur,  jusqu'a un maximum de 50 kg/cm2
(Le moteur tourne à 2500Rpm à plein régime, en admettant qu' il faut environ 15 minutes pour remplir les bombonnes d'air.... au piffomètre!!!), donc x devrais se calculer par la formule 50/ (15*2500) si je ne me trompe pas
- Que la bombonne se vide de y kg/cm2/tour moteur, quand le démarreur est actionné
(le moteur tourne à peu-près à 500Rpm au démarrage, la bombonne doit pouvoir fournir à vue de nez 3 à 4 essais de démarrage de 6" à 8" chaque)
- Que le démarreur ne puisse être actionné en dessous d'une certaine pression restant dans la bombonne
- Au lancement de FG, la bonbonne est considérée comme pleine à 50 kg/cm2. (celà peux donner sujet à une cause de panne)

Merci


Pourquoi cet avatar : il a réussi à les arrêter LUI au moins.......
Amicalement, Didier, Poitiers 86; LFBI alt 129m, 46°35'22.9"N 0°18'32.7"E
"Ils ne savaient pas que c'était impossible, alors ils l'on fait" Marc Twain

Hors ligne

#2 2015-09-13 20:13:08

5H1N0B1
Developpeur
Inscription : 2012-08-07
Messages : 597

Re : Demande de fichier Nasal pour instrument pression d'air

Sauf si d'autre dégainent d'ici là, je ferai ce ptit fichier demain smile

Hors ligne

#3 2015-09-13 21:16:21

Didier1963
Developpeur
Lieu : Bordeaux
Inscription : 2012-10-24
Messages : 1 238

Re : Demande de fichier Nasal pour instrument pression d'air

Merci Fabien.

Je te demanderai probablement des explications sur le contenu du fichier afin de comprendre comment il fonctionne...... et d'en faire un moi même quand je serrai grand recherche

J'ai trouvé une doc sur le démarreur sur
aviafrance.com
voila le lien pour télécharger mais il n'est valable que 12 heures
http://www.aviafrance.com/download.php? … F9DhWyY2Q2


Pourquoi cet avatar : il a réussi à les arrêter LUI au moins.......
Amicalement, Didier, Poitiers 86; LFBI alt 129m, 46°35'22.9"N 0°18'32.7"E
"Ils ne savaient pas que c'était impossible, alors ils l'on fait" Marc Twain

Hors ligne

#4 2015-09-14 09:21:02

5H1N0B1
Developpeur
Inscription : 2012-08-07
Messages : 597

Re : Demande de fichier Nasal pour instrument pression d'air

en fait l'idéal, ce serait que tu m'envoie l'avion sur lequel tu bosse : Je pourrais regarder quelle variable tu as utiliser et faire en sorte que cela s'intègre au mieux. Le nasal en lui même sera facile à comprendre, mais il faut :
1- que je puisse le tester parce que ça ne marche jamais du premier coup
2- Que j'utilise les bonne variable smile
Dans l'idée cela donerai ceci :

var maFrequencedUpdate = 0.1;#0.1 est le taux de rafraichissement de la boucle
var monMaxReservoir = 50;
var LastTime = 0; #pour calculer notre remplissage en fonction du temps d'execution

#Remplissage
var tempsDeRemplissage = 15 *60; #En secondes
var MaxRegime = 2500; #Rpm
var tauxRemplissage = monMaxReservoir/(MaxRegime*60 * tempsDeRemplissage);

#Vidage
var nombreDemarrage = 4;
var tempsVidage = 8; #(En secondes)
var tauxdeVidage = 50/(nombreDemarrage * tempsVidage);


#Creation de la boucle
var init = func(){
 var loop = func()
 {
    update();#Ce sera la fonction ou il y aura tout ton code
    settimer(loop,maFrequencedUpdate);
 }
 settimer(loop,0); #A l'initialisation, la fonction imbriqué loop, n'est pas lancé, juste déclaré. ce settimer sur cette ligne ne sera lancé qu'une seule fois et sert à démarrer la boucle
}
var update = func()
{
  var mesRpm = getprop("chemin vers la propriete rpm"); #il faut remplacer par ta propriété RPM surement dans "engine/rpm"
  var monReservoir = getprop("chemin vers le reservoir d'air");#Ces variables normalement sont initialisé dans le fichier -base
  var demarreur = getprop("chemin vers variables booleenne demarreur appuyé");
  var ActualTime = getprop(""sim/time/elapsed-sec"); #Temps en seconde depuis le début de la sim

  #Calcul de l'interval
  var myInterval = ActualTime - LastTime;
  
  if(demarreur){ #Vu que c'est une variable boolene (traduit par 1 ou 0) on a pas besoin de mettre if(demarreur == 1)
    var vidage = tauxdeVidage *myInterval;
    monReservoir = monReservoir +vidage; 
    if(monReservoir<0){monReservoir=0;}
  }elsif(monReservoir<50){
     var remplissage = tauxRemplissage * myInterval;
     monReservoir = monReservoir +remplissage;  
  }
  setprop("chemin vers le reservoir d'air",monReservoir);
}

Voilà. A tester ça devrais marcher.
A bientôt

Fabien

Dernière modification par 5H1N0B1 (2015-09-14 09:42:27)

Hors ligne

#5 2015-09-14 16:57:36

Didier1963
Developpeur
Lieu : Bordeaux
Inscription : 2012-10-24
Messages : 1 238

Re : Demande de fichier Nasal pour instrument pression d'air

Merci Fabien,

je vais regarder cela à tête reposée.

Si je ne me trompe pas trop, cela pourrait donner quelque chose comme ça :

# =====
# Viet Starter Motor
# =====

var FrequencydUpdate = 0.1;#0.1 est le taux de rafraichissement de la boucle
var MaxTankCapacity = 50;
var LastTime = 0; #pour calculer notre remplissage en fonction du temps d'execution

#Remplissage
var Fillingtime = 15 *60; #En secondes
var MaxThrottle = 2500; #Rpm
var FillingRate = MaxTankCapacity/(MaxThrottle*60 * Fillingtime);

#Vidage
var StartTries = 4;
var EmptyingTime = 8; #(En secondes)
var EmptyingRate = 50/(StartTries * EmptyingTime);


#Creation de la boucle
var init = func(){
 var loop = func()
 {
    update();#Ce sera la fonction ou il y aura tout ton code
    settimer(loop,FrequencydUpdate);
 }
 settimer(loop,0); #A l'initialisation, la fonction imbriqué loop, n'est pas lancé, juste déclaré. ce settimer sur cette ligne ne sera lancé qu'une seule fois et sert à démarrer la boucle
}
var update = func()
{
  var Rpm = getprop("engines/engine/rpm"); #il faut remplacer par ta propriété RPM surement dans "engine/rpm"
  var StarterAirTank = getprop("systems/pneumatic/air-tank");#Ces variables normalement sont initialisé dans le fichier -base
  var StarterMotor = getprop("engines/engine/cranking");
  var ActualTime = getprop(""sim/time/elapsed-sec"); #Temps en seconde depuis le début de la sim

  #Calcul de l'interval
  var ElapsedTime = ActualTime - LastTime;
  
  if(StarterMotor){ #Vu que c'est une variable boolene (traduit par 1 ou 0) on a pas besoin de mettre if(demarreur == 1)
    var Emtying = EmtyingRate *ElapsedTime;
    StarterAirTank = StarterAirTank +Emptying; 
    if(StarterAirTank<0){StarterAirTank=0;}
  }elsif(StarterAirTank<50){
     var AirFilling = AirFillingRate * ElapsedTime;
     StarterAirTank = StarterAirTank +AirFilling;  
  }
  setprop("systems/pneumatic/air-tank",StarterAirTank);
}

si j'ai bien compris, le nom d'une variable s'écris :
NomDeLaVariable
donc, tout les mots attachés, la première lettre de chacun en majuscule et le reste en minuscule,

Il n'y à pas d'entête de fichier en Nasal ??

à savoir qu'il va me falloir créer la propriété "systems/pneumatic/air-tank-psi, en mettant ceci dans mon "simoun-base.xml" :

 <systems>
    <pneumatic>
      <air-tank-psi type="float">50</air-tank-psi>
    </pneumatic>
  </systems>

Je ne pense pas que dans l'état actuel de développement, une copie du dossier te soit très utile.

Il n'y a pas de FDM (du moins, j'utilise celui du 510 bricolé),
Je n'ai pas encore fini toutes les animations en Xml pour les instruments et équipements.
Je suis justement dessus, d'où ma question sur le Nasal.

Je n'ai pas encore incorporé les commandes de démareur (probablement ce soir), ni la pompe de secours (pas encore modélisée).
simoun10.jpg

Toute la 3D est à revisiter pour éliminer les points et faces inutiles (et y a du boulot afraid )

Je ne me suis pas encore occupé de la gestion des livrées, bien que j'en ai quelques-une de prêtes.

Et je n'ai pas encore mis les vitres roll , c'est qu'y fait pas chaud à 19000 pieds interrogation

Bref, encore beauuuuuuuuuucoup de boulot avant d'avoir quelque chose de présentable.

J'essayerai quand même de te passer une copie du dossier une foi les animations terminées.

A+

Dernière modification par Didier1963 (2015-09-14 17:31:42)


Pourquoi cet avatar : il a réussi à les arrêter LUI au moins.......
Amicalement, Didier, Poitiers 86; LFBI alt 129m, 46°35'22.9"N 0°18'32.7"E
"Ils ne savaient pas que c'était impossible, alors ils l'on fait" Marc Twain

Hors ligne

#6 2015-09-14 18:15:18

5H1N0B1
Developpeur
Inscription : 2012-08-07
Messages : 597

Re : Demande de fichier Nasal pour instrument pression d'air

Alors tu as il me semble très bien traduit le code en utilisant tes chemins pour les getproperty()
En fait l'histoire de Majuscules/minuscules c'est pas du tout une norme dans le nasal, mais juste pour mon confort personnel je préfère lire NomDeLaVariable que nomdelavariable (et j'ai pas bien compris si les tirets "-" marchent ou pas...peut un tiret ça marche 2 ça plant je ne sais pas trop)
Et non il n'y as pas d'en tetes, en revanche le # fait office de commentaires (sur tout le ligne)
En fait je kiff les entete du genre :
# =====
# Viet Starter Motor
# =====
Pas de souci pour l'avion je verrai le résultat quand ça te semblara bon. En revanche il faudra que tu testes le nasal, parce que même si à priori ça devrait marcher on n'est jamais à l'abri d'une coquille (En fait il y en as toujours smile...)
A bientôt
Fabien

Hors ligne

#7 2015-09-14 20:26:22

Didier1963
Developpeur
Lieu : Bordeaux
Inscription : 2012-10-24
Messages : 1 238

Re : Demande de fichier Nasal pour instrument pression d'air

J'ai une erreur dans la console de chargement (qui n'empêche pas FG de se lancer) :

 Nasal parse error: parse error in /home/didier1963/fgdata/Aircraft/Caudron-Simoun/Nasal/viet-starter-motor.nas, line 47

la ligne 47 de mon fichier est :

  setprop("systems/pneumatic/air-tank-psi",StarterAirTank);

par contre, je voit que ligne 34, tu as écrit :

 var ActualTime = getprop(""sim/time/elapsed-sec"); #Elapsed time in seconds since sim strat

est-ce qu'il faut bien un double guillemet devant "sim" ?

j'ai revérifié l'orthographe de mes noms de variable et les ai corrigées :

# =====
# Viet Starter Motor
# =====

var FrequencyUpdate = 0.1;#0.1 est le taux de rafraichissement de la boucle
var MaxTankCapacity = 50;
var LastTime = 0; #pour calculer notre remplissage en fonction du temps d'execution

#Remplissage
var FillingTime = 15 *60; #En secondes
var MaxThrottle = 2500; #Rpm
var FillingRate = MaxTankCapacity/(MaxThrottle *60 *FillingTime);

#Vidage
var StartTries = 4;
var EmptyingTime = 8; #(En secondes)
var EmptyingRate = 50/(StartTries * EmptyingTime);


#Creation de la boucle
var init = func(){
 var loop = func()
 {
    update();#Ce sera la fonction ou il y aura tout ton code
    settimer(loop,FrequencyUpdate);
 }
 settimer(loop,0); #A l'initialisation, la fonction imbriquée loop, n'est pas lancée, juste déclarée. ce settimer sur cette ligne ne sera lancé qu'une seule fois et sert à démarrer la boucle
}
var update = func()
{
  var Rpm = getprop("engines/engine/rpm"); # RPM property
  var StarterAirTank = getprop("systems/pneumatic/air-tank-psi");# initialised in -base file
  var StarterMotor = getprop("engines/engine/cranking");
  var ActualTime = getprop(""sim/time/elapsed-sec"); #Elapsed time in seconds since sim strat

#Calcul de l'interval
  var ElapsedTime = ActualTime - LastTime;
  
  if(StarterMotor){ #Vu que c'est une variable boolene (traduit par 1 ou 0) on a pas besoin de mettre if(StarterMotor == 1)
    var Emptying = EmptyingRate *ElapsedTime;
    StarterAirTank = StarterAirTank +Emptying; 
    if(StarterAirTank<0){StarterAirTank=0;}
  }elsif(StarterAirTank<50){
     var AirFilling = FillingRate * ElapsedTime;
     StarterAirTank = StarterAirTank + AirFilling;  
  }
  setprop("systems/pneumatic/air-tank-psi",StarterAirTank);
}

J'ai bien ma propriété en place dans "systems/pneumatic" avec une valeur de 50 au démarrage de FG,
vu que j'ai mis :

 
  <systems>
    <pneumatic>
      <air-tank-psi type="float">50</air-tank-psi>
    </pneumatic>
  </systems>

et

    <viet-starter-motor>
      <file>Aircraft/Caudron-Simoun/Nasal/viet-starter-motor.nas</file>
    </viet-starter-motor>

pour appeler mon fichier .nas, dans mon "simoun-base.xml",

et j'ai mis mon fichier"viet-starter-motor.nas" dans mon dossier "Aircraft/Caudron-Simoun/Nasal".

Dernière modification par Didier1963 (2015-09-14 20:28:04)


Pourquoi cet avatar : il a réussi à les arrêter LUI au moins.......
Amicalement, Didier, Poitiers 86; LFBI alt 129m, 46°35'22.9"N 0°18'32.7"E
"Ils ne savaient pas que c'était impossible, alors ils l'on fait" Marc Twain

Hors ligne

#8 2015-09-14 21:04:00

5H1N0B1
Developpeur
Inscription : 2012-08-07
Messages : 597

Re : Demande de fichier Nasal pour instrument pression d'air

 var ActualTime = getprop(""sim/time/elapsed-sec"); #Elapsed time in seconds since sim strat

Tu as raison, il s'agit d'une erreur cela devrait être :

 var ActualTime = getprop("sim/time/elapsed-sec"); #Elapsed time in seconds since sim strat

Cela devrait corriger ton erreur : en fait il y a systématiquement 1 guillemet d'ouverture et 1 de fermeture. Là, le 3 ieme est un truc d'ouverture. Donc ta remarque est très juste smile
Normalement (jusqu'à la prochaine erreur) ça devrait marcher smile

Hors ligne

#9 2015-09-20 00:02:28

Didier1963
Developpeur
Lieu : Bordeaux
Inscription : 2012-10-24
Messages : 1 238

Re : Demande de fichier Nasal pour instrument pression d'air

Fabien,

je viens de jetter un oeil au contenu de ton fichier m2000-5-electrical.nas.
Je ne comprend pas tout (surtout les fonctions et comment les utiliser),
mais je pense que ce qu'il me faut pour mon démareur Viet est dedans.

Avec une dadptation comme suit :

Volts = bar (pression)
Batterie = bouteille d'air
Alternateur 1= compresseur sur moteur (dépendant aussi des RPM)
Alternateur2 = pompe de secours( activation à la main, un aller = x milibar, un retour = x milibar)
Interrupteur = Robinet (ouvert/fermé suffit, pas besoin de doser)
consomation courrant par instrument = consomation d'air par démarreur
voltmètre = monomètre de pression (attention, gradué en pièze, 1 hectoPièze = 1 bar)

Qu'en pense tu?

Peux-tu m'indiquer un lien de tuto qui explique les fonctions Nasal disponibles et comment les utiliser?

Merki buckets

Dernière modification par Didier1963 (2015-09-20 00:06:19)


Pourquoi cet avatar : il a réussi à les arrêter LUI au moins.......
Amicalement, Didier, Poitiers 86; LFBI alt 129m, 46°35'22.9"N 0°18'32.7"E
"Ils ne savaient pas que c'était impossible, alors ils l'on fait" Marc Twain

Hors ligne

#10 2015-09-20 19:18:03

5H1N0B1
Developpeur
Inscription : 2012-08-07
Messages : 597

Re : Demande de fichier Nasal pour instrument pression d'air

Yep pourquoi ne pas essayer. Tu n'aura pas forcément le démarreur, mais tu aura un "système d'air comprimé", qui d'activerai ton moteur.
Je pense que c'est jouable.
En revanche ça va demander un paquet de test : au moins une ou deux journée de prog+test

Tout ce que j'utilise sur le nasal je me base sur le wiki anglais de flightgear : http://wiki.flightgear.org/Nasal_scripting_language
(puis récemment je suis tombé la dessus : vachement sympa : http://plausible.org/nasal/flightgear.html
Voilà j'espère que j'ai pu aider. En tout cas n'hésite pas.
A bientôt
Fabien

Hors ligne

#11 2015-09-20 20:26:22

Didier1963
Developpeur
Lieu : Bordeaux
Inscription : 2012-10-24
Messages : 1 238

Re : Demande de fichier Nasal pour instrument pression d'air

Merci pour les liens.

Je me les met sur l'oreille et je les fumerais plus tard.
Je vais voir ça et m'y mettre pour tanter de le faire moi-même.

Si j'ai trop mal aux cheveux (ça va être dur vu que je n'en ai plus beaucoup), je te demanderai.

Pour l'instant, je met les tooltips sur mes commandes.

PS, comme je ne suis pas passé à l'appart de mon épouse, je n'ai pas encore envoyé le dossier.
Tant mieux car tu aurra une version plus complète.


Pourquoi cet avatar : il a réussi à les arrêter LUI au moins.......
Amicalement, Didier, Poitiers 86; LFBI alt 129m, 46°35'22.9"N 0°18'32.7"E
"Ils ne savaient pas que c'était impossible, alors ils l'on fait" Marc Twain

Hors ligne

#12 2015-09-21 12:27:09

Didier1963
Developpeur
Lieu : Bordeaux
Inscription : 2012-10-24
Messages : 1 238

Re : Demande de fichier Nasal pour instrument pression d'air

Fabien,

Je suis finalement arrivé a envoyer le tar.gz sur le serveur dl.free.fr.

Peut-tu m'envoyer ton adresse mail sur la mienne :
Mon_Pseudo_Tout_En_Minuscules(at)laposte(dot)net

Merki buckets


Pourquoi cet avatar : il a réussi à les arrêter LUI au moins.......
Amicalement, Didier, Poitiers 86; LFBI alt 129m, 46°35'22.9"N 0°18'32.7"E
"Ils ne savaient pas que c'était impossible, alors ils l'on fait" Marc Twain

Hors ligne

#13 2015-09-24 05:40:19

5H1N0B1
Developpeur
Inscription : 2012-08-07
Messages : 597

Re : Demande de fichier Nasal pour instrument pression d'air

Vu que j'ai fini de lutter avec le le system de stabilisation du 2000, je vais me tester ton bébé aujourd'hui smile

Hors ligne

#14 2015-09-24 07:14:20

Didier1963
Developpeur
Lieu : Bordeaux
Inscription : 2012-10-24
Messages : 1 238

Re : Demande de fichier Nasal pour instrument pression d'air

Haaaaaaaa, c'est bien d'avoir des gens qui n'ésite pas à prendre des risque ........ afraid

J'ai modifié quelques lignes de code depuis mon envoi pour rêgler les problêmes suivant (ou presque) :
- Transparence (et présence) des vitres
- Mouvement des suspensions (dans le mauvais sens, débatement trop important, mauvais axe de déplacement pour la roue de queue)
- Quelques animations supplémentaire
- et les nouvelles livrées (mais ça tu as déjà probablement découvert dans LeSujetQuiVaBien
- etc.....

Là, je suis sur le re-découpe des tours de fenêtre sur l'objet "interior" car je n'avait découpé qu'au niveau des vitres, ne prévoyant pas à l'époque de les animer.

Comme je te l'ai déjà mentionné, il y a encore pas mal de choses à corriger, mais ton avis me sera très utile car tu le verra d'un oeil différant du mien.

Bon vol

PS : pas la peine de prévenir ton assurance vie ............. tu ne risque rien vu que c'est du virtuel siffle


Pourquoi cet avatar : il a réussi à les arrêter LUI au moins.......
Amicalement, Didier, Poitiers 86; LFBI alt 129m, 46°35'22.9"N 0°18'32.7"E
"Ils ne savaient pas que c'était impossible, alors ils l'on fait" Marc Twain

Hors ligne

#15 2015-09-24 07:56:58

5H1N0B1
Developpeur
Inscription : 2012-08-07
Messages : 597

Re : Demande de fichier Nasal pour instrument pression d'air

Je vais tester ça dans ma base secrète de BGBW smile

Hors ligne

#16 2015-09-24 08:56:07

Didier1963
Developpeur
Lieu : Bordeaux
Inscription : 2012-10-24
Messages : 1 238

Re : Demande de fichier Nasal pour instrument pression d'air

Be Good Be Worry?

ou Be Great Be Worth?


Pourquoi cet avatar : il a réussi à les arrêter LUI au moins.......
Amicalement, Didier, Poitiers 86; LFBI alt 129m, 46°35'22.9"N 0°18'32.7"E
"Ils ne savaient pas que c'était impossible, alors ils l'on fait" Marc Twain

Hors ligne

#17 2015-09-24 08:58:23

5H1N0B1
Developpeur
Inscription : 2012-08-07
Messages : 597

Re : Demande de fichier Nasal pour instrument pression d'air

Voilà Voilà.
Bon ben il vole bien. Les seuls trucs que j'aurai à redire sont les choses que tu est déjà en train de corriger. (les trains roulettes et amortisseurs, la vue qu'il faudrait réavance pour ne pas voir la tete du pilot, les étiquettes pour indiquer "quoi est quoi" etc ..)
Les systèmes ça à l'air de marcher.
Ta batterie est à 28,8 V au démarrage et ton alternateur produit du 28 pile. faut juste faire gaffe que tu n'ai pas d'instrument qui fonctionne avec du 28,8.
Et en fait le démarreur, j'ai corrigé le nasal. Ca marche du feu de Dieu. J'ai même rajouté un petit truc pour qu'il se remplisse plus vite si on augmente le simulation rate (seulement dans ce cas sinon il se remplis normalement)
Le code est là :
viet-starter-motor.nas

N'hésites pas si tu as des questions smile
A bientôt
Fabien

Hors ligne

#18 2015-09-27 17:04:39

Didier1963
Developpeur
Lieu : Bordeaux
Inscription : 2012-10-24
Messages : 1 238

Re : Demande de fichier Nasal pour instrument pression d'air

OUPSSSSSSSSSSSS

Désolé Fabien, je n'avait pas vu ton dernier message.

Je regarde, fait la modif et te tiens au courant...................


Pourquoi cet avatar : il a réussi à les arrêter LUI au moins.......
Amicalement, Didier, Poitiers 86; LFBI alt 129m, 46°35'22.9"N 0°18'32.7"E
"Ils ne savaient pas que c'était impossible, alors ils l'on fait" Marc Twain

Hors ligne

#19 2015-09-27 18:37:53

Didier1963
Developpeur
Lieu : Bordeaux
Inscription : 2012-10-24
Messages : 1 238

Re : Demande de fichier Nasal pour instrument pression d'air

Bon, il doit me manquer quelque chose car ça ne fait rien chez moi.

J'ai remplaçé le contenu de mon fichier viet-starter-motor par le tien, j'ai enlevé les "#" devant les "print" pour voir les valeures bouger (dans la console où sur l'écran FG ?).

Mais rein ne se passe.

Est-ce que tu as rajouté ou modifié quelque chose d'autre ?

Si je résume :
1) créer la propriété "systems/pneumatic/air-tank-psi" et mettre la valeur à 50 en mettant ceci dans le fichier simoun-base.xml :

  
  <systems>
    <pneumatic>
      <air-tank-psi type="float">50</air-tank-psi>
    </pneumatic>
  </systems>

2) déclarer le fichier
../Caudron-Simoun/Nasal/viet-starter-motor.nas
en mettant les lignes ci-dessous dans le fichier simoun.base :

  <nasal>
..........
    <viet-starter-motor>
      <file>Aircraft/Caudron-Simoun/Nasal/viet-starter-motor.nas</file>
    </viet-starter-motor>
.........

  </nasal>

et mettre le fichier Nasal/viet-starter-motor.nas, dans
../Caudron-Simoun/Nasal

Y a t'il autre chose à faire?

Sinon, il va falloir que je fasse un fichier systems/electric.xml
Il n'y a pas de batterie sur le Simoun.
La source électrique est fournie par les deux magnétos.

Dernière modification par Didier1963 (2015-09-27 18:52:15)


Pourquoi cet avatar : il a réussi à les arrêter LUI au moins.......
Amicalement, Didier, Poitiers 86; LFBI alt 129m, 46°35'22.9"N 0°18'32.7"E
"Ils ne savaient pas que c'était impossible, alors ils l'on fait" Marc Twain

Hors ligne

#20 2015-09-27 19:57:34

5H1N0B1
Developpeur
Inscription : 2012-08-07
Messages : 597

Re : Demande de fichier Nasal pour instrument pression d'air

Ben après je met en route le moteur avec le démarreur... j'essaye 2 coups pour rire, ça diminue bien, puis je met les magnéto et zou ça pars, et puis ça recharge la pompe.
Vu que mon internet remarche je vais t’envoyer un mail avec le lien vers mon dropbox

Hors ligne

#21 2015-09-27 22:47:24

Didier1963
Developpeur
Lieu : Bordeaux
Inscription : 2012-10-24
Messages : 1 238

Re : Demande de fichier Nasal pour instrument pression d'air

Bon,

après 1h30 de téléchargement siffle ................. avec ma connection via le smartphone, vu que la box de la voisine n'arrête pas de couper toutes les 30 secondes yikes yikes yikes (donc message d'erreur de perte de signal et arrêt du téléchargement), j'ai effectivement pu essayer et ça marche super. big_smile

Je comparerai les fichiers de sdeux versions demain............. heu roll , tout à l'heure, pour voir d'où ça viens.

Le temps de recharge me paraît réaliste plus_un , donc on garde Caniche............ ha non, je me suis trompé de chien.............. teckel lol


[EDIT]
Bon, j'ai remplaçé mon fichier viet par le tiens et ça marche................ peut être une erreur dans le nom du fichier...............

Juste quelques remarque pour le futur :
- on peut quand même démarrer avec la pression à 0 (une pression inférieure à 5 bar, au pif,  ne devrais pas permettre de démarrer).
- dès que j'en aurais fini avec l'animation du levier de pompe (aller retour continu en cliquant sur le corps de la pompe), il faudra que l'on inclu l'action de cette pompe dans le Viet.nas.

En tout cas merci Fabien, on va pouvoir passer au tuto.............. siffle siffle

Dernière modification par Didier1963 (2015-09-27 23:25:25)


Pourquoi cet avatar : il a réussi à les arrêter LUI au moins.......
Amicalement, Didier, Poitiers 86; LFBI alt 129m, 46°35'22.9"N 0°18'32.7"E
"Ils ne savaient pas que c'était impossible, alors ils l'on fait" Marc Twain

Hors ligne

#22 2015-09-28 11:38:29

Didier1963
Developpeur
Lieu : Bordeaux
Inscription : 2012-10-24
Messages : 1 238

Re : Demande de fichier Nasal pour instrument pression d'air

Salut Fabien,

je viens de parcourir ton fichier sas.nas du 2000 pour essayer de comprendre certaine fonctions de Nasal et comment les implémenter.
du travail d'orfèvre plus_un
Tu as une petite faute de syntaxe ligne 101 et 181............. tu voit que je suit afraid

Donc, si je comprend bien, pour implémenter la fonction qui empêche de démarrer si la pression d'air est inférieur à 10 bar, il faut mettre ces lignes dans ton fichier Viet.nas, entre le "var init" et le "init()" :

var air_press    = getprop("/systems/pneumatic/air-tank-psi);

       if(air_press < 10) 
       {
           setprop("/engines/engine/cranking", 0); #
	   #starter motor cannot be launch coz not enough air in tank
       }
       else
       {
       getprop("/systems/pneumatic/air-tank-psi);
       }

il prend la valeur qui est dans la propriété /systems/pneumatic/air-tank-psi et la met dans une variable que j'appelle air-pressure;
il regarde si cette valeur est inférieur à 10;
dans le cas où, il met la valeur dans le propriété /engines/engine/cranking à 0 (ou false), ce qui empêche de démarrer;
sinon, il prend la valeur qui est dans /systems/pneumatic/air-tank-psi.

Là, je ne savait pas trop quoi mettre pour lui demander de ne rien faire dans le "else" donc j'ai mis ça.

J'ai bon M'sieur?

Et donc, avant de mettre ceci, il faut mettre la partie qui concerne l'action de la pompe de secours.
Bhein oui, sinon, on ne pourrait plus démarrer après plusieurs démarrages infructueux et il faudrai corriger manuellement dans les propriétés pour "regonfler".

Je vais essayer de faire quelque chose pour la pompe et je te soumet la proposition........

Dernière modification par Didier1963 (2015-09-28 11:49:57)


Pourquoi cet avatar : il a réussi à les arrêter LUI au moins.......
Amicalement, Didier, Poitiers 86; LFBI alt 129m, 46°35'22.9"N 0°18'32.7"E
"Ils ne savaient pas que c'était impossible, alors ils l'on fait" Marc Twain

Hors ligne

#23 2015-09-28 20:43:21

5H1N0B1
Developpeur
Inscription : 2012-08-07
Messages : 597

Re : Demande de fichier Nasal pour instrument pression d'air

En fait, tu as 3 fonction :
init, loop et update. Les fonctions ont plusieur syntaxes selon le langage, mais en nasal, c'est généralement :

var init = func(){ Cequefaitlafonction  }

chacune de ces fonction ne se lance pas toute seule : pour cela il faut les appeler. Dans notre cas, c'est le

init();

Donc cela lance la fonction init, qui va traverser la fonction loop dans la lire, puis, avec le settimer lancer la fonction loop.
la fonction loop va donc s'executer, lancer la fonction update, puis se lancer elle même dans "FrequencyUpdate" secondes puis elle se termine.
'FrequencyUpdate' secondes plus tard, la fonction se relance.

Tout le code se passe donc entre :

var update = func()
{
}

Tu m'as l'air bien tenté pour tester toi même le truc, tu peux tester quelque chose puis je corrige si tu es bloqué smile
A demain smile

Dernière modification par 5H1N0B1 (2015-09-28 20:43:43)

Hors ligne

#24 2015-09-29 13:02:55

Didier1963
Developpeur
Lieu : Bordeaux
Inscription : 2012-10-24
Messages : 1 238

Re : Demande de fichier Nasal pour instrument pression d'air

Salut Fabien,

je suis content, ma modif fonctionne plus_un

Alors, je t'explique :

Remplissage du réservoir avec la pompe manuelle

J'ai rajouté dans le groupe #Filling :

var FillingTimePump = 300; #Guessed that we need to manipulate the pump lever for about 5 minutes to fill the air tank
var MaxPump = 125; #Rps
var FillingRatePump = MaxTankCapacity/(MaxPump * FillingTime);

pour avoir l'équivalent des valeur du compresseur mais appliqué à la pompe,
puis, dans le groupe de variable "var update = func()" :

  var FillPump = 125; #Filling is 5 min, so 3 time less than compressor filling at full Rpm, so 3 x 41.66 = 125 Rps
var PumpPower = getprop("controls/pneumatic/backup-air-pump/power");

même remarque que ci-dessus pour avoir les valeurs nécessaire au calcul de l'action de la pompe,
puis, dans #interval calculation, après le "elsif(StarterAirTank<50){"

}elsif(StarterAirTank<50){
     if(PumpPower){
.............
     StarterAirTank = StarterAirTank + AirFilling + AirfillingPump;
     }
  }

donc rajouté un "if" dans ce "elsif", pour tester si la pompe est actionnée (la j'ai utilisé une valeur boléenne simplement .............. faudrai pas pousser quand même à simuler le remplissage pour un aller et un retour du levier de pompe.................. quoi que...........

rajouté "+ AirfillingPump", pour inclure le remplissage du à la pompe
et le crochet de fermeture "}", puisque j'en avait ouvert un après mon "if"

En suite j'ai modifié mon
../Simoun/Models/Interior/Instruments/Backup-Air-Pump/backup-air-pump.xml :

  
  <animation>
    <type>pick</type>
    <object-name>AirPump</object-name>
    <action>
      <button>0</button>
      <binding>
        <command>property-toggle</command>
        <property>controls/pneumatic/backup-air-pump/power</property>
      </binding>
    </action>
  </animation>

Est-ce suffisemment clair où tu veux que je te passe le fichier?


Bon, c'est pas tout, mais il faut que je fasse le mouvement du levier maintenant.

J'ai pensé à mettre mon

        <property>controls/pneumatic/backup-pump/lever/position-norm</property>

dans une boucle, avec un test de condition sur le

        <property>controls/pneumatic/backup-air-pump/power</property>

mais bon, on vera cela plus tard.........

Pour l'instant, il faut que je passe les balais roll ............................. bhein ooui, pour rammasser les cheveux que je me suis arraché lol

Haaa, et puis il faut que je rajoute mon test conditionnel pour empêcher le "crank" si le "StarterAirTank <10".

à suivre.....................


PS : Et la pompe Viet.................. elle peux aussi remplir la bombonne pour l'extincteur....................... ha bhein là, ca y est, je n'ai plus du tout de cheveux.......

Dernière modification par Didier1963 (2015-09-29 13:10:05)


Pourquoi cet avatar : il a réussi à les arrêter LUI au moins.......
Amicalement, Didier, Poitiers 86; LFBI alt 129m, 46°35'22.9"N 0°18'32.7"E
"Ils ne savaient pas que c'était impossible, alors ils l'on fait" Marc Twain

Hors ligne

#25 2015-10-07 00:05:23

Didier1963
Developpeur
Lieu : Bordeaux
Inscription : 2012-10-24
Messages : 1 238

Re : Demande de fichier Nasal pour instrument pression d'air

Salut Fabien,

Bon ,dans la serie bidouillage Nasal, nous avons :

Tentative d'animation du levier de pompe.

J'arrive à faire bouger mon levier de A à B, voir lui faire faire un aller-retour avec le fichier doors.nas :

# ================
# Objects movement
# ================

Doors = {};

Doors.new = func {
   obj = { parents : [Doors], 
..................
           lever : aircraft.door.new("controls/pneumatic/backup-air-pump/lever", 1.0),
...............
         };
   return obj;
};

...............

Doors.leverexport = func {
   me.lever.toggle();
}
.............................


# ==============
# Initialization
# ==============

# objects must be here, otherwise local to init()
doorsystem = Doors.new();

mais je ne peux pas lui appliquer ce qui se fait pour les essuis-glace.

J'ai essayé ce code, inspiré du wiper.nas du 747-400 :

# ===========================
# Backup  Air Pump Animations
# ===========================

var airpumplever = func {
    if (getprop("controls/pneumatic/backup-air-pump/power") == 1 or getprop("controls/pneumatic/backup-air-pump/power") == 2){
        if (getprop("controls/pneumatic/backup-pump/lever/position-norm") == 1 or getprop("controls/pneumatic/backup-pump/lever/position-norm") == 0){
            doorsystem.Doors.leverexport();
        }
     }
     if (getprop("controls/electric/wiperl/switch") == 0){
         if (getprop("controls/pneumatic/backup-pump/lever/position-norm") == 1){
             doorsystem.Doors.leverexport();
         }
     }

    settimer(airpumplever, 0);
}
_setlistener("/sim/signals/fdm-initialized", airpumplever);

est-ce que tu peux me dire où je me suis trompé?

Est-ce que je doit d'abord supprimer (ou mettre en remarque) les ligne concernant le lever dans le doors.nas?

Emmanuel,
la Box de la voisine  n'arrête pas de déconnecter et reconnecter avec un cycle régulier (4' de déconnection, 16' de connection).
Est-ce un problême côté Box ou côté de mon PC?

Merki buckets

Dernière modification par Didier1963 (2015-10-07 00:15:41)


Pourquoi cet avatar : il a réussi à les arrêter LUI au moins.......
Amicalement, Didier, Poitiers 86; LFBI alt 129m, 46°35'22.9"N 0°18'32.7"E
"Ils ne savaient pas que c'était impossible, alors ils l'on fait" Marc Twain

Hors ligne

Pied de page des forums

Propulsé par FluxBB 1.4.8