Desenvolvimento do NTRIP Caster
O software implementado consiste em receber dados de uma porta serial, a qual estará conectada à estação base de RTK, e transmitir os dados de correção disponibilizados pela base através de internet para os clientes NTRIP, via protocolo de transporte TCP.
O software foi implementado com base no código aberto disponível em Lefebure.com, utilizando a linguagem de programação Visual Basic e Windows Forms. O código é composto por duas classes, uma que gerencia o funcionamento do Caster e outra que gerencia as conexões de clientes NTRIP.
Na classe de gerenciamento do Caster é onde ocorre a conexão com a porta serial e a criação do socket TCP. Na interface do software, a porta conectada e os dados da porta serial, como baud rate e data bits devem ser preenchidos igualmente a configuração da base. Quando a conexão é permitida, o código adiciona um evento DataReceiver, começa a escutar a porta serial e preencher um buffer. Em seguida, um TcpListener é instanciado e então é criado o socket servidor de comunicação TCP. Duas threads são criadas, uma listenerThread e uma processThread. A listenerThread trata os clientes conectados na porta TCP e a processThread processa o buffer preenchido pela porta serial e transmite as mensagens para os clientes TCP.
A classe de conexões de clientes NTRIP é uma classe model que implementa as funcionalidades que a classe de gerenciamento necessita para tratar cada conexão de cada cliente separadamente. Quando um novo cliente se conecta ao servidor TCP, o cliente segue o modelo desta classe. Nela há a implementação: do socket cliente de comunicação, método de envio de mensagens e as flags de leitura e conexão.
Uma vez que a conexão com a porta serial foi estabelecida, o software transmitirá as mensagens da base RTK para todos os clientes que estejam conectados através da porta TCP como um NTRIP Client.
Descrição das funcionalidades
O software foi dividido em cinco abas, sendo elas: Conexões, Estações, Usuários, Servidor e Logs. Cada aba apresenta o conjunto de informações na qual ela se refere e serão detalhadas abaixo:
A aba Conexões apresenta todos os clientes TCP que estão conectados à estação através do NTRIP Caster no momento. São apresentados os dados do usuário, a data que teve início a conexão, em qual estação ele está conectado, qual é o agente de conexão, o IP e a porta do cliente e quantos bytes estão sendo trafegados.

Figura 7: Aba Conexões
A aba Estações apresenta os dados da estação NTRIP que foi criada. Nela são apresentados os dados da estação base, qual o formato de mensagens transmitidas e qual o sistema de navegação adotado.

Figura 8: Aba Estações
A aba Usuários permite criar e gerenciar os usuários. Somente usuários registrados nesta aba são permitidos conectar no Caster.

Figura 9: Aba Usuários
A aba Servidor apresenta os dados de conexão com a porta serial da estação base de RTK. O campo Estação deve conter alguma estação-base cadastrada na aba Estações e os campos baud rate e data bits devem ser os mesmos que a estação base de RTK conectada.

Figura 10: Aba Servidor
E por fim, a aba Logs que apresenta as principais informações do Caster e de clientes.
Os dados de Estações e Usuários também podem ser carregados através de arquivos-texto usando o botão “Carregar do arquivo” e também podem ser salvos através do botão “Salvar” na respectiva aba. As configurações gerais do software são salvas no arquivo “Settings.txt” sempre ao executá-lo.
Para confirmar que o NTRIP Caster está aceitando conexões de clientes, foi utilizada a biblioteca RTKLIB e o software RTKNAVI, apontando para o endereço de loopback (127.0.0.1). Caso a comunicação esteja correta, será apresentada imagem similar à mostrada na Figura 11:

Figura 11: Validação do servidor NTRIP Caster
Validação do servidor NTRIP Caster
Para validar o aplicativo desenvolvido como servidor NTRIP Caster foi utilizado o software RTKNAVI da biblioteca RTKLib. Através deste software, foi realizada a conexão dos clientes ao servidor de streaming NTRIP Caster para validar o recebimento dos dados da estação Trimble que estavam sendo disponibilizados no servidor via comunicação serial. Os passos para configuração do cliente NTRIP Caster no RTKNAVI são:
-
Abrir o aplicativo RTKNAVI, clicar no botão “I” (sigla de Input) para acessar a janela de configuração:
Figura 12: Tela inicial do RTKNAVI
-
Selecionar a opção “2 – Base Station”, no campo “Type” selecionar “NTRIP Client”, no campo “Format” selecionar RTCM 2 e, por fim, clicar em “...”:

Figura 13: Configuração do cliente RTK NAVI (Parte 1)
-
No campo “NTRIP Caster Host” digitar o endereço IP do servidor NTRIP Caster que se deseja conectar, definir no campo "Port" a porta 5000 e no campo “MountPoint” digitar o nome da estação base configurada no servidor, no caso “EstacaoBase”. Por fim, entrar com usuário e senha previamente cadastrados no servidor e clicar em OK duas vezes retornando à tela inicial do RTKNAVI:

Figura 14: Configuração do cliente RTK NAVI (Parte 2)
-
Para iniciar a comunicação, clicar na Opção “Start”. Para avaliar os pacotes recebidos, abrir a opção “RTK Monitor”:

Figura 15: Visualização dos dados recebidos pelo Cliente, via RTK Monitor
