Projeto

Geral

Perfil

Protobuf » Histórico » Versão 3

Gabriel Borges da Conceição, 12/08/2021 23:14 h

1 1 Gabriel Borges da Conceição
# Protobuf
2
3
Vídeo explicativo do protobuf em nosso código: https://drive.google.com/file/d/1-fGsLKQ6otteJWLLcSji7mBGJWeeENkB/view?usp=sharing
4 2 Gabriel Borges da Conceição
5 3 Gabriel Borges da Conceição
OBS: O vídeo gravado em 2020 e alguns pontos já foram aprimorados.
6
7
Tópicos já aprimorados:
8
9
1. No vídeo é dito que não sabemos decodificar booleano, mas já temos isso em nosso código. Na verdade, codificação/decodificação de booleano é exatamente igual de qualquer Varint (int32, int64, uint32, uint64, sint32, sint64, bool, enum). E, existe uma VI específica para booleanos.
10
11
2. No vídeo também foi falado sobre o pacote de replacement ao simulador como sendo não utilizado, mas também já o utilizados amplamente, além da comunicação com o grSim ou erforce-simulator ser segundo o novo protocolo padrão SSL: https://github.com/RoboCup-SSL/ssl-simulation-protocol.
12
13
3. No vídeo não foi falado sobre codificação/decodificação de strings. Na verdade, é bem simples.
14
15
3.1. Para decodificar uma string, basta utilizar um Length-delimited decoder, informando a chave e aplicar a transformação byte array to string (já pronta em qualquer linguagem de programação). Isso ocorre na mensagem de visão da SSL (https://github.com/RoboCup-SSL/ssl-vision/tree/master/src/shared/proto) para informar o nome das equipes, por exemplo.
16
17
3.2. E, para codificar uma string, o processo é similar. Basta aplicar a transformação string to byte array (já pronta em qualquer linguagem de programação) e então utilizar um Length-delimited encoder para inserir sua string "codificada" ao array de bytes com as chaves anteriores já inseridas.