Skip to content

Aimsun Next API Entrada/Saída de Veículos (Meso)

Desabilitar Geração Normal de Veículos

Em C++ e Python

Explicação

Desabilita a geração com base na demanda de trânsito. Todos os veículos simulados devem ser adicionados usando um processo de entrada externo, por exemplo, utilizando as funções da API.

Formato
void AMesoDisableGeneration (void * simhandler)
Parâmetros
  • simhandler: manipulador do simulador

Finalizar a geração de demanda definida pelo usuário

Em C++ e Python

Explicação

Esta função deve ser chamada uma vez que todos os veículos tenham sido inseridos no modelo.

Formato
    int AMesoFinishTripsConfiguration (void * simhandler)
Parâmetros
  • simhandler: manipulador do simulador
Saídas
  • Número de viagens na demanda

Adicionar um Veículo na Simulação

Em C++ e Python

Explicação

Adiciona um novo veículo na simulação. Esta função pode ser usada ao adicionar um pequeno número de veículos ou adicionar um veículo durante a simulação.

Formato
int AMesoAddVehicle(void * simhandler, int vehTypePos, double time, int originId, int destinationId, int generationSeed, int selectionSeed)
Parâmetros
  • simhandler: manipulador do simulador
  • vehTypePos: índice do tipo de veículo, de 0 a AMesoNumberVehicles()-1
  • time: horário de entrada
  • originId: identificador do centróide de origem
  • destinationId: identificador do centróide de destino
  • generationSeed: semente usada para criar propriedades do veículo, com -1 uma semente automática é criada
  • selectionSeed: semente usada para selecionar o caminho, com -1 uma semente automática é criada
Saída
  • > 0: ID do veículo correto
  • < 0: Erro

Adicionar um Veículo em uma Simulação DUE

Em C++ e Python

Explicação

Adiciona um novo veículo na simulação. É uma versão otimizada da função acima e pode ser usada para adicionar um grande número de veículos desde o início ou no meio da simulação.

Formato
int AMesoAddTrip (void * simhandler, int vehTypePos, double time, int originIndex, int destinationIndex, int generationSeed, int selectionSeed, double valueOfTime)
Parâmetros
  • simhandler: manipulador do simulador
  • vehTypePos: índice do tipo de veículo, de 0 a AMesoNumberVehicles()-1
  • time: horário de entrada
  • originIndex: índice do centróide de origem, de 0 a AMesoGetNumberOriginCentroids -1
  • destinationIndex: índice do centróide de destino, de 0 a AMesoGetNumberDestinationCentroids -1
  • generationSeed: semente usada para criar propriedades do veículo, com -1 uma semente automática é criada
  • selectionSeed: semente usada para selecionar o caminho, com -1 uma semente automática é criada
  • valueOfTime: valor do tempo usado por este veículo
Saída
  • > 0: ID do veículo correto
  • < 0: Erro

Atualizar horário de entrada do veículo

Em C++ e Python

Explicação

Atualiza o horário de entrada do veículo

Formato
int AMesoUpdateTripTime (void * simhandler, int id, double time)
Parâmetros
  • simhandler: manipulador do simulador
  • id: identificador do veículo
  • time: horário de entrada
Saída
  • ≥ 0: Correto
  • < 0: Erro

Inserir um novo veículo de transporte público

Em C++ e Python

Explicação

Insere um novo veículo de transporte público usando uma linha de transporte público e localização predefinidas

Formato
unsigned int AMesoAddVehicleAsInitialStatePT(void * simhandler, int vehType, int idline, int currentSectionid)
Parâmetros
  • simhandler: manipulador do simulador
  • vehType: índice do tipo de veículo, de 0 a AMesoNumberVehicles()-1
  • idline: identificador da linha de transporte público
  • currentSectionid: identificador da seção
Saída
  • 0 quando o veículo não pode ser inserido, >0 será o ID do veículo

Remover veículo da rede

Em C++ e Python

Explicação

Remove um veículo existente da rede. Existem algumas restrições ao usar esta função: - Esta função não pode ser chamada nas seguintes chamadas de retorno: MesoAPINewVehicleSystem, MesoAPINewVehicleNetwork, MesoAPIFinishVehicleNetwork, MesoAPIEnterVehicleSection, MesoAPIExitVehicleSection, MesoAPIVehicleReadyForSection. Portanto, em qualquer função em que o manipulador do veículo seja parte dos parâmetros de entrada. - Apenas veículos que estão dentro da rede podem ser removidos. Aqueles veículos dentro de uma fila virtual não podem ser removidos. - Somente aqueles veículos que estão prontos para seguir em frente (estão na frente da fila) podem ser removidos. E finalmente, quando o veículo está em uma seção, ele pode ser removido apenas quando o veículo deve ser considerado na fila. Isso significa que seu tempo de viagem na seção é maior que o tempo de chegada em fila pré-calculado.

O parâmetro de entrada do manipulador de veículos é de responsabilidade do usuário mantê-lo dentro da API. Por exemplo, pode declarar um dicionário vehicles = dict() e então gerenciar esse dicionário quando o veículo for inserido na rede usando MesoAPINewVehicleNetwork (vehicles[AMesoGetVehicleID(vehhandler)] = vehhandler) e quando o veículo sair da rede, MesoAPIFinishVehicleNetwork.

if normalOut and AMesoGetVehicleID(vehhandler) in vehicles:
    vehicles.pop(AMesoGetVehicleID(vehhandler))
o filtro normalOut é usado porque quando o veículo é removido usando esta função, o callback MesoAPIFinishVehicleNetwork também é chamado com normalOut definido como False.

Formato
bool AMesoRemoveVehicle(void * simhandler, void * vehhandler)
Parâmetros
  • simhandler: manipulador do simulador
  • vehhandler: manipulador do veículo
Saída
  • ≥ Verdadeiro: veículo foi removido
  • < Falso: veículo não foi removido

Inserir um novo veículo em uma seção

Em C++ e Python

Explicação

Insere um novo veículo em uma seção. O caminho é de uma seção para outra seção. A outra seção pode ser a seção de origem também.

Formato
unsigned int AMesoAddVehicleInSection(void* simhandler, int vehType, int fromSection, int toSection)
Parâmetros
  • simhandler: manipulador do simulador
  • vehType: índice do tipo de veículo, de 0 a AMesoNumberVehicles()-1
  • fromSection id da seção onde o veículo é inserido
  • toSection id da seção onde o veículo irá sair da rede
Saída
  • 0 quando o veículo não puder ser inserido, >0 será o ID do veículo