Page 1 sur 1

Choix DME Nav1 ou 2

MessagePosté: Ven 20 Mai 2011 03:04
de ijack30
Bonjour

Je n'arrive pas a gérer mon choix d'affichage sur le DME. Affichage entre la NAV1 ou la NAV2
En effet, avec l'offset 0378, on est supposé pouvoir switcher.
DME1=NAV2 DME2=NAV2

Voici mon code

var 0109, name DME_SW, Link IOCARD_SW, Input 14 // DME Select
Var 0110, name DMEselect, Link FSUIPC_INOUT, Offset $0378, Length 2
{
&DMESelect = &DME_SW + 1
}

DME_SW change bien entre 0 et 1, mais DMESelect ne change pas. Il est a 1 et ne bouge pas.
Si j'envoi 2, il reste a 2.. rien a faire pour lui faire changer d'état.
C'est surement un truc bien simple,mais là, je vois pas.
Merci pour vos lumières

Re: Choix DME Nav1 ou 2

MessagePosté: Ven 20 Mai 2011 06:36
de ganlhi
Bizarre gratgrat
Je viens de regarder mon code, et j'ai la même chose que toi, et ça fonctionne.

Désolé, je n'ai pas de réponse...

Re: Choix DME Nav1 ou 2

MessagePosté: Ven 20 Mai 2011 09:01
de pym-s
Salut,

essaye plutôt ça :
Code: Tout sélectionner
var 0109, name DME_SW, Link IOCARD_SW, Input 14      // DME Select
{
    &DMESelect = &DME_SW + 1
}
Var 0110, name DMEselect, Link FSUIPC_INOUT, Offset $0378, Length 2

Re: Choix DME Nav1 ou 2

MessagePosté: Ven 20 Mai 2011 10:13
de ganlhi
Ah oui exact ecroulerire
Je suis trop c... je n'avais pas vu l'erreur.

ijack30, ton code est dans la variable de l'offset FS, pas dans celle de l'interrupteur. Or un code se déclenche quand sa variable change d'état. Comme tu n'avais pas de code sous ta variable interrupteur, il ne se passait rien quand tu l'utilisais.

En fait, la solution idéale est de répéter le même code dans les deux variables. Comme ça, si tu cliques sur l'interrupteur à l'écran, ton code s'active, et empêche l'offset de prendre une valeur incohérente par rapport à l'interrupteur physique.

Donc :
Code: Tout sélectionner
var 0109, name DME_SW, Link IOCARD_SW, Input 14    // DME Select
{
    &DMESelect = &DME_SW + 1
}

Var 0110, name DMEselect, Link FSUIPC_INOUT, Offset $0378, Length 2
{
    &DMESelect = &DME_SW + 1
}

Re: Choix DME Nav1 ou 2

MessagePosté: Ven 20 Mai 2011 13:52
de ijack30
Merci a vous...
Mais là, je viens d'apprendre quelque chose.. je savais pas que les variables devaient être déclarées suivant un ordre particulier...ca complique un peu les choses...

En tout cas, merci beaucoup. Ca me rassure je comprennais plus.

Re: Choix DME Nav1 ou 2

MessagePosté: Ven 20 Mai 2011 15:20
de ganlhi
Ah non on n'a pas dit ça !
L'ordre des variables n'a aucune importance. Ce qui est important est de placer le code sous la variable dont le changement d'état est censé provoquer l'exécution du code.

Re: Choix DME Nav1 ou 2

MessagePosté: Ven 20 Mai 2011 17:40
de stevelep
Oui le SIOC est orienté évènement

C'est un règle très importante pour comprendre le fonctionnement du SIOC.

C'est l'évènement (un modification de valeur) qui exécute le code dessous la variable.
Pas d'évènement pas d'action.

Si tu prend un exemple très simple:
1 switch 1 LED, le switch allume directement la LED
Le code &led = &switch doit être écrit dessous la variable switch, car c'est le
fait de bouger le switch qui va lancer le code et allumer la led

Si tu mets le code sous la variable led. il ne va rien se passer

Si tu as un code qui est déclanché par plusieurs actions (plusieurs switch etc ...)
Il faut créer une subrutine et renvoyer chaque switch a cette subroutine

Voila

BOB