Vous n'êtes pas identifié(e).
Merci beaucoup pour toutes ces infos
Hors ligne
Salut,
je suis désolé d'abuser encore de toi ...
Mais je voulais savoir quelle conversion fais tu pour utiliser un FSUIPC_Write latitude(0560) et longitude(0568) ?
Je trouve des longitudes et latitudes totalement incohérentes
Hors ligne
Bon,
(Je ne me suis pas penché sur cette conversion, car en.NET je n'utilise pas cette librairie mais une autre qui gère la conversion d'elle meme.)
On va y réfléchir ensemble si tu le veux bien. De mon coté j'ai mon idée.
-Qu'est ce que la doc te dit ?
-Qu'est ce que tu fais déjà ?ou, qu'est ce que tu pense faire ?
-Tu me dis que tu as des incohérences, raconte moi !
Essaie de structurer tes messages !
Le je te jette un message et débrouille toi avec est un peu lassant :)
@tt
Dernière modification par kbumbaz (19/04/2012 10:22)
./Léopold >>
*
Hors ligne
Excuse moi,
actuellement j'ai réussis a créer une interface qui renvoi les informations tels que la longitude, la latitude, l'altitude, le pitch, le head, le bank (...) en direct pendant que l'on utilise Flight Simulator X. J'ai bien vérifier j'obtiens les bon résultats il n'y a pas d'erreur.
Maintenant je me penche sur le coté de comment faire se déplacer l'avion avec des longitude et latitude, mon objectif étant pour résumer de le faire se téléporter sur différent aéroports dans le monde (Japon,Paris,Toulouse,San Francisco) pour vérifier que je ne fais pas d'erreurs de conversions en utiliser FSUIPC_Write avec le bon Offset.
Je voulais donc savoir comment de la longitude et de la latitude, en degré, arrives tu à utiliser "FSUIPC_Write(0x0560...)" et "FSUIPC_Write(0x0568...)". D'après la doc il faut réaliser une conversion des degrés en une valeur propre a FS, mais je n'arrive pas à trouver celle-ci
Désolé pour l'aspect "jette un message et débrouille toi" ce n'est vraiment pas mon intension, mais je slalom entre beaucoup de choses même si ce n'est pas vraiment une excuse correcte ...
Merci encore de ton attention et pardonne moi pour ma négligence.
Rémi
Hors ligne
Pas de soucis, ne te jette pas par terre, y a pire dans la vie
Mais, tu vois, je t'ai posé des questions et tu ne m'y répond pas
-Qu'est ce que la doc te dit ?
-Tu me dis que tu as des incohérences, raconte moi !
Alors , je prend la doc et je lis :
0x560 : If your compiler supports long long (64-bit) integers then use such a variable to simply copy this 64-bit value into a double floating point variable and multiply by 90.0/(10001750.0 * 65536.0 * 65536.0).
ou alors si ton compilateur ne supporte pas les long long de 64bit,
Otherwise you will have to handle the high 32-bits and the low 32-bits separately, combining them into one double floating point value (say dHi). To do, copy the high part (the 32-bit int at 0564)
Ok-SimC
Ok-SimC
to one double and the low part (the 32-bit unsigned int at 0560) to another (say dLo). Remember that the low part is only part of a bigger number, so doesn‘t have a sign of its own. Divide dLo by (65536.0 * 65536.0) to give it its proper magnitude compared to the high part, then either add it to or subtract it from dHi according to whether dHi is positive or negative. This preserves the integrity of the original positive or negative number. Finally multiply the result by 90.0/10001750.0 to get degrees.
Either way, a negative result is South, positive North.
Donc déjà dans lequel de ces deux cas te trouves tu ? quel compil utilises-tu ?
Ensuite, tu dois manipuler des types dans ton langage, donc la c'est du code pur et dur, je te laisse faire le C et moi ca fais deux vraiment je peux pas d'aider. Tu vas trouver, creuse.
Autre piste:
google : C++ FSUIPC lattitudes et on trouves un message d'un copain, jeeheel, (qui fait un remarquable travail sur un softawre pour A320) ici tu as des infos de sa part, il montre comment il fait ses conversions en delphi tu peux t'en inspirer si tu coinces.
Courage tiens moi au courant!
./Léopold >>
*
Hors ligne
Salut,
je te donne quelques nouvelles de mon projet
J'ai bien réussis a gérer les longitude et latitude
Je vais maintenant m'attaquer aux angles et à l'altitude et un fois terminé je commencerai la lecture d'un fichier contenant toutes ces informations afin de faire réaliser un trajet à mon avion l'avion.
Merci encore pour ton attention et bonne journée
Hors ligne
pas de soucis, pour les alt j'ai cette conv:
private Offset<int> m_fsoPlaneAltitudeM = new Offset<int>(0x0574);
public int PlaneAltitudeM
{
get { return m_fsoPlaneAltitudeM.Value; }
set { m_fsoPlaneAltitudeM.Value = value; FSUIPCConnection.Process(); }
}
public int PlaneAltitudeFT
{
get { return Convert.ToInt32(PlaneAltitudeM * 3.2808399); }
set { PlaneAltitudeM = Convert.ToInt32(value / 3.2808399); FSUIPCConnection.Process(); }
}private Offset<int> m_fsoPlaneRadioAltitudeM = new Offset<int>(0x31E4);
public int PlaneRadioAltitudeM
{
get { return m_fsoPlaneRadioAltitudeM.Value; }
set { m_fsoPlaneRadioAltitudeM.Value = value; FSUIPCConnection.Process(); }
}
public int PlaneRadioAltitudeFT
{
get { return Convert.ToInt32(PlaneRadioAltitudeM / 65536 * 3.2808399); }
set { PlaneRadioAltitudeM = Convert.ToInt32(value / 65536 / 3.2808399); FSUIPCConnection.Process(); }
}
./Léopold >>
*
Hors ligne
Salut,
je viens te donner quelques nouvelles de mon projet au cas ou tu y sois toujours un peu intéressé
Actuellement j'arrive bien à déplacer l'avion grâce a des positions et des angles valides que je convertie et utilise avec FSUIPC (altitude, longitude, latitude, bank ,head, pitch).
J'ai réussis à lire un fichier de coordonnées crée à la base pour le simulateur de vol actuel qui tourne sur FlightGear et à l'utiliser pour faire un vol avec FSX.
Et n'ayant pas la version payante de FSUIPC pour le faire tourner en réseaux j'ai donc crée un socket qui prend les données du fichier et les envoi sur un autre poste qui lui les reçoit et les traite avec FSUIPC pour faire tourner FSX.
Voila je sais pas si je suis trop clair
Excuse moi si tu ne comprend pas tout
Merci encore et bonne journée !
Dernière modification par GauWin (25/04/2012 11:33)
Hors ligne
Salut,
Et bien écoute ça me parait très bien tout ça ! bravo ! félicitation !
(tout est compris!) C'est en fini où tu as d'autre choses à faire ?
bye
./Léopold >>
*
Hors ligne
A mon avis je vais avoir à faire encore beaucoup de truc
Pour commencer sans doute un programme qui lance FSX en vol libre direct avec un avion particulier.
Je sais qu'ils aimeraient aussi un système de changement de météo.
Mais tout ça est possible je pense non ? Je vais peaufiner un peu ce que j'ai et attaquer ces petits plus
Hors ligne
Pour commencer sans doute un programme qui lance FSX en vol libre direct avec un avion particulier.
fastoche :
- tu lances FSX, tu positionnes le bon avion au bon endroit au sol, tu enregistres, ca va te créer un fichier dans ...\Documents\Fichiers Flight Simulator X
- tu fais une petite fenetre à la con qui liste les .flt de ce répertoire avec un bouton start
- qui lancera c:\full_path_to_fs\fsx.exe -flt:"c:\full_or_relative_path_to_flight_file\myflight.flt"
Je sais qu'ils aimeraient aussi un système de changement de météo.
- bordel alors là courage, j'ai mis un bon moment avant d’arriver à faire quelque chose qui marchouille ! il faut que je finisse d'ailleurs.
./Léopold >>
*
Hors ligne
Tu utilises bien FSUIPC pour la météo ? Ou tu as une autre technique ?
Hors ligne
FSUIPC,
Jette un coup oeil au NWI, "New Weather Interface" tout est dans la doc du SDK, tu as un .h et un .txt lis le bien, car si tu fais pas ce qu'il dit, ça marche un cul. Sois rigoureux sur ce coup-ci vraiment !
Courage !
./Léopold >>
*
Hors ligne
Bon je reviens sur l'écriture dans FSUIPC grâce aux sockets ...
En effet j'ai quelques problèmes de fluidité et de rafraichissement.
Tu peux m'expliquer comment tu gère le temps entre chaque écriture dans FSUIPC ? Par exemple en C++ un Sleep(20), même si pour toi c'est en VB tu as pas eu de soucis avec ça ?
Hors ligne
Salut,
Alors, je ne sais quoi te répondre, car je ne repositionne jamais mon avion (si ce n'est au parking donc c'est "one shot").
* Tu me parles de problème de fluidité, c a d, ça saccade ou bien c'est trop lent, trop rapide ?
* Je pense qu'il faut que tu arrives a isoler ton problème dans un premier temps, c a d, savoir si ça viens du réseau ou de FSUIPC. Essaie de faire tourner la lecture de ton fichier avec les positions en local (sur le PC de FS, et tu vois les réglage de write que tu as. Une fois que c'est bon, tu fais pareil en rajoutant la partie socket. Comme ça tu pourras voir la ou ça coince.
Je n'ai pas trop d'idées car j'écris peu avec FSUIPC, je lis surtout pour mon logiciel instructeur/monitoring et de moving map.
bye
./Léopold >>
*
Hors ligne
Oui je l'ai déjà fais ça ne vient du réseau mais bien de FSUIPC apparemment.
Comme tu m'as déjà dis FSX est gourmand alors c'est peut être l'explication.
Je vais bosser la dessus.
Merci quand même, bonne journée
Hors ligne
Salut kbumbaz
j'ai quelques questions à te poser si tu le veux bien
Je viens d'améliorer quelques petits problèmes qui m'ont permit de résoudre mes problèmes de fluidité (même si il arrive que FSX saccade encore un peu).
Je passe donc sur un autre problème celui de donner des paramètres par défaut à FSX lors de son lancement.
Par le placement de départ de l'avion aucun soucis, mais je n'arrive pas a changer la vue de l'avion, il me faudrait une vue où je ne vois aucune commande du cockpit mais seulement l'extérieur (puisque tous les accessoires intérieur du cockpit sont présents dans le simulateur de vol où je travaille).
Je ne sais pas si tu as fais ça, personnellement je bloque un peu car je pensais avoir trouvé avec le offset 8320 mais rien ne se produit
Merci
Hors ligne
Salut,
Bon bien joué pour tes problemes de fluiditée !
Fastoche;)
En ce qui concerne la vue, FSX n'as pas de vue "sans rien", tu dois passer en cockpit 2D faire un clic droit sur le cockpit 2D et fermer le panel.
Tu quittes proprement FSX et il va enregistrer que tu ne veux plus de ce panel en mode 2D. Quand tu le relanceras, tu n'auras qu'a repasser un coup d'offset 8320 à 1 et c'est gagné.
(C'est comme ca que j'ai fait).
bye
./Léopold >>
*
Hors ligne
Autre piste:
Offset 0x3110, 8 qui te permet de faire appels au "controls FSX" voir la liste dans le PDF <fsxinstalldir>\Modules\FSUIPC Documents\List of FSX controls.pdf
PANEL ID CLOSE passer la valeur 66508 a l'offset 0x3110
CLOSE VIEW passer la valeur 65824 a l'offset 0x3110
Lis bien la doc sur 0x3110
piste a suivre j'ai pas plus d'info.
bye
./Léopold >>
*
Hors ligne
Ok je viens de trouver une autre solution sans faire appel à FSUIPC là n'ayant pas vu t'as réponse
Je suis passé en cockpit 2D en paramètre mais je l'ai mis a 100% de transparence
Merci pour ta réponse quand même ça risque de me servir pour plus tard quand je vais gérer les différentes vue de l'avion (ailes et queue )
Hors ligne
Salut,
bon j'ai encore un peu avancé dans tout ça
Et je profite d'un petit moment de répit pour te demander à nouveau, comment lances tu un vol libre déjà enregistré ? J'ai bien compris le principe mais je ne trouve aucun fichier .flt ayant le nom de ma sauvegarde dans tous les répertoires de FSX. Pourrais-tu me dire où tu les à trouvé exactement ?
- tu lances FSX, tu positionnes le bon avion au bon endroit au sol, tu enregistres, ca va te créer un fichier dans ...\Documents\Fichiers Flight Simulator X
- tu fais une petite fenetre à la con qui liste les .flt de ce répertoire avec un bouton start
- qui lancera c:\full_path_to_fs\fsx.exe -flt:"c:\full_or_relative_path_to_flight_file\myflight.flt"
Pour te situer où j'en suis dans mon stage, j'ai réalisés plusieurs tests sur le simulateur mais soit FSX saccade énormément et n'a pas de décalage (au moment où on incline le manche et que FSX renvoi les images c'est instantané) soit tout l'inverse, très fluide mais trop de décalage par rapport aux images.
Tous ceci vient d'un problème d'envoi de données par le socket, j’essaie de trouver le parfait équilibre entre les deux grâce à des fonction d'attente tel que "Sleep()" entre chaque réception de données et chaque écriture dans FSUIPC.
Voila, merci encore pour ton aide et bonne journée
Hors ligne
Salut,
Pour moi les .flt sont dans le répertoire:
%userprofile%\Documents\Fichiers Flight Simulator X
Donc ton mes documents.
fsx.exe -flt:"tonfichier.flt"
Pour ton histoire de saccade, moi je ferai une pile FIFO, et je stockerai 100 points, ton programme lit les points de la pile et dès qu'il ne reste que 20points dans la pile, je redemande 100points. (les valeurs sont des exemples il faut affiner).
De cette manière:
- tu es sur que la transmission réseau ne te fera pas de défaut, car tu as toujours des points en stocks.
- si ta fréquence de points n'est pas assez rapide, pour faire un mouvement fluide, tu peux faire une interpolation entre deux points.
J’espère qu'on se comprend.
bye
Dernière modification par kbumbaz (22/05/2012 08:53)
./Léopold >>
*
Hors ligne
Ok merci beaucoup je me suis arrangé avec un .bat pour lancer FSX et la sauvegarde qui va avec
Pour la pile FIFO je comprend, mais je ne sais pas si je peux le mettre en place puisque le simulateur m’envoie tout en instantané avec une attente de quelques millièmes de secondes entre chaque données. Donc à moins que j'ai mal compris ton idée je pense pas que ce soit possible vu que je ne doit pas toucher le code déjà réalisé du simulateur (celui qui m'envoie les données).
Mais encore mille mercis pour ton aide !
Hors ligne
OK donc par simu tu ne parles pas de FS. OK
Ben écoute tu peux toujours gérer une pile FIFO qui emplie les données.
Quand tu estimes que tu en as assez genre 10000, tu fais partir ta simu, du coup ça te créé un buffer dispo jamais vide.
Au fur et a mesure que tu consommes les données de ta pile, elle se réalimente.
Avant ça fonctionnais bien avec FlightGear ?
./Léopold >>
*
Hors ligne
Ah je viens de comprendre !
En effet ça peut être une super idée je vais en parler à mes maitres de stage.
En plus ça aura toujours plus de gueule pour le rapport de stage (utilisation de socket, thread, liste simple chainée, pile FIFO ... )
Et pour Flight Gear c'était différent mais surtout bien plus simple d'écrire dedans et moins gourmand
Il y avait juste une structure (avec toutes les infos: lat, long, alt ...) que l'on pouvait modifier et renvoyer au programme qui réajustait la visu.
Hors ligne