Airbus A321 A320 A319 OVH avec Sim Innovations

morgandkfr59

ELEVE PILOTE
Messages
19
Réactions
0
Points
2
Bonjour, je lance ce sujet car je souhaiterai crée un OVH panel en 2D pour L'airbus A321 ou autre mes pour n'importe quelle Airbus avec le logiciel Air manager, j'utilise xp11.52 et le toliss A321 et beaucoup le Zibo 738, mon projet et d'avoir un OVH panel comme le Zibo sur un écran 22" tactile, et le but et de pouvoir changer assez rapidement de Boeing a Airbus. J'ai le flight Yoke Systeme de chez Logitech , le rudder de thrusmaster et le pack TCA Airbus éditions.
Pour les 2 petits écran ce sont des 10" et j'utilise le plugin gratuit sur le Xp11 Plugin-XTextureExtractor-x64-Release pour le Zibo et pour le Toliss je mets les fenêtres en mode popup. Et l'autre et une tablette avec le programme WebFMC PRO.
Pour le concept du Zibo OVH rien de bien difficile juste à acheter le programme premium et a l'exécuter sur le futur écran tactile ....
Mais l'intérêt pour les petits budget et d'avoir la possibilité de crée aussi d'autre OVH au lieu d'acheter des panneau physique a plus 2000 euros ou +.
J'ai regarder sur YouTube plusieurs vidéos tuto de Sim Innovations, j'ai compris la basse de l'utilisation du programme Air Manager sous W10, le problème est ou trouver les bonne dataref et comment bien crypter tous ça, en gros j'ai besoin d'aide pour mieux comprendre, ou s'il y'a déjà des personnes qui sont travailler dessus pourriez vous me contacter.
Merci d'avance a tous pour votre soutiens et de votre aide.
 

Fichiers joints

  • 20210208_192448.jpg
    20210208_192448.jpg
    227.9 KB · Affichages: 34
  • 20210208_193234.jpg
    20210208_193234.jpg
    251.6 KB · Affichages: 34
  • 20210215_210748.jpg
    20210215_210748.jpg
    205.9 KB · Affichages: 34
  • OVH panel Zibo mod 738 Air manager.png
    OVH panel Zibo mod 738 Air manager.png
    485.4 KB · Affichages: 29
  • rudder.png
    rudder.png
    262.5 KB · Affichages: 27
  • TCA.png
    TCA.png
    212.6 KB · Affichages: 29
Bonjour, je lance ce sujet car je souhaiterai crée un OVH panel en 2D pour L'airbus A321 ou autre mes pour n'importe quelle Airbus avec le logiciel Air manager, j'utilise xp11.52 et le toliss A321 et beaucoup le Zibo 738, mon projet et d'avoir un OVH panel comme le Zibo sur un écran 22" tactile, et le but et de pouvoir changer assez rapidement de Boeing a Airbus. J'ai le flight Yoke Systeme de chez Logitech , le rudder de thrusmaster et le pack TCA Airbus éditions.
Pour les 2 petits écran ce sont des 10" et j'utilise le plugin gratuit sur le Xp11 Plugin-XTextureExtractor-x64-Release pour le Zibo et pour le Toliss je mets les fenêtres en mode popup. Et l'autre et une tablette avec le programme WebFMC PRO.
Pour le concept du Zibo OVH rien de bien difficile juste à acheter le programme premium et a l'exécuter sur le futur écran tactile ....
Mais l'intérêt pour les petits budget et d'avoir la possibilité de crée aussi d'autre OVH au lieu d'acheter des panneau physique a plus 2000 euros ou +.
J'ai regarder sur YouTube plusieurs vidéos tuto de Sim Innovations, j'ai compris la basse de l'utilisation du programme Air Manager sous W10, le problème est ou trouver les bonne dataref et comment bien crypter tous ça, en gros j'ai besoin d'aide pour mieux comprendre, ou s'il y'a déjà des personnes qui sont travailler dessus pourriez vous me contacter.
Merci d'avance a tous pour votre soutiens et de votre aide.
Ben il te faut créer ton propre panel en Lua sur Air Manager. Et créer les graphismes qui vont avec, puis animer tout ça. L’idéal est une TV 60cms avec un overlay tactile infrarouge qu’on trouve sur Ebay

J’avais commencé ce boulot énorme, interfacé avec FFA320, mais l’année dernière suite à crash Windows 10 et mise à jour ratée :(:sick:, j’ai perdu tout mon code, et des dizaines d’heures et mois de travail dessus. Complètement démotivé...

Seules restent des vidéos YouTube hélas.
Je reprendrai tout ça peut être un jour, mais c’est pas d’actualité



J’avais même incorporé les clics des BP (faits maison avec un stylo!) et une animation sophistiquée des caches de protection, avec même une aide interactive pour chaque bouton. Mais bref...


Mon conseil pour débuter est de te lancer d’abord dans la recherche des Datarefs spécifiques au Toliss.
Pour ça tu crées un instrument de test dans AM avec des graphismes sommaires pour vérifier l’interfacage.
Evidemment il te faut apprendre le langage Lua, qui n’est pas très compliqué.

Pour créer tes graphismes, je te conseille Skinman qui est bien adapté pour créer des fichiers au format png.

Jacques

PS: Sympas tes écrans 10 pouces tu les as trouvés ou?
 
Dernière édition:
Bonjour, et merci pour votre réponse rapide oui effectivement il y'a beaucoup de travail a faire pour avoir un bon résultat, je vous remercie pour vos conseil. Et je penserai a sauvegarder les fichiers crée afin d'éviter votre mésaventure. Pour les 2 écrans 10 voici le lien. https://www.amazon.fr/gp/product/B07FLV7SXD/ref=ppx_yo_dt_b_asin_title_o00_s00?ie=UTF8&psc=1
Actuellement je n'est pas encore acheter de licence pour la raison que je n'ai aucune expérience en cryptage et pour moi c'est tout nouveau, mes dans le font l'idée est vraiment intéressante.
Pour les datarefs du toliss es ce que je dois prendre celle de l'aircraft lui même ?
C:\Users\morga\Desktop\X-Plane 11\Aircraft\ToLissA321_V1p1 puis ouvrir le fichier a321.acf

Merci d'avance de votre réponse.
 
Dernière édition:
Comment peux tu avoir accès à l’ovh payant du Zibo sans licence?
Bizarre.
Pour accéder aux Datarefs du Toliss, je ne sais pas, tu peux déjà télécharger quelques instruments gratuits A320 disponibles sur le store Air Manager pour te faire une idée.
 
Bonjour, non actuellement je n'est rien, j'ai juste installer le programme air manager en version démo pour voir, je me suis renseigner pour le Zibo je dois avoir une licence et acheter le panneau premium sur leur site. Apres oui se serai intéressant pour moi d'avoir la possibilité de passer de Boeing 737 a Airbus. Sans devoir acheter des Panels physique, qui sont très couteux, juste qu'a charger le fichier et hop je tour et jouer. Pour les daterefs oui c'est dur a trouver sur le net je pense que je vais écrire directement a Toliss pour savoir. Merci encore d'avoir regarder le sujet bonne continuation.
 
codage et non cryptage 😀 Crypter permet de rendre illisible un message tandis que le codage permet de rendre un message compréhensible pour un ordinateur.
 
La plupart des Datarefs spécifiques au Toliss semblent débuter par AirbusFBW/xxx
Tu peux peut être commencer par là en les cherchant avec Dataref Editor

Jacques
 
Bonjour jackz merci votre réponse, pour les datarefs j'utilise le plugin Datarefs tools pour un aperçu des datarefs utiliser pour X commande, je souhaiterai savoir comment a tu fais pour crée le boutons avec les lumières du ENG 1 FIRE, je m'exerce sur le logiciel SkinMan , et j'ai des difficulté pour crée par exemple un bouton carré au fond noir, comme dans les Airbus et avec un nom dedans comme APU ou FAULT ON OFF etc ....
Voici un petit exemple de ce que j'ai fais hier dans l'après midi. Merci d'avance de votre aide.
 

Fichiers joints

  • FLT CTL.jpg
    FLT CTL.jpg
    11.6 KB · Affichages: 8
Bonjour

Pour Skinman, il n’y a pas de secrets: des couches, des couches et des couches!
Et jouer sur les différents effets de rendu pour chaque couche en fonction des besoins.

Le bouton des lumières de l’ENG fire doit en avoir une bonne dizaine. Fond rouge foncé, par dessus un cercle jaune pour chaque lumière avec l’effet relief sphère, une couche découpée avec un booléen avec le contour du bouton, puis une autre couche rouge avec une transparence d’environ 30%, etc...
La dernière couche rouge utilise l’effet emboss pour donner l’illusion de relief. Avec évidemment une ombre portée, plus large quand le bouton est relâché.

Pour un bouton Korry classique, un carre noir, puis par dessus du texte de la bonne couleur, et avec un degré de transparence.
le contour du bouton est un carré noir avec un effet emboss de 1/+1, lui même évidé par un autre carré en booléen légèrement plus petit place au centre (chercher Skinman opération booléennes sur le Net).

Il faut créer évidemment deux images png du bouton seul, de même dimension: bouton éteint, et bouton allumé.
L’effet d’enfoncement du bouton est créé en rajoutant deux images bouton appuyé allumé et bouton appuyé éteint, obtenues en décalant l’image bouton de +2/3 pixels vers la droite et le bas.

Toutes les images du bouton sont disposées les unes sur les autres, et la visibilité de chacune est gérée par le code Lua dans bouton_add(), en fonction de l’état actuel du bouton (allumé ou éteint), on affiche l’image bouton pressed ou bouton released.

Quand je disais que c’était du boulot!

Les boutons FIRE sont les plus complexes car ils ont en plus le cache de protection, se rajoute en plus le problème de l’ombre différente selon que le bouton est sorti ou pas, délicate à reconstituer en 2D pour donner un effet de relief



Jacques
 
Dernière édition:
Re bonjour merci pour les conseils, oui effectivement la création des panneaux en 2D ces du boulot couche couche couche, il est vrai que ce serai intéressent d'avoir un OVHP en 2D et pouvoir sans servir avec Air manager :) Etant moi même fan de Airbus je trouve dommage qui n'y pas cela pour un tel programme. J'ai une idée après c'est a toi de voire, moi personnellement je vœux avoir un OHP c'est une certitude, et je suis près a travailler le temps qu'il faudra pour arriver a mes fins, je te propose que long face la conception ensemble du OVHP en 2D pour le Toliss A321 et après le codage l'idée unir nos compétence pour aller plus loin et réussir ce challenge . Pourquoi pas ?
 
  • Sad
Les réactions: Avro
Euh Morgan. Merci pour ta proposition, qu’hélas je ne pense pas pouvoir accepter.

Ne le prends pas mal, mais vu ton expérience toute récente, en gros c’est moi qui ferait tout le boulot dans ce cas, en plus de te former sur Skinman et Lua.
Et nous n’avons probablement pas les mêmes critères de qualité pour un panel au niveau des animations et du niveau de détail attendu, ce que je peux comprendre.

Pour arriver à un résultat pareil, ça m’a pris presqu’un an de boulot, rien que pour entièrement dessiner l’OVH. Et tu l’as compris, j’ai perdu des centaines de lignes de code sur le panel, j’avais fini l’ADIRU, le Fire panel et toutes les lights.

Si je reprends le travail perdu, ce sera à mon rythme et selon mes critères, désolé.

Ce qui ne t’empêche pas de travailler sur ton propre panel, avec des critères de qualité et de fonctionnalités qui te seront propres. Et de poser des questions ici, je te répondrai dans la mesure du possible.

Je vois que tu progresses sur Skinman, tes vis et capots sont bien rendus, c’est encourageant.
Par contre j'espère que tu as conscience que démarrer ton premier projet sur Air Manager par un Overhead 320 entier sans connaissances préalables de Skinman ou de la prog en Lua me paraît l’équivalent de vouloir grimper l’Anapurna sans oxygène a sa première sortie en montagne. C’est faisable, mais gonflé...

Avant de travailler sur l’OVH, j’ai développé plusieurs dizaines d’instruments plus simples sur Air Manager et appris/découvert toutes les techniques. J’ai plusieurs instruments sur le Store qui existent.

Je te conseille si tu ne l’as pas déjà fait de télécharger tous les instruments A320 existants sur le store (faits pour FFA 320U certes, mais le fonctionnement est identique), les étudier pour voir comment ils fonctionnent et éventuellement les adapter au Toliss pour te faire la main.

Je te conseille également de t’inscrire sur le forum Sim Innovation pour plus d’aide spécifique au codage dans Air Manager.

Bon courage

Jacques
 
Dernière édition:
Ok je te comprends, il y a pas de problème encore merci de proposer votre aide et de me rediriger c'est gentil.
Actuellement je suis sur le panneau Fire ENG et APU. J'ai besoin de votre aide car je n'arrive pas a dessiner les boutons rouge pour le Fire eng a claper merci.
 

Fichiers joints

  • fire.jpg
    fire.jpg
    21.3 KB · Affichages: 13
Dernière édition:
En fait il faut faire deux boutons avec button_add() l’un sur l’autre, un pour le clapet, l’autre pour le bouton Fire, et gérer la visibilité avec visible() de l’un ou de l’autre en fonction de la position du clapet. Clapet fermé seul le bouton du clapet est actif (visible), et inversement.

Et il faut gérer également la visibilité des différents éléments graphiques suivant la position du clapet. Donc il faut créer des variables qui stockent l’état (enfonce/relâche) du bouton et du clapet, plus l’état de la lumière du bouton.

Le clapet est un rectangle évidé (avec un booléen) enregistré comme un png avec Alpha Channel pour la transparence. Il faut créer à chaque fois la position ouverte et fermée. Et pour le FIRE la position éteinte et allumée.

Plus les ombres qui doivent être gérées différemment et indépendamment du graphisme du bouton en lui-meme puisqu’une partie de l’ombre du clapet ouvert change suivant que le fire bouton est pressé ou pas...
Le code est complexe.

Si je puis me permettre je pense que tu essaies de faire le plus compliqué d’entrée de jeu ce qui n’est pas forcément la meilleure idée AMHA.

Fais déjà un simple Korry fonctionnel, avec son animation d’enfoncement, et en gérant les états éteint/allumé et fault (plus le fait que chaque bouton a une position Bright et Dim), tu comprendras déjà le principe.

Tu peux ensuite rajouter un “clic” tactile à rajouter dans la fonction button_pressed().
Je l’avais avec Audacity créé à partir d’un son de stylo retractable...Je vais voir si je l’ai encore, mais j’ai perdu tellement de fichiers de ce projet qu’il y a peu de chances.

Rajoutes ensuite une grille de protection sur Korry, comme pour IDG DISC, en utilisant la méthode décrite ci avant, et ensuite tu pourras t’attaquer aux FIRE buttons.

Jacques
 
Dernière édition:
Bonsoir JackZ encore merci pour vos précieux conseils, j'en prends bonne note :) , je vais déjà essayer par un simple bouton noir pour commencer, pour voir le concept, si tu connais un lien pour voire en vidéo, la création de bouton je suis preneur, j'ai suivi également ton conseil de m'inscrire sur le forum de Sim Innovation , il est intéressent de voir et en même temps pouvoir demander de l'aide a la communauté.
J'ai une petite requête, s'il te plais pourriez tu me donner de ton temps juste pour me montrer avec le logiciel Skinman un exemple de un seul bouton en m'envoyant par email le skin de ce bouton. Je n'est pas bien compris pour comment crée l'effet pour enfoncer le bouton, et pour les voyants je dois refaire la même chose je dois refaire le texte d'une autre couleur par dessus le texte noir ?

Amicalement Morgan.
 

Fichiers joints

  • Photo model pour l'exemple.png
    Photo model pour l'exemple.png
    35.5 KB · Affichages: 14
  • TEST BOUTON BESOIN D'AVIS COMPLEMENTAIRE.png
    TEST BOUTON BESOIN D'AVIS COMPLEMENTAIRE.png
    140.7 KB · Affichages: 13
Dernière édition:
Les boutons sont des images indépendantes du fond du panel.
L’idéal est de créer un trou transparent pour chaque bouton (carré à bords arrondis), 2 à 3 pixels plus larges que le bouton en lui même.
Note: Enregistrer toutes les images au format png avec Alpha Channel pour que le cadre de 3 pixels soit transparent.

- Bouton normal: Un carré noir centré et le texte des légendes en gris fonce(texte éteint)
Grouper l’ensemble sous Skinman, puis dupliquer le groupe pour faire l’autre bouton enfoncé.
Enregistrer l’image du bouton normal en laissant un cadre de 3 pixels tout autour.
Noter la dimension et la position du cadre de l’image en pixels.

Pour ça créer un cadre de la bonne dimension (laisser la couleur rose par défaut pour le repérer facilement), le centrer et le placer sous le bouton pour que le contour de 3 pixels dépasse. Cacher tout le reste sauf l’image du bouton et le cadre, et utiliser la fonction Trim visible pour redimensionner la zone de travail au cadre seul. Cacher ensuite le cadre avant d’enregistrer l’image du bouton.

Enregistrer dans le même cadre une image du texte seul allumé (choisir la visibilité des calques appropriés).

Grouper l’ensemble du bouton SAUF son cadre sous Skinman, puis dupliquer le groupe pour faire l’autre bouton enfoncé.
- Bouton enfoncé: C’est le groupe dupliqué qui sera déplacé avec les touches du clavier de 2 à 3 pixels vers la droite ET 2 à 3 pixels vers le bas.

Enregistrer la deuxième image du deuxième groupe seul (changer la visibilité des calques appropriés) avec exactement le même cadre que le premier. L’image du bouton enregistré est donc légèrement décalée.

Enregistrer une autre image du texte allumé seul légèrement décalé.

On a donc 4 images au total.

Après il faut faire un bout de code Lua pour le bouton avec:

button_add(image bouton éteint normal, image bouton éteint enfoncé, position du cadre,position y du cadre, dimension x du cadre, dimension y du cadre, pressed_callback, released_callback)

Il faut créer les deux fonctions Lua correspondantes:

pressed_callback()

et

released_callback()

suivant l’action désirée (voir le Wiki d’Air Manager). Dans le Wiki il y a aussi des liens vers des vidéos Tuto

L’effet d’enfoncement est géré par Air Manager qui substituera l’image appropriée suivant l’état du bouton, créant l’animation.

Le problème est que chaque bouton peut être allumé ou non. Le mieux est alors d’afficher par dessus une image du texte allumé normal ET du texte allumé enfoncé.
Il faudra jouer dans le code sur la visibilité de ces deux images suivant que le bouton est allumé ou pas, dans les deux routines pressed_callback() et released_callback()

Encore une fois, cherches des exemples d’instruments déjà faits sur le store gratuit pour les étudier et comprendre comment ça marche.

Jacques
PS: je pense que tu comprends mieux ce que je voulais dire concernant ta proposition de collaboration😎
 
Dernière édition:
Bonsoir Jacques j'espère que tu vas bien ? Moi ça va bien, mais la situation actuel et dur .... Mais bon faut faire avec et tenir , j'espère que pour toi aussi tout va pour le mieux. Pour revenir a tes conseils, je me suis acheter une licence sur air manager v3 wow ça change , l'expérience de vol est incroyable. La je me suis laisser tenter par la création pour m'exercer sur le programme. J'ai suivi plusieurs tuto sur sim innovation ils expliquent bien mes pas tout, c'est dommage. J'ai toujours le projet du OVH panel en 2D. Je m'entraine actuellement sur ce panneau, j'ai suivi tes conseils c'est très difficile pour le lua, je n'ai pas de problème de lecture quand je test l'instrument. Quand je clique sur le panneau peu un porte ou , le voyant ON s'allume en bleue et s'éteint directement, je ne peux pas entre "" définir que ce bouton fonctionnera pour le Window head je me permets de t'envoyer ces fichiers, ( il y'a des fichiers png le lua et le skin de skiman) es ce que tu eux jeter un œil car j'ai beaucoup de problème , juste pour m'aider a comprendre car je sais tu es très expérimenter, merci beaucoup d'avance pour ton aide. Et surtout prends soin de toi, et de tes proches.

PS Pour le fichiers skin je n'ai pas reussi a le jointe si tu en a besoin je peux te l'envoyer par mail.
 

Fichiers joints

  • apu2.png
    apu2.png
    3.4 KB · Affichages: 8
  • apu1.png
    apu1.png
    3.3 KB · Affichages: 10
  • apu0.png
    apu0.png
    3.2 KB · Affichages: 9
  • master3.png
    master3.png
    2.9 KB · Affichages: 10
  • master2.png
    master2.png
    3 KB · Affichages: 8
  • master1.png
    master1.png
    3 KB · Affichages: 8
  • master0.png
    master0.png
    2.8 KB · Affichages: 8
  • heat1.png
    heat1.png
    2.4 KB · Affichages: 8
  • heat0.png
    heat0.png
    2.3 KB · Affichages: 8
  • apu3.png
    apu3.png
    3.3 KB · Affichages: 8
  • panelapu.png
    panelapu.png
    62.4 KB · Affichages: 10
Dernière édition:
le lua
[EDIT MODO Fab] pour insérer du code utilises les balise "code", cliques sur les 3 points à droite de la "camera+" est choisi "code" cela donnera cela :

Lua:
-- Add images --
img_add_fullscreen("panelapu.png")
img_heatoff = img_add_fullscreen("heat0.png")
img_heaton = img_add_fullscreen("heat1.png")


function press_callback()
print("pressed")       
end

function release_callback()
print("released")
end

button_id = button_add("heat0.png", "heat1.png" , 6, 4, 500, 500, press_callback, release_callback)

--change mousse cursor image (must be 10x10)

xpl_dataref_write("sim/cockpit/switches/anti_ice_AOA_heat")
 
Ben déjà, si tu utilises img_add_fullscreen() pour afficher les images des boutons, tu vas avoir un bouton énorme qui va occuper tout l’espace.

img_add_fullscreen() comme son nom l’indique affiche l’image concernée sur tout la surface de l’instrument, définie dans les paramètres d'INFOS.

Pour l’image de fond du panel, c’est parfait, par contre pour les boutons plus petits, il faut utiliser img_add(« nom de l’image », pos_x,pos_y,taille_x,taille_y) pour positionner le bouton comme tu le souhaites et à la bonne taille.

Pour l’instant le plus simple pour gérer l’appui du bouton est d’utiliser la gestion automatique des boutons via button_add().
Avec button_add(), l'animation est dans ce cas gérée directement par Air Manager, qui affichera la bonne image du bouton allumé dès que le bouton est cliqué. Par contre dès que le bouton est relâché l’image du bouton éteint est affichée de nouveau.
On va commencer par ça, et on verra ensuite comment régler ce deuxième problème.

Par contre dans button_add (), les bons paramètres doivent être entrés, à savoir la dimension réelle en x et y des images des boutons et leur position (angle supérieur gauche).

Lua:
button_id = button_add("heat0.png", "heat1.png" , 6, 4, 500, 500, press_callback, release_callback)

Au lieu de 6,4,500,500 il te faut utiliser la vraie dimension en pixels du bouton sur l’instrument (de l'ordre de 80,80 puisqu'il est presque carré) et les coordonnées de l’angle du bouton à positionner sur l’image de ton instrument. Ces dimensions définissent également la zone cliquable.
Avec les paramètres actuels de 6,4,500,500 pour l'instant tu définis un rectangle cliquable de 500x500 pixels situé tout en haut à gauche (l'origine 0,0 de l'instrument est en haut à gauche) de ton panel à 6.4 pixels.
C'est ton panel tout entier qui devient un immense bouton de 500x500, c'est pour cela que quelque soit l'endroit où tu cliques l'image change....

Avec ton code actuel il ne se passe rien quand tu cliques sur le bouton, si ce n'est un message, "pressed" ou "released" dans la console.
Ce sont dans ces deux fonctions qui sont appelées automatiquement par AM lorsqu'on clique puis relâche dans la zone qu'il va falloir intervenir, et en particulier gérer l'appel du dataref nécessaire, puis dans une deuxième phase, afficher l'état des voyants par exemple.
Mais bon, on va y aller progressivement.

Jacques

En résumé,
Pour l’instant ton code devrait commencer comme ça, on va commenter les éléments qui ne serviront pas tout de suite. A toi de renseigner les valeurs POS_X, POS_Y, LARGEUR, HAUTEUR

Lua:
-- Add images --

img_add_fullscreen("panelapu.png")

-- img_heatoff = img_add_fullscreen("heat0.png")

--img_heaton = img_add_fullscreen("heat1.png")



function press_callback()

print("pressed")

xpl_dataref_write("sim/cockpit/switches/anti_ice_AOA_heat") -- appel du dataref (je ne sais absolument pas si c'est le bon) lorsque le bouton est pressé

end


function release_callback()

print("released")

end


button_id = button_add("heat0.png", "heat1.png" , POS_X, POS_Y, LARGEUR, HAUTEUR, press_callback, release_callback)

Dernier conseil du jour, bien regarder le Wiki de l'API d'Air Manager qui décrit chaque fonction en détail et surtout chaque paramètre.
 
le lua
[EDIT MODO Fab] pour insérer du code utilises les balise "code", cliques sur les 3 points à droite de la "camera+" est choisi "code" cela donnera cela :

Code:
-- Add images --
img_add_fullscreen("panelapu.png")
img_heatoff = img_add_fullscreen("heat0.png")
img_heaton = img_add_fullscreen("heat1.png")


function press_callback()
print("pressed")       
end

function release_callback()
print("released")
end

button_id = button_add("heat0.png", "heat1.png" , 6, 4, 500, 500, press_callback, release_callback)

--change mousse cursor image (must be 10x10)

xpl_dataref_write("sim/cockpit/switches/anti_ice_AOA_heat")
Au fait Silverstar, la balise "Code" n'apparaît pas dans les menus edition de la version mobile, seulement dans le version Desktop du site pour info...
A362D112-3635-4F72-9952-E45F10C636C3.jpeg
 
Dernière édition:
Ah, nouveau soucis, @morgandkfr59 tu as mal enregistré tes images des boutons.
Il font pour l’instant les dimensions de l'image du panel, soit 265x465, ce qui pose problème dans button_add(). L’image du bouton devrait avoir juste la taille nécessaire à la zone cliquable.

Il faut revenir dans Skinman, selectionner juste le bouton avec l'outil Trimm (le troisième en partant du bas) pour que Skinman redimensionne l'image à enregistrer à 82x77pixels seulement. Ce sont ces paramètres que tu utiliseras à la place de LARGEUR, HAUTEUR dans le code modifié précédent.

Jacques
 
Dernière édition:
Bonjour Jacques grand merci grâce a tes explications j'ai compris mon erreur ;) j'ai tout bien recaler comme il faut, j'ai en même temps changer la taille des images buttons avec skinman, je voudrai que tu m'apprennes comment faire pour avoir le bouton par exemple windows heat toujours allumer lord de son fonctionnement et pour le test des lumières cabine encore merci beaucoup de m'avoir donner de ton temps et de m'aider.

Morgan.

message modifier
Code:
J'ai deux messages d'erreurs lua
[CODE]ERROR - logic.lua:9: Argument 'value(3)' in function 'xpl_dataref_write' is nil, which is not allowed
ERROR - logic.lua:9: Argument 'type(2)' in function 'xpl_dataref_write' is nil, which is not allowed
Pour les datarefs j'utilise le plugin data ref tool je ne sais pas vraiment le quel choisir
 

Fichiers joints

  • Capture d’écran 2021-04-10 183745.png
    Capture d’écran 2021-04-10 183745.png
    57.2 KB · Affichages: 6
Dernière édition:
Ben déjà appliques le dernier bout de code que j’ai mis dans mon post précédent en l’adaptant. Commences par un seul bouton, pas tous a la fois, le Pitot Heat puisque c’est celui sur lequel on a commencé. Une fois que tu as compris le principe, il suffit de l’appliquer pour les autres.

Tes boutons sont rectangulaires, normalement un Korry est carré, mais pourquoi pas... On en revient aux objectifs et critères différents, mais bon c’est ton projet, tu fais ce que tu veux.

Et inutile de poster toutes les images, seule la première est intéressante, elle montre le résultat final.

Il faut publier le code en revanche, non pas comme copie d’écran, mais comme texte, en le mettant en forme avec la balise code comme l’a expliqué Fab.
Donc reprendre le code exemple donné en l’adaptant comme explique, de manière à avoir seulement le bouton HEAT qui s’allume quand on appuie dessus.
Une fois cette étape faite, on passera à la suite.
 
Dernière édition:
Apres je suis d'accord avec toi a 100 % les boutons doivent être carré mes la c'est juste comme entrainement j'ai ajuster les boutons par rapport a l'image du fond, je prends note pour la prochaine fois merci.

J'ai mis le dataref
xpl_dataref_write("sim/cockpit/switches/anti_ice_window_heat", "INT",1 , Windows_heat)
J'ai le message ERROR - logic.lua:9: Argument 'value(3)' in function 'xpl_dataref_write' is nil, which is not allowed
 
Dernière édition:
Lua:
-- Resources
img_add_fullscreen("panelapu.png")
-- Button image

—heat_on_img = img_add("heat1.png", 175, 82, 160, 83)
—heat_off_img = img_add("heat0.png", 175, 82, 160, 83)
—heat_full_light_img = img_add("heat2.png", 175, 82, 160, 83)

function press_callback()
print("pressed")
xpl_dataref_write("sim/cockpit/switches/anti_ice_AOA_heat", "INT",1) -- appel du dataref  lorsque le bouton est pressé
end

function release_callback()
print("released")
end

button_id = button_add("heat0.png", "heat1.png" , 175, 82,160 ,83 , press_callback, release_callback)
Utilisation de xpl_dataref_write()
[/ICODE]
 
Dernière édition:
xpl_dataref_write("sim/cockpit/switches/anti_ice_window_heat", "INT",1 , Windows_heat)
Je vois pas ce que le paramètre Windows_heat vient faire là.
Le message d’erreur indique où est le problème. ligne 9, le 3e argument à la valeur nil
logic.lua:9: Argument 'value(3)'

Comme tu as mis un quatrième paramètre , qui sert normalement d’index de tableau, Lua s’attend à ce que le 3e paramètre soit un tableau, ce qui n’est pas le cas.
La variable Windows_heat n’est pas définie, donc a la valeur nil. Le 4e paramètre est optionnel et ne doit pas être utilisé dans ce cas précis.

Encore une fois (et ce sera la dernière), se référer au Wiki pour les bons arguments des fonctions, inutile d’en inventer:LOL:

Dans notre cas c’est un booléen, valeur on/off avec 1 pour ON et 0 pour OFF
xpl_dataref_write("sim/cockpit/switches/anti_ice_window_heat", "INT",1)

Je pense aussi qu’il faut que tu apprennes les rudiments de Lua, il y a plusieurs tutos sur le Net, inutile de courir avant de savoir marcher car manifestement tu as des problèmes avec les principes de programmation Lua pour commencer.

C’est compréhensible, on est tous passés par là, mais faire les choses dans l’ordre est un minimum (tu te rappelles quand je parlais d’ascension de l’Everest?) pour pouvoir progresser.
 
Dernière édition:
Oui c'est vrai le Lua doit être appris j'ai corriger les infos et la nickel pas d'erreur ;) c'est un très bon début, pour moi c'est bien, en plus j'ai un excellent professeur je vais approfondir mes études des datarefs, maintenant je comprends mieux l'ascension de l'Everest ce sera pas facile. Maintenant il faut définir que le bouton reste en mode allumer car actuellement sa fonction est en press et release donc pas pratique. Merci encore.
 
Bon ça fonctionne déjà comme ça, c’est pas mal pour un début.
Pour qu’on puisse gérer l’allumage du texte « ON », il faut connaître le Dataref TOLISS qui indique que le pitot Heat est sur ON ou OFF

Il est possible que ce soit celui-ci
"sim/cockpit/switches/anti_ice_AOA_heat", "INT", mais ce coup-ci on écrit pas dedans on le lit et on affichera ou pas l’état du bouton en fonction. On utilisera donc xpl_dataref_subscribe()

il suffit de jouer sur la visibilité des images disposées les unes sur les autres en fonction de l’état du dataref. On a plus besoin d’images dans le button_add, images qui sont remplacées par nil


Lua:
-- Variables d'état des switches
heat_switch_state=false -- création d’une variable booléenne stockant l’état du switch

--Resources
img_add_fullscreen("panelapu.png")
-- Button image

function press_callback()
print("pressed")

heat_switch_state=not(heat_switch_state)— inversion booléenne de l’état du switch

xpl_dataref_write("sim/cockpit/switches/anti_ice_AOA_heat", "INT",fif(heat_switch_state,1,0)) -- appel du dataref  lorsque le bouton est pressé:
-- la fonction fif() retourne la première valeur si heat_switch_state est vrai, la deuxième si faux
end

function release_callback()
print("released")
end

button_id = button_add(nil, nil , 175, 82,160 ,83 , press_callback, release_callback)— on utilise aucune image, remplacées par la valeur nil

-- initialisation
heat_full_light_img = img_add("heat2.png", 175, 82, 160, 83)
visible(heat_full_light_img,false)

heat_on_img = img_add("heat1.png", 175, 82, 160, 83)
visible(heat_on_img,false)

heat_off_img = img_add("heat0.png", 175, 82, 160, 83)
visible(heat_off_img,true)

------------------------------
function heat_light(value)
if value==0 then
    visible(heat_full_light_img,false)
    visible(heat_on_img,false)
    visible(heat_off_img,true)
    heat_switch_state=false --OFF
else
   visible(heat_full_light_img,false)
    visible(heat_on_img,true)
    visible(heat_off_img,false)
    heat_switch_state=true --ON
end
end

xpl_dataref_subscribe("sim/cockpit/switches/anti_ice_AOA_heat", "INT",heat_light)
 
Dernière édition:
Bonjour Jacques, encore merci pour ton aide j'ai pus tester le panneau en simulation, un petit souci:
Depuis le cockpit quand je clique sur le probe W/H "on" la lumière fonctionne sur le panel AM en "on" et "off" RAS ;)
Depuis le panel AM quand je clique sur le probe W/H qui est déjà en "on" sa passe en "off" RAS ;)
Le problème est que j'ai du mal a comprendre pourquoi depuis AM, quand le Probe W/H est sur "off" quand je clique sur le boutton du panel rien ne se passe dans le cockpit ?
J'ai modifier le LUA rien de bien méchant juste renseigner le dataref de Airbus toliss A321
Merci
ps désoler si j'ai du mal je suis malade en ce moment.
 
Salut @morgandkfr59 , je me permet de mettre le script en C-like pour qu'il soit plus facile à lire . Soigne toi bien !

Lua:
heat_switch_state=false

--Resources

img_add_fullscreen("panelapu.png")

-- Button image

function press_callback()

print("pressed")

heat_switch_state=not(heat_switch_state)

xpl_dataref_write("AirbusFBW/ProbeHeatSwitch", "INT",fif(heat_switch_state,1,0)) -- appel du dataref lorsque le bouton est pressé

xpl_dataref_write("AirbusFBW/ProbeHeatSwitch", "INT", 0 )
end

function release_callback()

print("released")

end

button_id = button_add(nil, nil , 175, 82,160 ,83 , press_callback, release_callback)

heat_full_light_img = img_add("heat2.png", 175, 82, 160, 83)

visible(heat_full_light_img,false)

heat_on_img = img_add("heat1.png", 175, 82, 160, 83)

visible(heat_on_img,false)

heat_off_img = img_add("heat0.png", 175, 82, 160, 83)



visible(heat_off_img,true)

function heat_light(value)

if value==0 then

visible(heat_full_light_img,false)

visible(heat_on_img,false)

visible(heat_off_img,true)

heat_switch_state=false

else

visible(heat_full_light_img,false)

visible(heat_on_img,true)

visible(heat_off_img,false)

heat_switch_state=true

end

end

xpl_dataref_subscribe("sim/cockpit/switches/anti_ice_AOA_heat", "INT",heat_light)
 
Simple:
Immédiatement après avoir écrit le bon Dataref, tu forces une réecriture à 0 dans la 2e ligne suivante, ligne qui sauf erreur de ma part n'était pas dans le code original. Avec cette ligne en plus, le voyant est forcé à OFF chaque fois qu'on clique dessus.
Si tu rajoutes des lignes de code sans vraiment comprendre le pourquoi du comment, ça va marcher beaucoup moins bien...o_O

Lua:
xpl_dataref_write("AirbusFBW/ProbeHeatSwitch", "INT",fif(heat_switch_state,1,0)) -- appel du dataref lorsque le bouton est pressé

xpl_dataref_write("AirbusFBW/ProbeHeatSwitch", "INT", 0 ) -- ligne rajoutée qui efface le résultat de la ligne précédente
Avec ces morceaux de code, je pense que tu as les briques de base pour pouvoir faire un OVH en y allant progressivement.

Pour pouvoir afficher le voyant FAULT, j'ai pas trop réfléchi à la question, mais je pense qu'il faut simplement positionner une image de bouton entièrement transparente sauf le texte FAULT. Comme d'hab, mettre la visibilité de cette image sur false à l'initialisation
Ensuite créer une fonction qui affichera cette image lorsque le bon dataref du Toliss (à trouver) sera actif (probablement à 1) ET qu'on a de la génération electrique, donc le xpl_dataref_subscribe() qui appelle cette fonction devra surveiller ces deux datarefs.

Soignes toi bien

Jacques

PS: @Playrec :merci Frederic pour l'astuce du formatage, option de formatage qui n'existe pas dans la version du site pour Mobile.
C'est super pour la lisibilité du code. Dommage que Lua ne soit pas dans la liste, mais C-Like fonctionne très bien visiblement.
D'ailleurs @Silverstar , l'icone "Code" n'apparaît que si on met le tel en mode paysage, en mode portrait l'icône n'apparaît pas du tout, en tous les cas sur l'iPhone.
 
Dernière édition:
Retour
Haut