Vous n'ĂȘtes pas identifiĂ©(e).
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:55)
./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:20)
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
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:02)
./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