Réserver une Démo
Pré. Proc.

Simulation dynamique avec JavaScript

Les éditions Corporate , Unified et Ultimate d' Enterprise Architect permettent d'utiliser JavaScript pour évaluer les protections, les effets et d'autres aspects du comportement dans le contexte Simulation . Cela permet une exécution entièrement automatisée et intelligente de votre modèle State ou d'activité, avec un contrôle précis des points d'arrêt, de la vitesse d'exécution et des variables Simulation .

Vous pouvez écrire JavaScript qui utilise n'importe quelle variable. Pour vous permettre d'afficher les valeurs de ces variables via l'interface utilisateur, deux objets intégrés sont définis - sim et this - dont les membres peuvent être affichés dans la fenêtre Variables locales (également appelée fenêtre Variables locales). Voici quelques exemples de variables pouvant être affichées :

  • sim.logger
  • sim.Nom.du.client
  • ceci.compte
  • ce.montant.du.compte
La convention recommandée consiste à ajouter à l' object sim toutes les variables globales ou de contrôle non déclarées dans la classe propriétaire. En revanche, il serait normal d'ajouter les attributs du classificateur propriétaire à l' object this .

Vous trouverez ici quelques exemples de l'endroit et de la manière dont vous pouvez définir le comportement Simulation à l'aide JavaScript . D'autres exemples sont fournis dans le modèle EAExample.eap fourni avec Enterprise Architect .

Utilisation de JavaScript

Paramètre

Action

Voir aussi

Entrée Script d'Analyseur

Si vous entrez du code JavaScript dans le champ « Entrée » de la fenêtre Analyseur d'Exécution , ce code sera injecté dans la Simulation et exécuté avant le démarrage de la Simulation . Ceci est utile pour établir des variables COM, des compteurs globaux, des fonctions et d'autres initialisations.

Configuring simulation runtime using Analyzer Script in Enterprise Architect

Protections de flux de transition et de contrôle

Il s'agit du cheval de bataille de la fonctionnalité Simulation . Comme Enterprise Architect évalue les chemins possibles vers l'avant à chaque nœud d'une Simulation , il teste les gardes sur les transitions sortantes et les flux de contrôle et n'avance que s'il existe un seul véritable chemin à suivre. Dans le cas contraire, la Simulation est considérée comme « bloquée » et une intervention manuelle est requise. Vous devez utiliser l'opérateur « == » pour tester l'égalité.

Specifying a Guard on a Control Flow

Comportement d’Éléments

Le comportement d'entrée et de sortie peut être défini pour States . Ce code s'exécutera au moment opportun et est utile pour mettre à jour les variables Simulation et effectuer d'autres affectations.

Vous pouvez également simuler le comportement des classes via leurs instances Object et leurs activités dans votre modèle.

Comportements d'Appels

Utilisation de COM

Une fonctionnalité très importante de l'implémentation de JavaScript dans le simulateur d' Enterprise Architect est qu'il supporte la création d'objets COM. Cela permet de connecter la Simulation en cours d'exécution à presque tous les autres processus locaux ou distants et d'influencer la Simulation en fonction de données externes ou de modifier potentiellement les données ou le comportement dans le monde extérieur en fonction de l'état actuel Simulation (par exemple, mettre à jour un modèle mécanique ou Simulation logicielle externe à Enterprise Architect ). La syntaxe de création d'objets COM est présentée ici :

this.name="Impair";

var logger = new COMObject("MySim.Logger");

logger.Afficher();

logger.Log( " Simulation démarrée");

Utilisation Solveurs

Anywhere dans Enterprise Architect qui contient du code JavaScript , comme dans Simulation Dynamique , vous pouvez maintenant utiliser une construction JavaScript appelée « Solveur » (la classe Solveur ) pour intégrer des outils externes et utiliser directement les fonctionnalités de chaque outil pour exécuter de manière simple et intuitive des fonctions mathématiques et graphiques complexes. Les appels vous aident à échanger facilement des variables entre le moteur JavaScript intégré et chaque environnement. Deux bibliothèques mathématiques prises en charge sont MATLAB et Octave.

Pour utiliser la classe Solveur , vous devez avoir une connaissance des fonctions disponibles dans votre Bibliothèque mathématique préférée et des paramètres qu'elles utilisent, comme décrit dans la documentation du produit.

Faisant partie du moteur JavaScript , ces classes Solveur sont également immédiatement accessibles aux auteurs de Add-In créant Add-Ins JavaScript basés sur des modèles.

Consultez les rubriques d'aide Octave Solveur , MATLAB Solveur et Solveurs pour plus de détails.

Solveur d'octave GNU Solveur MATLAB Solveurs

Actions signalées

Il est possible de déclencher un événement signalé ( déclencheur ) directement en utilisant JavaScript . La commande BroadcastSignal() permet de déclencher un déclencheur nommé qui pourrait influencer l'état actuel d'une Simulation . Par exemple, ce fragment déclenche le signal ( déclencheur ) nommé "CancelPressed".

BroadcastSignal("AnnulationAppuyée");

Note qu'un déclencheur nommé CancelPressed doit exister dans l'environnement Simulation actuel et doit avoir ce nom de manière unique.

Vous pouvez également appeler le signal à l'aide de son GUID. Par exemple :

BroadcastSignal( " {996EAF52-6843-41f7-8966-BCAA0ABEC41F} " );

EST_DANS()

L'opérateur IS_IN(state) renvoie True si la Simulation actuelle a un état actif dans un thread correspondant au nom transmis. Par exemple, pour contrôler l'exécution de manière conditionnelle, il est possible d'écrire un code tel que celui-ci :

si (IS_IN("En attente d'entrée"))

BroadcastSignal("AnnulationAppuyée")

Note que le nom doit être unique dans tous les contextes.

Tracer()

La méthode Trace(statement) vous permet d'imprimer des instructions Trace à n'importe quel moment de votre Simulation . Il s'agit d'un excellent moyen de compléter le log Simulation avec des informations de sortie supplémentaires pendant l'exécution.

La Simulation JavaScript tronquera les chaînes qui dépassent la longueur maximale définie du message Trace.

Apprenez Plus