Bonjour à tous,
A nouveau je dois faire appel à l'équipe. En effet, j'ai bien avancer depuis la dernière fois (

). j'ai commencé par faire mes 11 plaques pour le throttle en mdf, mais n'étant pas menuisier... le résultat était bof. Résultat des courses, je les ai fait découper au laser dans de l'ALU... Nous verrons le résultat au prochain épisode.
Je suis enfin parvenu a faire entendre raison à PMDG. En effet, les offsets dispo ne sont que des variables en "read only". Si on veux imposer une valeur au simulateur, il faut envoyer le paramètre (0/1/2...) à l'offset $3114 et ensuite le numéro de ce que l'on veut modifier dans la variable $3110.
Par exemple, dans le prog ci-dessous, en fonction de l'état du switch 14, on envoie 1 ou 0 dans le numéro PMDG 69727.
Le délai est là pour être certain que le simu a le temps de comprendre ce qu'on lui veut.
// ******************************* Initialisation des variables
Var 0001, name PARAMETRE, Link FSUIPC_INOUT, Offset $3114, Length 4
Var 0002, name CONTROL, Link FSUIPC_INOUT, Offset $3110, Length 4
{
IF &CONTROL > 0
{
&CONTROL = DELAY 0 ,10
}
}
// ******************************* Programme
Var 0206, name SW_LIGHTpanel, Link IOCARD_SW, Input 14
{
IF &SW_LIGHTpanel = 1
{
&PARAMETRE = 1
&CONTROL = DELAY 69727 ,10
}
ELSE
{
&PARAMETRE = 0
&CONTROL = DELAY 69727 ,10
}
}
... Je n'ai rien inventé ni rien trouvé, tout est dans la vidéo de Quentin. Je l'ai simplement traduit avec mes mots au cas ou quelqu'un chercherait cette info comme moi.
Par contre... j'ai quand même une question. Lorsque je démarre le simulateur, mes boutons ne sont pas nécessairement correspondant à ceux du simulateur.
J'ai vu que la variable 0000 est une variable d'initialisation prévue justement pour mettre à jour les états entre le simu et le hardware... Génial ... MAIS... Si on prend en compte la manière dont réagit PMDG cela se complique puisque le paramétre 1 ou 0 est commun à toute les control du simu. En bref si je veux contrôler avec 1 seul bouton les essuie glace gauche et droite, je suis obligé de faire ceci :
&PARAMETRE = 1
&CONTROL = DELAY 69668 ,50
&CONTROL = DELAY 69741 ,10
Je dois allonger le delay du 1er pour qu'il soit lu et ne se téléscope pas avec le suivant.
Pour les 4 dégivrages windows (tjrs avec 1 seul bouton) :
&PARAMETRE = 1
&CONTROL = DELAY 69767 ,200
&CONTROL = DELAY 69768 ,150
&CONTROL = DELAY 69770 ,100
&CONTROL = DELAY 69771 ,50
Et tout cela avec une valeur constante de 1 en parametre.
Dois-je donc créer ma routine en 0000 qui prend en compte 1 bouton, puis une tempo1, quand la tempo1 est finie un autre bouton, puis une tempo2, etc??? Mais comme tout est compris dans la variable 0000 normalement tout se déroule en même temps non?
Dois-je donc, si j'ai 35 bp, dans la variable 0000 lancer 34 tempo de durée différentes (de plus en plus grand) et dans les variable tempo exécuter la mise à jour? Comme ci dessous? (attention la syntaxe code n'est pas correcte, c'est juste pour le principe)
Var 0000
{
& tempo1 (1 seconde)
& tempo2 (2 secondes)
& tempo3 (3 secondes)
}
var 1000 name tempo1
&PARAMETRE = 1
&CONTROL = DELAY 69767 ,10
var 1001 name temp2
&PARAMETRE = 0
&CONTROL = DELAY 69764 ,10
var 1002 name tempo3
&PARAMETRE = 1
&CONTROL = DELAY 69768 ,10
Cela va prendre une plombe au démarrage non? Y a t il un autre moyen?
Grand merci pour votre aide et bon samedi