comment fonctionnent Flight Simulator et P3D ?
Leur fonctionnement interne repose sur des « variables » qui transportent les instructions pour toutes ses fonctions, et pas seulement ce qui concerne le vol. Peter Dowson a réussi à décortiquer le code de Flight Simulator et a identifier ces variables. A partir de là, il nous a été possible de les sélectionner et de les modifier dans un logiciel comme SIOC, puisde les transmettre par l’intermédiaire de FSUIPC, il suffit de donner une « adresse » et elles y vont …
La liste des variables de Flight Simulator et P3D figure dans les documents qui sont joints à FSUIPC, on les trouve dans le dossier « Modules » du simulateur. Il y en a des centaines, mais pas de panique, si nous oublions les variables définissant la météo, les coordonnées géographiques, ou les caractéristiques physiques d’un avion, ce qui entre réellement dans un cockpit est beaucoup plus réduit.
variables ou équivalents clavier ?
Beaucoup de fonctions de commande de Flight Simulator et P3D ont un équivalent clavier défini, qui, en pratique fait le même effet que l’envoi d’une variable. Envoyer un G par notre clavier fera rentrer le train aussi sûrement que la modification de la variable correspondante. Alors pourquoi passer par IOCards ?
Tout d’abord, il y a un certain nombre de commandes qui n’ont pas d’équivalent clavier. Ensuite, de nombreuses fonctions ont besoin d’un « retour » de confirmation: on demande la sortie du train, il sort, et quand c’est fait, des LEDs vertes s’allument pour confirmer, c’est une fonction « logique » qui nécessite SIOC.
C’est également le cas, bien entendu, de l’affichage de données numériques, comme les fréquences, l’altitude au P.A. etc…
Nous verrons très vite qu’il y a une grosse différence entre une commande par un bouton poussoir ou une touche de clavier et la commande par un interrupteur à bascule, qui envoie une instruction, puis reste dans une position. C’est le fait de le mettre dans une autre position qui annulera la commande précédente, ce que ne peut pas faire une touche de clavier. Quand on a essayé de commander des phares d’atterrissage avec des boutons poussoirs, on a vite compris ce que le mot « cafouillage » veut dire.
SIOC le principe
Quand le pilote ferme l’interrupteur incorporé dans la manette de train pour le sortir, cet interrupteur établit un contact entre une des 72 entrées de la carte IO Card Master et la masse « GND » du groupe correspondant (voir plus haut). L’entrée de la carte Master ainsi mise à la masse change d’état -elle était auparavant à +5Volts- , elle passe à 0 V, et SIOC, toujours à l’affût de ce qui se passe, détecte immédiatement ce changement d’état. La programmation SIOC propre à notre avion a été prévue pour dire » si cette entrée change d’état, il faudra immédiatement changer la valeur de la variable du train ».
Une variable a non seulement une adresse dans FS/P3D, mais aussi une valeur mathématique.
Certaines ne connaissent que deux valeurs possibles, 0 ou 1, d’autres peuvent avoir n’importe quelle valeur, comprise par exemple entre 0 et 16384. C’est le cas des volets par exemple, si on donne à sa variable la valeur 8192, les volets s’arrêteront à mi-course.
Les cartes IOCards discutent avec le logiciel de simulation par l’intermédiaire de FSUIPC. SIOC peut utiliser FSUIPC et les « variables » classiques. Mais il peut aussi utiliser sa propre interface, appelée IOCP ou « protocole » IOCP, qui fait exactement la même chose que FSUIPC, un peu plus rapidement . Ne compliquons pas les choses, FSUIPC nous ira très bien, même pour faire un cockpit complexe.
Les programmeurs remarqueront qu’il n’y a pas un programme SIOC pour tout un cockpit, mais des multitudes de petits programmes mis bout à bout, qui fonctionnent indépendamment. Ce qui est très pratique pour essayer interrupteur après interrupteur.
SIOC est par défaut au repos, et n’agit que si un « évènement » nouveau se produit, par exemple un interrupteur qu’on vient de fermer. De ce fait, SIOC est très rapide et très peu gourmand en ressources.