Mudanças entre as edições de "Projeto de Estimador de Estado de Enlace - Semestre 2"
Linha 100: | Linha 100: | ||
*[https://projetos.inf.ufsc.br/arquivos_projetos/projeto_1566/Relat%F3rio%20Final-TCC2-RodrigoBoratti.pdf TCC sobre o Cooja] | *[https://projetos.inf.ufsc.br/arquivos_projetos/projeto_1566/Relat%F3rio%20Final-TCC2-RodrigoBoratti.pdf TCC sobre o Cooja] | ||
*[https://dl.acm.org/citation.cfm?id=2240123 Survey Estimador Estado de Link] | *[https://dl.acm.org/citation.cfm?id=2240123 Survey Estimador Estado de Link] | ||
− | *[www.ti.com/lit/ds/symlink/cc2420.pdf Radio cc2420] | + | *[http://www.ti.com/lit/ds/symlink/cc2420.pdf Radio cc2420] |
Edição das 11h13min de 10 de agosto de 2018
Espaço do Bolsista
- Assunto: Projeto de Estimador de estado de enlace
- Aluno: Nelson Espindola Alves
- Matricula: 141003075-0
Horário disponível
- Segunda-Feira - 13:30 às 15:30 (2h)
- Terça-Feira - 13:30 às 17:30 (4h)
- Quarta-feira - 9:40 às 11:40 e 15:20 às 17:30 (4h)
- Quinta feira - 7:30 às 11:30 e 13:30 às 17:30 (8h)
- Sexta-feira - 15:40 às 17:30 (2h)
Total = 20 hrs
Base de conhecimento
Este tópico foi idealizado com a intenção de juntar informações encontradas sobre o assunto do projeto para formar uma base de conhecimento para o bolsista atual e também para futuros estudantes do câmpus interessados sobre o assunto, seja para a continuação da mesma bolsa ou para um tcc.
O que é o Contiki
...
Download Contiki e VMWare Player
Para instalar o Contiki acesse:
Foi escolhido o software VMWare Player pra simular a maquina virtual do Contiki. O VMWare pode ser baixado em:
Instalação
Em breve...
Estrutura genérica da aplicação Contiki
PROCESS(process_name, "The string representation of the process name");
AUTOSTART_PROCESSES(&process_name);
PROCESS_THREAD(process_name, process_event_t, process_data_t){
PROCESS_BEGIN();
/*Execução do código*/
PROCESS_END();
}
Criando um makefile
Para cada código .c que for criado, é necessária a criar o arquivo que contém as instruções para as ferramentas de compilação da tarefa, o conhecido makefile. O arquivo makefile deve estar no mesmo diretório do código criado para a aplicação Contiki. A seguir, alguns passos de como criar o seu makefile: Em breve...
Iniciando a implementação
Process
Como visto anteriormente, o process é um método essencial para o funcionamento da aplicação. Nesta seção, iremos estar explicando melhor cada método da biblioteca process.h e como são implementados no Contiki.
Uma process_thread contém o código do processo. Nela há uma protothread que é invocada pelo escalonador de processos. A protothread é uma maneira de estruturar o código de modo que permita que o sistema execute outras atividades enquanto o código está aguardando que algum determinado evento aconteça.
Vamos agora para os métodos:
- PROCESS() -> Criador do processo.
- AUTOSTART_PROCESS() -> Inicia o processo automaticamente passado o seu nome por referência.
- PROCESS_BEGIN() -> Define o inicio de um processo.
- PROCESS_END() -> Define o fim de um processo.
- PROCESS_WAIT_EVENT() -> bloqueia o processo atualmente em execução até que o processo receba um evento.
- PROCESS_WAIT_EVENT_UNTIL() -> Necessita ser passada uma condição que deve ser verdadeira para chamar o processo.
- PROCESS_EXITHANDLER(handler) -> Especifica uma ação quando há uma saída do processo.
Timers
A utilização dos timers nos permitirá acionar eventos em um determinado momento, acelerando a transição de um estado para outro e automatizar um determinado processo ou tarefa.
No Contiki existem 4 tipos de timers:
- Simple timer: A aplicação deve conferir manualmente se o timer expirou. #include "sys/timer.h".
- Callback timer: Quanto o timer expira o callback chama uma determinada função. #include "sys/ctimer.h".
- Timer Event: O mesmo que acima, mas em vez de chamar uma função, quando o timer expira posta um evento sinalizando sua expiração. #include "sys/etimer.h".
- Real time timer: O módulo em tempo real lida com o agendamento e execução de tempo real tarefas. #include "sys/rtimer.h"
Clock Timer
A biblioteca clock é a interface entre o Contiki e a funcionalidade clock da plataforma especificada.
- CLOCK_SECOND - A biblioteca clock define esse macro para converter segundos na resolução de instante da plataforma.
Interface de sistema de arquivo do Contiki
A interface do sistema de arquivos Contiki (CFS) define uma API abstrata para ler diretórios e ler e gravar arquivos. A seguir alguns principais métodos e atributos da biblioteca.
- cfs_open (const char *name, int flags) - Abre um arquivo.
- cfs_close (int fd) - Fecha um arquivo.
- cfs_read (int fd, void *buf, unsigned int len) - Lê o dado de um arquivo aberto.
- cfs_write (int fd, const void *buf, unsigned int len) - Escreve dado em um arquivo aberto.
- cfs_seek (int fd, cfs_offset_t offset, int whence) - Procura uma posição especifica em um arquivo aberto.
- cfs_remove (const char *name) - Remove um arquivo.
- CFS_READ - Atributo que especifica ao cfs_open() que o arquivo aberto é para leitura.
- CFS_WRITE - Atributo que especifica ao cfs_open() que o arquivo aberto é para escrita.