#1 [↑][↓]  27-03-2015 13:23:47

mameloose
Copilote
Lieu: evreux
Date d'inscription: 24-10-2014
Renommée :   10 

[P3D][FSX][FS9]tuto sioc les subroutines

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

http://i19.servimg.com/u/f19/13/46/73/71/siocsu10.jpg

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

http://i19.servimg.com/u/f19/13/46/73/71/siocsu11.jpg

pareil pour les autres

http://i19.servimg.com/u/f19/13/46/73/71/siocsu12.jpg

http://i19.servimg.com/u/f19/13/46/73/71/siocsu13.jpg

ok c'est good jusque la !

maintenant la suite

2- creer une subroutine
http://i19.servimg.com/u/f19/13/46/73/71/siocsu14.jpg

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

http://i19.servimg.com/u/f19/13/46/73/71/siocsu15.jpg

http://i19.servimg.com/u/f19/13/46/73/71/siocsu16.jpg

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 ...

http://i19.servimg.com/u/f19/13/46/73/71/siocsu17.jpg

http://i19.servimg.com/u/f19/13/46/73/71/siocsu18.jpg

http://i19.servimg.com/u/f19/13/46/73/71/siocsu19.jpg

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

http://i19.servimg.com/u/f19/13/46/73/71/siocsu20.jpg

http://i19.servimg.com/u/f19/13/46/73/71/siocsu21.jpg

CLIC DROIT SUR LA CONDITION IF ET NEWCOMMAND

http://i19.servimg.com/u/f19/13/46/73/71/siocsu22.jpg
http://i19.servimg.com/u/f19/13/46/73/71/siocsu23.jpg

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

http://i19.servimg.com/u/f19/13/46/73/71/siocsu24.jpg

CLIC DROIT SUR ELSE ET NEWCOMMAND

http://i19.servimg.com/u/f19/13/46/73/71/siocsu25.jpg
http://i19.servimg.com/u/f19/13/46/73/71/siocsu26.jpg

RECLIC DROIT SUR LA CONDITION IF ET NEWCOMMAND

http://i19.servimg.com/u/f19/13/46/73/71/siocsu27.jpg
http://i19.servimg.com/u/f19/13/46/73/71/siocsu28.jpg

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

http://i19.servimg.com/u/f19/13/46/73/71/siocsu29.jpg

pareil pour les deux autres ..

http://i19.servimg.com/u/f19/13/46/73/71/siocsu30.jpg

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

Hors ligne

 

Pied de page des forums

Maintenance informatique Lausanne