Ntrip Rogério Takeshi Oyama Milton Hirokazu Shimabukuro Presidente Prudente SP, 05/11/2010
Tópicos Visão geral internet Aplicação Cliente Servidor HTTP Ntrip Threads RTCM Código desenvolvido
Internet - elementos 3 Kuor Kurose & Ross, 2006, AW
Arquitetura em camadas 4 Kurose & Ross, 2006, AW
Endereço IP 223.1.1.1 = 11011111 00000001 00000001 00000001 223 1 1 1 5 Kurose & Ross, 2006, AW
Sockets - comunicação 6 Kurose & Ross, 2006, AW
Atrasos d no =d proc +d fila +d trans +d prop Kurose & Ross, 2006, AW
Aplicação Cliente/Servidor 8 Kurose & Ross, 2006, AW
HTTP exemplo de requisição GET /somedir/page.html HTTP/1.1 Host: www.someschool.edu Connection: close User-agent: Mozilla/4.0 Accept-language:fr (extra carriage return, line feed) 9 Kurose & Ross, 2006, AW
Rádio Web - streaming http://savonet.sourceforge.net/doc-svn/quick_start.html 10
Protocolo Ntrip
Introdução - Networked Transport of RTCM via Internet Protocol (Ntrip) - é um protocolo na camada de aplicação que suporta a disseminação de dados GNSS (Global Navigation Satellite System) pela internet. É baseado no HTTP (Hypertext Transfer Protocol).
Introdução - Networked Transport of RTCM via Internet Protocol (Ntrip) - é designado a disseminar dados de correção diferencial ou outros tipos de dados GNSS tanto para usuários fixos ou móveis pela internet, permitindo conexões simultâneas de PC, Laptop, PDA ou receptores ao host transmissor. O Ntrip suporta acesso à Internet sem fio através de redes móveis como: GSM, GPRS, EDGE, ou UMTS.
Arquitetura - O Ntrip consiste de três componentes: - Ntrip Client - Ntrip Server - Ntrip Caster
Arquitetura Ntrip
Threads Ntrip
Introdução - Computadores também operam concorrentemente. Exemplo: um computador pode estar: - Compilando um programa - Recebendo uma mensagem - Tocando música
Threads: o que são? - Definição básica: É um fluxo único de controle sequencial dentro de um programa - Programas multithreaded: Múltiplos threads concorrentes de execução num único programa, realizando várias tarefas ao mesmo tempo. - Exemplo: BNC - Diferentes threads podem executar em diferentes processadores, se disponíveis, ou compartilhar um processador único. - Diferentes threads no mesmo programa compartilham um ambiente global (memória, processador, registradores, etc.)
Threads http://www.dsc.ufcg.edu.br/~jacques/cursos/map/html/threads/threads1.html
Exemplos void *teste2() { while(1) { printf("b"); } } int main() { pthread_t thread_id2; pthread_create (&thread_id2, NULL, &teste2, NULL); while(1) printf("a"); }
Resultado Ntrip
Problemas - Impossível prever sua execução - O sistema operacional que controla e decide qual thread será executada - Dificuldade para debug - Dificuldade em reproduzir o estado que causou o problema - Acesso e modificação de dados compartilhados - Uma thread pode acessar um dado durante sua atualização por outra thread
Exemplo Ntrip
Implementação