Page 1 sur 2

Besoin d'aide pour programmation Lua

MessagePosté: Jeu 18 Jan 2018 19:38
de arcc
Bonsoir

Je m'adresse au "cador" de la programmation des jaudes de AM en Lua.

Si j'ai reussi à m'en sortir avec de l'aide pour mes jauges de mon Twin, la je butte sur qq de pas tres compliqué pourtant.
J'ai besoin d'aide pour ecrire le programme avec des multi conditions.

Je suis dans ma jauge "Sound" et je voudrais joué un son "Firebell" sous plusieurs conditions.

1 - il faut que le Master battery soit sur On
2- le son se joue si ... Engine 1 est en feu ou Engine 2 est en feu et ou le switch Test est sur On
et en 3 Il faut que le switch FireBell Mute ne soit pas sur On

J'ai ecrit ca, mais le son se joue même si le Master est sur Off et qq soit la position du "Mute"

Code: Tout sélectionner
Firebell = sound_add("Firebell.wav")

-- Fire Alarm

function Firebell_state(Eng1_Fire, Eng2_Fire, Test_Fire, Mute_Fire, Master)

if Master == true and Mute_Fire == False and
   Eng1_Fire  > 0 or Eng2_Fire > 0 or Test_Fire > 0 then
      sound_play(Firebell)
else sound_stop(Firebell)
   end   
end   

fsx_variable_subscribe("Twot_Enge1_Fire", "",
                       "Twot_Enge2_Fire", "",
                       "FireTest_sw", "",
                       "FireBellMute_Sw", "Bool",               
                       "ELECTRICAL MASTER BATTERY", "Bool", Firebell_state)


Je pense que la gestion des if and or ne doit pas etre bonne.

A+
Christian

Re: Besoin d'aide pour programmation Lua

MessagePosté: Jeu 18 Jan 2018 20:44
de fab
A les priorités, tout un programme !

essaie avec des parenthèses :
Code: Tout sélectionner
if Master == true  and  Mute_Fire == False  and   (Eng1_Fire  > 0 or Eng2_Fire > 0 or Test_Fire > 0) then


La partie OR doit être traitées comme une seule condition

Re: Besoin d'aide pour programmation Lua

MessagePosté: Jeu 18 Jan 2018 23:08
de JacquesZ
arcc a écrit:Bonsoir

Je m'adresse au "cador" de la programmation des jaudes de AM en Lua.

Si j'ai reussi à m'en sortir avec de l'aide pour mes jauges de mon Twin, la je butte sur qq de pas tres compliqué pourtant.
J'ai besoin d'aide pour ecrire le programme avec des multi conditions.

Je suis dans ma jauge "Sound" et je voudrais joué un son "Firebell" sous plusieurs conditions.

1 - il faut que le Master battery soit sur On
2- le son se joue si ... Engine 1 est en feu ou Engine 2 est en feu et ou le switch Test est sur On
et en 3 Il faut que le switch FireBell Mute ne soit pas sur On

J'ai ecrit ca, mais le son se joue même si le Master est sur Off et qq soit la position du "Mute"

Code: Tout sélectionner
Firebell = sound_add("Firebell.wav")

-- Fire Alarm

function Firebell_state(Eng1_Fire, Eng2_Fire, Test_Fire, Mute_Fire, Master)

if Master == true and Mute_Fire == False and
   Eng1_Fire  > 0 or Eng2_Fire > 0 or Test_Fire > 0 then
      sound_play(Firebell)
else sound_stop(Firebell)
   end   
end   

fsx_variable_subscribe("Twot_Enge1_Fire", "",
                       "Twot_Enge2_Fire", "",
                       "FireTest_sw", "",
                       "FireBellMute_Sw", "Bool",               
                       "ELECTRICAL MASTER BATTERY", "Bool", Firebell_state)


Je pense que la gestion des if and or ne doit pas etre bonne.

A+
Christian

Bonjour Christian
Essaies déjà de remplacer False par false, ça devrait mieux fonctionner. lunettesnoires
Pour le reste du code, sans la jauge au complet, difficile à tester, mais les parenthèses suggérées par Fab me semblent également une bonne idée...

Je te conseille mon colorateur syntaxique pour Notepad++, cela aurait sauté aux yeux, car le mot clef False n'étant pas reconnu serait resté en noir au lieu de bleu...


Autre question: pourquoi la variable "Twot_Enge2_Fire" (entre autres) n'a pas de type Boolean ou number?
C'est une Lvar? dans ce cas, il faut écrire "L:Twot_Enge2_Fire", "number" je pense.

Jacques

Re: Besoin d'aide pour programmation Lua

MessagePosté: Ven 19 Jan 2018 07:08
de dreambox
JacquesZ a écrit:
Je te conseille mon colorateur syntaxique pour Notepad++, cela aurait sauté aux yeux, car le mot clef False n'étant pas reconnu serait resté en noir au lieu de bleu...

Jacques


Bonjour Jacques
J'ai raté quelque chose, on le trouve ou ce "colorateur syntaxique" ?
mes excuses pour ce hors sujet
Dreambox

Re: Besoin d'aide pour programmation Lua

MessagePosté: Ven 19 Jan 2018 10:45
de JacquesZ
Bonjour Philippe

C'est un petit fichier de colorateur syntaxique pour NotePad++ spécifique au langage Lua utilisé dans Air Manager, qui reprend tous les mots clefs de l'API en plus des mots spécifiques au langage Lua.

Cela me fait penser d'ailleurs qu'il faut que je le modifie légèrement, car si les nouveaux mots-clefs de la v3.0 y sont, AM v3.x utilise maintenant Lua 5.3 au lieu de 5.1-5.2 et certaines fonctions Lua ont changé.

Voir ici: http://aircockpit.com/viewtopic.php?f=147&t=5362

Jacques

Re: Besoin d'aide pour programmation Lua

MessagePosté: Ven 19 Jan 2018 13:10
de arcc
Essaies déjà de remplacer False par false, ça devrait mieux fonctionner.  


Oups j'avais deja fait la correction, en plus grace à la coloration du texte.... (j'ai telechargé ton petit programme des ca sortie) merci affiche mais le resultat est le même.
Le fait de renseigner ou pas l'entre deux " ne change rien. Je peux mettre "enum" ou "number". J'ai des exemples que ce soit avec mes jauges engines (dans l'autre discution sur les jauges du Twin) ou meme dans ma jauge Sound qui fonctionne bien sansque je renseigne ce "".

Je pense comme fab à un probleme de syntaxe dans la gestion des and et or.
je vais essayé de differentier les deux. Je continue.

A+
Christian

Re: Besoin d'aide pour programmation Lua

MessagePosté: Ven 19 Jan 2018 15:49
de algue14
Salut

"Twot_Enge1_Fire", "",
"Twot_Enge2_Fire", "",
"FireTest_sw", "",
"FireBellMute_Sw", "Bool",


C'est des variables spécifiques à ton add-on?
Parce qu'elles n'existent pas dans la liste des variables FSX-P3D

Re: Besoin d'aide pour programmation Lua

MessagePosté: Ven 19 Jan 2018 16:08
de JacquesZ
arcc a écrit:
Essaies déjà de remplacer False par false, ça devrait mieux fonctionner.  


Oups j'avais deja fait la correction, en plus grace à la coloration du texte.... (j'ai telechargé ton petit programme des ca sortie) merci affiche mais le resultat est le même.
Le fait de renseigner ou pas l'entre deux " ne change rien. Je peux mettre "enum" ou "number". J'ai des exemples que ce soit avec mes jauges engines (dans l'autre discution sur les jauges du Twin) ou meme dans ma jauge Sound qui fonctionne bien sansque je renseigne ce "".

Je pense comme fab à un probleme de syntaxe dans la gestion des and et or.
je vais essayé de differentier les deux. Je continue.

A+
Christian


Si ce sont des LVars, il faut mettre un L: devant le nom de la variable pour qu’elle soit prise en compte par Air Manager

Jacques

Re: Besoin d'aide pour programmation Lua

MessagePosté: Ven 19 Jan 2018 16:20
de dreambox
JacquesZ a écrit:Bonjour Philippe

C'est un petit fichier de colorateur syntaxique pour NotePad++ spécifique au langage Lua utilisé dans Air Manager, qui reprend tous les mots clefs de l'API en plus des mots spécifiques au langage Lua.

Cela me fait penser d'ailleurs qu'il faut que je le modifie légèrement, car si les nouveaux mots-clefs de la v3.0 y sont, AM v3.x utilise maintenant Lua 5.3 au lieu de 5.1-5.2 et certaines fonctions Lua ont changé.

Voir ici: http://aircockpit.com/viewtopic.php?f=147&t=5362

Jacques


Merci Jacques
Je vais regarder tout ça

Dreambox

Re: Besoin d'aide pour programmation Lua

MessagePosté: Ven 19 Jan 2018 18:45
de arcc
Oh la grossière erreur. Merci, je revois ma copie.

Christian