Panel 2D et jauge AM pour Le DHC-6 Twin Otter.

Programmation LUA, Macros FSUIPC, logiciel LINDA
et codage en LUA des gauges Air Manager

Re: Panel 2D et jauge AM pour Le DHC-6 Twin Otter.

Messagede JacquesZ » Mar 16 Jan 2018 23:06

Bon alors ça devrait fonctionner comme indiqué.
Tiens moi au courant!

Jacques
Ma chaîne YouTube Tutos sur l’A320 par un Pilote de Ligne: https://youtube.com/channel/UCljftuoKBcgeR-WBgYJpuoA
Avatar de l’utilisateur
JacquesZ
 
Messages: 2848
Inscription: 24/11/10

Re: Panel 2D et jauge AM pour Le DHC-6 Twin Otter.

Messagede jacquesvde » Mer 17 Jan 2018 00:17

JacquesZ a écrit:Bon alors ça devrait fonctionner comme indiqué.
Tiens moi au courant!

Jacques


applaublanc applaublanc applaublanc c'est exactement ce que je voulait tu est un magicien . roicouronne
C'est du parfait.
merci affiche
Jacques
Dernière édition par jacquesvde le Mer 17 Jan 2018 00:48, édité 1 fois.
Avatar de l’utilisateur
jacquesvde
 
Messages: 1226
Inscription: 20/04/09
Localisation: Courcelles Belgique

Re: Panel 2D et jauge AM pour Le DHC-6 Twin Otter.

Messagede jacquesvde » Mer 17 Jan 2018 00:46

Bonjour Jacques,


Je vais piquer tes codes du Bendix K285 Annunciator, ecroulerire

Image


pour faire ceci, (l'image est brouillon elle va être refaite)

Image


j’aurais aussi besoin de quelques variable, si Christian veut bien me dire les quel employer pour les afficheur, c'est juste en lecture, quoi que la plupart indique déjà les fontion dans le Bendix K285 Annunciator, HDG, ALT, AP, Bon en faite il n'y a que IAS et B/C que j'aurai besoin comme L:vars quoi que je ne sais pas c'est quoi comme information ?

Jacques cligneoeil
Avatar de l’utilisateur
jacquesvde
 
Messages: 1226
Inscription: 20/04/09
Localisation: Courcelles Belgique

Re: Panel 2D et jauge AM pour Le DHC-6 Twin Otter.

Messagede JacquesZ » Mer 17 Jan 2018 02:29

jacquesvde a écrit:Bonjour Jacques,


Je vais piquer tes codes du Bendix K285 Annunciator, ecroulerire

Image


pour faire ceci, (l'image est brouillon elle va être refaite)

Image



j’aurais aussi besoin de quelques variable, si Christian veut bien me dire les quel employer pour les afficheur, c'est juste en lecture, quoi que la plupart indique déjà les fontion dans le Bendix K285 Annunciator, HDG, ALT, AP, Bon en faite il n'y a que IAS et B/C que j'aurai besoin comme L:vars quoi que je ne sais pas c'est quoi comme information ?

Jacques cligneoeil


Euh....Aucun soucis pour réutiliser le code, la base du code n'est pas de moi, tu fais comme tu veux, mais je te signale que le code est assez complexe dans ce cas précis murrouge .
Pour cette jauge, j'ai moi-même réutilisé le code de la jauge existante, qui était pas évident à réutiliser à mon goût et si j'avais su j'aurais procédé autrement.

Si néanmoins tu veux t'y risquer, saches qu'en fait on crée un tableau de viewports sur la base de DEUX images de la jauge seulement (ON/OFF).
Le tableau est créé à la volée à partir des coordonnées (X,Y) et largeur, hauteur (width,heigth) contenues elles-mêmes dans les tableaux suivants.
En l'occurence, il y a à chaque fois 16 valeurs, car 16 voyants dans la jauge, la tienne peut en contenir un nombre différent.

Code: Tout sélectionner
dx = {70,120,210,300,390,60,130,220,300,390,60,120,160,230,300,365}
dy = {30,30,30,30,30,70,70,70,70,70,110,110,110,110,110,110}
dw = {80,80,80,80,80,80,80,80,80,80,100,40,70,70,70,100}
dh = {30,30,30,30,30,30,30,30,30,30,60,40,50,50,50,50}

Donc pour réadapter le code, il te faudra recalculer manuellement toutes les coordonnées x,y et largeur/hauteur de chaque fenêtre qui entoure chaque voyant et remplacer ces valeurs.

ensuite il faut changer dans la ligne
Code: Tout sélectionner
for i = 1, 16 do

le 16 par le nombre de voyants de ta jauge.

Le reste est classique, on rend visible l'image avec l'indice correspondant (dans l'exemple la 3), en fonction de un ou plusieurs paramètres récupérés dans FSX.
Code: Tout sélectionner
visible(img_mask[3], armgs == 1 or armhnav == 1 or armbc == 1)


Dernière remarque, d'après le dessin de la jauge, on dirait des boutons à pousser pour les modes PA. Tu es sûr que ce sont de simples annonciateurs?

Sinon:
- IAS (Indicated Air Speed), c'est pour forcer le PA à maintenir une vitesse indiquée donnée (utilisé en montée/descente). Dans ce mode le PA joue sur l'assiette pour essayer de maintenir la vitesse indiquée actuelle, mais ne pilote pas la puissance, donc si pas assez de puissance ou trop, il n'y arrivera pas...

- B/C (Back Course) c'est pour inverser les réactions du PA quand il est en mode en mode APPRoche (suivi d'ILS), et que l'ILS est utilisé en Back Course, c'est à dire en suivant l'alignement arrière du LOC ( autrement dit en approchant la piste qui est équipée de l'ILS à 180° de l'alignement, à l'envers quoi...). Dans le cas d'un LOC B/C, seul le LOC est actif, pas le Glide!
Comme on est en alignement arrière, l'aiguille du LOC indique le mauvais sens du virage, il faut que le PA vire à gauche quand l'aiguille dit d'aller vers la droite et inversement et le mdoe B/C sert à ça. En gros en suivant un LOC B/C, ton avion n'est plus au centre du cadran et le faisceau est représenté par l'aiguille, c'est le contraire. L'aiguille représente l'avion et le centre de l'instrument est le faisceau.

Attention en Europe les approches en suivant le faisceau d'alignement arrière sont INTERDITES (risques d'erreur), et le mode B/C n'est normalement pas utilisé (pas d'approches LOC B/C publiées en France en tous les cas), alors qu'aux US, c'est encore assez fréquent.

Sur le Bendix, il y a déjà le voyant "BC" pour le mode PA en LOC Back Course, mais pas pour le mode maintien de vitesse (IAS) par contre, qui est réservé aux PA plus conséquents.

Jacques
Ma chaîne YouTube Tutos sur l’A320 par un Pilote de Ligne: https://youtube.com/channel/UCljftuoKBcgeR-WBgYJpuoA
Avatar de l’utilisateur
JacquesZ
 
Messages: 2848
Inscription: 24/11/10

Re: Panel 2D et jauge AM pour Le DHC-6 Twin Otter.

Messagede algue14 » Mer 17 Jan 2018 10:52

salut Jacques (au choix ecroulerire )
Peut-etre plus simple :
J'ai adapté pour FS le PA sperry pour le MBB/Kawasaki(de Thiengo Vieira)
(le code initial est pour XPlane)
Il manque l'IAS pour ton utilisation, tu pourra aisément le rajouter en copiant une section existante pour un switch
il faudra juste adapter les variables et les coordonnées.


Image

si tu veux t'inspirer du code :

Code: Tout sélectionner
img_add_fullscreen("background_2.png")

click_sound = sound_add("click.wav")



--****************************************************************


--***********************************************************
--AP Switch
function power(avionics,battery,generator)
   if avionics <= 10 --and (battery <= 10 or generator ==false )
   then
   fsx_event("AUTOPILOT_OFF")
      visible(ap_light_on,false)
      visible(hdg_light_on,false)
      visible(nav_light_on,false)
      visible(apr_light_on,false)
      visible(bc_light_on,false)
      visible(alt_light_on,false)
      
      end
end

function SwitchAPPressedCallback(position)
   sound_play(click_sound)
    new_position = math.abs(position-1)
   switch_set_state(AP_switch_id,new_position)
   --xpl_dataref_write("","INT",new_position)
   if new_position == 1 then
      fsx_event("AUTOPILOT_ON", new_position)

   else
      fsx_event("AUTOPILOT_OFF", new_position)
   end
         
end

AP_switch_id =  switch_add("btn_off.png","btn_on2.png",190,329,116,73,SwitchAPPressedCallback)
   
function new_AP_switch_pos(sw_on)
   switch_set_state(AP_switch_id,sw_on)
   visible(ap_light_on,sw_on)
end   

   ap_light_on=img_add("on.png",190,329,116,73)
   fsx_variable_subscribe("AUTOPILOT MASTER", "Bool", new_AP_switch_pos)
fsx_variable_subscribe("ELECTRICAL AVIONICS BUS VOLTAGE", "Volts",
                 "ELECTRICAL BATTERY BUS VOLTAGE", "Volts",
                  "GENERAL ENG GENERATOR SWITCH:1", "BOOL",power)
   
--***********************************************************
--HDG Switch
function SwitchHDGPressedCallback(position)
   sound_play(click_sound)
   new_position= math.abs(position-1)
   switch_set_state(HDG_switch_id,new_position)
   --xpl_dataref_write("","INT",new_position)
   if new_position == 1 then
      fsx_event("AP_HDG_HOLD_ON", new_position)

   else
      fsx_event("AP_HDG_HOLD_OFF", new_position)

   end
end

HDG_switch_id =  switch_add("btn_off.png","btn_on2.png",92,121,100,75,SwitchHDGPressedCallback)

function new_HDG_switch_pos(sw_on)
   switch_set_state(HDG_switch_id,sw_on)
   visible(hdg_light_on,sw_on)
   
end   
 hdg_light_on=img_add("on.png",92,121,116,73)

fsx_variable_subscribe("AUTOPILOT HEADING LOCK", "Bool", new_HDG_switch_pos)
--xpl_dataref_subscribe("",new_HDG_switch_pos)

--***********************************************************
--NAV Switch
function SwitchNAVPressedCallback(position)
   sound_play(click_sound)
   new_position= math.abs(position-1)
   switch_set_state(NAV_switch_id,new_position)
   --xpl_dataref_write("","INT",new_position)
   if new_position == 1 then
      fsx_event("AP_NAV1_HOLD_ON", new_position)

   else
      fsx_event("AP_NAV1_HOLD_OFF", new_position)
   end
end

NAV_switch_id =  switch_add("btn_off.png","btn_on2.png",302,213,100,75,SwitchNAVPressedCallback)

function new_NAV_switch_pos(sw_on)
   sound_play(click_sound)
   switch_set_state(NAV_switch_id,sw_on)
   visible(nav_light_on,sw_on)
   
end   
nav_light_on=img_add("on.png",302,213,116,73)

fsx_variable_subscribe("AUTOPILOT NAV1 LOCK", "Bool", new_NAV_switch_pos)
--xpl_dataref_subscribe("",new_NAV_switch_pos)

--***********************************************************
--APR Switch
function SwitchAPRPressedCallback(position)
   sound_play(click_sound)
   new_position= math.abs(position-1)
   switch_set_state(APR_switch_id,new_position)
   --xpl_dataref_write("","INT",new_position)
   if new_position == 1 then
      fsx_event("AP_APR_HOLD_ON", new_position)
   else
      fsx_event("AP_APR_HOLD_OFF", new_position)
   end
end

APR_switch_id =  switch_add("btn_off.png","btn_on2.png",196,213,100,75,SwitchAPRPressedCallback)

function new_APR_switch_pos(sw_on)
--print (sw_on)
   switch_set_state(APR_switch_id,sw_on)
   visible(apr_light_on,sw_on)
   
   --end   
end   
apr_light_on=img_add("on.png",196,213,116,73)

fsx_variable_subscribe("AUTOPILOT APPROACH HOLD", "Bool", new_APR_switch_pos)
--xpl_dataref_subscribe("",new_APR_switch_pos)

--***********************************************************
--BC Switch
function SwitchREVPressedCallback(position)
   sound_play(click_sound)
   new_position= math.abs(position-1)
   switch_set_state(REV_switch_id,new_position)
   --xpl_dataref_write("","INT",new_position)
   if new_position == 1 then
      fsx_event("AP_BC_HOLD_ON", new_position)
   else
      fsx_event("AP_BC_HOLD_OFF", new_position)
   end
end

REV_switch_id =  switch_add("btn_off.png","btn_on2.png",92,213,100,75,SwitchREVPressedCallback)

function new_REV_switch_pos(sw_on)
   switch_set_state(REV_switch_id,sw_on)
   visible(bc_light_on,sw_on)
end   
bc_light_on=img_add("on.png",92,213,116,73)

fsx_variable_subscribe("AUTOPILOT BACKCOURSE HOLD", "Bool", new_REV_switch_pos)
--xpl_dataref_subscribe("",new_REV_switch_pos)

--***********************************************************
--ALT Switch
function SwitchALTPressedCallback(position)
   sound_play(click_sound)
   new_position= math.abs(position-1)
   switch_set_state(ALT_switch_id,new_position)
   --xpl_dataref_write("","INT",new_position)
   if new_position == 1 then
      fsx_event("AP_ALT_HOLD_ON", new_position)
   else
      fsx_event("AP_ALT_HOLD_OFF", new_position)
   end
end

ALT_switch_id =  switch_add("btn_off.png","btn_on2.png",302,121,100,75,SwitchALTPressedCallback)

function new_ALT_switch_pos(sw_on)
   switch_set_state(ALT_switch_id,sw_on)
   visible(alt_light_on,sw_on)
end   
alt_light_on=img_add("on.png",302,121,116,73)
fsx_variable_subscribe("AUTOPILOT ALTITUDE LOCK", "Bool", new_ALT_switch_pos)
--xpl_dataref_subscribe("",new_ALT_switch_pos)
A+

Alain
Avatar de l’utilisateur
algue14
 
Messages: 1626
Inscription: 20/04/09
Localisation: Caen ; Normandie

Re: Panel 2D et jauge AM pour Le DHC-6 Twin Otter.

Messagede jacquesvde » Mer 17 Jan 2018 12:44

Merci les gars, grandsoleil

C'est juste pour la lecture du pilote automatique puisque je n’utilise pas les commande touche presse virtuel. les commande du pilote automatique sont faite via un pilote automatique externe avec bouton physique et encodeur. donc pour le réalisme c'est juste pour afficher quand les options du pilote automatique sont actif.
pour resumer c'est juste des voyant qui s'alume quand j'active mon pilote automatique en principe c'est des image qui une est transparent et un deuxième qui est en surbrillance fonctionnant en On Off.
Très bonne idée Alain grandsoleil

merci affiche
Jacques
Avatar de l’utilisateur
jacquesvde
 
Messages: 1226
Inscription: 20/04/09
Localisation: Courcelles Belgique

Re: Panel 2D et jauge AM pour Le DHC-6 Twin Otter.

Messagede JacquesZ » Mer 17 Jan 2018 13:06

Dans ce cas, le plus simple (à mon avis) est de modifier légèrement le panel annonciateurs KA256 pour inclure l'IAS au lieu du témoin GA (Go Around) par exemple.

Il faut modifier les 2 images de base ON/OFF et remplacer GA par IAS, pas besoin de tout recalculer au niveau des tableaux, et remplacer dans le code du voyant GA par celui de l'IAS (avec la variable subscribe() qui va bien).

Parceque c'est toi sourirebis , je te fais déjà la modif graphique, je te laisse modifier le code.
KA285_onoff.zip
(61.15 Kio) Téléchargé 268 fois


Jacques
Ma chaîne YouTube Tutos sur l’A320 par un Pilote de Ligne: https://youtube.com/channel/UCljftuoKBcgeR-WBgYJpuoA
Avatar de l’utilisateur
JacquesZ
 
Messages: 2848
Inscription: 24/11/10

Re: Panel 2D et jauge AM pour Le DHC-6 Twin Otter.

Messagede algue14 » Mer 17 Jan 2018 13:15

jacquesvde a écrit:Bonjour Jacques,


Je vais piquer tes codes du Bendix K285 Annunciator, ecroulerire

Image


pour faire ceci, (l'image est brouillon elle va être refaite)

Image



jacquesvde a écrit:Merci les gars, grandsoleil

C'est juste pour la lecture du pilote automatique puisque je n’utilise pas les commande touche presse virtuel. les commande du pilote automatique sont faite via un pilote automatique externe avec bouton physique et encodeur. donc pour le réalisme c'est juste pour afficher quand les options du pilote automatique sont actif.
pour resumer c'est juste des voyant qui s'alume quand j'active mon pilote automatique en principe c'est des image qui une est transparent et un deuxième qui est en surbrillance fonctionnant en On Off.
Très bonne idée Alain grandsoleil

merci affiche
Jacques


Bizarre comme idée gratgrat gratgrat
La gauge que tu souhaites réaliser est principalement faite de switchs de commande, ça va pas faire très réaliste si tu a des commandes physiques séparées, mais bon, t'es un grand garçon tu fais comme tu le sens. sourirebis
A mon avis la gauge Bendix K285 serait bien mieux adaptée en l'état puisque uniquement destinée à l'affichage.
A+

Alain
Avatar de l’utilisateur
algue14
 
Messages: 1626
Inscription: 20/04/09
Localisation: Caen ; Normandie

Re: Panel 2D et jauge AM pour Le DHC-6 Twin Otter.

Messagede arcc » Mer 17 Jan 2018 13:28

si Christian veut bien me dire les quel employer pour les afficheur,


Je regarde ca ce soir. Elles sont dans la liste des variables que je t'ai envoyé, mais c'est plus pratique de les retrouver avec la console de LINDA.

A+
Christian
Un ancien sous-marinier qui a pris de la hauteur.
Avatar de l’utilisateur
arcc
 
Messages: 715
Inscription: 16/12/13
Localisation: La ou fini la terre (Finistere)

Re: Panel 2D et jauge AM pour Le DHC-6 Twin Otter.

Messagede JacquesZ » Mer 17 Jan 2018 14:11

Merci Jacques pour ta question, ça m'a donné l'occasion de revisiter la jauge KA 285 qui ne fonctionnait pas tout à fait comme elle devrait.
J'ai donc modifié le code, dans la version 2, maintenant comme dans le manuel, le mode PA clignote quand le PA est enlevé (les fameux Timers!), et les modes ARMED/COUPLED pour les modes NAV et APPR sont maintenant émulés, suite à mes recherches sur l'EADI84.

La jauge semble fonctionner correctement, si quelqu'un peut la tester et me faire un retour, surtout sur le passage ARMED/COUPLED en mode NAV et/ou APPR et aussi sur les indicateurs OMI dont je ne sais pas s'ils doivent clignoter ou pas. Petite remarque, comme d'hab, la version XPlane est moins aboutie et reste sur le code d'origine, pas trop eu le temps ni l'envie de tester sous XPlane.

Donc pour en revenir au post précédent, si tu souhaites réutiliser l'annonciateur en rajoutant la fonction IAS, je te conseille de partir sur la base de cette nouvelle jauge, et de remplacer pour ton cas les deux images du dossier resources par celles données dans le zip précédent, images qui remplacent GA par IAS, puis de modifier le code au niveau de la variable IAS, soit : "AUTOPILOT TAKEOFF POWER ACTIVE", "Bool", à remplacer par celle de l'IAS HOLD.
Evidemment, si ta jauge n'utilise pas les variables simconnect standard pour le PA, il faut les Lvars du DHC6 qui vont bien, mais Christian va te trouver tout ça!

Jacques

ci joint l'annonciateur version 2.0
335a12e6-9986-44b0-8d19-4d0197867ca6 .zip
(301.02 Kio) Téléchargé 290 fois
Ma chaîne YouTube Tutos sur l’A320 par un Pilote de Ligne: https://youtube.com/channel/UCljftuoKBcgeR-WBgYJpuoA
Avatar de l’utilisateur
JacquesZ
 
Messages: 2848
Inscription: 24/11/10

PrécédenteSuivante

Retourner vers LUA, Linda, Macros & gauges Air Manager





Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 3 invités