Aide - Recherche - Membres - Calendrier
Version complète : Dev LUA
3rd-Wing · Escadre virtuelle DCS > DCS (& LockOn) > 3rd Wing devs' zone
IceMaKeR
Salut les amis de la 3rd bon après un VFAT assez mouvementé pour moi! gap.gif joystick.gif je me remets a un projet lancé pour les VV et d'autres si j'arrive a faire ce que je souhaite.

Je vous expose le truc:

Je veux partir sur le principe de ghostcontrol pour ceux qui connaissent pas c'est un outil très pratique qui permet de voler avec un ghost extrait d'un track enregistré.
Mon but est de faire la même chose mais en partant d'un enregistrement "live".
J'ai commencé a piller votre forum innocent.gif des tutos et autres docs que j'ai pu trouver mais je coince encore sur la façon de'interfacer mon prog et lockon!
Quelle est la méthode que vous utilisez pour envoyer et recevoir les infos depuis vos softs?

Merci d'avance pour votre aide
MajorBug
Tu as frappé à la bonne porte tongue.gif

Les piteurs et codeurs tarés de service ne devraient pas tarder à te renseigner wink.gif

Par contre vu la méthode (export lua) j'ai du mal à voir ce qui différencie un track d'un live ... et dans les deux cas tu ne peux exporter que le joueur/client (ton avion en gros)

Potentiellement il y aura des changements de ce côté dans FC 2.0 mais rien de prévu pour le moment wink.gif
DArt
Je suis pas sur de bien saisir exactement ton envie:
  1. Tu veux enregistrer en live les mouvements de ton avion, pour les rejouer ensuite? (cad que t'as plus besoin d'enregistrer le track)
  2. Tu veux dupliquer en live un avion déjà existant?
  3. autre
wink.gif
IceMaKeR
CITATION(DArt @ 8 Dec 2009, 16:13) *

Je suis pas sur de bien saisir exactement ton envie:
  1. Tu veux enregistrer en live les mouvements de ton avion, pour les rejouer ensuite? (cad que t'as plus besoin d'enregistrer le track)
  2. Tu veux dupliquer en live un avion déjà existant?
  3. autre
wink.gif

C'est le 1 Msieur

En gros ce que je veux c'est enregistrer un vol pour le repasser sur un serveur et voler dessus en ailier pour le training des figures de base de la voltige en équipe.
Ce que fait déjà ghostcontrol mais avec quelques bugs et le créateur a lâché le dev du soft.

CITATION(MajorBug @ 8 Dec 2009, 16:02) *

Tu as frappé à la bonne porte tongue.gif

Les piteurs et codeurs tarés de service ne devraient pas tarder à te renseigner wink.gif

Par contre vu la méthode (export lua) j'ai du mal à voir ce qui différencie un track d'un live ... et dans les deux cas tu ne peux exporter que le joueur/client (ton avion en gros)

Potentiellement il y aura des changements de ce côté dans FC 2.0 mais rien de prévu pour le moment wink.gif


C'est pour cela que je suis venu ici...

La différence entre un track et le live c'est que dans le track c'est lockon qui exporte les infos joy en live je récupère direct de windows.
DArt
Ok, donc l'idée est d'enregistrer la position de ton avion régulièrement et de recréer le track.

Fondamentalement, cela doit être jouable. Maintenant, le point casse-bonbon sera la regénération du fichier track. Je regarde un peu en détails cela et je te tiens au jus pour ma réponse définitive.

Par contre, comme le dis Major, ce sera différent entre la version 1.12 et 2.0 car cela va complètement changé (en considérant LO 2.0 proche de BS). La bonne nouvelle, c'est qu'avec la 2.0, ce sera beaucoup plus facile...

Pour la 1.12, je te dis ça. wink.gif


Arfff, je relis le post de Major et je reviens sur mes propos. Si le track rejoue les mouvements joysticks, cela devient très difficile car depuis le lua, on n'a pas l'info, on ne connait que la position de l'avion.... :/

Je regarde tout de même pour un avis plus fiable tongue.gif
IceMaKeR
CITATION(DArt @ 8 Dec 2009, 17:00) *

Ok, donc l'idée est d'enregistrer la position de ton avion régulièrement et de recréer le track.

Fondamentalement, cela doit être jouable. Maintenant, le point casse-bonbon sera la regénération du fichier track. Je regarde un peu en détails cela et je te tiens au jus pour ma réponse définitive.

Par contre, comme le dis Major, ce sera différent entre la version 1.12 et 2.0 car cela va complètement changé (en considérant LO 2.0 proche de BS). La bonne nouvelle, c'est qu'avec la 2.0, ce sera beaucoup plus facile...

Pour la 1.12, je te dis ça. wink.gif


Arfff, je relis le post de Major et je reviens sur mes propos. Si le track rejoue les mouvements joysticks, cela devient très difficile car depuis le lua, on n'a pas l'info, on ne connait que la position de l'avion.... :/

Je regarde tout de même pour un avis plus fiable tongue.gif


On se comprend pas j'ai l'impression. megalol.gif
La partie récup des mouvement de joy je les ai. On les récupère avec l'export, ou via ma méthode qui consiste a récupérer en direct les mouvements de joystick et de les stocker dans un fichier pour les envoyer dans lockon via le socket. Sous condition de tester!
DArt
Si tu dis pas tout aussi gap.gif


Après, je vois 2 solutions, soit tu regénère un fichier track (cf le côté casse-couille), soit tu fais tourner un 2ème LO et tu le piote via ton fichier et le LUA. Le problème sera la synchro, pour reproduire exactement les mêmes mouvements...

Via le LUA, il faut passer par:
CITATION
Input:
LoSetCommand(command, value) -- (args - 2, results - 0)
-1.0 <= value <= 1.0

Some analogous joystick/mouse input commands:
command = 1 - joystick pitch
command = 2 - joystick roll
command = 3 - joystick rudde


Mais cela me parait un peu tendu pour tout synchroniser et avoir un résultat précis (genre tirer le manche au bon moment lors d'un piqué wink.gif )
IceMaKeR
CITATION(DArt @ 8 Dec 2009, 19:20) *

Si tu dis pas tout aussi gap.gif


Après, je vois 2 solutions, soit tu regénère un fichier track (cf le côté casse-couille), soit tu fais tourner un 2ème LO et tu le piote via ton fichier et le LUA. Le problème sera la synchro, pour reproduire exactement les mêmes mouvements...

Via le LUA, il faut passer par:
CITATION
Input:
LoSetCommand(command, value) -- (args - 2, results - 0)
-1.0 <= value <= 1.0

Some analogous joystick/mouse input commands:
command = 1 - joystick pitch
command = 2 - joystick roll
command = 3 - joystick rudde


Mais cela me parait un peu tendu pour tout synchroniser et avoir un résultat précis (genre tirer le manche au bon moment lors d'un piqué wink.gif )


Le probleme du track c'est que tu peux pas voler avec tu peux que le regarder, et perso je m'en fous de regarder! whistling.gif a moins que j'ai raté un truc dans lockon et que l'on peut voler sur un avion depuis un track!!! blink.gif ce qui perso serait le pied car plus besoin de m'emm... beter whistling.gif
MajorBug
A priori tu dois pouvoir enregistrer l'export lua depuis le track pendant qu'il tourne et le repasser ensuite avec un deuxième pc ... exactement comme en live en fait smile.gif

Tu ne peux pas piloter à distance un autre avion que le tiens (le client), donc faut de toute manière deux pc pour ça wink.gif
IceMaKeR
Je sais bien je peux même avoir 2 PC dans le mien (Merci VMWARE!!)
Mais je comprends pas cette histoire de track!! je vois pas comment je peux voler sur un pc avec un autre PC qui passe un track
MajorBug
Je ne sais pas comment fonctionne le ghost mais à priori l'idée c'est ça : tu as un programme qui tourne et qui lit en continu par export lua la position des commandes, la position de la manette des gazs, les evenements de train aérofrein volets et tout le toutim. Ces infos sont enregistrées dans un format quelqueconque.

La lecture peut se faire depuis un track ou en live, de la même manière que LOTATC ou TacView tournent aussi bien sur un track que sur une partie réseau. Sachant qu'évidemment les commandes ne sont disponibles que pour l'avion client (de même que les infos "fines" de TacView comme le roulis, seul le client exporte cette info)

Une fois tes infos de commandes enregistrées, ton programme va les rejouer, cette fois en les envoyant au client, ton client qui est connecté en réseau sur ton 2eme pc et qui va donc effectuer à nouveau les mêmes actions

Ca correspond à ce que tu souhaites ? smile.gif
IceMaKeR
Oui exactement.
Je veux vraiment comprendre pour le faire moi même car je veux pouvoir modifier le truc si besoin...
KaTZe
Permettez moi de m'immiscer dans votre conversation blushing.gif , puisque j'utilise de façon plutôt intensive les exports de Lock-On avec mon panel déporté wink.gif

J'ai bien peur (à moins d'avoir loupé tout un pan du système) que vous surestimiez énormément les exports de ce cher Lock-On (du moins en v1.12).

S'il est effectivement possible d'envoyer des commandes de gaz, picth/roll/turn etc etc via les offset de commandes de Loiocpserveur [501, 502, 503, 504 etc etc].
Les exports sont assez complets en ce qui concerne les paramètres de vol (vitesse, attitude etc etc) ou position de l'appareil.
Mais je n'ai jamais trouvé aucun export sur les inputs envoyés durant un vol , ni les évènements comme les AF, le train etc etc ...
C'est bien pour çà qu'on arrive même pas à avoir un feed back des 3 vertes sur nos pits crash.gif crash.gif

Quand à l'export depuis un track ... je vais regarder mais la dernière fois que j'ai voulu regarder avec mon KaTZ-Pit les paramêtres de vols à partir d'un track (La démo de Pouka à la LANX) çà ne marchait pas (mais je crois que c'était because le track avait été enregistré non par Pouka mais pas OSLO en spectateur).

Bref, je pense avoir compris le souhait d'IceMaKeR, mais j'ai bien peur que reproduire un vol à partir d'un enregistrement des inputs que l'on rebalancerait une 2eme fois à l'identique, ne soit pas possible (en tout cas simplement avec les exports).

Maintenant si je suis hors sujet , désolé jesors.gif mais tapez pas , non ... tapez pas gap.gif

Miaou smile.gif
MajorBug
Non c'est interessant, puisque comme c'est possible (ça existe déjà), y'a forcément un truc gap.gif

Peut-être que le ghost passe même pas par Lock On, peut-être qu'il enregistre directement la sortie du joy et les appuis de touche pour renvoyer la même chose quand on lui demande ? Dans ce cas tu as effectivement besoin de voler toi même une fois, un track ne suffira pas
IceMaKeR
CITATION(MajorBug @ 8 Dec 2009, 23:58) *

Non c'est interessant, puisque comme c'est possible (ça existe déjà), y'a forcément un truc gap.gif

Peut-être que le ghost passe même pas par Lock On, peut-être qu'il enregistre directement la sortie du joy et les appuis de touche pour renvoyer la même chose quand on lui demande ? Dans ce cas tu as effectivement besoin de voler toi même une fois, un track ne suffira pas

en faite il faut obligatoirement un track sinon il peut pas générer de fichier...

Voici le lien ver la page qui en parle et ou on peut DL le prog : ICI
Vous comprendrez mieux

Il lit le track en mode enregistrement et il génère unb fichier PHTRK qui contient les appuis de touches et les mouvements d'axe (Tout)
MajorBug
Hmmmm la vérité est ailleurs alors cowboy.gif

Ca pourrait être interessant pour les piteurs de savoir exactement comment le ghost fonctionne donc smile.gif
KaTZe
CITATION(MajorBug @ 9 Dec 2009, 01:09) *

Hmmmm la vérité est ailleurs alors cowboy.gif

Ca pourrait être interessant pour les piteurs de savoir exactement comment le ghost fonctionne donc smile.gif


blink.gif blink.gif +1 en effet Major

Je vais allez voir çà de plus près detective.gif
Merci IceMaKeR thumbsup.gif

Miaou wavetowel2.gif
Maraudeur
En fait, le souci que l'on a pour le Pit, et comme l'a indiqué KaTZe, c'est que l'on a pour ainsi dire aucune variable d'état. sad.gif

Il nous manque notamment:

- état des volets (sortis, demi-sortis, rentrés)
- état et statut du train (rentré, sorti, HS, partiemment sorti)
- état des trims (position, ou au neutre)
- appui sur les freins et fonctionnement de ceux-ci
- position des bacs de bord d'attaque
- position des grilles et des déflecteurs d'entrées d'air
- position des AF
- etc...

En fait, pour les pits on triche en déduisant des paramètres en fonction de l'état d'autres infos, comme la présence ou non de pression hydraulique dans les circuits, la vitesse pour les sorties d'éléments. Le reste étant calculé en fonction des actions sur les commandes (soit par le SIOC et Mastercards, soit par interception des commandes DX Input)
IceMaKeR
J'ai une idée mais j'ai besoin de tester vous auriez pas un bout de code pour que je comprenne comment on fait pour chopper les infos de lockon depuis un prog et comment on les envoie?
Car c'est là que je bloque pour le moment...

Mais bon normalement FC2 sort début 2010 (janvier????) donc ya pas le feu pour ces infos là.
Mais je me dis que phantomcontrol peut chopper les appuis de touches et les axes donc ya pas de raison pour que l'on puisse pas récupérer d'autres infos!
DArt
Tu as déjà l'eport.lua de ton Lockon qui, de base, contient pas mal d'info pour commencer.

Après, tu peux regarder d'autre lua. Celui de LotATC par exemple est dispo ici :
http://lotatc.dartsite.org/browser/trunk/l...ver/lotatc2.lua

Mais il ne contient pas de commande, juste sortir de l'info.
KaTZe
Tu peux aussi jeter un coup d'oeil sur le LOSIOC (développé par LeCreole) que l'on utilise pour les pits virtuels :

Cliquez pour voir le fichier-joint

Miaou wink.gif
GILLOU

En fait le ghost (phantom) utilise le mode trace du modeltimer pour générer un premier fichier (énorme) de l'enregistrement du track ce fichier comporte donc TOUTES les infos permettant à LOCKON de recréer le vol à l'identique. (Fonction TRACE [ON] du phantom) en fonction des flags [true][false] du modeltimer.lua on obtient l’un des fichiers :

- Temp/MissionFly.log.
- Temp/TrackRecord.log.
- Temp/TrackPlay.log.
- Temp/TrackEdit.log.

Les bugs (légers) sont dans la conversion du fichier Trackplay.log en format *.PHTRK , bouton « Convert » du logiciel Phantom.

(Pour info taille d'un fichier test TrackRecord.log 80Mo , fichier commande du phantom .PHTRK 2Mo !)

Normalement ce fichier .PHTRK ne devrait comporter que des commandes valides et utilisables par la fonction LUA LoSetCommand(cmd,value) ou LoSetCommand(cmd).

Donc il faut ‘nettoyer’ le fichier PHTRK pour éviter quelques bugs…..

Pour info l’exploitation des fichiers .log est très instructive sur le fonctionnement interne de LOCKON wink.gif

Je travaille aussi sur le ‘LIVE’ mais c’est pas encore çà LOL
C'est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquez ici.