Page 2 sur 2

Re: Au secours d'un retraité

MessagePosté: Mar 18 Oct 2016 15:44
de Boutondair
Voici quelques liens très utiles

http://tabar57.blog4ever.com - http://www.simucockpit.fr/sioc/ - http://www.simubaron.fr/programmation_sioc.htm

et puis il y a les supers tutos de Mameloose en fin de page viewforum.php?f=135 ils sont pour les nuls comme moi chouettedoights

Bonnes lectures

David cligneoeil grandsoleil

Re: Au secours d'un retraité

MessagePosté: Mar 18 Oct 2016 16:13
de fab
Heureux de t'avoir ouvert les yeux sur le principe de SIOC.
Pense "événementiel" et non "séquentiel" , dis toi que si rien de change dans une variable, SIOC ne fera rien.

Tu verras, on s'y fait très vite sourirebis

Je te laisse parcourir les différents liens donnés par David ...

Re: Au secours d'un retraité

MessagePosté: Mar 18 Oct 2016 17:47
de tabar57
Remets nous ton code qu'on regarde.
C'est pas normal que la led s'éteigne tout de suite, la position de la définition de la variable 009 n'est pas importante, qu'elle soit au début ou à la fin du programme ne change rien.
As tu mis une résistance de limitation de courant entre la led et la sortie de la carte master ? çà par contre c'est important , la led ne doit pas être en direct sur la master

Cordialement

Bernard

Re: Au secours d'un retraité

MessagePosté: Mar 18 Oct 2016 20:46
de sertor33
@ Tabar57, Je voudrais pas abuser ...

1/ Ce code n'allume pas la led :
Var 0002, name gear_sw, Link IOCARD_SW, Input 27
Var 0009, name Led_out, Link IOCARD_OUT, Output 11
{
IF &gear_sw = 1
&Led_out = 1
else
&Led_out = 0
}


2/ Celui ci l'allume à peine le temps de le voir :
Var 0002, name gear_sw, Link IOCARD_SW, Input 27
{
IF &gear_sw = 1
&Led_out = 1
else
&Led_out = 0
}
Var 0009, name Led_out, Link IOCARD_OUT, Output 11


3/ siocmonitor l'allume parfaitement.

4/ le même code allume les led et rentre ou sort le train dans FSX

Comprenne qui pourra !

Re: Au secours d'un retraité

MessagePosté: Mar 18 Oct 2016 21:00
de mameloose
C'est normale ton interr quand tu appuie dessus passe le train à 1 ainsi que la lumière mais si tu relâche le bouton ta commande else eteind la Led mais n'agit pas sur le train....
Donc soit tu modifie le code pour que la Led soit en concordance avec le train ou alors tu passe ton interr en type P ce qui va simuler un auto maintien sur le bouton mais ce n'est pas le but recherché....
Regarde ici pour un code train et Led :
viewtopic.php?f=135&t=4832&p=64040#p64040

Re: Au secours d'un retraité

MessagePosté: Mar 18 Oct 2016 21:16
de sertor33
merci mameloose pour le lien.
Mais
- le test se fait sans FSX (je démarre très basique pour bien assimiler)
- le test est avec le même code sauf la place de la ligne VAR 0009

Autre cas avec FSX cette fois :
- marche :
Var 0009, name Led_out, Link IOCARD_OUT, Output 16
Var 0010, name Led_out20, Link IOCARD_OUT, Output 20
Var 0004, name gear_com, Link FSUIPC_INOUT, Offset $0be8, Length 4 // commande train
{
IF &gear_com = 0 // sorti vert
&Led_out = 1
&Led_out20 = 0
else
&Led_out = 0
&Led_out20 = 1
}


- marche pas :
Var 0004, name gear_com, Link FSUIPC_INOUT, Offset $0be8, Length 4 // commande train
Var 0009, name Led_out, Link IOCARD_OUT, Output 16
Var 0010, name Led_out20, Link IOCARD_OUT, Output 20
{
IF &gear_com = 0 // sorti vert
&Led_out = 1
&Led_out20 = 0
else
&Led_out = 0
&Led_out20 = 1
}


J'ai encore du boulot avant de décoller ...

Re: Au secours d'un retraité

MessagePosté: Mar 18 Oct 2016 21:36
de mameloose
Lit bien mon tutoriel j'ai écrit en gros attention une commande ne s'écrit pas dans une Led !!
Ton code qui ne marche pas c'est normal tu as mis ta commande if et else dans la Led....
Une Led ne commande pas..
Soit une variable avec offset soit un interrupteur sinon.....

Re: Au secours d'un retraité

MessagePosté: Mar 18 Oct 2016 21:47
de sertor33
Merci à tous
Je vais potasser tout ça ...

Bonne soirée

Re: Au secours d'un retraité

MessagePosté: Mar 18 Oct 2016 22:00
de tabar57
On va y arriver, t'inquiètes pas on a tous débuté et parfois on l'oublie .

1 ) ce code ne peut pas fonctionner c'est normal tu mets des conditions sur un truc qui ne varie pas par elle même.
En clair le code que tu vas mettre sous la variable Led_out ne s'exécute que lorsque cette variable change, or il n'y a rien qui change cet état gratgrat .
De plus la syntaxe n'est pas bonne

Voilà ce qu'il faut programmer

Var 0004, name gear_com, Link FSUIPC_INOUT, Offset $0be8, Length 4 // la variable de commande train
{
IF &gear_com = 0 // rentré
{[
&Led_out = 0
}
else
{
&Led_out = 1
}
}

Var 0009, name Led_out, Link IOCARD_OUT, Output 16

Var 0002, name gear_sw, Link IOCARD_SW, Input 27 // ton interrupteur, si son état change alors tu changes la variable 4
qui va lancer le changement d'état de la led
{
IF &gear_sw = 1
{
&gear_com = 16383
}
else
{
&gear_com = 0
}
}


En précisant que ton interrupteur est un interrupteur ON /OFF c'est à dire que son état est fixe , ou il est enclenché ou pas,
d'ailleurs il est bon de préciser dans la déclaration de la variable le type I pour dire que ce n'est pas un poussoir mais un inter

Var 0002, name gear_sw, Link IOCARD_SW, Input 27, type I

Voilà pour ce soir, A+

Cordialement

Bernard