
Bienvenue invité ( Connexion | Inscription )
![]() ![]() |
Galevsky |
![]()
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.
--------------------
![]() ![]() |
Galevsky |
![]()
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 ?
--------------------
![]() ![]() |
Galevsky |
![]()
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. --------------------
![]() ![]() |
PiedDroit |
![]()
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. |
Galevsky |
![]()
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. --------------------
![]() ![]() |
PiedDroit |
![]()
Message
#16
|
![]() ![]() ![]() ![]() Indicatif : B-26 Messages : 925 Inscrit : 13/12/10 Membre n° 3,711 ![]() |
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 ![]() Sinon, si quelqu'un a un profil A-10 aux petit oignons je prends volontiers aussi ![]() |
Galevsky |
![]()
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. --------------------
![]() ![]() |
Nounours |
![]()
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 |
Galevsky |
![]()
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é.... ![]() 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: ![]() Un exemple pour comprendre directement: je veux pusher sur 340.5 Je vais devoir choisir 340, puis .5:
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 ? ![]() 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. --------------------
![]() ![]() |
Galevsky |
![]()
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
![]() merci ! --------------------
![]() ![]() |
![]() ![]() |
Haut de page · Retour à l'accueil · Contacter le Webmestre | Nous sommes le : 16/05/25 - 20:34 |