la console IOCP


Revenons à la Console IOCP, rapidement aperçue en tête de ce tutoriel. Jusque maintenant nous avons visualisé directement dans FS/P3D le résultat de nos essais. C’est très bien quand il s’agit de vérifier le fonctionnement d’un train d’atterrissage, par contre, il y a des cas plus complexes, où on ne « voit » pas ce qui se passe.
C’est là qu’intervient IOCP Console.
Ouvrez FS ou P3D, puis allez à la fenêtre principale de SIOC, cliquez sur le bouton IOCPCONSOLE, puis, dans la fenêtre qui vient de s’ouvrir, cliquez sur CONNECT.
La fenêtre indique alors l’état de toutes les variables que vous avez créées dans le fichier SIOC actuellement en service. Voila un exemple pour un avion quelconque:

Nous pouvons lire que la variable 32 concernant le train d’atterrissage a une valeur décimale de 16383, qui correspond au train sorti. Bien entendu, si nous rentrions le train, la valeur passerait à 0.
Vous pouvez également cliquer sur LOG ON et vous aurez un journal de tout ce qui se passe dans votre FS (très pratique pour traquer des anomalies, elles sautent aux yeux).
Attardons-nous sur la colonne « Binary Value », pleine de 0 et de 1.
Vous savez que les variables de FS et P3D, celles qui sont dans la liste de Peter Dowson, ont une « longueur » de 1, 2 ou 4.
Ce chiffre indique le nombre d’octets de la variable. Un octet, c’est une sorte de mot, constitué de 8 chiffres, les bits.
La colonne Binary Value comporte par défaut 32 zéros, c’est le nombre maximum de bits que peut comporter une variable FS/P3D, puisque les plus grandes ont 4 octets de 8 bits, soit 32 bits.
Quand une variable, ou offset, a deux octets, sa valeur binaire est affichée par 8 chiffres, commençant par la droite, et qui se lisent de droite à gauche (qui a dit « c’est de l’hébreu » ?) On peut numéroter les bits des octets, mais pour que ce soit plus drôle, le premier bit, celui le plus à droite, porte le numéro 0. Donc une variable de deux octets aura une forme:
00000000 00000000
et ces 16 bits en deux octets auront les numéros:
15, 14, 13, 12, 11, 10, 9, 8, et 7, 6, 5, 4, 3, 2, 1, 0
Tout ceci pour vous dire que les variables dites « booléennes » , celles qui ne connaissent que deux états, Ouvert ou Fermé, ou 0 ou 1, se contentent d’un seul bit, quand on allume une LED, la valeur binaire passe de 0 à 1, c’est tout.
C’est plus compliqué quand il s’agit d’afficher la valeur binaire de 16383, comme le train, voyez la succession de 0 et de 1, sur la capture d’écran ci-dessus. Comme la variable du train, $0BE8 a une longueur de 4 octets, soit 32 bits, en fait c’est toute la ligne de 0 et 1 qui indique la valeur binaire de cette variable à ce moment là.
Encore plus intéressant, il existe dans notre logiciel de simulation la possibilité de changer la valeur d’une variable en agissant directement au niveau d’un bit.
Par exemple, la variable $0D0C s’intitule globalement « lights », si on change la valeur de son bit n°2, pour le passer de 0 à 1, les phares d’atterrissage s’allument. Si on touche au bit n°0, ce sont les feux de navigation qui s’allument, etc… Etrange, n’est-ce pas ?
Vous pouvez créer, à titre d’exemple, une nouvelle variable SIOC, en utilisant l’offset $3300 correspondant à la capture d’un LOC ou NAV ou Glide. Incorporez cet offset dans votre fichier .ssi, mettez l’avion en position d’interception d’un ILS, laissez-le faire, et regardez dans IOCP Console comment les valeurs décimales et binaires vont changer quand le LOC va être capturé. Vous verrez qu’un seul bit change à la capture du LOC, le bit n°8. Lorsque le Glide est capturé, c’est le bit n° 9 de cette même variable qui passe de 0 à 1.

Pour faire des essais, même en l’absence de FS ou P3D, IOCP Console permet d’entrer n’importe quelle valeur pour une variable. L’observation dans la colonne LOG de ce qui se passe permet de vérifier que les commandes prévues ont bien été exécutées.