5- les variables de SIOC


Des variables liées.

 

Les Var0001 à Var0004 qu'on voit dans notre fichier .ssi sont des variables propres à SIOC, définies comme le souhaite l'utilisateur. Ces variables SIOC peuvent être liées à pas mal de choses (d'où le mot Link qui revient souvent) :

 

 - on peut les lier à FSUIPC, donc leur demander d'agir sur un offset de la liste de Peter Dowson, et ce, dans tous les sens, la variable SIOC va:

 - envoyer (ou écrire) une information à FSUIPC, ce sera une variable "liée" à FSUIPC OUT,
 - elle peut aussi recevoir (ou lire) une information de FSUIPC et ce sera FSUIPCIN

 - ou sera prête à faire les deux, cas le plus courant, FSUIPC INOUT)

 

Note: on emploie le plus souvent le nom de "variable" , mais on rencontre aussi le nom "offset", pour désigner la même chose.

 - une variable SIOC peut aussi être "liée" à un élément physique de IOCards: une entrée sur sa carte Master, comme les variables commandant les interrupteurs, ou une sortie (LED), ou un afficheur (Display) , ou une carte additionnelle comme la carte Servos, la carte Stepper, etc... La variable est précédée dans ce cas d'une icône "carte verte", c'est le cas de nos variables 0001 à 0004, liées à "IOCard Switches".

 

- une variable SIOC peut également être liée à un module IOCP (icône "<- -> IOCP" ...)

 

- enfin une variable SIOC peut être liée à rien du tout, et dans ce cas le changement de valeur de la variable en question n'agira que sur elle-même. Une variable non liée est précédée d'un carré blanc.

 

 Comment définir un numéro de variable ?

 

 SIOC peut admettre 9999 numéros de variables, numéros définis par l'utilisateur.

 Comme il y a de la place entre 0000 et 9999, on créera des "classes" de variables, ce qui permettra d'ajouter facilement des variables nouvelles, et de faciliter la lecture du code.

 par exemple

 0001 à 0299 pour les variables de commande FS ($...) ,

 0300 à 0399 pour les subroutines,

 0400 à 0499 pour les interrupteurs.... etc

et si on a besoin de plus de 100 variables pour les interrupteurs par exemple ? On ajoute un 1 et on commence une série 1400 à 1499... Pour certains types d'avions complexes, on pourra aussi grouper les variables par système avion, par exemple toutes les variables des moteurs ensemble, etc...

 

 

Des variables "nommées".

 

TRES IMPORTANT: les variables peuvent n'être définies que par un numéro. Pas de problème pour un très petit programme. Mais lorsque le fichier .ssi grossit, et cela vient très vite, il devient impossible de comprendre le programme à la lecture de simples numéros, on ne sait plus à quoi cela correspond, il faut chercher plus haut, ou plus bas (?) dans le programme pour avoir la définition de ce numéro. Pour éviter cet écueil, SIOC permet de nommer les variables, c'est l'objet de la fenêtre " NAME" à côté du numéro.

 

Nommer nos variables est une habitude à prendre dès maintenant, pour toutes les variables, cela permet de se relire facilement, mais cela permet aussi d'échanger des fichiers avec d'autres utilisateurs, qui sans variables nommées seraient complètement perdus.

 

Dans un même programme, mieux vaut également toujours employer le même langage pour nommer des variables: par exemple toutes les variables d'affichage par LEDs se termineront par _LED. Chacun peut définir le langage qui lui convient, l'essentiel étant que tout le monde le comprenne immédiatement.

 

Pour ma part, mais vous n'êtes nullement obligés de suivre cet exemple, j'ai employé une forme anglaise pour nommer mes variables: la fonction Cap du pilote automatique s’appellera AP_HDG plutôt que CAP_PA, ceci toujours pour faciliter les échanges de fichiers.

 

Exemple:

Mes variables de commande de P3D (qui sont précédées du signe $... dans la fenêtre VAR LINK DATA de Parameters) ont simplement un nom explicite, ainsi que les Subroutines et les variables internes, que nous verrons plus tard.

Exemple: ma variable de train s'appelle GEAR.

 

Mes variables d’interrupteurs se terminent toujours par _SW .

Exemple: ma variable d'interrupteur de train s'appelle GEAR_SW

 

Les variables des sorties Output se terminent toujours par _LED.

Exemple: la variable commandant le témoin vert du train gauche s'appelle LEFT_GEAR_LED

 

Les variables des encodeurs se terminent toujours par _ROT

Exemple: la commande de sélection de cap s'appelle HDG_ROT.

 

Les variables de sons , moins utilisées , se terminent toujours par _SND.

Exemple: la variable appelant le son "ding dong" d'enclenchement des signaux passagers peut s'appeler PAX_SIGN_SND

 

Enfin, plus souvent que nécessaire, les actions sont décrites –en français (!)- derrière le signe // d'un fichier texte, ou dans la case "Description" de la fenêtre des Paramètres vue ci-dessus, ce qui améliore grandement la compréhension.

 

Vous remarquerez vite que le nombre de caractères pour nommer ou pour faire la description d'une variable est limité, mais bien suffisant en pratique. Egalement, le nom d'une variable doit être un seul mot, donc pas d'espace, pas de tiret - , seulement des soulignés _ . Si vous entrez GEAR-SW au lieu de GEAR_SW, la fenêtre de création des paramètres refusera de se fermer, pour vous avertir de l'erreur.

 

CHAPITRE SUIVANT: 6- la variable d'initialisation