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
Pour illustrer voici mon ILS panel finalisé sans son cache :
Cliquez pour voir le fichier-jointJ'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-jointSIOC :
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
PS : La release çà vient çà vient, mais dieu que les finitions sont longues ... et comme je suis un insatisfait permanent ...
(hier j'ai complètement refais l'attitude panel, par exemple).