Modules
RC Command Langage

Vous utilisez un module pour:


Définition d'un module

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

Le module commence par l'instruction DEF suivie des paramètres remplaçables (préfixés pour la lisibilité par $) DEF $stick $var

Ensuite on écrit toutes les instructions, y compris les valeurs des paramètres : $var.trim: INIT 0.


Utilisation d'un module: CALL

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