Forum eep

Fenêtre de contrôle
 
Notifications
Retirer tout

Fenêtre de contrôle

46 Messages
4 Utilisateurs
18 Reactions
210 Vu
Domi
 Domi
(@domi)
Messages: 83
Membre Admin
 

Bonjour Alain,

Qu'entends-tu entrer la valeur de "variable" par le clavier ?

Domi

 
Posté : 23 avril 2024 17h33
ar93
 ar93
(@ar93)
Messages: 29
Membre
Début du sujet
 

Bonjour Dominique,

Variable est la valeur positive ou négative qui donne la vitesse.

Comment entrer cette valeur dans LUA ?

Je préférerai par l'intermédiaire d'un joystick

Alain

 
Posté : 23 avril 2024 17h37
Stéphane
(@stephane-sb5)
Messages: 148
Membre régulier
 

Bonjour Alain.

J'ai chercher joystick dans la recherche du site Allemand, et voici ce qui sort!

https://www.eepforum.de/search/?q=joystick&sortField=time&sortOrder=DESC

Sert toi de Google traduction en ligne pour comprendre ce qui est écrit. Il y a 3 pages avec plusieurs discussions, peut-être que tu trouvera ton bonheur là dedans? 

Stéphane. 🤠 

 
Posté : 23 avril 2024 18h07
Domi
 Domi
(@domi)
Messages: 83
Membre Admin
 

Posté par: @ar93

Comment entrer cette valeur dans LUA ?

Je préférerai par l'intermédiaire d'un joystick

Donc tu veux interfacer Lua avec un joystick si j'ai tout compris ? Je n'ai pas beaucoup de compétence mais j'essaye de comprendre 🙂 

 
Posté : 23 avril 2024 18h18
ar93
 ar93
(@ar93)
Messages: 29
Membre
Début du sujet
 

Oui Dominique

 
Posté : 23 avril 2024 18h44
Stéphane
(@stephane-sb5)
Messages: 148
Membre régulier
 

Au faite, puisque tu est nouveau, je t'informe qu'il y a des modèles gratuits sur le forum Allemand! Si cela t'intéresse?

Stéphane. 🤠 

https://www.eepforum.de/filebase/category-file-list/21-kostenlose-modelle-ab-eep-7/

 
Posté : 23 avril 2024 19h29
ar93
 ar93
(@ar93)
Messages: 29
Membre
Début du sujet
 

Bonjour Stéphane,

Merci pour ton information précieuse.

Alain

 

 
Posté : 24 avril 2024 9h20
Réaction à ce sujet : Stéphane
ar93
 ar93
(@ar93)
Messages: 29
Membre
Début du sujet
 

Bonjour Dominique,

1) - EEP 17 sait interpréter sans LUA les informations logiques et analogiques données par un joystick. Mais ces valeurs ne sont pas allouables par l'utilisateur. Dommage.
Il faudrait que comme dans les simulateurs de vol par exemple, l'utilisateur de EEP puisse à sa guise, allouer chaque commande d'un joystick à une commande de EEP.
Trend voudra-t-il le faire ?

2) - LUA et sa commande EEPSetTrainSpeed("#Nom_du_Train", 80) // Fixe une vitesse cible pour un convoi ferroviaire.
Comment donner à LUA la valeur positive ou négative de la vitesse fixée à 80 dans l'exemple ci-dessus ?
La encore, la reconnaissance des éléments d'un joystick serait intéressant.

Je peux faire reconnaître par Windows un "Joystick" de ma conception qui générera comme tout joystick des valeurs logiques et analogiques.

Il est naturellement indispensable que ces valeurs soient reconnues par EEP.

Si tu le souhaites, je peux te détailler encore plus tout ça, afin que tu puisses le soumettre à Trend.

Bien cordialement

Alain

 

 

 
Posté : 24 avril 2024 10h00
Réaction à ce sujet : Stéphane
Domi
 Domi
(@domi)
Messages: 83
Membre Admin
 

Bonjour Alain,

J'ai parfaitement compris ce que tu voudrais accomplir avec EEP mais dans l'état actuel des choses, il n'y pas de commandes spécifiques prévues pour assigner une commande personnalisée aux touches d'un joystick hormis celles prévues par défaut. Pour le moment, il n'y a pas de fonctions Lua intrinsèques à EEP pour intéragir avec un joystick.

Néanmoins, on peut interfacer et joindre des bibliothèques externes écrites en C pour récupérer les commandes du joystick, ça c'est possible directement dans un script Lua. Le problème est que si tu récupères la valeur d'une variable en fonction d'une plage de valeur d'une touche de la manette et que tu veux l'assigner par exemple à la fonction EEPSetTrainSpeed("#Nom_du_Train", 'valeur de la variable récupérée dynamiquement') et bien ça ne fonctionne pas car il y a un conflit qui se créé vu que la touche est déjà assignée en interne avec la commande par défaut. Donc nous en revenons au même point : il faut que Trend "libère" les assignations par défaut et laisser l'utilisateur les choisir lui-même. Sauf que, sinon ce serait trop simple !... Trend ne va pas s'embêter pour le moment par une fonctionnalité qui n'a jamais été demandée et pour laquelle les assignations par défaut ont toujours été bien accueillies par les autres utilisateurs...

Voilà... mais comme toujours, je vais de mon côté soumettre cette idée... et la meilleure façon de la mettre en place est de pouvoir paramètrer les touches via des fonctions Lua spécifiques à EEP du style : EEPSetJoystickRunForward("nom_de_la_touche") pour la marche avant ou EEPSetJoystickRunbackward("nom_de_la_touche") pour la marche arrière ou encore EEPSetJoystickRunSpeedFixed("nom_de_la_touche", "Vitesse")... Ce ne sont que des exemples qui ne valent rien mais c'est pour illustrer mon propos.

Cordialement 😉 

Domi

 
Posté : 24 avril 2024 11h12
Réaction à ce sujet : Stéphane
ar93
 ar93
(@ar93)
Messages: 29
Membre
Début du sujet
 

Cher Dominique,

Merci pour ta synthèse très réaliste et très précise.

La visualisation des fonctions obtenue dans EEP 17 avec un joystick montre bien l'esprit et la volonté de Trend dans ce domaine.

Tout pour la vue, juste le frein tout ou rien pour la traction.

Il faudrait qu'ils fassent comme tu l'as écrit.

Merci par avance.

Bien cordialement

Alain

 

 

 

 
Posté : 24 avril 2024 12h02
Réaction à ce sujet : Stéphane
Domi
 Domi
(@domi)
Messages: 83
Membre Admin
 

Posté par: @domi

EEPSetTrainSpeed("#Nom_du_Train", 'valeur de la variable récupérée dynamiquement')

Et je vais même revenir sur cet exemple avec la fonction EEPSetTrainSpeed et analyser plus en profondeur ce qui doit se passer "sous le capot".

Il faut savoir que via la fonction EEPMain(), 5 appels par seconde sont effectués c'est à dire toutes les 200 millisecondes.

Donc si tu assignes une vitesse dynamiquement à la fonction EEPSetTrainSpeed, dans le court laps de temps où tu fixes une vitesse, celle-ci sera prise en compte que 200 millisecondes plus tard. Jusque là, c'est imperceptible. Sauf que... le temps que cette vitesse soit réellement prise en compte, une nouvelle vitesse sera assignée pour les 200 millesecondes plus tard... Et même dans l'hypothèse que la vitesse ne bouge pas, la même vitesse sera de nouveau réassignée toutes les 200 millisecondes (tant que l'on fera appel à cette fonction). Moralité : le fait de demander à EEP d'assigner une vitesse en continue monopolise des ressources supplémentaires.

Alors bien sûr, le script Lua est exécuté dans un thread séparé et donc en dehors du thread principal qui gère le programme EEP mais quand même...

Voilà pourquoi que la fonction EEPSetTrainSpeed est conçu pour être appelée à un moment précis mais n'est pas conçue pour assigner une vitesse dynamique en boucle. Quand je dis en boucle, même une boucle de quelques secondes serait déjà longue.

Et ce qui m'amène à penser que modifier ce comportement reviendrai à modifier les fondements même d'EEP. Il faut savoir que ce programme a été conçu pour la première fois depuis plus de 20 ans... et à cet époque, l'informatique n'était pas celle qu'elle est maintenant. Malheureusement, la version 17 s'exécute toujours sur un seul thread.

On pourrait encore décortiquer plus en profondeur le pourquoi du comment.

A bientôt pour cette conversation passionnante ! 😉 

Domi

 
Posté : 24 avril 2024 12h15
Réaction à ce sujet : Stéphane
ar93
 ar93
(@ar93)
Messages: 29
Membre
Début du sujet
 

Cher Dominique,

Non, les choses sont beaucoup plus simples.

Un seul ordre sans repeat est nécessaire.
 
Voilà mon petit programme LUA pour donner la commande "Avant 10" à ma loco DB.
 
clearlog()
 
EEPSetTrainSpeed("#DB V200-008 EpIII", X)
 
On ne lui prend pas la tête.
 
Lorsque la valeur sera donnée par le joystick, il y aura naturellement besoin de lire et d'interpréter ses différents éléments.
Cela se fera dans une boucle, mais si la valeur nouvelle est égale à la précédente, on bouclera l'information sans faire
d'action nouvelle.
 
Un joystick reconnu par Windows en tant que tel peut posséder bien plus que quatre potentiomètres analogiques, douze interrupteurs logiques, un commutateur à huit positions plus le centre.
 
Nous le définirons ensemble le moment venu en fonction du besoin exprimé.
 
Pour l'instant, nous cherchons à bénéficier de deux types de commandes de conduite en partant d'un joystick qui reste à définir:
1) - Par l'intermédiaire de LUA, faire varier la valeur de la variable de vitesse entre -X et +X
X étant la vitesse Max Avant et Arrière du train
La commande LUA "EEPSetTrainSpeed("#DB V200-008 EpIII", X)" existe déjà
 
2.0) - Grâce à des commandes LUA qui restent à créer, pouvoir dans la Fenêtre de contrôle, agir sur:
- Régulateur de vitesse (0, 100%)
- Frein (0, 100 %)
- Sens (Hauteur de bielle pour la vapeur) 3 crans AR, 3 crans Av ou 0, 100 %.
0    = Arrière toute
100 = Avant toute
 
2.1) - hors LUA, par allocation des commandes d'un joystick, pouvoir dans la Fenêtre de contrôle, agir sur:

- Régulateur de vitesse (0, 100%)
- Frein (0, 100 %)
- Sens (Hauteur de bielle pour la vapeur) 3 crans AR, 3 crans Av ou 0, 100 %.
0    = Arrière toute
100 = Avant toute
 
A noter que Notre joystick(Tableau de commande) pourra aussi, par allocation, commander Ex:
- Attelage Avant
- Attelage Arrière
- Feux 
- Klaxon
- Contrôler des éléments (0, 100 %)
 
Autres, à définir
 
Et tout ça SI Trend veut bien. 
Je, Nous, nous en remettons d'ores et déjà en tous points à tes bons soins pour leur faire faire ces modifications qui vont disons le, dans le sens de l'amélioration de leur Merveilleux simulateur.
 
Bon courage.
 
Bien cordialement
 
Alain
 
PS: Si tu les sens positifs, le temps qu'ils fassent leurs modifs., je suis à votre écoute pour élaborer le pupitre dédié tel que vous le souhaitez.
 
 
Posté : 24 avril 2024 14h59
Réaction à ce sujet : Stéphane
ar93
 ar93
(@ar93)
Messages: 29
Membre
Début du sujet
 

Afin de polariser les esprits, je vous propose cette liste non exhaustive bien sûr de commandes sur le pupitre dédié à venir

EEP 17
Liste des commandes du pupitre dédié
 
Nom Joystick Clavier LUA
TRAIN
Régulateur de vitesse Axe X
Frein Axe Y
Sens (Inverseur) Axe Lacet
Attelage Arrière K
Attelage Avant L
Klaxon H
Aiguillage suivant F
Signal suivant G
 
ELEMENT
Contrôle des éléments Axe Gaz
 
VUES
1
2
3
4
Subjective AV 5
Subjective AR 6
Intérieur cabine 8
Dessus loco 9
Intérieur cabine 0
 
Flèche Droite FD
Flèche Haut FH
Flèche Gauche FG
Flèche Bas FB
 
Vos remarques et suggestions sont indispensables. 
Lorsque la liste sera définie, je vous soumettrai le design de la face avant avec les commandes et la sérigraphie
 
Bien à Toutes et à Tous
 

Alain

 
Posté : 24 avril 2024 16h27
Réaction à ce sujet : Stéphane
ar93
 ar93
(@ar93)
Messages: 29
Membre
Début du sujet
 

Je viens de m'apercevoir de la mauvaise tabulation de mon document.

Celui-ci sera plus lisible.

Pupitre Liste des commandes

Avec mes excuses.

Alain

 
Posté : 24 avril 2024 16h39
Réaction à ce sujet : Stéphane
ar93
 ar93
(@ar93)
Messages: 29
Membre
Début du sujet
 

Bonjour Dominique,

Le joystick est actuellement reconnu par EEP. La Xbox 360 aussi.

Je découvre le langage LUA et m'aperçois que pour interfacer notre pupitre de commande avec EEP par son intermédiaire, une liaison Série RS232 C serait mieux adaptée.

Le protocole reste naturellement à définir et à convenir.

Trend voudrait-il bien nous permettre cette liaison Série traditionnelle au travers du port USB usuel ?

Je reste naturellement à leur disposition pour s'ils le souhaite, participer au développement de cette liaison.

Bien cordialement

Alain

 

 

 

 

 

 

 
Posté : 25 avril 2024 14h00
Réaction à ce sujet : Stéphane
Page 2 / 4
Partager
Retour en haut