SlideShare uma empresa Scribd logo
1 de 3
Baixar para ler offline
Elevator
                           Architecture des syst`mes embarqu´s
                                                e           e
                                       Caner Candan - caner@candan.fr
                                                   6 mars 2011

R´sum´
 e   e
  Commen¸ons par un rappel des objectifs attendus du
          c                                                                              Load sample

rapport :

    – pr´senter un graphe d’´tats illustrant tous les pro-
        e                    e                                                            Loop on all
                                                                                             t(x)
      cessus n´cessaire au fonctionnement de l’ascenseur,
              e
    – cr´er un simulateur d’ascenseur en langage C/C++.
        e

                                                                                          Next t(x) ?
Elevator Le projet est un simulateur d’ascenseur
d´velopp´ en C++. N’ayant pas eu le temps d’´tudier
 e       e                                         e
une impl´mentation de “SystemC”, un design a tout de
         e
                                                                           Manage simultanious
mˆme ´tait ´labor´ afin de g´n´raliser les diff´rents com-
  e   e    e     e           e e              e                               calls to elevator
posants que compte le projet. Le langage offrant des                        (Ordered or UpDown)
routines de g´n´ricit´, il est ainsi possible d’interchan-
             e e     e
ger certain processus. Ce qui rend le simulateur plus
robuste.                                                                                  Next call ?




1      Graphe d’´tats
                e                                                               Move elevator
                                                                             (Temporized or not)
  De mani`re g´n´rale, le diagramme d’´tats d´finit l’en-
          e    e e                     e      e
semble des ´tats couvert par un syst`me quelconque. Les
           e                        e
param`tres, du syst`me, peuvent ˆtre modifi´s lors d’un
      e             e             e         e
                                                                                       Change elevator
changement d’´tat. Nous pr´sentons le graphe d’´tats du
              e             e                   e                                          position
simulateur Elevator en figure 1.                                                        Change call state




2      Les composants
                                                                         Figure 1 – Graphe d’´tats
                                                                                             e
   Comme nous le disions, le simulateur Elevator est dot´
                                                        e
d’un design intuitif. On peut ainsi distinguer plusieurs
familles de composants au sein du projet. Ci-dessous une
liste non-exhaustive de composants d´taill´s.
                                       e   e              Move Ce composant g`re les appels simultan´s `
                                                                                      e                          e a
                                                          l’ascenseur puis d´l`gue son d´placement vers une autre
                                                                             ee           e
                                                          famille de composant OneMove. Ci-dessous une liste de
Elevator Ce composant repr´sente l’ascenseur en ses composants.
                                   e
lui mˆme. Il est possible d’int´grer plusieurs types
        e                           e
d’ascenseurs en partant des plus simples aux plus
complexes. Ci-dessous la liste des ascenseurs.               – OrderedMove, ce gestionnaire de mouvement effec-
                                                               tue les d´placements ` travers les ´tages demand´s
                                                                         e            a            e               e
   – EasyElevator, un simple ascenseur. Il se limite `  a      de mani`re ordonn´e.
                                                                        e           e
      l’enregistrement de sa position.
                                                             – UpDownMove, une variante effectuant des
   – OpenCloseElevator, une variante dot´ d’une porte
                                           e                   d´placements, en premier lieu, vers le haut puis
                                                                e
      a
      ` ouvrir et fermer.                                      vers le bas. Il est possible de produire l’inverse.


                                                             1
4        ´
     L’EXECUTION                                                                                                     2


OneMove Ce composant effectue le d´placement Code 2 Exemple de code du simulateur assemblant
                                               e
d’un ´tage initial vers un ´tage cible. Ci-dessous la liste diff´rents types de composants
      e                    e                                     e
des ses composants.
                                                            int main(void)
   – DummyOneMove, un simple d´placeur d’ascenseur. {
                                      e
                                                                ScheduleSampler sampler("hard1.sdl");
   – TemporizedOneMove, une variante qui calcule la             EasyElevator elevator;
     distance entre l’´tage de d´part et d’arriv´e et tem-
                      e          e               e              TemporizedOneMove onemove;
     porise le d´placement. Il est possible de d´finir le
                e                                  e            UpDownMove move(elevator, onemove);
     temps de d´placement n´cessaire par pas d’´tage.
                 e            e                    e            Scheduler scheduler(move);
                                                                scheduler(sampler());
                                                            }
ScheduleSampler Ce composant permet la lecture
d’un fichier contenant le sc´nario ` jouer par le si-
                               e        a
mulateur. Nous pr´sentons dans le code 1 un exemple
                    e
d’´chantillon.
  e                                                         Par d´faut Certains param`tres ne sont pas d´finit
                                                                     e                         e                  e
                                                            dans le code, ils restent toutefois d´finit avec des va-
                                                                                                      e
Code 1 Exemple de fichier de sc´nario ex´cutable par leurs par d´faut, comme le pas de temps de d´placement
                                     e       e                            e                                  e
le simulateur Elevator                                      du composant TemporizedOneMove qui est d´finit par  e
                                                            d´faut ` 1 seconde. De mˆme pour la position initiale de
                                                              e      a                  e
0 10 20 -50                                                 l’ascenseur d´finit ` l’´tage 0 par d´faut.
                                                                            e     a e               e
-70 0 0 0 0
-9
-8                                                          4 L’ex´cution   e
-7
-6 -5 -4 -3 -2 -1                                               Le code 3 illustre des r´sultats d’ex´cution obtenus
                                                                                           e             e
                                                            avec le mˆme ´chantillon pr´sent´ dans le code 1.
                                                                        e     e              e    e
                                                                Sur les premi`res lignes des r´sultats, apparaˆ un rap-
                                                                                e              e               ıt
                                                            pel du sc´nario qui va ˆtre jou´ par le simulateur Ele-
                                                                        e             e         e
   Chaque ligne du fichier repr´sente un temps t et ` vator, chaque ligne repr´sentant une unit´ de temps t.
                                   e                      a                            e                   e
chaque temps t il est possible de faire des appels simul- Commence alors la simulation. Comme nous utilisons le
tan´s ` l’ascenseur.
    e a                                                     composant UpDownMove, nous pouvons confirmer, par
                                                            les r´sultats, que la simulation commence ` parcourir les
                                                                  e                                        a
Scheduler Il existe une composante principale du            ´tages sup´rieurs demand´s. Puis apr`s avoir parcourut
                                                            e             e              e             e
simulateur, il s’agit du Scheduler qui utilise l’ensemble tous les ´tages sup´rieurs, le simulateur s’attaque aux
                                                                       e           e
des composants cit´s pr´c´demment ` travers un jeu de
                    e    e e            a                   ´tages inf´rieurs. Les points interm´diaires entre ´tage
                                                            e           e                            e            e
param´trage, y compris le sc´nario ` jouer, et lance la
        e                      e        a                   sont g´n´r´s par le composant TemporizedOneMove pour
                                                                    e ee
simulation. Ci-dessous la liste de ses composants.          indiquer les coˆts en pas de temps entre deux ´tages.
                                                                              u                                 e

    – LoopScheduler, juste une variante ex´cutant le
                                          e                 5      Conclusion
      sc´nario en boucle.
        e
                                                               Le simulateur Elevator a ´t´ con¸u de mani`re `
                                                                                          ee     c          e a
                                                            s’abstraire des sp´cifications du syst`me. Un langage
                                                                               e                 e
3      L’assemblage                                         plus appropri´, comme “SystemC”, aurait sˆrement
                                                                          e                               u
                                                            apport´ un mod`le plus optimal. Toutefois nous avons
                                                                   e         e
  L’assemblage consiste ` regrouper les diff´rents com-
                         a                  e               vu, ` travers le design, qu’il est possible, en ayant
                                                                 a
posants pr´sent´s et former le simulateur souhait´.
          e    e                                 e          une approche composant, d’interchanger les diff´rents
                                                                                                            e
                                                            processus de notre syst`me.
                                                                                   e

Exemple d’assemblage des composants Le code                   Ainsi libre ` chacun de concevoir de nouveaux com-
                                                                           a
2 donne un exemple d’assemblage des composants pour         posants pour enrichir le simulateur avec de nouvelles
former le simulateur.                                       fonctionnalit´s. L’ensemble du code du simulateur
                                                                         e
   Ce code illustre l’utilisation par le simulateur d’un    n’´tant pas toute ` fait g´n´rique, il reste des zones
                                                              e                 a      e e
´chantillon de sc´nario “hard1.sdl” 1 , d’un ascenseur
e                 e                                         dans le code que l’on peut encore abstraire.
simple, d’une temporisation des d´placements de l’as-
                                    e
censeur, d’un gestionnaire de d´placement privil´giant
                                  e               e            Ce papier suit les termes de la licence “GNU Free
les d´placements vers le haut puis vers le bas puis fina-
     e                                                      Documentation License 1.3” et peut ˆtre librement
                                                                                                    e
lement d’une ex´cution du sc´nario.
                e              e                            t´l´charg´ 2 , utilis´ et modifi´.
                                                             ee      e           e         e
    1. Pr´sent´ dans le code 1
         e    e                                                 2. https ://github.com/canercandan/elevator
5   CONCLUSION                                        3




Code 3 R´sultats obtenus apr`s une ex´cution du si-
         e                  e        e
mulateur

$> ./elevator samples/hard1.sdl
///// Scheduling /////
t(0) = -50 0 10 20
t(1) = -70 0
t(2) = -9
t(3) = -8
t(4) = -7
t(5) = -6 -5 -4 -3 -2 -1
//////////////////////

upper asked levels: .......... 10 ........
.. 20
lower asked levels: .................... 0
..........................................
........ -50
upper asked levels: ......................
............................ 0
lower asked levels: ......................
..........................................
...... -70
upper asked levels: ......................
....................................... -9
lower asked levels:
upper asked levels: . -8
lower asked levels:
upper asked levels: . -7
lower asked levels:
upper asked levels: . -6 . -5 . -4 . -3 .
-2 . -1
lower asked levels:

Mais conteúdo relacionado

Semelhante a Report on Elevator Project

Systemes sequentiels-grafcet-www.cours-online.com
Systemes sequentiels-grafcet-www.cours-online.comSystemes sequentiels-grafcet-www.cours-online.com
Systemes sequentiels-grafcet-www.cours-online.commorin moli
 
Les bases de la compréhension grafcet
Les bases de la compréhension grafcetLes bases de la compréhension grafcet
Les bases de la compréhension grafcetmorin moli
 
systeme automatises de production
systeme automatises de production systeme automatises de production
systeme automatises de production omar bllaouhamou
 

Semelhante a Report on Elevator Project (7)

Systemes sequentiels-grafcet-www.cours-online.com
Systemes sequentiels-grafcet-www.cours-online.comSystemes sequentiels-grafcet-www.cours-online.com
Systemes sequentiels-grafcet-www.cours-online.com
 
Chapitre 4 grafcet
Chapitre 4 grafcetChapitre 4 grafcet
Chapitre 4 grafcet
 
Grafcet cours
Grafcet coursGrafcet cours
Grafcet cours
 
Les bases de la compréhension grafcet
Les bases de la compréhension grafcetLes bases de la compréhension grafcet
Les bases de la compréhension grafcet
 
SAP - COURS.pdf
SAP - COURS.pdfSAP - COURS.pdf
SAP - COURS.pdf
 
systeme automatises de production
systeme automatises de production systeme automatises de production
systeme automatises de production
 
Api
ApiApi
Api
 

Mais de Caner Candan

Presentation of the Evolving Distribution Objects Framework
Presentation of the Evolving Distribution Objects FrameworkPresentation of the Evolving Distribution Objects Framework
Presentation of the Evolving Distribution Objects FrameworkCaner Candan
 
Report on GPU complex type usage
Report on GPU complex type usageReport on GPU complex type usage
Report on GPU complex type usageCaner Candan
 
Presentation MyProof
Presentation MyProofPresentation MyProof
Presentation MyProofCaner Candan
 

Mais de Caner Candan (6)

Presentation of the Evolving Distribution Objects Framework
Presentation of the Evolving Distribution Objects FrameworkPresentation of the Evolving Distribution Objects Framework
Presentation of the Evolving Distribution Objects Framework
 
Report on GPU complex type usage
Report on GPU complex type usageReport on GPU complex type usage
Report on GPU complex type usage
 
Report MyProof
Report MyProofReport MyProof
Report MyProof
 
Presentation MyProof
Presentation MyProofPresentation MyProof
Presentation MyProof
 
Reutilisabilité
ReutilisabilitéReutilisabilité
Reutilisabilité
 
PMP Report
PMP ReportPMP Report
PMP Report
 

Último

SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdfSKennel
 
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdfSKennel
 
Principe de fonctionnement d'un moteur 4 temps
Principe de fonctionnement d'un moteur 4 tempsPrincipe de fonctionnement d'un moteur 4 temps
Principe de fonctionnement d'un moteur 4 tempsRajiAbdelghani
 
Cours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSETCours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSETMedBechir
 
Bernard Réquichot.pptx Peintre français
Bernard Réquichot.pptx   Peintre françaisBernard Réquichot.pptx   Peintre français
Bernard Réquichot.pptx Peintre françaisTxaruka
 
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdfSKennel
 
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...Faga1939
 
SciencesPo_Aix_InnovationPédagogique_Bilan.pdf
SciencesPo_Aix_InnovationPédagogique_Bilan.pdfSciencesPo_Aix_InnovationPédagogique_Bilan.pdf
SciencesPo_Aix_InnovationPédagogique_Bilan.pdfSKennel
 
Le Lean sur une ligne de production : Formation et mise en application directe
Le Lean sur une ligne de production : Formation et mise en application directeLe Lean sur une ligne de production : Formation et mise en application directe
Le Lean sur une ligne de production : Formation et mise en application directeXL Groupe
 
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdf
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdfSciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdf
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdfSKennel
 
Cours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSETCours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSETMedBechir
 
Zotero avancé - support de formation doctorants SHS 2024
Zotero avancé - support de formation doctorants SHS 2024Zotero avancé - support de formation doctorants SHS 2024
Zotero avancé - support de formation doctorants SHS 2024Alain Marois
 
Bibdoc 2024 - Ecologie du livre et creation de badge.pdf
Bibdoc 2024 - Ecologie du livre et creation de badge.pdfBibdoc 2024 - Ecologie du livre et creation de badge.pdf
Bibdoc 2024 - Ecologie du livre et creation de badge.pdfBibdoc 37
 
Annie Ernaux Extérieurs. pptx. Exposition basée sur un livre .
Annie   Ernaux  Extérieurs. pptx. Exposition basée sur un livre .Annie   Ernaux  Extérieurs. pptx. Exposition basée sur un livre .
Annie Ernaux Extérieurs. pptx. Exposition basée sur un livre .Txaruka
 
PIE-A2-P4-support stagiaires sept 22-validé.pdf
PIE-A2-P4-support stagiaires sept 22-validé.pdfPIE-A2-P4-support stagiaires sept 22-validé.pdf
PIE-A2-P4-support stagiaires sept 22-validé.pdfRiDaHAziz
 
Presentation de la plateforme Moodle - avril 2024
Presentation de la plateforme Moodle - avril 2024Presentation de la plateforme Moodle - avril 2024
Presentation de la plateforme Moodle - avril 2024Gilles Le Page
 
Bibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdf
Bibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdfBibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdf
Bibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdfBibdoc 37
 
PIE-A2-P 5- Supports stagiaires.pptx.pdf
PIE-A2-P 5- Supports stagiaires.pptx.pdfPIE-A2-P 5- Supports stagiaires.pptx.pdf
PIE-A2-P 5- Supports stagiaires.pptx.pdfRiDaHAziz
 

Último (19)

SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdf
 
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdf
 
Principe de fonctionnement d'un moteur 4 temps
Principe de fonctionnement d'un moteur 4 tempsPrincipe de fonctionnement d'un moteur 4 temps
Principe de fonctionnement d'un moteur 4 temps
 
Cours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSETCours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSET
 
Bernard Réquichot.pptx Peintre français
Bernard Réquichot.pptx   Peintre françaisBernard Réquichot.pptx   Peintre français
Bernard Réquichot.pptx Peintre français
 
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdf
 
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
 
DO PALÁCIO À ASSEMBLEIA .
DO PALÁCIO À ASSEMBLEIA                 .DO PALÁCIO À ASSEMBLEIA                 .
DO PALÁCIO À ASSEMBLEIA .
 
SciencesPo_Aix_InnovationPédagogique_Bilan.pdf
SciencesPo_Aix_InnovationPédagogique_Bilan.pdfSciencesPo_Aix_InnovationPédagogique_Bilan.pdf
SciencesPo_Aix_InnovationPédagogique_Bilan.pdf
 
Le Lean sur une ligne de production : Formation et mise en application directe
Le Lean sur une ligne de production : Formation et mise en application directeLe Lean sur une ligne de production : Formation et mise en application directe
Le Lean sur une ligne de production : Formation et mise en application directe
 
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdf
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdfSciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdf
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdf
 
Cours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSETCours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSET
 
Zotero avancé - support de formation doctorants SHS 2024
Zotero avancé - support de formation doctorants SHS 2024Zotero avancé - support de formation doctorants SHS 2024
Zotero avancé - support de formation doctorants SHS 2024
 
Bibdoc 2024 - Ecologie du livre et creation de badge.pdf
Bibdoc 2024 - Ecologie du livre et creation de badge.pdfBibdoc 2024 - Ecologie du livre et creation de badge.pdf
Bibdoc 2024 - Ecologie du livre et creation de badge.pdf
 
Annie Ernaux Extérieurs. pptx. Exposition basée sur un livre .
Annie   Ernaux  Extérieurs. pptx. Exposition basée sur un livre .Annie   Ernaux  Extérieurs. pptx. Exposition basée sur un livre .
Annie Ernaux Extérieurs. pptx. Exposition basée sur un livre .
 
PIE-A2-P4-support stagiaires sept 22-validé.pdf
PIE-A2-P4-support stagiaires sept 22-validé.pdfPIE-A2-P4-support stagiaires sept 22-validé.pdf
PIE-A2-P4-support stagiaires sept 22-validé.pdf
 
Presentation de la plateforme Moodle - avril 2024
Presentation de la plateforme Moodle - avril 2024Presentation de la plateforme Moodle - avril 2024
Presentation de la plateforme Moodle - avril 2024
 
Bibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdf
Bibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdfBibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdf
Bibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdf
 
PIE-A2-P 5- Supports stagiaires.pptx.pdf
PIE-A2-P 5- Supports stagiaires.pptx.pdfPIE-A2-P 5- Supports stagiaires.pptx.pdf
PIE-A2-P 5- Supports stagiaires.pptx.pdf
 

Report on Elevator Project

  • 1. Elevator Architecture des syst`mes embarqu´s e e Caner Candan - caner@candan.fr 6 mars 2011 R´sum´ e e Commen¸ons par un rappel des objectifs attendus du c Load sample rapport : – pr´senter un graphe d’´tats illustrant tous les pro- e e Loop on all t(x) cessus n´cessaire au fonctionnement de l’ascenseur, e – cr´er un simulateur d’ascenseur en langage C/C++. e Next t(x) ? Elevator Le projet est un simulateur d’ascenseur d´velopp´ en C++. N’ayant pas eu le temps d’´tudier e e e une impl´mentation de “SystemC”, un design a tout de e Manage simultanious mˆme ´tait ´labor´ afin de g´n´raliser les diff´rents com- e e e e e e e calls to elevator posants que compte le projet. Le langage offrant des (Ordered or UpDown) routines de g´n´ricit´, il est ainsi possible d’interchan- e e e ger certain processus. Ce qui rend le simulateur plus robuste. Next call ? 1 Graphe d’´tats e Move elevator (Temporized or not) De mani`re g´n´rale, le diagramme d’´tats d´finit l’en- e e e e e semble des ´tats couvert par un syst`me quelconque. Les e e param`tres, du syst`me, peuvent ˆtre modifi´s lors d’un e e e e Change elevator changement d’´tat. Nous pr´sentons le graphe d’´tats du e e e position simulateur Elevator en figure 1. Change call state 2 Les composants Figure 1 – Graphe d’´tats e Comme nous le disions, le simulateur Elevator est dot´ e d’un design intuitif. On peut ainsi distinguer plusieurs familles de composants au sein du projet. Ci-dessous une liste non-exhaustive de composants d´taill´s. e e Move Ce composant g`re les appels simultan´s ` e e a l’ascenseur puis d´l`gue son d´placement vers une autre ee e famille de composant OneMove. Ci-dessous une liste de Elevator Ce composant repr´sente l’ascenseur en ses composants. e lui mˆme. Il est possible d’int´grer plusieurs types e e d’ascenseurs en partant des plus simples aux plus complexes. Ci-dessous la liste des ascenseurs. – OrderedMove, ce gestionnaire de mouvement effec- tue les d´placements ` travers les ´tages demand´s e a e e – EasyElevator, un simple ascenseur. Il se limite ` a de mani`re ordonn´e. e e l’enregistrement de sa position. – UpDownMove, une variante effectuant des – OpenCloseElevator, une variante dot´ d’une porte e d´placements, en premier lieu, vers le haut puis e a ` ouvrir et fermer. vers le bas. Il est possible de produire l’inverse. 1
  • 2. 4 ´ L’EXECUTION 2 OneMove Ce composant effectue le d´placement Code 2 Exemple de code du simulateur assemblant e d’un ´tage initial vers un ´tage cible. Ci-dessous la liste diff´rents types de composants e e e des ses composants. int main(void) – DummyOneMove, un simple d´placeur d’ascenseur. { e ScheduleSampler sampler("hard1.sdl"); – TemporizedOneMove, une variante qui calcule la EasyElevator elevator; distance entre l’´tage de d´part et d’arriv´e et tem- e e e TemporizedOneMove onemove; porise le d´placement. Il est possible de d´finir le e e UpDownMove move(elevator, onemove); temps de d´placement n´cessaire par pas d’´tage. e e e Scheduler scheduler(move); scheduler(sampler()); } ScheduleSampler Ce composant permet la lecture d’un fichier contenant le sc´nario ` jouer par le si- e a mulateur. Nous pr´sentons dans le code 1 un exemple e d’´chantillon. e Par d´faut Certains param`tres ne sont pas d´finit e e e dans le code, ils restent toutefois d´finit avec des va- e Code 1 Exemple de fichier de sc´nario ex´cutable par leurs par d´faut, comme le pas de temps de d´placement e e e e le simulateur Elevator du composant TemporizedOneMove qui est d´finit par e d´faut ` 1 seconde. De mˆme pour la position initiale de e a e 0 10 20 -50 l’ascenseur d´finit ` l’´tage 0 par d´faut. e a e e -70 0 0 0 0 -9 -8 4 L’ex´cution e -7 -6 -5 -4 -3 -2 -1 Le code 3 illustre des r´sultats d’ex´cution obtenus e e avec le mˆme ´chantillon pr´sent´ dans le code 1. e e e e Sur les premi`res lignes des r´sultats, apparaˆ un rap- e e ıt pel du sc´nario qui va ˆtre jou´ par le simulateur Ele- e e e Chaque ligne du fichier repr´sente un temps t et ` vator, chaque ligne repr´sentant une unit´ de temps t. e a e e chaque temps t il est possible de faire des appels simul- Commence alors la simulation. Comme nous utilisons le tan´s ` l’ascenseur. e a composant UpDownMove, nous pouvons confirmer, par les r´sultats, que la simulation commence ` parcourir les e a Scheduler Il existe une composante principale du ´tages sup´rieurs demand´s. Puis apr`s avoir parcourut e e e e simulateur, il s’agit du Scheduler qui utilise l’ensemble tous les ´tages sup´rieurs, le simulateur s’attaque aux e e des composants cit´s pr´c´demment ` travers un jeu de e e e a ´tages inf´rieurs. Les points interm´diaires entre ´tage e e e e param´trage, y compris le sc´nario ` jouer, et lance la e e a sont g´n´r´s par le composant TemporizedOneMove pour e ee simulation. Ci-dessous la liste de ses composants. indiquer les coˆts en pas de temps entre deux ´tages. u e – LoopScheduler, juste une variante ex´cutant le e 5 Conclusion sc´nario en boucle. e Le simulateur Elevator a ´t´ con¸u de mani`re ` ee c e a s’abstraire des sp´cifications du syst`me. Un langage e e 3 L’assemblage plus appropri´, comme “SystemC”, aurait sˆrement e u apport´ un mod`le plus optimal. Toutefois nous avons e e L’assemblage consiste ` regrouper les diff´rents com- a e vu, ` travers le design, qu’il est possible, en ayant a posants pr´sent´s et former le simulateur souhait´. e e e une approche composant, d’interchanger les diff´rents e processus de notre syst`me. e Exemple d’assemblage des composants Le code Ainsi libre ` chacun de concevoir de nouveaux com- a 2 donne un exemple d’assemblage des composants pour posants pour enrichir le simulateur avec de nouvelles former le simulateur. fonctionnalit´s. L’ensemble du code du simulateur e Ce code illustre l’utilisation par le simulateur d’un n’´tant pas toute ` fait g´n´rique, il reste des zones e a e e ´chantillon de sc´nario “hard1.sdl” 1 , d’un ascenseur e e dans le code que l’on peut encore abstraire. simple, d’une temporisation des d´placements de l’as- e censeur, d’un gestionnaire de d´placement privil´giant e e Ce papier suit les termes de la licence “GNU Free les d´placements vers le haut puis vers le bas puis fina- e Documentation License 1.3” et peut ˆtre librement e lement d’une ex´cution du sc´nario. e e t´l´charg´ 2 , utilis´ et modifi´. ee e e e 1. Pr´sent´ dans le code 1 e e 2. https ://github.com/canercandan/elevator
  • 3. 5 CONCLUSION 3 Code 3 R´sultats obtenus apr`s une ex´cution du si- e e e mulateur $> ./elevator samples/hard1.sdl ///// Scheduling ///// t(0) = -50 0 10 20 t(1) = -70 0 t(2) = -9 t(3) = -8 t(4) = -7 t(5) = -6 -5 -4 -3 -2 -1 ////////////////////// upper asked levels: .......... 10 ........ .. 20 lower asked levels: .................... 0 .......................................... ........ -50 upper asked levels: ...................... ............................ 0 lower asked levels: ...................... .......................................... ...... -70 upper asked levels: ...................... ....................................... -9 lower asked levels: upper asked levels: . -8 lower asked levels: upper asked levels: . -7 lower asked levels: upper asked levels: . -6 . -5 . -4 . -3 . -2 . -1 lower asked levels: