[TUTO SIOC] Les SUBRUTINE

Tous les tutoriels sur la programmation SIOC, le language des cartes Opencockpits

[TUTO SIOC] Les SUBRUTINE

Messagede mameloose » Ven 27 Mar 2015 14:22

et rebonjour a tous !

aujourdhui nous allons utiliser les subroutines !
alors une subroutine ca sert a quoi ? a utiliser plusieurs conditions pour n'en faire qu'une tout simplement

petit exemple : j'ai dans mon avion 3 reservoir de carburant ; un centrale un gauche un droit

je veux maintenant allumer une led si l'un des 3 est inferieur a 30% de sa capacité par ex ..

je vais donc utiliser une subroutine qui va analyser en permanence l'etat de mes reservoirs et declencher la led si l'un des 3 est inferieur a 30%

1- declarer les variables

je recherche comme toujours dans le sdk les offsets de capacité des reservoirs centre gauche et droit

Image

ok ici l'offset $0B74 de longueur 4 nous donne la valeur en pourcentage du reservoir centrale
l'offset $0B7C pour le gauche et $0B94 pour le droit

on peut lire que dans la case de commande un reservoir plein a 100 % est egale a 128 multiplié par 65536

ce qui veut dire que 100% est egal a 8388608 !

maintenant petit produit en croix pour convertir cette valeur pour 30 % (retour en 5 eme ....)

ca nous donne 2516582 !

ok maintenant on sait que la valeurs qu'il faudra inscrire dans sioc sera de 2516582 pour dire 30%

c'est bon tout le monde suit??

on continue

je declare maintenant mes variables ainsi que ma led

EDIT INSERVAR

Image

pareil pour les autres

Image

Image

ok c'est good jusque la !

maintenant la suite

2- creer une subroutine
Image

ok maintenant nous allons faire comprendre a cette subroutine que si un des 3 reservoirs est en dessous de 30% il faut allumer l'alarme

CLIC dROIT ET NEWCOMMAND

Image

Image

alors ca veut dire quoi jusque la ?

LO est une variable interne comme on pourrai dire dans une equation mathematique X est egal a ?

ca permet de regrouper ici 2 valeurs ; celle du fuel centre et du droit
mais ils nous manque le fuel gauche donc continuont ...

Image

Image

Image

voila donc pour finaliser tout ca L2 est egale aux trois valeurs des reservoirs

vous noterez que j'ai utilisé AND et non pas + sinon les 3 valeurs auraient été additionnées ducoup ca ne marche pas pour cette exemple

maintenant la commande d'allumage

Image

Image

CLIC DROIT SUR LA CONDITION IF ET NEWCOMMAND

Image
Image

donc voila ici si un des 3 reservoirs atteind 30% la led s'allume

maintenant le contraire

CLIC DROIT SUR LA SUBROUTINE ET NEW COMMAND

Image

CLIC DROIT SUR ELSE ET NEWCOMMAND

Image
Image

RECLIC DROIT SUR LA CONDITION IF ET NEWCOMMAND

Image
Image

voila c'est presque fini maintenant il faut lier les variables de fuel a la subroutine

3- APPELER LA SUBROUTINE

clic droit sur les variables de fuel et newcommand

Image

pareil pour les deux autres ..

Image

et voilaaaa!!

ducoup on resume

ma subroutine dit que si un de mes 3 reservoirs est en dessous de 30% alors une led d'alarme s'allume et si c'est le contraire elle s'eteind.
pour lier cette subroutine au variables des reservoirs j'appel (CALL) la subroutine

les subroutines sont utiles pour plein d'autre choses comme une alarme de circuit hydraulique par exemple ....sur le meme principe
Avatar de l’utilisateur
mameloose
 
Messages: 1005
Inscription: 20/04/09
Localisation: evreux

Re: tuto sioc les subroutines

Messagede Boutondair » Ven 27 Mar 2015 17:27

Alors là vraiment chapeau applaublanc applaublanc applaublanc

Avec les sites de Claude, Bernard, les 2 Pierres j'avais à peu près compris mais là c'est très limpide avec images à l'appuis, vraiment génial

David cligneoeil grandsoleil
Image Image
Petit je rêvais que je volerais, maintenant grâce au virtuel je vole !!!!!
Avatar de l’utilisateur
Boutondair
Administrateur du site
 
Messages: 4162
Inscription: 20/04/09
Localisation: Ballans (17) proche de Cognac

Re: tuto sioc les subroutines

Messagede mameloose » Ven 27 Mar 2015 18:04

mercii grandsoleil

oui pas facile les sub faut pratiquer ....
Avatar de l’utilisateur
mameloose
 
Messages: 1005
Inscription: 20/04/09
Localisation: evreux


Retourner vers Les TUTOS SIOC





Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité

cron