Turoriels SIOC

mameloose

PILOTE DE DRONE
Messages
3 741
Réactions
2
Points
530
Bien le bonjour tout le monde, je me lance dans plusieurs petits tutos de SIOC.

Donc pour commencer Sioc c'est quoi ? c'est le logiciel le plus puissant qui existe à ce jour pour programmer nos simus avec les carte master de chez Opencockpit.

Une carte master vous permet d'utiliser environ 80 interrupteurs une 40 aine de led ainsi qu'une sortie display pour les afficheurs 7 segment .

Je vais donc commencer par vous montrer un exemple de programmation relativement simple qui permet de câbler un interrupteur 2 positions classique et de lui programmer une fonction précise.

Une fois la carte master en main avec un inter cablé sur l'entrée 001 pour notre exemple ainsi que la bonne config effectué pour le fichier ini de sioc (voir tuto plus haut sur le site de simucockpit) je vous montre ici comment programmer la fonction du train d'atterissage !

1 - Tout d'abord il faut intéresser au SDK ; le sdk (disponible ici : http://www.schiratti.com/dowson.html c'est la liste de toutes les variables de flight simulator qui permet de contrôler notre avion avec sioc ; je recherche donc lOFFSET de la commande du train.



voila ici l'offset de la commande train elle sappel donc $0BE8 elle a une longueur (zise) de 4 ; on verra plus tard a quoi ca sert ... et la commande de bits donc train haut = 0 et train bas = 16383

2 - une fois l'offset en main je vais donc commencer la prog sioc donc il suffit douvrir sioc puis CONFIG de le rendre vierge en faisant nouveau si ce n'est pas le cas et de declarer notre code a linterieur



3 - maintenant nous allons declarer la variable de train comme ceci






voila la variable de train c'est bon donc si je commande cette variable avec un interrupteur je vais donc actionner la commande d'atterissage sans toucher au clavier avec notre fameuse touche G

4 - maintenant declaration de l'interrupteur et la commande ; donc interrupteur cablé sur l'entrée 001 je declare dans sioc un switch




OK jusque la rien de bien compliqué maintenant faire comprendre a sioc que quand l'interrupteur est fermé (1) le train monte et quand il est ouvert (0) le train descend

5 - faire la liaison entre le switch et notre variable

clique gauche sur le switch et new command





suite a ca reclic droit sur la fonction IF et new command !




6- Maintenant le contraire donc si linterr est ouvert (0) alors le train sera sortie ;
clic droit sur LA FONCTION SWITCH puis new commande




RECLIC DROIT SUR ELSE PUIS NEW COMMAND




ET VOILA !!!

ne pas oublier denregistrer puis de faire un reload dans sioc en suite normalement le faite de bouger linterr actionnera la commande de train tout simplement !

POUR RESUMER :

en gros on cherche l'offset qui nous interesse puis on retient sa valeur la longueur et la commande

puis on déclare la variable du sdk

ensuite on ajoute soit un inter soit une loupiotte soit un encodeur ect ...( je ferai d'autres tuto pour ca)

puis on lui dit quoi faire : fonction IF ( si mon truc fait ca ...) fonction ASSIGN ( alors je donne tel ordre pour tel variable) fonction ELSE ( si mon truc fait le contraire ou change detat) refonction ASSIGN ( alors l'ordre change avec celui ecrit ...)

bon d'accord la première lecture ça fait très très peur mais faut pas ça viens très vite et sioc c'est juste magique une fois pris en main on peut vraiment faire tout ce qu'on veut

bon courage .......

greg
 
C'est vraiment simple en faite et avec Prosim et Prepar3D ça fonctionne?
 
Les cartes Opencockpits sont pas trop chère ça permet de se faire un cockpit a moindre coût, mais les cartes sont-elles de bonnes qualité? Tu penses faire ton CDU en combien de temps?
 
oui elles sont de très bonne qualité il faut acheter une expansion usb puis une master (lexpansion permet de connecter 4 master en tout sur un port usb) pour une usb et une master il faut compter une 100 aines deuros ensuite la master seul coûte 65 avec les frais de port et franchement quand on voit les possibilités derrière ça les vaux largement.

Quest ce que tu veux dire par faire mon CDU en combien de temps ? la prog?
 
Oui je voulais parler de programmation pour ton CDU ça prend combien temps quand on maîtrise bien. En faite comparé à  une s'ys card de FDS c'est juste la partie programmation qu'il faut faire sois-même. Parce que les cartes FDS tu branches et tu assignes via Prosim alors que SIOC faut gérer la partie programmation en plus avec des usb expansion, master. C'est une alternative à  moindre coût mais qui marche très bien selon toi. De toute façon ton 747 tourne en full SIOC? Je vais regarder de mon coté comment ça se passe avec Prosim et P3D ;)

mameloose a dit:
Tout d'abord il faut intéresser au SDK ; le sdk c'est la liste de toutes les variables de flight simulator qui permet de contrôler notre avion avec sioc ; je recherche donc lOFFSET de la commande du train.

Est ce que c'est le même SDK pour P3D? Pour infos ton lien est mort :eek:
 
Ca ma pris une petite heure, j'ai corrigé le lien, en faite sioc gère tout tu branches tes cartes tu configures le fichier ini de sioc en déclarant le nombre de carte branché et tu fais ta prog ensuite ta juste à  lancer flight puis sioc et c'est tout et ça fonctionne aussi pour p3d.
 
boujour à tous !!

on continue dans la série 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 ça va se corser un peu plus !!

tout d'abord les encodeurs grey ça ressemble à ça
encod.jpg



les deux pin du haut c'est un inter integré dans la tige quand on appuie dessus ; les 3 du bas avec au centre la masse et les deux autres à câbler sur la master avec des NUMERO QUI SE SUIVENT c'est important sinon ça marche pas donc pour l'exemple l’encodeur sera câblé 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.
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
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 mètre et pour sioc 3.28084 mettes est égale à 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

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'à 16 digit a câbler sur les entrées de zéro à 15 (oui le zéro compte comme 1 et ça change tout donc attention )

dans cet exemple je vais ajouter 3 digit pour le hdg et 5 pour lalt ; le hdg sera cablé de zero a 2 et l'altitude de 3 a 7




ok tout va bien

3 - declarer 2 encodeurs de type grey pour regler le hdg et l'altitude

toujours pareil EDIT NEWVAR

sioclc14.jpg


VOILA tout les ingredients sont reunis ya plus qua faire les commandes et la c'est pas la meme ...

4 - commander les encodeurs et afficheurs

clic droit sur LCDHDG et NEWcommand



ok ça se complique je sais !!! une petite explication sur les variables locales L1 L2 L0 elles permettent de faire des assignations ou des calculs dans une même 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

du coup tout ca c'est L1 qui le gere et ca va nous permettre de passer a la suite

reclic droit et NEWCOMMAND

la je demande a L0 d'être egale a la valeur de L1 +1 ce qui veut dire que par la suite mon afficheur lcd affichera le cap du mcp sans problème et ca bougera également dans fsx

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

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 lincrementation 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 )

je rajoute maintenant une fonction rotate qui veut dire que la valeur tourne de 0 a 360 degrés

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

VOILA c'est fini bon javoue que c'est un peu complexe c'est le point chaud de sioc sinon le reste c'est eas'y surtout ne pas se decourager

en gros ici l'encodeur commande les afficheurs qui eux meme convertissent les valeurs et balance ca dans fsuipc pour flight

a bientot

greg
 
J'ai réfléchi un peu a cette histoire de SIOC et comme j'ai pu le lire tu es un expert dans la programmation de cet autre moyen de configurer nos simulateurs. Néanmoins je suis dans un d'oeilemme :

Carte FDS quasi plug and play mais chère et le truc avec le Canada c'est que j'ai des petits soucis pour le virement et je prends du retard (ma banque ne comprend rien, dernière solution je dois me faire un compte Paypal mais j'ai pas du tout confiance).

Carte Opencockpits beaucoup moins chère, facilement programmable (Expert mameloose) de plus on peut payer par Carte Bancaire et ça reste en Europe donc plus facile pour recevoir les colis. J'ai vérifier un peu partout SIOC fonctionne bien avec Prosim et P3D.

Par exemple pour l'overhead il me faudra donc 3 cartes (USB Expansion card pour le pc + une master pour brancher les Input + une Input connection pour que ça soit bien propre). En plus la master peut recevoir 72 inputs ce qui est largement suffisant pour l'overhead par contre 38 outputs risquent d'être juste donc je vais être obligé de prendre une seconde master ou une usb output??

Apres j'ai lu des histoires de scripts à  télécharger, enfin je te demanderais de laide si je choisis cette voie. Ca me permettrai ainsi de toucher un peu à  SIOC et puis après je verrai si ça me conviens ou pas.

De plus je suis intéresser par leur nouveau yoke donc si avec ton aide je minvestis dans SIOC et que finalement ça me convient ça serait cool.

Juste une petite question, les output sont équipés de résistance ou pas? Parce que si c'est pas le cas je dois câbler chaque led avec une résistance?
 
ok je vois ..

tout d'abord quel avion utilises-tu exactement sur quel support (genre pmdg 737 fsx, ou avion de base p3d) parce que tout dépends de ton avion .

sioc c'est vraiment le seul logiciel qui va te permettre de faire exactement ce que tu veux (faire clignoter des leds ; avoir tel alarme quand tel truc se passe ; avoir plusieurs conditions pour qu'un truc puisse fonctionner ect ...)

ensuite je veux pas faire mon vieux mais faut arreter de croire au plug n play si tu construis un vrai simu ; si c'est juste un petit simu generique la ok tachete un yoke saitek tu branche et ça roule par contre si tu te lance dans un 737 par exemple avec un overhead complet la tu ne peux pas échapper a la prog et encore moins a sioc.

quand tu achètes un mcp chez opencockpit par exemple ils te disent c'est plug n play mais c'est pas totalement vrai a l'intérieur il y a une usb exepension avec une master et une display et il te donne le script en fonction de leurs câblage (sioc.ssi) mais ce n'est que valable pour un avion de base de fsx.

du coup si toi tu veux programmer un pmdg par exemple tu vas devoir changer la prog a ta sauce parce que les offset ne sont pas les mêmes et la je met en garde en prenant l'exemple d'un pmdg c'est un sacré casse tête parce que les offset faut les trouver soit même avec fsinterrogate et la c'est sport !!

il n'y a que le 737 ngx ou pmdg a enfin donné la liste des variables sinon pour le reste il faut emuler quelques touches de clavier grâce a fsuipc et les fonctions setbit clearbit dans sioc (je ferai un tuto la dessus ).

sinon une seule master pour un overhead ca me parait juste j'en utilise 4 chez moi et 4 autres pour le reste.

en ce qui concerne les output il faut mettre une résistance de 270 ohms a chaque led si tu pars de la master (c'est chiant mais ça fait partit du boulot ...)

et puis bien sur je suis la si tu galères je suis passé par la avec bien d'autres et c'est largement faisable.
 
Alors concernant l'avion voila ma configuration, le temps de construire mon cockpit je vole sur P3D/PMDG avec du Saitek. En parallèle je construis mon cockpit avec Prosim et éventuellement SIOC. En faite j'attends vraiment de savoir quelle carte (FDS ou SIOC) je vais utiliser avant de faire le basculement entre ma config pmdg et ma config SIOC/FDS/Prosim.

Donc si tu veux maider pour SIOC part sur la base Prosim/P3D car le PMDG c'est en attendant d'avoir un cockpit fonctionnel.

Quand je parlais de plug and play je voulais dire que sur les carte FDS tu branches tes input/output sans résistance, et tu n'as pas de programmation comme SIOC. Tu branches, tu déplaces ton switch et tu dis a Prosim c'est lequel et ainsi de suite.

Je ne veux pas échapper à  la programmation je cherches juste un truc fiable et livrable facilement.
 
Ok ça gaz donc ton simu sera sur la base d'un pmdg une fois fini si j'ai bien compris, j'ai un peu regardé prosim par curiosité c'est pas mal pour les débutants mais tu seras vite limité par la suite, en ce qui concerne les offsets tu as du bol ils sont listés du coup l'avion complet peut se programmer avec sioc.
 
Non une fois fini la base sera Prosim et son modèle de vol.

mameloose a dit:
en ce qui concerne les offsets tu as du bol ils sont listé du coup l'avion complet peut se programmer avec sioc

Tu parles de Prosim?
 
Attends y a un dialogue de sourd je crois je suis occupé ce soir janalyse ton projet et je reposerait.

Bonne soiree greg
 
Je reviens vite fait sur SIOC parce que c'est quand même intéressant et je serais partant pour commander des cartes. J'ai un petit souci de compréhension avec les variables et offsets.

Il me faut quelles variables et offsets? ceux de l'avion de base de PROSIM ou ceux de P3D, ou les deux? C'est quoi la différences entre variables et offsets? Un fois que j'ai ces variables je peux paramétrer SIOC avec mes input/output?

Parce que si je lis ton dernier message tu as l'air de penser que je veux faire tourner SIOC avec le PMDG. Alors que non je veux faire tourner SIOC uniquement avec PROSIM. Et en passant PROSIM, c'est un logiciel complet de simulation de vol enfin il est facile à  programmer si tu veux parler de débutant.

Si je fais tourner le PMDG avec SIOC pour simuler un cockpit, je pense que c'est pas très bon car PMDG est super gourmand! Apres je dis pas que ce n'est pas faisable mais je préfère utilisé un soft indépendant pour faire tourner le cockpit.

Merci par avance mameloose :)
 
oui oui jme suis gourré je viens de me relire!
je viens de me renseigner prosim c'est comme project magenta en gros j'avais debuté a l'époque avec ça. J'ai vu dans le pdf de configuration qu'ils donnent tous leurs offset avec les bits de commande ça c'est cool ça va être encore plus simple que prévu du coup tu peux faire ton simu avec prosim et yaura juste a faire le code en fonction de ton câblage et des offset pour sioc .
tu nauras pas besoin des offsets de p3d puisque prosim est a lui tout seul l'avion + le programme.
peut être juste pour la radio et encore a voir ....

ce qu'on appel un offset c'est ça : $6CB2 ou alors $5481 peut importe c'est une variable qui permet de commander quelque chose de précis.

Dans ton cas j'ai vu que prosim donne un exemple de leur liste comme control du mcp : offset n° $5410 longueur 2 et les bits de commande comme push N1 c'est le bit 21 ou push Speed c'est le 22.

ce genre de prog dans sioc c'est ultra simple a faire.

quand tu auras tes cartes master tu commences ton simu tu câbles tes inters sur cartes et tu programmes avec la liste de prosim et tout va fonctionner rien de plus simple ...
 
:D c'est cool du coup j'ai tout compris!! Je commande mes cartes Opencockpits à  la fin du mois et je ferais des tutos pour la partie SIOC/PROSIM. En y pensant je me suis dit que les variables que j'avais besoin cét'aient ceux de Prosim, puisque P3D me sers seulement pour lenvironnement.

Bon week end Greg ;)
 
bonjour a tous

c'est encore moi toujours dans la catégorie sioc pour debutant !

aujourd'hui je vais vous montrer les fonctions setbit et clearbit

alors ca sert a quoi ? a plein de choses ..... certaines variables peuvent se commander avec plusieurs bits comme la variable des feux !

Dans cette meme variables on peut commander les feux de nav taxi beacon ect ....

jettons un ptit coup d'oeil au sdk !

siocse10.jpg


ok ici l'offset $0D0C de longueur 2 permet de controller tout ca en fonctions des bits donnés dans la description (bit 1 =Nav ;bit 2 = beacon ect....)

il suffit donc de programmer tout ca maintenant c'est très simple ...

1- declarer la variable des feux de l'avion

et c'est repartit je reprend un code vierge et EDIT NEWVAR

siocse11.jpg


siocse12.jpg



ok rien de bien compliqué on a deja vu ca avant ....

ensuite je vais declarer 2 interrupteurs pour l'exemple sur les entrées 5 et 6 de la master pour commander les strobes et les nav

2- declarer les interrupteurs

toujours comme avant EDIT NEWVAR

siocse13.jpg


siocse14.jpg


siocse15.jpg



tadaaaa!! bon c'est pas encore fini on continu ....

maintenant que j'ai declaré mes impots .... nan c'est pas ca ....
maintenant que j'ai declaré ma variable des feux et mes deux inters je vais maintenant commander tout ca !

donc si je veux allumer les feux de nav je dois commander le bit 1 et pour les feux strobe le bit 16

3- faire appel aux fonctions setbit clearbit

ca veux dire quoi ? setbit ca veux dire je veux que tu change le bit numero truc ; et clearbit ca veux dire je veux plus de ton bit reviens comme tet'ais avant ....

en image c'est toujours plus clair CLIC DROIT SUR INTERSTROBE et NEWCOMMAND
RECLIC DROIT SUR LA CONDITION IF ET NEW COMMAND

siocse16.jpg

siocse17.jpg

siocse18.jpg


ok donc jusque la si je bouge mon inter en position fermé les strobes vont s'allumer

maintenant le contraire pour eteindre CLIC DROIT SUR L INTERSTROBE ET NEW COMMAND



condition ELSE pour dire AUCONTRAIRE donc si mon inter est ouvert

CLIC DROIT SUR LA CONDITION ELSE ET NEWCOMMAND

siocse21.jpg



ET VOILA

du coup je bouge linter jappel le bit 16 de la commande des feux mes strobes s'allument et si c'est le contraire mon inter est ouvert je dit a la commande feux que je n'ai plus besoin du bit 16 mes strobes sont eteints

maintenant pareil pour les feux de nav

siocse23.jpg

siocse22.jpg



ET CEST TOUT ...

les fonctions setbit et clearbit peuvent etre utiles pour plein d'autres chose comme simuler des touches de claviers ou certaines fonctions disponible dans fsuipc
 
J'ai détacher ton post car j'ai une idée pour faire un truc vraiment propre du même style que simucockpit mais à  ma façon.

On va faire un truc vraiment bien expliquer avec un sommaire, des schémas, des vidéos, des tutos ect...

Tes tutos sont excellents mais faut déjà  maîtriser SIOC pour les utiliser donc je vais crée un sommaire et les incorporer au fur et à  mesure que lon avance dans lapprentissage. Déjà  tes tutos c'est du boulot en moins vu qu'ils sont bien expliquer mais je veux vraiment faire un truc complet, simple et organiser.

Par exemple ton titre je pense que tu devrais le modifier par "programmer une fonction avec un interrupteur à  2 positions" Quest-ce que tu en penses? Ainsi j'ai déjà  4 tutos de toi à  incorporer dans un sommaire logique.

Comprends bien que je ne cherche pas à  "épingler seulement mes tutos" mais que j'ai une certaine façon de travailler ainsi je voudrais qu'on bosse ensemble sur ce tuto de SIOC pour qu'il soit logique et compris par tout le monde (du débutant qui veut apprendre à  lexpert qui se souvient plus d'un truc).
 
J'ai commencer à  étudier SIOC et c'est vraiment pas compliquer même si a 1ère vu ça fait un peu usine a gaz. Je recois mes cartes mardi. Ensuite bah faut se lancer et commencer a faire un sommaire pour SIOC et y aller doucement. En plus j'ai un nouveau clavier depuis hier et je sens que je vais en avoir des trucs a dire sur SIOC :p C'est vraiment un logiciel indispensable car on peut faire trop de truc comparé à  une FDS. Mardi sera le jour où tout va vraiment commencer pour moi!!!
 
avant de commencer bien renseigner le "ini" dans le dossier sioc après installation ; declarer le nombres de cartes branchées et le numero idx sinon rien ne va fonctionner.
après ca c'est du gateau un peu de prise en main et c'est partit ...
 
Oui j'ai vu ça pour renseigner le type, nombre de carte et numéro de port.

J'ai commencer à  rédiger le sommaire sur papier, je dois le fignoler ce week-end et je posterai sur le forum dimanche après-midi ou en début de semaine prochaine. Tu me diras ce que ten pense mais ça va être du lourd!!
 
et rebonjour a tous !

aujourd'hui nous allons utiliser les subroutines !
alors une subroutine ca sert a quoi ? a utiliser plusieurs conditions pour nen faire qu'une tout simplement

petit exemple : j'ai dans mon avion 3 reservoirs 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



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



pareil pour les autres





ok c'est good jusque la !

maintenant la suite

2- creer une subroutine


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





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







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 du coup ca ne marche pas pour cette exemple

maintenant la commande d'allumage





CLIC DROIT SUR LA CONDITION IF ET NEWCOMMAND




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



CLIC DROIT SUR ELSE ET NEWCOMMAND




RECLIC DROIT SUR LA CONDITION IF ET NEWCOMMAND




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



pareil pour les deux autres ..



et voilaaaa!!

du coup on résume

ma subroutine dit que si un de mes 3 réservoirs est en dessous de 30% alors une led dalarme s'allume et si c'est le contraire elle séteint.
pour lier cette subroutine au variables des reservoirs jappel (CALL) la subroutine

les subroutines sont utiles pour plein d'autre choses comme une alarme de circuit hydraulique par exemple ....sur le même principe.
 
Super je t'ai fait un lien à  partir du post SIOC épinglée ;)
 
bonjour a tous

un petit tuto sur la fonction TESTBIT pour bien expliquer la difference avec setbit et clearbit

La fonction TESTBIT permet a une sortie comme une led par exemple de tester en permanence l'etat d'une variable et de son bit de commande .
si le bit viens a changer alors la led s'allumera et au contraire elle seteindra

petit exemple :

nous allons prendre un offset du sdk qui fonctionne avec des bit comme par exemple $0D0C de longueur 2 qui est la commande des feux

dans cet exemple je veux que lorsque les feux strobe sont allumés une led s'allume dans mon cockpit

on peut voir dans le sdk que le bit des strobe est le numero 16



ok je reprend donc un code vierge

1-declarer la variable des feux + une led

on a deja vu ca avant



ok jusque la tout va bien j'ai ma variable fsuipc des light et une led branchée sur la sortie n°15

2-utiliser la fonction TESTBIT pour allumer la led seulement quand les strobe sont actifs!

CLIC DROIT SUR LA VARIABLE ET NEWCOMMAND





et c'est tout !!!

c'est très simple dès que le bit sera de 16 la led va s'allumer et si ce n'est plus le cas elle seteindra tout simplement ...
 
Il est chaud Greg . T'as attraper la fièvre des tutos, tu vois c'est pas très bon de venir sur le forum après on fait des tutos tous les jours :D

En gros "testbit" ça test un bit en permanence, jusqu'à  une modification de celle ci. Genre allumage Glide slope sous le Glide ou batterie descend sous une valeur et ça allume une led. Les possibilités sont infinies en faite.
 
oui dès l'instant ou ya des bits :p

tu vas énormément utiliser cette fonction avec Prosim tu verras ...
 
eh bien le bonjour !

Aujourd'hui comment simuler une touche de clavier avec un bouton ou bien une action dans FS

Il existe dans le SDK quelques variables qui permettent de simuler jusqu'à 9 joysticks comprenant chacun 32 boutons !

Ce qui veut dire qu'il est possible au total de simuler 288 touches !! Eh oui !

Petite mise en pratique

Ici dans le SDK le premier joystick virtuel est l'offset $3340 de longueur 4

siocjo10.jpg


Pour pouvoir contrôler cette variable, il suffit d'utiliser la fonction SETBIT et CLEARBIT pour chaque bouton

à savoir que le premier bouton commence au bit 0

1- déclarer la variable et un bouton

comme précédemment, j'ouvre un code vierge et EDIT NEWVAR

siocjo11.jpg

siocjo12.jpg

siocjo13.jpg


ok on a deja vu tout ca avant ; la variable du joy est declarée et j'ai mis un simple bouton sur l'entrée n°5 de la master

2- définir le rôle du bouton !

dans cet exemple je vais utiliser le bouton n°5 de notre joystick virtuel (donc le bit n°4)

clic droit sur le bouton et NEWCOMMANDE

siocjo14.jpg


comme on a vu précédemment fonction IF (si mon inter est fermé =1)

reclic droit et NEWCOMMAND

siocjo15.jpg


alors je simule le bit 4 pour le joystick

et maintenant le contraire fonction ELSE donc, clic droit sur LE BOUTON ET NEW COMMANDE

siocjo16.jpg


siocjo17.jpg

siocjo18.jpg


VOILA !! à partir de la on se dit c'est fini ! eh ben non

notre bouton active un des bits du joystick mais maintenant je veux par exemple simuler la touche P

une fois notre code opérationnel je lance FlightSimulator ou P3D et j’ouvre FSUIPC version enregistré bien sur ;)
jusque sur la page BOUTONS+SWITCH (n’oubliez pas de lancer sioc également)

ca se présente comme ca

siocjo19.jpg


ATTENTION si vous voulez que cette touche soit specifique a un seul avion il faut choisir l'avion voulut puis cocher la case AIRCRAFTSPECIFIC

ensuite nous allons appuyer sur notre bouton cablé sur la master et il se passe ca :

siocjo20.jpg


voila FSUIPC a detecté l'appui de notre bouton sur le bit 4 maintenant attribution du bit pour appuyer sur la touche P

COCHER LA CASE SELECT FOR KEY PRESS puis SET dans la premiere case et appuyez sur la touche P de votre clavier

siocjo21.jpg


et voila n'oubliez pas de faire ok pour valider tout ca

desormais a chaque impulsion du bouton on simulera la touche P du coup d'origine FS se mettera en pause forcement !!

mais ce n'est pas tout

LA CASE KEY PRESS NOT TO BE HELD ca veut dire que quand j'appuie sur mon bouton la touche P ne sera pas maintenue donc ca sera juste une impulsion P comme le doigt sur le clavier mais qui ne reste pas appuyé.

LA CASE KEY PRESS TO REPEAT c'est le contraire la touche sera repeté tant que notre bouton sera sur ON

donc en gros ca fera PPPPPPPPPPPPPPPPPPPPPPPP

vous remarquerez egalement un autre case pour SET celle la demande l'action a faire quand le bouton est RELACHé

ici on ne met rien parce que sinon quand j’active l’interrupteur je simule la touche P et quand je le relache il le refera de nouveau

on peut également mettre une autre touche au moment du relâchement comme par exemple la touche SHIFT+L

siocjo22.jpg


et pour finir si ce n'est pas une touche de clavier mais une fonction de FS il suffit d'utiliser le tabl'eau de droite en cliquant dans la case SELECT FOR FS CONTROL

siocjo23.jpg


et de choisir dans toute la liste deroulante l'action voulut comme par exemple lenclenchement du pilote auto ou bien allumer les phares dattero

tout est possible cette fonction est très pratique pour depanner si vous ne pouvez pas faire votre code sioc avec certains avions specifique comme le 747 de pmdg par exemple .....
 
Retour
Haut