Cliquez ici pour la version française plus bas dans ce document
This application drives a small LCD color display to show model railway time table.
It cyclically display departures and arrivals list over a (partial) day. It also allows displaying a fixed, blinked or scrolling message on bottom of screen. Lastly, it allows to display an out of order message over the full screen, with a user's message.
Basic idea is to present to spectators a simulation cycle over a reduced time (for example a full day over 7 minutes).
It's based on an agenda, with one line giving time where: - a train is arriving or departing the station, - we display (or clear) a message on botton of screen, - we set (or clear) out-of-service indication.
You can display departures, arrival, both or none (in the last case, we'll switch on out of service message permanently).
For each (arrival and departure) mode, you can specify: - mode activation (or not), - time to display current mode before switching (if requested) to the other (10 à 15 seconds), - minimum line count to display permanently for this mode (set to zero, only lines corresponding to the next parameters will be specified, to 7, you'll always will have a display with the next arrivals/departures), - time before displaying train arrival or departure (generally, few hours), - time before displaying platform number (generally around 20 minutes), - background color of even lines (by default, SNCF colors are used, but you can specify your own), - background color of odd lines (same remark).
Every (simulated) minute, program updates screen, looking only foe elements of current mode (arrival or departure) and selecting whose with active interval (for example within the next 3 hours) or until filling the minimum lines to display (even if the line is out of interval). It stops when page is full of lines within interval, or when we displayed the minimum count of lines, or when full agenda file has been scanned (with a rollover).
In addition, when city names are too long to be displayed entirely, it's possible to define: - time to display start of city name before scrolling, - duration between each scrolling character (won't scroll if set to zero), - count fo spaces displayed after name before going back to start.
Applications runs on an ESP8266, which can either be connected to an existing WiFi network, or create it's own. Settings are done through an embedded Web server. Messages are displayed on Web interface, and can be sent on a syslog server.
Application is autonomous, and can work with external action or connection, using last set of parameters. You just have to power it.
We'll now see structure and content of configuration files, easier to use than Web interface for large amount of data.
We'll then see Web interface.
Data related to display panel are written into a file.
It's possible to load multiple configuration files on ESP, a drop down list allows to select the one to be used.
File name is let on user's discretion, but file type should be .txt.
CSV is used as internal file format, using ; as separator.
Each data type follows a header, allowing to identify data type.
Data can be edited with a spreadsheet (LibreOffice, OpenOffice, even Excel...) or using simple editors (line NotePad++ or equivalent).
You may want to add comment in order to clarify some lines/actions. They are specified at end of line, and start with a # character. Note that everything following this character up to end of line will simply ignored.
Here's an example of empty file:
Time;Type;City;Message;Platform/TextColor;Train/BackgroundColor
FYI, one first header zone is tested (and should Time or Heure). You can change other header names to what ever you want.
Note that character encoding varies from OS and countries, and panel could only display characters without accents. It' safe not using them in configuration file, display on panel could be amazing else ;-)
It allows specifying train departures and arrivals, message display and panel out-of-order settings.
For example (cities are French ones from Gare de Lyon and Gare d'Austerlitz):
Time;Type;City;Message;Platform/TextColor;Train/BackgroundColor
05:41;D;ORLEANS;D;5425
06:03;D;MARSEILLE;B;1333
06:16;D;GENEVE;3;7140
06:18;A;ORLEANS;3;5428
06:20;D;LYON;C;5194
Line contains time, followed by D for departure and A for arrival, the city name, platform number (on one position) and train number (on 4 positions).
All zones are mandatory.
Time is specified using HH:MN format on 5 characters.
Only 13 characters of city name are displayed, but it's possible to scroll longer names.
They're displayed on last display line. Only last message is shown, every new message clears the previous one. You clear active message sending an empty new message.
Line contains time, followed by FM for Fixed message, BM for Blinking Message or SM for Scrolling Message, then message, text color and background color.
Colors are given using 5-6-5 format, coding a color on 16 bits, with 5 bits for red, 6 bits for green and 5 bits for blue. Result is from 0 (back) and 65535 (white).
You may also replace numerical values by black, white, red, green, blue, yellow, cyan, magenta or orange.
Only first 26 characters will be displayed, pther ignored. Beware of accents!
By default, an empty line deactivate last line (which could be reused if needed to display an additional departure or arrival. If you don't specify test color, white will be used, a background color by black.
For example :
07:21;FM;FIXED MESSAGE;WHITE;RED # Displays "FIXED MESSAGE" in white on red background starting at 07:21
07:24;BM;BLINKING MESSAGE;BLACK;WHITE # BLinks "BLINKING MESSAGE" in black on white background starting at 07:24
07:33;SM;Scrolling message # Scrolls "Scrolling message" in white on black background starting at 07:33
07:37;FM # Clear 07:33 (last) message at 07:37. Note that "BM" or "SM" leads to the same result.
it clears screen, display a red cross starting on 4 screen's corners, with a text centered on screen. You deactivate this mode sending an empty text. Departure and arrival lines will then resume.
Line contains time, followed by OOS (for Out O Service), then text, text color and foreground color.
As for bottom messages, colors are defined in 5-6-5 format, list of already given colors also usable.
Only first 26 characters will be displayed, other ignored. Beware of accents!
By default, an empty text will deactivate indication (and resume departures/arrivals display), a non specified text color will be white, and an unspecified foreground color will be black.
Interaction between user and ESP will be done through an embedded Web server, using a Web browser, from a computer or a smart-phone.
Address to be used depends on user's settings.
Most common case where module is not connected to an existing WiFi, you have to connect computer or smart-phone to module's WiFi access point (with default values, it's named Panel_xxxxxx where xxxxxx represents end of ESP MAC address). You have then to connect to server by http://192.168.4.1/
If an existing WiFI has been specified (and as been detected at module's startup), you'll be connected to this network, and IP address given by router.
In all cases, network name and IP to use will be displayed on console (USB) port at start time.
Home page / or /index.htm of embedded Web server looks like:
It is split in few parts:
You can find module name on first line.
Simulation frame contains data on ... simulation (amazing, isn't it?)
Configuration drop down allows specifying configuration file to use. Drop down show available files on ESP.
You then have fields to specify hours and minutes for simulation start and end. Normally, you should have 00:00 et 23:59, but you may specify different values to reduce simulation interval, to either present only part of a day or debug a complicated part of file.
As soon as start and end times specified, you have to enter simulation cycle duration, in minutes.
Note than reducing simulation interval will slow it down.
As guide, durations between 5 to 10 minutes seems to be reasonable.
You can start and stop simulation with related buttons.
Simulation time is given between these 2 buttons. It's updated in real time when simulation is active, else Stopped at xx:xx will be displayed.
Frame content is visible only when ticked.
It's used to load a configuration file (previously described).
You can specify file to used either:
- clicking
Browsebutton, then selecting file in dialog that'll open, - or dragging and dropping file on
Drop configuration file herebox.
File will then be downloaded and analyzed.
Errors will be displayed into trace frame, final status written into state frame. In addition, screen will display OUT OF SERVICE message and error code ne displayed on last line.
This frame allow to:
- display parameter setup page clicking on
Parametersbutton (see here under), - display file system editor clinking on
Editorbutton (see also here under), - display a line with WiFi status (access point or existing WiFi) and ESP IP address,
- display a line with total memory available and largest block size (debugging),
- display a line with result of last configuration file analysis (
<Configuration file name> loadedif no error, error message else).
This frame contains list of traces sent by ESP, last line being displayed on top of list).
Explanations about different messages can be found on Traces generated by system chapter.
System settings page /setup looks like:
First line contains a Language drop down indicating ... language used to display browser pages (well done, isn't it?).
If browser support French, it will be used. Else, we'll switch to English.
Note that server language is defined at compilation time.
Configuration drop down allows specifying configuration file to use. Drop down show available files on ESP.
Following frame allow to define parameters for departures and arrivals:
Activeallows to activate (or not) the full column. Note that if both columns are deactivated, screen will go intoOut of service,Headerallows to give first line of screen,Display duration (seconds)defines this column display duration. After, display will switch on other column, if activated. Else we'll stay on this column.,Display window (minutes)gives duration where program will look for elements to display. For example, 180 minutes (3 hours) allows to look for departures/arrivals within the next 3 hours,Track window (minutes)give number of minutes before departure or arrival to display track number(often 20),Minimum line countgives the minimum lines of departures/arrivals to display (meaning that you'll always well have a least this number of lines displayed, even if lines are outside time limit),Odd lines colorandEen lines colorgive background color of odd/even lines, like SNCF panels).
Next frame describe ESP network parameters:
WiFi SSIDindicates existing WiFi SSID to connect module to. If not defined, or can't be connected during the first 10 seconds of module life, we'll switch to local ESP access point,Passwordindicates password associated to preceding WiFi SSID, if it has one,Access Point passwordindicates password to be used with the ESP locally created local access (which won't be protected if let empty),Module namespecifies network name given to module (to distinguish other modules, if needed).
Following frame gives information to be used if you want to send trace to a syslog server:
Syslog servergives name or IP address of server (empty, nosyslogwill be used),Syslog portgives port number to use (514 by default).
Then we have flags used to control message types to display/send. They're all used to debug:
Display routing enteringis used to display names of main routines when entered,Display debug messagesmakes what we think it will,Display verbose messagesadd ore messages to the trace,Display Java tracesdisplay traces of JavaScript messages,Send traces to syslogallows to send trace tosyslogserver.
Restart button is used to ... restart module (still well done!). It's useful when modifying a parameter needing rebooting ESP (like parameters linked to LED or WiFi).
Last part contains trace already explained before.
/edit embedded files management page looks like:
It displays list of file on ESP in the left part, allows to modify, delete, download files, create an empty file or load a file from computer or smart-phone.
To be used on request.
System generates more or less traces (depending on setting previously explained).
These traces are coming from two sources: ESP and browser.
Tehse rare traces sent by ESP itself, to indicate its state and report errors it may encounter. We have:
As already explained, ESP analyze configuration file when it starts, and after each file download.
It's possible to detect incoherences during this analysis. They'll be signaled by a message giving information on the issue. Displaying an error will stop analysis and switch to Out of Service panel with error code on last line.
In following text, variable parts will be included within < >. For example, <line number> will be replaced by the corresponding file line number.
We'll find:
Can't open file <file name>: problem opening file,Bad file header <header line> in <file name>: first line of file part seems not to be valid, should beTime,File missing for <file name>: file has not been found,<header type> header already defined in <file name>, before line <line number>: a type of header is defined twice in the file, second time at a given line,Bad field count (<field count>) line <line number> of <file name>: a line has either less fields than minimum required, or more than the maximum allowed,Illegal number <number> field <field number> line <line number> of <file name>: a value is illegal for a field,Out of range <value> field <field number> line <line number> of <file name>: a value is out of allowed range,Illegal time <time>, field <field number> line <line number> of <file number>: an illegal time has been given,Unknown color <color>, zone <zone number>, line <line number> of <file name>: specified color name is unknown (should beblack,white,rde,green,blue,yellow,cyan,magentaororange),Incorrect ending LED <led number>, line <line number> of <file name>: LED number (computed from first LED and LED count) is out of ribbon, -Unknown error <error number>, file <file name>, line <line number>, integer <integer value>, string <string value>: an unknown error has bed detected, all parameters are displayed. Please forward data to developer.
Program sends some messages to inform user about certain changes.
Main are:
Agenda <agenda line number>, now <simulation time>: activation of a line of agenda at given simulation time. Allow to follow whre we're in simulation and which line(s) will be executed,Going from <ending time> to <staring time>: loops at end of simulation to start of simulation,Title : <page title>,Line <line number> <Line content>,Center line <line number> <line content>give title and line content displayed on panel,Message <message content>, type <message type>: give message and message type (1=fixed, 2=blinking, 3=scrolling),Out of service <message text>: giveout of servicemessage.
Other messages can been sent. It's possible to complain to developer if they're not sufficiently clear ;-)
In addition to traces generated by server, other errors can be generated by browser and be displayed in trace frame.
In particular, Java traces, if they're activated, and fatal errors when occurring in browser.
Embedded web server answer to the following URL:
/: display home page,/status: returns program state as JSON data,/setup: display setup page,/settings: returns parameters as JSON data,/configs: returns configuration file list,/debug: returns internal variables to debug,/log: returns last saved log lignes,/edit: manages and edit file system,/tables: returns internal tables content,/command/enable/enter: armsDisplay routing enteringflag,/command/enable/debug: armsDisplay debug messagesflag,/command/enable/verbose: armsDisplay verbose messagesflag,/command/enable/java: armsDisplay Java tracesflag,/command/enable/syslog: armsSend traces to syslogflag,/command/disable/enter: disarmsDisplay routing enteringflag,/command/disable/debug: disarmsDisplay debug messagesflag,/command/disable/verbose: disarmsDisplay verbose messagesflag,/command/disable/java: disarmsDisplay Java tracesflag,/command/disable/syslog: disarmsSend traces to syslogflag,/languages: Returns supported languages list,/changed: change value of a variables (internal use),/upload: upload a file (internal use).
Cette application permet de gérer un petit écran LCD couleur pour lui faire afficher des horaires de trains (électriques miniatures).
Elle permet d'afficher de façon cyclique la liste des départs et des arrivées tout au long (d'une partie) de la journée. Elle permet également d'afficher un message fixe, clignotant ou défilant en bas d'écran). Enfin, il est possible d'afficher un mode Hors service qui barre l'écran d'une croix rouge avec un message optionnel au milieu de l'écran.
L'idée de base est de présenter aux spectateurs un cycle de simulation sur une durée réduite (par exemple, une journée complète en 7 minutes).
La base est constituée d'un agenda, dont chaque ligne indique l'heure où : - un train arrive ou part de la gare, - on affiche (ou efface) un message sur le bas d'écran, - on met (ou en enlève) l'indication hors service.
On peut paramétrer l'écran pour afficher les départs, les arrivées, les deux ou aucun (dans ce dernier cas, on passera en mode hors service de façon permanente).
Pour chaque mode (arrivée, départ), on précise : - l'activation (ou pas) du mode, - le temps d'affichage de l'écran avant de basculer sur le suivant (10 à 15 secondes), - le nombre de ligne minimum à afficher (à zéro, seules les lignes répondant aux critères du paramètre suivant seront affichées, à 7 on aura toujours les 7 prochains départ/arrivées affichés), - l'intervalle de temps avant le départ ou l'arrivée du train (en général, quelques heures), - l'intervalle de temps avant l'affichage du quai (autour de 20 minutes), - la couleur de fond des lignes paires (les valeurs par défaut correspondent aux couleurs SNCF), - la couleur de fond des lignes impaires (même remarque).
Chaque minute (simulée), le programme met à jour l'écran, en examinant les éléments (départ ou arrivée, selon le type qu'on affiche à cet instant) et en sélectionnant ceux qui seront actifs dans l'intervalle de temps indiqué (par exemple dans les 3 heures simulées à venir) ou jusqu'à remplir le nombre de lignes minimum à afficher (même si la ligne est en dehors l'intervalle). On s'arrête lorsque la page est pleine de lignes dans l'intervalle ou qu'on a affiché le nombre minimum de lignes ou qu'on a affiché toutes les mouvements du fichier agenda.
De plus, lorsque les noms de ville sont trop longs pour être entièrement affichés, il est possible de définir : - la durée pendant laquelle le début du nom sera affiché avant d'être défilant, - la durée entre chaque caractères défilant (aucune défilement ne sera fait s'il reste à zéro), - le nombre d'espaces affichés après le nom de ville avant de repasser au début du nom.
L'application fonctionne sur un ESP8266, qui peut soit se connecter sur un réseau WiFi existant, soit créer son propre réseau Wifi. Le paramétrage s'effectue au travers d'un serveur Web embarqué. Les messages sont affichés sur l'interface Web, et peuvent également être envoyés sur un serveur syslog.
L'application est autonome et sait fonctionner sans action extérieure ni connexion, en utilisant les derniers paramètres connus. Il suffit juste de la mettre l'ESP sous tension.
La suite de ce document détaille tout d'abord la structure et le contenu des fichiers de configuration, plus pratiques que l'interface Web pour charger de grandes quantités de données.
On verra ensuite l'utilisation de l'interface Web.
Les données relatives aux messages du panneau sont écrite dans un fichier.
Il est possible de charger plusieurs fichiers de configuration dans l'ESP, une liste déroulantes dans la page de paramètres permet de choisir celle à activer.
Le nom de ces fichiers est laissé à la discrétion de l'utilisateur, mais l'extension doit être .txt.
Le format interne utilisé est de type CSV (valeurs séparées par des ;).
Chaque type de données est précédé d'une entête qui permet de s'y retrouver lorsqu'on édite les données.
Cette édition peut être faite avec un tableur (LibreOffice, OpenOffice, voire même Excel pour les plus téméraires ;-) ou à l'aide d'un simple éditeur de texte (genre NotePad++ ou similaire).
Il est possible d'ajouter des commentaires dans le fichier, histoire de s'y retrouver. Ces commentaires doivent figurer en fin de ligne, et débuter par le caractère #. Noter que tout ce qui suit le commentaire sur la même ligne sera simplement ignoré.
Voici un exemple de fichier vide :
Heure;Type;Ville/message;Quai/CouleurTexte;Train/CouleurFond
Pour information, seule la première zone de l'entête est testée (et doit être identique a celles de cet exemple). Il est possible de modifier les autres zones d'entête pour les faire correspondre à ses besoins.
Noter que l'encodage des accents varie selon les systèmes d'exploitation, et que le panneau ne peut afficher que des caractères sans accents. Il est prudent de ne pas en utiliser dans les fichiers de configuration, leur restitution pouvant amener à des résultats amusants ;-)
Il permet de spécifier les arrivées et départs des trains, l'affichage des messages et la mise hors service du panneau.
Par exemple :
Heure;Type;Ville/message;Quai/CouleurTexte;Train/CouleurFond
05:41;D;ORLEANS;D;5425
06:03;D;MARSEILLE;B;1333
06:16;D;GENEVE;3;7140
06:18;A;ORLEANS;3;5428
06:20;D;LYON;C;5194
La ligne contient l'heure, suivi de D pour départ et A pour arrivée, puis du nom de la gare, le numéro de quai et le numéro de train.
L'ensemble des zones est obligatoire.
L'heure est spécifiée au format HH:MN sur 5 caractères.
Les 13 premiers caractères du nom de la ville seront affichés (puis le reste défilé selon les options). De même, le numéro de quai est limité à 1 caractère, et le numéro de train à 4, sans possibilité de défilement.
Ils sont affichés sur la dernière ligne de l'affichage. Seul le dernier message est affichés, chaque nouveau message efface le précédent. On désactive le message en cours en envoyant un message vide.
La ligne contient l'heure suivi de MF pour un Message Fixe, MC pour un Message Clignotant et MD pour un Message Défilant, puis du message, de la couleur du texte et de la couleur du fond de la ligne.
Les couleurs sont indiquées au format 5-6-5, qui code une couleur sur 16 bits avec 5 bits pour le rouge, 6 pour le vert et 5 pour le bleu. Le résultat est un nombre compris entre 0 (noir) et 65535 (blanc).
Pour les réfractaires, on peut remplacer ces valeurs numériques par orange, noir, blanc, rouge, vert, bleu, jaune, cyan ou magenta.
Seuls les 26 premiers caractères du message sont affichés, les autres sont ignorés. Attention aux accents !
Par défaut, un message vide désactive le message sur la dernière ligne (qui est réutilisée si besoin pour afficher un départ/arrivée supplémentaire), une couleur de texte non spécifiée sera blanche et une couleur de fond non spécifiée noire.
Par exemple :
Heure;Type;Ville/message;Quai/CouleurTexte;Train/CouleurFond
07:21;MF;MESSAGE FIXE;BLANC;ROUGE # Affiche le message "MESSAGE FIXE" en blanc sur fond rouge à partir de 7h31
07:24;MC;MESSAGE CLIGNOTANT;NOIR;BLANC # Affiche le message clignotant "MESSAGE CLIGNOTANT" en noir sur fond blanc à partir de 7h24
07:33;MD;Message defilant # Affiche le message défilant "Message defilant" en blanc sur fond noir à partir de 7h33
07:37;MF # Efface le message à 7h37 Note: On aurait pu mettre aussi "MC" ou "MF" pour avoir le même résultat.
Elle efface l'écran , et affiche une croix rouge à partir des 4 coins, avec un texte au centre de l'écran. On désactive ce mode en envoyant un texte vide, l'affichage des départs et arrivées reprendra ensuite.
La ligne contient l'heure suivi de HS pour un Hors Service, puis du texte, de la couleur du texte et de la couleur du fond de la ligne.
Comme pour les messages de bas d'affichage, les couleurs sont spécifiées au format (5-6-5), la liste des couleurs déjà citée est utilisable.
Seuls les 26 premiers caractères du message sont affichés, les autres sont ignorés. Attention aux accents !
Par défaut, un texte vide désactive l'indication(et l'affichage des départs et/ou arrivées reprend), une couleur de texte non spécifiée sera blanche et une couleur de fond non spécifiée noire.
L'interaction entre l'utilisateur et l'ESP s'effectue au travers d'un serveur Web embarqué, à l'aide d'un navigateur Web, depuis un téléphone ou un ordinateur.
L'adresse à utiliser dépend du paramétrage fait par l'utilisateur.
Dans le cas le plus courant où le module n'est pas connecté à un réseau WiFi existant, il faut connecter le téléphone ou l'ordinateur au réseau WiFi du module (avec les valeurs par défaut, il se nomme Panneau_xxxxxx où xxxxxx représente la fin de l'adresse MAC du module). On se connecte alors au serveur par http://192.168.4.1/
Si on a précisé un réseau WiFi (et que celui-ci a pu être joint au démarrage du module), on sera alors connecté à ce réseau, et c'est le routeur du réseau qui lui affectera son adresse IP.
Dans tous les cas, le nom du réseau et l'IP à utiliser sont affichés sur le port console (USB) de l'ESP au lancement.
La page principale / ou /index.htm du serveur Web embarqué ressemble à :
Elle est composée de plusieurs parties :
On y trouve tout d'abord le nom du module sur la première ligne.
Le cadre Simulation regroupe les informations sur la ... simulation ce qui, je dois le reconnaître, n'est pas banal ;-)
Le sélecteur Configuration permet de choisir le fichier de configuration à utiliser. La liste déroulante montre les différents fichiers disponibles sur l'ESP.
On trouve ensuite de quoi saisir les heures et minutes de début et fin de simulation. En principe, on devrait avoir 00:00 et 23:59, mais il est possible au travers de ces zones de réduire l'intervalle, soit pour ne présenter qu'une partie de la journée, soit pour affiner le déverminage d'un passage compliqué.
Une fois les heures de début/fin saisies, on doit indiquer la durée d'un cycle de simulation, en minutes.
Noter que le fait de réduire l'intervalle de simulation va sensiblement la ralentir.
A titre indicatif, des durées entre 5 et 10 minutes semblent raisonnables.
On démarre et arrête la simulation par les boutons du même nom.
L'heure simulée est indiquée entre ces deux boutons. Elle est mise à jour en temps réel lorsque la simulation est active, sinon on affichera Arrêté à xx:xx.
Le contenu de ce cadre n'est visible que si sa case est cochée.
Il est utilisé pour charger un fichier de configuration décrit plus haut.
Il est possible d'indiquer le fichier à utiliser :
- soit en cliquant sur le bouton
Parcourir, puis en sélectionnant le fichier dans la boîte de dialogue qui va s'ouvrir, - soit en faisant glisser/lâcher (drag & drop) le fichier sur la case
Déposer le fichier de configuration ici.
Le fichier sera alors chargé dans l'ESP, et son analyse lancée.
Les éventuelles erreurs seront affichées dans le cadre de trace, l'état final sera repris dans le cadre d'état. De plus, l'écran affichera HORS SERVICE (avec sa croix rouge), et le code de l'erreur sera affiché sur la dernière ligne.
Ce cadre permet :
- d'afficher la page de paramètres en cliquant sur le bouton
Paramètres(voir ci-dessous), - d'afficher la page de l'éditeur de fichiers en cliquant sur le bouton
Éditeur(voir ci-dessous), - d'afficher une ligne indiquant l'état du WiFi (point d'accès local ou WiFi existant) et l'adresse IP de l'ESP,
- d'afficher une ligne indiquant la mémoire disponible, et la taille du plus gros bloc (déverminage),
- d'afficher une ligne indiquant le résultat du dernier chargement des fichiers paramètres (
<Nom du fichier de configuration> chargési pas d'erreur, message d'erreur sinon).
Ce cadre contient la liste des traces émises par l'ESP, la dernière ligne affichée en haut de la liste.
Des explications sur les différents messages figurent au chapitre Les traces générées par le système.
La page de paramétrage /setup du serveur Web embarqué ressemble à :
La première ligne contient est un sélecteur Langue qui indique ... la langue utilisée pour l'affichage des pages de ce navigateur (bien vu, non ?).
Si le navigateur supporte le Français, on l'utilisera. Sinon, on basculera automatiquement en Anglais.
Noter que la langue du serveur est définie au moment de la compilation.
Le sélecteur Configuration permet de choisir le fichier de configuration à utiliser. La liste déroulante montre les différents fichiers disponibles sur l'ESP.
Le cadre suivant permet de définir les paramètres pour les départs et arrivées :
Actifpermet d'activer (ou pas) la colonne. Noter que si les 2 colonnes sont désactivées, l'affichage passera enHors service,Durée d'affichage (secondes)précise la durée où la colonne sera active. Après cette durée, l'affichage basculera sur l'autre colonne, si elle est active (sinon, on restera sur cette colonne),Fenêtre d'affichage (minutes)donne la durée pendant laquelle on cherchera les éléments à afficher. Par exemple, 180 minutes (3 heures) permet d'afficher seulement les départs/arrivées dans les 3 prochaines heures,Fenêtre quai (minutes)spécifie le nombre de minutes avant le départ ou l'arrivée avant d'afficher le numéro de quai (souvent 20),Nombre de lignes minimumindique le remplissage minimum de la table des départs/arrivées (ce qui veut dire qu'on aura toujours au minimum ce nombre de lignes affichées, même si les départs/arrivées sont hors limite),Couleur lignes pairesetCouleur lignes impairesprécisent la couleur de fond des lignes paires et impaires, comme sur un panneau SNCF.
Le cadre suivant contient les informations sur les paramètre réseau de l'ESP :
SSID Wifiindique le nom du réseau WiFi existant sur lequel connecter le module. S'il n'est pas défini, ou ne peut être localisé durant les 10 premières secondes de vie de l'ESP, on basculera sur un point d'accès WiFi crée par l'ESP,Mot de passeindique le mot de passe associé au SSID WiFi précédent, s'il en possède un,Mot de passe point d'accèsindique le mot de passe associé au point d'accès généré par l'ESP (qui ne sera pas protégé si laissé vide),Nom du moduleprécise le nom réseau associé au module (pour le distinguer des autres modules le cas échéant).
Le cadre suivant contient les informations dans le cas où on souhaiterait envoyer les traces à un serveur de log de type syslog :
Serveur syslogindique le nom ou l'adresse IP du serveur (vide, on n'utilisera pas de serveursyslog),Port syslogprécise le numéro de port à utiliser (par défaut 514).
Viennent ensuite des indicateurs utilisés pour contrôler les types de message de trace à afficher/envoyer. Ils sont tous utilisés pour le déverminage :
Affichage des entrées de routinesest utilisé afficher le nom des principales routines utilisées par le module,Affichage des messages de déverminagefait ce qu'on pense qu'il va faire,Affichage des messages verbeuxajoute plus de messages à la trace,Affichage des traces Javaaffiche des messages de trace des modules JavaScript,Affichage des tables au chargementaffiche le contenu des tables après leur chargement,Envoi des traces à Syslogpermet d'activer l'envoi des traces au serveursyslog.
Le bouton Relancer permet de ... relancer le module (encore bien vu!). Il est utile lorsqu'on modifie un paramètre qui nécessite un redémarrage (comme tout ce qui touche aux caractéristiques du ruban ou aux réglages du WiFi).
La dernière partie contient la trace déjà décrite plus haut.
La page de gestion des fichiers embarqués /edit du serveur Web embarqué ressemble à :
Elle permet de lister les fichiers présents sur l'ESP dans la partie gauche, de les modifier, supprimer, télécharger, d'en créer de nouveau vides ou à partir d'un fichier présent sur l'ordinateur ou le portable utilisé.
A n'utiliser que sur demande.
Le système génère plus ou moins (selon les indicateurs définis dans les paramètres précédemment exposés) de traces.
Ces traces proviennent de deux sources : l'ESP et le navigateur.
Ce sont les traces émises par l'ESP lui même, pour indiquer son état et reporter les erreurs qu'il pourrait détecter. On trouve :
Comme déjà expliqué, l'ESP analyse les fichiers de configuration pendant son lancement, et après chaque téléchargement de fichier.
Il est possible qu'il détecte des incohérences pendant cette analyse. Il les signalera par un message donnant des informations sur le problème. L'affichage d'une erreur provoquera l'arrêt de l'analyse, et empêchera l'activation de la simulation (mais laissera la possibilité d'utiliser le test des LED, et le chargement de nouveaux fichiers).
Dans ce qui suit les parties variables sont précisées entre < >. Par exemple, <numéro de ligne> sera remplacé par le numéro de ligne du fichier concerné.
On trouvera :
Ne peut ouvrir <nom de fichier>: problème lors de l'ouverture du fichier,Entête <entête du fichier> incorrecte dans <nom du fichier>: la première ligne du fichier ne semble pas être une entête correcte. L'entête est testée sur sa première zone, qui doit êtreAgenda,Fichier <nom du fichier> manquant: le fichier n'a pas pu être trouvé,Zones <type de zone> déjà définie dans <nom de fichier> avant la ligne <numéro de ligne>: un même type de zone est défini deux fois dans le fichier, la seconde sur la ligne spécifiée,Nb zones (<nombre de zones>) incorrect ligne <numéro de ligne> de <nom de fichier>: le nombre de zones de la ligne est incorrect (soit inférieur au nombre minimum de zones demandées, soit supérieur au nombre maximum de zones définies),Valeur <valeur donnée> incorrecte, zone <numéro de zone>, ligne <numéro de ligne> de <nom de fichier>: la valeur donnée pour la zone n'est pas celle attendue,Valeur <valeur donnée> hors limite, zone <numéro de zone>, ligne <numéro de ligne> de <nom de fichier>: la valeur donnée est hors des limites imposées,Heure <heure donnée> incorrecte, zone <numéro de zone>, ligne <numéro de ligne> de <nom de fichier>: l'heure spécifiée est incorrecte,Couleur <couleur> inconnue, zone , zone <numéro de zone>, ligne <numéro de ligne> de <nom de fichier>: le nom de couleur spécifié n'est pas reconnu (doit êtreorange,noir,blanc,rouge,vert,bleu,jaune,cyanoumagenta),Erreur <numéro de l'erreur> inconnue, fichier <nom de fichier>, ligne <numéro de ligne>, entier <valeur entière>, chaîne <chaîne de caractères>: le programme ne sait pas décoder une erreur. L'ensemble des paramètres envoyés à la procédure est affiché. A faire remonter au développeur.
Le programme envoie certains messages pour informer l'utilisateur de son avancement.
Les principaux sont :
Agenda <numéro de ligne de l'agenda>, maintenant <heure de simulation>: informe de l'activation de l'agenda à une heure de simulation données (permet de suivre où on en est dans la simulation, et quelle(s) ligne(s) va(vont) être exécutée(s),On passe de <heure de fin> à <heure de début>: indique la fin d'un cycle de simulation,Titre : <titre de la page>,Ligne <numéro de ligne> <Contenu de la ligne>,Ligne centrée <numéro de ligne> <Contenu de la ligne>précisent le titre et le contenu des lignes affichées sur le panneau,Message <contenu du message>, type <type de message>: donne le message et le type (1=fixe, 2=clignotant, 3=défilant) de message,Hors service <texte du message>: précise le messagehors service.
D'autres messages peuvent être envoyés. Il est possible de râler auprès du développeur s'ils ne sont pas assez clairs ;-)
En plus des messages générés par le serveur, certaines erreurs générés par le navigateur seront également affichées dans la zone de trace des erreurs.
En particulier, les traces Java si elles sont activées, et les erreurs graves lorsqu'elles se produisent dans le navigateur.
Le serveur Web embarqué répond aux URL suivantes :
/: affiche la page d'accueil,/status: retourne l'état du programme sous forme JSON,/setup: affiche la page de paramètres,/settings: retourne la paramètres au format JSON,/configs: retourne la liste des fichiers de configuration présents sur l'ESP,/debug: retourne les variables internes pour déverminer,/log: retourne les dernières lignes du log mémorisé,/edit: gère et édite le système de fichier,/tables: retourne le contenu de l'ensemble des tables du programme,/rest/restart: redémarre l'ESP,/command/enable/enter: arme l'indicateurAffichage des entrées de routines,/command/enable/debug: arme l'indicateurAffichage des messages de déverminage,/command/enable/verbose: arme l'indicateurAffichage des messages verbeux,/command/enable/java: arme l'indicateurAffichage des traces Java,/command/enable/table: arme l'indicateurAffichage des tables au chargement,/command/enable/syslog: arme l'indicateurEnvoi des traces à syslog,/command/disable/enter: désarme l'indicateurAffichage des entrées de routines,/command/disable/debug: désarme l'indicateurAffichage des messages de déverminage,/command/disable/verbose: désarme l'indicateurAffichage des messages verbeux,/command/disable/java: désarme l'indicateurAffichage des traces Java,/command/disable/table: désarme l'indicateurAffichage des tables au chargement,/command/disable/syslog: désarme l'indicateurEnvoi des traces à syslog,/languages: Retourne la liste des langues supportées,/changed: change la valeur d'une variable (utilisation interne),/upload: charge un fichier (utilisation interne).












