Je poste ce topic afin de vous faire part d'un problème que je n'arrive pas à résoudre.
Tout d'abord voici le code qui commande mon train d'atterrissage :
- Code: Tout sélectionner
Var 0010, Name GEAR, Link FSUIPC_INOUT, Offset $0BE8, Length 4 // commande de train
Var 0402, Name GEAR_SW, LINK IOCARD_SW, Input 4 // interrupteur de train
{
IF &GEAR_SW = 1
{
&GEAR = 16383 //on sort le train
}
ELSE
{
&GEAR = 0 // on rentre le train
}
}
Ma variable apparaît bien dans IOCP console et réagit bien lorsque je sort ou rentre le train avec mon clavier ("G").
Or voici ce qu'il se passe dans les log de IOCP console lorsque je joue avec mon switch :
1) Le train est rentré, je passe le switch sur 1
402 = 1 - GEAR_SW
10 = 16383
10 = 0
(la variable prends la bonne valeur une demi-seconde et retourne en l'état initial)
2) Le train est rentré, je passe le switch sur 0
402 = 0 - GEAR_SW
(fondamentalement ça ne sert à rien mais juste pour monter que la variable du switch change d'état),
3)Le train est sorti (à l'aide de mon clavier), je passe le switch sur 1
402 = 1 - GEAR_SW
(juste pour monter que la variable du switch change d'état),
4)Le train est sorti, je passe le switch sur 0
402 = 0 - GEAR_SW
10 = 0
10 = 16383
Voilà en fait je ne comprends pas pourquoi la variable 10 (&GEAR) change deux fois de valeur...ce qui finalement n'entreprend aucune action sur mon avion puisque le temps qui sépare ce double changement est infime.
Mon code ressemble pourtant à tous les codes que j'ai pu lire sur les trains....
Si quelqu'un a une idée ou voit une coquille là dedans....