• Nenhum resultado encontrado

SegundoSILVA(2010) o desenvolvimento baseado em modelos “têm como objetivo geral abstrair os detalhes de implementação e de plataforma, focando assim na modelagem das regras do negócio”, ou seja, no funcionamento do sistema em si, que deve ser o aspecto mais relevante.

Com o objetivo de permitir o desenvolvimento de componentes desoftwarea partir do desenvolvimento baseado em modelos, o softwareMBDAUTO apresenta uma interface onde o usuário implementa, através de diagramas, o funcionamento de determinada apli-cação. Sendo que ao final gera todo o código necessário para que cada ECU possa realizar as funções que estão esquematizadas nos diagramas. Para que o usuário possa modelar o sistema, o programa faz uso de um diagrama de ECUs e de dois outros diagramas para cada ECU. O primeiro apresenta o fluxo de dados e o segundo apresenta o diagrama das atividades.

No diagrama de ECUs são representados os módulo presentes no sistema e as co-nexões dos barramentos de comunicação. Quanto ao diagrama de fluxo de dados, este representa como os sinais transitam dentro de determinada ECU, sendo que ele é consti-tuído de blocos que realizam a recepção, transmissão ou conversão de dados. Um exemplo pode ser visto na Fig. 21, onde os blocos de leitura do sensor fornecem respectivamente os valores da rotação do motor, nível de combustível e velocidade do veículo. Esse valor é então empacotado pelo bloco J1939 que fornece os frames para o transmissor CAN.

O diagrama de atividades descreve o comportamento da ECU. Ele é construído utilizando as funcionalidades presentes no RTE e é desenvolvido por meio de um fluxo-grama. Este fluxograma é utilizado para construir a rotina da função main do programa.

Para exemplificar observe a Fig.22, nela estão apresentadas as funções que são utilizadas e qual a sequência lógica de execução destas funções.

A tela inicial do programa é apresentada na Fig. 19. Nesta tela existe uma seção

48 Capítulo 5. Implementação da arquitetura

com um menu onde são mostradas as ECUs que podem ser utilizadas e que são obtidas a partir de um arquivo de configuração. Além deste menu existe outro que lista os diagramas presentes no projeto até o momento.

Figura 19 – Tela inicial do software MBDAUTO.

Para adicionar novos blocos no diagrama, sejam eles de fluxo de dados, ECUs ou atividades, o usuário deve selecionar o bloco no menu de blocos e em seguida clicar no espaço em branco do diagrama. Para arrastar os blocos deve pressionar o botão direito com o cursor sobre o bloco e arrastar.

Executando um duplo clique sobre uma porta o usuário pode desenhar as conexões entre as portas. Se o duplo clique for em cima de um bloco do diagrama de atividade é aberta uma janela para configurar os argumentos e retorno da função. Clicando com o botão direito em cima do bloco ele é excluído.

No estado inicial do programa o usuário pode construir o sistema de um modo geral por meio do diagrama de ECUs, sendo que para isso deve selecionar o bloco da ECU a ser utilizado, posicionar na tela e fazer as conexões entre os blocos. Conforme são adicionados novos blocos de ECUs, os respectivos diagramas de fluxo de dados e de atividades são listados no menu Diagramas (Fig.20).

Para navegar entre os diagramas deve-se utilizar o menu que apresenta a lista de diagramas presentes no projeto. Quando um deles é selecionado, o diagrama é aberto e os respectivos blocos são listados no menu Blocos, estes blocos podem ser ECUs, de fluxo de dados ou de atividades dependendo do diagrama selecionado.

5.1. Software MBDAUTO 49

Figura 20 – Construção do diagrama de ECUs.

Cada um destes blocos estão listados dentro de um arquivo de configuração. Desta maneira, para acrescentar novas ECUs, blocos de fluxo de dados, ou funcionalidades pre-sentes no RTE, basta adicionar as informações do bloco no respectivo arquivo de confi-guração.

Neste arquivo é possível configurar algumas características, como por exemplo quais portas ele deve apresentar no diagrama e, no caso dos blocos do diagrama de ativi-dades, quais são os argumentos e tipos de retorno que determinada função apresenta.

Ao selecionar o diagrama de fluxo de dados de determinada ECU, será aberto o painel para construí-lo, conforme pode ser visto na Fig. 21. Ele deve ser construído de modo que indique caminho percorrido pelos sinais dentro de uma das ECUs do sistema.

Em sua construção cada bloco está associado a um conjunto de funções que podem ser utilizadas no diagrama de atividades.

Ao selecionar o diagrama de atividades, será aberto o painel para implementá-lo, conforme pode ser visto na Fig. 22. Ele é construído por meio de um fluxograma que representa as atividades que devem ser executadas dentro de cada ECU, sendo que em sua construção cada atividade corresponde aos serviços presentes no RTE.

50 Capítulo 5. Implementação da arquitetura

Figura 21 – Exemplo de diagrama de fluxo de dados.

Executando um duplo clique sobre o bloco de atividade é possível visualizar quais são os argumentos que a função possui, qual o seu tipo de retorno e a variável onde o valor de retorno é armazenado. Além disso cada uma destas informações podem ser configuradas conforme a necessidade da aplicação.

Quando ambos os diagramas (diagrama de fluxo de dados e diagrama de ativida-des) estão devidamente construídos, é possível gerar o código necessário para executar a funcionalidade que está representada nos diagramas.

Este código gerado, tem sua lógica construída a partir do diagrama de atividades, sendo que o algoritmo responsável por construir o código é dividido em duas etapas. Na primeira etapa as conexões entre cada atividade são mapeadas para indicar a ordem e em qual das possíveis ramificações dentro do diagrama esta função está localizada.

Em uma segunda etapa, o algoritmo procura por padrões no mapeamento destas conexões que permitem indicar se as funções ligadas a cada ramo estão dentro da função principal ou dentro de outras estruturas comowhile(), if() oudo-while(). É durante esta etapa que o código é efetivamente implementado. Um exemplo do código gerado para o diagrama de atividades que é apresentado na Fig.22 pode ser visto abaixo.

#i n c l u d e " c o n f i g . h "

v o i d main ( ) { i n t 1 6 temp ; config_ECU ( ) ;

5.1. Software MBDAUTO 51

c a n _ i n i t ( ) ;

can_set_baud ( 1 , 2 , 7 , 7 , 0 ) ; c a n _ s t a r t _ c o n t r o l e r ( ) ; w h i l e( 1 ) {

temp = s e n s o r ( 6 5 2 6 2 , 1 7 5 ) ;

update_ET1 ( 0 xFF , 0 xFF , temp , 0 xFF , 0 xFF , 0 xFF ) ; }

}

Figura 22 – Exemplo de diagrama de atividades.

Além do código principal também é gerado um outro de configuração que especifica quais serviços do RTE estarão disponíveis para a aplicação. Este arquivo é gerado a partir do diagrama de fluxo de dados, e é construído identificando quais blocos estão presentes neste diagrama e quais as mensagens da norma J1939 foram utilizadas. Um exemplo do código de configuração que foi gerado automaticamente a partir do diagrama da Fig. 21 é apresentado abaixo.

#d e f i n e SENSORES

#d e f i n e J1939

#d e f i n e EEC1

52 Capítulo 5. Implementação da arquitetura

#d e f i n e DD

#d e f i n e CCVS

#d e f i n e CAN

#d e f i n e CAN_TX

Documentos relacionados