Et là si j'ai bien compris, il faudrait le faire pour chaque inter et pas seulement un seul par groupe... c'est pas jouable, deux fois plus d'entrées et autant de lignes dans sioc .... beurk !
Le plus simple reste quand même de s'astreindre à faire une check list pour démarrer et une autre pour éteindre le cockpit et remettre tout les switch dans leur position initiale.
C'est d'ailleurs ce qu'on fait en aviation réelle ...
Oui, et donc il faudra initialiser toutes les variables correspondantes dans leur état supposé d'origine sinon ça va pas le faire (vu que beaucoup seront à "zéro" donc pas forcément "lues" par sioc. )
Ce serait bien quand même qu'opencockpit se penche sur le problème un jour, si c'est faisable par soft (PIC) parce que si ça vient de la carte évidemment on est cuit !
La check list, c'est bien, mais il ne faut pas oublier que nous sommes en simulation, et donc pas à l'abri d'un crash (en réel non plus d'ailleurs, hélas).
Mais à la différence du réel, après un crash par définition, pas de check liste d'extinction... Et quand on repart, on ne connaît pas la position des inters. Donc, dans ce cas, problème non résolu.
Ben tu refais quand même ta check d'extinction et quand tu relance FS + SIOC tu as bon, non ?
Même si c'est un inconvénient, la logique de Bob est bonne, on doit faire "comme si" et donc à la limite la vérification des inters et commutateurs se fait cockpit éteint ( ou PC crashé ) comme en vrai.
moi ce que je fais pour scanner un inter à l'initialisation de sioc, je double la programmation.
je m'explique.
sur la ligne de l'inter, je programme les conditions selon la position de l'inter ce qui va changer le offset. Je fais la même chose, sur la ligne du offset. Je programme les mêmes conditions.
voici un exemple:
Var 0002, name FsOffsetRadio, Link FSUIPC_INOUT, Offset $556B, Length 1 { IF &FsOffsetRadio = 0 { IF &SwPwrRadio = 0 { &FsOffsetRadio = 0 } IF &SwPwrRadio = 1 { &FsOffsetRadio = 1 } } IF &FsOffsetRadio = 1 { IF &SwPwrRadio = 0 { &FsOffsetRadio = 0 } IF &SwPwrRadio = 1 { &FsOffsetRadio = 1 } } }
Var 0300, name SwPwrRadio, Link IOCARD_SW, Device 1, Input 74 { IF &SwPwrRadio = 0 { &FsOffsetRadio = 0 } IF &SwPwrRadio = 1 { &FsOffsetRadio = 1 } }
C'est un peu plus long à programmer mais ça fonctionne très bien. L'inter est pris en considération en tout temps.