Plantage programme

Questions de programmation / Offset FSUIPC et IOCP

Plantage programme

Messagede maki7266 » Sam 5 Nov 2011 00:32

Bonsoir, nouveau en programmation SIOC je rencontre un problème avec un programme. J'ai construit un petit GPS avec des doubles encodeurs et des boutons poussoir. Voici un extrait de mon code :

Var 0001, name Jostick66, Link FSUIPC_OUT, Offset $3340, Length 4

Var 0002, name COMVLOC_BAS, Link IOCARD_ENCODER, Input 29, Aceleration 2, Type 2
{
IF &COMVLOC_BAS > 0
{
&Jostick66 = TOGGLE 1
}
ELSE
{
IF &COMVLOC_BAS < 0
{
&Jostick66 = TOGGLE 0
}
}
}

Var 0003, name GPS_BAS, Link IOCARD_ENCODER, Input 20, Aceleration 2, Type 2
{
IF &GPS_BAS > 0
{
&Jostick66 = TOGGLE 7
}
ELSE
{
IF &GPS_BAS < 0
{
&Jostick66 = TOGGLE 6
}
}
}

Var 0004, name GPS_HAUT, Link IOCARD_ENCODER, Input 24, Aceleration 2, Type 2
{
IF &GPS_HAUT > 0
{
&Jostick66 = TOGGLE 8
}
ELSE
{
IF &GPS_HAUT < 0
{
&Jostick66 = TOGGLE 9
}
}
}

Var 0005, name COMVLOC_HAUT, Link IOCARD_ENCODER, Input 33, Aceleration 2, Type 2
{
IF &COMVLOC_HAUT > 0
{
&Jostick66 = TOGGLE 4
}
ELSE
{
IF &COMVLOC_HAUT < 0
{
&Jostick66 = TOGGLE 5
}
}
}

Var 0006, name COMVLOC_PUSH, Link IOCARD_SW, Input 32, Type P
{
&Jostick66 = TOGGLE 3
}

Var 0007, name GPS_PUSH, Link IOCARD_SW, Input 22, Type P
{
&Jostick66 = TOGGLE 10
}

J'envoi bien les infos à FSUIPC pour les touches (j'ai attribué les raccourci clavier pour le GNS RealityXP). Tout fonctionne à merveille pendant environ 1 min. Puis plus rien, je tourne les boutons et plus rien ne se passe. J'ai testé mon programme avec IOCP Console et je remarque qu'après quelques seconde la variable Jostick66 ne passe plus. Voici le phénomène :

Image

Je galère depuis quelque temps. Pouvez vous m'aider ? Merci.

Laurent.
Dernière édition par maki7266 le Dim 6 Nov 2011 12:46, édité 1 fois.
maki7266
 
Messages: 9
Inscription: 18/11/09

Re: Plantage programme

Messagede stevelep » Sam 5 Nov 2011 01:02

Hello,

Peut-être qu'il y un problème de saturation de données. Les encodeurs envoie rapidement de multiples
pression de touche et il se peux que le buffer soit dépassé. Ceci peut-être aussi par la fonction
toggle qui remet la valeur à zéro après un certain temps de latence.
Tu peux remarquer dans le log que la variable joystick ne revient pas tout de suite à zéro et que pendant ce temps
les impulsions de l'encodeur n'ont plus d'effet: 4ème ligne, après la valeur 128, 5 impulsions GPS_BAS ont le temps de passer avant que la variable ne revienne à zéro -> voila le problème.

Essaai de la remplacer par un SETBIT CLEARBIT

Var 0003, name GPS_BAS, Link IOCARD_ENCODER, Input 20, Aceleration 2, Type 2
{
IF &GPS_BAS > 0
{
&Jostick66 = SETBIT 7
&Jostick66 = CLEARBIT 7
...

IL se peux que cela soit plus rapide qu'un toggle.

Ce n'est que des suppositions, il faut que tu essaies déjà avec juste une de tes commandes

BOB

PS:
le ELSE ne sert à rien dans tes lignes de code, mieux vaut l'enlever
( les conditions <0 et >0 ne se chevauchent pas donc elles sont totalement indépendantes
tu peux donc les écrire à la suite, l'une après l'autre, sans problème)

Var 0002, name COMVLOC_BAS, Link IOCARD_ENCODER, Input 29, Aceleration 2, Type 2
{
IF &COMVLOC_BAS > 0
{
&Jostick66 = TOGGLE 1
}
IF &COMVLOC_BAS < 0
{
&Jostick66 = TOGGLE 0
}
}
Avatar de l’utilisateur
stevelep
Administrateur du site
 
Messages: 2075
Inscription: 27/03/09
Localisation: LSGN Neuchâtel, Suisse

Re: Plantage programme

Messagede maki7266 » Sam 5 Nov 2011 09:44

Salut et merci pour ta réponse. Le setbit et clearbit ne passe pas les infos vers FSUIPC (pourquoi ?). La seule fonction utilisable est la TOGGLE. Je pense avoir trouvé la solution :
j'ai rajouté des DELAY de 1 seconde pour passer 0 à la variable joystick66. Pour l'instant (testé 5 min) ça fonctionne.
maki7266
 
Messages: 9
Inscription: 18/11/09

Re: Plantage programme

Messagede stevelep » Sam 5 Nov 2011 10:25

Le setbit et clearbit ne passe pas les infos vers FSUIPC (pourquoi ?).

Parce que cette fois ça va trop vite ...

Tu veux dire un DELAY d' 1 milliseconde plutôt ?

publie la ligne de ton code avec le DELAY, ça peut intéresser quelqu'un.


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

Re: Plantage programme

Messagede maki7266 » Sam 5 Nov 2011 10:30

Voici le programme complet. Attention je n'ai pas encore testé sur la durée. D'ailleur je pense qu'il suffit de passer la variable Joystick66 à 0 en lieu et place du DELAY (à tester).

// *****************************************************************************
// * Config_SIOC ver 4.01 - By Manuel Velez - www.opencockpits.com
// *****************************************************************************
// * FileName : gps.txt
// * Date : 05/11/2011



Var 0001, name Jostick66, Link FSUIPC_OUT, Offset $3340, Length 4

Var 0002, name COMVLOC_BAS, Link IOCARD_ENCODER, Input 29, Aceleration 2, Type 2
{
IF &COMVLOC_BAS > 0
{
&Jostick66 = TOGGLE 1
&Jostick66 = DELAY 0 ,10
}
IF &COMVLOC_BAS < 0
{
&Jostick66 = TOGGLE 0
&Jostick66 = DELAY 0 ,10
}
}

Var 0003, name GPS_BAS, Link IOCARD_ENCODER, Input 20, Aceleration 2, Type 2
{
IF &GPS_BAS > 0
{
&Jostick66 = TOGGLE 7
&Jostick66 = DELAY 0 ,10
}
IF &GPS_BAS < 0
{
&Jostick66 = TOGGLE 6
&Jostick66 = DELAY 0 ,10
}
}

Var 0004, name GPS_HAUT, Link IOCARD_ENCODER, Input 24, Aceleration 2, Type 2
{
IF &GPS_HAUT > 0
{
&Jostick66 = TOGGLE 8
&Jostick66 = DELAY 0 ,10
}
IF &GPS_HAUT < 0
{
&Jostick66 = TOGGLE 9
&Jostick66 = DELAY 0 ,10
}
}

Var 0005, name COMVLOC_HAUT, Link IOCARD_ENCODER, Input 33, Aceleration 2, Type 2
{
IF &COMVLOC_HAUT > 0
{
&Jostick66 = TOGGLE 4
&Jostick66 = DELAY 0 ,10
}
IF &COMVLOC_HAUT < 0
{
&Jostick66 = TOGGLE 5
&Jostick66 = DELAY 0 ,10
}
}

Var 0006, name COMVLOC_PUSH, Link IOCARD_SW, Input 32, Type P
{
&Jostick66 = TOGGLE 3
&Jostick66 = DELAY 0 ,10
}

Var 0007, name GPS_PUSH, Link IOCARD_SW, Input 22, Type P
{
&Jostick66 = TOGGLE 10
&Jostick66 = DELAY 0 ,10
}

Var 0008, name POW, Link IOCARD_SW, Input 14, Type P
{
&Jostick66 = TOGGLE 13
&Jostick66 = DELAY 0 ,10
}

Var 0009, name COM_FLIP, Link IOCARD_SW, Input 9, Type P
{
&Jostick66 = TOGGLE 11
&Jostick66 = DELAY 0 ,10
}

Var 0010, name NAV_FLIP, Link IOCARD_SW, Input 15, Type P
{
&Jostick66 = TOGGLE 12
&Jostick66 = DELAY 0 ,10
}

Var 0011, name CDI, Link IOCARD_SW, Input 16, Type P
{
&Jostick66 = TOGGLE 14
&Jostick66 = DELAY 0 ,10
}

Var 0012, name OBS, Link IOCARD_SW, Input 17, Type P
{
&Jostick66 = TOGGLE 15
&Jostick66 = DELAY 0 ,10
}

Var 0013, name MSG, Link IOCARD_SW, Input 12, Type P
{
&Jostick66 = TOGGLE 16
&Jostick66 = DELAY 0 ,10
}

Var 0014, name FPL, Link IOCARD_SW, Input 13, Type P
{
&Jostick66 = TOGGLE 17
&Jostick66 = DELAY 0 ,10
}

Var 0015, name PROC, Link IOCARD_SW, Input 1, Type P
{
&Jostick66 = TOGGLE 19
&Jostick66 = DELAY 0 ,10
}

Var 0016, name NAV, Link IOCARD_SW, Input 2, Type P
{
&Jostick66 = TOGGLE 18
&Jostick66 = DELAY 0 ,10
}

Var 0017, name DTO, Link IOCARD_SW, Input 7, Type P
{
&Jostick66 = TOGGLE 23
&Jostick66 = DELAY 0 ,10
}

Var 0018, name MNU, Link IOCARD_SW, Input 0, Type P
{
&Jostick66 = TOGGLE 22
&Jostick66 = DELAY 0 ,10
}

Var 0019, name CLR, Link IOCARD_SW, Input 6, Type P
{
&Jostick66 = TOGGLE 21
&Jostick66 = DELAY 0 ,10
}

Var 0020, name ENT, Link IOCARD_SW, Input 5, Type P
{
&Jostick66 = TOGGLE 20
&Jostick66 = DELAY 0 ,10
}

Var 0021, name RNG_DEC, Link IOCARD_SW, Input 8, Type P
{
&Jostick66 = TOGGLE 24
&Jostick66 = DELAY 0 ,10
}

Var 0022, name RNG_INC, Link IOCARD_SW, Input 3, Type P
{
&Jostick66 = TOGGLE 25
&Jostick66 = DELAY 0 ,10
}
maki7266
 
Messages: 9
Inscription: 18/11/09

Re: Plantage programme

Messagede maki7266 » Dim 6 Nov 2011 12:46

Bon, je confirme. Après un vol LFMP - LFMT ausun probleme de fonctionnement, le programme tourne nickel. Si vous avez des améliorations merci de me les indiquer.

Laurent.
maki7266
 
Messages: 9
Inscription: 18/11/09

Re: Plantage programme

Messagede stevelep » Dim 6 Nov 2011 15:10

Pour être puriste, tu devrais mettre SETBIT à la place des TOGGLE puisque tu court-circuites
le retour à zéro du TOGGLE avec ta commande DELAY, donc c'est plus vraiment un TOGGLE.

Content que ça marche

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


Retourner vers Programmation Sioc





Qui est en ligne

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