• Site VEAF
  • Catégories
  • Récent
  • Populaire
  • Utilisateurs
  • Groupes
  • calendar
  • S'inscrire
  • Se connecter
VEAF
  • Site VEAF
  • Catégories
  • Récent
  • Populaire
  • Utilisateurs
  • Groupes
  • calendar
  • S'inscrire
  • Se connecter

Définir des commandes pour des interrupteurs à 2 ou 3 positions

Outils, tutoriels et documents
tutoriel
7
21
1.8k
Charger plus de messages
  • Du plus ancien au plus récent
  • Du plus récent au plus ancien
  • Les plus votés
Répondre
  • Répondre à l'aide d'un nouveau sujet
Se connecter pour répondre
Ce sujet a été supprimé. Seuls les utilisateurs avec les droits d'administration peuvent le voir.
  • Z
    Zip Membre VEAF
    dernière édition par Zip 19 mars 2020, 14:52

    C’est un sujet qui a été abordé aujourd’hui par Perka. Je capitalise sur l’explication que je lui ai donné, et je vous transmets ici le résultat de mes recherches.

    Situation

    Sur nos manettes de bourgeois, il y a souvent, en plus de boutons poussoirs simples ou sous forme de “hats” (chapeaux, comme le trim par exemple), des interrupteurs qui peuvent prendre plusieurs positions maintenues.

    dbffae41-eb35-44ac-ba16-6337d74b626c-image.png

    Par exemple, sur la manette des gaz du Warthog, il y a un interrupteur “Flaps” (1) qui peut prendre trois positions, et un interrupteur “EAC” (2) qui peut en prendre 2.

    On constate que, quand souhaite utiliser un de ces interrupteurs pour mapper une commande double de DCS (par exemple, Master Arm ON et OFF), cela ne fonctionne pas comme prévu

    Explication

    La raison est que toutes les positions de ces interrupteurs ne génèrent pas une commande dans DCS.

    Globalement, un joystick complexe comme la manette des gaz du Warthog est vu dans Windows (par la librairie DirectX, qui sert à l’interfaçage direct du matériel pour les jeux) comme un ensemble d’axes et de boutons qui sont soit pressés (ON), soit non (OFF).

    Par exemple, le bouton qui vous sert à larguer des bombes sur votre joystick est un simple poussoir, dont la position pressée déclenche un signal électrique qui va être reconnu par Windows comme le fait que le bouton DirectX est pressé (ON). Quand on le lache physiquement, le signal se coupe, et Windows cesse de voir ce bouton comme ON ; mécaniquement, il est considéré comme OFF (le seul autre état).

    Dans le cas d’un bouton à plusieurs positions (comme l’interrupteur “EAC”), une seule des deux positions déclenchera un signal électrique (la position “vers l’avant” dans le cas de l’EAC. Et donc seule cette position correspond à un bouton DirectX pour Windows. L’autre est simplement neutre.
    Si vous voulez mapper dans DCS la position basse de cet interrupteur, vous constaterez que c’est impossible.

    Pour un interrupteur à trois positions (comme l’interrupteur “FLAPS”) c’est pareil : seules 2 des 3 positions possibles seront actives, la troisième correspondra simplement à une absence de signal.

    Solution

    Il est possible de créer des commandes dans DCS, en éditant les fichiers .lua qui sont dans les répertoires Input des modules comme par exemple le fichier Mods\aircraft\FA-18C\Input\FA-18C\joystick\default.lua

    On peut créer un contrôle qui exécute une action spécifique quand un bouton DirectX est enfoncé, et une autre quand il ne l’est plus.
    Par exemple, on peut créer un contrôle qui déclenche le Master Arm (ON) quand le bouton DirectX correspondant à l’interrupteur “EAC” en position haute est enfoncé (et maintenu, donc) et qui déclenche le Master Arm (OFF) quand il n’est plus enfoncé (donc, quand on déplace l’interrupteur dans l’autre position).
    Voici le contrôle correspondant :

    {down = SMS_commands.MasterArmSw, up = SMS_commands.MasterArmSw, cockpit_device_id = devices.SMS, value_down = 1.0, value_up = 0.0, name = _('Master Arm Switch 2-Pos ARM/SAFE'), category = {_('Toggle Switches'), _('Master Arm Panel')}},

    Je vous l’explique rapidement.

    • down= correspond à la commande qui est actionnée quand le bouton est enfoncé (en l’occurence, SMS_commands.MasterArmSw)
    • up= correspond à la commande qui est actionnée quand le bouton cesse d’être enfoncé (en l’occurence, SMS_commands.MasterArmSw ; oui, vous avez bien lu, c’est la même que pour down ! C’est la valeur qui va être différente - voir plus bas)
    • value_down= est la valeur (le paramètre) envoyé à la commande décrite dans down= quand le bouton est enfoncé (ici, 1.0 qui correspond à la montée de l’interrupteur Master Arm dans le cockpit)
    • value_up= est la valeur (le paramètre) envoyé à la commande décrite dans up= quand le bouton est enfoncé (ici, 0.0 qui correspond à la descente de l’interrupteur Master Arm dans le cockpit)
    • cockpit_device_id= va de paire avec up= et down= pour définir l’instrument qui reçoit la commande.
    • category= est la liste des catégories dans lesquelles le contrôle sera rangé (qu’on voit dans la liste déroulante catégories dans le dialogue Controls Options)
    • name= est le nom que le contrôle aura dans le dialogue Controls Options

    En pratique, ici on crée un contrôle (unique) qu’on pourra assigner à la position active d’un interrupteur (comme EAC par exemple), et qui appellera la commande SMS_commands.MasterArmSw dans l’instrument devices.SMS avec la valeur 1.0 quand l’interrupteur est dans cette position, et la valeur 0.0 quand il n’y est plus.

    Concrètement, cela permet de mettre le Master Arm sur ON quand l’interrupteur physique est dans une position, et sur OFF quand il est dans une autre.

    Aller plus loin

    C’est un domaine bien compliqué, heureusement bien décrit et documenté par l’excellent LeCuvier sur le forum d’Eagle Dynamics (en anglais).

    Vous pouvez voir ce que j’ai choisi de mettre dans mes mods “Config - Keys - XXXX” qui sont à votre disposition sur mon Google Drive (compatibles OvGME, voir mon tutoriel sur OvGME)

    [Edit du 14.05.2020]
    Depuis, on a mis en place les bibliothèques OvGME de la VEAF que vous pouvez découvrir dans un tutoriel que je vous propose.
    Si vous vous demandez ce qu’est OvGME, lisez cet autre tutoriel qui vous l’explique en détail.

    N’hésitez pas à me demander si vous avez des questions !

    Zip

    K 1 réponse Dernière réponse 15 mars 2022, 19:03 Répondre Citer 2
    • S
      skywalker
      dernière édition par 19 mars 2020, 19:12

      Bien joué … et surtout bien expliqué 👍

      À la guerre il est important de savoir reconnaître l’ennemi. Car, sans ennemi, la guerre est ridicule.

      1 réponse Dernière réponse Répondre Citer 0
      • D
        Darrius
        dernière édition par 19 mars 2020, 19:24

        Merci ZIP vais étudier ça avec une tablette de Doliprane à coté et un cerveau de rechange lol 🙂

        Voler n'est pas dangereux c'est s'écraser qui l'est

        C 1 réponse Dernière réponse 14 juil. 2021, 14:05 Répondre Citer 0
        • P
          phebus Membre du bureau
          dernière édition par phebus 13 mai 2020, 22:54

          Je crois que j’ai compris le principe
          Je regarde un inter 2 positions pour commencer et ensuite je me met sur un trois comme les volets. Je crois avoir une info sur les codes commandes dcs avec le tuto de Stream deck
          Affaire à suivre, merci pour le tuyau @Zip

          "Si tu crois que la violence ne résout rien, c'est que t'as pas frappé assez fort"…
          Pilote A10

          1 réponse Dernière réponse Répondre Citer 0
          • Z
            Zip Membre VEAF
            dernière édition par 14 mai 2020, 07:38

            J’ai mis à jour mon post en modifiant les références à mes mods qui sont désormais dans la bibliothèque OvGME DCS game files de la VEAF.
            Je t’invite à y jeter un coup d’oeil.

            Zip

            1 réponse Dernière réponse Répondre Citer 0
            • G
              griffin
              dernière édition par 14 mai 2020, 13:20

              Excellent! Merci @Zip!
              Je vais essayer ça au plus vite.
              Ca passe l’integrity check?

              Z 1 réponse Dernière réponse 14 mai 2020, 17:47 Répondre Citer 0
              • Z
                Zip Membre VEAF @griffin
                dernière édition par 14 mai 2020, 17:47

                @griffin non malheureusement.
                Globalement, les mods user files passent l’IC, les game files non. Il y a des exceptions.

                Zip

                1 réponse Dernière réponse Répondre Citer 0
                • G
                  griffin
                  dernière édition par 14 mai 2020, 17:51

                  Pour tous, voici le code pour faire le 3 Way Switch avec les Flaps du F18

                  {down = ctrl_commands.FlapSw, up = ctrl_commands.FlapSw, cockpit_device_id = devices.CONTROL_INTERFACE,	value_down =  1.0, value_up = 0.0, name = _('FLAP 3 way Switch - Up'),	category = {_('Toggle Switches'),_('Left Vertical Panel')}},
                  {down = ctrl_commands.FlapSw, up = ctrl_commands.FlapSw, cockpit_device_id = devices.CONTROL_INTERFACE,	value_down =  -1.0, value_up = 0.0, name = _('FLAP 3 way Switch - Down'),	category = {_('Toggle Switches'),_('Left Vertical Panel')}},
                  

                  Merci professeur @ZIp !

                  phebusP Z 2 réponses Dernière réponse 14 mai 2020, 19:25 Répondre Citer 0
                  • phebusP
                    phebus Membre du bureau @griffin
                    dernière édition par 14 mai 2020, 19:25

                    merci @griffin

                    "Si tu crois que la violence ne résout rien, c'est que t'as pas frappé assez fort"…
                    Pilote A10

                    1 réponse Dernière réponse Répondre Citer 0
                    • Z
                      Zip Membre VEAF @griffin
                      dernière édition par 14 mai 2020, 20:07

                      @griffin pour info c’est déjà dans le mod Config - Keys - FA-18C Keybinds du repository VEAF 😉

                      Zip

                      G 1 réponse Dernière réponse 14 mai 2020, 21:28 Répondre Citer 0
                      • griffinG
                        griffin @Zip
                        dernière édition par 14 mai 2020, 21:28

                        @Zip oui, c’était pour donner un exemple de switch avec 3 pos.

                        1 réponse Dernière réponse Répondre Citer 0
                        • phebusP
                          phebus Membre du bureau
                          dernière édition par 15 mai 2020, 08:51

                          @Zip le fichier mod FA-18C ne peut être télécharger

                          "Si tu crois que la violence ne résout rien, c'est que t'as pas frappé assez fort"…
                          Pilote A10

                          1 réponse Dernière réponse Répondre Citer 0
                          • ZipZ
                            Zip Membre VEAF
                            dernière édition par 15 mai 2020, 10:20

                            @phebus mais si, je viens de tester.
                            Tu utilises bien OvGME ? Tu as lu le tutoriel ?

                            Zip

                            1 réponse Dernière réponse Répondre Citer 0
                            • phebusP
                              phebus Membre du bureau
                              dernière édition par 25 mai 2020, 20:34

                              Système stream deck fonctionne en bi-directionnel avec DCS
                              Les retours d’infos du jeu remonte sur le stream deck comme, train rentré ou sorti avec un vrai retour d’information de dcs, les rotatifs peuvent être utilisés avec la souris ou sur le stream deck le retour d’information est le même partout.
                              Exemple affichage en temps réel des canaux radio comm1 et comm2, affichage du canal et de la fréquence dans l’ufc.
                              Retour visuel des 5 boutons pour les fonctions AP IFF TCN D/T…chaque bouton est fonctionnel et un retour d’information visuel sur l’état est instantané sur le jeu et sur le clavier, le rafraichissement est fait toute les 0.05 seconde.
                              Je continue à creuser…

                              "Si tu crois que la violence ne résout rien, c'est que t'as pas frappé assez fort"…
                              Pilote A10

                              1 réponse Dernière réponse Répondre Citer 0
                              • CorsairC
                                Corsair @Darrius
                                dernière édition par 14 juil. 2021, 14:05

                                Merci Zip !

                                1 réponse Dernière réponse Répondre Citer 0
                                • KervinouK
                                  Kervinou @Zip
                                  dernière édition par 15 mars 2022, 19:03

                                  info

                                  @zip Lien HS : “découvrir le tutoriel” en bas du premier message

                                  529310d0-c5e3-48bf-998d-26d2df0fbdc3-image.png

                                  Kilo Echo Romeo Victor

                                  ZipZ 1 réponse Dernière réponse 15 mars 2022, 21:50 Répondre Citer 0
                                  • ZipZ
                                    Zip Membre VEAF @Kervinou
                                    dernière édition par 15 mars 2022, 21:50

                                    @kervinou merci !

                                    Zip

                                    1 réponse Dernière réponse Répondre Citer 0
                                    • KervinouK
                                      Kervinou
                                      dernière édition par Kervinou 20 nov. 2022, 14:09

                                      Bien vu @Zip , je viens de retrouver le sujet !

                                      Et j’en ai profité pour me créer une commande deux positions pour le OFF/ARM du Laser sur le F-16C

                                      Je partage 😉

                                              -- LASER ARM Switch
                                      		{down = sms_commands.LaserSw, up = sms_commands.LaserSw, cockpit_device_id = devices.SMS, value_down = 1.0, value_up = 0.0, name = _('LASER ARM Switch - OFF else ARM'), category = {_('Instrument Panel'), _('Quaggles Custom')}},
                                      
                                      

                                      Et je viens aussi de me faire le switch 3 positions pour les lumières de la roulette de nez du Mirage F1

                                              -- Landing light control ARRET-LAND-ROUL
                                              {down = devCmds.Cmd310, up = devCmds.Cmd310, cockpit_device_id = devices.MAIN, value_down = 0.0, value_up = 0.5, name = _('Landing light control - OFF else LAND'), category = {_('Left wall'), _('Exterior lighting'), _('Quaggles Custom')}},
                                              {down = devCmds.Cmd310, up = devCmds.Cmd310, cockpit_device_id = devices.MAIN, value_down = 1.0, value_up = 0.5, name = _('Landing light control - LAND else TAXI'), category = {_('Left wall'), _('Exterior lighting'), _('Quaggles Custom')}},
                                      
                                      

                                      Kilo Echo Romeo Victor

                                      1 réponse Dernière réponse Répondre Citer 0
                                      • KervinouK
                                        Kervinou
                                        dernière édition par 19 mai 2023, 10:17

                                        MAJ nécessaire suite dernière version de DCS OB
                                        https://github.com/Quaggles/dcs-input-command-injector/releases

                                        Kilo Echo Romeo Victor

                                        1 réponse Dernière réponse Répondre Citer 0
                                        • ZipZ
                                          Zip Membre VEAF
                                          dernière édition par 22 mai 2023, 06:17

                                          Merci, bon à savoir.
                                          Je mets à jour le mod sur OvGME dès que possible

                                          Zip

                                          ZipZ 1 réponse Dernière réponse 22 mai 2023, 21:57 Répondre Citer 0
                                          • Premier message
                                            Dernier message