Répétition touche script TARGET

Salle dedieé aux péripheriques : Joystick, palloniers, Track-Ir
Avatar de l’utilisateur

Topic author
Flow
Pilote Philanthrope
Pilote Philanthrope
Messages : 2983
Inscription : 20 février 2018

Répétition touche script TARGET

#1

Message par Flow »

Bonjour tout le monde,

Je cherche un expert en script target / Falcon BMS pour m'aider :)
Je m'explique : j'aimerais ne pas lâcher le manche au profit de la souris pour deux opérations, qui sont régler la pression de l'altimètre et le cap du poignard du HSI.

Deux options : affecter la touche en DirectX ou faire un appel clavier avec Target.

Je veux programmer le DMS shifté avec :
Haut : augmenter pression altimètre
Bas : diminuer pression altimètre
Droite : augmenter cap poignard HSI
Gauche : diminuer cap poignard HSI

Quand je mappe les fonctions en DirectX par le keyfile, je dois appuyer / relâcher pour chaque incrément. C'est faisable pour la pression altimètre, mais pour le cap c'est un peu plus compliqué...

Du coup je me suis dit que j'allais le programmer avec une répétition de touche. J'ai affecté des touches aux fonctions suivantes :
SimHsiHdgIncBy1
SimHsiHdgDecBy1
SimAltPressIncBy1
SimAltPressDecBy1

J'ai ensuite créé un script avec la ligne suivante :

Code : Tout sélectionner

define SimAltPressIncBy1 REXEC(0, 20, "ActKey(PULSE+KEYON+L_SHIFT+'E');") define SimAltPressDecBy1 REXEC(0, 20, "ActKey(PULSE+KEYON+L_SHIFT+'R');") define SimHsiHdgDecBy1 REXEC(0, 20, "ActKey(PULSE+KEYON+L_SHIFT+'Z');") define SimHsiHdgIncBy1 REXEC(0, 20, "ActKey(PULSE+KEYON+L_SHIFT+'A');")
Dans un éditeur de texte, je vois bien que la touche est répétée toutes les 20ms, mais dans BMS il exécute l'action une seule fois puis s'arrête.

Je ne comprend pas trop pourquoi... Pourtant la programmation du DMS shifté est libre en DirectX, donc ça ne vient pas de là... Et l'action est bien exécutée, mais une seule fois.

Voilà, je ne sais pas si c'est clair, si jamais il faut plus de précisions, n'hésitez pas à les demander, je ferais de mon mieux.

Flow.
13600KF • 4080 • FSSB R3 Lighting • Varjo Aero • 35ppd ♥
Image
Avatar de l’utilisateur

dimebug
Webmaster
Webmaster
Messages : 6865
Inscription : 18 août 2001

Re: Répétition touche script TARGET

#2

Message par dimebug »

alors a mon avis, y'a peut être un souçis de timing, également lié a la fréquence de scan de BMS. rexec moins vite car un pulse dur 25ms par défaut, hors la tu appuis automatiquement avant que le pulse soit finis. Du coup si BMS scan un peu lentement, lui ne vois qu'une touche pressé en continue la ou ton editeur de texte a le temps de chopper chaque relâchement.

essaye en mettant + de temps et en différenciant les "handles"

define SimAltPressIncBy1 REXEC(0, 40, "ActKey(PULSE+KEYON+L_SHIFT+'E');")
define SimAltPressDecBy1 REXEC(0, 40, "ActKey(PULSE+KEYON+L_SHIFT+'R');")
define SimHsiHdgDecBy1 REXEC(1, 40, "ActKey(PULSE+KEYON+L_SHIFT+'Z');")
define SimHsiHdgIncBy1 REXEC(1, 40, "ActKey(PULSE+KEYON+L_SHIFT+'A');")
Image Dresseur de cochon (sauvage)
Avatar de l’utilisateur

Topic author
Flow
Pilote Philanthrope
Pilote Philanthrope
Messages : 2983
Inscription : 20 février 2018

Re: Répétition touche script TARGET

#3

Message par Flow »

Super, merci pour ton retour, je vais tenter ça et donner un feedback demain.
Ce soir ce ne sera pas possible.
Mais merci d'avoir regardé mon soucis :)

En tapant mon premier post je me suis dit que je n'avais pas essayé de baisser le rythme du REXEC, et ce que tu me dis tend à le confirmer.
13600KF • 4080 • FSSB R3 Lighting • Varjo Aero • 35ppd ♥
Image
Avatar de l’utilisateur

Topic author
Flow
Pilote Philanthrope
Pilote Philanthrope
Messages : 2983
Inscription : 20 février 2018

Re: Répétition touche script TARGET

#4

Message par Flow »

Ca fonctionne ! Merci Dimebug !
C'était bien un problème d'échantillonnage du coup, carrément de Windows je pense.
20ms ça fait pas assez :)
13600KF • 4080 • FSSB R3 Lighting • Varjo Aero • 35ppd ♥
Image
Avatar de l’utilisateur

Topic author
Flow
Pilote Philanthrope
Pilote Philanthrope
Messages : 2983
Inscription : 20 février 2018

Re: Répétition touche script TARGET

#5

Message par Flow »

Dimebug, nouvelle question. Je ne crée pas un nouveau post pour ne pas spécialement polluer le forum.

Sur mon Warthog, j'ai un axe qui contrôle le zoom du TGP. Cet axe est piloté par le China Hat du Throttle, et est déclaré sur l'axe DirectX DX_THROTTLE_AXIS avec le code suivant :

Code : Tout sélectionner

define RangeDecrease AXIS(DX_THROTTLE_AXIS, -500, 20) define RangeIncrease AXIS(DX_THROTTLE_AXIS, 500, 20)
Mais du coup au début, l'axe est centré, et le premier réglage saute vers un zoom "moitié". Je dois d'abord le ramener à 0.
Le top aurait été que la position de cet axe virtuel soit à 0 lors de sa création, et pas à 50%.

Je ne sais pas si c'est clair ?

Si tu as une idée, ou toute autre personne, je suis tout ouï :)
13600KF • 4080 • FSSB R3 Lighting • Varjo Aero • 35ppd ♥
Image
Avatar de l’utilisateur

dimebug
Webmaster
Webmaster
Messages : 6865
Inscription : 18 août 2001

Re: Répétition touche script TARGET

#6

Message par dimebug »

au démarrage du script, a sa première boucle tu dois pouvoir forcer la valeur par défaut (un peut comme on definis la valeur d'un flag au demarrage), mais des que l'axe sera bougé, le control reviendra a l'axe physique.
Apres y'a sans doute plusieurs façon de faire :)
Image Dresseur de cochon (sauvage)
Avatar de l’utilisateur

Topic author
Flow
Pilote Philanthrope
Pilote Philanthrope
Messages : 2983
Inscription : 20 février 2018

Re: Répétition touche script TARGET

#7

Message par Flow »

Il n'y a pas d'axe physique sur le Warthog pour cet axe DirectX en fait... Du coup il n'y a pas ce problème là.
J'ai essayé de faire un trim et ensuite de bouger l'axe au trim, mais rien n'y fait, il est toujours à 50%.

Voici ce que j'ai essayé :

Code : Tout sélectionner

MapAxis(&Throttle, ANT_ELEV, DX_THROTTLE_AXIS); EXEC("TrimDXAxis(DX_THROTTLE_AXIS, 1024);");
Et aussi :

Code : Tout sélectionner

MapAxis(&Throttle, ANT_ELEV, DX_THROTTLE_AXIS); ActKey(EXEC("TrimDXAxis(DX_THROTTLE_AXIS, 1024);"));
Mais ça ne fonctionne pas :(
13600KF • 4080 • FSSB R3 Lighting • Varjo Aero • 35ppd ♥
Image
Avatar de l’utilisateur

dimebug
Webmaster
Webmaster
Messages : 6865
Inscription : 18 août 2001

Re: Répétition touche script TARGET

#8

Message par dimebug »

le trim n'est de toute façon pas la bonne démarche car avec des valeurs aussi extreme il va te priver de 50% de la course réelle.

Pourquoi tu utilises pas plutôt les touches ou btn DX , surtout que tu pilotes l'axe depuis des boutons...
Image Dresseur de cochon (sauvage)
Avatar de l’utilisateur

Topic author
Flow
Pilote Philanthrope
Pilote Philanthrope
Messages : 2983
Inscription : 20 février 2018

Re: Répétition touche script TARGET

#9

Message par Flow »

Il y a des appels DirectX pour cette fonction ? Je ne l'ai pas vu.
C'est pour F4 BMS, et dans le profil de Morphine, il crée un axe qu'il contrôle ensuite avec deux boutons, et l'axe est ensuite affecté à l'axe analogique "Range Knob" :

Image

Je ne me passe pas de 50% de mon axe, car je le contrôle ensuite avec un trim également :

Code : Tout sélectionner

define TGPZoomDecrease REXEC(2, 50, "TrimDXAxis(DX_THROTTLE_AXIS, -50);") define TGPZoomIncrease REXEC(2, 50, "TrimDXAxis(DX_THROTTLE_AXIS, 50);")
A la base c'était fait comme ça :

Code : Tout sélectionner

define TGPZoomDecrease AXIS(DX_THROTTLE_AXIS, -500, 20) define TGPZoomIncrease AXIS(DX_THROTTLE_AXIS, 500, 20)
Mais en cherchant suite à ta remarque, il y a en effet les deux appels suivants :
SimRangeKnobUp
SimRangeKnobDown

Je pense qu'il était passé par un axe pour le problème de répétition zoom avant / arrière, comme vu plus haut pour le réglage HSI.
Car sinon pour faire un zoom il faut appuyer / lâcher / appuyer / lâcher / ...
Vu que j'ai réglé l'histoire de répétition des touches, je vais tenter la même chose ici sans passer par un axe.

Bref, notre échange m'a mis sur une piste différente :) Merci.
13600KF • 4080 • FSSB R3 Lighting • Varjo Aero • 35ppd ♥
Image
Avatar de l’utilisateur

Topic author
Flow
Pilote Philanthrope
Pilote Philanthrope
Messages : 2983
Inscription : 20 février 2018

Re: Répétition touche script TARGET

#10

Message par Flow »

Je vais tenter ça du coup.
J'y ai affecté SHIFT + T et SHIFT + Y

Code : Tout sélectionner

define TGPZoomDecrease TEMPO(PULSE+KEYON+L_SHIFT+'T', REXEC(0, 40, "ActKey(PULSE+KEYON+L_SHIFT+'T');"), 500) define TGPZoomIncrease TEMPO(PULSE+KEYON+L_SHIFT+'Y', REXEC(0, 40, "ActKey(PULSE+KEYON+L_SHIFT+'Y');"), 500)
13600KF • 4080 • FSSB R3 Lighting • Varjo Aero • 35ppd ♥
Image
Avatar de l’utilisateur

dimebug
Webmaster
Webmaster
Messages : 6865
Inscription : 18 août 2001

Re: Répétition touche script TARGET

#11

Message par dimebug »

y'a toujours plein de possibilités :)apres tu peux aussi bricoler du coté de Falcon, mais sur le hotas par defaut tu as deja le control de zoom du tgp non ? (je confond peut etre avec le A-10C qui l'a a coup sur).
Image Dresseur de cochon (sauvage)
Avatar de l’utilisateur

Topic author
Flow
Pilote Philanthrope
Pilote Philanthrope
Messages : 2983
Inscription : 20 février 2018

Re: Répétition touche script TARGET

#12

Message par Flow »

Le cougar l'a peut-être vu qu'il a un axe analogique supplémentaire ?
Le Warthog n'a pas assez d'axes analogiques (il en manque 1).
13600KF • 4080 • FSSB R3 Lighting • Varjo Aero • 35ppd ♥
Image
Répondre

Revenir à « salle: Periphériques: Hotas, Joysticks, Track-IR »