ITA - Instituto Tecnológico de Aeronáutica SISTEMAS EMBARCADOS E DE TEMPO REAL Prof. Dr. Adilson Marques da Cunha 2° semestre/2005 Lista de Exercicío 4 –Laboratórios de 1 a 7 Data: 21/11/2005 André Valdestilhas Índice 1. 2. 3. 4. Desenvolvimento ............................................................................................................ 3 Sistema de Tingimento ................................................................................................... 3 Tank ................................................................................................................................ 3 Lab 1 - Controller/Tester ................................................................................................ 4 4.1. Objectives ............................................................................................................... 4 5. Lab 2 – Válvula, Iniciando o Sistema de Baixa Temperatura. ....................................... 5 5.1. Objectives ............................................................................................................... 5 6. Lab 3 – Controle do Tingimento de Baixa Temperatura................................................ 7 6.1. Objectives ............................................................................................................... 7 7. Lab 4 – Master and Tank Containers.............................................................................. 8 7.1. Objectives ............................................................................................................... 8 8. Lab 5 – Ativando o Sistema de Alta Temperatura ....................................................... 10 8.1. Objectives ............................................................................................................. 10 9. Lab 6 – Completar o Sistema de Alta Temperatura .................................................... 11 9.1. Objectives ............................................................................................................. 11 10. Lab 7 – Deliverable and Test Harness / Low and High Temperature ..................... 12 10.1. Objectives ......................................................................................................... 12 11. Conclusão: ................................................................................................................ 13 Objetivo da Lista Realizar os 7 laboratórios (Labs), e publicar até dia 21/11/2005 na home page, visando a familiarização e compreensão de alguns dos principais conceitos envolvidos nesse contexto. 1. Desenvolvimento Abaixo será demonstrado do laboratório 1 até o laboratório 7, a execução dos mesmos e os respectivos resultados. Para isto foi ncessário utilizar-se dos softwares Visual C++ 6.0 e o Rose Real Time 2003. A aplicação a ser desenvolvida é um sistema de dyeing cujo objetivo é tingir tecido com uma cor especificada.Este processo é realizado enchendo um tanque de tintura líquida, enquanto colocando o tecido no tanque, e deixando o tecido saturar durante um tempo prefixado, deixando a tintura penetrar o tecido e muda sua cor. 2. Sistema de Tingimento O diagrama abaixo mostra a idéia geral do sistema de dyeing. Ilustração 1 - Dyeing System 3. Tank O tanque segura o tecido a ser tingido e a solução de tintura. A válvula de abastecimento permite que a solução entre no tanque, e a válvula de dreno permite sua remoção. O nível atual no tanque é informado continuamente pelo sensor nivelado. As válvulas são dispositivos dois estados (on ou off), onde o sensor nivelado é um dispositivo contínuo, isso significa que as saídas continuas varia com a função de entrada. Ilustração 2 - Tank 4. Lab 1 - Controller/Tester This lab accompanies Module 4, “Capsule Structure: Ports, Protocols, and Capsule Roles.” In this lab, you will create a simplified version of DyeingSystem by using the existing capsule classes, Controller and Tester. You will create capsules with simple structure and no behavior. 4.1. Objectives When you have successfully completed this lab, you will be able to: - Use the basic tool features - Build a simple model from existing elements - Compile, run, test, and debug the model - Generate a sequence diagram from the running model - Create a class diagram of the model Abaixo segue a estrutura básica da cápsula Dyeing System. Ilustração 3 - Estrutura da Capsula Dyeing System Abaixo segue a estrutura máquina de estados da cápsula Tester. sendFullLevel Initial empty fillOn fillOff drainOff draining filling drainOn dyeing sendEmptyLev el Ilustração 4 - Máquina de Estados Capsula Tester Aplicações no projeto como um todo: Este laboratório traz o conceito de análise baseada em um modelo pré-existente. Utilizamos este conceito em todo o projeto (em todas as integrações)pois este primeiro lab utilizou conceitos básicos da ferramenta [incluindo diagrama de classes, e diagramas de seqüência]. Download do Lab 1 5. Lab 2 – Válvula, Iniciando o Sistema de Baixa Temperatura. This lab accompanies Module 5, “State Modeling.” This exercise involves creating capsules with simple tructure and behavior. You will build the Flow protocol and Valve capsule class, and then compile and debug the model by removing any compile and run-time errors. Then you will add Valve capsule roles to the DyeingSystem. 5.1. Objectives When you have successfully completed this lab, you will be able to: - Create a capsule with simple structure and simple behavior - Begin construction of a complex model (the case study) - Create a simple protocol class Abaixo segue a estrutura básica da cápsula Dyeing / c ontrollerR1 : Controller + / operatorDialog : OperatorDialog / fillValue : Valv e + / c ontrol : Dev ic eControl~ + / fill : Dev ic eControl + / flow : Flow / drainValv e : Valve + / c ontrol + / flow : Dev ic eControl~ : Flow + / drain : Dev ic eControl + / lev el : MonitoredValue Ilustração 5 - Estrutura da cápsula Dyeing System Abaixo segue o Diagrama de Seqüências: / c ontrollerR 1 : Controller 1: turnOn filling 2: isOn 3: informIn (R T T imespec {tv _sec ...) filling 4: timeout 5: v alue (int 1000) filling 6: turnOff 7: informIn (R T T im...) dyeing 7: isOff 8: timeout dyeing 9: turnOn draining 10: isOn 11: informIn (R T T imespec { tv _sec ...) draining 12: timeout 13: v alue (int 0) draining 14: turnOff empty 15: isOff empty Ilustração 6 - Diagrama de Sequencias Dyeing System Aplicações no projeto como um todo: Demonstra as funcionalidades básicas do RRT- Rational Rose Real Time, como a criação de cápsulas, diagrama de estrutura, diagrama de estados e protocolos. Estes conceitos foram aplicados desde os warm-ups e serão utilizados até a última integração. Download do Lab 2 6. Lab 3 – Controle do Tingimento de Baixa Temperatura. This lab accompanies Module 6, “System Services.” To complete the low-temp dyeing system, you will integrate a timer into the design of the Valve capsule lass to periodically send Flow::amount messages. You will also create the AcquiredValue protocol class and Level and Dye capsule classes. Finally, you will add Level and Dye capsule roles to the DyeingSystem, and then compile and test the DyeingSystem as a complete system. 6.1. Objectives When this exercise is successfully completed, you will be able to: - Complete construction of a complex model - Make use of timers in a model with the Timing service in the services library Figuras: Initial + / input : Ac quiredValue idle + / output : MonitoredValue~ report sample # / timer : Timing ac quiring Ilustração 7 - Estrutura da cápsula level Ilustração 8 - Máquina de estados da cápsula level Initial + / c ontrol : Dev ic eControl~ + / flow : Flow timeout # / timer : Timing off turnOn on turnOff Ilustração 9 - Estrutura da cápsula valve Ilustração 10 - Máquina de estados da cápsula valve Initial start empty filling False lev el T rue isFull isEmpty True False lev el timeout draining dyeing Ilustração 11 - Máquina de estados da cápsula controller Aplicações no projeto como um todo: Este laboratório usa o conceito de serviços do sistema utilizando uma funcionalidade chamada de Timing. É uma porta protegida que insere um timer na estrutura da cápsula. Este recurso foi utilizado na EC – Estação de Controle em alguns casos onde é necessário temporizar uma transição de estados. Download do Lab 3 7. Lab 4 – Master and Tank Containers This lab accompanies Module 9, “Structure Hierarchies.” This is a two-part lab in which you will reorganize the dyeing system model to make it easier to work with. In the first part, you will use the Rose RealTime aggregation feature to create container capsule classes Tank and Master. Remember that the aggregation feature is a tool that allows you to combine capsules. It is not the same as the UML aggregation relationship. In the second part of the lab, you will use replication to create multiple tanks and controllers. 7.1. Objectives After successfully completing this exercise, you will be able to: - Add a state machine to a passive class. - Create a trigger operation for a passive class state machine. - Add code to a transition. Ilustração 12 - Agregação das cápsulas fillValve, drainValve, dye and levelSensor Ilustração 13 - Estutura da cápsula master Ilustração 15 - Cardinalidade na cápsula controller Ilustração 14 - Três controladores em runtime Aplicações no projeto como um todo: Neste laboratório aprendemos o conceito de agregação de estrutura e cardinalidade, que é diferente do conceito de agregação da UML, são definições distintas. Até a integração presente não utilizamos o conceito em nosso modelo. Provavelmente seja utilizado na integração final para a execução da missão, para um melhor entendimento do modelo e facilidade na operação do mesmo. Download do Lab 4 8. Lab 5 – Ativando o Sistema de Alta Temperatura This lab accompanies Module 10, “Inheritance Hierarchies.” In this lab you will learn to manage model complexity by using inheritance hierarchies. You will create a high-temperature dyeing system by superclassing and subclassing existing capsule, protocol, and passive classes in DyeingSystem. 8.1. Objectives When you have successfully completed this lab, you will be able to: - Create an entirely new system by constructing inheritance hierarchies - Apply bottom-up design to an inheritance hierarchy (generalizing an existing class) - Apply top-down design to an inheritance hierarchy (specializing an existing class) - Compile, run, and debug a model containing inheritance hierarchies + / flowIn : Flow~ Initial ac tiv e + / flowOut : Flow~ flowIn # / heatOutT imer : T iming + / Heatln : Flow~ atIn flowOut tOut + / temperature : Ac quiredValue~ lev el + / lev el : Ac quiredValue~ Temperatura Ilustração 16- Máquina de estados da cápsula DyeHT Ilustração 17- Estrutura da cápsula DyeHT + / fill : Dev ic eControl + / operatorDialog : OperatorDialog + / drain : Dev ic eControl + / heat : Dev ic eControl + / temperature : MonitoredValue + / lev el : MonitoredValue # / timer : Timing Ilustração 18- Máquina de estados da cápsula ControllerHT Aplicações no projeto como um todo: Neste laboratório aprendemos o conceito de agregação de estrutura e cardinalidade, que é diferente do conceito de agregação da UML, são definições distintas. Até a integração presente não utilizamos o conceito em nosso modelo. Provavelmente seja utilizado na integração final para a execução da missão, para um melhor entendimento do modelo e facilidade na operação do mesmo. Download do Lab 5 9. Lab 6 – Completar o Sistema de Alta Temperatura This lab accompanies Module 11, “Behavior Hierarchies.” In this lab you will learn to manage behavioral complexity by constructing hierarchical finite state machines (FSMs). You will modify the behavior of Controller so that it becomes a hierarchical state machine. Then you will add thermostatic behavior to ControllerHT so that it can properly regulate the temperature of the liquid dye in the tank. 9.1. Objectives When you have successfully completed this lab, you will be able to: - Create a hierarchical FSM in an existing model - Distribute behavior across a model’s hierarchical FSM - Compile, run, and debug a model containing a hierarchical FSM Initial start empty running done Ilustração 19 - Máquina de estados da cápsula controller start start filling False lev el done T rue isFull isEmpty T rue False lev el draining timeout dyeing Ilustração 20 –Agregação da cápsula controller Aplicações no projeto como um todo: Aprendemos neste laboratório o conceito de agregação de máquinas de estados complexas. Até o momento não utilizamos este conceito de agregação das máquinas de estado devido às máquinas de estados da estação de controle não serem tão complexas. Download do Lab 6 10. Lab 7 – Deliverable and Test Harness / Low and High Temperature This lab accompanies Module 12, “System Hierarchies: Packaging and Layering.” In this lab you learn to manage model complexity by using packages. You will organize the Dyeing System application into two categories, Deliverable and Test Harness, and Low Temperature and High Temperature. 10.1. Objectives When you have successfully completed this lab, you will be able to: - Create packages and place existing model elements within them - Create a containing capsule - Add simple structure to that capsule by adding capsule roles - Compile, run, and debug the model Aplicações no projeto como um todo: De acordo com os níveis de integração, a complexidade da integração e organização do modelo é maior. Surge então a necessidade de um gerenciamento mais preciso de modelos através da criação de pacotes. Este conceito vem sendo aplicado desde a primeira integração de forma a concentrar todos as cápsulas,protocolos, classes de um determinado componente em um pacote específico. Download do Lab 7 11. Conclusão: Foi de extrema importância a realização de todos os Warm-ups e agora de todos os Labs na ordem em que nos foi passado, pois um exercício depende dos conhecimentos adquiridos no exercício anterior. Sem a execução dos laboratórios seria praticamente impossível realizar todas as integrações e principalmente a missão final. Foi um processo que demandou bastante tempo, principalmente no laboratório 5, devido a complexidade do mesmo.