COM - Thread Developpement de RFRO Wheel Test 2020

Votez pour l'image du mois
  • Salut,

    Essais #2 :D

    Ce thread est pour le WIP ( work in progress ) du RFRO Wheel Test 2020, pour tester si ca marche, et m'aidez pour divers choses, comme tester, suggerer des features.

    Introduction

    RFRO Wheel Test 2020 est la suite de RFRWheelTest, le but et de faire une nouvelle version sans bug, avec une interface rafrachit utilisant les derniers API de dev. Et aussi rajouter des fonctionalités , par exemple le calcul de la friction.

    RFRO Wheel Test est programmé sur Visual Studio 2019 Community,

    Le programme principal est en C#/WPF/XAML.

    Ma librairie Input ( Direct Input ) est une DLL en C++.

    Le Runtime de l'application est une DLL en C++.

    La seule contrainte est d'avoir un Windows 64bit.

    Donc normalement ca devrait marcher sur tout Windows ayant le dernier Framework .NET installé.

    * AVANT INSTALLATION *

    Si vous devez installer le dernier .NET Framework : https://dotnet.microsoft.com/download/dotnet-framework

    Et le .Net Core 3.1 : https://dotnet.microsoft.com/download/dotnet-core/3.1 ,A droite : ASP.NET Core Runtime 3.1.0 -> Windows -> Installers.

    Et il faut aussi peut-etre que vous installiez la Distribution Visual Studio C++ 2015-2019 que vous trouverez ici : https://aka.ms/vs/16/release/vc_redist.x64.exe

    Download

    Le fichier est dans mon google drive , lien : https://drive.google.com/open?id=1OLtmi…-5Np46yfwC3wgvP

    Installation

    Il n'ya pas d'installation, c'est un zip qui comprend le fichier executable de l'application et les 2 DLL .

    Attention toute fois, avec les droit Windows il est préférable de Unzip le programme dans un repertoire ou les droits administrateur ne sont pas necessaire. Ou alors il faudra executer mon programme en mode Administrateurs, mais je ne le recommande pas.

    Utilisation

    Double cliquer le fichier executable .exe et ca devrait marcher.

    Le programme est en Anglais car d'autres personnes que Francaise pourrait etre interessé a utiliser le programme.

    La Boite de selection a droite de "Device Name" devrait contenier TOUS les peripheriques qui peuvent avoir des effect Force Feedback (FFB).

    Donc a priori il ne devrait y avoir que votre volant dans la selection. ( sauf si vous avez 2 volant ).

    Par defaut cela selection le 1er periph trouvé, et update les infos sur vote periph ( nombre d'axes, buttons, effets,etc. )

    La courbe est juste un placeholder.

    Comme d'hab si ca marche pas, screenshot, version de windows installé, etc.

    Ca doit ressembler a ca :

    Mz28sDeujb8myEqRADoeC-x3SlqpKqfQN7WBN9YiPsMH57PEk9MlHuWrbEKzfMd8QpFdwSZ1kL4MRf5m2NeWPmVkZajycPjFVGvLmQqKOLfl13woIY8qFD-5x9m2P7G53CORUAPfX9hGiwpZcXltT1jwnUYQk_IyCiMaRqLYk50xP2f4p5pIg1OLariufPuQHy3P0DrQEHcBH2-KUVDQCaah1JsFtENthSApU88Ylhr6HOUR2mhBU8MOEqb_AUcnGijz-WRzFTrZ9Wy4YaZSDqvg0FxP9KTIC-l80cd-ET_J098PRltMv5U-iW9QTF3b-yYMCrq3BlXhVMQPNHDyBeZAOsxOel67ok8fpY_UeO_1f6Z0z4idFeq4vFp_C_oQZnolljK2XozzjOmRNez1bqHwZTwtEiI6Jye5p-cu8DctY3y0sahuMF0borZL5lJs28w5qBJdmrHcmUJMHu_g6AwtGR8fqllRxucgDE9_zFif7oQAVEkw3t4wbZrfmadWVRg2Lk2De1Tfs44TaRDACXjkQmOEZvCg9FvAt__7MOmZeMdl0yqlzbxzLo4kxFTQM38MRJIY2mcfqdS6JagE7Aeg7e2_6R-thKtunoMdG3JvK_IL_Lv6J5hClvjd4FX9B7psgO4Rsau0nyvs4dEV1gaOS9BBrG9-Ga_SOK9xAUsF0L2JQOZ-HmsvrEdHWJYRzcsofP8GRPXzsjDWLs70G7v4hU8pyTmd10bhnyQ9bsjk6qQQHA=w800

    Asus Prime X570-P - AMD 5800X3D - 32GB CAS16 - Gigabyte RTX 4090 Waterforce - Pimax Crystal.

    Simucube1 20Nm Mige - Wave Italy Monza - Bash Pro Actice HShifter - DSD ButonBox - Ascher F28SC & BM16SC - XeroPlay QR - PT Actuator Champion GT

    Message modifié 1 fois, dernière modification par magicfr (8 janvier 2020 à 01:43).

  • Pour suivre le sujet.

    Samuel - En apprentissage permanent

    518.png

    ______________________________________________________________________________________

    Logitech G29 + Levier de vitesse Logitech Driving Force Shifter

    Boitier Full Tower Corsair 750D AirFlow Edition, Alimentation Zalman ZM850-GVM, CM Asus Z97K, CPU i7-4790k @ 4.00 GHz, RAM 16 Go, CG MSI Gaming TFV490 - NVidia GeForce GTX 980, écran Samsung 23" SyncMaster BX2331

    Mon installation

  • ça me semble rester une démarche DIY :voispas:

    Je suis d'accord avec toi dans le sens ou je le programme moi meme et que c'est pas un logiciel acheté.
    Je l'ai mis la car le post original RFRWheelTest avait été créé dans COM.

    Asus Prime X570-P - AMD 5800X3D - 32GB CAS16 - Gigabyte RTX 4090 Waterforce - Pimax Crystal.

    Simucube1 20Nm Mige - Wave Italy Monza - Bash Pro Actice HShifter - DSD ButonBox - Ascher F28SC & BM16SC - XeroPlay QR - PT Actuator Champion GT

  • New Version 0.2

    Download au meme endroit : https://drive.google.com/open?id=1OLtmi…-5Np46yfwC3wgvP

    - RuntimeCode dans un Thread d'update a haut taux de rafraichissement ( devrait etre > a 5000 fps )

    - thread update calcul la position et vitesse du volant en temps reel en fonction de Lock Deg rentré.

    - l'UI affiche des tooltips.

    -l'UI affiche les RuntimeCode update time, et la position et vitesse courant du volant.

    Asus Prime X570-P - AMD 5800X3D - 32GB CAS16 - Gigabyte RTX 4090 Waterforce - Pimax Crystal.

    Simucube1 20Nm Mige - Wave Italy Monza - Bash Pro Actice HShifter - DSD ButonBox - Ascher F28SC & BM16SC - XeroPlay QR - PT Actuator Champion GT

    Message modifié 2 fois, dernière modification par magicfr (2 janvier 2020 à 10:15).

  • New Version 0.3

    Download au meme endroit : https://drive.google.com/open?id=1OLtmi…-5Np46yfwC3wgvP

    • RuntimeCode :
      • Creation des effets Spring,Damper,Force
      • Creation du Test, pour l'instant recentre juste le volant.
      • Taux du refresh de volant, a quel taux de refresh la position du volant est rafraichit en nanosecond. Sur un simucube le refresh est 1000hz donc cela devrait etre autour de 1000 nanosecond. ( TODO afficher aussi en Hz ). Ca affiche N/A ( non applicable ) si le volant bouge pas ( vitesse = 0 ) , car je peux pas calculer ce taux si la position ne bouge pas, en effet, je mesure le temps entre 2 changement de position pour calculer cette valeur.
    • UI
      • Changé certain Stack Panel en Dock Panel
      • Ajout du bouton StartTest et info sur le test en cours.

    Dans cette version, a tester : que le volant se recentre quand vous cliquez [StartTest], normalement, une fois centré il devrai etre entre -5 et 5 degré.

    J'utilise du damping pour limiter la vitesse du volant donc ne désactiver pas vos effet DirectInput DAMPING !!!!

    Faites le test avec une roue accroché a votre volant.

    Avant de cliquer sur StartTest ,écartez vous du volant car il pourrait tourner vite ( normalement non si vous avez bien les effets Damping activé ).

    Si vous avec un SimuCube ou autres vos effets doivent etre du similaire:

    Other filters tout a 0

    DirectInput Effects Friction, damping et Spring a 100%.

    nNo_J-FYS4XkcdNo_GBPZ07E1RugPTotbPm1DyMj34hKYRCMRNlLjYtpJ6z7aA1EG2i7PRAgK5fRyVuHiIJedcjpMCadIhkZgrN0KQg_CL3pF8HqxmSSquiZreXH6DMp1SBgp3XWV2g=w800

    L app , maintenant ressemble a ca :

    P3p9s1GhNFxXxrpn5FeJ6u-N3_xTdvwDEpkyzLn6VWjxwDW-8mD6M8TFf4ytONUamemuB1xF_0rGnQ_Zw_DckK0Vr227c0Ic9KSLel4-zJ5j_qnU-Q0JgS3v3ThWr1WMeeMsbmvj4vk=w1024

    Asus Prime X570-P - AMD 5800X3D - 32GB CAS16 - Gigabyte RTX 4090 Waterforce - Pimax Crystal.

    Simucube1 20Nm Mige - Wave Italy Monza - Bash Pro Actice HShifter - DSD ButonBox - Ascher F28SC & BM16SC - XeroPlay QR - PT Actuator Champion GT

    Message modifié 1 fois, dernière modification par magicfr (3 janvier 2020 à 04:37).

  • magicfr , j'ai enfin pu essayer ta nouvelle version de RFRO Wheel Test et çà ne veut pas fonctionner chez moi.

    Au premier essai il me demande d'installer .net core et me demande si je veux le charger et m'envoie si réponse positive sur cette page.

    https://dotnet.microsoft.com/download/dotne…current/runtime

    Si je charge la version X64, au démarrage suivant il me redit que je n'ai pas .net core d'installé et si j'installe la version X86, si je lance ensuite le .exe il ne se passe rien. Sous gestionnaire de tache je vois que l'application s'ouvre furtivement et se referme...

  • Chez les autres ca marche, donc tu dois avoir un truc chelou sur ton windows qui est ??? ;)

    Essaye aussi d'installer la Redistribution C++ et le dernie .NET framework, liens sur le post #1.

    Apres si y a des experts en windows qui peuvent aider...

    Normalement mon programme est entierement en X64 , meme la partie netcore, mais je vais double check

    Asus Prime X570-P - AMD 5800X3D - 32GB CAS16 - Gigabyte RTX 4090 Waterforce - Pimax Crystal.

    Simucube1 20Nm Mige - Wave Italy Monza - Bash Pro Actice HShifter - DSD ButonBox - Ascher F28SC & BM16SC - XeroPlay QR - PT Actuator Champion GT

    Message modifié 1 fois, dernière modification par magicfr (6 janvier 2020 à 02:06).

  • Nouvelle version à tester, j'ai oublié d'incrementer le numero de version, donc toujours 0.3

    Download au même endroit : https://drive.google.com/open?…qkQpWhLFLf-5Np46yfwC3wgvP

    Fonctionalités ajoutées :

    • Les actions de test complet sont actifs, les étapes :
      • Le volant se centre
      • Puis va complétement à gauche ( TODO : tester que le volant va bien dans le bon sens sinon inverser la force )
      • Attend que le volant soit arrêté
      • Actionne la force max vers la droite
      • Stoppe le volant avec damper aux max quand le volant atteint la butée à droite.
      • Attend que le volant soit arrêté
    • J'ai 2 mesures qui fonctionnent, MERCI DE TESTER ET DONNER VOS RESULTATS
      • Taux de rafraichissement moyen du volant pendant le test en Hertz
      • Latence totale mesurée entre le moment d'envoi de la commande FFB et première position de volant qui change en millisecondes.

    Merci de tester et de me dire si le test fonctionne pour vous. Et surtout ceux qui avait des valeurs de latences mesurées impossibles ( négative ), Merquiiiiiiiiiii.

    Pour simuler les volant + bas de gamme que le Simucube, j'ai même testé avec jusqu’à 10% de friction statique et le test marchait toujours. Donc j'ai bon espoir.

    * AVANT DE LANCER LE TEST, ACCROCHEZ UNE ROUE A VOTRE MOTEUR ET ECARTEZ TOUT OBJET OU VOTRE MAIN DE LA ROUE CAR LE TEST EST VIOLENT *

    Screenshot :

    rj4uwq9vXPcBIXa3dZ-Rhc2sFD6Sb8Ja1BZ5AA0cq1DoCIJhnQHtO7eip7-58feNGPnjr0kPfQR5MaWfM3yQF7OVnuuqVG9hJkKCIMZeg2uje-_pXyCrMdyn5ZVvEsYyyXna_qfzmTg=w1024

    Asus Prime X570-P - AMD 5800X3D - 32GB CAS16 - Gigabyte RTX 4090 Waterforce - Pimax Crystal.

    Simucube1 20Nm Mige - Wave Italy Monza - Bash Pro Actice HShifter - DSD ButonBox - Ascher F28SC & BM16SC - XeroPlay QR - PT Actuator Champion GT

    Message modifié 6 fois, dernière modification par RacingMat (6 janvier 2020 à 15:54).

  • J'ai réussi à démarrer le programme. J'avais le même souci que Stef Bord .

    Faut bien installer ça

    https://aka.ms/vs/16/release/vc_redist.x64.exe

    J'ai un souci sur la rotation, ton programme indique 900° hors je suis à 1080°

    Je n'ose pas utiliser ton soft avec mon volant, y'a-t-il un risque sur des volants non DD ?

  • J'ai pas moyen de connaitre le nombre de degré, si tu regardes bien c'est une fenetre d'entrée, c'est a toi de rentré le nombre de degré de ton volant dans cette boite pour que mon programme connaisse la conversion entre ma librarie input qui me donne une valeur flottante entre 0 et 1 , et ton volant en degré.

    Tu selection la boite ou c'est marqué 900, et tu mets 1080, et tu peux lancer le test, ca craint rien du tout.

    Au contraire je veux que mon programme marche aussi sur les autres volant , comme la 1ere version de RFR Wheel Test ;)

    EDIT : TODO : sauvegarder les entrées ( lock degree, weight et diametre )

    Asus Prime X570-P - AMD 5800X3D - 32GB CAS16 - Gigabyte RTX 4090 Waterforce - Pimax Crystal.

    Simucube1 20Nm Mige - Wave Italy Monza - Bash Pro Actice HShifter - DSD ButonBox - Ascher F28SC & BM16SC - XeroPlay QR - PT Actuator Champion GT

    Message modifié 1 fois, dernière modification par magicfr (6 janvier 2020 à 15:04).

  • Nouvelle version à tester, version 0.4.0

    Download au même endroit : https://drive.google.com/open?…qkQpWhLFLf-5Np46yfwC3wgvP

    Fonctionalités ajoutées :

    • Processing des datas pour calculer la vitesse max et l'acceleration max, meme alogrithme que pour l'ancien RFR Wheel Test
      • Calcul de vitesse max avec le moyennage au carré avec recherche d'erreur au carré minimum.
      • Calcul d'acceleration max par regression linéaire avec recherche d'erreur au carré minimum.
    • Affichage de la courbe de position ( jaune )
    • Affichage de la courbe de vitesse ( blanche )
    • Affichage de la ligne de vitesse max calculée ( bleue )
    • Affichage de la ligne d'acceleration max calculée ( rouge )
    • Ajout d'un gros bouton [Cancel] qui annule toutes les forces FFB/Sping/Damper du volant, c'est le bouton d'arret d'urgence.

    Au fait, je sais pourquoi parfois la courbe de vitesse est tres bruitée et ca arrive de façon aléatoire. Je poll la position du volant à frequence élevée , le plus vite possible, mais cette fréquence n'est pas syncrhonisée avec Direct Input ou les drivers du volant,donc les timings ne sont pas stable. C'est donc "normal" que cela arrive, ce n'est pas votre volant qui déconne.

    Je pense avoir déja trouvé comment fixer cela, mais cela va demander de changer ma librairie InputDevices, pour changer la lecture des positions en Polling par le systeme d'event Windows qui appelle une callback quand une valeur varie. Donc ca va pas etre pour tout de suite.

    J'ai testé sur mon Simucube 1 Mige 20Nm Biss-C: screenshot dessous, et les valeurs trouvées sont quasi les memes que celle postées dans l'ancien thread RFR Wheel Test, donc les calculs semblent être bon :)

    * A tester que le test vous donne des mesures similaires qu'avec l'ancien RFR Wheel Test *

    * Tester si ca mesure des valeurs de Latence fausse ( négative ou quasi 0 )

    Merci :)

    Screenshot :

    Les courbes :

    -Jaune , position du volant ( pour 900° donc de -450° a +450° environ )

    -Blanc la vitesse du volant, si la courbe est toute bruitée c'est ""normal""

    -Bleu la vitesse max calculée

    -Rouge l'acceleration max calculée

    p46NxpbamzxIHqrZFslevu6hev4dEBDSuu2_twlOiSIUTIkd6fh_5QxTboXCkKuA3LU0YbpUwfsX9nIoCQd0JxOzh3CfpIg_a3E4-O4MW0DzZwQq3N7uqPNfz7PyqWbk4tACUAs_XPk=w1024

    Asus Prime X570-P - AMD 5800X3D - 32GB CAS16 - Gigabyte RTX 4090 Waterforce - Pimax Crystal.

    Simucube1 20Nm Mige - Wave Italy Monza - Bash Pro Actice HShifter - DSD ButonBox - Ascher F28SC & BM16SC - XeroPlay QR - PT Actuator Champion GT