Accueil
Accueil

Bienvenue invité ( Connexion | Inscription )

9 Pages V < 1 2 3 4 > »   
Reply to this topicStart new topic
> T.A.R.G.E.T., Advanced User dans la place ?
Galevsky
post 14 Jun 2013, 02:32
Message #11




Born to fly, fly to feel alive !

Messages : 3,001
Inscrit : 26/10/05
Lieu : Antibes
Membre n° 282

Sinon je suis allé un peu trop vite au niveau de la gestion des sous canaux, les différences d'intensité des LEDs ne permettent pas de vraiment distinguer, même si on voit bien lors du changement.... peut-être qu'il faut ranger les intensités pour que qu'une forte soit à côté de 2 faibles... en tout cas c'est sympa de voir la LED afficher le bon canal principal.

--------------------
Image IPB Image IPB

User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Galevsky
post 14 Jun 2013, 13:43
Message #12




Born to fly, fly to feel alive !

Messages : 3,001
Inscrit : 26/10/05
Lieu : Antibes
Membre n° 282

Au niveau du trim du palonnier.... qu'utilisez-vous pour ça ?

--------------------
Image IPB Image IPB

User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Galevsky
post 14 Jun 2013, 17:29
Message #13




Born to fly, fly to feel alive !

Messages : 3,001
Inscrit : 26/10/05
Lieu : Antibes
Membre n° 282

Je vais utiliser le hat de trim, en latéral avec la gachette pinky (S4) appuyée.

C'est bon j'ai mappé tout ce dont j'avais besoin, plus qu'a finaliser le fichier et tester pour voir ce que ça donne.

Pour la radio, je vais utiliser la grosse molette grise en 5 paliers pour changer la fréquence, ça allumera la bonne LED, et je pense utiliser le switch de l'APU pour basculer les unités de fréquences:

Avec APU sur OFF, la LED éclairée indique le channel 310 ou 320 etc... sélectionné, et la molette me déplace dans le channel principal des fréquences 3x0.

Puis je bascule APU sur ON, et la je touche les sous-channels: la LED indique le y dans 310.y, et la molette permet de changer de sous channel.

C'est la solution la plus propre que j'ai trouvée. En un coup de molette avec info visuelle et un switch plus tard, j'ai bouge complètement de fréquence. Ça me condamne le bouton d'APU pour la radio, mais vu que je ne pensais pas l'utiliser, car les engins pour lesquels il faut demarrer l'APU, je fais le ramp complet a la souris, donc ça ne me dérange pas du tout.

EDIT> pour éviter que le serveur TS ne me bloque a chaque fois que je vais changer de channel en faisant rouler la molette, l'astuce consiste a ne considérer que des appuis longs:

TEMPO(0, change_to_right_channel, 800) ne fera l'appui de la touche change_to_right_channel uniquement lorsque la molette sera dans la plage de valeurs au bout de 0.8 s (et qu'une fois), ce qui évite de se taper toutes les commandes de push de channel entre le channel 310 et le 350 en déplaçant la molette par exemple.





Ce message a été modifié par Galevsky - 14 Jun 2013, 17:48.

--------------------
Image IPB Image IPB

User is offlineProfile CardPM
Go to the top of the page
+Quote Post
PiedDroit
post 16 Jun 2013, 14:32
Message #14






Indicatif : B-26
Messages : 925
Inscrit : 13/12/10
Membre n° 3,711

Si ça peut aider, mon code autopilot (pour le Su-25T), appui long pour le désactiver, appui court pour activer le mode choisi en fonction des switchs (tous les modes ne sont pas codés, seulement ceux dont je me sert le plus).
Le coup des flags "bascule" me plait moyen, ça se désynchronise facilement, ou alors il faut prévoir une fonction de reset.

CODE

define TEMPODELAY 300

int ap_ENG()
{
    if        (Throttle[APPAT])                        ActKey(KEYON+PULSE+ApRouteFollowing);
    else if    (Throttle[APALT] & Throttle[RDRDIS])    ActKey(KEYON+PULSE+ApHoldBaromericAltitude);
    else if    (Throttle[APALT] & Throttle[RDRNRM])    ActKey(KEYON+PULSE+ApHoldRadarAltitude);
    else                                            ActKey(KEYON+PULSE+ApHoldAltitudeRoll);
}



int main()
{
    [....]

    // Autopilot
    int autopilot = TEMPO(ApDisengage,EXEC("ap_ENG();"),TEMPODELAY);
    MapKey(&Throttle, APENG, autopilot);
    MapKey(&Throttle, LTB, autopilot);


Ce message a été modifié par PiedDroit - 16 Jun 2013, 14:41.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Galevsky
post 16 Jun 2013, 16:37
Message #15




Born to fly, fly to feel alive !

Messages : 3,001
Inscrit : 26/10/05
Lieu : Antibes
Membre n° 282

Je partagerais mon profil pour le 25t + FC3, je suis globalement assez content, perso je kiffe mes switch de flaps, lights etc.... en up ca met 1 cran, en down 2, et au milieu ca rentre tout indépendamment du nombre de crans sortis.

Mais je dois finir ma prog. pour la radio, c'est pas fini mais j'espère finir avec un truc aux petits oignons .... je partagerai alors le profil car je pense que pas mal de pilotes seraient heuereux d'utiliser les LEDs et le warthog pour gérer nos cannaux à la 3rd aussi facilement.

--------------------
Image IPB Image IPB

User is offlineProfile CardPM
Go to the top of the page
+Quote Post
PiedDroit
post 16 Jun 2013, 18:20
Message #16






Indicatif : B-26
Messages : 925
Inscrit : 13/12/10
Membre n° 3,711

CITATION(Galevsky @ 16 Jun 2013, 16:37) *

Je partagerais mon profil pour le 25t + FC3, je suis globalement assez content, perso je kiffe mes switch de flaps, lights etc.... en up ca met 1 cran, en down 2, et au milieu ca rentre tout indépendamment du nombre de crans sortis.

Mais je dois finir ma prog. pour la radio, c'est pas fini mais j'espère finir avec un truc aux petits oignons .... je partagerai alors le profil car je pense que pas mal de pilotes seraient heuereux d'utiliser les LEDs et le warthog pour gérer nos cannaux à la 3rd aussi facilement.

La gestion de canaux je suis preneur smile.gif

Sinon, si quelqu'un a un profil A-10 aux petit oignons je prends volontiers aussi wink.gif
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Galevsky
post 16 Jun 2013, 18:46
Message #17




Born to fly, fly to feel alive !

Messages : 3,001
Inscrit : 26/10/05
Lieu : Antibes
Membre n° 282

Les flaps, c'était tout bête pour le 25:
CODE

MapKey(&Throttle, FLAPU, PULSE+flight_control_flaps_on);
MapKey(&Throttle, FLAPM, PULSE+flight_control_flaps_off);
MapKey(&Throttle, FLAPD, PULSE+flight_control_flaps_land);

avec:

define    flight_control_flaps_on        USB[0x09]
define    flight_control_flaps_off    L_CTL+USB[0x09]
define    flight_control_flaps_land    L_SHIFT+USB[0x09]


Les lights, plus chiants, il faut un variable externe pour savoir combien de fois il faut cycler:

CODE
// lights    
MapKeyIO(&Throttle, PSF, PULSE+lights_gear, EXEC("NavLightSteady();"));
MapKeyIO(&Throttle, PSM, PULSE+lights_gear, EXEC("NavLightOff();"));
MapKeyIO(&Throttle, PSB, PULSE+lights_gear, EXEC("NavLightFlashy();"));

et

  //***********************************
  //***     Switch on steady NAV lights      ***
  //***********************************
  int NavLightSteady() {
      ActKey(KEYON+PULSE+lights_nav);
      isNavLightsFlashy = 0;
  }
  
  //***********************************
  //***      Switch on flashy NAV lights      ***
  //***********************************
  int NavLightFlashy() {
      ActKey(PULSE+KEYON+lights_nav);
      ActKey(lights_nav);
      ActKey(PULSE+KEYON+lights_nav);
      isNavLightsFlashy = 1;
  }
  
  //***********************************
  //***          Switch off NAV lights           ***
  //***********************************
  int NavLightOff() {
      ActKey(KEYON+PULSE+lights_nav);
      if (isNavLightsFlashy!=1) {
          ActKey(lights_nav);
          ActKey(KEYON+PULSE+lights_nav);
      }
  }


Et l'auto-pilote, enfin:

CODE
// auto-pilot
MapKey(&Throttle, APENG, SEQ(EXEC("AutoPilotOn();"), EXEC("AutoPilotOff();")));
MapKey(&Throttle, APPAT, EXEC("AutoPilotHotChange();"));
MapKey(&Throttle, APAH, EXEC("AutoPilotHotChange();"));
MapKey(&Throttle, APALT, EXEC("AutoPilotHotChange();"));

avec:

//***********************************
//***             Enable auto-pilot              ***
//***********************************
int AutoPilotOn() {
     if(Throttle[APPAT]) ActKey(KEYON+PULSE+autopilot_path_follow);
     else if(Throttle[APALT] & Throttle[RDRDIS]) ActKey(KEYON+PULSE+autopilot_baro_altitude);
     else if (Throttle[APALT] & Throttle[RDRNRM]) ActKey(KEYON+PULSE+autopilot_radar_altitude);
     else ActKey(KEYON+PULSE+autopilot_altitude_roll);
     isAutoPilotOn = 1;
}

//***********************************
//***             Disable auto-pilot             ***
//***********************************
int AutoPilotOff() {
     ActKey(KEYON+PULSE+autopilot_off);
     isAutoPilotOn = 0;
}

//***********************************
//***      Hot-change auto-pilot mode     ***
//***********************************
int AutoPilotHotChange() {
     if(isAutoPilotOn) {
         ActKey(PULSE+KEYON+EXEC("AutoPilotOff();"));
         ActKey(PULSE+KEYON+EXEC("AutoPilotOn();"));
     }
}


Je reste proche des switches du warthog, avec le distinguo altitude radar ou baro suivant le switch RDR ALTM comme toi, et j'ai ajouté le changement à chaud de mode d'auto-pilote sans devoir désengager/réengager. Puis je préfère cycler l'appui pour engager/désengager.... des fois j'utilise l'appui long, comme pour le lock (ENTER en appui court) et le unlock (BACKSPACE en appui long de 800 ms).

La radio, c'est costaud, je suis en train de tester/affiner....



Ce message a été modifié par Galevsky - 16 Jun 2013, 19:31.

--------------------
Image IPB Image IPB

User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Nounours
post 16 Jun 2013, 20:56
Message #18






Indicatif : S-61
Messages : 748
Inscrit : 26/11/05
Lieu : Boissy Saint Leger (94)
Membre n° 326

Bonjour,

@PiedDroit, pour le profil A-10C, vois celui de Dart.
Mon profil TARGET A-10A (en script) est dans mon espace perso sur le FTP privé de même que celui que je m'étais fait pour le SU-25T.

A plus,

Ours
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Galevsky
post 16 Jun 2013, 22:04
Message #19




Born to fly, fly to feel alive !

Messages : 3,001
Inscrit : 26/10/05
Lieu : Antibes
Membre n° 282

Alors on est parti pour la radio... pour le moment le script n'est pas parfait, il y a un détail qui me gène: je n'arrive pas à faire fonctionner le fait de devoir attendre une seconde avant de réaliser le vrai push de fréquence, du coup, si tu pars du channel 310 vers 350, et bien tu vas passer dans 320, puis 330 puis 340 et enfin 350.

Ce détail là omis, et que j'espère régler, tout marche impeccablement. Je te file le script en l'état comme ça si tu trouves de ton côté.... cowboy.gif

Donc l'idée:

On a 5 LEDs, une molette grise, le switch APU, et des fréquences: 6 fréquences principales, elles-mêmes divisées en 6 sous fréquences.

Je divise donc mon axe de molette en 7 zones: pour avoir les 6 fréquences, précédées d'une zone supplémentaire, comme indiqué sur l'image ci-dessous:

Image IPB

Un exemple pour comprendre directement: je veux pusher sur 340.5

Je vais devoir choisir 340, puis .5:
  1. Basculer (ou vérifier) que APU est sur OFF (= mode des fréquences principales)
  2. Tournez la molette grise jusqu'à que l'affichage à LED affiche la 4ème LED en partant du haut (vous pouvez vérifier dans TS que vous êtes bien en 340)
  3. Basculez le switch APU sur START (= mode des sous-fréquences) ; votre molette est située vers le bas, dans la zone qui vous a permis de choisir 340. Le choix des sous-fréquences se fait par déplacement, comme on le fait avec CTRL + < et CTRL + >. Je dois donc connaître la localisation initiale de la molette, et pour cela, la première chose à faire après avoir basculé l'APU, c'est revenir dans la zone orange: ce premier déplacement de molette ne va faire aucun switch de channel, cela va juste "activer" les prochains déplacement de molette..
  4. Tournez ensuite la molette pour obtenir la sous-fréquence .5, c'est-a-dire quand la cinquième LED est allumée.
Remarques:
  • Pour basculer de sous-fréquence, tourner simplement la molette à volonté.
  • Pour basculer de fréquence principale, re-basculer l'APU sur OFF, et recommencez l'opération.
  • Il y a 5 LED, mais on utilise 6 fréquences et 6 sous-fréquences: la 6ème est affichée en éteignant la première LED alors que toutes les autres sont allumées.
  • Concernant la configuration des touches TeamSpeak, j'ai pris notre configuration conseillée, c-a-d pour pusher vers 310, l'appui réalisé est bien CTRLgauche + SHIFTgauche + 1, pour 320 CTRLgauche + SHIFTgauche + 2 etc.... SAUF pour les touches de sous-channel CTRLgauche + < et CTRLgauche + > car le code USB de la touche "> <" à côté du w sur un azerty ne semble pas exister, du moins je ne l'ai pas trouvé (si vous trouvez merci de le dire ce serait cool), donc je fais le push des sous-fréquences avec les touches CTRLgauche + SHIFTgauche + '^ ¨' et CTRLgauche + SHIFTgauche + '$ £' (il faut donc modifier la conf' des raccourcis dans TS3)
Le script:

Les touches:

CODE

//***********************************
//***                     radio                       ***
//***********************************
define    radio_go_310    L_CTL+L_SHIFT+USB[0x1E]
define    radio_go_320    L_CTL+L_SHIFT+USB[0x1F]
define    radio_go_330    L_CTL+L_SHIFT+USB[0x20]
define    radio_go_340    L_CTL+L_SHIFT+USB[0x21]
define    radio_go_350    L_CTL+L_SHIFT+USB[0x22]
define    radio_go_360    L_CTL+L_SHIFT+USB[0x23]
define    radio_go_up        L_CTL+L_SHIFT+USB[0x2F]
define    radio_go_down    L_CTL+L_SHIFT+USB[0x30]


Les variables globales à utiliser:

CODE
int mainFreqList, LEDOnFreqList, LEDOffFreqList, LEDIndex, radioMainFreq, radioSubFreq = 0;
int gap = 0, gapIndex = 0, areSubFreqEnable = 0;

Et le mapping (à mettre dans le main()):

CODE
// radio
     mainFreqList = SEQ(0, radio_go_310, radio_go_320, radio_go_330, radio_go_340, radio_go_350, radio_go_360);
     LEDOnFreqList  = SEQ(    LED(&Throttle, LED_ONOFF, LED_CURRENT+LED1),
                             LED(&Throttle, LED_ONOFF, LED_CURRENT+LED2),
                             LED(&Throttle, LED_ONOFF, LED_CURRENT+LED3),
                             LED(&Throttle, LED_ONOFF, LED_CURRENT+LED4),
                             LED(&Throttle, LED_ONOFF, LED_CURRENT+LED5),
                             LED(&Throttle, LED_ONOFF, LED_CURRENT+LED5));
     LEDOffFreqList = SEQ(    LED(&Throttle, LED_ONOFF, LED_CURRENT-LED1),
                             LED(&Throttle, LED_ONOFF, LED_CURRENT-LED2),
                             LED(&Throttle, LED_ONOFF, LED_CURRENT-LED3),
                             LED(&Throttle, LED_ONOFF, LED_CURRENT-LED4),
                             LED(&Throttle, LED_ONOFF, LED_CURRENT-LED5),
                             LED(&Throttle, LED_ONOFF, LED_CURRENT-LED5));


     KeyAxis(&Throttle, THR_FC, 0,
         AXMAP2(    7,
                 EXEC("ChangeRadioChannel(0);"),
                 EXEC("ChangeRadioChannel(1);"),
                 EXEC("ChangeRadioChannel(2);"),
                 EXEC("ChangeRadioChannel(3);"),
                 EXEC("ChangeRadioChannel(4);"),
                 EXEC("ChangeRadioChannel(5);"),
                 EXEC("ChangeRadioChannel(6);")));
    


avec la fonction définie à l'extérieur:

CODE

//***********************************
//***           Radio channel switch          ***
//***********************************
int ChangeRadioChannel(int iFreq) {
     if (Throttle[APUOFF]) {
         // Handle main channel
         if (iFreq != 0) {
             ActKey(KEYON+PULSE+X(mainFreqList, iFreq));
         }
         radioMainFreq = iFreq;
         radioSubFreq = 0;
         areSubFreqEnable = 0;
     }
     else if (iFreq == 0) {
         // back to main channel, orange area
         if (areSubFreqEnable > 0) {
                 ActKey(KEYON+PULSE+X(mainFreqList, radioMainFreq));
                 }
         radioSubFreq = 0;
         areSubFreqEnable = 1;
     }
     else if (areSubFreqEnable) {
         // Handle sub-channel
         gap = iFreq - radioSubFreq;
         if (gap > 0) {
             while (gap > 0) {
                 ActKey(KEYON+PULSE+radio_go_down);
                 gap = gap - 1;
             }
         }
         else {
             while (gap < 0) {
                 ActKey(KEYON+PULSE+radio_go_up);
                 gap = gap + 1;
             }
         }
        
         radioSubFreq = iFreq;
     }
    
     // Switch on/off the right LEDs
     if (iFreq > 0) {
         if (iFreq != 6) {
             // Switch off all but the right one to display 1 -> 5
             LEDIndex = 0;
             while (LEDIndex < 5) {
                 if (LEDIndex != (iFreq - 1))
                     ActKey(PULSE+KEYON+X(LEDOffFreqList, LEDIndex));
                 LEDIndex = LEDIndex + 1;
             }
             ActKey(PULSE+KEYON+X(LEDOnFreqList, iFreq - 1));
         }
         else {
             // Switch on all but the first one to display 6
             LEDIndex = 0;
             while (LEDIndex < 5) {
                 if (LEDIndex != 0)
                     ActKey(PULSE+KEYON+X(LEDOnFreqList, LEDIndex));
                 LEDIndex = LEDIndex + 1;
             }
             ActKey(PULSE+KEYON+X(LEDOffFreqList, 0));        
         }
     }
     // if channel 0 => all are OFF (means neither main nor sub-channel selected, depending on the APU switch)
     else {
         LEDIndex = 0;
         while (LEDIndex < 5) {
             ActKey(PULSE+KEYON+X(LEDOffFreqList, LEDIndex));
             LEDIndex = LEDIndex + 1;
         }
     }
}


La modif' de la mort qui tue à trouver pour que ce script soit parfait ? gap.gif

ActKey(KEYON+PULSE+X(mainFreqList, iFreq));

commande l'ordre de réaliser un appui sur la iFreq-ième touche définie dans la liste mainFreqList.
Au lieu que cet appui de touche soit réalisé à coup sûr, il faudrait pouvoir dire: tu le fais (ou feras) que si ça fait 1 seconde que la molette se trouve dans la bonne zone. Ainsi on pourra jouer rapidement de la molette, avoir les LED qui défilent tout aussi vite, et s'arrêter sur la freq voulue: et une seconde après l'arrêt de la molette, le changement de fréquence est réalisé, évitant ainsi de se taper tous les push vers les fréquences principales intermédiaires. Je pense à un gros wait() puis un check que le valeur de l'axe est bien celle d'il y a 1 seconde, mais on est vraiment bridé niveau fonctionnalités...

Ce message a été modifié par Galevsky - 24 Jun 2013, 15:56.

--------------------
Image IPB Image IPB

User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Galevsky
post 17 Jun 2013, 08:54
Message #20




Born to fly, fly to feel alive !

Messages : 3,001
Inscrit : 26/10/05
Lieu : Antibes
Membre n° 282

Au fait, si les sages pouvaient rajouter un sous-channel .5 dans 360, ce serait cool smile.gif

merci !

--------------------
Image IPB Image IPB

User is offlineProfile CardPM
Go to the top of the page
+Quote Post

9 Pages V < 1 2 3 4 > » 
Reply to this topicStart new topic
1 utilisateur(s) sur ce sujet (1 invité(s) et 0 utilisateur(s) anonyme(s))
0 membre(s) :
 

Haut de page · Retour à l'accueil · Contacter le Webmestre Nous sommes le : 29/03/24 - 01:14