explications sur variable interne C0 ?

Questions de programmation / Offset FSUIPC et IOCP

explications sur variable interne C0 ?

Messagede pierre01 » Sam 29 Oct 2011 10:42

Bonjour,


Ayant un bug dans notre code, je suis en train d'essayer de comprendre une routine et je n'arrive pas à comprendre ce que veux dire la ligne :
C0 = &fs_avionics = 0

Comment C0 peut-il prendre la valeur de "&fs_avionics" et en même temps la valeur "0" ?
Merci de m'éclairer
A+
Pierre.
Avatar de l’utilisateur
pierre01
 
Messages: 1774
Inscription: 19/04/09
Localisation: Vers Vesoul (Haute Saône)

Re: explications sur variable interne C0 ?

Messagede stevelep » Sam 29 Oct 2011 15:05

C0 est une variable conditionelle elle prends la valeur "vrai" ou "faux"
Donc ce n'est pas une variable numérique mais une variable logique.
On ne peux pas faire de calcul (+ - / *) avec ces variables mais tester leurs conditions
avec des opérateurs logiques (AND OR ...)

Pour écrire une condition on met

C0 = &fs_avionic = 0

ce qui veux dire que C0 est "vrai" si &fs_avionic = 0
sinon C0 est "faux".

Pour tester la condition, on a pas besoin de noter IF C0 = true ou false, on écrit simplement
IF C0 (sous entendu si la condition de C0 est vrai)
ou IF NOT C0 (sous entendu si la condition de C0 est fausse)

On peux aussi mettre 2 conditions:

C0 = &fs_avionic = 0
C1 = &fs_gear = 16383

IF C0 AND C1 (si les 2 conditions sont remplies)
IF C0 OR C1 (si une des 2 est remplie)

Voila

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

Re: explications sur variable interne C0 ?

Messagede pierre01 » Sam 29 Oct 2011 15:33

Merci BOB, je comprends mieux rigolus
A+
Pierre.
Avatar de l’utilisateur
pierre01
 
Messages: 1774
Inscription: 19/04/09
Localisation: Vers Vesoul (Haute Saône)

Re: explications sur variable interne C0 ?

Messagede stevelep » Dim 30 Oct 2011 10:51

D'ailleurs la vrai utilité de ces variables C0 C1 C2, c'est quand il y a plusieurs conditions.
S'il y a qu'une seule condition, il est préférable d'utiliser un IF normal

C0 = &fs_avionic = 0
IF C0

est remplacé simplement par

IF &fs_avionic = 0

Si tu as une condition à multiples paramètres genre "Main Warning" tu peux utiliser les C0 en cascade avec OR

C0 = &fs_avionic = 0
C1 = &fs_gear = 16383
C2 = C0 OR C1
C1 = &fs_oil > 10000
C2 = C2 OR C1
C1 = &fs_press < 100
C2 = C2 OR C1
C1 = &fs_resetalarm = 0
C2 = C2 OR C1
etc....

IF C2
{
&warning = 1
}

2

Si tu une condition ou tous les critères doivent être rempli tu fait une cascade avec des AND

C0 = &fs_avionic = 0
C1 = &fs_gear = 16383
C2 = C0 AND C1
C1 = &fs_oil > 10000
C2 = C2 AND C1
C1 = &fs_press < 100
C2 = C2 AND C1
C1 = &fs_starter = 1
C2 = C2 AND C1
etc....

IF C2
{
&starter = 1
}

Ca peux être utilisé pour programmer le starter par exemple avec de multiples conditions nécessaires
Si l'une des condition manque le starter marche pas, contrairement à FS qui démarre tout le temps

Cela te fait une longue liste de variables internes mais tu n'emploies qu'un seul IF
Sans ça tu doit utiliser des IF imbriqués l'un dans l'autre et ça complique passablement le code ...


Voila

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

Re: explications sur variable interne C0 ?

Messagede pierre01 » Dim 30 Oct 2011 12:02

Re merci BOB, je garde précieusement cette explication rigolus
A+
Pierre.
Avatar de l’utilisateur
pierre01
 
Messages: 1774
Inscription: 19/04/09
Localisation: Vers Vesoul (Haute Saône)

Re: explications sur variable interne C0 ?

Messagede algue14 » Dim 30 Oct 2011 12:38

Superbob!!


Copié collé illico dans mes " trucs et astuces"

merci affiche
A+

Alain
Avatar de l’utilisateur
algue14
 
Messages: 1626
Inscription: 20/04/09
Localisation: Caen ; Normandie


Retourner vers Programmation Sioc





Qui est en ligne

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