Problème de reconnaissance des variables IOCP

Questions de programmation / Offset FSUIPC et IOCP

Problème de reconnaissance des variables IOCP

Messagede jolepinceau » Mer 5 Fév 2014 23:39

Apres l'aide de Denis, j'ai pu connecter mon iocp server à fly..

http://www.enlu.fr/sioc.html


je suis en train de tester quelques variables et j'ai un problème..

Les inters ( style frein de parking répondent bien du server au fsx , la manette bouge nikel)

par contre j'ai voulu tester les autobrakes en changeant directement sur la console IOCP les valeurs de la variable 3220 et en appuyant sur send.. rien ne se passe sur l’écran du tableau de bord de fsx .. la manette autobrakes ne bouge pas.

Par contre quand avec ma souris je clique sur la manette auto brakes, 1,2,3,max et rto les valeurs sont reconnues dans iocp..
voici la copie d’écran de celà:

http://www.enlu.fr/iocp.html

Que se passe t'il..

ps est ce que par la suite c'est bien un encodeur gray ( que j'ai recu) qu'il faut pour la commande d'autobrakes ?

Merci de votre aide
rigolus
jolepinceau
 
Messages: 35
Inscription: 29/01/14

Re: probleme de reconnaissance des variables iocp

Messagede stevelep » Jeu 6 Fév 2014 00:06

Hello,

peut-tu poster ton code SIOC et nous dire quelle variable tu commandes ?

Je ne suis pas un spécialiste des liners mais il me semble que l'autobrake
c'est un interrupteur rotatif à 5 (?) positions. Donc 5 entrées switch sur une carte master
du même groupe.

Les encodeurs rotatifs n'ont pas d'arrêt, donc il est impossible de connaitre leur position
absolue, il ne servent qu'à augmenter/diminuer des valeurs relatives comme le cap, la course
l'altitude du PA, les fréquences radios etc.
Mais on ne peut pas l'utiliser pour régler des positions fixes.

BOB
Avatar de l’utilisateur
stevelep
Administrateur du site
 
Messages: 2075
Inscription: 27/03/09
Localisation: LSGN Neuchâtel, Suisse

Re: probleme de reconnaissance des variables iocp

Messagede fab » Jeu 6 Fév 2014 08:39

Oui, Bob a raison, pas d'encodeur sur l'auto break !

Fabien
Avatar de l’utilisateur
fab
 
Messages: 4414
Inscription: 26/12/12
Localisation: Roubaix

Re: probleme de reconnaissance des variables iocp

Messagede jolepinceau » Jeu 6 Fév 2014 09:49

Bonjour,
D'abord, merci de vos réponses..

pour l'encodeur j'avais un doute mais j'avais lu sur le site de simucockpit:
http://www.simucockpit.fr/encodpince.htm

Bon en ce qui concerne mon problème j'essaye juste en ce moment de faire bouger sur le 737 la manette autobrakes en envoyant par la touche " send" de iocp console variable 3220 (voir code sioc suivant, code que j'ai juste téléchargé tout fait pour test)

http://www.enlu.fr/autobrakes.html

l'image jointe ci apres montre la réaction de iocp console quand je bouge la manette de autobrakes RTO, OFF, 1,2,3,MAX
sur l’écran de fsx , la, ça fonctionne; mais pas dans l'autre sens...

par contre aucun problème pour la manipulation des inters ( frein de park, landing, yaw damper .. etc..

peut être que je ne teste pas cette commande de la bonne manière?

ps: je suis débutant et peut être que mes questions vous sembles bizarres etonneyeux

Merci de vos réponses à venir .
jolepinceau
 
Messages: 35
Inscription: 29/01/14

Re: probleme de reconnaissance des variables iocp

Messagede razmott » Jeu 6 Fév 2014 11:25

Bonjour,
une précision pour Jo: le code iFly que tu utilises a deux valeurs de variables: 1175 quand on tourne le bouton dans le sens des aiguilles d'une montre, et 1174 pour l'autre sens, donc en principe un encodeur pourrait faire ça. Mais ce n'est pas du tout pratique car on ne sait jamais où on en est, d'accord il y a les LEDs qui indiquent la position, mais ce n'est pas du tout pratique, il faut un commutateur rotatif à 12 positions, qu'on bloque à 6 positions. Et pour en faire un encodeur, capable d'envoyer 1175 dans un sens et 1174 dans l'autre, j'ai effectivement utilisé une pince à linge, vieux truc expliqué sur simucockpit, plus utilisé depuis longtemps, mais qui temps en temps peut être utile. En tous cas, pour ce code iFly un peu spécial, qui ne prévoit que INCREASE et DECREASE, on ne peut pas faire autrement. Pour les autres liners, c'est plus clair, à une position du contacteur rotatif correspond une position de l'autobrake.
Mon code est donc le suivant:
Var 3220, name IO_A_BRK, Link IOCP, Offset 796 // Auto Brake Status
{
IF &IO_A_BRK = 0 // position RTO
{
&ABRK_RTO_LED = 1
&ABRK_OFF_LED = 0
}
IF &IO_A_BRK = 1 // Position OFF
{
&ABRK_OFF_LED = 1
&ABRK_RTO_LED = 0
&ABRK_POS1_LED = 0
}
IF &IO_A_BRK = 2 // Position 1
{
&ABRK_POS1_LED = 1
&ABRK_OFF_LED = 0
&ABRK_POS2_LED = 0
}
IF &IO_A_BRK = 3 // Position 2
{
&ABRK_POS2_LED = 1
&ABRK_POS1_LED = 0
&ABRK_POS3_LED = 0
}
IF &IO_A_BRK = 4 // Position 3
{
&ABRK_POS3_LED = 1
&ABRK_POS2_LED = 0
&ABRK_MAX_LED = 0
}
IF &IO_A_BRK = 5 // Position MAX
{
&ABRK_MAX_LED = 1
&ABRK_POS3_LED = 0
}
}

Var 3222, name ABRK_RTO_LED, Link IOCARD_OUT, Output 220 // LED de la position RTO

Var 3223, name ABRK_OFF_LED, Link IOCARD_OUT, Output 221 // Position OFF

Var 3224, name ABRK_POS1_LED, Link IOCARD_OUT, Output 222

Var 3225, name ABRK_POS2_LED, Link IOCARD_OUT, Output 223

Var 3226, name ABRK_POS3_LED, Link IOCARD_OUT, Output 224

Var 3227, name ABRK_MAX_LED, Link IOCARD_OUT, Output 225

Var 3230, name ABRK_INCR_SW, Link IOCARD_SW, Input 277
{
IF &ABRK_INCR_SW = 1
{
&AA_COMMANDS = 1175
&AA_COMMANDS = -2
}
}

Var 3231, name ABRK_DECR_SW, Link IOCARD_SW, Input 278
{
IF &ABRK_DECR_SW = 1
{
&AA_COMMANDS = 1174
&AA_COMMANDS = -2
}
}


Un peu lourdaud, mais ça marche.

Claude
Avatar de l’utilisateur
razmott
 
Messages: 513
Inscription: 11/04/09

merci razmot mais oulala

Messagede jolepinceau » Jeu 13 Fév 2014 23:35

merci razmot pour ta réponse..

bon, depuis que ma femme à perdu la boite de pinces a linge, ( du coup, par ce temps il est très désagréable de porter des vêtements mouillés .mais. bon...) je n'ai donc pas pu fabriquer ce système avec un commutateur rotatif..

je me suis dit, je vais quand même mettre à profit le script précédent pour tester ..

je me suis dit, sans doute bêtement.. qu'un encodeur cts288 gray branché à deux inputs consécutives de ma carte input open cockpit ( 14 et 15 et masse branchée sur la GRD du groupe) aurait peut être aurais fonctionné...

script sioc de razmot juste modifié sur les lignes input:

http://www.enlu.fr/autobrakessioc.html

mais voila, en tournant l'encodeur, voila que rien ne se passe et sioc s’arrête:

http://www.enlu.fr/siocbug.html

j'ai bien peur de ne pas avoir tout compris.. faut il vraiment fabriquer cet outil de fortune avec la pince à linge ou un encodeur cts 288 branché sur la carte input peut il le remplacer?

bou diou.. ifly 737 builder et ses variables...

merci encore de votre aide
jolepinceau
 
Messages: 35
Inscription: 29/01/14

Re: probleme de reconnaissance des variables iocp

Messagede razmott » Ven 14 Fév 2014 11:19

Bonjour Jo,
tu peux très bien utiliser un encodeur CTS288, il suffit de dire que quand il tourne dans un sens (>0), il envoie la valeur 1175 à la variable et dans l'autre sens (<0), il envoie 1174

Var 0001, name ABRK_ENC, Link IOCARD_ENCODER, Input 001, Aceleration 1, Type 2
{
IF &ABRK_ENC > 0
{
&AA_COMMANDS = 1175
&AA_COMMANDS = -1
}
ELSE
{
&AA_COMMANDS = 1174
&AA_COMMANDS = -1
}
}

N'oublies pas d'attribuer deux entrées consécutives à l'encodeur, si la première est 001, il lui faudra aussi la 002, bien qu'on ne déclare que la première dans le code.

Ca marchera certainement, mais ce n'est pas très pratique à utiliser.

Claude
Avatar de l’utilisateur
razmott
 
Messages: 513
Inscription: 11/04/09

Re: probleme de reconnaissance des variables iocp

Messagede jolepinceau » Sam 15 Fév 2014 00:43

Grand merci!!

ca marche..!!

que c'est plaisant de voir bouger enfin ce bouton autobrakes dans les deux sens sur l’écran!!

juste si je n'abuse pas trop, j'aimerais bien avoir le script pour pouvoir assigner une diode ( branchée sur ma carte output opencockpit) qui correspond au voyant AUTOBRAKES RTO..

ps: effectivement ce n'est pas super pratique car à chaque impulsion du cts288, l'angle n'est pas suffisant pour que le bouton se trouve en face du chiffre de l'autobrakes et parfois le bouton sur l’écran s'affole un peu yeuxhaut

En tous les cas encore un grand merci, cela faisait un moment que je m'arrachais les cheveux.. et quand on débute c'est pas simple
jolepinceau
 
Messages: 35
Inscription: 29/01/14

Re: probleme de reconnaissance des variables iocp

Messagede razmott » Sam 15 Fév 2014 10:57

Bonjour Jo,
content que ça marche !
Pour les LEDs, RTO ou autres, on se sert de la variable IO 796, qui analyse l'état de l'autobrake. Si cette variable est = 0, c'est que l'autobrake est sur RTO, si elle est égale à 1, l'autobrake est sur la position OFF, etc... Et quand cette variable =0 cela allume la LED 'RTO", etc... On ne peut pas faire plus simple, mais on peut faire plus logique :-) Je ne comprend pas pourquoi iFly n'a pas prévu ici un commutateur au lieu d'un encodeur, c'est la seule anomalie flagrante que j'ai rencontré avec ce SDK, les 900 autres commandes possibles sur leur 737 ne posent aucun problème, ni de logique, ni d'ergonomie. Ici, il faut tourner le bouton sans s'occuper de savoir où il en est, regarder les LEDs, et quand la RTO s'allume, on se dit "je suis arrivé sur RTO". Donc oublier les graduations et ne s'occuper que des LEDs, on s'attendrait à l'inverse, mais bon...

Copie de mon code pour les LEDs (disponible sur SimuCockpit.fr)


Var 3220, name IO_A_BRK, Link IOCP, Offset 796 // Auto Brake Status
{
IF &IO_A_BRK = 0 // position RTO
{
&ABRK_RTO_LED = 1
&ABRK_OFF_LED = 0
}
IF &IO_A_BRK = 1 // Position OFF
{
&ABRK_OFF_LED = 1
&ABRK_RTO_LED = 0
&ABRK_POS1_LED = 0
}
IF &IO_A_BRK = 2 // Position 1
{
&ABRK_POS1_LED = 1
&ABRK_OFF_LED = 0
&ABRK_POS2_LED = 0
}
IF &IO_A_BRK = 3 // Position 2
{
&ABRK_POS2_LED = 1
&ABRK_POS1_LED = 0
&ABRK_POS3_LED = 0
}
IF &IO_A_BRK = 4 // Position 3
{
&ABRK_POS3_LED = 1
&ABRK_POS2_LED = 0
&ABRK_MAX_LED = 0
}
IF &IO_A_BRK = 5 // Position MAX
{
&ABRK_MAX_LED = 1
&ABRK_POS3_LED = 0
}
}

Var 3222, name ABRK_RTO_LED, Link IOCARD_OUT, Output 220 // LED de la position RTO

Var 3223, name ABRK_OFF_LED, Link IOCARD_OUT, Output 221 // Position OFF

Var 3224, name ABRK_POS1_LED, Link IOCARD_OUT, Output 222

Var 3225, name ABRK_POS2_LED, Link IOCARD_OUT, Output 223

Var 3226, name ABRK_POS3_LED, Link IOCARD_OUT, Output 224

Var 3227, name ABRK_MAX_LED, Link IOCARD_OUT, Output 225


Claude
Avatar de l’utilisateur
razmott
 
Messages: 513
Inscription: 11/04/09

Re: probleme de reconnaissance des variables iocp

Messagede jolepinceau » Mar 18 Fév 2014 23:45

Merci beaucoup!

De fait, je vais me fier aux leds pour les positions de l'autobrake .

merci encore, du coup j'ai bien avancé grâce à toi.

merci affiche
jolepinceau
 
Messages: 35
Inscription: 29/01/14


Retourner vers Programmation Sioc





Qui est en ligne

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

cron