Mudanças entre as edições de "Projeto de Estimador de Estado de Enlace - Semestre 2"

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
Linha 22: Linha 22:
 
Em breve...
 
Em breve...
  
=Consumindo as bibliotecas do Contiki=
+
=Estrutura genérica da aplicação Contiki=
A função ''PROCESS()'' estará presente praticamente em todos os códigos do Contiki.
 
  
 
<syntaxhighlight lang=c>
 
<syntaxhighlight lang=c>
PROCESS(hello_world_process, "Hello world process"); //PROCESS(nome do processo, "Nome que irá imprimir no console") -> Criando processo
+
PROCESS(process_name, "The string representation of the process name");  
AUTOSTART_PROCESSES(&hello_world_process); //Chamada do processo por referência "hello_world_process" 
+
AUTOSTART_PROCESSES(&process_name);  
  
PROCESS_THREAD(hello_world_process, ev, data){
+
PROCESS_THREAD(process_name, process_event_t, process_data_t){
 
  PROCESS_BEGIN();
 
  PROCESS_BEGIN();
  /*Abaixo vai o código*/
+
  /*Execução do código*/
printf("Hello, world\n");
 
printf("%s\n", hello);
 
printf("This is a value in hex 0x%02X, the same as %u\n", num, num);
 
/*Fim do código*/
 
 
  PROCESS_END();
 
  PROCESS_END();
 
}
 
}
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
 +
=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.
 +
 +
 +
 +
 +
=Referências=
 +
https://github.com/contiki-os/contiki/wiki/Contiki-Build-System  -> Criando makefile
 +
https://github.com/alignan/contiki/blob/master/core/sys/process.h -> Biblioteca process.h

Edição das 11h40min de 9 de agosto de 2018

Link para Semestre 1

https://wiki.sj.ifsc.edu.br/index.php/Projeto_de_Estimador_de_Estado_de_Enlace

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

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.



Referências

https://github.com/contiki-os/contiki/wiki/Contiki-Build-System -> Criando makefile https://github.com/alignan/contiki/blob/master/core/sys/process.h -> Biblioteca process.h