MAVkit é uma caixa de ferramentas C++ para MAVLink 2.0 em linha de comando.
Ele pode exibir , redirecionar , transmitir , registrar , reproduzir dados de e para diferentes tipos de interface ( Serial , UDP , TCP , Arquivo ).
MAVkit também é uma estrutura para programadores MAVLink. É construído em uma arquitetura modular onde cada módulo pode ser utilizado de forma independente dentro de outros projetos. Nesse caso, fornece um bloco MAVLink simples que pode ser substituído de acordo com o hardware de comunicação.
Projetado com baixa latência em mente, ele mantém os buffers de E/S protegidos contra overflows (levando à perda de dados) usando um loop de processamento de thread duplo por interface (leitura e processamento rápidos).
Nota: Certifique-se de usar o seguinte comando recursivo, há dois níveis de submódulo no mavlink.
git submodule update --init --recursive
Dependências : Dependências usuais Boost + MAVLink
mkdir build
cd build
cmake ..
make
O Mavkit está organizado em módulos chamados mensageiros . Um mensageiro pode receber e enviar mensagens para outras pessoas de forma totalmente simultânea.
Cada mensageiro pode ser um link serial, um soquete UDP, um arquivo de log,...
você deve especificar pelo menos um mensageiro (o primeiro) para a função de master . Este em particular será conectado duplexmente a todos os outros mensageiros criados então. Pelo contrário, os mensageiros secundários não estarão conectados entre si.
Aqui está um exemplo de duas instâncias do MAVkit, compostas respectivamente por 4 e 2 mensageiros e vinculadas entre eles através de UDP. Observe que os mestres estão conectados a todos os outros mensageiros, enquanto estes não estão vinculados entre eles.
Depois de construí-lo, você pode executar o MAVKit na linha de comando, especificando os mensageiros um após o outro.
O primeiro mensageiro assumirá o papel de mestre.
Argumentos:
ex: --tty /dev/ttyUSB0 57600
Argumentos:
ex: --udp_server 14550
Argumentos:
--udp_client 192.168.1.10 14550
Argumentos:
ex: --tcp_server 14550
Argumentos:
--tcp_client 192.168.1.10 14550
Salve as mensagens recebidas em arquivos .raw e .ts (.raw contém os dados brutos do mavlink, .ts contém o carimbo de data e hora para cada mensagem).
Sem argumentos.
--log
Reproduza o conteúdo dos arquivos .raw e .ts.
Argumentos:
ex: --file ../myLog 2.0 50
Mensagens de saída para stdout.
Sem argumentos.
--display
Você pode combinar quase quantos mensageiros desejar na linha de comando.
Exemplo :
./mavkit --tty 57600 /dev/ttyACM0 --udp_server 14550 --display --log --tcp_client 127.0.0.1 14551