Editeur LUA

Bienvenue dans cet article. Aujourd'hui nous allons découvrir l'éditeur Lua et ses fonctionnalités.

La possibilité d'utiliser le langage Lua dans EEP est apparue la première fois avec la sortie du plugin 2 pour EEP10. Depuis, de nouvelles fonctions ont été sans cesse ajoutées pour apporter de la puissance dans l'automatisation de certaines taches d'exploitation d'un réseau. Cet article se limite uniquement à la présentation de l'éditeur et de ses fonctionnalités. L’interaction avec les fonctions Lua et le programme seront traités dans d'autres articles.

Ouvrir la fenêtre de l'éditeur Lua

Pour ouvrir la fenêtre de l'éditeur lua, cliquez sur le bouton situé dans la barre d'outils supérieure comme ci-dessous :

Bouton éditeur Lua barre outils EEP

Cette fenêtre reste accessible en mode 2D ou 3D.

Présentation de la fenêtre

Elle est divisée en cinq zones distinctes ainsi qu'un bouton Recharger le script :

  1. La zone d'édition pour saisir le code Lua,
  2. Quatre cases à cocher pour afficher les évènements liés à certaines classes d'objets dans la fenêtre d'évènements,
  3. Une zone de saisie pour utiliser un éditeur Lua externe comme Notepad++ par exemple,
  4. Deux boutons Ouvrir un script et Enregistrer un script,
  5. Indication de position pour le curseur dans la zone d'édition,
  6. Une fonction de recherche mais qui ne peut être appelée qu'avec le raccourci clavier Ctrl+F.
Fenêtre éditeur Lua dans EEP
Fenêtre de l'éditeur Lua

Nous allons maintenant détailler tous les paramètres de la fenêtre.

La zone d'édition

Cette zone de saisie est utilisée pour contenir votre code Lua. Par défaut, lorsque vous créez un nouveau projet, EEP ajoute automatiquement un bout de code par défaut :

Bout de code par défaut dans l'éditeur Lua EEP
Code Lua par défaut

Même si cela dépasse le cadre de cet article, il est bon de préciser au minimum l'explication de ces fonctions :

  1. clearlog() efface l'écran de la fenêtre d'évènements (utile pour effacer d'anciens résultats)
  2. Fonction EEPMain() : C'est la fonction Lua principale pour EEP. Elle doit figurer par défaut dans tous les scripts et c'est pour cela qu'elle est intégrée automatiquement dans chaque nouveau projet.

Une fois que vous avez terminé de saisir votre script, vous devez cliquer sur le bouton en bas à droite Recharger le script pour indiquer à EEP de prendre en compte les modifications apportées à votre script et fermer la fenêtre de l'éditeur. N'oubliez pas d'enregistrer votre projet avant de quitter EEP pour que vos modifications soient enregistrées.

La journalisation des évènements

En bas à gauche de la fenêtre, quatre cases à cocher permettent de journaliser quatre types d'évènements différents :

  1. Les évènements liés à la signalisation,
  2. Les évènements liés aux aiguillages,
  3. Les évènements liés aux véhicules,
  4. Les évènements liés aux contacts.
Cases à cocher évènements Lua dans EEP

Ici vous pouvez remarquer dans l'image ci-dessus, que seuls les évènements liés aux signaux et aux contacts seront pris en compte. Voici le résultat avec ces deux évènements après quelques secondes d'exploitation avec le projet EURO_Vmax_V7 livré en standard avec EEP :

Fenêtre évènements projet EURO_Vmax dans EEP

Faisons un focus sur quelques lignes prises au hasard :

Extrait code évènement Lua dans EEP

Nous avons à gauche deux rectangles rouge (repères n° 1 et 2) qui démontrent bien la capture des évènements liés aux signaux et aux contacts ce qui est conforme aux deux cases cochées précédemment.

A droite nous avons deux autres rectangles violet (repère n° 3) qui précisent quels sont les éléments concernés par l'activation des signaux et des contacts. Ici il s'agit d'une caméra et d'un aiguillage.

Ces options peuvent être très utiles en cas de débogage pour tracer les évènements entre ces quatre classes d'objets que sont les signaux, les aiguillages, les véhicules et les contacts.

Editeur lua externe

Depuis EEP17, il est désormais possible d'utiliser un éditeur externe pour éditer le code de vos scripts. Pour ce faire vous devez entrez le chemin complet de l'éditeur dans la zone prévue à cet effet :

Editeur Externe dans l'éditeur Lua EEP

Dans cet exemple, l'éditeur Notepad++ a été choisi pour modifier notre script. Entrez le chemin complet avec les guillemets comme ceci : "C:\Program Files (x86)\Notepad++\notepad++.exe"

Pour retrouver le chemin complet, le plus simple étant de faire un clic droit sur l'icône du programme Notepad++ et de choisir la commande Propriétés dans le menu contextuel pour afficher la fenêtre des propriétés du programme :

Fenêtre des propriétés de Notepad++ dans l'éditeur Lua EEP

La propriété Cible (entourée en rouge) est déjà sélectionnée par défaut. Il suffit juste de la copier et de la coller dans la fenêtre de l'éditeur Lua :

Bouton éditeur Lua Externe avec EEP

Ensuite il vous reste juste à cliquer sur le bouton Editeur Lua externe pour transférer votre script dans Notepad++.

Exemple d'un petit extrait de script affiché dans l'éditeur Lua EEP et ensuite dans l'éditeur externe Notepad++ :

Script Lua dans l'éditeur EEP
Script dans l'éditeur LUA interne à EEP
Script Lua dans l'éditeur notepad++
Script dans l'éditeur LUA externe Notepad++

La comparaison des deux écrans est sans appel. Le script dans l'éditeur externe Notepad++ est bien plus lisible par rapport aux numéros de lignes, la coloration syntaxique des mots clés, etc... Et surtout cet éditeur apporte des fonctionnalités puissantes comme la recherche, le remplacement, déposer des signets... La liste est longue... Dans cet exemple, c'est le choix du langage SQL qui a été fait pour colorer le script. Dans Notepad++ vous pouvez choisir pour chaque langage les couleurs des mots-clés, des commentaires, des fonctions, des chiffres, etc... Nous vous invitons à télécharger cet éditeur sur le site officiel pour profiter sans tarder des nombreux avantages apportés par ce programme qui de plus, est totalement gratuit et libre.

Une fois le script modifié dans l'éditeur externe, comment faire pour enregistrer les modifications et les intégrer dans EEP ? Avant de donner la réponse, il convient d'apporter une petite précision sur le mécanisme utilisé par EEP afin d'éviter une certaine confusion :

Précision : Vos projets ne sont pas forcément tous situés dans un même dossier. Vous pouvez avoir plusieurs dossiers avec des thèmes différents. Mais pour EEP peu importe, le programme fait une copie temporaire de votre script dans un dossier bien à lui lorsque vous utilisez l'éditeur externe. Donc tout ce que vous avez à faire après avoir modifier votre script est de l'enregistrer dans Notepad++ sans vous préoccuper du nom du fichier. Ensuite vous pouvez même fermer votre script dans Notepad++ si vous voulez.

Revenons à l'intégration dans EEP. Dans l'image ci-dessous, le rectangle violet montre quelques lignes de code avant modification. Entre-temps, la modification a été effectuée dans Notepad++ et enregistrée. Pour intégrer désormais les modifications, il suffit de cliquer simplement sur le bouton Ouvrir un script... comme dans l'image ci-dessous :

Ouvrir script temporaire dans EEP
Ouvrir un script après enregistrement dans l'éditeur externe

Après avoir cliqué sur ce bouton, une fenêtre s'ouvre dans laquelle vous avez un fichier nommé TempEdit.LUA. sélectionnez-le et cliquez sur le bouton Ouvrir pour le rapatrier dans l'éditeur Lua EEP :

Script modifié dans EEP
Script modifié dans Notepad++ réintégré dans EEP

Si nous comparons les deux rectangles violet, nous pouvons remarquer la prise en compte de la modification effectuée dans Notepad++. Dans le deuxième rectangle, les commentaires ont été supprimées.

Maintenant comme toute modification aussi bien dans l'éditeur Lua EEP que dans l'éditeur externe, il suffit de cliquer sur le bouton Recharger le script pour indiquer à EEP de prendre en compte les modifications.

Boutons Ouvrir et Enregistrer un script

Le chapitre précédent était dédié au paramétrage d'un éditeur externe. Mais vous pouvez tout à fait rester dans l'éditeur Lua interne à EEP pour écrire vos scripts. Malgré cela, vous pouvez toujours ouvrir un fichier script d'un autre projet pour l'intégrer dans le projet courant. Il suffit de cliquer sur le bouton Ouvrir un script... et de naviguer dans le dossier du projet en question. Chaque projet comporte obligatoirement un fichier avec l'extension *.lua. C'est ce fichier qu'il faudra ouvrir.

Inversement, vous pouvez décider d'enregistrer votre script dans un autre fichier et dans un dossier différent de votre projet en cours. Le bouton Enregistrer un script... est là pour ça. La procédure d'enregistrement reste identique comme n'importe quel fichier à enregistrer.

Indication de position du curseur dans la zone d'édition

Dans le coin supérieur droit se trouve les indications Ligne et Colonne pour la position du curseur :

Position du curseur fenêtre Lua dans EEP

Dans cet exemple, le curseur se trouve à la ligne n° 9 et au quatorzième caractère de la ligne. Vous pouvez retrouver exactement ces mêmes informations dans l'éditeur Notepad++.

Fonction de recherche dans l'éditeur Lua

Il existe une fonction de recherche bien cachée dans l'éditeur. Il faut utiliser le raccourci clavier Ctrl + F pour afficher la fenêtre de recherche comme dans l'image ci-dessous :

Fonction de recherche dans l'éditeur Lua EEP
Fenêtre de la recherche dans l'éditeur Lua

Cette fenêtre de recherche contient les commandes les plus courantes : la recherche, le remplacement et les options respecter la casse des caractères et porter la recherche uniquement sur les mots entiers. La encore vous pouvez retrouver ces mêmes options et bien d'autres encore dans l'éditeur Notepad++.

Conclusion

L'intégration d'un langage de script comme Lua dans EEP est un atout indiscutable et indispensable pour automatiser des tâches plus ou moins complexes dans vos réseaux. Lua pousse beaucoup plus loin les possibilités offertes par l'utilisation des contacts et paradoxalement simplifie la construction des automatismes en évitant de trop surcharger les réseaux par des dizaines de contacts inutiles. Les fonctions Lua pour EEP offrent aussi la possibilité d'accéder à certaines fonctions internes du programme et la gestion des objets.

Merci d'avoir lu cet article. Si vous avez des questions ou des suggestions, n’hésitez pas à nous en faire part en bas de cette page en commentaires.

Amusez-vous à lire un autre article. A bientôt !

0 0 votes
Évaluation de l'article
S’abonner
Notification pour
guest
0 Commentaires
Le plus ancien
Le plus récent Le plus populaire
Commentaires en ligne
Afficher tous les commentaires
Retour en haut