Processo Genérico para reconhecimento de Dispositivos a partir da Porta Serial

 

Relacionamentos: A abstração, inicialmente chamada de "Serial_Device" está relacionada diretamente pela abstração 
Device, essa relacionada com IO, permitindo a escolha pelo usuário da forma que será implementado o acesso à porta serial. Na família Device houve a necessidade da criação de um novo membro chamado de "Serial_Device", que deriva de "Basic_Device" para interagir com os dispositivos periféricos. Foi necessário uma alteração na família Device. Foi criada a abstração Bus_Device que adquiriu o comportamento antes pertencente a Basic_Device, já que o conceito de Bus não faz sentido, a principio, para o Serial_Device. Logo o Basic_Device não o deveria utilizar.

 

Descrição do Sistema: O sistema consiste em uma aplicação qualquer que faça uso da porta serial e ao ser chamada ativa o Serial_Device para ser estabelecida a comunicação entre o sistema e o dispositivo.
Caso haja um dispositivo e esse for reconhecido, ele irá enviar dados que serão recebidos pela aplicação. Os 
dispositivos conectados a porta serial serão tratados como dispositivo genérico(ex: GPS). Através dos dados fornecidos pelo dispositivo, o Serial_Device irá analisar os dados de entrada através da Uart para então fazer o reconhecimento e a comunicação com o dispositivo. Nesse caso o dispositivo terá sido reconhecido, e poderá atuar no sistema operacional, caso contrário é retornada uma mensagem de erro pelo sistema informando que deve ser incluída a biblioteca desse dispositivo.

 

Descrição dos Metodos:

Na Classe Uart 
get: Le um byte da uart e verifica a integridade através do bit de paridade. Enquanto a palavra estiver incorreta,
é pedida a retransmissão dos dados. Retorna o endereço do registrador onde ficou armazenado o byte lido da uart.
set: Envia para um registrador um byte recebido como parâmetro.
reset: Ativa o dispositivo no sistema e retorna se foi possível estabelecer uma conexão.
interrupted: Ativa ou desativa o acesso da uart a interrupções. Esse método foi implementado na Uart, mais o device
não suporta.                                                                                                                                                

 

Na Classe Serial Device
in: Lê e trata o conteúdo do registrador informado pela uart. Passando uma palavra como parâmetro.
out: Envia para a uart o dado a ser transmitido. Passando uma palavra como parâmetro.
in: Lê e trata o conteúdo do registrador informado pela uart. Passando um dígito como parâmetro.
out: Envia para a uart o dado a ser transmitido. Passando um dígito como parâmetro.
configure: reseta a uart, inicializando e tentando reconhecer o dispositivo.
stat: retorna o estado do serial device.


 

Alterações no Rational Rose:

1) Mediators -> Node -> Uart
2) Abstractions -> IO -> Device -> Serial_Device
3) Diagrama de Componentes: Abstractions -> IO -> Device