Environnement de développement LUA/FSUIPC

Bonjour,
un sujet un peu technique : je suis en train de mettre au point la motorisation de mon throttle A320, ça commence à tournicoter, mais ça n'est pas clean ...
Ce que je fais : un Arduino est en charge de faire tourner le moteur pas à pas du trim ; il dialogue avec LUA/FSUIPC pour lui demander à quelle position il faut positionner le trim, et compare ensuite cette valeur avec la position physique du trim, qu'il acquiert en recopiant la valeur d'un potentiomètre qui tourne avec le trim ; après avoir vérifié que l'avion n'est pas en vol, l'Arduino envoie au moteur les ordres de mouvement qui vont bien, et ainsi de suite.
Pour communiquer avec LUA/FSUIPC, je suis pratiquement contraint d'utiliser les bibliothèques LUA qui viennent avec FSUIPC - au détour, documentation extrêmement minimaliste en matière de com ! et grosses instabilités lors des tests ; mais bon, la logique est validée en environnement 32 bits, il me reste à passer en 64 bits et surtout à rationaliser et blinder les codes Arduino et LUA.
Maintenant, 2 questions :
1) Débuguer du LUA/FSUIPC ça n'est pas vraiment de la tarte, car les bibliothèques LUA/FSUIPC sont intégrées à la dll FSUIPC : ça veut dire que pour faire tourner le code LUA il faut faire tourner FSUIPC, donc faire tourner FSX ou P3D ; et quand on "kill" les process LUA, FSX se met très rapidement à genoux, c'est hyper pénible.
Je m'y prends ainsi : développement du code Arduino avec Programino, l'Arduino est connecté au PC par USB ; Arduino se sert de cette liaison pour communiquer avec LUA, donc pas moyen de voir ce qu'il se passe sur le moniteur série, j'ai donc connecté un afficheur LCD sur l'Arduino pour pouvoir tracer un peu les choses - OK
Coté LUA, développement du code avec sciTE, sauvegarde du code dans le répertoire Modules de FSX ; j'ai attaché le code sur un bouton d'un joystick via FSUIPC, ainsi que la macro 'killall LUA" sur un autre bouton ; pour suivre ce qui se passe au niveau LUA, je trace à l'écran à l'aide d'ordres ipc.display (ça marche quand ça va bien, parfois plus rien ne s'affiche alors que je vois sur Arduino que ça tourne - mais c'est un autre sujet).
Donc pour tester, je charge Arduino, je lance fsx, et j'appui sur le bouton du joystick pour lancer le script LUA ; quand je veux arrêter pour apporter des modif, j'appui sur le bouton killallLUA ; mais au bout de 3 ou 4 fois, FSX se vautre !
La (en fait les) questions :
1a - comment vous organisez-vous pour ce type de devts ?
1b- y-a-t 'il un autre moyen de faire tourner un script LUA embarquant des fonctions fournies par les bibliothèques spécifiques FSUIPC que de le faire tourner sous FSUIPC/FSX (par exemple en disposant des bibliothèques FSUIC à part) ?
2) Et la dernière question : évidement je ne développe pas directement sur le simu, je suis sur un autre PC, avec une licence FSX dédiée - tout va bien ; maintenant, il faut que je passe en 64 bits pour P3Dv4.1, mais là, je n'ai pas de licence spécifique (j'en ai 2 pour le simu, ç'est déjà pas mal) ; j'ai bien le FSUIPC 5 pour 64 bits, avec le LUA à niveau, mais pour faire tourner ce FSUIPC il faut un P3Dv4.1 !!! coincé ! pensez-vous que je puisse utiliser une des licences du simu ("déontologiquement" ça ne me gênerait pas, mais le fait de faire ça ne risque-t-il pas de me désactiver le P3D dont j'aurais utilisé les codes ?)
Bien ennuyé, et un peu dépité par les faiblesses de certaines des fonctions LUA spécifiques FSUIPC ...
J'espère que certains auront eu le courage de tout lire !
Michel
un sujet un peu technique : je suis en train de mettre au point la motorisation de mon throttle A320, ça commence à tournicoter, mais ça n'est pas clean ...
Ce que je fais : un Arduino est en charge de faire tourner le moteur pas à pas du trim ; il dialogue avec LUA/FSUIPC pour lui demander à quelle position il faut positionner le trim, et compare ensuite cette valeur avec la position physique du trim, qu'il acquiert en recopiant la valeur d'un potentiomètre qui tourne avec le trim ; après avoir vérifié que l'avion n'est pas en vol, l'Arduino envoie au moteur les ordres de mouvement qui vont bien, et ainsi de suite.
Pour communiquer avec LUA/FSUIPC, je suis pratiquement contraint d'utiliser les bibliothèques LUA qui viennent avec FSUIPC - au détour, documentation extrêmement minimaliste en matière de com ! et grosses instabilités lors des tests ; mais bon, la logique est validée en environnement 32 bits, il me reste à passer en 64 bits et surtout à rationaliser et blinder les codes Arduino et LUA.
Maintenant, 2 questions :
1) Débuguer du LUA/FSUIPC ça n'est pas vraiment de la tarte, car les bibliothèques LUA/FSUIPC sont intégrées à la dll FSUIPC : ça veut dire que pour faire tourner le code LUA il faut faire tourner FSUIPC, donc faire tourner FSX ou P3D ; et quand on "kill" les process LUA, FSX se met très rapidement à genoux, c'est hyper pénible.
Je m'y prends ainsi : développement du code Arduino avec Programino, l'Arduino est connecté au PC par USB ; Arduino se sert de cette liaison pour communiquer avec LUA, donc pas moyen de voir ce qu'il se passe sur le moniteur série, j'ai donc connecté un afficheur LCD sur l'Arduino pour pouvoir tracer un peu les choses - OK
Coté LUA, développement du code avec sciTE, sauvegarde du code dans le répertoire Modules de FSX ; j'ai attaché le code sur un bouton d'un joystick via FSUIPC, ainsi que la macro 'killall LUA" sur un autre bouton ; pour suivre ce qui se passe au niveau LUA, je trace à l'écran à l'aide d'ordres ipc.display (ça marche quand ça va bien, parfois plus rien ne s'affiche alors que je vois sur Arduino que ça tourne - mais c'est un autre sujet).
Donc pour tester, je charge Arduino, je lance fsx, et j'appui sur le bouton du joystick pour lancer le script LUA ; quand je veux arrêter pour apporter des modif, j'appui sur le bouton killallLUA ; mais au bout de 3 ou 4 fois, FSX se vautre !
La (en fait les) questions :
1a - comment vous organisez-vous pour ce type de devts ?
1b- y-a-t 'il un autre moyen de faire tourner un script LUA embarquant des fonctions fournies par les bibliothèques spécifiques FSUIPC que de le faire tourner sous FSUIPC/FSX (par exemple en disposant des bibliothèques FSUIC à part) ?
2) Et la dernière question : évidement je ne développe pas directement sur le simu, je suis sur un autre PC, avec une licence FSX dédiée - tout va bien ; maintenant, il faut que je passe en 64 bits pour P3Dv4.1, mais là, je n'ai pas de licence spécifique (j'en ai 2 pour le simu, ç'est déjà pas mal) ; j'ai bien le FSUIPC 5 pour 64 bits, avec le LUA à niveau, mais pour faire tourner ce FSUIPC il faut un P3Dv4.1 !!! coincé ! pensez-vous que je puisse utiliser une des licences du simu ("déontologiquement" ça ne me gênerait pas, mais le fait de faire ça ne risque-t-il pas de me désactiver le P3D dont j'aurais utilisé les codes ?)
Bien ennuyé, et un peu dépité par les faiblesses de certaines des fonctions LUA spécifiques FSUIPC ...
J'espère que certains auront eu le courage de tout lire !
Michel