LVARS: Interfacer des avions add-ons: C'EST POSSIBLE !

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

Re: Interfacer des avions add-ons: C'EST POSSIBLE !!!!

Messagede stevelep » Dim 11 Aoû 2013 20:21

@Chris

Juste une petite question , avec ce principe crois tu qu'on peut aussi interfacer le PMDG ,se libérant ainsi
des contraintes de cet addons. et évitant ainsi d'avoir la suite Prosim 737 ?


Il faudrait que tu sortes le listing des L:vars comme expliqué dans le post et nous le publier (je n'ai pas cet avion)
Pour qu'on puisse voir si c'est envisageable. Bien que vu le nombre de variables déjà présentent pour
un simple Katana, j'ose pas imaginer les milliers qu'il doit y avoir pour un 737 ...

Renseigne toi aussi si des offsets FSUIPC propres n'existet pas pour certains avion de PMDG ?

@Honoresia

Bon en fait non, réinjecter des Lvars dans des offsets connus çà fou le bordel... Si je remet la Lvars du DA20 pression d'huile dans l'offset connu 08BA alors les calculs suivants de la pression ne sont plus bons et la valeur sort de ce qui est connu.

Bein non c'est pas une bonne idée, car il y a conflit entre les gauges et ton script LUA.
Il vaut mieux envoyer les valeurs sur des offsets libres $6000 et plus et ensuite
modifier dans panel builder les offsets utilisés.

BOB
Avatar de l’utilisateur
stevelep
Administrateur du site
 
Messages: 2075
Inscription: 27/03/09
Localisation: LSGN Neuchâtel, Suisse

Re: Interfacer des avions add-ons: C'EST POSSIBLE !!!!

Messagede Honoresia » Dim 11 Aoû 2013 20:36

Et bien j'ai essayé de renvoyer sur un offset libre et d'ajuster cela dans Panel Builder.

Mais il semblerait que cela ne fonctionne pas, mon aiguille me donne une valeur "lisse". J'ai bien ajusté le temps de rafraichissement de la connexion de Panel Builder (par défaut 250ms, je l'ai mise à 50ms)...

Donc ma question à propos de Panel Builder : les offsets libres sont-ils pris en compte ?
J'ai parfois (pas à 100%) un message d'erreur en jouant avec les offsets de jauges :

L'index se trouve en dehors des limites du tableau


Je ne sais pas à quoi cela correspond mais mon hypothèse est que l'on ne peut mettre un offset autre que le tableau FSUIPC, puisque la connexion de panel Builder de fait via FSUIPC ou Simconnect. Mais j'espère avoir tord car sinon le logiciel perd son atout n°1 pour les constructeurs de cockpits...

Je teste la démo de Panel Builder depuis une semaine, je ne connais donc pas tout dessus et j'ai peut-être oublié ou mal fait quelque chose...
Honoresia
 
Messages: 23
Inscription: 6/08/13

Re: Interfacer des avions add-ons: C'EST POSSIBLE !!!!

Messagede stevelep » Dim 11 Aoû 2013 20:45

Donc ma question à propos de Panel Builder : les offsets libres sont-ils pris en compte ?

Pour le savoir mets un offset connu de FSUIPC à la place par exemple celui de l'autre moteur
tu verras tout de suite si il le prend en compte ...

BOB
Avatar de l’utilisateur
stevelep
Administrateur du site
 
Messages: 2075
Inscription: 27/03/09
Localisation: LSGN Neuchâtel, Suisse

Re: Interfacer des avions add-ons: C'EST POSSIBLE !!!!

Messagede FiX » Dim 11 Aoû 2013 23:52

Honoresia: et ça donne quoi la valeur de ton offset libre dans lequel tu réinjectes la Lvars pression d'huile? Tu vois la valeur de ton offset "osciller" avec la vibration de l'aiguille?
i7 2600k/P8P67pro/16Go PC3 17000/RX 580/SSD 250 Go et 120Go/W10x64
https://www.facebook.com/cessna150.sim
Avatar de l’utilisateur
FiX
 
Messages: 4664
Inscription: 8/01/10
Localisation: Reims/Maubeuge

Re: Interfacer des avions add-ons: C'EST POSSIBLE !!!!

Messagede Honoresia » Lun 12 Aoû 2013 07:58

Oui çà c'est bon, la valeur oscille bien lorsque je contrôle l'offset avec FSUIPC (Loggin / Specific Values Check)

Seulement j'arrive pas à sortir l'offset dans Panel Builder...


Pour les offset moteur 1, 2, 3, 4, Panel Builder peut le faire. S'agissant de la pression d'huile, on a par défaut 08BA, 0952 pour moteur 1 et 2, ce qui est conforme aux offset FSUIPC. Lorsque j'écris la Lvars de la pression d'huile du Katanat dans 08BA, j'ai une jauge qui oscille, mais évidemment çà embrouille tous les calculs de l'avion par la suite. Lorsque je met la Lvar dans un offset nouveau (6000) alors Panel Builder affiche une jauge qui n'oscille pas, comme si cela n'était pas pris en compte. Pourtant mon Offset dans FSUIPC oscille...
Honoresia
 
Messages: 23
Inscription: 6/08/13

Re: Interfacer des avions add-ons: C'EST POSSIBLE !!!!

Messagede stevelep » Lun 12 Aoû 2013 13:05

Est-tu arrivé à assigner l'offset libre $6000 à l'aiguille de la gauge dans panel builer ?
Ou est-ce qu'il continue à lire la valeur de l'offset standard de FS ?


BOB
Avatar de l’utilisateur
stevelep
Administrateur du site
 
Messages: 2075
Inscription: 27/03/09
Localisation: LSGN Neuchâtel, Suisse

Re: Interfacer des avions add-ons: C'EST POSSIBLE !!!!

Messagede FiX » Lun 12 Aoû 2013 17:16

Honoresia a écrit:Oui çà c'est bon, la valeur oscille bien lorsque je contrôle l'offset avec FSUIPC (Loggin / Specific Values Check)

Seulement j'arrive pas à sortir l'offset dans Panel Builder...


Pour les offset moteur 1, 2, 3, 4, Panel Builder peut le faire. S'agissant de la pression d'huile, on a par défaut 08BA, 0952 pour moteur 1 et 2, ce qui est conforme aux offset FSUIPC. Lorsque j'écris la Lvars de la pression d'huile du Katanat dans 08BA, j'ai une jauge qui oscille, mais évidemment çà embrouille tous les calculs de l'avion par la suite. Lorsque je met la Lvar dans un offset nouveau (6000) alors Panel Builder affiche une jauge qui n'oscille pas, comme si cela n'était pas pris en compte. Pourtant mon Offset dans FSUIPC oscille...



Il ne te reste plus qu'a tester le truc de Bob, mais visiblement panel builder ne doit pas lire les offset libres.
Sinon, tu peux aussi demander directement a l'editeur de panel builder...
i7 2600k/P8P67pro/16Go PC3 17000/RX 580/SSD 250 Go et 120Go/W10x64
https://www.facebook.com/cessna150.sim
Avatar de l’utilisateur
FiX
 
Messages: 4664
Inscription: 8/01/10
Localisation: Reims/Maubeuge

Re: Interfacer des avions add-ons: C'EST POSSIBLE !!!!

Messagede olr » Jeu 15 Aoû 2013 17:21

Bonjour,

J'ai avancé sur panel builder et les offsets libres, je vais essayer de reprendre le cheminement pour les gauges du DA20 d'Honoresia.



Sur le PC FSX:
Créer un script LUA pour l'avion concerné. Ca a été expliqué plus haut dans la discussion, je reprends le script d'Honoresia pour l'exemple:

Code: Tout sélectionner
while 1 do

-- LECTURE DES LVARS
oil_press = ipc.readLvar("L:NEEDLE_OIL_PRESS")
oil_temp = ipc.readLvar("L:NEEDLE_OIL_TEMP")
-- LECTURE DES OFFSETS

-- ECRITURE DANS DES OFFSETS LIBRES
ipc.writeSD(0X66C8, oil_press)
ipc.writeSD(0X66C9, oil_temp)

-- TEMPS D'ATTENTE (RAFRAICHISSEMENT AVANT NOUVELLE BOUCLE)
ipc.sleep(100)

end


L'astuce c'est que PanelBuilder attends les valeurs à un certain format (longueur de l'offset). Ici on écrit ipc.writeSD, autrement dit (d'après la doc FSUIPC LUA Library), une valeur de 32 bits.
Déjà le 2ème offset devrait donc commencer en 66CC (4 bytes) sinon le second chevauche le premier et rien ne va plus.

Ensuite, pour éditer les paramètres de l'interface FSUIPC de panel builder, d'expérience l'interface plante et ne sauvegarde pas toujours tout. Il vaut donc mieux aller directement au fichier ini qui se trouve par ici:

C:\Users\(votre session)\AppData\Roaming\simplugins\PanelManagerPRO\SimpluginsFSUIPC.ini

En éditant ce fichier on va trouver (toujours pour notre exemple), la section suivante:
Code: Tout sélectionner
[EngOilTempPress]
OPRE0 = ushort,08BA,{0} * 55 / 16384
OTEM0 = short, 66c0,{0} * 140 / 16384
OPRE1 = ushort,0952,{0} * 55 / 16384
OTEM1 = short,0950,{0} * 140 / 16384
OPRE2 = ushort,09EA,{0} * 55 / 16384
OTEM2 = short,09E8,{0} * 140 / 16384
OPRE3 = ushort,0A82,{0} * 55 / 16384
OTEM3 = short,0A80,{0} * 140 / 16384
FPR0 = int,08F8,{0} / 144
FPR1 = int,0990,{0} / 144
FPR2 = int,0A28,{0} / 144
FPR3 = int,0AC0,{0} / 144


Les valeurs qui nous intéressent: OPRE0 et OTEM0 (pression et température moteur 1)
ushort et short : variables stockées sur 2 octets (donc on devra utiliser des offsets de 2 octets dans notre script LUA) (*). D'après la doc, la correspondance serait WriteSW pour short et WriteUW pour unsigned short.
08BA, 66C0 : les offsets que l'on remplacera par les notres.
{0} * 55 / 16384 : conversion des données (à voir avec la doc FSUIPC sur le format des offsets et selon ce que sort la LVar (pas forcément les mêmes unités?)
Je suppose que {0} représente la valeur lue dans l'offset.


Un petit tableau pour ne pas se tromper:

0x66C8 1 ushort WriteUW Oil_press
0x66C9 2
0x66CA 1 short WriteSW Oil_temp
0x66CB 2
0x66CC 1 Prochain offset libre


On se retrouve après modification de la section du SimpluginsFSUIPC.ini:

Code: Tout sélectionner
[EngOilTempPress]
OPRE0 = ushort,66C8,{0} * 55 / 16384
OTEM0 = short,66CA,{0} * 140 / 16384
OPRE1 = ushort,0952,{0} * 55 / 16384
OTEM1 = short,0950,{0} * 140 / 16384
OPRE2 = ushort,09EA,{0} * 55 / 16384
OTEM2 = short,09E8,{0} * 140 / 16384
OPRE3 = ushort,0A82,{0} * 55 / 16384
OTEM3 = short,0A80,{0} * 140 / 16384
FPR0 = int,08F8,{0} / 144
FPR1 = int,0990,{0} / 144
FPR2 = int,0A28,{0} / 144
FPR3 = int,0AC0,{0} / 144


Et le script LUA correspondant:

Code: Tout sélectionner
while 1 do

-- LECTURE DES LVARS
oil_press = ipc.readLvar("L:NEEDLE_OIL_PRESS")
oil_temp = ipc.readLvar("L:NEEDLE_OIL_TEMP")
-- LECTURE DES OFFSETS

-- ECRITURE DANS DES OFFSETS LIBRES
ipc.writeUW(0X66C8, oil_press)
ipc.writeSW(0X66CA, oil_temp)

-- TEMPS D'ATTENTE (RAFRAICHISSEMENT AVANT NOUVELLE BOUCLE)
ipc.sleep(100)

end


NB: j'ai testé vite fait avec le DA20, ça fonctionne sur le principe mais la conversion des valeurs n'est pas correcte. Je n'ai pas été plus loin, est-ce que ce sont les bonnes LVars, dans quelle unité, etc...

L'inconvénient c'est qu'il n'existe qu'un fichier ini... Donc pour chaque avion utilisé il faudra faire un fichier SimpluginsFSUIPC.ini différent et le remplacer avant le vol. Pas pratique mais pas non plus insurmontable.

(*) Je ne suis pas sur que l'on doive obligatoirement utiliser le même format de données (après tout on peut modifier le type dans l'ini), mais de ce que j'ai vu dans mon test avec les RPM du Cub, j'ai du utiliser le même format pour que ça fonctionne (FLOAT).

Olivier.
Avatar de l’utilisateur
olr
 
Messages: 10
Inscription: 21/12/12

Re: Interfacer des avions add-ons: C'EST POSSIBLE !!!!

Messagede Honoresia » Sam 17 Aoû 2013 10:33

Salut à tous !

Merci pour cette correction des mes erreurs, j'ai compris comment cela fonctionne et j'arrive à lire ce que je veux aux niveaux des instruments.

Bon donc avec cette méthode on peut lire n'importe quel instrument qui utilise une variable locale Lvar. On lit la variable locale et on l'écrit dans un offset, dans la plage FSUIPC recommandée par Pete D. : 66C0 à 66FF ("Free for general use").

La jauge n'a plus qu'à être programmée sur l'offset en question.

On voit donc l'énorme potentiel de la méthode mais un problème se pose déjà pour un tout petit aéronef qu'est le DA20, et qui possède sûrement moins de variables qu'un avion de ligne : le nombre d'offset !

Entre 66C0 et 66FF çà nous laisse 64 positions pour nos variables. Certaines variables sont courtes (ushort, short...) et tiennent sur 2 offsets. D'autres sont des mots doubles et là çà va coincer : on n'aura jamais assez d'offsets entre 66C0 et 66FF pour récupérer seulement l'instrumentation - ne serait-ce que - du DA20. Pour l'indicateur d'attitude par exemple, il y a un PITCH et ROLL qui tiennent sur deux mots doubles !

Donc la "méthode LUA" est une superbe avancée, mais il faut trouver encore quelques astuces pour récupérer toutes nos variables, c'est à dire au moins l'instrumentation... Certains utilisent des offsets déjà pris mais inutiles pour l'addon concerné (exemple pour le Dodosim Bell 206 on peut stocker une valeur dans l'offset concernant la visière du concorde puisqu'elle ne sert à rien dans le cas de l'hélicoptère). Donc on peut bel et bien récupérer nos valeurs, mais il va falloir sacrément planifier où les écrire. On a de nouvelles possibilités mais on ne gagne pas sur le planning...

Mais quelqu'un à peut-être déjà une astuce pour cela ?
Honoresia
 
Messages: 23
Inscription: 6/08/13

Re: Interfacer des avions add-ons: C'EST POSSIBLE !!!!

Messagede stevelep » Sam 17 Aoû 2013 12:21

Aucun soucis avec le nombre d'offset.

En fait les offset 6000-7000 et plus sont réservés pour des add-ons par le concepteur de FSUIPC.
Chaque add-on peux se voir attibuer une dizaine d'offsets propres, certain gros
soft comme ProjectMagenta en ont plusieurs dizaines voir centaine.

Il sont réservé mais ça veux pas dire qu'il sont utilisés. Si tu n'as le programme installé
les offsets sont totalement inutilissé et tu es libre d'en faire ce que tu veux.
(dans un usage non-commercial)

En résumé, tu ne va pas manquer d'offset.
Tu peux aussi voir avec FSinterrogate si les plages d'offset que tu compte utiliser sont libre ou pas
Si il affiches des valeurs ou zéro.

BOB
Avatar de l’utilisateur
stevelep
Administrateur du site
 
Messages: 2075
Inscription: 27/03/09
Localisation: LSGN Neuchâtel, Suisse

PrécédenteSuivante

Retourner vers Liaisons entreFS et les autres logiciels





Qui est en ligne

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