Bienvenue invité ( Connexion | Inscription )
TiTiVEAF |
19 Mar 2011, 13:47
Message
#21
|
Messages : 4 Inscrit : 19/03/11 Membre n° 3,772 |
Bonjour à tous,
je suis TiTi de la VEAF, et certains ici me connaisse. Je fais un pit de F16, et j'ai un soucis de taille avec SIOC et l'émulation clavier... Je travaille pour le moment avec l'émulation clavier de SIOC, et non l'USBKey TOUS mes codes claviers assignés entre #1 et #99 dans le sioc.ini fonctionnent. - IOCP détecte bien un basculement de switch, et génère le code demandé - si j'affiche un fichier texte, le code clavier demandé est bien restitué... Cependant, lorsque je demande la génération d'un code > ou = à 100, c'est le bazar : - IOCP détecte bien un basculement de switch, et génère le code demandé (là çà va !!) - si j'affiche un fichier texte, je n'ai rien... J'ai réessayé plusieurs fois, et chaque génération de key >=100 foire.... J'ai cherché du côté du nom de la fenêtre active (window=...), mais pas mieux Pouvez vous m'aider ??? merci TiTi |
gillesdrone |
19 Mar 2011, 17:30
Message
#22
|
Messages : 6,185 Inscrit : 24/03/07 Lieu : Sendets 64320 Membre n° 1,668 |
peux tu m'envoyer ton fichier sioc.ini ainsi que ton SSI ? que je regarde
je pourrais regarder cela , j'ai aussi mis quelques émulation clavier dans mon sioc.in et SSI , si je peux t'aider tant mieux --------------------
http://gilles.guesnel.free.fr ma chaine  menacer l' Ours dans son repère, l' Aigle pourrait y laisser quelques plumes |
coolhands |
27 Mar 2011, 13:19
Message
#23
|
Messages : 575 Inscrit : 17/12/04 Lieu : Metz Membre n° 39 |
Bonjour tout le monde,
Je déterre se sujet car j'ai besoin d'un coup de main concernant la prog des fonctions spéciales. Dans la liste du keyboard emulator du sioc on a bien les touches SHIFT, CTRL, ALT mais on ne précise pas si c'est la gauche ou la droite. Je cherche à programmer la séquence d’éjection sur l'entrée de ma mastercard 41 avec la combinaison de touche SHIFT Gauche + e + e + e et je ne comprend pas comment faire pour justement différentier le SHIFT gauche du droit. J'ai déjà essayer avec LOIOCP mais il ne comprend pas la commande de touche multiple. De plus j'aimerais savoir si il y a la possibilité de programmer un appuis de touche prolongé, exemple SHIFT E maintenu pendant 2 secondes. Merci |
Maraudeur |
27 Mar 2011, 17:06
Message
#24
|
Commandant de la 92nd Kodiak AF Indicatif : JR-22 Messages : 4,222 Inscrit : 4/12/04 Lieu : Monnaie Membre n° 17 |
Pour l'éjection, j'ai codé comme suit dans mon SSI:
Var 0039, name EJECT, Link IOCARD_SW, Input 39 { IF &EJECT = 1 { V0999 = DELAY 1042 ,10 V0999 = DELAY 1042 ,10 V0999 = DELAY 1042 ,10 } } Pour ton autre problème de différenciation, j'ai retrouvé ceci: Cela devrait répondre à ton problème puisque les Shift, Ctrl, et autres ont bien un code différent entre gauche et droite. A toi de faire les additions.... --------------------
Cerbro Tvo Utere! Sin Minvs, Parietes Asperget... |
Maraudeur |
27 Mar 2011, 17:17
Message
#25
|
Commandant de la 92nd Kodiak AF Indicatif : JR-22 Messages : 4,222 Inscrit : 4/12/04 Lieu : Monnaie Membre n° 17 |
En revanche, pour ma part, je suis en train de me débattre avec les fonction CALL et son associé SUBROUTINE
En fait, je souhaite faire un CALL Nom_Subrouttine, argument ensuite je souhaite que SUBROUTINE récupère cet argument (un chiffre) et on l'utilise dans la subroutine. --------------------
Cerbro Tvo Utere! Sin Minvs, Parietes Asperget... |
KaTZe |
27 Mar 2011, 17:19
Message
#26
|
Indicatif : RW-24 Messages : 1,589 Inscrit : 18/11/07 Lieu : Villelaure Membre n° 2,712 |
Puis je poser une question, pourquoi passez vous par l'émulation de touche au lieu d'envoyer la commande directement à LockOn
CODE Var 0900, name SW_Eject, Value 1 // Ejection { &LOCKONCMD = 83 &LOCKONCMD = 83 &LOCKONCMD = 83 } Miaou --------------------
120th Black Kite : "Mochibus et Pollutis" M-05 KaTZe |
Maraudeur |
27 Mar 2011, 17:26
Message
#27
|
Commandant de la 92nd Kodiak AF Indicatif : JR-22 Messages : 4,222 Inscrit : 4/12/04 Lieu : Monnaie Membre n° 17 |
Parce que je programme directement dans le SIOC et pas avec le LUA ni les scripts made in Lecréole
--------------------
Cerbro Tvo Utere! Sin Minvs, Parietes Asperget... |
KaTZe |
27 Mar 2011, 17:28
Message
#28
|
Indicatif : RW-24 Messages : 1,589 Inscrit : 18/11/07 Lieu : Villelaure Membre n° 2,712 |
@Marau un exemple de subroutine
CODE Var 0025, name QFE // Hauteur QFE au dessus du sol (cm) { IF &QFE < 2000 { &QFE_Low_Led = 1 // Low altitude Var 0725 } ELSE { &QFE_Low_Led = 0 } CALL &QFE_Range, &QFE // Envoie de la donnée au calcul d'ILS } ------- CODE Var 0263, name QFE_Range, Link SUBRUTINE // Conversion QFE en % dans une bande 0-400 { L0 = &QFE_Range L0 = L0 / 400 L0 = LIMIT 0 ,100 ,0 L0 = 100 - L0 &QFE_pct = L0 } 1> Je récupère l'altitude Radar depuis l'export LockOn (variable QFE) 2> Je teste si l'alti radar est inférieure à 20m (pour allumer la lampe de décision : QFE_Low_Led 3> J'envoie la variable QFE, à la subroutine "QFE_Range", qui va me calculer le pourcentage d'échelle "QFE_pct" pour mon panel ILS (c'est une échelle verticale graduée de 0 à 400 metres) Voilà, n'hésite pas si tu as des questions Miaou Ce message a été modifié par KaTZe - 27 Mar 2011, 17:48. --------------------
120th Black Kite : "Mochibus et Pollutis" M-05 KaTZe |
KaTZe |
27 Mar 2011, 17:47
Message
#29
|
Indicatif : RW-24 Messages : 1,589 Inscrit : 18/11/07 Lieu : Villelaure Membre n° 2,712 |
Parce que je programme directement dans le SIOC et pas avec le LUA ni les scripts made in Lecréole ?? Ben je n'utilise plus non plus les scripts de LeCreole (plus de serveur UDP). Dans Sioc (comme indiqué si dessus) j'envoie le numéro de la commande à LockOn sur la variable LOCKONCMD (qui est remise à zero dans la foulée) CODE Var 0001, name LOCKONCMD // Commandes LOCKON { &LOCKONCMD = 0 } Et dans le programme d'export de FC, j'écoute cette variable V0001 CODE KD_BeforeNextFrame=function(self) recupInfo() end, et CODE function recupInfo() -- Check for data/string from the SIOC server on the socket -- logData("*** Fonction recupInfo activated","\n") local messageRecu = c:receive() if messageRecu then --logData(" ", "\n") --logData("---Log: Data recu de SIOC-----", "\n") local s,l,typeMessage = string.find(messageRecu,"(Arn.%w+)"); typeMessage = tostring(typeMessage); if typeMessage == "Arn.Resp" then --logData("Message type Arn.Resp-----", "\n") -------------------------------------------------------- -- Type = Arn.Resp: -- -------------------------------------------------------- -- extraction du message -- (message type par exemple :1=3:0=23:6=3456) local debut,fin,message = string.find(messageRecu,"([%d:=-]+)") --logData(message) -- longueur du message local longueur longueur = fin - debut -- logData(longueur) -- découpe du message en commande et envoi à lockon -- (commandes type 1=3 0=23 6=3456) local commande,Schan,chan,Svaleur,valeur,i,a,b,c,d,e,f,lim lim = 0 while lim < longueur do a,b,commande = string.find(message,"([%d=-]+)", lim) --logData(commande) c,d,Schan = string.find(commande, "([%d-]+)") chan = tonumber(Schan) --logData(string.format(" Offset = %.0f",chan,"\n")) e,f,Svaleur = string.find(commande, "([%d-]+)",d+1) valeur = tonumber(Svaleur) --logData(string.format(" Valeur = %.0f",valeur,"\n")) if chan ==1 and valeur > 0 then -- Envoi à LockOn LoSetCommand(valeur) end lim = b + 1 end else --logData("---Log: SIOC Message Incorrect; non type Arn.Resp; Message Ignoré -----", "\n") end end end (logdata est le sous programme de debuggage (mis ici en commentaire). Miaou Ce message a été modifié par KaTZe - 27 Mar 2011, 17:51. --------------------
120th Black Kite : "Mochibus et Pollutis" M-05 KaTZe |
Maraudeur |
27 Mar 2011, 17:47
Message
#30
|
Commandant de la 92nd Kodiak AF Indicatif : JR-22 Messages : 4,222 Inscrit : 4/12/04 Lieu : Monnaie Membre n° 17 |
Oui, merci Katze, en fait j'ai réfléchi au problème en écrivant le post, et j'ai trouvé la solution en même temps:
// ***************************************************************************** // * Config_SIOC ver 3.7B1 - By Manolo Vélez - www.opencockpits.com // ***************************************************************************** // * FileName : Test Datalink Gillesdrone.txt // * Date : 27/03/2011 Var 0110, name SIOCKEYS, Link KEYS // Emulateur KEYS { &SIOCKEYS = 0 } Var 0117, name Freq_Data_2, Value 0 // Init Digit 2 FreqData Var 0118, name Freq_Data_3, Value 0 // Link 3 Freqdata Var 0119, name Freq_Data_4, Value 0 // Link 4 FreqData Var 0121, name Freq_Data_6, Value 0 // Init Digit 6 FreqData Var 0123, name RESET_127500, Link IOCARD_SW, Input 4 // Switch to default 1275.00 { IF &RESET_127500 = 1 { &XXoooo = 12 &ooXooo = 7 &oooXoo = 5 &ooooXX = 0 } } Var 0125, name XXoooo, Link IOCARD_DISPLAY, Digit 205, Numbers 2 // Afficheur XXoooo Var 0126, name ooXooo, Link IOCARD_DISPLAY, Digit 204, Numbers 1 // Afficheur ooXooo Var 0127, name oooXoo, Link IOCARD_DISPLAY, Digit 203, Numbers 1 // Afficheur oooXoo Var 0129, name ooooXX, Link IOCARD_DISPLAY, Digit 201, Numbers 2 // Afficheur ooooXX Var 0133, name UP_XX0000, Link IOCARD_SW, Input 22 // CENT_Mil UP { IF &UP_XX0000 = 1 { IF &XXoooo = 13 { &XXoooo = 22 CALL &Send_Command, 24 } ELSE { IF &XXoooo = 39 { &XXoooo = 12 CALL &Send_Command, 24 } ELSE { &XXoooo = &XXoooo + 1 CALL &Send_Command, 24 } } } } Var 0137, name DOWN_XX0000, Link IOCARD_SW, Input 19 // CENT_MIL DONWN { IF &DOWN_XX0000 = 1 { IF &XXoooo = 12 { &XXoooo = 39 CALL &Send_Command, 24 } ELSE { IF &XXoooo = 22 { &XXoooo = 13 CALL &Send_Command, 24 } ELSE { &XXoooo = &XXoooo - 1 CALL &Send_Command, 24 } } } } Var 0130, name UP_ooXooo, Link IOCARD_SW, Input 108 // MIL UP { IF &UP_ooXooo = 1 { IF &ooXooo = 9 { &ooXooo = 0 CALL &Send_Command, 12 } ELSE { &ooXooo = &ooXooo + 1 CALL &Send_Command, 12 } } } Var 0134, name DOWN_ooXooo, Link IOCARD_SW, Input 115 // Decrease ooXooo { IF &DOWN_ooXooo = 1 { IF &ooXooo = 0 { &ooXooo = 9 CALL &Send_Command, 12 } ELSE { &ooXooo = &ooXooo - 1 CALL &Send_Command, 12 } } } Var 0132, name UP_oooXoo, Link IOCARD_SW, Input 3 // UP_oooXoo { IF &UP_oooXoo = 1 { IF &oooXoo = 9 { &oooXoo = 0 CALL &Send_Command, 11 } ELSE { &oooXoo = &oooXoo + 1 CALL &Send_Command, 11 } } } Var 0136, name DOWN_oooXoo, Link IOCARD_SW, Input 8 { IF &DOWN_oooXoo = 1 { IF &oooXoo = 0 { &oooXoo = 9 CALL &Send_Command, 11 } ELSE { &oooXoo = &oooXoo - 1 CALL &Send_Command, 11 } } } Var 0131, name UP_ooooXX, Link IOCARD_SW, Input 113 // Increase ooooXX { IF &UP_ooooXX = 1 { IF &ooooXX = 75 { &ooooXX = 0 CALL &Send_Command, 23 } ELSE { &ooooXX = &ooooXX + 25 CALL &Send_Command, 23 } } } Var 0135, name DOWN_ooooXX, Link IOCARD_SW, Input 114 // Decrease ooooXX { IF &DOWN_ooooXX = 1 { IF &ooooXX = 0 { &ooooXX = 75 CALL &Send_Command, 23 } ELSE { &ooooXX = &ooooXX - 25 CALL &Send_Command, 23 } } } Var 0122, name Send_Command, Link SUBRUTINE // Send Command to SIOC { &SIOCKEYS = &Send_Command &SIOCKEYS = 0 } Ca fonctionne bien avec la Var 0122 Merci quand même --------------------
Cerbro Tvo Utere! Sin Minvs, Parietes Asperget... |
Haut de page · Retour à l'accueil · Contacter le Webmestre | Nous sommes le : 1/11/24 - 00:26 |