Airbus A321 A320 A319 OVH avec Sim Innovations

Merci beaucoup j'ai enlever la ligne inutile je lance pour voir,
La vache trop top hihihihihihi merci merci merci wow
Excellent c'est le meilleur moment de ma journée ;)
Franchement le fait d'avoir ça de savoir le fonctionnement sa va me changer la vie merci
Si je souhaite par exemple rajouter dans ce bouton le "on" allumer en rapport avec le dataref AirbusFBW/ACP1Lights pour le test des lights la procédure et la même ? Par contre le data de xp je ne sais pas ?
 
Dernière édition:
Le plus simple est de faire une autre fonction test_lights() qui fonctionnera selon le principe du bouton FAULT evoqué plus haut.
Tous les boutons à tester peuvent être regroupés dans une seule fonction, que tu complèteras au fur et à mesure.
Il suffira juste de jouer sur la visibilité des différentes images du bouton, en cachant avec visible(XXXX,false) toutes celles qu'on ne veut pas voir affichées et en allumant avec visible(XXX,true) l'image du bouton complet avec toutes ses légendes.
Pour etre réaliste, il faut au moins avoir de la batterie pour que le test voyant fonctionne, donc surveiller aussi le voltage du BUS BAT par exemple dans le même xpl_dataref_subscribe.
 
Bonjour, j'ai tenter de rajouter sur le panel AM le bouton Apu master jusque la tout est ok, le problème et que lorsque je clique sur le bouton ProbeW/H le bouton master , s'allume ? Je ne comprends pas, car j'ai bien s'éparer les fonctions sur le lua est-ce que je dois réécrire mais en dessous du 1er bouton ?
Je ne vois pas ma faute merci d'avance pour votre aide?

Lua:
heat_switch_state=false
master_switch_state=false

--Resources

img_add_fullscreen("panelapu.png")

-- Button image

function press_callback()

print("pressed")

heat_switch_state=not(heat_switch_state)
master_switch_state=not(master_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/APUMaster", "INT",fif(heat_switch_state,1,0))

end

function release_callback()

print("released")

end

button_id = button_add(nil, nil , 170, 80,160 ,83 , press_callback, release_callback)
button_id = button_add(nil, nil ,  170, 278,160 ,83 , press_callback, release_callback)

heat_full_light_img = img_add("heat2.png", 170, 80, 160, 83)
master_full_light_img = img_add("master2.png" , 170, 278, 160, 83)

visible(heat_full_light_img,false)
visible(master_full_light_img,false)

heat_on_img = img_add("heat1.png", 170, 80, 160, 83)
master_on_img = img_add("master1.png" , 170, 278, 160, 83)

visible(heat_on_img,false)
visible(master_on_img,false)

heat_off_img = img_add("heat0.png", 170, 80, 160, 83)
master_off_img = img_add("master0.png" , 170, 278, 160, 83)

visible(heat_off_img,true)
visible(master_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

function master_light(value)

if value==0 then

    visible(master_full_light_img,false)
  
    visible(master_on_img,false)
  
    visible(master_off_img,true)
  
    master_switch_state=false
  
else  

    visible(master_full_light_img,false)
  
     visible(master_on_img,true)
   
     visible(master_off_img,false)
   
        master_switch_state=true

end
    end
xpl_dataref_subscribe("sim/cockpit/switches/anti_ice_AOA_heat", "INT",heat_light)
xpl_dataref_subscribe("sim/cockpit2/electrical/APU_starter_switch", "INT",master_light)
 

Fichiers joints

  • Capture d’écran 2021-04-12 102239.png
    Capture d’écran 2021-04-12 102239.png
    183.6 KB · Affichages: 6
Je pense que tu n’as pas bien compris le fonctionnement de button_add()
Dans ton code, les deux button_add() ont les memes paramètres d’appel de fonction, donc AM appelle les mêmes fonctions pressed() et released() quelque soit le bouton. Comme la fonction pressed() est exécutée entièrement quelque soit le bouton sur lequel on appuie, tu lances l’APU et tu allumes le pitot heat en même temps de cette manière.

Les fonctions appelées par chaque button_add() doivent être indépendantes, puisque chaque action est indépendante.

Il faut créer des fonctions HEAT_pressed_callback() et HEAT_released_callback()
et
APU_pressed_callback() et
APU_released_callback()
etc...
et évidemment changer les appels dans les boutons_add() associés. Chacun appelle son Dataref associé et modifie sa variable sans interférer sur l’autre bouton.

L’allumage en mode test de tous les voyants est une exception, puisque dans ce cas tous les voyants sont affectés simultanément.

Tu peux aussi supprimer ou commenter les lignes print(« pressed ») et print(« released ») qui ne servent qu’au déboggage.
Même si la fonction XXXX_released_callback() est vide, il fait la laisser dans le code car elle est appelée par AM quand le bouton est relâché. Cette fonction est optionnelle, mais il vaut mieux la laisser pour une évolution ultérieure si besoin.

Autre remarque:
L’ordre de déclaration des images dans le code par img_add() est important, AM affiche toujours en premier l’image déclarée en premier dans le code.
C’est pour cela qu’il vaut mieux regrouper ensemble les img_add() qui concernent chaque bouton, sinon au bout d’un moment tu seras perdu.

Lua:
———-
heat_full_light_img = img_add("heat2.png", 170, 80, 160, 83)
visible(heat_full_light_img,false)
heat_on_img = img_add("heat1.png", 170, 80, 160, 83)
visible(heat_on_img,false)
heat_off_img = img_add("heat0.png", 170, 80, 160, 83)
visible(heat_off_img,true)— Remarque: dans l’absolu cette ligne-ci n’est pas utile, puisque AM rend une image ajoutée par img_add() toujours visible par défaut.
———-
master_full_light_img = img_add("master2.png" , 170, 278, 160, 83)
visible(master_full_light_img,false)
master_on_img = img_add("master1.png" , 170, 278, 160, 83)
visible(master_on_img,false)
master_off_img = img_add("master0.png" , 170, 278, 160, 83)
visible(master_off_img,true)— Remarque: dans l’absolu cette ligne-ci n’est pas utile, puisque AM rend une image ajoutée par img_add() toujours visible par défaut.
——

Jacques
 
Dernière édition:
Re bonjour, merci beaucoup de ta réponse et surtout de ta patience, j'ai fais ce que tu mas expliquer, maintenant pour les boutons_add() problème rien ne se passe, pourtant dans le wiki j'ai fais comme ils ont montrer dans l'exemple, après la fonction j'ai renseigner le boutons, je ne comprends pas le rôle de nil dans le lua.
je suis vraiment désoler d'être aussi nul.
Il y'a pas, je vais y'arriver il le faut.
Lua:
heat_switch_state=false
master_switch_state=false

-- Resources
img_add_fullscreen("panelapu.png")

   -- Button image
heat_full_light_img = img_add("heat2.png", 170, 80, 160, 83)
visible(heat_full_light_img,false)
heat_on_img = img_add("heat1.png", 170, 80, 160, 83)
visible(heat_on_img,false)
heat_off_img = img_add("heat0.png", 170, 80, 160, 83)
visible(heat_off_img,true)

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

master_full_light_img = img_add("master2.png" , 170, 278, 160, 83)
visible(master_full_light_img,false)
master_on_img = img_add("master1.png" , 170, 278, 160, 83)
visible(master_on_img,false)
master_off_img = img_add("master0.png" , 170, 278, 160, 83)
visible(master_off_img,true)

  ----------------------------------------------------------------
heat_switch_state=not(heat_switch_state)
master_switch_state=not(master_switch_state)

xpl_dataref_write("AirbusFBW/ProbeHeatSwitch", "INT",fif(heat_switch_state,1,0))
xpl_dataref_write("AirbusFBW/APUMaster", "INT",fif(master_switch_state,1,0))

function heat_press_callback()
print("pressed")

end

function heat_released_callback()
print("released_callback")

end

button_id = button_add(nil, nil, 170, 80, 160, 83,callback_pressed, callback_released)

function APU_pressed_callback()
print("pressed")

end

function APU_released_callback()
print("released_callback")

end

button_id = button_add(nil, nil, 170, 278, 160, 83 , callback_pressed, callback_released)

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

function master_light(value)

if value==0 then

    visible(master_full_light_img,false)
  
    visible(master_on_img,false)
  
    visible(master_off_img,true)
  
    master_switch_state=false
  
else  

    visible(master_full_light_img,false)
  
     visible(master_on_img,true)
   
     visible(master_off_img,false)
   
        master_switch_state=true

end
    end

xpl_dataref_subscribe("sim/cockpit/switches/anti_ice_AOA_heat", "INT",heat_light)
xpl_dataref_subscribe("sim/cockpit2/electrical/APU_starter_switch", "INT",master_light)

Code:
ERROR - logic.lua:41: Argument 'callback_pressed(7)' in function 'button_add' is nil, which is not allowed
ERROR - logic.lua:53: Argument 'callback_pressed(7)' in function 'button_add' is nil, which is not allowed
 
C'est sûr que je vais pas pouvoir passer mon temps à debugger ligne à ligne ton code, ca devient un peu lourd.:rolleyes:

Désolé de te dire cela Morgan, mais le vrai soucis est que je pense que tu ne fais pas les choses dans l'ordre.
Il te faut vraiment apprendre les bases de la programmation Lua, le principe des fonctions, etc,... sinon c'est trop compliqué, d'appliquer sans comprendre.
De plus tu as choisi un truc compliqué à faire comme premier instrument.
Encore une fois, je t'invite à regarder toute la série de Tutos Youtube sur Air Manager qui est très bien faite. Il y a 29 videos sur le sujet, les as-tu regardées?

Et il faut apprendre à lire les messages d'erreur de Lua:
Code:
ERROR - logic.lua:41: Argument 'callback_pressed(7)' in function 'button_add' is nil, which is not allowed
ligne 41, 7e argument(paramètre) est nil (rien)
Lua:
button_id = button_add(nil, nil, 170, 80, 160, 83,callback_pressed, callback_released)

Le 7e argument est callback_pressed qui doit être le nom d'une fonction valide, cad déclarée quelquepart dans le code.

Or tu as changé le nom des fonctions appelées, elles s'appellent maintenant heat_press_callback et heat_released_callback.
Mais tu n'as appliqué mes instructions qu'à moitié, pas étonnant que cela ne fonctionne pas!
...et évidemment changer les appels dans les boutons_add() associés.

Les fonctions callback_pressed, callback_released n'existent plus, Lua ne les trouve pas et donc le message d'erreur.
la ligne 41 devrait donc être
Lua:
button_id = button_add(nil, nil, 170, 80, 160, 83,heat_press_callback , heat_released_callback)

Même principe pour la ligne 53.

Mais il y a encore d'autres erreur dans ton code, encore une fois parceque tu n'as pas suffisamment étudié/compris les codes que je t'ai fourni, pour savoir comment les adapter.


Jacques
 
Dernière édition:
Oui c'est vrai encore une erreur de ma part je n'avais pas fais attention a la fonction, je serai plus attentif avant de demander, maintenant j'ai plus d'erreur ;)
Mais j'ai le même coup que hier le AM n'est pas contrôlable , quand je suis dans le Toliss je clique sur bat 1 2 puis ext pwr , je lance AM et la directement le probe et le master se mettent sur on ?

J'ai regarder je ne trouve pas les autres erreurs , je ne sais pas
 
Dernière édition:
"...........Mais il y a encore d'autres erreur dans ton code, encore une fois parceque tu n'as pas suffisamment étudié/compris les codes que je t'ai fourni, pour savoir comment les adapter."
 
Dernière édition:
Je tombe par hasard sur cette discussion, désolé Jacques je n'ai pas vu ta notification.
@JackZ je t'ai rajouté la balise code pour la version mobile. ;G)

@morgandkfr59 en plus d'aller apprendre le LUA comme te l'a préconisé Jacques, il faut que tu apprennes à utiliser les balises code sur le forum.
Tu cherches cette icone ci joint et tu cliques dessus.

code.JPG


Ensuite tu colles ton code dans l'espace, et dans langage tu vas choisir (pour tes erreurs LUA tu laisses CODE GENERAL et pour ton code LUA tu choisis Lua) tu fais continuer en bas et ça apparait dans ton message.

clike.JPG
 
@Silverstar merci, bien pratique!.
Tu aurais pas un "parser" pour Lua tant qu'on y est?
Comme ça le end et les commentaires seraient correctement détectés et colorés!
Mais c'est déjà très bien comme ça.
Sinon s'il y a un XML a modifier pour ça je veux bien m'y coller, ça pourra toujours servir et ça doit pas être très compliqué
 
Dernière édition:
Lua:
heat_switch_state=false
master_switch_state=false

-- Resources
img_add_fullscreen("panelapu.png")

   -- Button image
heat_full_light_img = img_add("heat2.png", 170, 80, 160, 83)
visible(heat_full_light_img,false)
heat_on_img = img_add("heat1.png", 170, 80, 160, 83)
visible(heat_on_img,false)
heat_off_img = img_add("heat0.png", 170, 80, 160, 83)
visible(heat_off_img,true)

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

master_full_light_img = img_add("master2.png" , 170, 278, 160, 83)
visible(master_full_light_img,false)
master_on_img = img_add("master1.png" , 170, 278, 160, 83)
visible(master_on_img,false)
master_off_img = img_add("master0.png" , 170, 278, 160, 83)
visible(master_off_img,true)

  ----------------------------------------------------------------
heat_switch_state=not(heat_switch_state)
master_switch_state=not(master_switch_state)

xpl_dataref_write("AirbusFBW/ProbeHeatSwitch", "INT",fif(heat_switch_state,1,0))
xpl_dataref_write("AirbusFBW/APUMaster", "INT",fif(master_switch_state,1,0))

function heat_press_callback()
print("pressed")

end

function heat_released_callback()
print("released_callback")

end

button_id = button_add(nil,nil,170,278,160,83,heat_press_callback , heat_released_callback)

function APU_pressed_callback()
print("pressed")

end

function APU_released_callback()
print("released_callback")

end

button_id = button_add(nil, nil, 170, 80, 160, 83,heat_press_callback , heat_released_callback)

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

function master_light(value)

if value==0 then

    visible(master_full_light_img,false)
   
    visible(master_on_img,false)
   
    visible(master_off_img,true)
   
    master_switch_state=false
   
else  

    visible(master_full_light_img,false)
   
     visible(master_on_img,true)
   
     visible(master_off_img,false)
   
        master_switch_state=true

end
    end

xpl_dataref_subscribe("sim/cockpit/switches/anti_ice_AOA_heat", "INT",heat_light)
xpl_dataref_subscribe("sim/cockpit2/electrical/APU_starter_switch", "INT",master_light)
Je ne comprends pas mon erreur malgré les explications de Jacques, je ne sais pas pourquoi le panneau de AM n'est pas utilisable ? Depuis le cockpit quand je clique les voyants sur le panneau de AM s'affiche , et du départ quand je fais afficher le panneau sur AM les 2 boutons se mettent sur "on" d'entrée de jeu et je ne peux pas interagir sur le AM , erreur de quoi d'écriture ? de datarefs ? Toutes aide sera vraiment utile merci.
 
Regardes ce qui se passe (ou pas) quand tu cliques sur un bouton dans ton code. Quelles fonctions sont appelées et ce qu’il se produit (ou pas) dans ces fonctions.

C’est clairement une incompréhension de la manière dont on programme avec Lua, et dans quasiment tous les langages de programmation, en particulier les fonctions.
Et sur ce coup-ci c’est trop de boulot de t’expliquer tout ça, et pas l’objet de ce forum non plus, à mon humble avis.

Tu n’as pas essayé non plus d’analyser les morceaux de code précédents pour voir ce qui avait changé dans ce nouveau code et qui explique ces erreurs.
On ne PEUT PAS résoudre un problème en collant au hasard des bouts de code et en demandant qu’on debogue ligne à ligne pour toi, désolé.
Tant que tu n’auras pas fait la démarche d’apprendre par toi-même les rudiments de programmation Lua, je rends mon tablier.
 
Dernière édition:
Les gars vous pouvez maintenant choisir Lua dans la liste. (dernière version de PrismJS)
J'en ai profité pour modifier tous les C-like que vous aviez mis dans vos précédents posts.
Je vous l'ai ajouté dans langues communes 3ème au début de la liste.
 
Lua:
heat_switch_state=false
master_switch_state=false

-- Resources
img_add_fullscreen("panelapu.png")

   -- Button image
heat_full_light_img = img_add("heat2.png", 170, 80, 160, 83)
visible(heat_full_light_img,false)
heat_on_img = img_add("heat1.png", 170, 80, 160, 83)
visible(heat_on_img,false)
heat_off_img = img_add("heat0.png", 170, 80, 160, 83)
visible(heat_off_img,true)

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

master_full_light_img = img_add("master2.png" , 170, 278, 160, 83)
visible(master_full_light_img,false)
master_on_img = img_add("master1.png" , 170, 278, 160, 83)
visible(master_on_img,false)
master_off_img = img_add("master0.png" , 170, 278, 160, 83)
visible(master_off_img,true)

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

function heat_press_callback()
    —print("pressed")
    heat_switch_state=not(heat_switch_state)
    xpl_dataref_write("AirbusFBW/ProbeHeatSwitch", "INT",fif(heat_switch_state,1,0))
end

function heat_released_callback()
    —print("released_callback")
end

button_id = button_add(nil, nil, 170, 80, 160, 83,heat_press_callback,heat_released_callback )
——————
function APU_pressed_callback()
    —print("pressed")
    master_switch_state=not(master_switch_state)
    xpl_dataref_write("AirbusFBW/APUMaster", "INT",fif(master_switch_state,1,0))
end

function APU_released_callback()
   —print("released_callback")
end

button_id = button_add(nil, nil, 170, 278, 160, 83 ,  APU_pressed_callback, APU_released_callback)
————
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

function master_light(value)
if value==0 then
    visible(master_full_light_img,false)
    visible(master_on_img,false)
    visible(master_off_img,true)
    master_switch_state=false
else
    visible(master_full_light_img,false)
    visible(master_on_img,true)  
    visible(master_off_img,false)  
    master_switch_state=true
end
end


xpl_dataref_subscribe("sim/cockpit/switches/anti_ice_AOA_heat", "INT",heat_light)
xpl_dataref_subscribe("sim/cockpit2/electrical/APU_starter_switch", "INT",master_light)
 
Bon c’était à prévoir, l’OP a visiblement laissé tomber le projet, mais pas ses demandes d’aide, pour un panneau de C208 sur FS2020 cette fois.

Ce coup-ci directement sur le forum de Sim Innovation, et comme d’hab sans recherches préalables sur la faisabilité d’un tel projet (FS 2020 est pour l’instant très difficilement interfacable avec Air Manager car le SDK est incomplet), ni le niveau requis pour ça.

Je l’avais pressenti, c’est confirmé. Comme dirait l’autre, « sur un malentendu ça peut marcher ».
 
L'Op na pas laisser tomber le projet Mr JackZ, c'est vous qui avais ranger votre tablier, et je ne vois pas ou est le mal de demander de l'aide a la communauté de sim innovation pour faire un panel sur un cessna, j'ai bien dis dans le topic que je ne savais pas utiliser le Fichier LUA je voulez reunir des passionner pour faire un projet commun, de partage pour tous et non pas faire comme la plus part des gens faire cavalier seul. Effectivement j'ai bien évoluer dans skin man ,mes bon sans commentaires ... Juste mon avis d'élève comme vous ne m'avez pas bien expliquer mes erreurs du Lua faire la comparaison etc..., et arrêter de m'aider du coup, je ne peux pas apprendre d'avantage, que voulez vous que je vous dise ? J'ai bien vu que mon projet de panel XP avec AM est peine perdu J'ai regarder votre LUA tout et bon, sauf l'inversement xp 11 a AM ok / AM a xp non cela ne fonctionne pas. En tous Jacques il y'a des gens qui sont douer dans certain domaines et d'autre non c'est comme ça. Je vais faire mon panel en 2D et c'est tout il ne sera pas fonctionnelle peut être que dans quelle mois il y'en aura peu être un sur le marché ou une app , en tout cas je tiens particulièrement a vous remercier d'avoir essayer de m'aider, c'étais très gentil a vous. Pas la peine de me rabaisser d'avantage, c'est que vous avez fais ressentir. Je vous souhaite une très bonne continuation et prenez soin de vous encore une fois merci. J'ai demander la suppression de mon compte.
 
Dernière édition:
@morgandkfr59
Il ne faut pas courir avant de savoir marcher ... :cool:

Vous avez l'air bien susceptible ... Je ne lis rien dans les différents posts de @JackZ qui vous rabaisse ... Vous voulez quitter le site pour si peu ?
Il n'y a pas de profs ou d'éléves ici , que des personnes passionnées dont certaines passent du temps , voir beaucoup de temps pour essayer d'aider et de donner des conseils ...
 
Oui pas facile pour que les rêves deviennent réalité, même en demandant une aide extérieure, beaucoup jettent l'éponge, preuve en est les nombreux posts du genre "Mon projet Axxx ou Bxxx" qui finissent en sucette après 1 ou 2 pages ! Mais bon certains insistent et finissent par décrocher le graal et souvent leur travail suscite l'admiration :)
Et merci à nouveau à ceux qui veulent bien apporter une aide, je pense à JackZ en particulier, toujours prêt à dégainer, mais à d'autres en général, tous passionnés dans leur domaine.
 
Retour
Haut