Exécution script Lua avec Fsuipc

FSUIPC / Emulateurs de claviers & souris / IOCP, etc...

Exécution script Lua avec Fsuipc

Messagede Neutrino » Lun 17 Sep 2018 08:13

Bonjour

Jusqu'à présent j'avais réussi à me passer de l'utilisation d'un fichier Lua exécuté par Fsuipc mais comme tout arrive un jour ou un autre je me suis exercé à essayer avec un exemple, mais très certainement par faute d'inattention quelque part cela ne fonctionne pas.

Ma config: P3Dv4.3 Fsuipc5.140

1 - Dans Fsuipc5.ini j'ai bien la ligne pour déclarer le fichier Test.lua
[LuaFiles]
1=ipcReady
2=linda
3=ipcReady
4=log lvars
5=Test

2 - Dans le fichier \Modules\Profiles\RealAir Legacy.ini j'ai la ligne pour exécuter le script du fichier Test.Lua avec le bouton 16 du joystick #2
[Buttons]
1=P2,16,CL5:R,0 -{Lua Test}-

3 - J'ai placé le fichier Test.lua à la racine de \Modules et il contient le script suivant:
-- ## Test Lua scripts ###############
function Adf_On_Off ()
EtatSwitchAdf = ipc.readLvar("ADF_On_Switch")
if EtatSwitchAdf == 0 then
ipc.writeLvar("ADF_On_Switch",1)
else
ipc.writeLvar("ADF_On_Switch",o)
end
end

4 - Et bien cela ne fonctionne pas !!!! Par contre le même script exécuté avec Linda fonctionne ....
Je suis intéressé de savoir ce que j'ai raté ...

Merci
Michel
Dernière édition par Neutrino le Lun 24 Sep 2018 18:08, édité 1 fois.
Avatar de l’utilisateur
Neutrino
 
Messages: 20
Inscription: 13/06/17
Localisation: Près de Vendôme 41

Re: Exécution script Lua avec Fsuipc

Messagede A320 hérétique » Lun 17 Sep 2018 08:20

Bonjour,

Tu devrais commencer par rajouter un ipc.display dans ton code pour t'assurer qu'il s'exécute bien.

Michel
http://www.myA320sim.com
Simu mixte P3D/FS2020, serveur P3Dv4/A320 FMGS (7700k et GTX 1070 sous W10 64), client P3Dv4/FS2020 (i9-12900K et RTX 3080 Ti sous W10 64), 3 vdp Optoma GT1080E, client A320 FMGS (2600k sous W10 64).
Avatar de l’utilisateur
A320 hérétique
 
Messages: 3351
Inscription: 2/09/12
Localisation: Pornic

Re: Exécution script Lua avec Fsuipc

Messagede gardan » Lun 17 Sep 2018 09:09

Bonjour,

Consulter le fichier txt des logs de FSUIPC pour voir si une 'error' existe.

Michel
Avatar de l’utilisateur
gardan
 
Messages: 161
Inscription: 17/05/09
Localisation: TRETS (13)

Re: Exécution script Lua avec Fsuipc

Messagede Neutrino » Lun 17 Sep 2018 11:24

A320 hérétique a écrit:
Tu devrais commencer par rajouter un ipc.display dans ton code pour t'assurer qu'il s'exécute bien.



Je ne sais pas faire - Quel paramètre faut-il mettre à ipc.display() ?

-- ## Test Lua scripts ###############
function Adf_On_Off ()
ipc.display()
EtatSwitchAdf = ipc.readLvar("ADF_On_Switch")
if EtatSwitchAdf == 0 then
ipc.writeLvar("ADF_On_Switch",1)
else
ipc.writeLvar("ADF_On_Switch",o)
end
end

Le fichier FSUIPC5.log ne contient pas le terme "error"
Avatar de l’utilisateur
Neutrino
 
Messages: 20
Inscription: 13/06/17
Localisation: Près de Vendôme 41

Re: Exécution script Lua avec Fsuipc

Messagede A320 hérétique » Lun 17 Sep 2018 11:41

Re,

tu as la doc des bibliothèques spécifiques FSUIPC dans le répertoire FSUIPC ... FSUIPC Lua Library.pdf

Dans ton instruction, rajoutes simplement en paramètre le message que tu veux afficher à l'écran (pour du texte, tu mets entre double quote, pour du numérique pas de quote, et pour concaténer, tu mets 2 points successifs).

ipc.display("texte" .. numérique .. "etc")

je n'ai pas encore essayé avec P3Dv4.2, selon Peter pas de pb.

Michel
http://www.myA320sim.com
Simu mixte P3D/FS2020, serveur P3Dv4/A320 FMGS (7700k et GTX 1070 sous W10 64), client P3Dv4/FS2020 (i9-12900K et RTX 3080 Ti sous W10 64), 3 vdp Optoma GT1080E, client A320 FMGS (2600k sous W10 64).
Avatar de l’utilisateur
A320 hérétique
 
Messages: 3351
Inscription: 2/09/12
Localisation: Pornic

Re: Exécution script Lua avec Fsuipc

Messagede Neutrino » Lun 17 Sep 2018 12:59

Ok, donc j'ai ajouté à mon script lua: ipc.display("Erreur")
Cela donne:
-- ## Test Lua scripts ###############
function Adf_On_Off ()
ipc.display("Erreur")
EtatSwitchAdf = ipc.readLvar("ADF_On_Switch")
if EtatSwitchAdf == 0 then
ipc.writeLvar("ADF_On_Switch",1)
else
ipc.writeLvar("ADF_On_Switch",o)
end
end

Donc si je comprend bien, si le script s"exécute mal je devrai avoir une fenêtre "Lua Display" avec string value = Erreur

Hors après manipulation du contact affecté dans fsuipc (joy#2 Btn#16) => pas de résultat
A croire que fsuipc n'execute pas le fichier Test.lua

Quand je fais:
Fsuipc / onglet Logging/ coché Debug Trace Lua plugings et Send to console windows
J'ai une liste ininterrompue de lignes identiques:
1206047 LUA.0: Waiting for an event in "P:\Program Files\Lockheed Martin\Prepar3D v4\Modules\linda/system/init.lua"
1206078 LUA.0: Timer event: calling "hidPoll" in "P:\Program Files\Lockheed Martin\Prepar3D v4\Modules\linda/system/init.lua"

Mais rien en rapport avec l'exécution du prog lua...
Avatar de l’utilisateur
Neutrino
 
Messages: 20
Inscription: 13/06/17
Localisation: Près de Vendôme 41

Re: Exécution script Lua avec Fsuipc

Messagede A320 hérétique » Lun 17 Sep 2018 14:07

Bon, j'y vais sur la pointe des pieds car je ne me suis penché sur Lua que très récemment...

1) en effet, la fonction n'est pas exécutée (ce qui ne veut pas dire que le fichier n'est pas appelé)
2) mais au fait, ce fichier ne contient que la définition de la fonction, pas de trace de son appel ???

Michel
http://www.myA320sim.com
Simu mixte P3D/FS2020, serveur P3Dv4/A320 FMGS (7700k et GTX 1070 sous W10 64), client P3Dv4/FS2020 (i9-12900K et RTX 3080 Ti sous W10 64), 3 vdp Optoma GT1080E, client A320 FMGS (2600k sous W10 64).
Avatar de l’utilisateur
A320 hérétique
 
Messages: 3351
Inscription: 2/09/12
Localisation: Pornic

Re: Exécution script Lua avec Fsuipc

Messagede gardan » Lun 17 Sep 2018 16:09

Re,
J'utilise Lua et Sioc pour la programmation de mon cockpit

- 1 tous mes modules (fsuipc.ini, fichiers Lua) sont dans le même répertoire "Modules"
comment indiques-tu à fsuipc ou Lua le chemin "\Modules\Profiles\RealAir Legacy.ini "

2- tu appelles une fonction Lua directement avec une instruction de Fsuipc.ini
"[Buttons]
1=P2,16,CL5:R,0 -{Lua Test}-"

Je ne connais pas cette méthode ; moi je procède comme ceci
"[Buttons]
53=P65,17,CL25:R,73 -- dans fsuipc.ini
********************************************************
if ipcPARAM == 73 then -- dans Lua
appel fonction ou toutes autres commande Lua
end


Michel
Avatar de l’utilisateur
gardan
 
Messages: 161
Inscription: 17/05/09
Localisation: TRETS (13)

Re: Exécution script Lua avec Fsuipc

Messagede Neutrino » Lun 17 Sep 2018 22:01

Bon, j'ai plusieurs points à rectifier:

1 - Pour comprendre l'utilisation de l'instruction "ipc.display()" jai fais des tests avec mon script lua exécuté par Linda: j'ai ajouté la ligne
ipc.display("ADF on/off",5)
à la fin de mon script, ce qui donne:

-- ## Test Lua scripts ###############
function Adf_On_Off ()
EtatSwitchAdf = ipc.readLvar("ADF_On_Switch")
if EtatSwitchAdf == 0 then
ipc.writeLvar("ADF_On_Switch",1)
else
ipc.writeLvar("ADF_On_Switch",o)
end
ipc.display("ADF on/off",5) --affichage pendant 5s
end

Résultat: le script s'exécute, la commande sur le tdb aussi et l'affichage en fenêtre Lua pendant 5s.
Donc le test est bon et j'ai appris une instruction de plus; merci à Michel "A320 hérétique".

2 -
gardan a écrit:- 1 tous mes modules (fsuipc.ini, fichiers Lua) sont dans le même répertoire "Modules"

J'ai pareil : fsuipc.ini et Test.lua à la racine de \Modules

3-
gardan a écrit:comment indiques-tu à fsuipc ou Lua le chemin "\Modules\Profiles\RealAir Legacy.ini "

Pour fsuipc:
Onglet Buttons + Switch
coché ProfileSpecific
j'active sur le tdb le switch concerné (ici joy#2 Btn#16)
coché Select for Fs control
dans la liste déroulante je selectionne la ligne Lua Test (qui correspond à mon fichier Test.lua)
Je suppose que la méthode est bonne parce que je retrouve bien dans mon fichier \Modules\Profiles\RealAir Legacy.ini la ligne:
100=P2,16,CL5:R,0 -{Lua Test}-

4 - Ensuite j'avais tout faux en utilisant le même script lua pour Linda et Fsuipc.
A320 hérétique a écrit:2) mais au fait, ce fichier ne contient que la définition de la fonction, pas de trace de son appel ???

D'après les instructions que j'ai (mal) compris, j'ai modifié le script lua du fichier Test.lua ce qui donne:
if ipcPARAM == 16 then
EtatSwitchAdf = ipc.readLvar("ADF_On_Switch")
if EtatSwitchAdf == 0 then
ipc.writeLvar("ADF_On_Switch",1)
else
ipc.writeLvar("ADF_On_Switch",o)
end
end

Résultat: cela ne fonctionne pas - j'ai probablement une erreur dans le script ci-dessus ?

Michel
Avatar de l’utilisateur
Neutrino
 
Messages: 20
Inscription: 13/06/17
Localisation: Près de Vendôme 41

Re: Exécution script Lua avec Fsuipc

Messagede fab » Lun 17 Sep 2018 23:09

Neutrino a écrit:...
ipc.writeLvar("ADF_On_Switch",o)
...
Michel


Dans cet extrait de code, je crois distinguer comme paramètre un "o" comme oscar et non un "0" comme le chiffre zéro ?
Me trompe-je ?
Avatar de l’utilisateur
fab
 
Messages: 4414
Inscription: 26/12/12
Localisation: Roubaix

Suivante

Retourner vers Liaisons entreFS et les autres logiciels





Qui est en ligne

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