Annonce

Réduire
Aucune annonce.

Aide pour la confection d'un plugin

Réduire
X
 
  • Filtre
  • Heure
  • Afficher
Tout nettoyer
nouveaux messages

  • Aide pour la confection d'un plugin

    Bonjour à tous,

    Désirant me lancer dans la confection d'un plugin j'ai trouvé sur le Wiki/coin des développeurs/ les plugins/en C/C++ sous windows .

    J'ai installé Visual Studio (je n'ai pas trouvé le VS Express)

    "Télécharger l'archive du SDK pour VS2010 ici" J'ai une page blanche !!! où cela se trouve t-il?, je suis bloqué merci.
    Cordialement,
    Henri.

    Carte Mère ROG STRIX Z390 avec I9-9900 KF
    32Go de ram 3200 Mhz, W10-64, P3D sur ssd 256 Go, scènes P3D sur ssd 256 Go, XP11 sur ssd 1 To
    Carte Graphique GTX 980 TI, sortie sur 3 écrans Asus 278Q mode portrait soit 4500x2560.

  • #2
    Salut Harry29,

    Tu peux commencer par ici:
    https://developer.x-plane.com/code-s...o-world-sdk-3/
    ensuite pour les menus :
    https://developer.x-plane.com/code-s...nu-sdk-sample/
    pour afficher du texte :
    https://developer.x-plane.com/code-s...ow-api-sample/

    ici pour le SDK:
    https://developer.x-plane.com/sdk/plugin-sdk-downloads/


    Je travaille pas avec Visual Studio mais avec mingw (G++64) mais si t'as des questions je peux t'aider si tu veux...
    Je peux te passer un code de base complet qui fonctionne, compilable avec mingw...

    J'ai, entre autre, développé ça:

    Doc technique : http://mapleberry.net/repository/p/ground-detail-02

    Bons codes,

    mapleberry 8)
    Dernière modification par mapleberry, 06 février 2020, 18h37.
    Nous ne voyons pas le monde tel qu’il est, mais plutôt tel que nous sommes...

    PC Assemblé - Windows 10
    Intel Core i7-7700HQ 3.8 GHz, 16 Gb DDR4
    Nvidia GeForce RTX2060 6Gb
    Double SSD 512Gb + 1Tb
    Ecran 28' 2560 x 1440 + 26' 1920 x 1200
    X Plane 11.41 via Steam
    A319 Toliss
    Carenado PC12_v1.2
    DHC6-300 Twin Otter V2
    Robin DR401
    A320-200 JarDesign V3.2R1
    A320 FF Ultimate V0.8.53-2016
    JoyStick X 56 RHINO HOTAS

    Commentaire


    • #3
      Merci, je vais regarder tout ça à tête reposée et je posterais demain.
      Cordialement,
      Henri.

      Carte Mère ROG STRIX Z390 avec I9-9900 KF
      32Go de ram 3200 Mhz, W10-64, P3D sur ssd 256 Go, scènes P3D sur ssd 256 Go, XP11 sur ssd 1 To
      Carte Graphique GTX 980 TI, sortie sur 3 écrans Asus 278Q mode portrait soit 4500x2560.

      Commentaire


      • #4
        Bonjour Mapleberry,

        Comme dit dans le wiki j'ai installé VS.
        Quand je l'ouvre c'est VS2019 ça explique peut être pourquoi il ne veux ouvrir que des .sin, .dsw, .vcw, .sinf mais pas le vcxproj ! je suis déjà en panne je ne suis pas un spécialiste non plus.

        En fait je veux simplement sortir 2 paramètres le roll et le climb pour faire fonctionner mon siège. Je n'ai pas de fenêtre à ouvrir, je n'ai pas non plus de dialogue à échanger, tout une partie du programme ne m'est pas utile.

        Sous FS quelqu'un m'avait fait un programme en VB, j'ai appris à le modifier mais n'aurais pas su le concevoir.
        Cordialement,
        Henri.

        Carte Mère ROG STRIX Z390 avec I9-9900 KF
        32Go de ram 3200 Mhz, W10-64, P3D sur ssd 256 Go, scènes P3D sur ssd 256 Go, XP11 sur ssd 1 To
        Carte Graphique GTX 980 TI, sortie sur 3 écrans Asus 278Q mode portrait soit 4500x2560.

        Commentaire


        • #5
          Re,

          J'ai un peu avancé. Si j'ouvre VS il refuse toujours d'ouvrir le fichier vcxproj mais si je clique sur ce fichier windows me propose VS et cela s'ouvre, sous VS j'ai 154 ligne de code.

          Dans le wiki il est dit de renseigner le chemin du SDK mais je ne sais comment faire.
          Cordialement,
          Henri.

          Carte Mère ROG STRIX Z390 avec I9-9900 KF
          32Go de ram 3200 Mhz, W10-64, P3D sur ssd 256 Go, scènes P3D sur ssd 256 Go, XP11 sur ssd 1 To
          Carte Graphique GTX 980 TI, sortie sur 3 écrans Asus 278Q mode portrait soit 4500x2560.

          Commentaire


          • #6
            Salut Harry29,

            Tu dois en premier décompresser l'archive du SDK pas loin de ton projet VS.
            ensuite tu dois renseigner dans les options de compilation le chemin de ce SDK
            ca va donner un truc dans le genre:

            ../XPSDK301/SDK/CHeaders/XPLM
            ../XPSDK301/SDK/CHeaders/Widgets
            pour les Headers (inclusion des fichiers .h)

            et
            ../XPSDK301/SDK/Libraries/Win/XPLM_64.lib
            ../XPSDK301/SDK/Libraries/Win/XPWidgets_64.lib
            pour les librairies.

            Ensuite tu dois ajouter ces flags de compilation:
            -DWIN64 -D_WINDOWS
            -D_USRDLL
            -DSIMDATA_EXPORTS
            -DIBM=1
            -DXPLM200=1 -DXPLM210=1 -DXPLM300=1 -DXPLM301=1

            et ces flags au linker:
            -shared
            -static-libgcc -static-libstdc++ -static-libgcc

            ensuite tu dois lui dire de produire une DLL nommée win.xpl

            Ce sont toutes des options que tu trouveras dans les options de compilation du projet, mais je peux pas te dire exactement ou, je ne connais pas VS.
            Sinon oublie VS, télécharge et installe mingW64, et je te donne un truc tout fait prêt à compiler

            Voila,
            J'espère que çà pourra t'aider...


            Bons codes
            mapleberry 8)
            Nous ne voyons pas le monde tel qu’il est, mais plutôt tel que nous sommes...

            PC Assemblé - Windows 10
            Intel Core i7-7700HQ 3.8 GHz, 16 Gb DDR4
            Nvidia GeForce RTX2060 6Gb
            Double SSD 512Gb + 1Tb
            Ecran 28' 2560 x 1440 + 26' 1920 x 1200
            X Plane 11.41 via Steam
            A319 Toliss
            Carenado PC12_v1.2
            DHC6-300 Twin Otter V2
            Robin DR401
            A320-200 JarDesign V3.2R1
            A320 FF Ultimate V0.8.53-2016
            JoyStick X 56 RHINO HOTAS

            Commentaire


            • #7
              Bonjour Mapleberry,

              Comme tu m'as proposé une version de plugin clés en mains en mingw-w64, je me suis équipé de ce logiciel. J'arrive à modifier un programme qui fonctionne mais pas capable de le créer.

              Mon problème est de récupérer dans les datarefs le roll et le climb et de les faire sortir sur un port usb par le protocole HID, je les récupère sur des pic qui gèrent les moteurs de mon siège.

              Jusqu'à présent, sur fsx je récupérais le pitch et le roll mais ce n'était pas très concluant ni réaliste . En vol lent genre hélico et en montagne le roll devrait être significatif et le climb devrait apporter un plus car, sauf à ne regarder que les instruments on passe facilement de -200ppm à +200 ppm, le mouvement du siège devrait avertir.
              Cordialement,
              Henri.

              Carte Mère ROG STRIX Z390 avec I9-9900 KF
              32Go de ram 3200 Mhz, W10-64, P3D sur ssd 256 Go, scènes P3D sur ssd 256 Go, XP11 sur ssd 1 To
              Carte Graphique GTX 980 TI, sortie sur 3 écrans Asus 278Q mode portrait soit 4500x2560.

              Commentaire


              • #8
                Salut Harry29,

                Je vois que tu avance bien
                Est-ce que tu as donc réussi à compiler avec mingw ?

                Pour le port série, j'ai jamais travaillé en protocole HID, mais je pense que c'est comme un port serie via USB.

                J'utilise une classe C++ qui fonctionne très bien pour communiquer avec un arduino via son port USB depuis Xplane:


                J'avais faire cette video sur mon compte insta pour illustrer la commucation : https://www.instagram.com/p/BxrcIftB..._web_copy_link

                C'est assez simple:
                Init dans XPluginStart

                Serial* SP;
                SP = new Serial("\\\\.\\COM10"); // adjust as needed


                Tu dois ensuite initialiser dans XPluginEnable une boucle XPLMRegisterFlightLoopCallback
                et tu pourras lire ton dataref

                XPLMDataRef drAP_SPD = XPLMFindDataRef("sim/cockpit2/autopilot/airspeed_dial_kts"); // <- remplace par le tien
                float drfAP_SPD = XPLMGetDataf(drAP_SPD);

                Et ensuite envoyer le tout vers le port serie:

                char outcomingData[256];
                if (SP->IsConnected()) {
                sprintf(outcomingData, "AP_SPD=%d\x0A", (int)round(drfAP_SPD)); // <- tu doit formatter ici ce qu'attend ton siège, tu peux même amplifier les valeurs pour une réponse plus nette
                readResult = SP->WriteData(outcomingData, strlen(outcomingData) + 1);

                J'espère que mes explications sont claires pour un dimanche soir et que ca pourra t'aider.

                Dis-moi si tu préfères que je t'envoie un source C++

                Bons codes et bons vols,
                mapleberry 8)
                Nous ne voyons pas le monde tel qu’il est, mais plutôt tel que nous sommes...

                PC Assemblé - Windows 10
                Intel Core i7-7700HQ 3.8 GHz, 16 Gb DDR4
                Nvidia GeForce RTX2060 6Gb
                Double SSD 512Gb + 1Tb
                Ecran 28' 2560 x 1440 + 26' 1920 x 1200
                X Plane 11.41 via Steam
                A319 Toliss
                Carenado PC12_v1.2
                DHC6-300 Twin Otter V2
                Robin DR401
                A320-200 JarDesign V3.2R1
                A320 FF Ultimate V0.8.53-2016
                JoyStick X 56 RHINO HOTAS

                Commentaire


                • #9
                  Tu peux aussi demander à X-Plane d'envoyer les 2 datarefs en question directement en UDP sur localhost (ou vers un port COM), et de là les traiter avec un programme classique sans t'embêter avec un plugin.
                  Ubuntu 22.04 LTS - Ryzen 9 5950X - 64GB DDR4 - RTX3080 12GB

                  Commentaire


                  • #10
                    Hello,

                    @yoyoz, c'est vrai que c'est pas toujours simple les plugins XPlane...


                    @Harry29, je t'ai fait une petite release d'un plugin de base avec les sources et les explications sur mon repository: http://mapleberry.net/repository/a/xplanebase


                    C'est la première étape, la suite c'est d'envoyer tout ça via le Port serie (ou USB) avec SerialClass comme décrit plus haut sur ton dispositif, mais faut plus d'info sur la trame et les valeurs attendues par ton PIC.

                    Bons vols,
                    mapleberry 8)
                    Nous ne voyons pas le monde tel qu’il est, mais plutôt tel que nous sommes...

                    PC Assemblé - Windows 10
                    Intel Core i7-7700HQ 3.8 GHz, 16 Gb DDR4
                    Nvidia GeForce RTX2060 6Gb
                    Double SSD 512Gb + 1Tb
                    Ecran 28' 2560 x 1440 + 26' 1920 x 1200
                    X Plane 11.41 via Steam
                    A319 Toliss
                    Carenado PC12_v1.2
                    DHC6-300 Twin Otter V2
                    Robin DR401
                    A320-200 JarDesign V3.2R1
                    A320 FF Ultimate V0.8.53-2016
                    JoyStick X 56 RHINO HOTAS

                    Commentaire


                    • #11
                      Pour Yoyoz je pense qu'il existe d'autres solutions que le plugin mais comme tu l'indiques il faudrait un programme intermédiaire ce qui ne m'inspirais pas trop.

                      Pour Mapleberry

                      J'ai téléchargé tout ce que tu m'as indiqué, je t'en remercie vivement.

                      Installé dans xplane le plugin fonctionne parfaitement.

                      J'ai ouvert main.cpp avec Notepad, je pensais l'ouvrir à l'intérieur de mingw mais je n'ai pas réussi.

                      Si j'abusais ! pourrais-tu modifier ce programme en remplaçant le pitch par le climb avec les limitations que j'avais sur mon ancien programme: (ou m'indfiquer comment faire)

                      'On lit la valeur du roll in degrees, positive right
                      roll =sim/flightmodel/position/true_phi

                      'On limite les débattements du roll
                      If roll > 30 Then roll = 30
                      If roll < -30 Then roll = -30

                      'Ici on transforme -30 à +30 en 0 à 63000 avec une loupe entre -10,+10

                      If roll < -10 Then
                      roll = (500 * roll) + 17500
                      ElseIf roll < 10 Then
                      roll = (2000 * roll) + 32500
                      Else
                      roll = (500 * roll) + 47500
                      End If

                      'on lit la valeur du climb en pieds par minute
                      climb = sim/cockpit2/gauges/indicators/vvi_fpm_pilot

                      'On limite les débattements du climb
                      If climb > 1500 Then climb = 1500
                      If climb < -1500 Then climb = -1500

                      'Ici on transforme -1500 à +1500 en 0 à 63000 avec une loupe entre -500,+500

                      If climb < -500 Then
                      climb = (10*climb) + 17500
                      ElseIf climb < 10 Then
                      climb = (40 *climb) + 32500
                      Else
                      climb = (10*climb) + 47500
                      End If
                      Cordialement,
                      Henri.

                      Carte Mère ROG STRIX Z390 avec I9-9900 KF
                      32Go de ram 3200 Mhz, W10-64, P3D sur ssd 256 Go, scènes P3D sur ssd 256 Go, XP11 sur ssd 1 To
                      Carte Graphique GTX 980 TI, sortie sur 3 écrans Asus 278Q mode portrait soit 4500x2560.

                      Commentaire


                      • #12
                        Re Harry,

                        Content que ça fonctionne

                        J'ai ouvert main.cpp avec Notepad, je pensais l'ouvrir à l'intérieur de mingw mais je n'ai pas réussi.
                        mingw est un compilateur, pas un éditeur, je travaille avec Visual Studio Code de MS https://code.visualstudio.com/ qui est une version allégée du monstre Visual Studio.
                        Ca permet d'éditer toutes sortes de fichiers avec coloration syntaxique, Tu verras c'est mieux que Notepad (remarque c'est pas dur !)

                        Je t'ai fait une version avec tes demandes. J'ai posté ça sur mon repository en version 0.2-beta
                        Dis-moi si ça joue pour toi..

                        Bons vols,

                        mapleberry 8)
                        Nous ne voyons pas le monde tel qu’il est, mais plutôt tel que nous sommes...

                        PC Assemblé - Windows 10
                        Intel Core i7-7700HQ 3.8 GHz, 16 Gb DDR4
                        Nvidia GeForce RTX2060 6Gb
                        Double SSD 512Gb + 1Tb
                        Ecran 28' 2560 x 1440 + 26' 1920 x 1200
                        X Plane 11.41 via Steam
                        A319 Toliss
                        Carenado PC12_v1.2
                        DHC6-300 Twin Otter V2
                        Robin DR401
                        A320-200 JarDesign V3.2R1
                        A320 FF Ultimate V0.8.53-2016
                        JoyStick X 56 RHINO HOTAS

                        Commentaire


                        • #13
                          Bonsoir Mapleberry,

                          Merci, cette deuxième mouture fonctionne parfaitement.

                          J'ai viré VS2019 et installé VS Code. Je ne sais pas l'initialiser et je n'arrive pas à ouvrir main.cpp avec, je pense qu'il faut que j'installe C/C++ ou C# ?

                          Mes pics (18F4550) sont équipés HID ce qui était il y a une dizaine d'année assez simple à mettre en oêuvre c'est peut être obsolète aujourd'hui.
                          Cordialement,
                          Henri.

                          Carte Mère ROG STRIX Z390 avec I9-9900 KF
                          32Go de ram 3200 Mhz, W10-64, P3D sur ssd 256 Go, scènes P3D sur ssd 256 Go, XP11 sur ssd 1 To
                          Carte Graphique GTX 980 TI, sortie sur 3 écrans Asus 278Q mode portrait soit 4500x2560.

                          Commentaire


                          • #14
                            Salut Harry,

                            Nickel, content que ça fonctionne

                            J'ai viré VS2019 et installé VS Code. Je ne sais pas l'initialiser et je n'arrive pas à ouvrir main.cpp avec, je pense qu'il faut que j'installe C/C++ ou C# ?
                            Non, non, si tu l'as installé y'a rien d'autre à faire, c'est juste un éditeur de texte (enfin juste un peu plus...)
                            Ouvre VS code, drag&drop ton fichier main.cpp dessus depuis son répertoire et c'est tout... tu pourras le lire et l'éditer...

                            Pour discuter avec tes PIC en HID, ça j'ai jamais fait... t'aurais pas le source du VB, que je puisse voir comment c'était fait ?

                            Bons vols,

                            mapleberry 8)
                            Nous ne voyons pas le monde tel qu’il est, mais plutôt tel que nous sommes...

                            PC Assemblé - Windows 10
                            Intel Core i7-7700HQ 3.8 GHz, 16 Gb DDR4
                            Nvidia GeForce RTX2060 6Gb
                            Double SSD 512Gb + 1Tb
                            Ecran 28' 2560 x 1440 + 26' 1920 x 1200
                            X Plane 11.41 via Steam
                            A319 Toliss
                            Carenado PC12_v1.2
                            DHC6-300 Twin Otter V2
                            Robin DR401
                            A320-200 JarDesign V3.2R1
                            A320 FF Ultimate V0.8.53-2016
                            JoyStick X 56 RHINO HOTAS

                            Commentaire


                            • #15
                              Re,

                              Je t'ai mis un mail par l'intermédiaire de ce forum mais comme il n'y a pas possibilité d'y joindre un fichier, j'attendrais que tu me réponde pour t'envoyer tout le dossier VB en .rar
                              Cordialement,
                              Henri.

                              Carte Mère ROG STRIX Z390 avec I9-9900 KF
                              32Go de ram 3200 Mhz, W10-64, P3D sur ssd 256 Go, scènes P3D sur ssd 256 Go, XP11 sur ssd 1 To
                              Carte Graphique GTX 980 TI, sortie sur 3 écrans Asus 278Q mode portrait soit 4500x2560.

                              Commentaire

                              Chargement...
                              X