JMRI: Adding/Editing Logix Conditionals
Author: Bob Jacobsen
Keywords: JMRI help Logix Conditional Add Edit

# Ajouter/Modifier Conditions Logix

La fenêtre Modifier Condition c'est où les expressions logiques sont élaborées et où les actions sont spécifiées. La fenêtre Modifier Condition s'affiche quand un Condition est créée, ou lorsque le bouton édition d'une Condition est pressé dans la fenêtre Modifier Logix . La fenêtre "Modification Condition" affiche le nom système et nom utilisateur de la Condition au sommet. Le nom système est automatiquement géré par le programme et ne peut pas être changé. Le nom utilisateur peut être édité par entrer/modifier le texte dans le champ Nom Utilisateur. Le nom d'utilisateur peut ne pas être le même que le nom utilisateur d'une autre Condition dans ce Logix, mais peut être le même que le nom utilisateur d'une Condition dans un autre Logix.

A Suivre il y a deux sections - une pour l'installation d'une expression logique et une autre pour mettre en place des actions. Les Conditions sont des énoncés de la forme:

if (expression logique) then (action).
Une Condition a deux parties distinctes: son "expression logique" et ses "Action". La fenêtre a des sections séparées pour la mise en place de chacune.

La section expression logique contient un tableau de l'état des variables, avec deux boutons en dessous. La première colonne de l'état des variables du tableau affiche le numéro de la ligne de la variable d'état. Ce n'a que peu d'importance lorsque le choix de l'Opérateur Logique est mis à "mixte". La deuxième colonne contient un AND automatique lorsque le choix de l'Opérateur Logique est mis à "AND" ou un OR automatique lorsque le choix est "OR". Lorsque le choix est "mixte", l'utilisateur peut sélectionnez AND ou OR au besoin. La troisième colonne contient une boîte de choix qui permet à l'utilisateur de sélectionner l'opérateur NOT au besoin. La quatrième colonne est une description de la variable d'état type et la condition pour laquelle elle doit être testée. La suivante est une colonne affichant l'état actuel de la description du test. L'état affiché inclut l'effet de l'opérateur NOT, si NOT est sélectionné.

La colonne Calculs Triggers (Déclencheurs) contient des cases à cocher qui, normalement, sont vérifiées, de sorte qu'un changement dans la variable d'état va déclencher un calcul du Logix. Pour les rares cas où un changement dans un entité spécifique (capteur, aiguillage, etc) ne devrait pas déclencher un résultat du calcul, vous devez décocher la case en cliquant dessus. Décocher la case indique au programme de surveiller cette entité pour les changements d'état et de calculer l'état de la condition, mais il ne prend pas action en fonction des résultats.

# Ajouter/Modifier Conditions Logix

La fenêtre Modifier Condition c'est où les expressions logiques sont élaborées et où les actions sont spécifiées. La fenêtre Modifier Condition s'affiche quand un Condition est créée, ou lorsque le bouton édition d'une Condition est pressé dans la fenêtre Modifier Logix . La fenêtre "Modification Condition" affiche le nom système et nom utilisateur de la Condition au sommet. Le nom système est automatiquement géré par le programme et ne peut pas être changé. Le nom utilisateur peut être édité par entrer/modifier le texte dans le champ Nom Utilisateur. Le nom d'utilisateur peut ne pas être le même que le nom utilisateur d'une autre Condition dans ce Logix, mais peut être le même que le nom utilisateur d'une Condition dans un autre Logix.

A Suivre il y a deux sections - une pour l'installation d'une expression logique et une autre pour mettre en place des actions. Les Conditions sont des énoncés de la forme:

- if (expression logique) then (action).

Une Condition a deux parties distinctes: son "expression logique" et ses "Action". La fenêtre a des sections séparées pour la mise en place de chacune.

La section expression logique contient un tableau de l'état des variables, avec deux boutons en dessous. La première colonne de l'état des variables du tableau affiche le numéro de la ligne de la variable d'état. Ce n'a que peu d'importance lorsque le choix de l'Opérateur Logique est mis à "mixte". La deuxième colonne contient un AND automatique lorsque le choix de l'Opérateur Logique est mis à "AND" ou un OR automatique lorsque le choix est "OR". Lorsque le choix est "mixte", l'utilisateur peut sélectionnez AND ou OR au besoin. La troisième colonne contient une boîte de choix qui permet à l'utilisateur de sélectionner l'opérateur NOT au besoin. La quatrième colonne est une description de la variable d'état type et la condition pour laquelle elle doit être testée. La suivante est une colonne affichant l'état actuel de la description du test. L'état affiché inclut l'effet de l'opérateur NOT, si NOT est sélectionné.

La colonne Calculs Triggers (Déclencheurs) contient des cases à cocher qui, normalement, sont vérifiées, de sorte qu'un changement dans la variable d'état va déclencher un calcul du Logix. Pour les rares cas où un changement dans un entité spécifique (capteur, aiguillage, etc) ne devrait pas déclencher un résultat du calcul, vous devez décocher la case en cliquant dessus. Décocher la case indique au programme de surveiller cette entité pour les changements d'état et de calculer l'état de la condition, mais il ne prend pas d'action en fonction des résultats.

Les deux dernières colonnes du tableau (les boutons Modifier et Supprimer) sont utilisés pour modifier ou supprimer cette ligne dans la table de variable d'état. supprimer une variable d'état si vous décidez qu'elle n'est plus nécessaire. La colonne état du tableau montre l'état (vrai ou faux) de chaque état de la variable quand elle est évaluée.

Pour l'expression logique, et donc la Condition, pour calculer vrai, toutes les variables d'état doivent évaluer à vrai.

à tout moment pendant l'entrée des données des variable d'état, Vérifier Variables d'état peut être cliqué pour vérifier les données saisies et d'évaluer l'état des variables. Lorsque ce bouton est enfoncé, la vérification et l'évaluation se produisent jusqu'à ce que la vérifications se termine correctement, ou si une erreur est détectée. Si une erreur est détectée, la vérification s'arrête pour vous permettre de corriger l'erreur et cliquez sur Vérifiez Variables d'état à nouveau. S'il vous plaît rappelez vous après l'édition des éléments de données et du nom, cliquez sur une cellule différente dans la table avant de cliquer Vérifiez Variables d'état (ou Mise à Jour Conditions au le bas de la fenêtre) pour que le programme soit averti que vous avez terminé votre saisie. Sinon votre entrée ne peut prendre effet, et une erreur peut être signalée inutilement.

L'Opérateur Logique par défaut est "AND". Dans ce cas, la condition permettra de tester si tous les tests variables sont vraies, après la prise du "NON" négations en compte. En utilisantla boite Opérateur Logique dessous la liste des variables, vous pouvez celui-ci changer � "OR" ou "mixtes". «OR» signifie que la Condition sera vrai si l'un des tests de variables sont vraies, après comptabilisation des négations. Sélection "Mixtes" vous permettra de saisir une expression logique dans une nouvelle zone de texte à l'aide de AND, OR et NOT et les numéros de ligne. Dans cette expression, chaque variable est mentionnée par un numéro, par exemple R1, R2, R3 pour les trois premieres variables, vous pouvez utiliser les opérateurs "and", "or" et "not" en plus de parenthèses. Quelques exemples:

    	R1 and R2
    	R1 or (R2 et R3)
    	(R2 and R3) or (R3 and R1)

## Ajout d'une Nouvelle Variable d'état

Pressez Ajouter Variable d'état pour ajouter une variable d'état (une ligne dans la table des variables d'état). Cela affichera une fenêtre avec une boîte de choix pour l'utilisateur pour sélectionner un type de variable d'état. Les variables d'état disponibles sont documentées ci-dessous. Quand un type est choisie la fenêtre Modifier Variable affiche un champ de texte pour le nom de l'entité à utiliser pour la variable d'état. Quand un nom (soit nom système ou nom utilisateur) est entré, il doit correspondre à une entité existante (capteur, aiguillage, lumière, etc.) Il est utile d'ouvrir le Tableau Capteur lors de l'entrée du nom du capteur ou le Tableau Aiguillage pour montrer les aiguillages disponibles, etc

Attention : Si vous utilisez des noms utilisateur pour spécifier des variables d'état soyez prudent lorsque vous éditez vos noms d'utilisateur ou vous pouvez casser vos définitions de variable d'état . Le nom utilisateur spécifié doit correspondre, caractère pour caractère, blancs, y compris, au nom 'utilisateur réel du capteur, aiguillage, etc, pour que vos variables d'état travaillent. Si vous voulez être en mesure d'éditer librement vos noms utilisateur, utilisez le nom système pour définir vos variables d'état.

A tout moment pendant l'entrée des données des variables d'état, le bouton Vérifier Variable d'état peut être cliqué pour vérifier les données saisies et évaluer les variables d'état. Lorsque ce bouton est enfoncé, il produit un contrôle et l'évaluation procèdet jusqu'à se terminer avec succès, ou si une erreur est détectée. Si une erreur est détectée, la vérification s'arrête pour que l'utilisateur corrige l'erreur et clique sur Vérifier les Variables d'état à nouveau. S'il vous plaît rappelez vous après l'édition du nom système et des données des éléments de cliquer sur une cellule différente dans la table avant de cliquer Vérifiez Variables d'état (ou Mise à Jour Conditions au bas de la fenêtre) pour que le programme soit averti que vous avez terminé votre saisie. Sinon votre entrée ne peut prendre effet, et une erreur peuvent être signalés inutilement.

## Ajouter une Nouvelle Action

La section action de la fenêtre éditer Condition fournit les mesures spécifiques qui doivent être prises quand une Condition est calculée.

Pour ajouter une nouvelle action, appuyez sur le bouton "Ajouter Action". Une nouvelle fenêtre «édition Action» apparaîtra. Sélectionnez un type d'action dans les éléments de la zone Type, et les données nécessaires pour spécifier complètement l'action apparaissent à la droite de la zone Type. Si vous ne savez pas ce qui doit être entré dans un champ de données, placez votre curseur dessus, et un message apparaîtra. Quand un nom doit être inscrit, le nom doit correspondre à un nom système ou un nom utilisateur d'une entité existante (capteur, aiguillage, signal, etc) du type approprié. L'ouverture du Tableau capteur lorsque la saisie des noms de capteur, ou du tableau aiguillages peut être utiles pour voir les aiguillages disponibles, etc. Les Types d'actions disponibles sont décrits en détail ci-dessous.

Pour chaque action, trois options sont disponibles pour le moment pour déclencher des actions: 1) Le changement à True (Vrai, 2) sur le changement à False (Faux), et 3) sur Changement. Elles font référence à l'état calculé de la condition, qui est égale à la valeur de l'expression logique tel que spécifiée dans le tableau des variables d'état. Une de ces options doit être sélectionnée. Lorsque vous avez terminé, cliquez sur "Mettre à jour" pour installer vos modifications, "Annuler" pour fermer la fenêtre sans aucune modification ou "Supprimer" pour supprimer l'action entièrement.

Les Actions sont évaluées dans l'ordre indiqué. Pour changer cet ordre, cliquez sur le bouton "Réorganiser" sur la fenêtre "éditer condition". Les boutons les plus à droite par les actions pourront ensuite vous permettent de sélectionner la première, la suivante, etc

Lorsque l'expression logique et les actions ont été spécifiées, cliquez Mise à Jour Condition au bas de la fenêtre. Ceci initie une vérification de l'expression logique (le même que celui effectué par Vérifier Variables d'état) et une vérification des données saisies pour les actions. Si le nom utilisateur a été édité, il est également vérifié. Si une erreur est trouvée, une boîte de message s'ouvre annonçant l'erreur, et la mise à jour est arrêté pour vous permettre de corriger l'erreur et cliquez sur Mise à Jour Conditions à nouveau. Si aucune erreur n'est trouvée, l'action est mis à jour avec l'entrée des données, la fenêtre Modifier Condition est fermée, et l'utilisateur est retourné à la fenêtre Modifier Logix.

Deux autres boutons sont disponibles au bas de la fenêtre édition Condition. En cliquant sur Annuler vous fermez la fenêtre édition Condition sans mise à jour de la Condition. En cliquant Annuler vous perdrez toutes les donnée qui ont été entrées. L'autre bouton, Supprimer Condition, fournit un moyen facile de supprimer une Condition inutile. Cliquez Supprimer Conditions pour supprimer le Condition en cours de Modification et revenir à la fenêtre Modifier Logix.

Les variables d'état Disponibles et les actions sont listées ci-dessous. Pour de plus amples d'informations, consultez la documentation Logix sur la page web JMRI https://jmri.org/.

## Variables d'état Disponibles

Les variables d'état qui sont actuellement disponibles pour une utilisation dans les Conditions sont énumérées ci-dessous, ainsi que des informations sur chacune. Les variables d'état doivent toujours être évaluer soit true ou false. La condition résultant en true est donnée pour chacune. Si la condition n'est pas remplie, le variable d'état est évaluée à false. Quand un Logix est actif, les états des entités (capteur, aiguillage, lumière, etc) spécifiés dans les variables d'état de ses Conditions sont surveillés, sauf si la case Calcul Déclencheurs de la variable d'état n'est pas cochée. Un calcul de toutes les conditions avec Logix est déclenché lorsqu'un changement d'état surveillé comme indiqué ci-dessous (S'il n'est pas évident).

- Capteur Actif: true si l'état du capteur spécifié est actif.
- Capteur Inactif: true si l'état du capteur spécifié est inactif.
- Aiguillage Dévié: true si l'état connu de l'aiguillage spécifié est dévié.
- Aiguillage Direct: true si l'état connu de l'aiguillage indiqué est direct.
- Condition Vrai: true si l'état de la Condition spécifiée est vraie.
- Condition fausse: true si l'état de la Condition spécifié est faux.
- Lumière On: true si la lumière spécifiée est allumée.
- Lumière Off: true si la lumière spécifiée est éteinte.
- Mémoire Egale: true si la valeur enregistrée dans la mémoire spécifiée est la même que la valeur spécifiée dans la variable d'état. Le calcul est déclenchée lorsque la valeur de mémoire surveillée change de ou vers la valeur spécifiée.
- Intervalle Horloge Accélérée: true si le temps Horloge Accélérée en cours est entre l'heure de début et de fin spécifiées pour le gamme. Les heures doivent être spécifiées dans le format hh: mm, où hh est heures et mn est minutes, par rapport à une horloge de 24 heures. Le calcul est déclenché lorsque le temps d'horloge rapide entre dans la plage et quand le temps d'horloge rapide sort de la gamme.
- Signal Rouge: true si l'apparition du signal spécifié est rouge. Le calcul est déclenché lorsque rouge.
- Signal Jaune: true si l'apparition du signal spécifié est jaune. Le calcul est déclenchée lorsque l'apparence change du ou vers le jaune.
- Signal Vert.: true si l'apparition du signal spécifié est vert. Le calcul est déclenché lorsque l'apparence change du ou vers le vert.
- Signal Eteint: true si l'apparition du signal est sombre. Le calcul est déclenché lorsque l'apparence change de ou vers l'obscurité.
- Signal Clignotant Rouge: true si l' l'apparence du signal spécifié est rouge clignotant. Le calcul est déclenché lorsque l'apparence change de ou vers clignotement rouge.
- Signal Clignotant Jaune: true si l' l'apparence du signal spécifié est jaune clignotant. Le calcul est déclenché lorsque l 'apparence change de ou vers jaune clignotant.
- Signal Clignotant Vert: true si l' l'apparence du signal spécifié est vert clignotant. Le calcul est déclenché lorsque l'apparence change de ou vers vert clignotant.
- Signal Allumé: true si le signal spécifié est allumé.
- Signal Maintenu: true si le signal spécifié maintenu.

## Actions Disponibles

Les Actions qui sont actuellement disponibles pour une utilisation dans les Conditions sont énumérés ci-dessous avec des informations sur chacune d'elles:

- Définir Aiguillage: Définit l'aiguillage indiqué avec l'état choisi. Spécifiez l'aiguillage en entrant son nom. Spécifiez l'état en choisissant Closed ou Thrown dans le menu contextuel.
- Définir Apparence Signal: Définit le signal spécifié avec l'apparence choisie. Précisez le signal à Définir en entrant son nom. Spécifier l'apparence en choisissant dans le menu contextuel .
- Définir Signal Maintenu: Définit le signal spécifié à Maintenir . Précisez le signal à tenir en entrant son nom.
- Effacer Signal Maintenu: Efface le maintient sur le signal précisé. Précisez le signal en entrant son nom.
- Définir Signal Eteint: Définit le signal spécifié à ne pas allumé. Précisez le signal en entrant son nom.
- Définirt Signal allumé: Définit la tête signal spécifié et reste allumé. Précisez la tête du signal en entrant son nom.
- Déclencheur Itinéraire: Les déclencheurs de l'itinéraire indiqué. Précisez l'itinéraire en entrant son nom.
- Définir Capteur: Définit le capteur spécifié dans l'état choisi . Spécifiez le capteur en entrant son nom. Spécifiez l' état en choisissant actif ou inactif dans le menu contextuel.
- Définir Capteur Temporisé: Définit le capteur spécifié pour l'état choisie après attente d'un certain nombre de secondes spécifiées. Précisez le capteur en entrant son nom. Spécifier l'état en choisissant actif ou inactif dans le menu contextuel. Indiquez le nombre de secondes à attendre avant de fixer les capteurs en entrant un nombre dans le champ le plus à droite. Si cette condition est déjà en attente pour définir ce capteur, cette action est ignorée, et l'action précédente se poursuit comme initialement prévue. (voir aussi Réinitialisation du Capteur Temporisé ci-dessous.)
- Définir Lumière: Définit la lumière précisé dans l'état choisi . Précisez la lumière en entrant son nom. Spécifier l'état à mettre en choisissant On ou Off dans le menu contextuel.
- Définir Mémoire : Définit la mémoire spécifiée pour entrer une valeur. Précisez la mémoire en entrant son nom. Spécifiez la valeur à définir dans la mémoire en l'inscrivant dans le champ le plus à droite.
- Active Logix: Active le logix spécifié. Spécifiez le Logix à activer en entrant son nom.
- Désactive Logix: désactive le logix spécifié. Précisez le Logix à désactiver en entrant son nom.
- Jouer un Fichier Son: lit le fichier son spécifié. Spécifiez le fichier son à jouer en entrant son nom dans le champ fournis. Cliquez Définir pour faire apparaître une boîte de dialogue de sélection de fichier d'aide pour trouver le fichier. Accédez à votre fichier audio, puis cliquez sur votre nom de fichier son dans la boîte de dialogue pour le copier (y compris son chemin) dans le champ.
- Exécuter Script: Démarre le script spécifié. Spécifiez le script à démarrer en entrant son nom dans le champ prévu. Cliquez Définir pour faire apparaître une boîte de dialogue de sélection de fichiers pour trouver le fichier. Accédez à votre fichier de script, puis cliquez sur le nom de votre fichier de script dans la boîte de dialogue pour copier (y compris son chemin) le champ.
- Définir Aiguillage Temporisé: Définit l'aiguillage indiqué à l'état choisi après attente d'un certain nombre de secondes spécifiées. Précisez l'aiguillage concerné en entrant son nom. Spécifier l'état à fixer par le choix Closed ou Thrown dans le menu contextuel. Indiquez le nombre de secondes à attendre avant de fixer l'aiguillage en entrant un nombre dans le champ le plus à droite. Si cette condition est déjà en attente pour définir cet aiguillage, cette action est ignorée, et l'action précédente se poursuit comme initialement prévue. (voir aussi Réinitialiser Aiguillage Temporisé ci-dessous.)
- Verrouillage Aiguillage: Verrouille ou déverrouille un aiguillage. Entrez le nom de l'aiguillage, et de choisir l'opération à partir du menu contextuel. Remarque, pour contrôler le type d'aiguillage à verrouiller aller à la Tableau Aiguillage et sélectionnez le mode de verrouillage.
- Définir Capteur Réarmement retardé : Définit le capteur spécifié dans l'état choisi après d'attente d'un certain nombre de secondes spécifiées. Précisez le capteur concerné en entrant son nom. Spécifier l'état à fixer par le choix de actif ou inactif dans le menu contextuel. Indiquez le nombre de secondes à attendre avant de fixer les capteurs en entrant un nombre dans le champ le plus à droite sur le terrain. Cette action est la même que Delayed Set Sensor, sauf si cette condition est déjà activement en attente pour Définir de capteur spécifié, l'attente précédente est annulée, et une nouvelle période d'attente est démarrée. En effet, le temps d'attente est redémarré. Le capteur n'est pas activé jusqu'à ce que la période d'attente la plus récente expire.
- Annulez Temporisations Capteur: Annule toutes les minuteries d'attente pour Définir le capteur spécifié dans tous les Conditions dans tous Logixs. Spécifiez le capteur en entrant son nom. Le capteur n'est pas défini; toutes les actions actives retardée pour des Réglage du capteur spécifié sont annulés sans réglage du capteur.
- Définir Aiguillage Réarmement Retardé: Définit l'aiguillage indiqué à l'état choisie après attente d'un certain nombre de secondes spécifiées. Précisez l'aiguillage concerné en entrant son nom. Spécifier l'état à fixer par le choix Droit ou Dévié dans le menu contextuel. Indiquez le nombre de secondes à attendre avant de fixer l'aiguillage en entrant un nombre dans le champ le plus à droite. Cette action est la même que Définir Aiguillage Temporisé, sauf si cette Condition est déjà activement en attente pour Définir l'aiguillage spécifiée, l'attente précédente est annulée, et une nouvelle période d'attente est démarrée. En effet, le temps d'attente est redémarré. L'Aiguillage n'est pas activé jusqu'à ce que la période d'attente la plus récente expire.
- Annuler Temporisations Aiguillage: Annule toutes les minuteries d'attente pour Définir l' aiguillage spécifié dans toutes les Conditions avec tous les Logixs. Spécifiez l'aiguillage en entrant son nom. L'aiguillage n'est pas défini; toutes les actions actives retardée pour Définir les aiguillages spécifiées sont annulées sans réglage de l'aiguillage.
- Définir Heure Horloge Rapide: Définit l'heure sur l'horloge rapide. L'heure est entré comme hh: mm où hh est des heures et des mn minutes sur une horloge de 24 heures. Cette action définit l'horloge rapide à l'heure spécifiée indépendamment du fait que l'horloge rapide fonctionne ou est arrêtée.
- Démarrage Horloge Rapide: Démarre le horloge rapide JMRI. Si l'horloge fonctionne déjà , cette action n'a aucun effet.
- Arrêt Horloge Rapide: Suspend l'horloge rapide JMRI. Si l'Horloge ne fonctionne pas, cette action n'a aucun effet.
- Copier Mémoire dans Mémoire: Copie la valeur d'une variable de mémoire pour une autre variable mémoire. Précisez la mémoire à copier en entrant son nom dans le champ gauche. Précisez la mémoirereczevant la valeur copiée en entrant son nom dans le champ à droite.
- Définir Intensité Lumière: Définit l'intensité de la variable lumineuse spécifiée à la valeur de l'intensité entré. Précisez la lumière concernée en entrant son nom. Préciser l'intensité en entrant l'intensité en pourcentage comme un nombre entier dans la gamme 0 à 100. Si la lumière spécifié n'est pas une variable de la lumière, ou si la valeur d'intensité entré n'est pas un entier dans la gamme requise, un message d'erreur est affiché.
- Définir la Durée de Variation de la Lumière : Définit le temps de transition d'un d'intensité lumineuse variable spécifiée à l'heure indiquée. Précisez la lumière concernée en entrant son nom. Spécifiez le temps de transition en entrant le nombre de minutes d'horloge rapide nécessaire pour passer de 0% d'intensité à 100% intensité. Si la lumière spécifiée n'est pas une variable de la lumière, ou si un effet positif entier n'est pas entré pour le nombre de minutes d'horloge rapide, un message d'erreur en résultera.