Accueil
Accueil

Bienvenue invité ( Connexion | Inscription )

2 Pages V  1 2 >  
Reply to this topicStart new topic
> Windrider : Q&A Panel Deporté
KaTZe
post 4 Oct 2009, 10:58
Message #1






Indicatif : RW-24
Messages : 1,589
Inscrit : 18/11/07
Lieu : Villelaure
Membre n° 2,712

CITATION(windrider @ 3 Oct 2009, 21:11) *

Bonjour à tous.
Ca y est, j'ai fini les paramétrage des divers softs (LockOn > loiocpserveur.lua > IOCP Server > Gauge Composer) et je me lance dans la réalisation proprement dite: objectif = un second PC avec 2 ecran pour affichage tableau de bord complet russe (mais pas rigoureusement identique).

J'ai voulu commencer par un module que je n'ai pas trouvé au travers des divers posts : l'afficheur de position Gear & Flaps.
Je suis confronté au problème : j'arrive pas à trouver la variable (offset - fonction export lua) qui gère ces données. Si vous connaissez les fonctions à utiliser, j'avoue que je suis preneur.

Si ces données ne sont pas dispo, j'ai bien une idée de contournement
identifier les conditions de départ (faisable au travers de 2 config de départ, une en vol et une au sol)
détecter tout changement
répercuter tout changement dans des variable internes associée à l'affichage.
Dans cette solution, j'ai un petit problème : je ne sais pas si on peut intercepter les commandes des claviers (dans mon cas une composition de touches, 'remappage' clavier oblige)
Que pensez vous de ce contournement ?

Merci de votre support.

Et encore bravo à vous tous, devant vos réalisation et le niveau de vos débats.

PS1 : je suis pas certain de poster au bon endroit. S'il faut le faire dans un autre topic, pas de problème (précisez moi où aller)

PS2 : afin d'éviter de réinventer la roue (en moins bien en plus) y a t il un espace où chacun a publié ses réalisation ?

Encore merci pour votre constante activité, source d'inspiration permanente..

wavetowel2.gif


Salut Windrider,

J'ai créé un topic spécial pour tes questions et réponses.
Je vais tout de suite essayer de répondre, et je te mettrai une copie de mon fichier .ssi.
(Because on apprend mieux avec l'exemple). Faut juste que j'allume le PC sur lequel je fais ce développement. (Là je suis mollement devant ma TV à regarder les émissions de bagnoles blushing.gif , avec mon miniportable).

Alors comme nous tous, tu as voulu commencer par le train et les flaps ... pas de chance l'état de ces variables n'est pas exportées blink.gif On se demande d'ailleurs ce que les gars qui ont réalisé les fonctions d'export de LO avaient fumés (alors que d'autres données inutiles sont elles exportées ...)

Les piteurs de la team, ont contourné le problème comme tu l'indique (via leur commande IOcard, et un test pour voir si le jeu obéi (test vitesse, vol etc etc ...).
Le problème du panneau déporté, c'est que tu vas souvent vouloir sortir le train via le clavier ou le joy ... et là ton panel va être paumé. (Je ne sais pas comment intercaler le clavier entre SIOC et LO pour intercepter les commande clavier).
Perso. j'ai renoncé à mettre l'état des flaps et train sur mon panel (de plus la visi sur le cockpit du jeu est plutôt bonne).
Par contre j'ai un bouton, config. d'atterissage qui commande flaps+gear down.

Bref, je te suggère de commencer par des info. et commande plus simples.

Je te met d'ici 1hr, mon fichier SIOC

Miaou wink.gif

--------------------
120th Black Kite : "Mochibus et Pollutis"
Image IPB
M-05 KaTZe

User is offlineProfile CardPM
Go to the top of the page
+Quote Post
KaTZe
post 4 Oct 2009, 13:49
Message #2






Indicatif : RW-24
Messages : 1,589
Inscrit : 18/11/07
Lieu : Villelaure
Membre n° 2,712

Voici mes fichiers SIOC (version .ssi et txt pour une meilleure lisibilité)

Fichier joint  KaTZe_0301.zip ( 24,18 Ko ) Nombre de téléchargements: 437


Je pense qu'il est pas mal commenté donc assez facile à lire.

Pour ce qui concerne le train et les flaps :
J'ai un bouton de config atterrissage dans Gauge Composer

Avec dans l'onglet IOCP change :
CODE
link offset 912 server LOCK-ON


et dans l'onglet Mouse click :
CODE

link offset 912 server LOCK-ON
value *= -1
set offset 912 server LOCK-ON with value


C'est la config typique d'un interrupteur switch (toggle).
Si tu va dans mon fichier SIOC, tu vois pour la variable 912:
CODE
Var 0912, name SW_3Vertes, Value 1     // Flaps Down + Gear Down
{
  &LOCKONCMD = 431    
  &LOCKONCMD = 145
}


Ainsi, la variable est initialisée à 1 au démarrage (Value 1)
Chaque fois que l'on appuie sur l'interrupteur de Gauge Composer, la valeur va alterner entre +1 et -1.

A chaque changement, SIOC va envoyer la commande 431 et 145 à Lock On, soit sortie du train et full flaps.
J'ai utilisé non pas les commande toggle (danger de rentrer un train déjà sorti), mais bien les commandes de position absolue (train sorti, flaps position basse). Ainsi pas de risque.

Voilà c'est un exemple, mais c'est vrai que je n'ai pas hélas le retour de position de LO.

Miaou wavetowel2.gif

PS : Je pense mettre en ligne mon panel ce soir si j'arrive à avancer un peu ce PM.

--------------------
120th Black Kite : "Mochibus et Pollutis"
Image IPB
M-05 KaTZe

User is offlineProfile CardPM
Go to the top of the page
+Quote Post
windrider
post 5 Oct 2009, 12:12
Message #3



 


Messages : 15
Inscrit : 29/09/09
Lieu : Montpellier
Membre n° 3,465

Merci KaTZe.
Ton fichier m'est très utile. Je l'analyse en détail.
Je préfère m'attaquer d'entrée sur une des points chaud car si ça doit influencer l'organisation complète de mon panel autant m'en apercevoir dès le début.

L'idée que ça m'a donné est la suivante :
Tout d'abord le montage des soft / PC :
PC1 = LockOn + IOCP Server + Joystick + 1 clavier special (progammable)
PC2 = Gauge Composer (appli avec focus durant le vol) + 1 clavier special (progammable)

Principe d'initialisation :
Au lancement du vol, je démarre un timer de quelques secondes (5 par ex).
Quand le timer claque, je l'arrête (si je peux) et rentre dans une fonction (lire variable sioc). Le but est de ne rentrer dans cette Var qu'une fois au début.
J'y test l'altitude :
si < 100m (par ex) alors je considère que je dois avoir le train sortir ==> le lance la commande d'état que tu as indiquée pour forcer lockon à être synchronisé.
si > 100 (par ex) alors je considère que je dois avoir le train rentré ==> le lance la commande d'état que tu as indiquée pour forcer lockon à être synchronisé.
Dans les deux cas je positionne une var interne qui va gérer l'état du train pour le panel.

Au cours du vol, sur le clavier du PC2, j'ai un bouton pour RENTRER le train et un autre pour SORTIR le train. J'essaie de récupérer ces commandes vers gauges composer et les envoyer à sioc pour actionner Lockon. Avec une timer dédié on peut alors faire l'animation de mouvement.

Je fais pareille pour les volter et brake sachant que je considère qu'en début de vol j'ai par défaut tout ça rentré et que donc je les force à rentrés dans le panel et aussi à lockon [ si ça me convient pas pour un vol, alors le pilote devra rétablir leur position par commandes ]

Le seul pb que je vois c'est que je ne peut pas gérer le cas où le train (par ex) ne se manoeuvre pas correctement, mais alors je vais récupérer d'autres alarmes (et peut être plus tard compléter la gestion avec ces alarmes)

Qu'en penses tu ?

wink.gif
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
KaTZe
post 5 Oct 2009, 14:49
Message #4






Indicatif : RW-24
Messages : 1,589
Inscrit : 18/11/07
Lieu : Villelaure
Membre n° 2,712

Salut Windrider,

1- Concernant la disposition, personellement je fais tourner SIOC sur le PC2.
Pour charger le moins possible la machine 1 (même si SIOC n'est pas trop gourmand), mais surtout parceque lors de la mise au point, tu peux faire tourner Lock-On et suivre sur le 2eme PC, via la console SIOC l'évolution des variables.
Sinon, t'es obligé de faire des alt-tab permanent sur LO, pour accéder à SIOC.

En fait, je te conseil de mettre de côté GC au tout début (même si naturellement on a envie de voir les effets), et de suivre le déroulement du programme via la console de SIOC.

2- Concernant ton train.

Ne t'embète pas avec un timer initial, ton SIOC est au départ populé avec des zero.
Au laché de pose, la variable 0011 va s'initialiser avec l'heure de début de mission.
Il te suffit alors de mettre dans Var011, les tests que tu veux faire pour déterminer l'état de ta variable "SW_Gear_position"
(Si tu as besoin d'un delay regarde l'utilisation de la commande DELAY dans mon scan panel (Var 0519)

Profite en pour créer quelques variables qui te seront utiles pour la suite.
Par exemple dans mon cas j'ai créé la variable 0205 "In_Flight"
Je ne l'ai pas basée sur l'altitude mais sur la vitesse (>40 m/s)
Elle me sert à incrémenter mon chrono de temps de vol, mais aussi à lancer quelques opérations au décollage lorsqu'elle change d'état (comme le scan du panel armement, si le pilote a oublié de la faire dans sa checklist post démarrage).

Dans ton cas tu peux déduire que si au début de mission in-flight = 0 (vitesse < 144km/h), ton avion est probablement au sol et donc train rentré. (et inversement, puisque l'on ne respawn pas train sorti)
Pour les volets, je pense que quelque soit la configuration, on respawn toujours volets rentrés.

Tu vas donc avoir trois codes :

CODE
Var 0023, name TAS
{
IF &TAS > 4000
{
&In_flight = 1
}
ELSE
{
&In_flight =0
}


et

CODE
Var 0011, name MStart
{
IF &In_flight = 1
{
&SW_Gear_position = 1
}
}


CODE

Var 0800, name SW_Gear_position , value -1


Après cela comme MStart ne changera plus d'état pendant le reste du vol, elle n'affectear plus SW_Gear_Position.

Tu créés une diode verte dans GC, qui apparait si SW_Gear_position = -1
Tu créés une commande value *= -1 pour faire changer d'état lors de la commande.

-----------------------------------------------------------------------------------------------
Remarque :
1> Là où je ne peux pas t'aider c'est pour la commange de GC avec un clavier (il y a je crois une interface macro-clavier) ... perso j'utilise la souris.
2> Le plus dur, c'est de ne pas changer la variable quand les conditions de sortie ne sont pas remplies (vitesse excessive, avion au sol etc etc ...)
Cherche dans le post des copains utilisant des pits réels, ils ont du faire çà pour éviter les états inversés.
3> Le problème aussi, c'est (surtout pour les volets), que tu vas devoir toujours utiliser ton clavier PC2 pour manoeuvrer ces pièces. Pour les volets, çà peut être utile de les avoir au joystick ...
4> Profite des commandes à sens unique (volet ou train full down) pour recaler ta variable d'état.
Pour cela quand tu envoie les commandes "&Lockoncmd = 431" ou "&Lockoncmd 145" , force aussi l'état de "&SW_Gear_position = -1"

Bon courage
Miaou wavetowel2.gif

Ce message a été modifié par KaTZe - 5 Oct 2009, 14:51.

--------------------
120th Black Kite : "Mochibus et Pollutis"
Image IPB
M-05 KaTZe

User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Maraudeur
post 5 Oct 2009, 15:07
Message #5




Commandant de la 92nd Kodiak AF

Indicatif : JR-22
Messages : 4,204
Inscrit : 4/12/04
Lieu : Monnaie
Membre n° 17

Pour ma part je ne me suis pas autant "embêté"

Mes Leds du panneau d'indicateur de traînée ne sont commandées que par les positions de mes interrupteurs. La logique est simple:

- Train sur position sorti -> SI pas de panne ET IAS<500Km/h ALORS déclenchement de la routine de clignotement en séquence des leds rouges et vertes
- train sur rentré -> SI pas de panne ET pas au sol ALORS idem mais dans l'autre sens

Logique identique pour les volets avec seulement la condition de vitesse et de non-panne

Évidemment, il peut y avoir un souci lorsque l'avion est initialisé en l'air et que ma palette de train est basse. Mais dans ce cas le SIOC ne détecte pas d'information puisque il ne prend en compte que les changements d'état lorsqu'il s'agit d'interrupteurs. Il me suffit donc de mettre ma palette de train sur "rentré" pour être en conformité avec lockon, et ainsi le reste de la logique est respecté pour la suite du vol. Idem dans le cas inverse: palette de train sur rentré lors d'un initialisation au sol: pas de réaction dans lockon puisque pas de changement d'état de mon interrupteur. Il me suffit d'abaisser la palette pour que tout rentre dans l'ordre.

La seule logique que je n'ai pas encore réussi à décrypter c'est celle du déclenchement de l'extension des becs de bord d'attaque. Je pense que c'est lié à l'AoA mais je n'ai pas encore pris le temps de vérifier.

Autre détail amusant, on peut aussi aibaisser automatiquement les voyants des volets sortis lorsque la pression descend dans les circuit (lors de la coupure des moteurs), mais comme l'information de pression hydraulique n'est pas disponible, il suffit de déclencher l'allumage des voyants environs 20" après la coupure des 2 réacteurs. (ou à l'inverse de les allumer si les 2RPM sont à 0 avec une vitesse nulle.

Bref, des tas de trucs marrants à faire tongue.gif

--------------------
Image IPB
Cerbro Tvo Utere! Sin Minvs, Parietes Asperget...

User is offlineProfile CardPM
Go to the top of the page
+Quote Post
KaTZe
post 5 Oct 2009, 15:20
Message #6






Indicatif : RW-24
Messages : 1,589
Inscrit : 18/11/07
Lieu : Villelaure
Membre n° 2,712

CITATION(Maraudeur @ 5 Oct 2009, 16:07) *

Évidemment, il peut y avoir un souci lorsque l'avion est initialisé en l'air et que ma palette de train est basse. Mais dans ce cas le SIOC ne détecte pas d'information puisque il ne prend en compte que les changements d'état lorsqu'il s'agit d'interrupteurs. Il me suffit donc de mettre ma palette de train sur "rentré" pour être en conformité avec lockon, et ainsi le reste de la logique est respecté pour la suite du vol. Idem dans le cas inverse: palette de train sur rentré lors d'un initialisation au sol: pas de réaction dans lockon puisque pas de changement d'état de mon interrupteur. Il me suffit d'abaisser la palette pour que tout rentre dans l'ordre.



Off course ... c'est pas con çà laugh.gif thumbsup.gif

Pour les becs, je pense comme toi (avec ptet une vitesse maxi ?)

Me tente pas trop où je sens que je vais investir pour noel dans une IOcard ... et là çà sera l'engrenage tongue.gif

Miaou wavetowel2.gif

--------------------
120th Black Kite : "Mochibus et Pollutis"
Image IPB
M-05 KaTZe

User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Maraudeur
post 5 Oct 2009, 16:34
Message #7




Commandant de la 92nd Kodiak AF

Indicatif : JR-22
Messages : 4,204
Inscrit : 4/12/04
Lieu : Monnaie
Membre n° 17

Ben oui, je sais, j'ai été faible et j'ai plongé dedans... alors pour me consoler j'essaie d'y entraîner aussi les autres... gap.gif

--------------------
Image IPB
Cerbro Tvo Utere! Sin Minvs, Parietes Asperget...

User is offlineProfile CardPM
Go to the top of the page
+Quote Post
windrider
post 5 Oct 2009, 20:07
Message #8



 


Messages : 15
Inscrit : 29/09/09
Lieu : Montpellier
Membre n° 3,465

Salut KaTZe, (et les autres aussi ...) thumbsup.gif

CITATION(KaTZe @ 5 Oct 2009, 15:49) *

1> Là où je ne peux pas t'aider c'est pour la commange de GC avec un clavier (il y a je crois une interface macro-clavier) ... perso j'utilise la souris.

En fait, dans un premier temps je prévois de ne pas trop m'embêter avec ce point. Je prévois d'utiliser un programme supplémentaire qui simule des click souris là où tu veux : tu programme une sequence de 2 touches comme correspondant à un simple (ou double) click à un endroit précis de l'écran. Ensuite, avec ce programme en tache de fond, tu envoies la sequence et le soft génère le click pour toi.

Le soft en question c'est : link2fs_mouse_v4 (ça vient du monde fsx)
Si ça interesse quelqu'un, on le trouve ici :
http://www.jimspage.co.nz/mouse.htm

CITATION(KaTZe @ 5 Oct 2009, 15:49) *

2> Le plus dur, c'est de ne pas changer la variable quand les conditions de sortie ne sont pas remplies (vitesse excessive, avion au sol etc etc ...)
Cherche dans le post des copains utilisant des pits réels, ils ont du faire çà pour éviter les états inversés.

Effectivement. Pour ça, je prévois d'intercepter la commande via sioc (si c'est possible) en passant par une variable "perso" et de en propager l'ordre que si certaines conditions sont respectées (gérées via des variables interne au sioc).

CITATION(KaTZe @ 5 Oct 2009, 15:49) *

3> Le problème aussi, c'est (surtout pour les volets), que tu vas devoir toujours utiliser ton clavier PC2 pour manoeuvrer ces pièces. Pour les volets, çà peut être utile de les avoir au joystick ...

Ca c'est effectivement un bon problème. J'ai pas encore de solution, mais je vais considérer que dans le pire des cas je me trouve dans la même situation que les heureux ayant un pit avec des inter réels .....

CITATION(KaTZe @ 5 Oct 2009, 15:49) *

4> Profite des commandes à sens unique (volet ou train full down) pour recaler ta variable d'état.
Pour cela quand tu envoie les commandes "&Lockoncmd = 431" ou "&Lockoncmd 145" , force aussi l'état de "&SW_Gear_position = -1"

Merci du conseil, c'est effectivement préférable.

Encore merci pour votre aide à tous.

wavetowel2.gif

Ce message a été modifié par windrider - 5 Oct 2009, 20:16.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
KaTZe
post 6 Oct 2009, 09:32
Message #9






Indicatif : RW-24
Messages : 1,589
Inscrit : 18/11/07
Lieu : Villelaure
Membre n° 2,712

CITATION(windrider @ 5 Oct 2009, 21:07) *

CITATION(KaTZe @ 5 Oct 2009, 15:49) *

2> Le plus dur, c'est de ne pas changer la variable quand les conditions de sortie ne sont pas remplies (vitesse excessive, avion au sol etc etc ...)
Cherche dans le post des copains utilisant des pits réels, ils ont du faire çà pour éviter les états inversés.

Effectivement. Pour ça, je prévois d'intercepter la commande via sioc (si c'est possible) en passant par une variable "perso" et de en propager l'ordre que si certaines conditions sont respectées (gérées via des variables interne au sioc).



Deux remarques :
1> En fait SIOC n'intercepte pas la commande, mais SIOC doit être vu comme un serveur central auquel se connecte Lock-On, GaugeComposer, les IO card.
Donc les instructions de GC, vont toutes vers SIOC et font changer l'état d'une variable.
Personellement, j'utilise des variable SW_xxxx (Switch) initialisée à 1, que GC fait varier entre +1/-1 via la commande link ... value *=-1 ... set

L'instruction de commande de LO se trouve dans (SIOC) dans le block d'instruction de la variable SW_xxxx.
Il est donc possible d'inclure des conditions dans ce block d'instructions.

2> Cependant, je ne pense pas que ton problème soit de filtrer la commande (Lock on s'en chargera pour toi gap.gif
Mais plutôt de filtrer le changement de la variable d'état qui va contrôler le voyant de GC.

Je m'explique :
- tu est à 800 km/h et tu click sur la sortie de train.
- ta variable SW_Gear dans SIOC passe de +1 à -1
- le script de SIOC envoie la commande 145 (je crois) à Lock-On

- Lock-On ne fait rien.

- Par contre si dans GC, tu as le voyant "trois vertes" lié à SW_Gear tu va être en erreur.
- Il te faut donc créer une variable "LED_3vertes" qui va commander le voyant dans GC

Ton script sous SW_Gear va devenir quelquechose comme :

CODE
Var 0800, name SW_Gear_position , value -1
{
IF &IAS < 13800
  {
   IF ...(autre codition)
   &LED_3vertes = &LED_3vertes * -1
   }
}


Miaou smile.gif




--------------------
120th Black Kite : "Mochibus et Pollutis"
Image IPB
M-05 KaTZe

User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Maraudeur
post 6 Oct 2009, 12:32
Message #10




Commandant de la 92nd Kodiak AF

Indicatif : JR-22
Messages : 4,204
Inscrit : 4/12/04
Lieu : Monnaie
Membre n° 17

Ben ça rejoint ce que l'on fait déjà dans nos pits whistling.gif

Ce qui me fait dire que l'utilisation d'une IO-Card rend tout beaucoup plus simple...d'autant qu'elles ne sont pas excessives innocent.gif
J'enverrai un bout de mon SSI plus tard...

--------------------
Image IPB
Cerbro Tvo Utere! Sin Minvs, Parietes Asperget...

User is offlineProfile CardPM
Go to the top of the page
+Quote Post

2 Pages V  1 2 >
Reply to this topicStart new topic
1 utilisateur(s) sur ce sujet (1 invité(s) et 0 utilisateur(s) anonyme(s))
0 membre(s) :
 

Haut de page · Retour à l'accueil · Contacter le Webmestre Nous sommes le : 27/04/24 - 10:43