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

Simulation dynamique avec JavaScript

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

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

  • sim.logger
  • sim.Nom.du.client
  • this.count
  • 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 des attributs du classificateur propriétaire à cet object .

Quelques exemples d'où et comment vous pouvez définir le comportement de Simulation à l'aide de JavaScript sont fournis ici. D'autres exemples sont fournis dans le modèle EAExample.eap fourni avec Enterprise Architect .

Utilisation JavaScript

Paramètre

Action

Voir également

Entrée Script d'Analyseur

Si vous saisissez du code JavaScript dans le champ 'Input' 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

Gardes de flux de transition et de contrôle

C'est le cheval de bataille de la fonctionnalité de Simulation . Comme Enterprise Architect évalue les chemins possibles vers l'avant à chaque nœud dans une Simulation , il teste les gardes sur les transitions sortantes et les flux de contrôle et n'avancera que s'il n'y a qu'un seul vrai chemin à suivre - sinon la Simulation est considérée comme "bloquée" et intervention manuelle est requis. 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 les States . Un tel code s'exécutera au moment opportun et est utile pour mettre à jour les variables de Simulation et effectuer d'autres affectations.

Vous pouvez également simuler le comportement des classes via leurs instances d' 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 prend en 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 des données ou un comportement dans le monde externe en fonction de l'état actuel de la Simulation (par exemple, mettre à jour un modèle ou logiciel Simulation externe à Enterprise Architect ). La syntaxe de création d'objets COM est illustrée ici :

this.name="Pair Impair" ;

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

logger.Show();

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

Utiliser Solveurs

Anywhere dans Enterprise Architect qui a du code JavaScript , comme dans Simulation Dynamique , vous pouvez maintenant utiliser une construction JavaScript appelée ' Solveur ' (la classe Solveur ) pour s'intégrer à des outils externes et utiliser directement les fonctionnalités de chaque outil pour simplement et intuitivement exécuter 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 connaître les fonctions disponibles dans votre Bibliothèque Math préférée et les 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 rédacteurs de Add-In créant des 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.

GNU Octave Solveur Solveur MATLAB Solveurs

Actions signalées

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

BroadcastSignal("AnnulerPressé");

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

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

Signal de diffusion( " {996EAF52-6843-41f7-8966-BCAA0ABEC41F} " );

EST DANS()

L'opérateur IS_IN(state) renvoie True si la Simulation actuelle a un état actif dans n'importe quel thread correspondant au nom transmis. Par exemple, pour contrôler conditionnellement l'exécution, il est possible d'écrire du code comme celui-ci :

si (IS_IN("WaitingForInput"))

BroadcastSignal("AnnulerAppuyé")

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

Trace()

La méthode Trace(statement) vous permet d'imprimer des instructions Trace à n'importe quel point arbitraire de votre Simulation . C'est un excellent moyen de compléter le log de 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