Programmation d'un ALT ARM SELECT

Questions de programmation / Offset FSUIPC et IOCP

Programmation d'un ALT ARM SELECT

Messagede chr69290 » Sam 17 Sep 2011 15:16

Bonjour à tous,

j'ai prévu pour mon simu (Baron58) un petit ALT ARM avec un voyant rouge qui prévient 1000 ft avant la consigne alti et un encodeur pour afficher mon altiude sible le tout affiché par un afficheur 7 segments ( voilà pour la parti hardware )
Mon problème auquel je suis confronté depuis plusieurs jours et je cherche encore c'est que mon voyant ne fonctionne pas.
Pourtant quand j'utilise IOCP console rien me dit que ce script n'est pas bon et le reste fonctionne bien voici mon script:

// ******* PROGRAMME TEST ALT ARM *******

Var 0000, name init, Value 0
{
&ALT_SEL_DIS = 00000 // à la mise en route le display affiche 00000
}

Var 0001, name fs_PA_ALT, Link FSUIPC_INOUT, Offset $07D4, Length 4 // FS PA Altitude donnée brut
{
&ALT1 = &fs_PA_ALT / 19975.433 // Altitude en Ft (formule Peter Dowson)
&ALT2 = &ALT1 - 1000
&ALT3 = &ALT1 + 1000
}

Var 0002, name ALT1 // valeur consigne ft
{
CALL &calc_alarm
}

Var 0003, name ALT2 // consigne - 1000 ft si avion en monté
{
CALL &calc_alarm
}

Var 0004, name ALT3 // consigne + 1000 ft si avion en descente
{
CALL &calc_alarm
}

Var 0011, name calc_alarm, Link SUBRUTINE
{
IF &ALT1 = &read
{
&led_ALT_ARM = 0
}
IF &ALT2 = &read
{
&led_ALT_ARM = 1
}
IF &ALT3 = &read
{
&led_ALT_ARM = 1
}
}

Var 0012, name read

Var 0005,name ALT_SEL_ROT, Link IOCARD_ENCODER, Input 42, Aceleration 2, Type 2 // Encodeur ALT ARM selec
{
L0 = &ALT_SEL_ROT * 100 // valeur de 100 Ft en 100 Ft
&ALT_DISP_CALC = &ALT_DISP_CALC + L0
}

Var 0006,name ALT_SEL_DIS, Link IOCARD_DISPLAY, Digit 0, Numbers 5 // Afficheur 7segments
{
CALL &ALT_DISP_CALC
}

Var 0007,name ALT_DISP_CALC, Link SUBRUTINE // Calcul pour affichage ALT ARM
{
V0007 = LIMIT 0, 30000, L0 // Limite d'utilisation de 0 à 30000 ft
&ALT_SEL_DIS = &ALT_DISP_CALC
L0 = &ALT_DISP_CALC * 1997537
&fs_PA_ALT = L0 / 100
}


//Var 0008,name sw_ALT_SEL, Link IOCARD_SW, Input 41 // SW contact encoder pas utilisé

Var 0009,name led_ALT_ARM, Link IOCARD_OUT, Output 21 // voyant rouge

Var 00010,name ALT_READING, Link FSUIPC_INOUT, Offset $3324, Length 4
{
&read = &ALT_READING
}

Pour les pro de la prog, si il y a un expère qui passe par là je veux bien un petit coup de pouse !
parce que là je ne trouve pas de solution.

merci d'avance et à bientôt
Christophe
chr69290
 
Messages: 43
Inscription: 5/05/10
Localisation: hieres sur amby dans le 38

Re: Programmation d'un ALT ARM SELECT

Messagede stevelep » Sam 17 Sep 2011 17:09

Il se peux que quand la valeur de l'altitude augmente elle saute des valeurs, ceci du à FSUIPC
au calculs dans SIOC etc... donc qu'elle passe de 3999 à 4002 par exemple.
Donc si ta LED s'allume uniquement à 4000 précise, cela saute ...

Je modifierais la condition &alt1 = &read
par la différence entre &alt1 - &read < 5

Comme ça ça laisse une fourchette pour la réaction de ta LED

BYE

BOB
Avatar de l’utilisateur
stevelep
Administrateur du site
 
Messages: 2075
Inscription: 27/03/09
Localisation: LSGN Neuchâtel, Suisse

Re: Programmation d'un ALT ARM SELECT

Messagede chr69290 » Sam 17 Sep 2011 20:55

Salut BOB

Effectivement je n'avais pas pensé au saut FSUIPC, je vais checker ça et modifier mon scrip,
et je te tiens au courant, si c'était bien ça.

à bientôt
Christophe
chr69290
 
Messages: 43
Inscription: 5/05/10
Localisation: hieres sur amby dans le 38


Retourner vers Programmation Sioc





Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 38 invités