r120 - in trunk/src/site: . rst/v4/user rst/v4/user/scripts
Author: echatellier Date: 2012-12-20 16:08:48 +0100 (Thu, 20 Dec 2012) New Revision: 120 Url: http://forge.codelutin.com/projects/isis-fish-docs/repository/revisions/120 Log: Ajout de documentation sur les r?\195?\168gles. Added: trunk/src/site/rst/v4/user/scripts/ trunk/src/site/rst/v4/user/scripts/rules.rst Modified: trunk/src/site/site_en.xml trunk/src/site/site_fr.xml Added: trunk/src/site/rst/v4/user/scripts/rules.rst =================================================================== --- trunk/src/site/rst/v4/user/scripts/rules.rst (rev 0) +++ trunk/src/site/rst/v4/user/scripts/rules.rst 2012-12-20 15:08:48 UTC (rev 120) @@ -0,0 +1,105 @@ +.. - +.. * #%L +.. * IsisFish +.. * +.. * $Id$ +.. * $HeadURL$ +.. * %% +.. * Copyright (C) 2012 Ifremer, Code Lutin, Chatellier Eric +.. * %% +.. * This program is free software: you can redistribute it and/or modify +.. * it under the terms of the GNU General Public License as +.. * published by the Free Software Foundation, either version 3 of the +.. * License, or (at your option) any later version. +.. * +.. * This program is distributed in the hope that it will be useful, +.. * but WITHOUT ANY WARRANTY; without even the implied warranty of +.. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +.. * GNU General Public License for more details. +.. * +.. * You should have received a copy of the GNU General Public +.. * License along with this program. If not, see +.. * <http://www.gnu.org/licenses/gpl-3.0.html>. +.. * #L% +.. - + +Scripts - Règles +================ + +Une règle permet de récupérer des données ou de les modifier avant ou après +chaque pas de temps d'une simulation. + +**Cependant attention, toutes les modifications effectuées par une règles sur la base de données sont annulées +à la fin de chaque pas de temps**. + +Scripts +------- +Les règles sont situées dans le dossier ``rule`` et doivent obligatoirement hériter de ``fr.ifremer.isisfish.rule.AbstractRule`` qui implémente lui même l'interface ``fr.ifremer.isisfish.rule.Rule``. + +Chaque règle doit implémenter 4 méthodes obligatoire: + * ``init`` : qui permet d'initialiser la règle + * ``condition`` : qui permet on non d'appliquer la règle sur le pas de temps courant pour le métier + * ``preAction`` : action de la règle **avant** le pas de temps + * ``postAction`` : action de la règle **après** le pas de temps + +Utilisation des règles par ISIS-Fish +------------------------------------ +Dans ISIS-Fish, les règles sont utilisées par les simulateurs. + +Au début de la simulation, ISIS-Fish instancie l'ensemble des règles que l'utilisateur a sélectionné et appele la méthode ``init`` pour chaque règle. La méthode ``init`` est donc appelée **une seule fois**. + +Ensuite, dans la boucle générale sur les pas de temps, le simulateur: + * appelle la méthode ``condition`` pour tous les métiers et pour toutes les règles (les méthodes ``condition`` de toutes les règles sont appelées avant les autres méthodes de la règles) + * appelle la méthode ``preAction`` pour toutes les règles et tous les métier **ssi** la méthode condition a renvoyé ``true`` pour la règle et le métier + * effectue la simulation du pas de temps courant + * appelle la méthode ``postAction`` pour toutes les règles et tous les métier **ssi** la méthode condition a renvoyé ``true`` pour la règle et le métier + * annulation des modifications de la base de données + +De façon algorithmique, voilà l’enchaînement des appels:: + + // debut de simulation + pour toutes les règles + appel de la méthode init() de la règle + finpour + + pour chaque pas de temps + // condition + pour toutes les regles + pour tous les metiers + appel de la methode condition() + + // preAction + pour toutes les regles + pour tous les metiers + si la regle est active pour ce metier + appel de la methode preAction() + + // simulation du pas de temps + + // postAction + pour toutes les regles + pour tous les metiers + si la regle est active pour ce metier + appel de la méthode postAction() + +Points de vigilance +------------------- + +preAction / postAction +~~~~~~~~~~~~~~~~~~~~~~ +Les méthodes ``preAction`` et ``postAction`` sont appelées plusieurs fois à chaque pas de temps (une fois pour chaque métier). Si une règle doit effectuer une ``preAction`` ou une ``postAction`` une seule fois pas pas de temps, il faudra utiliser une astuce pour ne l'effectuer qu'une seule fois par pas de temps (tel qu'un ``boolean`` d'état en attribut de règle). + +Instance de règle +~~~~~~~~~~~~~~~~~ +Une règles n'est instancié qu'une seule fois par simulation et la méthode ``init`` n'est appelée qu'une seule et unique fois. Les attributs de la classe ne sont donc pas réinitialisé entre les pas de temps + +Annulation des modifications +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Si une règle doit modifier la base de données, et devra le refaire à chaque pas de temps. Toutes les modifications sont annulées à chaque fin de pas de temps. + +Liens +----- + * http://www.isis-fish.org/apidocs/fr/ifremer/isisfish/rule/Rule.html + * http://www.isis-fish.org/apidocs/fr/ifremer/isisfish/rule/AbstractRule.html + * http://forge.codelutin.com/projects/isis-fish-data/repository/show/trunk/rul... + * http://svn.forge.codelutin.com/svn/isis-fish-community/trunk/rules/ Modified: trunk/src/site/site_en.xml =================================================================== --- trunk/src/site/site_en.xml 2012-12-12 16:10:21 UTC (rev 119) +++ trunk/src/site/site_en.xml 2012-12-20 15:08:48 UTC (rev 120) @@ -1,15 +1,28 @@ <?xml version="1.0" encoding="UTF-8"?> -<!-- #%L IsisFish $Id: site_en.xml 3124 2010-11-29 18:14:09Z chatellier $ - $HeadURL$ %% Copyright (C) 1999 - 2011 Ifremer, Code Lutin, Chatellier Eric - %% This program is free software: you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the Free - Software Foundation, either version 3 of the License, or (at your option) - any later version. This program is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - more details. You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/gpl-3.0.html>. - #L% --> +<!-- + #%L + IsisFish + + $Id: site_fr.xml 3124 2010-11-29 18:14:09Z chatellier $ + $HeadURL$ + %% + Copyright (C) 1999 - 2012 Ifremer, Code Lutin, Chatellier Eric + %% + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as + published by the Free Software Foundation, either version 3 of the + License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public + License along with this program. If not, see + <http://www.gnu.org/licenses/gpl-3.0.html>. + #L% + --> <project name="Isis-fish"> Modified: trunk/src/site/site_fr.xml =================================================================== --- trunk/src/site/site_fr.xml 2012-12-12 16:10:21 UTC (rev 119) +++ trunk/src/site/site_fr.xml 2012-12-20 15:08:48 UTC (rev 120) @@ -6,7 +6,7 @@ $Id: site_fr.xml 3124 2010-11-29 18:14:09Z chatellier $ $HeadURL$ %% - Copyright (C) 1999 - 2011 Ifremer, Code Lutin, Chatellier Eric + Copyright (C) 1999 - 2012 Ifremer, Code Lutin, Chatellier Eric %% This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as @@ -86,11 +86,16 @@ <item name="Utilisation des APIs" href="v4/user/tutorials/useAPI.html"/> <item name="Commandes CAPARMOR" href="v4/user/tutorials/utilCaparmor.html"/> </item> + <item name="Documentation des APIs" href="v4/user/API.html"/> + <item name="Scripts Java" href="v4/user/scripts.html" collapse="true"> + <item name="Règles" href="v4/user/scripts/rules.html" /> + <item name="Exemples de scripts ISIS" href="v4/user/scripts.html"/> + </item> + <item name="Scripts R" href="v4/user/installationr.html" collapse="true"> + <item name="Installation R" href="v4/user/installationr.html"/> + <item name="Exemples de scripts R" href="v4/user/scriptsR.html"/> + </item> <item name="FAQ" href="v4/user/FAQ.html"/> - <item name="Documentation des APIs" href="v4/user/API.html"/> - <item name="Installation R" href="v4/user/installationr.html"/> - <item name="Exemples de scripts ISIS" href="v4/user/scripts.html"/> - <item name="Exemples de scripts R" href="v4/user/scriptsR.html"/> </item> <item name="Publications" href="publications.html"/> <item name="Projets de recherche" href="research.html"/>
participants (1)
-
echatellier@users.forge.codelutin.com