Skip to content
Gabriel edited this page Aug 21, 2021 · 1 revision

O ambiente de execução do NeonFC

Com os eventos causado pela pandemia de COVID19 em 2020, as competições do VSSS foram realizadas de forma online. Para que os times tivessem o ambiente com as configurações necessárias para que suas estratégias rodassem do jeito que deveriam na nuvem, foi decidido que o código deveria ser rodado em um ambiente encapsulado por alguma tecnologia de container. A Project Neon criou um ambiente usando docker para rodar o NeonFC que pode ser encontrado aqui.

Porém, as competições do VSSS dependem de variáveis externas, que muitas vezes podem ser mudadas durante a competição e estão fora do nosso controle. Visando facilitar a configuração dessas propriedades no código, sem ter de recompilar a imagem docker do NeonFC, nosso script de inicialização do container aceita algumas variáveis, descritas abaixo, para atender certas configurações do ambiente em que a partida está acontendo.

As variáveis

USE_REFEREE - Variável utilizada para informar o NeonFC se ele deve ou não considerar que o referee está sendo utilizado. Se sim, ele deve enviar e esperar receber respostas do mesmo. O valores possíveis para essa variável são 1 e 0 numéricos, indicando que o referee deve ser utilizado ou não, respectivamente.

MULTICAST_IP - Variável utilizada para saber para qual endereço de multicast o NeonFC deve se conectar, o valor padrão é 224.0.0.2. Se o FiraSim estiver rodando com um endereço diferente, basta verificar o endereço correto na interface.

REFEREE_IP - Endereço de IP do referee. Por padrão o valor dessa variável é 224.5.23.2. Se for algo diferente, o valor correto estará no JSON de configuração do referee.

REFEREE_PORT - Porta usada para a conexão com o referee, por padrão o valor é 10003. Se for algo diferente, o valor correto estará no JSON de configuração do referee.

HOST_IP - Endereço onde o FiraSim está rodando, por padrão o valor dessa variável é localhost. A informação correta está na configuração do FiraSim, caso o valor localhost não seja o correto.

VISION_PORT - Porta que o NeonFC vai escutar por informações de visão, por padrão o valor é 10002. Caso o valor seja diferente do padrão, a informação vai estar presente na interface do FiraSim.

COMMAND_PORT - Porta para o qual o NeonFC irá enviar instruções para os robôs, por padrão o valor é 20011. Caso esse valor não seja o correto, a informação vai estar presente na interface do FiraSim.

TEAM_COLOR - Cor do time, que será entendida pelo NeonFC como nossa cor. Os valores possíveis são blue e yellow.

Como passar essas variáveis?

Mais informações sobre como passar essas variáveis para o NeonFC podem ser contradas no repositório com a configuração do ambiente em que ele roda aqui.

O básico de uso, é após a invocação do script dockerrun.sh, passar como parâmetro uma string concatenando as variáveis que você quer alterar, com cada nova variável precedida de -e . Veja o exemplo abaixo:

./dockerrun.sh "-e USE_REFEREE=1 -e MULTICAST_IP=224.0.0.2 -e REFEREE_IP=224.5.23.2 -e REFEREE_PORT=10003 -e HOST_IP=localhost -e VISION_PORT=10002 -e COMMAND_PORT=20011 -e TEAM_COLOR=blue"