Aide - Recherche - Membres - Calendrier
Version complète : SIOC-GC_Module ILS
3rd-Wing · Escadre virtuelle DCS > DCS (& LockOn) > 3rd Wing devs' zone > KaTZ-Pit - SIOC & Gauge Composer
KaTZe
Je continue l'approche modulaire pour la création d'un panel déporté sur un 2eme PC avec SIOC et Gauge Composer.

Je vous donnerai des nouvelles du Panel Fuel qui fonctionne à merveille (j'ai réussi des nav. avec retour à moins de 20kg de Coco)
Le panel moteur est aussi fonctionnel (démarrage/arrêt alarmes) testé Live Mardi dernier

Voici le Panel ILS.
Je l'ai développé car les info. (surtout la croix ILS) sont très peu lisibles sur nos cockpit.
J'ai donc séparé les info. de NAV (HSI) de celles spécifiques au posé ILS.

Dans ce petit panel sont regroupés les paramètres utiles lors d'un posé en PSV

Cliquez pour voir le fichier-joint

J'ai mis les jauges pour qu'en condition nominale tous les trais verts soient alignés
Chaque paramètre a une alarme lorsque l'on sort du domaine de vol normal.

Une lampe verte vient renforcer le suivi de la croix ILS.

J'ai également trouvé le moyen de rapatrier le nom de l'aéroport.
Indiqué au milieu en bas

Voici la jauge : Cliquez pour voir le fichier-joint



Miaou smile.gif
Yiro
Je suis totalement étranger à ce genre de bidouillages et je n'ose imaginer le plaisir de se faire un pit avec moulte écrans affichant ce genre de pannel. wink.gif

Félicitation pour ton travail en tout cas!
KaTZe
T'inquiète, il me reste encore deux panels à terminer et je ferai un tuto simple pour que tout non spécialiste, sans connaissance particulière, disposant d'un 2eme PC puisse bénéficier de ce cockpit déporté.

Miaou wink.gif
Lynx
CITATION(KaTZe @ 14 May 2009, 19:59) *

T'inquiète, il me reste encore deux panels à terminer et je ferai un tuto simple pour que tout non spécialiste, sans connaissance particulière, disposant d'un 2eme PC puisse bénéficier de ce cockpit déporté.

Miaou wink.gif

gap.gif Je te laisse deux jours, dimanche je dois finir mon Pit' gap.gif


jesors.gif


Et vite... wavetowel2.gif
Lecreole
CITATION(KaTZe @ 14 May 2009, 17:23) *
J'ai également trouvé le moyen de rapatrier le n° de l'aéroport (comme sur le SU25)
Indiqué au milieu en bas

Salut ça m'intéresse ça, tu peux m'envoyer le code que tu utilise, merci.
Lecreole
KaTZe
tongue.gif Pas de problème d'ici Samedi soir j'aurai terminé :

- Le selecteur d'avion (pour pouvoir voler avec plusieurs types d'avions différent)
- le panneau carburant
- le panneau moteur
- Navcomputer (HSI avec calcul autonomie, time2waypoint, playtime ...
- l'ILS panel
- le panneau armement

Par contre le SPO sera pas prèt blushing.gif
Faudra aussi que je teste pour le SU25, parceque j'ai cru voir des truc bizarres avec le HSI lors d'un vol en SU hier.

I'll keep U posted wink.gif

Miaou drunk.gif
KaTZe
CITATION(Lecreole @ 14 May 2009, 21:24) *

CITATION(KaTZe @ 14 May 2009, 17:23) *
J'ai également trouvé le moyen de rapatrier le n° de l'aéroport (comme sur le SU25)
Indiqué au milieu en bas

Salut ça m'intéresse ça, tu peux m'envoyer le code que tu utilise, merci.
Lecreole


Je t'envoie çà demain.
En fait j'utilise la variable 52, qui repère la position des aéroports.
J'ai récupéré les positions des 22 aéroports et par une suite de
"if v0052 = , then aéroport = " je les affecte.

Petite anecdote, hier je faisais un vol très "short pétrol" pour tester mon calculateur de consommation (voler à VMax pour arriver le plus vite possible (à sec de carbu) à l'aéroport.
J'avais sélectionné un aéroport qui m'intriguait parce que ses coordonnées 52 et 54 semblaient changer constamment. J'étais plongé dans mon panel sans regarder dehors, je me met en longue finale ... quand je jette un œil dehors et ne vois que de l'eau blink.gif , je regarde le HDD .... le symbole était pointu ... c'était le Kuz megalol.gif mal barré avec mon MIG whistling.gif

J'ai quand même pu me dérouter in extrémis vers la terre, et mes moteurs se sont coupés au touch down blushing.gif ... d'ailleurs j'ai ainsi vu que la guidage de roulette ne fonctionne pas quand on a plus de moteurs, impossible de sortir de la piste sur l'élan.

Comme quoi comme en IRL voler le nez dans les instruments c'est dangereux.

Miaou wavetowel2.gif
Lecreole
CITATION(KaTZe @ 14 May 2009, 21:35) *

Je t'envoie çà demain.
En fait j'utilise la variable 52, qui repère la position des aéroports.
J'ai récupéré les positions des 22 aéroports et par une suite de
"if v0052 = , then aéroport = " je les affecte.

Ok, c'est la même méthode que j'utilise pour détecté l'ILS, je pensais qu'il avait un autre moyen, ça m'intéresse quand meme pour les coordonnées, j'avais récuperé que ceux de la CRIMEE. thumbsup.gif
Lynx
Merci les gars... notworthy.gif

Juste une petite question à Lecréole, comment fait-on pour ouvrir plusieur connections sur Sioc ??

Afin que 2 progs puissent s'y connecter. wink.gif
KaTZe
Ben à priori y'a pas de problème ... quand tu lance GaugeComposer et IOCPconsole, il y a bien deux connections sur SIOC.
Tu peux aussi lancer deux GaugeComposer çà fait deux connections

-------------------------------------------------------------------------------------------------------------------

Sinon Eurêka pour l'affichage du nom, je me compliquais la vie, il me suffit de créer 21 étiquettes avec les noms des aéroports, et pour chacune d'elle un script comme :

Etiquette : KRYMSK
CODE
link offset 50 server LOCK-ON
hide
if value = 730174  
show
endif


Miaou wavetowel2.gif
Lecreole
@Lynx : Effectivement SIOC est un serveur donc utilise l'IP de "IOCP Server" pour connecter autant de clients que tu souhaite tongue.gif
@KaTZe : Pourquoi ne pas utiliser un "texte"
CODE
link offset 50 server LOCK-ON
if value = 730174  
print_str "KRYMSK"
endif
if value = xxxxx
print_str "XXXX"
endif

J'utilise cette astuce pour le SPO US pour afficher le type d'ennemi, comme ça avec un "texte" je peux afficher tous les types ennemis tongue.gif
KaTZe
Damned mais c'est bien sur blushing.gif , et moi qui viens de me taper la création de 21 étiquettes ... j'avais essayé
CODE
link offset 50 server LOCK-ON
if value = 730174
data = "KRYMSK"
endif
print_str data


et çà marchait pas, mais ta solution est encore plus simple thumbsup.gif ... comme quoi la fin de semaine ... on fatigue sad.gif

Je vais donc utiliser ton script, et je te l'envoie demain
(Je pense que je vais utiliser aussi des codes couleurs, pour crymée, caucase).

Un grand merci

Miaou notworthy.gif

Btw, est ce que tu as déjà utilisé la fonction setheight (liée à une value) ?

KaTZe
Voilà c'est terminé et testé, j'ai uppé la jauge qui fonctionne sans calculs spéciaux dans le SIOC (sur les données brutes de LO). (Voir post initial)

Lecreole pour le code de l'étiquette des terrains :

CITATION
link offset 50 server LOCK-ON
if value =-7937656
print_str KHERSONES
endif
if value =-1754610
print_str SAKI
endif
if value =-2969512
print_str SIMFEROPOL
endif
if value =4975507
print_str RASDOLNOYE
endif
if value =5159991
print_str DZHAKOY
endif
if value =1003702
print_str KIROVSKOYE
endif
if value =2259960
print_str KERCH
endif
if value =-5496775
print_str BELBEK
endif
if value =3862364
print_str KRASNOGVARDEYSKOYE
endif
if value =1265645
print_str OKTYABRSKOYE
endif
if value =-1963697
print_str GWARDEYSKOYE
endif
if value =-1889207
print_str ANAPA
endif
if value =1262619
print_str KRASNODAR CTR
endif
if value =-5429721
print_str NOROVOSSIYSK
endif
if value =730174
print_str KRYMSK
endif
if value =-1245388
print_str MAYCOP
endif
if value =-6418658
print_str GELENDZHIK
endif
if value =-17293137
print_str SOCHI ADLER
endif
if value =-456659
print_str KRASNO PASH
endif
if value =-22842953
print_str SUKHUMI
endif
if value =-21246093
print_str GUDAUTA
endif


PS : J'ai testé en zero-Visi, il manque juste un indicateur d'inclinaison que je vais rajouter, pour être tip top.

Miaou drunk.gif
KaTZe
Deux points :
1- Les coordonnées utilisées sont différentes pour le FAP et l'ISL, donc pour indiquer en clair l'aérodrome sélectionné à partir de la variable 50, il faut utiliser des coordonnées différentes suivant que l'on est en mode RTN ou en LNDG.

Celle que j'ai indiquées sont celles du mode RTN mais ne fonctionne pas en LNDG.
Je pense donc que je vais mettre deux étiquettes, une sous le module de navigation avec la piste choisie en mode RTN, et l'autre sous le panneau d'ILS avec la piste choisie en mode LNDG.

Par contre j'ai une question sur un bug (?) blink.gif

Si je créé une mission avec WP
Lorsque je cycle les mode de nav j'ai : ENR >> RTN >> LNDG >> >> ENR >> RTN etc etc ...

Si je créé une mission sans WP
Lorsque je cycle les modes de nav. j'ai : RTN >> LNDG >> >> LNDG >> >> LNDG
Donc plus possible de retourner en mode RTN blink.gif
C'est normal ?
Y a t'il un moyen de résoudre ce problème ?

MiaouMerciD'Avance smile.gif

Edit : Bon ben je viens de trouver une soluce ... il suffit de repasser par le mode R-R, ou R-Sol et en revenant sur la nav on retrouve RTN ... pas très glop tout çà mad.gif
KaTZe
CITATION(KaTZe @ 16 May 2009, 19:11) *

Deux points :
1- Les coordonnées utilisées sont différentes pour le FAP et l'ISL, donc pour indiquer en clair l'aérodrome sélectionné à partir de la variable 50, il faut utiliser des coordonnées différentes suivant que l'on est en mode RTN ou en LNDG.

Celle que j'ai indiquées sont celles du mode RTN mais ne fonctionne pas en LNDG.
Je pense donc que je vais mettre deux étiquettes, une sous le module de navigation avec la piste choisie en mode RTN, et l'autre sous le panneau d'ILS avec la piste choisie en mode LNDG.


Finalement, j'ai effectué la reconnaissance de terrain (pour les modes RTN et LNDG) dans le SIOC.
Je créé une variable terrain variant de 1 à 21 (les même numéros que dans le pit du SU25T)
Dans GaugeComposer, j'affecte alors le nom en clair au numéro de piste.

Je dois encore vérifier que tout fonctionne et je vous met les scripts de correspondance "coordonnées/terrain" (ce soir)

Miaou drunk.gif
Tarochi
Regarde toi le escript de LOTACT, il a toutes les coordonnees que tu necessites,
Airports,
Point du RTN
et point du LAND. tongue.gif
KaTZe
Merci Tarochi,

J'ai fait çà artisanalement (relevé à la mimine blushing.gif ) , je vais quand même cross checker.

Donc voici mon SIOC avec subroutine lancée par la Var0050, et test des terrains en Var0250.

Cliquez pour voir le fichier-joint

(Vous trouverez aussi entre V0300 et V0450 tous les calculs de consommation, autonomie et playtime. Ca fonctionne mais il faut encore que je finalise le dessin de jauge et aussi que je trouve les coef à appliquer pour les autres appareils (calculs conso minimum "OPT"))

Et voici le script d'étiquette pour GaugeComposer

Cliquez pour voir le fichier-joint

Bizarrement vous verrez que j'ai du ajouter un ' devant les noms de terrains commençant par G, sinon GaugeComposer m'affiche des drôles de caractères.

Miaou smile.gif
Tarochi
CITATION(KaTZe @ 18 May 2009, 09:30) *


Bizarrement vous verrez que j'ai du ajouter un ' devant les noms de terrains commençant par G, sinon GaugeComposer m'affiche des drôles de caractères.



Solution:
print_str "RASDOLNOYE"

print_str "GELENDZHIK"

En programation toute valeur "String" (str) doit être representé entre les caractères "......"
saianlol.gif
KaTZe
CITATION(Tarochi @ 18 May 2009, 11:49) *

CITATION(KaTZe @ 18 May 2009, 09:30) *


Bizarrement vous verrez que j'ai du ajouter un ' devant les noms de terrains commençant par G, sinon GaugeComposer m'affiche des drôles de caractères.



Solution:
print_str "RASDOLNOYE"

print_str "GELENDZHIK"

En programation toute valeur "String" (str) doit être representé entre les caractères "......"
saianlol.gif


Off-Course, c'est ce que j'avais fait initialement, .... mais il m'écrivait les " dans l'étiquette. blink.gif
Donc pour avoir juste le nom j'ai retiré les "

Ce que je comprend plus du tout, c'est que je n'avais aucun problème avec les G dans ma version précédente, et là tout d'un coup ce matin lors du test çà m....
Je vais revérifier, mais j'ai effectivement des fois des comportements bizarres de GaugeComposer.

(Par exemple mes jauges carburants (barre verticale) sont une image que je déplace avec "movev"
J'aurais voulu utiliser le graph type "fillrect" , et/ou la fonction setheight mais impossible de lier ce redimentionnement avec une valeur sad.gif
Idem je n'ai pas bien compris l'intérêt de "fillrect" par rapport à une image rectangulaire que l'on déplace (çà ne semble pas fonctionner comme les graphes Pie qui se dimentionne automatiquement avec une valeur).

D'ailleurs si tu as des exemples de ces dernières fonction je suis preneur.

Miaou wink.gif


KaTZe
Suite à ma discussion hier avec Gillesdrone, je post quelques info. qui seront utiles à ceux qui utilisent SIOC (et pour certains Gauge composer).

Comme mentionné ci dessus, lors du design du Panel ILS, j'ai beaucoup galéré avec un bug de Gauge Composer.
L'instruction Moveh, Movev permet de déplacer verticalement ou horizontalement un objet (typiquement un aiguille).
Mais à la fin du vol elle reste à la dernière position.
Si on a le malheur de sauver, la translation reprend au vol suivant à partir d'une position non centrée.
Et on peut finir avec des images complètement fausses et hors cadre.
Ce bug est connu des developpeurs et devrait être solutionné dans la prochaine release.

J'ai donc décidé de contourner le problème en banissant ces deux instructions.
A la place, j'utilise l'instruction de graph "fillrect" qui me permet de tracer un rectangle.
Dans cette instruciton, on peut définir la couleur de remplissage, et la couleur de bordure.

Il suffit de définir comme couleur de remplissage la couleur transparente de jauge, et "fillrect" trace un rectangle transparent (juste les bords).
Il suffit alors de dimentionner le cache qui va recouvrir la jauge et le rectangle pour ne voir qu'un seul bord et l'on a alors notre jauge de niveau.
L'avantage est que "fillrect" n'est pas buggé, et la jauge reste en place tongue.gif

Pour illustrer voici mon ILS panel finalisé sans son cache :

Cliquez pour voir le fichier-joint

J'ai tracé des rectangles transparents à bords verts pour :
> La jauge d'AOA
> La jauge d'IAS
> La jauge Variometre
> La jange Fox Echo
> La croix ILS (un pour la ligne verticale et 1 pour la ligne horizontale)
> Le caret d'indication de direction de la piste (rouge en haut) est tracé par superposition d'un rectangle rouge et d'un rectangle noir qui le recouvre (sauf le bord).
Il reste donc juste le trait rouge.

J'ai pas mal galéré pour comprendre comment écrire l'instruction fillrect
Il faut utiliser le code (exemple pour l'offset 268)

CODE
link offset 268 server LOCK-ON
setheight value


Le rectangle est alors tracé depuis le haut d'une hauteur en pixel = value

Voici ce que donne le panel avec son cache
Cliquez pour voir le fichier-joint

SIOC :
Comme SIOC est super stable, ce qui n'est pas toujours le cas de gauge composer, je crée une variable spécifique pour mon indication de jauge.
J'avais demandé hier à Gillesdrone, s'il connaissait dans SIOC la fonction "Limit" permettant de limiter "le débattement" d'une valeure entre deux bornes (pratique pour une jauge dont on veut limiter la hauteur, plutôt que d'utiliser deux boucles if > max , if < min).
J'ai pas mal galéré because elle n'est pas bien expliquée dans les tuto (et même fausse dans un tuto francais).

Il suffit juste de mettre :
CODE
&Valeur = LIMIT min, max, 0


où Valeur est la valeur que l'on veut borner
min est la limite basse
max est la limite haute

ne pas oublier le zero ... c'est là que j'ai galéré.
En fait "LIMIT" va ajouter le 3eme argument à Valeur pour autant que l'on reste dans les limites.
Si on met "1" en 3eme argument, Valeur va être incrémentée de "1" chaque fois que la fonction va être activée (jusque à atteindre la limite sup). Ce qui peut être utile pour un compteur.

Dans notre cas, en mettant zero, on utilise juste la fonction de bornage.

Miaou wavetowel2.gif

PS : La release çà vient çà vient, mais dieu que les finitions sont longues ... et comme je suis un insatisfait permanent ... blushing.gif (hier j'ai complètement refais l'attitude panel, par exemple).
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.