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