Equipe-3
Integrantes
- Andreza
- Alline
- Cristian Ritter
- Evander
Descrição do Trabalho
Aplicativo desenvolvido em plataforma C integrado a circuito de sensores e de controle externos para estações refrigeradoras de ar. O sistema gerenciará os equipamentos, ligando e desligando de acordo com as configurações programadas no sistema.
O sistema permitirá por meio de sensores a monitoração e o controle da temperatura de uma (ou até um limite de 10) salas. Permitirá também a programação (individualmente por sala) de horários de funcionamento automatizado do sistema.
Definições basicas do sistema
Configurações do sistema
- Sala ID;
- Descrição da sala (somente texto descritivo)
- ID do módulo de controle do refrigerador
- Setpoints de temperatura máximo e mínimo que serão monitorados e controlados pelo gerenciador (individualizados por sala.
- Horários para ligar e desligar o sistema (individualizados por sala).
Funcionalidades
- Visualização das salas cadastradas;
- Controle remoto das salas em três modalidades: LIGADO, DESLIGADO ou AUTOMÁTICO (que opera conforme configuração de setpoint e programação de horário).
- Configuração das salas:
-> inserir sala;
-> remover sala;
-> editar dados de uma sala;
-> reinicializar todas as configurações apagando o arquivo de dados;
- Log completo composto de:
-> Horário dos eventos de POWER ON e POWER OFF dos equipamentos;
-> Registros da leitura de temperatura das salas realizados a cada evento e em certos intervalos de tempo pré-definidos;
-> Registro do modo de operação (automático ou manual) na ocorrência dos eventos;
Obs: Todas as configurações ficaram armazenadas no arquivo salas.cfg na pasta em que o aplicativo estiver rodando.
Obs2: O log fica registrado no arquivo 'arquivo.log', e será visualizado por um editor do sistema operacional startado pelo próprio gerenciador.
Cronograma de atividades desenvolvidas:
Avaliação de modelos de aplicativos
Optamos por um aplicativo único que faça tanto a gerência quanto a configuração do sistema, sendo internamente independente no entanto integrado em um único executável. A execução será feita com a opção de configuração.
Ex:
root@linux: ./sistema //roda o aplicativo no modo operacional
root@linux: ./sistema /config //roda o aplicativo no modo configuração
Apesar destas opções, o sistema permitirá a navegação entre estes dois modos pelo menu interno.
Desenvolver interface do aplicativo
Foi desenvolvida uma interface simples e amigável que permite a monitoração do funcionamento do sistema, execução de comandos operacionais simples e a alteração de configurações com facilidade mesmo em uma interface de modo texto.
Desenvolver sistemas logicos relacionados ao arquivo de configuração
-Foram desenvolvidas subrotinas que contemplam as operações de visualização da configuração das salas, adição de novas configurações, e também remoção de salas. -Foram desenvolvidas subrotinas que comtemplam rotinas operacionais como atualização do status do sistema e apresentam na interface. -Estão sendo desenvolvidas as funções que criam e adicionam dados ao log.
Integração das subrotinas no código principal
Ao passo que são desenvolvidas, as funções estão sendo integradas no aplicativo de modo a deixar a estrutura de gerencia de configurações semi-finalizada; Próximos passos incluem a programação relacionada a sensores e integração com dispositivos de hardware, conversores A/D etc.
Adição de funcionalidades especiais
[ATUALIZADO 26/11/14] Foi implementada funcionalidade que permite a atualização do status de sistema simultaneamente com uma entrada de seleção de menu.
[Atualizado 26/11/14] Foi implementado um sistema de liga-desliga com base em horários programáveis;
Verificando viabilidade de programar o sistema com horário de operação, com hora para ligar e desligar, discutindo necessidade de programar multiplos horários. (atualização -> adicionados dados de horário para ligar e desligar ao código-fonte);
Atividades delegadas
A divisão primária das tarefas ficou assim fracionada:
As integrantes da equipe Andressa e Alline priorizarão a elaboração dos códigos de funções especificas solicitadas de acordo com a necessidade e atualização da WiKi com o andamento do projeto.
Os integrantes Evander e Cristian irão trabalhar em assuntos relacionados a interface e criação do código principal, encaminhando para a equipe de desenvolvimento (Andressa / Alline) as requisições de funções a serem utiizadas de acordo com a necessidade, além de executar testes no código em busca de erros.
Questões alheias ao que está estabelecido acima, serão resolvidas pelo grupo, ou delegadas conforme a necessidade.
Abaixo seguem algumas tarefas que serão (ou foram) desenvolvidas no decorrer da timeline de desenvolvimento do projeto pelas equipes:
Andreza e Alline
Implementar o codigo para as funções de:
-criação do arquivo de log;
-reinicialização do arquivo de log (reset)
Conforme a descrição de modelo abaixo...
Usaremos como base o cabeçalho de funções abaixo:
log_add(char sala_id, int evento, int modo_operacao, int temp){ // evento(0->desl 1->liga) modo_operacao(0->manual 1->auto)
//programacao....
} reinicializar_log(){
//programacao....
}
Cristian / Evander
-Teste da interface do programa;
-Ajustes na interface para correção de erros encontrados;
-Elaborar tratamento de entradas no código para evitar que dados fora do range operacional sejam inseridos durante a configuração;
Em princípio, a interface de configuração ficou assim definida:
╔════════════════════════════════════════════════════════════════════════════════════════════════════════════╗ ║ ║ ║ SISTEMA DE GERENCIAMENTO DE REFRIGERAÇÃO ║ ║ UTILITARIO DE CONFIGURAÇÃO ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ Digite o numero da opção referente a tarefa que você deseja realizar: ║ ║ ║ ║ 1 - Visualizar salas cadastradas ║ ║ 2 - Adicionar sala ║ ║ 3 - Editar sala ║ ║ 4 - Remover sala ║ ║ 5 - Remover todas as salas e configurações atuais ║ ║ 6 - Alterar para modo operacional ║ ║ 7 - Fechar o aplicativo ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╚════════════════════════════════════════════════════════════════════════════════════════════════════════════╝
╔════════════════════════════════════════════════════════════════════════════════════════════════════════════╗ ║ ║ ║ SISTEMA DE GERENCIAMENTO DE REFRIGERAÇÃO ║ ║ SALAS CADASTRADAS NO SISTEMA ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ Sala_ID | Descrição | Temp_máx | Temp_min | Sensor ID | Funcionamento ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╚════════════════════════════════════════════════════════════════════════════════════════════════════════════╝
Pressione ENTER para continuar
╔════════════════════════════════════════════════════════════════════════════════════════════════════════════╗ ║ ║ ║ SISTEMA DE GERENCIAMENTO DE REFRIGERAÇÃO ║ ║ SALAS CADASTRADAS NO SISTEMA ║ ║ ║ ║ Digite o ID da sala que deseja editar ou 'cancelar': Sala02 ║ ║ ║ ║ O que você deseja alterar? 1-Descrição | 2-Temp_max | 3-Temp_min | 4-Sensor_ID: 5-Hora ON 6-Hora OFF 5 ║ ║ ║ ║ Sala_ID | Descrição | Temp_máx | Temp_min | Sensor ID | Funcionamento ║ ║ ║ ║ ║ ║ Sala02 | Sala_dois | 25 | 22 | 6b | 07:30 - 11:30 ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╚════════════════════════════════════════════════════════════════════════════════════════════════════════════╝
╔════════════════════════════════════════════════════════════════════════════════════════════════════════════╗ ║ ║ ║ SISTEMA DE GERENCIAMENTO DE REFRIGERAÇÃO ║ ║ MODO OPERACIONAL ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ Digite o numero da opção referente a tarefa que você deseja realizar: ║ ║ ║ ║ 1 - Visualizar status atual do sistema ║ ║ 2 - Visualizar registro de log ║ ║ 3 - Reinicializar registro de log (todos os registros serão perdidos) ║ ║ 4 - Ir para modo de configuração ║ ║ 5 - Encerrar a execução e sair ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╚════════════════════════════════════════════════════════════════════════════════════════════════════════════╝
- Verificar possibilidade de aprimoramento na interface de Modo operacional
--Permitir a visualização em tempo real de status, enquanto aguarda o pressionamento de alguma tecla de seleção de menu (?)