Condition "ou"

Questions de programmation / Offset FSUIPC et IOCP

Condition "ou"

Messagede FiX » Dim 21 Oct 2012 15:26

Je suis bloqué depuis quelques temps devant un truc pourtant pas bien compliqué que j'ai contourné avec un code "usine à gaz", mais ça ne me plait pas.
Comment traduire simplement la condition "ou" en SIOC?

Si on a, par exemple:
-variable A
-variable B
-variable Z

Je voudrais dire:
Si A= 1, ou si B=1, alors Z=1
i7 2600k/P8P67pro/16Go PC3 17000/RX 580/SSD 250 Go et 120Go/W10x64
https://www.facebook.com/cessna150.sim
Avatar de l’utilisateur
FiX
 
Messages: 4664
Inscription: 8/01/10
Localisation: Reims/Maubeuge

Re: Conditon "ou"

Messagede stevelep » Dim 21 Oct 2012 15:51

Tu mets:

C0 = &A = 1
C1 = &B = 1

IF C0 OR C1
{
&X = 1
}

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

Re: Conditon "ou"

Messagede stevelep » Dim 21 Oct 2012 16:34

Plus simple pour ne LED si il faut juste que ta variable X >0 si A ou B sont positif c'est l'addition

&X = &A + &B

Pas de IF, mais si A et B sont activé ta variable X vaudra 2 ce qui n'est pas gênant pour une LED

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

Re: Conditon "ou"

Messagede FiX » Lun 22 Oct 2012 11:10

Merci!

Je ne savais pas que pour une led, on pouvait utiliser n'importe quelle valeur pourvu que ce soit >0. Je pensais qu'il fallait forcément 1.
Et ben c'est rudement pratique ça, en plus ça va me retirer une épine du pied pour autre chose.
C'est quand même rudement bien fichu ce SIOC là.
C'est que ça pourrait presque commencer à me plaire!

Ouh là, bon sang , qu'es-ce qui m'arrive...une Bobite aigüe! peurefrayé
i7 2600k/P8P67pro/16Go PC3 17000/RX 580/SSD 250 Go et 120Go/W10x64
https://www.facebook.com/cessna150.sim
Avatar de l’utilisateur
FiX
 
Messages: 4664
Inscription: 8/01/10
Localisation: Reims/Maubeuge

Re: Conditon "ou"

Messagede FiX » Lun 22 Oct 2012 11:54

Par contre y'a quand même un truc qui m'embête:

Pour être plus précis, mes variables sont:
-led_start (une sortie master)
-$FSmag1
-$FSmag2
Ce sont les offset du démarreur des moteurs.
Donc quand ils prennent la valeur 4, c'est la position start.

Et moi ce que je veux dire c'est que, si au moins un des deux démarreur est sur start, alors ça allume un voyant start.
Donc:
"si FSmag1=4 ou FSmag2=4 alors led_start = 1, sinon led_start=0".

Donc j'ai fait;

C0=FSmag1=4
C1=FSmag2=4
IF C0 or C1
{
->led_start=1
}

Le problème c'est que ça va m'assigner la valeur 4 à l'offset FSmag. Et je me sers déjà de cet offset pour mon code de magneto, donc il ne faut pas que j'écrive une valeur dans cet offset.
i7 2600k/P8P67pro/16Go PC3 17000/RX 580/SSD 250 Go et 120Go/W10x64
https://www.facebook.com/cessna150.sim
Avatar de l’utilisateur
FiX
 
Messages: 4664
Inscription: 8/01/10
Localisation: Reims/Maubeuge

Re: Conditon "ou"

Messagede stevelep » Lun 22 Oct 2012 12:42

Le code est juste.

Ça va pas modifier les valeurs de fsmag.

La ligne C0 = fsmag = 4 veux dire que la variable conditionnelle sera vraie TRUE si fsmag = 4
idem pour C1 mais ça ne change pas la valeur de fsmag.

C'est un résumé de IF fsmag = 4 THEN C0 = TRUE

Ensuite tu peux utiliser les fonctions logiques AND OR XOR etc...

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

Re: Conditon "ou"

Messagede FiX » Lun 22 Oct 2012 12:59

Impec, merci.
i7 2600k/P8P67pro/16Go PC3 17000/RX 580/SSD 250 Go et 120Go/W10x64
https://www.facebook.com/cessna150.sim
Avatar de l’utilisateur
FiX
 
Messages: 4664
Inscription: 8/01/10
Localisation: Reims/Maubeuge

Re: Conditon "ou"

Messagede Boutondair » Lun 22 Oct 2012 13:40

Bravo Fix, et Merci Bob pour ces explications

David cligneoeil
Image Image
Petit je rêvais que je volerais, maintenant grâce au virtuel je vole !!!!!
Avatar de l’utilisateur
Boutondair
Administrateur du site
 
Messages: 4174
Inscription: 20/04/09
Localisation: Ballans (17) proche de Cognac

Re: Conditon "ou"

Messagede FiX » Mar 23 Oct 2012 23:46

Mais alors comment ça se passe lorsque l'on a plusieurs conditions à programmer en "ou", sachant que l'on a que 3 variables conditionnelles ?

Par exemple:
Si A=1 ou B=1 ou C=2 ou D=3
Alors X=1
i7 2600k/P8P67pro/16Go PC3 17000/RX 580/SSD 250 Go et 120Go/W10x64
https://www.facebook.com/cessna150.sim
Avatar de l’utilisateur
FiX
 
Messages: 4664
Inscription: 8/01/10
Localisation: Reims/Maubeuge

Re: Conditon "ou"

Messagede stevelep » Mar 23 Oct 2012 23:51

C0 = A = 1
C1 = B = 1
C2 = C0 OR C1
C0 = C = 2
C2 = C0 OR C2
C0 = D = 3

IF C0 OR C2
X = 1
ELSE
X = 0

On est obligé de faire comme ça car on ne peux pas mettre plus de 2 variables par ligne et
parce qu'il n'y a que 3 variables conditionnelles: C0 C1 C2

Si tu t'en fiche des valeurs et du résultats tu peux aussi les additionner

L0 = A + B
L1 = C + D
LED = L0 + L1
Avatar de l’utilisateur
stevelep
Administrateur du site
 
Messages: 2075
Inscription: 27/03/09
Localisation: LSGN Neuchâtel, Suisse

Suivante

Retourner vers Programmation Sioc





Qui est en ligne

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