TraCI Hub

De Wiki-II

O SUMO permite que apenas um cliente o controle (ver Dicas_sobre_uso_do_SUMO#Comunicação_através_do_TraCI). O TraCI Hub permite que mais clientes o façam, usando o mesmo protocolo, de maneira transparente.

O TraCI Hub está disponível no GitHub através do seguinte endereço:

https://github.com/maslab-ufrgs/traci-hub

Tabela de conteúdo

Uso

O TraCI Hub recebe, na linha de comando, as portas de conexão com o SUMO e com os clientes. Primeiro se conecta com o SUMO, depois com os clientes, e inicia a simulação. A cada timestep da simulação, permite que todos os clientes ativos se comuniquem com o SUMO, redirecionando a maior parte dos comandos e respostas. A exceção são os comandos pedindo a execução de timesteps na simulação, e pedindo o término dela. A simulação termina quando todos os clientes pedem seu término.

Para mais detalhes das opções, utilizar o programa com a opção '--help':

  ./tracihub --help

Interação com os Clientes

Os comandos recebidos dos clientes caem em três categorias, de acordo com o comportamento do Hub:

  • Avanço na Simulação (SIMSTEP2)
  • Término da Conexão (CLOSE)
  • Outros

Avanço na Simulação

Quando um cliente pede que a simulação avance, é congelado até que o tempo alvo seja atingido. Por exemplo: pedindo que a simulação avance um timestep, a "sessão" do cliente termina, os demais clientes podem agir durante esse timestep e, após a execução desse timestep, o cliente é reativado e pode agir novamente. Caso peça que a simulação avance até o tempo 10000 (ms), o cliente é congelado e, assim que um timestep for executado levando a simulação ao tempo 10000 ou maior, o cliente é ativado.

Caso o SUMO responda com erro à execução de um timestep, todos os clientes conectados recebem essa resposta, independente de seu tempo alvo de espera.

Término da Conexão

Quando um cliente pede pelo término da conexão, ele recebe a resposta normal de término do protocolo TraCI e é desconectado. Os outros clientes ainda conectados, porém, podem continuar a simulação.

Outros

Todos os demais comandos são redirecionados ao SUMO, e suas respostas são redirecionadas diretamente ao cliente.

Recursos não implementados

Subscriptions

O TraCI permite que o cliente tenha subscriptions a certos valores (e.g. a ocupação do link c/ id "1"), que serão enviados na resposta a cada comando SIMSTEP2.

Atualmente, o TraCI Hub não lida com as subscriptions. Seria necessário manter uma lista de subscriptions para cada cliente, filtrando as respostas ao SIMSTEP2 ao redirecioná-las.

Ferramentas pessoais