• Nenhum resultado encontrado

relatorio warmups1 8 V1.0

N/A
N/A
Protected

Academic year: 2021

Share "relatorio warmups1 8 V1.0"

Copied!
43
0
0

Texto

(1)

Instituto Tecnológico de Aeronáutica

CE-235

Sistemas Embarcados de Tempo Real

Prof. Dr. Adilson Marques da Cunha

Prof. Dr. Luiz Alberto Vieira Dias

(Relatório 1 – Warm Ups)

José Luiz Moreira

(2)

Sumário

1.

Warm Up 1 – HelloWord ... 5

2.

Warm Up 2 – Passive Classes ... 11

3.

Warm Up 3 - Traffic Light... 18

4.

Warm Up 4 - Eletronic Light ... 23

5.

Warm Up 5 - Battleship... 26

6.

Warm Up 6 - Traffic System ... 29

7.

Warm Up 7 - Client/Server ... 32

8.

Warm Up 8 - RQA-RT ... 36

(3)

Lista de Figuras

Figura 1 - Criar Cápsula ... 5

Figura 2 - Diagrama de Estado ... 6

Figura 3 - Incluir Código da Transição ... 6

Figura 4 - Incluir I/O Libraries ... 7

Figura 5 - Criar Componente ... 8

Figura 6 - Tornar Componente Ativo ... 8

Figura 7 - Definir o TargetConfiguration ... 9

Figura 8 - Definir o Topcapsule ... 9

Figura 9 - Criar Processador ... 10

Figura 10 - Tornar o Processador Ativo ... 10

Figura 11 - Tela de Processamento do Warm Up 1 ... 11

Figura 12 - Criar Classe Passiva ... 12

Figura 13 - Criar Operação ... 12

Figura 14 - Definir Parâmetros ... 13

Figura 15 - Definir Código da Operação ... 13

Figura 16 - Definir O Tipo de Operação como Global ... 14

Figura 17 - Incluir I/O Libraries ... 14

Figura 18 - Definir o Environment ... 15

Figura 19 - Desabilitar a Opção Attach to Target on startup ... 15

Figura 20 - Tela de Processamento do Warm Up ... 16

Figura 21 - Alteração do Programa Fonte... 17

Figura 22 - Compilação do Programa ... 17

Figura 23 - Processamento do Warm Up ... 18

Figura 24 - Sincronizar o Código... 18

Figura 25 - Criar Protocolo ... 19

Figura 26 - Definir Sinais do Protocolo ... 20

Figura 27 - Criação de Porta e Definição de suas características ... 20

Figura 28 - Criar Diagrama de Estado ... 21

Figura 29 - Definir características da a Transição ... 21

Figura 30 - Diagrama de Estado após definição das características ... 22

Figura 31 - Criação da Probe para Execução do Programa ... 22

Figura 32 - Tela de Processamento do Warm Up ... 23

Figura 33 - Definir uma Operação do Tipo Trigger ... 24

Figura 34 - Definir a Trigger a ser usada na Transição ... 24

Figura 35 - Adicionar a condição de execução da Transição ... 25

Figura 36 - Diagrama de Estado da Cápsula LockSystem ... 25

Figura 37 - Tela de Processamento do Warm Up 4 ... 26

Figura 38 - Diagrama de Estado da Cápsula Battleship ... 27

(4)

Figura 40 - Diagrama de Estrutura da Cápsula World ... 28

Figura 41 - Dependência entre as classes BattleShip, Ocean e o Timer ... 28

Figura 42 - Tela de Processamento do Warm Up 5 ... 29

Figura 43 - Diagrama de Estado da Cápsula Controller ... 30

Figura 44 - Diagrama de Estrutura da Cápsula Controller ... 30

Figura 45 - Diagrama de Estrutura do Container Intersection ... 31

Figura 46 - Tela de Processamento do Warm Up 6 ... 31

Figura 47 - Cápsula Client com a Opção do Tipo Optional ... 32

Figura 48 - Transição Inicial da Cápsula TheSystem ... 33

Figura 49 - Tela de Processamento do Warm Up 7 ... 33

Figura 50 - Cápsula Client com a Opção do Tipo Plug-in ... 34

Figura 51- Inserir novo client ... 35

Figura 52 - Alterar o Código da transição inicial ... 35

Figura 53 - Processamento do Warm Up 7 ... 36

Figura 54 - Criar Package ... 37

Figura 55 – Conexão entre Client e Server ... 38

Figura 56 - Criar Diagrama de Colaboração ... 38

Figura 57 - Criar Diagrama de Sequência... 39

Figura 58 - Setar Opções de FromPort, ToPort e Signal ... 39

Figura 59 - Diagrama de Sequência ... 40

Figura 60 - Selecionar opção de Reuse ... 40

Figura 61 - Selecionar opção de driver ... 41

Figura 62 - Definir a Saída do Teste ... 41

(5)

1.

Warm Up 1 – HelloWord

A realização do Warm Up 1 – HelloWord foi executada sem problemas. Foi um programa de baixa complexidade, mas que auxiliou na inicialização do autor desta lista no Software Rational Rose Real Time. Através desse exercício foi possível aprender como criar um novo modelo, uma cápsula, adicionar comportamento a mesma, além de aprender a compilar, executar e depurar o modelo.

Para o desenvolvimento deste exercício seguiu-se os seguintes passos: • Criar um novo modelo

• Criar uma cápsula chamada HelloWord – vide Figura 1 - Criar Cápsula

• Abrir o Diagrama de Estado, incluir um estado chamado Active e criar a transição inicial – vide Figura 2 - Diagrama de Estado

• Incluir na Transição inicial o código a ser executado – vide Figura 3 - Incluir Código da Transição

• Incluir as I/O Libraries necessárias para rodar o programa C++ - vide Figura 4 - Incluir I/O Libraries

(6)

Figura 2 - Diagrama de Estado

(7)

Figura 4 - Incluir I/O Libraries

Os procedimentos para criação do componente e processador, a compilação e a execução do programa, são listados a seguir.

Após a criação do componente, vide Figura 5 - Criar Componente, deve-se seguir os seguintes passos:

• Arrastar a cápsula HelloWord para o componente

• Tornar o componente ativo – vide Figura 6 - Tornar Componente Ativo • Definir o TargetConfiguration – vide Figura 7 - Definir o TargetConfiguration • Definir o TopCapsule – Figura 8 - Definir o Topcapsule

• Criar Processador – vide Figura 9 - Criar Processador • Arrastar o componente HelloWord para o processador

• Tornar o processador ativo – vide Figura 10 - Tornar o Processador Ativo Após seguir estes passos, já se pode compilar e executar o programa.

(8)

Figura 5 - Criar Componente

(9)

Figura 7 - Definir o TargetConfiguration

(10)

Figura 9 - Criar Processador

(11)

A seguir veremos a execução do programa.

Figura 11 - Tela de Processamento do Warm Up 1

2.

Warm Up 2 – Passive Classes

Na realização do Warm Up 2 – Passive Class foi possível aprender como criar classe passiva e como adicionar comportamento à mesma.

Os seguintes passos foram executados para o desenvolvimento deste exercício. • Criar um modelo

• Criar a classe passiva – vide Figura 12 - Criar Classe Passiva

• Criar a operação principal para a classe – vide Figura 13 - Criar Operação • Definir os parâmetros da operação – vide Figura 14 - Definir Parâmetros

• Inserir na operação o código a ser executado – vide Figura 15 - Definir Código da Operação

• Definir a operação como global – vide Figura 16 - Definir O Tipo de Operação como Global

• Inserir I/O Libraries – vide Figura 17 - Incluir I/O Libraries • Definir o Environment – vide Figura 18 - Definir o Environment

• Como é uma Classe Passiva deve-se desabilitar a opção Attach to target on startup – vide Figura 19 - Desabilitar a Opção Attach to Target on startup

(12)

• Criar o componente e o processador – vide procedimentos descrito no Warm Up 1 • Rodar o Programa

Figura 12 - Criar Classe Passiva

(13)

Figura 14 - Definir Parâmetros

(14)

Figura 16 - Definir O Tipo de Operação como Global

(15)

Figura 18 - Definir o Environment

(16)

A seguir veremos a execução do programa.

Figura 20 - Tela de Processamento do Warm Up

Foi solicitado neste Warm Up que se fizesse alteração no programa com um editor qualquer, compilar e executar o programa em modo de comando, e depois sincronizar o programa alterado com o programa do projeto do Rational Rose.

(17)

Figura 21 - Alteração do Programa Fonte

(18)

Figura 23 - Processamento do Warm Up

Figura 24 - Sincronizar o Código

3.

Warm Up 3 - Traffic Light

Na realização do Warm Up 3 – Traffic light foi possível aprender como criar protocolo e adicionar sinais de entrada e saída no mesmo.

(19)

Para o desenvolvimento deste exercício seguiu-se os seguintes passos • Criar um modelo

• Criar protocolo – vide Figura 25 - Criar Protocolo

• Definir sinais para o protocolo – vide Figura 26 - Definir Sinais do Protocolo • Criar cápsula – vide Figura 1 - Criar Cápsula

• Criar porta e definir característica da porta (toda porta que se comunica com outra deve ser do tipo End Port) – vide Figura 27 - Criação de Porta e Definição de suas características

• Definir o diagrama de estado da cápsula a partir do diagrama de sequência dado – vide Figura 28 - Criar Diagrama de Estado

• Definir as características das transições – vide Figura 29 - Definir características da a Transição

• Ao rodar o programa deve-se criar um elemento Probe na porta com os sinais do protocolo red, green e yellow – vide Figura 26 - Definir Sinais do Protocolo

(20)

Figura 26 - Definir Sinais do Protocolo

(21)

Figura 28 - Criar Diagrama de Estado

Figura 29 - Definir características da a Transição

(22)

Figura 30 - Diagrama de Estado após definição das características

OBS: Observem que as linhas das transições estão contínua.

Figura 31 - Criação da Probe para Execução do Programa

Após a criação do Probe podemos executar o programa. Basta clicar no botão de rodar o programa e clicar nos sinais definidos no Probe. Vide figura abaixo.

(23)

Figura 32 - Tela de Processamento do Warm Up

4.

Warm Up 4 - Eletronic Light

Na realização do Warm Up 4 – Eletornic Lock foi possível aprender como criar trigger , criar uma máquina de estado para uma passive class alem de adicionar código em transição.

Para o desenvolvimento deste exercício seguiu-se os seguintes passos • Criar um modelo

• Criar uma classe passiva – vide Figura 12 - Criar Classe Passiva • Incluir I/O Libraries – vide Figura 4 - Incluir I/O Libraries • Criar operação principal – vide Figura 13 - Criar Operação

• Definir a operação principal como global – vide Figura 16 - Definir O Tipo de Operação como Global

• Criar parâmetros – vide Figura 14 - Definir Parâmetros

• Inserir código na operação principal – vide Figura 15 - Definir Código da Operação

• Criar nova operação – vide Figura 13 - Criar Operação

• Definir uma operação como uma trigger – vide Figura 33 - Definir uma Operação do Tipo Trigger

• Criar a máquina de estado – vide Figura 28 - Criar Diagrama de Estado

• Acrescentar o código para cada transição – vide Figura 15 - Definir Código da Operação

(24)

• Definir a trigger que será usada em cada transição – vide Figura 34 - Definir a Trigger a ser usada na Transição

• Adicionar o teste a ser feito nesta transição – vide Figura 35 - Adicionar a condição de execução da Transição

• Criar componente – vide Figura 5 - Criar Componente • Torná-lo ativo – vide Figura 6 - Tornar Componente Ativo • Compilar o programa

• Desabilitar o opção Attach to target on startup vide Figura 19 - Desabilitar a Opção Attach to Target on startup

• Criar novo processador – vide Figura 9 - Criar Processador

• Tornar o Processador ativo – vide Figura 10 - Tornar o Processador Ativo • Rodar o programa

(25)

Figura 34 - Definir a Trigger a ser usada na Transição

Figura 35 - Adicionar a condição de execução da Transição

(26)

Figura 36 - Diagrama de Estado da Cápsula LockSystem

A seguir veremos a execução do programa.

(27)

5.

Warm Up 5 - Battleship

Na realização do Warm Up 5 – Battleship foi o primeiro exercício onde encontrei dificuldades uma vez que o tutorial é sucinto. Mas com a ajuda dos monitores foi possível realizar o Warm UP. Através deste Warm Up foi possível aprender como criar ligar cápsulas e utilizar o Timing Service Library.

Para o desenvolvimento deste exercício seguiu-se os seguintes passos • Abrir um modelo já existente no diretório c:\MRRT\WarmUp • Salvar o modelo

• Criar uma cápsula chamada World – vide Figura 1 - Criar Cápsula • Criar uma cápsula chamada BattleShip – vide Figura 1 - Criar Cápsula

• Criar o diagrama de estado de para esta cápsula a partir do diagrama de sequência dado – vide Figura 28 - Criar Diagrama de Estado

• Acrescentar uma porta e um timer na estrutura da cápsula – vide Figura 39 - Diagrama de Estrutura da Cápsula BattleShip

• Colocar a cápsula Ocean já definida e a cápsula Battleship como capsule role da cápsula World – vide Figura 38 - Diagrama de Estado da Cápsula Battleship • Criar as dependência entre as cápsulas Battlship, Ocean e o RTTimeSpec – vide

Figura 41 - Dependência entre as classes BattleShip, Ocean e o Timer • Criar Componente – vide Figura 5 - Criar Componente

• Criar processador – vide Figura 9 - Criar Processador

• Rodar o programa – vide Figura 42 - Tela de Processamento do Warm Up 5 • Checar se a execução foi correta através do diagrama de sequência gerado no

(28)

Figura 38 - Diagrama de Estado da Cápsula Battleship

(29)

Figura 40 - Diagrama de Estrutura da Cápsula World

Figura 41 - Dependência entre as classes BattleShip, Ocean e o Timer

(30)

Figura 42 - Tela de Processamento do Warm Up 5

Figura 41 – Diagrama de Sequência gera pelo processamento Warm Up 5

6.

Warm Up 6 - Traffic System

Na realização do Warm Up 6 – Traffic System foi reforçado a maneira de criar container de cápsulas, adicionando suas estruturas e adicionar estas cápsulas no container.

Para o desenvolvimento deste exercício seguiu-se os seguintes passos • Abrir um modelo já existente no diretório c:\MRRT\WarmUp • Salvar o modelo

• Criar uma cápsula chamada Controller – vide Figura 1 - Criar Cápsula

• Criar o diagrama de estado da cápsula Controller baseado no diagrama de sequência dado – vide Figura 44 - Diagrama de Estrutura da Cápsula Controller • Definir a estrutura da cápsula controller, incluindo as portas e o timer – vide

Figura 44 - Diagrama de Estrutura da Cápsula Controller • Criar um container de cápsulas chamada Intersection • Adicionar uma capsule role baseada na cápsula Controller • Adiconar 4 capsule role baseada na cápsula TrafficLight

• Conectar as as cápsulas TrafficLight ao controler – vide Figura 45 - Diagrama de Estrutura do Container Intersection

• Criar componente, vide Figura 5 - Criar Componente • Criar processador – vide Figura 9 - Criar Processador

(31)

• Rodar o programa – vide Figura 46 - Tela de Processamento do Warm Up 6

Figura 43 - Diagrama de Estado da Cápsula Controller

(32)

Figura 45 - Diagrama de Estrutura do Container Intersection

A seguir veremos a execução do programa.

(33)

7.

Warm Up 7 - Client/Server

Na realização do Warm Up 7 – Client/Server foi possível aprender como instanciar cápsula dinamicamente e como instanciar uma cápsula importada em tempo de execução (utilização de frame).

Para o desenvolvimento deste exercício seguiu-se os seguintes passos • Abrir um modelo já existente no diretório c:\MRRT\WarmUp • Salvar o modelo

• Alterar a capsule role Client para o tipo Optional no container de cápsula TheSystem – vide Figura 47 - Cápsula Client com a Opção do Tipo Optional • Adicionar uma transição no diagrama de estado da cápsula TheSystem e

acrescentar o código para para encarnar a cápsula Client – vide Figura 48 - Transição Inicial da Cápsula TheSystem

• Criar componente, vide Figura 5 - Criar Componente • Criar processador – vide Figura 9 - Criar Processador

• Rodar o programa – vide Figura 46 - Tela de Processamento do Warm Up 6

(34)

Figura 48 - Transição Inicial da Cápsula TheSystem

A seguir veremos a execução do programa.

(35)

A segunda parte deste Warm Up mostra como utilizar cápsulas importadas, com o objetivo de otimizar o uso memória no sistema.

Para o desenvolvimento deste exercício seguiu-se os seguintes passos • Salvar o modelo como ClientServerImported

• Alterar a capsule role Client para o tipo Plug-in no container de cápsula TheSystem – vide Figura 47 - Cápsula Client com a Opção do Tipo Optional • Adicionar um novo client na estrutura do TheSystem – vide Figura 47 - Cápsula

Client com a Opção do Tipo Optional

• Altera o código da Transição inicial - – vide Figura 47 - Cápsula Client com a Opção do Tipo Optional

• Rodar o programa – vide Figura 46 - Tela de Processamento do Warm Up 6

(36)

Figura 51- Inserir novo client

(37)

Figura 53 - Processamento do Warm Up 7

8.

Warm Up 8 - RQA-RT

Na realização do Warm Up 8 – RQA-RT foi possível aprender a criar um diagrama de sequência a partir de um modelo existente e criar um teste controlado deste diagrama de sequêmcia.

Para o desenvolvimento deste exercício seguiu-se os seguintes passos

• Abrir um modelo ClientServer já existente no diretório c:\MRRT\WarmUp • Salvar o modelo

• Criar uma package – vide Figura 54 - Criar Package • Criar um diagrama de colaboração – vide Figura 56

• Arrastar as cápsulas Client e Server para este diagrama e fazer a conexão entre eles – vide Figura 55

• Criar um Diagrama de Sequência utilizando as cápsulas Client e Server – vide Figura 57

• Criar mensagens assíncrona conforme o Diagrama de Sequência apresentado e setar as configurações de FromPort, ToPort e Signal – vide Figura 58

(38)

• Setar o TargetConfiguration

• Criar um processador chamado TestProc

• Clicar com o botão direito do mouse no Diagrama de Sequência e selecionar Verify Behavior e fazer as seguintes configurações:

o Selecionar a opção Reuse selected component, e colocar o processador a ser usado – vide Figura 60

o Selecionar ClientR1 na opção Select Drivers – vide Figura 61

• Limpar Store results with generated harness e setar o arquivo para saída do teste – vide Erro! Fonte de referência não encontrada.

• Clicar no botão verify

• Checar o Diagrama gerado - vide Figura 63

(39)

Figura 55 – Conexão entre Client e Server

(40)

Figura 57 - Criar Diagrama de Sequência

(41)

Figura 59 - Diagrama de Sequência

(42)

Figura 61 - Selecionar opção de driver

(43)

Figura 63 - Resultado da verificação

9.

Conclusão

A realização dos 8 Warm Ups é somente o início da familiarização com o Rational Rose Real Time e com os conceitos do desenvolvimento dirigido a modelo, o que exige a continuidade dos estudos nesta área.

O modelo do CSC – CSG Gerenciamento de Exceções, do qual faço parte da equipe de projeto, será um grande desafio para por emprática os conceitos e técnicas demonstradas neste exercício.

Referências

Documentos relacionados

- Mulheres pós-menopáusicas mais jovens e homens entre 50-69 anos com fatores de risco para osteoporose (um maior ou dois menores)*.. (Grau de

RESUMO - O trabalho objetivou avaliar a qualidade das sementes de arroz utilizadas pelos agricultores em cinco municípios (Matupá, Novo Mundo, Nova Guarita, Alta Floresta e Terra

Cuidado com o homem que se esforça muito para aprender alguma coisa, aprende e depois nota que não está mais inteligente do que antes.. Ele é cheio de um ressentimento assassino

Entender a migração de votos entre os candidatos, assim como o perfil dos eleitores que mudaram seus votos entre os dois turnos, aju‑ dará a esclarecer por que um eleitor deixou

Como professora- pesquisadora, e para além dela, eu via dentro do espectro de estudantes negros – com o qual iniciava esta pesquisa – um grupo ainda mais

Para armazenar o Pulverizador de Pressão esvazie sempre o aparelho através do pulverizador, mesmo após o ter limpo com água limpa.. Armazene-o num local seguro e protegido

A montagem da programação de abastecimento é um dos processos mais trabalhosos e complexos, pois consiste em determinar quais são os clientes que realmente precisam ser abastecidos

A cinco minutos de carro do Aeroporto Internacional de Dubai, este hotel fica próximo a um campo de golfe cinco estrelas e do Deira City Shopping Center.. Deira City Centre