Vous n'êtes pas identifié(e).
Rare de trouver ça c'est génial !
Ah bah content que ça serve à tout le monde lol 
Lol une subroutine c'est une case dans laquelle tu peux créer une formule avec plusieurs informations qui vont appeler cette formule en gros
voila donc encodeur 1 a 4 pour chaque chiffre et pour les entrées j'ai mis le 1 sur 2et 3 le 2 sur 4et5 ect ...
// *****************************************************************************
// * Config_SIOC ver 4.5 - By Manuel Velez - www.opencockpits.com
// *****************************************************************************
// * FileName : sioc.txt
// * Date : 28/04/2017
Var 0001, name TRANSPONDEUR, Link FSUIPC_INOUT, Offset $0354, Length 2
Var 0002, name ENCODEURXPDR1, Link IOCARD_ENCODER, Input 2, Aceleration 1, Type 2
{
L0 = &ENCODEURXPDR1
&chiffre1 = &chiffre1 + L0
}
Var 0003, name ENCODEURXPDR2, Link IOCARD_ENCODER, Input 4, Aceleration 1, Type 2
{
L0 = &ENCODEURXPDR2
&chiffre2 = &chiffre2 + L0
}
Var 0004, name chiffre1, Value 1
{
CALL &resultat
IF &chiffre1 > 7
{
&chiffre1 = 0
}
IF &chiffre1 < 0
{
&chiffre1 = 7
}
}
Var 0005, name chiffre2, Value 2
{
CALL &resultat
IF &chiffre2 > 7
{
&chiffre2 = 0
}
IF &chiffre2 < 0
{
&chiffre2 = 7
}
}
Var 0006, name chiffre3
{
CALL &resultat
IF &chiffre3 > 7
{
&chiffre3 = 0
}
IF &chiffre3 < 0
{
&chiffre3 = 7
}
}
Var 0007, name chiffre4
{
CALL &resultat
IF &chiffre4 > 7
{
&chiffre4 = 0
}
IF &chiffre4 < 0
{
&chiffre4 = 7
}
}
Var 0008, name resultat, Link SUBRUTINE
{
L0 = &chiffre1 * 1000
L1 = &chiffre2 * 100
L0 = L0 + L1
L1 = &chiffre3 * 10
L0 = L0 + L1
L0 = L0 + &chiffre4
&resultat = L0
&TRANSPONDEUR = TOBCD &resultat
}
Var 0009, name ENCODEURXPDR3, Link IOCARD_ENCODER, Input 6, Aceleration 1, Type 2
{
L0 = &ENCODEURXPDR3
&chiffre3 = &chiffre3 + L0
}
Var 0010, name ENCODEURXPDR4, Link IOCARD_ENCODER, Input 8, Aceleration 1, Type 2
{
L0 = &ENCODEURXPDR4
&chiffre4 = &chiffre4 + L0
}
alors tout simplement parce que la fonction joystick c'est un peu pour depanner
quand tu as les offset il faut toujours utiliser en priorité et surtout pour une fonction encodeur !
normalement les joystick sont de simple boutons ..
jte fais le code avec 4 encodeurs alors ....
bon alors 4 encodeurs ca fait beaucoup je t'ai fais un code pour deux encodeur le premier bouge les deux premiers chiffre donc de zero a 77 et le deuxieme les deux derniers chiffres !
si tu veux un code a 4 encodeurs ya pas de soucis je te le modifie mais bon ca evite trop dencodeur pour un simple transpondeur ....
voila le code bon ca parait compliqué mais le transpondeur c'est particulier a programmer donc en gros je fais afficher la valeurs voulut dans des variables interne avec tes encodeurs qui ensuite se fusionne pour donner un resultat a 4 chiffre genre 1200 puis linformation est envoyé a loffset du transpondeur ....
voila
// *****************************************************************************
// * Config_SIOC ver 4.5 - By Manuel Velez - www.opencockpits.com
// *****************************************************************************
// * FileName : sioc.txt
// * Date : 28/04/2017
Var 0001, name TRANSPONDEUR, Link FSUIPC_INOUT, Offset $0354, Length 2
Var 0002, name ENCODEURXPDR1, Link IOCARD_ENCODER, Input 2, Aceleration 1, Type 2
{
L0 = &ENCODEURXPDR1
&chiffre2 = &chiffre2 + L0
}
Var 0003, name ENCODEURXPDR2, Link IOCARD_ENCODER, Input 4, Aceleration 1, Type 2
{
L0 = &ENCODEURXPDR2
&chiffre4 = &chiffre4 + L0
}
Var 0004, name chiffre1, Value 1
{
CALL &resultat
IF &chiffre1 > 7
{
&chiffre1 = 0
}
IF &chiffre1 < 0
{
&chiffre1 = 7
}
}
Var 0005, name chiffre2, Value 2
{
CALL &resultat
IF &chiffre2 > 7
{
&chiffre2 = 0
&chiffre1 = &chiffre1 + 1
}
IF &chiffre2 < 0
{
&chiffre2 = 7
&chiffre1 = &chiffre1 - 1
}
}
Var 0006, name chiffre3
{
CALL &resultat
IF &chiffre3 > 7
{
&chiffre3 = 0
}
IF &chiffre3 < 0
{
&chiffre3 = 7
}
}
Var 0007, name chiffre4
{
CALL &resultat
IF &chiffre4 > 7
{
&chiffre4 = 0
&chiffre3 = &chiffre3 + 1
}
IF &chiffre4 < 0
{
&chiffre4 = 7
&chiffre3 = &chiffre3 - 1
}
}
Var 0008, name resultat, Link SUBRUTINE
{
L0 = &chiffre1 * 1000
L1 = &chiffre2 * 100
L0 = L0 + L1
L1 = &chiffre3 * 10
L0 = L0 + L1
L0 = L0 + &chiffre4
&resultat = L0
&TRANSPONDEUR = TOBCD &resultat
}
OK j'avais oublié dans le code que le transpondeur incremente de 0 à 7
Jte fais la modif cette après-midi
oui c'etait pour lexemple jai fais ca vite fait je dois savoir un truc pour te faire un code complet :
combien dencodeur utilisera tu pour changer la frequence ?
parce qu'avec un seul si tu doit afficher 5963 tes pas couché a tourner la molette
alors je texplique
l'offset de controle pour le transpondeur c'est la $0354 de longueur 2 donc tu la declare puis tu declare ton encodeur !
la valeur de loffset est en binaire donc on convertit ca avec la fonction TOBCD
donc dans le code quand tu tourne ton encodeur tu incremente une variable vide que j'ai crée qui elle meme enverra la bonne valeur a loffset pour controler ca dans fsx ou p3d
pour le code ca donne ca :
Var 0001, name TRANSPONDEUR, Link FSUIPC_INOUT, Offset $0354, Length 2
Var 0002, name ENCODEURXPDR, Link IOCARD_ENCODER, Input 2, Aceleration 1, Type 2
{
L0 = &ENCODEURXPDR
IF L0 > 0
{
&resultantexpdr = &resultantexpdr + 1
}
IF L0 < 0
{
&resultantexpdr = &resultantexpdr - 1
}
}
Var 0003, name resultantexpdr, Value 1200
{
&TRANSPONDEUR = TOBCD &resultantexpdr
}
Oula non il ne faut pas utiliser les bits pour la radio mais directement l'offset du transpondeur Jte fais un exemple cette après-midi quand je rentre
Garde la console c'est plus simple et bien sûr que tu peux écrire un commentaire dans les cases descriptif
Oui si tu change dusb lidx changera automatiquement
Bonjour
Moi j'écrirai : &Nav1PullIdent = CHANGEBIT 4, &BoutonNav1Pull et je passerai la var 3340 en lenght 2
Essaies et dis nous, on ne sais jamais
Cordialement
Bernard
la difference bernard c'est que tu n'as pas de remise a zero avec changebit donc tu peux te retrouver avec une commande bloquée en permanence
contrairement au setbit clearbit
non la $3340 c'est bien du longueur 4 !
le code est bon c'est etonnant
tu as bien l'idx 0 dans sioc pour ta master ?
alors le mieux c'est trouver les offset et faire un code sioc pas besoin d'utiliser fsuipc dans ce cas !
si pas possible tu peux trouver les lvars et assigner des touches clavier ou joystick avec sioc et les cartes oc sans probleme jai faijs un tuto ici : http://www.flight-pilote.com/topic-760-sioc-assigner-des-touches-de-claviers-ou-des-fonctions-precises-page-1.html
hello
alors pour les L:var deux solutions ...
soit tu trouve l'offset c'est le mieux on peut detecter les offset grace a fsinterrogate un petit logiciel qui se trouve dans le sdkfsuipc sur le site de peter dowson !
si les offset existent alors c'est de la prog basique avec sioc ...
autrement pour la deuxieme solution c'est ici : http://www.aircockpit.com/viewtopic.php?f=89&t=3709
merci beaucoup 
salut a tous !
petite amelioration du simu explication en video ...
Oui faut pas trop compter quand on fait un simu sinon ça s'arrête vite 
Lol Ouai j'aurai essayé mais c'est sur que juste rajouter un petit transistor ça mange pas de pain et ça évite les code usine à gaz
Lol bon allez le mieux reste la solution de fab
voila
// *****************************************************************************
// * Config_SIOC ver 4.5 - By Manuel Velez - www.opencockpits.com
// *****************************************************************************
// * FileName : sioc.txt
// * Date : 17/03/2017Var 0001, name NAVCRS, Link FSUIPC_INOUT, Offset $0C4E, Length 2
Var 0002, name incrementcrs, Link IOCARD_SW, Input 6
{
IF &incrementcrs = 1
{
IF &resultante = 0
{
&resultante = 1
}
}
CALL &resultante
}Var 0004, name decrementcrs, Link IOCARD_SW, Input 5
{
IF &decrementcrs = 1
{
IF &resultante = 0
{
&resultante = 2
}
}
CALL &resultante
}Var 0003, name initencodeur
{
IF &initencodeur > 359
{
&initencodeur = 0
}
IF &initencodeur < 0
{
&initencodeur = 359
}
&NAVCRS = &initencodeur
}Var 0005, name resultante, Link SUBRUTINE
{
IF &resultante = 1
{
IF &incrementcrs = 0
{
&initencodeur = &initencodeur + 1
&resultante = 0
}
}
IF &resultante = 2
{
IF &decrementcrs = 0
{
&initencodeur = &initencodeur - 1
&resultante = 0
}
}
}
bah pour sioc c'est un très mauvais exemple ca se passe pas aussi difficilement normalement !
jai encore une derniere idée mais c'est vraiment le fond de tiroir ...
jte fais un dernier code
Ouais bon je tourne en rond je peux pas faire mieux je pense que la meilleure solution reste à ajouter un transistor comme fab pour ralentir l'effet de l'encodeur
ok et avec ca ?
// *****************************************************************************
// * Config_SIOC ver 4.5 - By Manuel Velez - www.opencockpits.com
// *****************************************************************************
// * FileName : sioc.txt
// * Date : 17/03/2017Var 0001, name NAVCRS, Link FSUIPC_INOUT, Offset $0C4E, Length 2
Var 0002, name incrementcrs, Link IOCARD_SW, Input 6
{
CALL &resultante
}Var 0004, name decrementcrs, Link IOCARD_SW, Input 5
{
IF &decrementcrs = 1
{
IF &incrementcrs = 0
{
&resultante = 1
}
}
CALL &resultante
}Var 0003, name initencodeur
{
IF &initencodeur > 359
{
&initencodeur = 0
}
IF &initencodeur < 0
{
&initencodeur = 359
}
&NAVCRS = &initencodeur
}Var 0005, name resultante, Link SUBRUTINE
{
IF &resultante = 1
{
IF &incrementcrs = 0
{
IF &decrementcrs = 0
{
&initencodeur = &initencodeur - 1
&resultante = 0
}
}
IF &incrementcrs = 1
{
IF &decrementcrs = 0
{
&initencodeur = &initencodeur - 1
&resultante = 0
}
}
}
}Var 0006, name encodeurcrs, Link IOCARD_ENCODER, Input 5, Aceleration 1, Type 2
{
IF &encodeurcrs > 0
{
&initencodeur = &initencodeur + 1
}
}