SCRIPTS TARGET TM WARTHOG etc

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

Topic author
hellfrog
Messages : 5117
Inscription : 22 août 2008

#26

Message par hellfrog »

dimebug a écrit :pour ton post 14,
c'est le 12 !
j'ai l'impression que tu te complique la vie...
Tu peux utiliser un seul flag pour les 2
un appuis bref EXEC le flag = 0
un appuis long EXEC le Flag = 1
oui j'ai vu ça après, mais n'empêche que ça marchait pas...
c'est exactement ce a quoi sert la fonction tempo
donc l'idée était bonne !
la valeur optionnel est en millisecondes
quelle est la syntaxe correcte pour utiliser une variable ou un flag à la place de la durée, et est-ce possible ?

Maintenant, en admettant que tu veuilles faire un truc plus tordu sur un autre bouton dependant du temps d'appuis sur la trigger
c'est le but, utiliser ça pour développer des "modes", comme IO UMD, mais en plus ou independement


EDIT :
include "target.tmh";
include "FC2_KA_50_Macros.ttm";

int main()
{
if(Init(&EventHandle)) return 1;

MapKey(&Joystick, TG1, 0);

char DepressedLess, PressDuration;

PressDuration = 400;
DepressedLess = 0;



MapKey(&Joystick, TG1, TEMPO(EXEC("DepressedLess=1;"), EXEC("DepressedLess=!DepressedLess;"), 400));

if(!DepressedLess) EXEC("ActKey(PULSE+KEYON+'+');");
else if(DepressedLess) EXEC("ActKey(PULSE+KEYON+'-');");

}
int EventHandle(int type, alias o, int x)
{
DefaultMapping(&o, x);
}
me retourne toujours à l'exécution : "Runtime Error : Symbol not found in Depressed...blabla" pourquoi ??? => EDIT : char est mal placé : à mettre AVANT main

reste les deux sujets : le "timer", et les positions HAT M
[SIGPIC]http://www.kirikoo.net/images/8WoodMAn- ... 212448.png[/img][/SIGPIC] (\_/) (_'.') ..i72600k@4.5GHz + AsusSabertoothZ77 + 16Go GSkill10700 + AC Noctua + Raptor + Win7x64Ult + WH MFDs SaitekThr 1920x1080x3 dt 1 tactile 6950 2G
(")_(")
[/align]
Avatar de l’utilisateur

matbog
Pilote Philanthrope
Pilote Philanthrope
Messages : 2366
Inscription : 13 octobre 2009

#27

Message par matbog »

Bonjour.
Ca ne serait pas parce que la déclaration de tes flags sont faites dans le main et non a l'extérieur?
De plus je ne suis pas sur de comprendre...: pourquoi passer par un flag alors que la fonction TEMPO est là pour ça? Tu pourrais mettre tes "ActKey(PULSE+KEYON+'+');" et "ActKey(PULSE+KEYON+'-');" à la place de tes "DepressedLess=1;" et "DepressedLess=!DepressedLess;" non?
Avatar de l’utilisateur

dimebug
Pilote d'essais
Pilote d'essais
Messages : 6904
Inscription : 18 août 2001

#28

Message par dimebug »

alors dans ce cas, prenons plutôt les choses dans l'ordre, commence par dire ce que tu veux faire, et après on regarde les différentes façon de le faire, et surtout la plus simple.

Il faut que les post soient clair et précis pour les personnes qui cherchent des infos
Image Dresseur de cochon (sauvage)
Avatar de l’utilisateur

matbog
Pilote Philanthrope
Pilote Philanthrope
Messages : 2366
Inscription : 13 octobre 2009

#29

Message par matbog »

Comme Hellfrog nous incite a poser nos questions voici la mienne:

Sous DCS BS je gère le master arm avec l'interruprteur APU (2 positions : APUON et APUOFF). Je met donc le master arm sur ON (touche 'z') quand l'interrupteur est en position APUON et sur OFF (touche 'z' également) quand l'interrupteur est sur le position APUOFF, jusque la rien de compliqué!

Le problème se pose lorsque que j'exécute le script lorsque l'interrupteur est en position APUON au départ. Dans ce cas le fonctionnement de mon interrupteur est inversé: dans le jeu le master arm est mis à ON quand l'interrupteur passe en position APUOFF et vice-versa.

Je voudrais donc gérer ceci avec un flag (MasterArm) que j'initialise à 0 et qui autorise l'envoie de la commande 'z' uniquement quand l'interrupteur est dans la bonne position.

Bon voici mon code, ça sera peut être plus clair:

include "target.tmh"

char MasterArm = 0;


int main()

{
MapKey(&Throttle, APUON, CHAIN(EXEC("if (MasterArm == 0) ActKey(PULSE+KEYON+'z');"),
EXEC("if (MasterArm == 0) MasterArm = 1;")));
MapKey(&Throttle, APUOFF, CHAIN(EXEC("if (MasterArm == 1) ActKey(PULSE+KEYON+'z');"),
EXEC("if (MasterArm == 1) MasterArm = 0;")));
}

int EventHandle(int type, alias o, int x)
{
DefaultMapping(&o, x);
}

Avec ce code lorsque que j'exécute le script alors que l'interrupteur est en position APUON au départ et que je le passe en position APUOFF la commande 'z' ne devrait pas être envoyé............mais elle l'est:crying:
J'ai l'impression que les passage conditionnel (if) ne sont pas pris en compte.
Quelqu'un saurait pourquoi?
Merci d'avance!

Avatar de l’utilisateur

Topic author
hellfrog
Messages : 5117
Inscription : 22 août 2008

#30

Message par hellfrog »

dimebug a écrit :alors dans ce cas, prenons plutôt les choses dans l'ordre, commence par dire ce que tu veux faire, et après on regarde les différentes façon de le faire, et surtout la plus simple.

Il faut que les post soient clair et précis pour les personnes qui cherchent des infos
je veux "simplement" avoir un logical flag utilisable ailleurs dans le script et dont l'état est fonction de la duree de press du bouton, que ce soit TG1 ou un autre n'a aucune importance.
C'était pas si simple que ça à faire, mais ça marchait dans Foxy... par contre ça consommait pas mal de flags ; avec la syntaxe du script du WH ça devrait être bien plus simple.

bien vu pour la place du "char"... j'avais pas vu ça, cétait au début avant que je ne fasse d'autres scripts... vais retenter qd j'aurais le temps,

mais là je vais faire une pause, j'ai un RAID de 3 To planté à récupérer... ça risque de me prendre un peut de temps...:wacko:
[SIGPIC]http://www.kirikoo.net/images/8WoodMAn- ... 212448.png[/img][/SIGPIC] (\_/) (_'.') ..i72600k@4.5GHz + AsusSabertoothZ77 + 16Go GSkill10700 + AC Noctua + Raptor + Win7x64Ult + WH MFDs SaitekThr 1920x1080x3 dt 1 tactile 6950 2G
(")_(")
[/align]
Avatar de l’utilisateur

Topic author
hellfrog
Messages : 5117
Inscription : 22 août 2008

#31

Message par hellfrog »

mat69 a écrit :
Avec ce code lorsque que j'exécute le script alors que l'interrupteur est en position APUON au départ et que je le passe en position APUOFF la commande 'z' ne devrait pas être envoyé............mais elle l'est:crying:
J'ai l'impression que les passage conditionnel (if) ne sont pas pris en compte.
Quelqu'un saurait pourquoi?
Merci d'avance!

a l'initialization ton flag est à 0, or le premier test est vrai si ce flag est à zero, donc il s'exécute, donc tu as envoie de la touche z, c'est normal.

tes if sont exécutés, mais les tests ne sont pas dans le bon ordre pour ce que tu veux faire. Peut etre ajouter un else ? ou un second flag pour première boucle du script au lancement ? mettre le if avant mapkey ?, bref penser ça différement. j'ai pas le temps de creuser plus cette fin de semaine, desolé, je reverrais plus tard.
[SIGPIC]http://www.kirikoo.net/images/8WoodMAn- ... 212448.png[/img][/SIGPIC] (\_/) (_'.') ..i72600k@4.5GHz + AsusSabertoothZ77 + 16Go GSkill10700 + AC Noctua + Raptor + Win7x64Ult + WH MFDs SaitekThr 1920x1080x3 dt 1 tactile 6950 2G
(")_(")
[/align]
Avatar de l’utilisateur

matbog
Pilote Philanthrope
Pilote Philanthrope
Messages : 2366
Inscription : 13 octobre 2009

#32

Message par matbog »

Aaaah je savais pas que le script exécutait toutes les lignes au démarrage. Je pensais qu'il fallait qu'il y ai déplacement d'un interrupteur ou bouton pour exécuter une ligne. merci Hellfrog je vais penser ça différemment.
Avatar de l’utilisateur

dimebug
Pilote d'essais
Pilote d'essais
Messages : 6904
Inscription : 18 août 2001

#33

Message par dimebug »

de toute façon, pour ton problème, il n'y a pas de vrai solution car le script ne causant pas a BS, il ne peut a aucun moment savoir la position du Master Arm dans le soft. La seule bonne methode est une check avant le vol pour valider la position des switch sur la Throttle. D’ailleurs A-10C de DCS propose une option pour forcer la position des switch "virtuels" en fonction des switchs des commandes de vol, comme quoi t'es pas le premier a t’être posé la question :-)
Image Dresseur de cochon (sauvage)
Avatar de l’utilisateur

dimebug
Pilote d'essais
Pilote d'essais
Messages : 6904
Inscription : 18 août 2001

#34

Message par dimebug »

voila pour le post 12 :

si la trigger 1 a été pressé brièvement, un appuis sur S2 genere un F
Si la TG1 a été pressé + de 400 millisecondes, un appuis sur S2 genere un V

include "target.tmh";


char longpress;

int main()
{
if(Init(&EventHandle)) return 1;

SetShiftButton(&Joystick, S4, &Throttle, PSF, PSB);


longpress = 0; //set longpress flag to none


//si Tg1 est pressé + de 400 millisecondes, le flag longpress devient vrai, si pressé moins de 400 mls, le flag est faux
MapKey(&Joystick, TG1, TEMPO(EXEC("longpress=0;"), EXEC("longpress=1;"), 400));

//si longpress est vrai, generer un v, sinon generer un f quand je presse S2
MapKey(&Joystick, S2, EXEC("if(longpress) ActKey(PULSE+KEYON+'v'); else ActKey(PULSE+KEYON+'f');"));


}
int EventHandle(int type, alias o, int x)
{
DefaultMapping(&o, x);
}
Image Dresseur de cochon (sauvage)
Avatar de l’utilisateur

matbog
Pilote Philanthrope
Pilote Philanthrope
Messages : 2366
Inscription : 13 octobre 2009

#35

Message par matbog »

Oui, Dimebug, je suis d'accord sur le fait qu'on ne dialogue pas avec le simu mais on sais qu'au lancement les inters on des positions par défaut (OFF pour le master arm).
Je ne savais pour DCS A-10, c'est une très bonne idée:Jumpy::Jumpy::Jumpy:
Avatar de l’utilisateur

Topic author
hellfrog
Messages : 5117
Inscription : 22 août 2008

#36

Message par hellfrog »

merdi Dimebug,

j'inclus ton post dans le post 12 comme soluce au probleme posé, pour plus de clarté

donc mon idee de script etait bonne, à simplifier, sauf que la ligne CHAR etait APRES main et pas AVANT, d'où le non fonctionnement...



Par contre pour avoir une variable à la place de 400 msec : c'est possible ?
(oui je suis gourmand)
[SIGPIC]http://www.kirikoo.net/images/8WoodMAn- ... 212448.png[/img][/SIGPIC] (\_/) (_'.') ..i72600k@4.5GHz + AsusSabertoothZ77 + 16Go GSkill10700 + AC Noctua + Raptor + Win7x64Ult + WH MFDs SaitekThr 1920x1080x3 dt 1 tactile 6950 2G
(")_(")
[/align]
Avatar de l’utilisateur

dimebug
Pilote d'essais
Pilote d'essais
Messages : 6904
Inscription : 18 août 2001

#37

Message par dimebug »

dans ton flag, tu ne stocks que des caractères lettre, chiffre, mots mais des millisecondes, juste des informations. Comme ici on utilise une fonction préformatée (TEMPO), l’élément optionnel est un chiffre et rien d'autre. Tu ne peut pas modifier la fonction. Si tu veux mettre quelques chose de différent, il va falloir que tu crée ta propre fonction ou faire un EXEC incluant du code. Si tu veux utiliser plein de fois cette astuce dans ton fichier, il vaut mieux créer ta propre fonction et l'appeler quand tu en as besoin.
Image Dresseur de cochon (sauvage)
Avatar de l’utilisateur

dimebug
Pilote d'essais
Pilote d'essais
Messages : 6904
Inscription : 18 août 2001

#38

Message par dimebug »

dbl post
Image Dresseur de cochon (sauvage)
Avatar de l’utilisateur

Topic author
hellfrog
Messages : 5117
Inscription : 22 août 2008

#39

Message par hellfrog »

meme en adressant le flag dans TEMPO avec &flag ou &&flag ?

la fonction TEMPO verra le nom du flag, pas le contenu ?
[SIGPIC]http://www.kirikoo.net/images/8WoodMAn- ... 212448.png[/img][/SIGPIC] (\_/) (_'.') ..i72600k@4.5GHz + AsusSabertoothZ77 + 16Go GSkill10700 + AC Noctua + Raptor + Win7x64Ult + WH MFDs SaitekThr 1920x1080x3 dt 1 tactile 6950 2G
(")_(")
[/align]
Avatar de l’utilisateur

dimebug
Pilote d'essais
Pilote d'essais
Messages : 6904
Inscription : 18 août 2001

#40

Message par dimebug »

le contenu de tempo est rigide:

Action A, Action B, Temps de bascule optionnel

les actions A et B peuvent etre de simple keystrokes, des outputs outons DirectX, des fonctions ou du code (via EXEC et compagnie).

Cette fonction est faite pour çà et ne fonctionne que comme ça. si tu ne rentre pas le type de données que Target attends, au pire ça se lancera pas, au mieux ça marchera pas et Target utilisera le temps de bascule par défaut.
Image Dresseur de cochon (sauvage)
Avatar de l’utilisateur

Topic author
hellfrog
Messages : 5117
Inscription : 22 août 2008

#41

Message par hellfrog »

:crying::déçu: ... mais c'est pas si grave, on peut faire sans !

reste le challenge du timer post 7...

pas evident

mais ça permettrait de développer des trucs intéressant


sinon peut-on avoir plusierus "include" en debut de script ?
pou ajouter un autre module, dans un script, comme target.tmh, et y développer des fonctions ? elles seraient automatiquement disponibles pour tous les scripts ? ou c'est pas gagné ?

(à terme derrière, l'idée de récupérer le statut des boutons du WH, et communiquer avec BS en lua via export.lua, pour avoir la synchronisation des fonctions simu et de la position des inters du joy...., et pour que ça marche il faudrait temporiser ou executer des boucles régulièrement )
[SIGPIC]http://www.kirikoo.net/images/8WoodMAn- ... 212448.png[/img][/SIGPIC] (\_/) (_'.') ..i72600k@4.5GHz + AsusSabertoothZ77 + 16Go GSkill10700 + AC Noctua + Raptor + Win7x64Ult + WH MFDs SaitekThr 1920x1080x3 dt 1 tactile 6950 2G
(")_(")
[/align]
Avatar de l’utilisateur

dimebug
Pilote d'essais
Pilote d'essais
Messages : 6904
Inscription : 18 août 2001

#42

Message par dimebug »

pour ton timer tout depend de ce que tu veut faire avec mais c'est possible de faire un REXEC qui loop en faisant varier l'etat d'un flag, c'est pas bien compliqué, il y en a un dans le ficher d'origine DCS FC2 A-10A sur le Hat 4.
Tu peux aussi faire un REXEC qui loop pas...
REXEC est un outil de timing qui evite de se compliquer la vie avec des flags

Le rexec loop toute les 6 secondes (6000 millisecondes) et active un program custom de chaff et flare programmé dans une fonction nommé Chaff_Flare_programm_1

faut déjà bien savoir se servir de chaque fonction avant de tout mélanger. On peut includer d'autres choses ;)
Image Dresseur de cochon (sauvage)
Avatar de l’utilisateur

matbog
Pilote Philanthrope
Pilote Philanthrope
Messages : 2366
Inscription : 13 octobre 2009

#43

Message par matbog »

Hellfrog dans le post29 tu me dis qu'a l'exécution du script ma première ligne --------MapKey(&Throttle, APUON, CHAIN(EXEC("if (MasterArm == 0) ActKey(PULSE+KEYON+'z');"), EXEC("if (MasterArm == 0) MasterArm = 1;")));--------- est éxécutée car toutes les conditions sont vrai (APUON et MasterArm=0).

Es tu sur de ce fonctionnement?

Je te pose cette question car je scrute les commandes envoyées grâce à Event Tester et quand je lance le script aucune commande quelle qu'elle soit n'est affichée... Ce qui tendrait a dire que la ligne n'est pas exécuté. Et donc je ne comprends pas pourquoi quand je passe ensuite l'interrupteur sur APUOFF la commande 'z' est envoyée...

Désolé si ces questions vous paraissent triviales mais j'ai pas encore compris le fonctionnement du moteur d'exécution de TARGET.
Avatar de l’utilisateur

fogly
Nouvelle Recrue
Nouvelle Recrue
Messages : 140
Inscription : 04 août 2001

Re: Le petit doigt

#44

Message par fogly »

Je voudrais savoir comment faire pour activer une touche "SHIFT" Sur S3 ou S4
Car j'ai sur le meme bouton "H2R" deux commandes l'une pour TeamSpeak canal simple l'autre teamSpeak canal general la 1ère appuis sans Shift la seconde avec Shift.Mais quand je lance le
Event Tester les deux fonctions ne sont pas separées! La touche S4 a bien été programmée avec le clavier "LSHIFT" et en "Hold" mais cela ne me separe pas les fonctions.
Merci d'avance
Avatar de l’utilisateur

Topic author
hellfrog
Messages : 5117
Inscription : 22 août 2008

#45

Message par hellfrog »

@ Mat69 : :crying:

EDIT :
script avec erreurs de syntaxe :
supprime les espaces entre if et ( : if_( => if(
[SIGPIC]http://www.kirikoo.net/images/8WoodMAn- ... 212448.png[/img][/SIGPIC] (\_/) (_'.') ..i72600k@4.5GHz + AsusSabertoothZ77 + 16Go GSkill10700 + AC Noctua + Raptor + Win7x64Ult + WH MFDs SaitekThr 1920x1080x3 dt 1 tactile 6950 2G
(")_(")
[/align]
Avatar de l’utilisateur

Topic author
hellfrog
Messages : 5117
Inscription : 22 août 2008

#46

Message par hellfrog »

@ fogly :

sous TARGET GUI : tu as dans les options de GUI une fenetre pour définir / activer ou pas IO et UMD et les avoir en on/off ou appui maintenu (shift), et quelle touche y correspond (par defaut S3 est IO => d'où ton problème)
(c'est dans le manuel de TARGET GUI)

sous TARGET Script :

SetShiftButton(&Joystick, S3) // affecte S3 à IO

si tu veux faire S3 /I = a et S3 /O =b ; il faut un autre bouton que S3 pour I O : donc modifier la ligne ci dessus dans ton script.
[SIGPIC]http://www.kirikoo.net/images/8WoodMAn- ... 212448.png[/img][/SIGPIC] (\_/) (_'.') ..i72600k@4.5GHz + AsusSabertoothZ77 + 16Go GSkill10700 + AC Noctua + Raptor + Win7x64Ult + WH MFDs SaitekThr 1920x1080x3 dt 1 tactile 6950 2G
(")_(")
[/align]

Raingo
Nouvelle Recrue
Nouvelle Recrue
Messages : 46
Inscription : 31 mars 2009

#47

Message par Raingo »

Merçi, hellfrog pour ta réponse :notworthy
Avatar de l’utilisateur

fogly
Nouvelle Recrue
Nouvelle Recrue
Messages : 140
Inscription : 04 août 2001

#48

Message par fogly »

Merci Hellfrog tu m'as ouvert les yeux ça fonctionne :notworthy
Avatar de l’utilisateur

Topic author
hellfrog
Messages : 5117
Inscription : 22 août 2008

Script Aribrake pour Falcon

#49

Message par hellfrog »

[SIGPIC]http://www.kirikoo.net/images/8WoodMAn- ... 212448.png[/img][/SIGPIC] (\_/) (_'.') ..i72600k@4.5GHz + AsusSabertoothZ77 + 16Go GSkill10700 + AC Noctua + Raptor + Win7x64Ult + WH MFDs SaitekThr 1920x1080x3 dt 1 tactile 6950 2G
(")_(")
[/align]
Avatar de l’utilisateur

Topic author
hellfrog
Messages : 5117
Inscription : 22 août 2008

SCRIPTS MFDs : optimisation

#50

Message par hellfrog »

Amélioration des scripts présentés ici
posts 16 à 18 :
http://www.checksix-forums.com/showpost ... stcount=16
http://www.checksix-forums.com/showpost ... stcount=17
http://www.checksix-forums.com/showpost ... stcount=18

en ayant recours à des fonctions.

Cela supprime toutes les instructions "if" : plus performant et plus esthétique comme programmation

Le corps du programme est bcp plus clair et lisible au niveau des modes pour chaque OSB

Les définitions de touches pour chaque mode sont regroupées en tete de fichier dans la définition des modes en tant que fonctions

Code : Tout sélectionner

include "target.tmh"; include "BS_KA_50_Macros_Hellfrog.ttm"; // // definitions des modes des MFDs // RMFD int mode_RMFD_R828; int mode_RMFD_HUD; int mode_RMFD_NVG; int mode_RMFD_IT23; int mode_RMFD_ABRIS; int mode_RMFD_ADF; int mode_RMFD_Light_AuxPanel; int mode_RMFD_Light_PitPanel; int mode_RMFD_Light_HSIADI; int mode_RMFD_Light_PitNVG; int mode_RMFD_R800; int mode_RMFD_R800_Chanels; // LMFD int mode_LMFD_HSI; int mode_LMFD_RadAlt; int mode_LMFD_ADI; int mode_LMFD_QFE; int mode_LMFD_Clock; // int mode_LMFD_ABRIS; // int main() { if(Init(&EventHandle)) return 1; // // initialisation des modes // RMFD mode_RMFD_R828 = EXEC("MapKey(&RMFD, GAINU, REXEC(91, 300, ""ActKey(PULSE+KEYON+Volume_up);""));MapKey(&RMFD, GAIND, REXEC(90, 300, ""ActKey(PULSE+KEYON+Volume_down);""));MapKey(&RMFD, CONU, REXEC(89, 300, ""ActKey(PULSE+KEYON+Channel_selector_next);""));MapKey(&RMFD, COND, REXEC(88, 300, ""ActKey(PULSE+KEYON+Channel_selector_previous);""));MapKey(&RMFD, SYMU, REXEC(87, 300, ""ActKey(PULSE+KEYON+Tuner_button);""));MapKey(&RMFD, SYMD, REXEC(86, 300, ""ActKey(PULSE+KEYON+R_828_Squelch);""));"); mode_RMFD_HUD = EXEC("MapKey(&RMFD, BRTU, REXEC(85, 300, ""ActKey(PULSE+KEYON+HUD_Brightness_up);""));MapKey(&RMFD, BRTD, REXEC(84, 300, ""ActKey(PULSE+KEYON+HUD_Brightness_down);""));MapKey(&RMFD, GAINU, REXEC(83, 300, ""ActKey(PULSE+KEYON+HUD_Modes_Reticle_Night_Day);""));MapKey(&RMFD, GAIND, REXEC(82, 300, ""ActKey(PULSE+KEYON+Raise_Lower_Colour_Filter_On_HUD);""));MapKey(&RMFD, SYMU, REXEC(81, 300, ""ActKey(PULSE+KEYON+HUD_Test);""));"); mode_RMFD_NVG = EXEC("MapKey(&RMFD, BRTU, REXEC(80, 300, ""ActKey(PULSE+KEYON+Helmet_device_brightness_Up);""));MapKey(&RMFD, BRTD, REXEC(79, 300, ""ActKey(PULSE+KEYON+Helmet_device_brightness_Down);""));"); mode_RMFD_IT23 = EXEC("MapKey(&RMFD, BRTU, REXEC(78, 300, ""ActKey(PULSE+KEYON+IT_23_brightness_Up);""));MapKey(&RMFD, BRTD, REXEC(77, 300, ""ActKey(PULSE+KEYON+IT_23_brightness_Down);""));MapKey(&RMFD, CONU, REXEC(76, 300, ""ActKey(PULSE+KEYON+IT_23_contrast_Up);""));MapKey(&RMFD, COND, REXEC(75, 300, ""ActKey(PULSE+KEYON+IT_23_contrast_Down);""));MapKey(&RMFD, SYMU, EXEC(""ActKey(PULSE+KEYON+IT_23_Black_White_indication_switch);""));"); mode_RMFD_ABRIS = EXEC("MapKey(&RMFD, BRTU, REXEC(74, 300, ""ActKey(PULSE+KEYON+ABRIS_Brightness_Increase);""));MapKey(&RMFD, BRTD, REXEC(73, 300, ""ActKey(PULSE+KEYON+ABRIS_Brightness_Decrease);""));MapKey(&RMFD, SYMU, EXEC(""ActKey(PULSE+KEYON+ABRIS_Power);""));"); mode_RMFD_ADF = EXEC("MapKey(&RMFD, GAINU, REXEC(72, 300, ""ActKey(PULSE+KEYON+ADF_Volume_up);""));MapKey(&RMFD, GAIND, REXEC(71, 300, ""ActKey(PULSE+KEYON+ADF_Volume_down);""));MapKey(&RMFD, CONU, REXEC(70, 300, ""ActKey(PULSE+KEYON+ADF_Channel_next);""));MapKey(&RMFD, COND, REXEC(69, 300, ""ActKey(PULSE+KEYON+ADF_Channel_prevous);""));MapKey(&RMFD, SYMU, REXEC(68, 300, ""ActKey(PULSE+KEYON+ADF_Mode_change);""));MapKey(&RMFD, SYMD, REXEC(67, 300, ""ActKey(PULSE+KEYON+ADF_Receiver_mode_change);""));MapKey(&RMFD, BRTU, REXEC(66, 300, ""ActKey(PULSE+KEYON+ADF_Self_test);""));"); mode_RMFD_Light_AuxPanel = EXEC("MapKey(&RMFD, BRTU, REXEC(65, 300, ""ActKey(PULSE+KEYON+Lighting_auxiliary_panel_brightness_knob__Up);""));MapKey(&RMFD, BRTD, REXEC(64, 300, ""ActKey(PULSE+KEYON+Lighting_auxiliary_panel_brightness_knob_Down);""));"); mode_RMFD_Light_PitPanel = EXEC("MapKey(&RMFD, BRTU, REXEC(63, 300, ""ActKey(PULSE+KEYON+Lighting_cockpit_panel_brightness_knob_Up);""));MapKey(&RMFD, BRTD, REXEC(62, 300, ""ActKey(PULSE+KEYON+Lighting_cockpit_panel_brightness_knob_Down);""));"); mode_RMFD_Light_HSIADI = EXEC("MapKey(&RMFD, BRTU, REXEC(61, 300, ""ActKey(PULSE+KEYON+Lighting_HSI_and_ADI_brightness_knob__Up);""));MapKey(&RMFD, BRTD, REXEC(60, 300, ""ActKey(PULSE+KEYON+Lighting_HSI_and_ADI_brightness_knob_Down);""));"); mode_RMFD_Light_PitNVG = EXEC("MapKey(&RMFD, BRTU, REXEC(59, 300, ""ActKey(PULSE+KEYON+Lighting_night_vision_cockpit_brightness_knob_Up);""));MapKey(&RMFD, BRTD, REXEC(58, 300, ""ActKey(PULSE+KEYON+Lighting_night_vision_cockpit_brightness_knob_Down);""));"); mode_RMFD_R800 = EXEC("MapKey(&RMFD, GAINU, REXEC(57, 300, ""ActKey(PULSE+KEYON+Emergency_receiver);""));MapKey(&RMFD, GAIND, REXEC(56, 300, ""ActKey(PULSE+KEYON+R_800_Squelch);""));MapKey(&RMFD, SYMU, REXEC(55, 300, ""ActKey(PULSE+KEYON+Data_transfer_rate_switch);""));MapKey(&RMFD, SYMD, REXEC(54, 300, ""ActKey(PULSE+KEYON+Test_button);""));MapKey(&RMFD, CONU, REXEC(53, 300, ""ActKey(PULSE+KEYON+ADF_switchdefine);""));MapKey(&RMFD, COND, REXEC(52, 300, ""ActKey(PULSE+KEYON+R_800_AM_FM_Mode_switch);""));"); mode_RMFD_R800_Chanels = EXEC("MapKey(&RMFD, GAINU, REXEC(51, 300, ""ActKey(PULSE+KEYON+R_800_Rotary_1_Up);""));MapKey(&RMFD, GAIND, REXEC(50, 300, ""ActKey(PULSE+KEYON+R_800_Rotary_1_Down);""));MapKey(&RMFD, BRTU, REXEC(49, 300, ""ActKey(PULSE+KEYON+R_800_Rotary_2_Up);""));MapKey(&RMFD, BRTD, REXEC(48, 300, ""ActKey(PULSE+KEYON+R_800_Rotary_2_Down);""));MapKey(&RMFD, SYMU, REXEC(47, 300, ""ActKey(PULSE+KEYON+R_800_Rotary_3_Up);""));MapKey(&RMFD, SYMD, REXEC(46, 300, ""ActKey(PULSE+KEYON+R_800_Rotary_3_Down);""));MapKey(&RMFD, CONU, REXEC(45, 300, ""ActKey(PULSE+KEYON+R_800_Rotary_4_Up);""));MapKey(&RMFD, COND, REXEC(44, 300, ""ActKey(PULSE+KEYON+R_800_Rotary_4_Down);""));"); // LMFD mode_LMFD_HSI = EXEC("MapKey(&LMFD, GAINU, REXEC(39, 300, ""ActKey(PULSE+KEYON+HSI_Commanded_heading_rotary_right);""));MapKey(&LMFD, GAIND, REXEC(38, 300, ""ActKey(PULSE+KEYON+HSI_Commanded_heading_rotary_left);""));MapKey(&LMFD, SYMU, REXEC(37, 300, ""ActKey(PULSE+KEYON+HSI_Commanded_course_rotary_right);""));MapKey(&LMFD, SYMD, REXEC(36, 300, ""ActKey(PULSE+KEYON+HSI_Commanded_course_rotary_left);""));MapKey(&LMFD, OSB06, EXEC(""ActKey(PULSE+KEYON+HSI_Desired_track_angle_Desired_heading__Auto_Manual);""));"); mode_LMFD_RadAlt = EXEC("MapKey(&LMFD, SYMU, REXEC(35, 300, ""ActKey(PULSE+KEYON+Radar_altimeter_dangerous_RALT_set_rotary_right);""));MapKey(&LMFD, SYMD, REXEC(34, 300, ""ActKey(PULSE+KEYON+Radar_altimeter_dangerous_RALT_set_rotary_left);""));"); mode_LMFD_ADI = EXEC("MapKey(&LMFD, SYMU, REXEC(33, 300, ""ActKey(PULSE+KEYON+ADI_Zero_pitch_trim_right);""));MapKey(&LMFD, SYMD, REXEC(32, 300, ""ActKey(PULSE+KEYON+ADI_Zero_pitch_trim_left);""));"); mode_LMFD_QFE = EXEC("MapKey(&LMFD, SYMU, REXEC(31, 300, ""ActKey(PULSE+KEYON+Altimeter_QFE_knob_pressure_increase);""));MapKey(&LMFD, SYMD, REXEC(30, 300, ""ActKey(PULSE+KEYON+Altimeter_QFE_knob_pressure_Decrease);""));"); mode_LMFD_Clock = EXEC("MapKey(&LMFD, OSB02, EXEC(""ActKey(PULSE+KEYON+Mech_clock_Left_lever_Up);""));MapKey(&LMFD, OSB03, EXEC(""ActKey(PULSE+KEYON+Mech_clock_Left_lever_Down);""));MapKey(&LMFD, OSB05, EXEC(""ActKey(PULSE+KEYON+Mech_clock_Right_lever_Down);""));MapKey(&LMFD, GAINU, REXEC(43, 300, ""ActKey(PULSE+KEYON+Mech_clock_Left_lever_turning_right);""));MapKey(&LMFD, GAIND, REXEC(42, 300, ""ActKey(PULSE+KEYON+Mech_clock_Left_lever_turning_left);""));MapKey(&LMFD, SYMU, REXEC(41, 300, ""ActKey(PULSE+KEYON+Mech_clock_Right_lever_Rotate_right);""));MapKey(&LMFD, SYMD, REXEC(40, 300, ""ActKey(PULSE+KEYON+Mech_clock_Right_lever_Rotate_left);""));"); // mode_LMFD_ABRIS = EXEC("MapKey(&LMFD, OSB11, ABRIS_Button_5);MapKey(&LMFD, OSB12, ABRIS_Button_4);MapKey(&LMFD, OSB13, ABRIS_Button_3);MapKey(&LMFD, OSB14, ABRIS_Button_2);MapKey(&LMFD, OSB15, ABRIS_Button_1);MapKey(&LMFD, OSB10, ABRIS_Axis_Push);MapKey(&LMFD, CONU, ABRIS_Axis_Increase);MapKey(&LMFD, COND, ABRIS_Axis_Decrease);"); // // ==========================***** d?but section MFDS *****============================== // // ****** RIGHT MFD section ******** // MapKey(&RMFD, OSB20, mode_RMFD_R828); // R-828 VHF-1 avec OSB20 sur RMFD MapKey(&RMFD, OSB19, mode_RMFD_HUD); // HUD brightness avec OSB19 sur RMFD MapKey(&RMFD, OSB18, mode_RMFD_NVG); // NVG brightness avec OSB18 sur RMFD MapKey(&RMFD, OSB17, mode_RMFD_IT23); // IT23 Shkval screen avec OSB17 sur RFMD MapKey(&RMFD, OSB16, mode_RMFD_ABRIS); // ABRIS mode avec OSB16 RMFD MapKey(&RMFD, OSB15, mode_RMFD_ADF); // ADF mode avec OSB15 RMFD // OSB14 // OSB13 // OSB12 // OSB11 MapKey(&RMFD, OSB10, mode_RMFD_Light_AuxPanel); // Light Aux Panel OSB10 MapKey(&RMFD, OSB09, mode_RMFD_Light_PitPanel); // Light Pit Panel OSB09 MapKey(&RMFD, OSB08, mode_RMFD_Light_HSIADI); // Light HSI ADI OSB08 MapKey(&RMFD, OSB07, mode_RMFD_Light_PitNVG); // Light Pit Panel + NVG OSB07 // OSB06 // OSB05 // OSB04 // OSB03 MapKey(&RMFD, OSB01, mode_RMFD_R800); // R800 autres avec OSB02 sur RMFD MapKey(&RMFD, OSB01, mode_RMFD_R800_Chanels); // R800 chanels avec OSB01 sur RMFD // // ****** LEFT MFD section ******** // MapKey(&LMFD, OSB20, mode_LMFD_HSI); // HSI sur LMFD avec OSB20 : OSB [ 20 + GAIN + SYM + 06 ] MapKey(&LMFD, OSB19, mode_LMFD_RadAlt); // Radar Altimeter sur LMFD avec OSB19 : OSB [ 19 + SYM ] MapKey(&LMFD, OSB18, mode_LMFD_ADI); // ADI pitch sur LMFD avec OSB18 : OSB [ 18 + SYM ] MapKey(&LMFD, OSB17, mode_LMFD_QFE); // Altimeter QFE sur LMFD avec OSB17 : OSB [ 17 + SYM ] // OSB16 //mode_LMFD_ABRIS; // ABRIS section on LMFD : OSB [ 10 - 15 + CON ] // non modal, actif en permanence, choix personnel MapKey(&LMFD, OSB11, ABRIS_Button_5); MapKey(&LMFD, OSB12, ABRIS_Button_4); MapKey(&LMFD, OSB13, ABRIS_Button_3); MapKey(&LMFD, OSB14, ABRIS_Button_2); MapKey(&LMFD, OSB15, ABRIS_Button_1); MapKey(&LMFD, OSB10, ABRIS_Axis_Push); MapKey(&LMFD, CONU, ABRIS_Axis_Increase); MapKey(&LMFD, COND, ABRIS_Axis_Decrease); // OSB09 // OSB08 // OSB07 MapKey(&LMFD, OSB01, mode_LMFD_Clock); // Mechanical Clock sur LFMD OSB [ 01 + 02 03 05 + GAIN + SYM ] // dans le fichier xxxxxMacros.ttm il faut activer les macros correspondant ? l'horloge : // ?ter les // en d?but de ligne devant les lignes suivantes et ?ter le . apr?s Mech_clock: //define Mech_clock_Left_lever_Up R_SHIFT+USB[0x10] //Mech clock. Left lever Up //define Mech_clock._Left_lever_Down R_ALT+R_SHIFT+R_CTL+USB[0x06] //Mech clock. Left lever Down //define Mech_clock._Left_lever_turning_right L_ALT+USB[0x37] //Mech clock. Left lever turning right //define Mech_clock._Left_lever_turning_left L_ALT+USB[0x36] //Mech clock. Left lever turning left //define Mech_clock._Right_lever_Down R_ALT+R_SHIFT+USB[0x06] //Mech clock. Right lever Down //define Mech_clock._Right_lever_Rotate_right R_SHIFT+R_CTL+USB[0x37] //Mech clock. Right lever Rotate right //define Mech_clock._Right_lever_Rotate_left R_SHIFT+R_CTL+USB[0x36] //Mech clock. Right lever Rotate left // OSB04 // // ==========================***** fin section MFDS *****============================== // } int EventHandle(int type, alias o, int x) { DefaultMapping(&o, x); }
[SIGPIC]http://www.kirikoo.net/images/8WoodMAn- ... 212448.png[/img][/SIGPIC] (\_/) (_'.') ..i72600k@4.5GHz + AsusSabertoothZ77 + 16Go GSkill10700 + AC Noctua + Raptor + Win7x64Ult + WH MFDs SaitekThr 1920x1080x3 dt 1 tactile 6950 2G
(")_(")
[/align]
Répondre

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