on continu dans la serie petit tuto aujourd'hui comment programmer un encodeur de type grey avec des afficheurs .
Dans cet exemple je vais programmer le hdg sel ainsi que la consigne d'altitude du pilote automatique .
La ca va se corser un peu plus !!
tout d'abords les encodeur grey ca ressemble a ca
![Image](http://www.opencockpits.com/catalog/images/encod.jpg)
les deux pin du haut c'est un inter integré dans la tige quand on appui dessus ; les 3 du bas au centre la masse et les deux autres a cabler sur la master avec des NUMERO QUI SE SUIVENT c'est important sinon ca marche pas donc pour lexemple l'encodeur sera cablé sur les entrées 45 et 46
Ensuite des afficheurs 7 segment donc une plaquette de trois digit pour le hdg et 5 digit pour l'altitude
![Image](http://www.opencockpits.com/catalog/images/digitosm.gif)
OK c'est partit
1 - declarer la variable de l'altitude et du cap dans sioc
recherchons dans le sdk l'offset qui va bien
![Image](http://i38.servimg.com/u/f38/13/46/73/71/sioclc10.jpg)
ok ici la $07CC pour la valeur du heading et $07D4 pour l'altitude
maintenant ca va se compliquer !!!
on peut voir que dans les commandes de ces variables ya plein de chiffres et on comprend pas grand chose ; en fait c'est pas si compliqué que ca .
le sdk nous donne la valeur de l'altitude en metre et pour sioc 3.28084 metres est egale a 65536 !
Mais nous on veut des pieds forcement du coup la conversion pour 100 pieds sera de 19975.37
Donc pour resumer quand je vais tourner la molette d'altitude mon encodeur va incrementer de 1 en 1 et nous allons lui faire comprendre qu'il faut transformer ca en 19975.37
Si vous n'avez rien compris c'est pas grave il suffit de recopier le code qui va suivre et vous comprendrez peut etre un jour qui sait ... :cool:
je plaisante bien sur ...
allez zou c'est partit ouverture du config de sioc et NEWVAR
![Image](http://i38.servimg.com/u/f38/13/46/73/71/sioclc11.jpg)
![Image](http://i38.servimg.com/u/f38/13/46/73/71/sioclc12.jpg)
![Image](http://i38.servimg.com/u/f38/13/46/73/71/sioclc13.jpg)
voila c'est bon pour les variables ensuite le reste ..
2- ajouter les display
donc la carte display dopencockpit permet de mettre jusqu'a 16 digit a cabler sur les entrées de zero a 15 (oui le zero compte comme 1 et ca change tout donc attention )
dans cet exemple je vais ajouter 3 digit pour le hdg et 5 pour l'alt ; le hdg sera cablé de zero a 2 et l'altitude de 3 a 7
![Image](http://i38.servimg.com/u/f38/13/46/73/71/sioclc14.jpg)
![Image](http://i38.servimg.com/u/f38/13/46/73/71/sioclc15.jpg)
ok tout va bien
3 - declarer 2 encodeurs de type grey pour regler le hdg et l'altitude
toujours pareil EDIT NEWVAR
![Image](http://i38.servimg.com/u/f38/13/46/73/71/sioclc16.jpg)
![Image](http://i38.servimg.com/u/f38/13/46/73/71/sioclc17.jpg)
VOILA tout les ingredients sont reunis ya plus qu'a faire les commandes et la c'est pas la meme ...
4 - commander les encodeurs et afficheurs
clic droit sur LCDHDG et NEWcommand
![Image](http://i38.servimg.com/u/f38/13/46/73/71/sioclc18.jpg)
ok ca se complique je sais !!! une petite explication sur les variables locales L1 L2 L0 elles permettent de faire des assignation ou des calculs dans une meme commande .
ici pour transformer la bonne valeur on va faire comprendre a sioc que L1 est egal a la valeur du lcd multiplié par la valeur du hdg brut donnée par le sdk
ducoup tout ca c'est L1 qui le gere et ca va nous permettre de passer a la suite
reclic droit et NEWCOMMAND
![Image](http://i38.servimg.com/u/f38/13/46/73/71/sioclc19.jpg)
![Image](http://i38.servimg.com/u/f38/13/46/73/71/sioclc20.jpg)
la je demande a L0 d'etre egale a la valeur de L1 +1 ce qui veut dire que par la suite mon afficheur lcd affichera le cap du mcp sans probleme et ca bougera egalement dans fsx
![Image](http://i38.servimg.com/u/f38/13/46/73/71/sioclc21.jpg)
voila pour finir la variable de valeur du hdg sera egal a L0 c'est a dire tout le calcul d'avant pour que tout fonctionne sans ambiguité
Maintenant je refais la meme chose pour l'altitude avec la valeur calculé precedement
![Image](http://i38.servimg.com/u/f38/13/46/73/71/sioclc22.jpg)
![Image](http://i38.servimg.com/u/f38/13/46/73/71/sioclc23.jpg)
![Image](http://i38.servimg.com/u/f38/13/46/73/71/sioclc24.jpg)
OK c'est terminé pour les LCD maintenant les encodeurs pour controller tout ca !!
5 - incrémenter et décrémenter le programme ...
clic droit sur le ROTHDG et NEWCOMMAND je vais reutiliser une variable locale pour faire comprendre a sioc que l'incrementation se fait de 1 en 1 ( vous noterai le -1 qui permet de faire tourner dans un sens cela peut etre remplacé par 1 tout court si votre encodeur est cablé a l'envers )
![Image](http://i38.servimg.com/u/f38/13/46/73/71/sioclc25.jpg)
je rajoute maintenant une fonction rotate qui veut dire que la valeur tourne de 0 a 360 degrés
![Image](http://i38.servimg.com/u/f38/13/46/73/71/sioclc30.jpg)
voila maintenant l'altitude !
pour l'altitude c'est different ce n'est pas une valeur qui tourne mais une limite qui va de 0 a 50000 pieds
reclic droit sur le ROTALTITUDE et NEWCOMMAND
![Image](http://i38.servimg.com/u/f38/13/46/73/71/sioclc28.jpg)
![Image](http://i38.servimg.com/u/f38/13/46/73/71/sioclc29.jpg)
![Image](http://i38.servimg.com/u/f38/13/46/73/71/sioclc31.jpg)
VOILA c'est fini bon j'avoue que c'est un peu complexe c'est le point chaud de sioc sinon le reste c'est easy surtout ne pas se decourager
en gros ici lencodeur commande les afficheurs qui eux meme convertissent les valeurs et balance ca dans fsuipc pour flight
a bientot
greg