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. |