Il doit régler l'altitude du pilote auto et lorsque l'on presse le switch, il doit alors régler la vitesse verticale du pilote auto.
-Pour l'altitude, ça fonctionne, mais j'aimerais quand même améliorer quelque chose:
Là, avec ce code, l'altitude est limitée à 21000 pieds (c'était voulu) mais elle tourne en boucle, c'est à dire que que si je suis à 100 pieds et que je diminue d'un cran, je ne suis pas à 0 mais je me retrouve à 21000pieds.
Je ne sais pas si l'on pourrait éviter ça avec la fonction rotate?
Mais bon, à la limite, c'est pas vraiment embêtant.
-Pour la VS, là c'est le vrai problème:
Je voudrais donc régler la VS par incrément de 100 pieds/min, entre -3000 et +3000.
Avec mon code, déjà , ça ne limite à 3000pieds (pourtant dans le code, 30*100, ça devrait faire 3000) et ça ne fonctionne que dans les positifs (ça descend dans le négatif, mais n'importe comment).
Et surtout le gros problème que je ne comprends pas du tout, c'est que lorsque je suis dans une caleur négative de VS, le fait de régler l'altitude (sans toucher à la VS) va me faire repasser la VS en positive.
Et je ne vois pas du tout, au niveau des variables de mon code, ce qui fait que l'altitude puisse avoir une influence sur la VS.
Je ne vois pourtant pas de variable commune (à moins que ce soit les L0 qui fassent le chantier) donc c'est probablement que je n'ai pas vraiment compris l'utilisation de la fonction rotate.
- Code: Tout sélectionner
Var 0514, name AP_ALT, Link FSUIPC_INOUT, Offset $07D4, Length 4 // Altitude pilote auto en mètres x 65536
Var 0515, name AP_VS, Link FSUIPC_INOUT, Offset $07F2, Length 2 // VS du pilote auto en ft/min
Var 0516, name cts_ap, Link IOCARD_ENCODER, Input 41, Aceleration 1, Type 2 // encodeur du pilote auto
{
IF &sw_ap_alt = 1
{
L0 = &cts_ap * -100
&AP_VS = ROTATE -30 ,30 ,L0
}
ELSE
{
L0 = &cts_ap * -30.48
&calc_ap_alt = ROTATE 0 ,6400 ,L0
}
}
Var 0517, name calc_ap_alt // conversion de l'altitude du PA en feet
{
L0 = &calc_ap_alt * 65536 // en mètres
&AP_ALT = L0
}
Var 0518, name sw_ap_alt, Link IOCARD_SW, Input 36 // switch de l'encodeur du pilote auto