- 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ção há mais de 3 anos · 3 revisões