Projeto

Geral

Perfil

Ações
  1. Protobuf

Vídeo explicativo do protobuf em nosso código: https://drive.google.com/file/d/1-fGsLKQ6otteJWLLcSji7mBGJWeeENkB/view?usp=sharing

OBS: O vídeo gravado em 2020 e alguns pontos já foram aprimorados.

Tópicos já aprimorados:

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.

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.

3. No vídeo não foi falado sobre codificação/decodificação de strings. Na verdade, é bem simples.

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.

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.

Atualizado por Gabriel Borges da Conceiçãoquase 3 anos · 3 revisões