Vous utilisez un module pour:
Chaque module est un fichier séparé . Il comporte des instructions RCCL
et commence par l'instruction spécifique DEF.
Soit par exemple le module ctxMx pour la commande d'un manche:
# -*- coding: utf-8 -*-(for Scipe)
# transformation d'un organe de commande $stick en variable de vol $var
# exemple $stick=2 $var=ail
DEF $stick $var
$var.exp: INIT 30
$var.rate: INIT 100 # plein débattement
$var.rate: INIT 50 @S6 # débattement réduit switch @S6
x = 0
x EXP @M$stick $var.exp:
x MULT% x $var.rate:
$var.trim: INIT 0
DTRIM$stick $var.trim: #associe ce paramètre à u n trim digital
IF @BA #autotrim
UPD $var.trim: x
ENDIF
$var ADD $var.trim: x #trim additif
Ensuite on écrit toutes les instructions, y compris les valeurs des paramètres : $var.trim: INIT 0.
Il suffit d'écrire CALL ctxMx @M2 ail pour insérer le module ctxMx en remplaçant $stick par @M2 et $var par ail.
Plusieurs paramètres ont été définis dans le module. Leur valeur sera spécifiée ultérieurement ou sera adaptée en cours de vol et sauvée dans un fichier annexe .mdp
# *********CALL ctxMx @M2 ail
ail.exp: INIT 50
ail.rate: INIT 100
ail.rate: INIT 50 @S6
x = 0
x EXP @M2 ail.exp:
x MULT% x ail.rate:
ail.trim: INIT 0
IF @BA
UPD ail.trim: x
ENDIF
ail ADD ail.trim: x
# ************ end of def file
Parfois on veut que la valeur du paramètre diffère selon la phase de vol.
Il suffit de remplacer CALL par
CALLP....END et de
coder les valeurs du paramètre entre CALLP
et END
CALLP ctxMx @M3
prof
prof.trim: INIT 0.00 att
prof.trim: INIT 0.00 vol
prof.trim: INIT 0.00 vol.therm
prof.trim: INIT 0.00 vol.vitesse
prof.trim: INIT 0.00 vol.mot
END
Comme dans l'exemple précédent, le module est inséré en remplaçant les paramètres mais en plus les lignes entre le CALLP et le END remplacent les initialisations du module. Voici le résultat:
# *********CALLP ctxMx @M3 prof
prof.trim: INIT 0.00 att
prof.trim: INIT 0.00 vol
prof.trim: INIT 0.00 vol.therm
prof.trim: INIT 0.00 vol.vitesse
prof.trim: INIT 0.00 vol.mot
prof.exp: INIT 50
prof.rate: INIT 100
prof.rate: INIT 50 @S6
x = 0
x EXP @M3 prof.exp:
x MULT% x prof.rate:
IF @BA
UPD prof.trim: x
ENDIF
prof ADD prof.trim: x
# ************ end of def file
© Copyright 2008-2012 Robert Spilleboudt - Tous droits réservés.
Projet rcopensource - Licence GPL V2