API Aimsun Next Prioridade de Transporte Público¶
Funções relacionadas à Prioridade de Transporte Público¶
Desativar Prioridade de Transporte Público em um Nodo¶
Em C++ e Python¶
Explicação¶
Define a interseção especificada para ignorar as prioridades de transporte público definidas.
Formato¶
int ECIDisableBusPreemptionNode(int ajunction)
Parâmetros¶
- ajunction: O ID da interseção onde a prioridade do transporte público será desativada.
Saída¶
- 0: Se a prioridade do ônibus foi desativada corretamente.
- < 0: Erro
Ativar Prioridade de Transporte Público em um Nodo¶
Em C++ e Python¶
Explicação¶
Define a interseção especificada para considerar as prioridades de transporte público definidas após terem sido previamente desativadas.
Formato¶
int ECIEnableBusPreemptionNode (int ajunction)
Parâmetros¶
- ajunction: O ID da interseção onde a prioridade de transporte público será considerada novamente.
Saída¶
- 0: Se a prioridade do ônibus foi ativada corretamente.
- < 0: Erro
Verificar o estado da Prioridade de Transporte Público em um Nodo¶
Em C++ e Python¶
Explicação¶
Retorna se as prioridades de transporte público definidas estão atualmente consideradas ou ignoradas.
Formato¶
int ECIIsBusPreemptionNodeEnabled (int ajunction)
Parâmetros¶
- ajunction: O ID da interseção onde a prioridade de transporte público será desativada.
Saída¶
- 1: Se as prioridades de ônibus são consideradas como definidas.
- 0: Se as prioridades de ônibus definidas foram desativadas.
- < 0: Erro
Obter o Número de Conjuntos de Prioridade¶
Em C++ e Python¶
Explicação¶
Obtém o número de conjuntos de prioridade para uma interseção no plano de controle atual.
Formato¶
int ECIGetNbPreemptionSets( int idJunction, double timeSta );
Parâmetros¶
- idJunction: Um identificador de interseção válido.
- timeSta: O tempo de simulação atual em segundos a partir da meia-noite, usado para encontrar o plano de controle que está sendo executado
Saída¶
- ≥ 0: Número de conjuntos de prioridade
- < 0: Erro
Obter os Parâmetros do Conjunto de Prioridade¶
Em C++ e Python¶
Explicação¶
Obtém os parâmetros do conjunto de prioridade para uma interseção no plano de controle atual.
Formato¶
int ECIGetPreemptionSetParameters( int idJunction, double timeSta, int index, double* delay, double *minDwell, double *reserve, double * inhibit, double *maxDwell, int *type );
Parâmetros¶
- idJunction: Um identificador de interseção válido.
- timeSta: O tempo de simulação atual em segundos a partir da meia-noite, usado para encontrar o plano de controle que está sendo executado
- index: Um valor entre 0 e o ECIGetNbPreemptionSets -1
Saída¶
- ≥0: Sem Erro
- delay: O número de segundos para atrasar o início do tempo de prioridade
- minDwell: A duração mínima em segundos da fase de retenção
- reserve: O tempo durante o qual qualquer outro pedido de prioridade é prevenido.
- inhibit: A duração em segundos do intervalo enquanto a ativação de qualquer fase que não seja a fase de prioridade solicitada é prevenida
- maxDwell: A duração máxima em segundos da fase de retenção
- type: O tipo de prioridade. 0 significa Alternativa, 1 significa Servir Todos
- < 0: Erro
Código de exemplo em Python¶
O seguinte código lê os primeiros parâmetros de prioridade do nodo 203 às 0:00:00 e, se forem lidos com sucesso, imprime o atraso lido:
delay = doublep()
minDwell = doublep()
reserve = doublep()
inhibit = doublep()
maxDwell = doublep()
type = intp()
report = ECIGetPreemptionSetParameters( 203, 0.0, 0, delay, minDwell, reserve, inhibit, maxDwell, type )
if report == 0:
string = "Atraso: " + str(delay.value())
AKIPrintString(string)
AKIPrintString("OK")
else :
AKIPrintString("Não OK")
Obter o Número de Linhas de Transporte Público do Conjunto de Prioridade¶
Em C++ e Python¶
Explicação¶
Obtém o número de linhas de transporte público do conjunto de prioridade que são consideradas para uma interseção no plano de controle atual.
Formato¶
int ECIGetPreemptionSetNbLines( int idJunction, double timeSta, int index);
Parâmetros¶
- idJunction: Um identificador de interseção válido.
- timeSta: O tempo de simulação atual em segundos a partir da meia-noite, usado para encontrar o plano de controle que está sendo executado
- index: Um valor entre 0 e o ECIGetNbPreemptionSets -1
Saída¶
- ≥0: o número de linhas no conjunto de prioridade
- < 0: Erro
Obter as Linhas de Transporte Público do Conjunto de Prioridade¶
Em C++ e Python¶
Explicação¶
Obtém as linhas de transporte público do conjunto de prioridade que são consideradas para uma interseção no plano de controle atual.
Formato¶
int ECIGetPreemptionSetLines( int idJunction, double timeSta, int index, int nbLines , int *lines );
Parâmetros¶
- idJunction: Um identificador de interseção válido.
- timeSta: O tempo de simulação atual em segundos a partir da meia-noite, usado para encontrar o plano de controle que está sendo executado
- index: Um valor entre 0 e o ECIGetNbPreemptionSets -1
- nbLines: O número de linhas retornadas pelo ECIGetPreemptionSetNbLines
- lines: Um array inteiro de tamanho igual a nbLines.
Saída¶
- ≥ 0: Sem Erro
- lines é um vetor de identificadores de linha
- < 0: Erro
Código de exemplo em Python¶
nblines = ECIGetPreemptionSetNbLines( 203, 0.0 )
lines = intArray( nblines )
report = ECIGetPreemptionSetLines( 203, 0.0, 0, nblines, lines )
if report == 0:
string = "Número de linhas: " + str(nblines)
AKIPrintString(string)
for i in range(nblines):
string = "Linha " + str(i) + ": " + str(lines[i])
AKIPrintString(string)
Obter o Número de Fases do Conjunto de Prioridade¶
Em C++ e Python¶
Explicação¶
Obtém o número de fases de retenção do conjunto de prioridade para uma interseção no plano de controle atual.
Formato¶
int ECIGetPreemptionSetNbPhases( int idJunction, double timeSta, int index);
Parâmetros¶
- idJunction: Um identificador de interseção válido.
- index: Um valor entre 0 e o ECIGetNbPreemptionSets -1
- timeSta: O tempo de simulação atual em segundos a partir da meia-noite, usado para encontrar o plano de controle que está sendo executado
Saída¶
- ≥ 0: número de fases
- < 0: Erro
Obter as Fases do Conjunto de Prioridade¶
Em C++ e Python¶
Explicação¶
Obtém as fases de retenção do conjunto de prioridade para uma interseção no plano de controle atual.
Formato¶
int ECIGetPreemptionSetPhases( int idJunction, double timeSta, int index, int nbPhases , int *phases );
Parâmetros¶
- idJunction: Um identificador de interseção válido.
- timeSta: O tempo de simulação atual em segundos a partir da meia-noite, usado para encontrar o plano de controle que está sendo executado
- index: Um valor entre 0 e o ECIGetNbPreemptionSets -1.
- nbPhases: O número de fases.
- phases: Um array ínt/ carregado com tamanho igual a nbPhases.
Saída¶
- ≥ 0: Sem Erro
- phases é um vetor de identificadores de fase, que estão entre 1 e N, onde N é o número de fases.
- < 0: Erro
Código de exemplo em Python¶
nbphases = ECIGetPreemptionSetNbPhases( 203, 0.0 )
phases = intArray(nbphases)
report = ECIGetPreemptionSetPhases( 203, 0.0, 0, nbphases, phases )
if report == 0:
string = "Número de fases: " + str(nbphases)
AKIPrintString(string)
for i in range(nbphases):
string = "Linha " + str(i) + ": " + str(phases[i])
AKIPrintString(string)
Obter o Número de Detectores de Pedido do Conjunto de Prioridade¶
Em C++ e Python¶
Explicação¶
Obtém o número de detectores de pedido do conjunto de prioridade para uma interseção no plano de controle atual.
Formato¶
int ECIGetPreemptionSetNbRequestDetectors ( int idJunction, double timeSta, int index);
Parâmetros¶
- idJunction: Um identificador de interseção válido.
- timeSta: O tempo de simulação atual em segundos a partir da meia-noite, usado para encontrar o plano de controle que está sendo executado
- index: Um valor entre 0 e o ECIGetNbPreemptionSets -1
Saída¶
- ≥ 0: O número de detectores de pedido
- < 0: Erro
Obter os Detectores de Pedido do Conjunto de Prioridade¶
Em C++ e Python¶
Explicação¶
Obtém os detectores de pedido do conjunto de prioridade para uma interseção no plano de controle atual.
Formato¶
int ECIGetPremptionSetRequestDetectors ( int idJunction, double timeSta, int index, int nbDetectors, int * detectors );
Parâmetros¶
- idJunction: Um identificador de interseção válido.
- timeSta: O tempo de simulação atual em segundos a partir da meia-noite, usado para encontrar o plano de controle que está sendo executado
- index: Um valor entre 0 e o ECIGetNbPreemptionSets -1
- nbDetectors: O número de detectores de pedido
- detectors: Um array inteiro de tamanho igual a nbDetectors.
Saída¶
- ≥ 0: Sem Erro
- detectors é um vetor de identificadores de detectores de pedido
- < 0: Erro
Código de exemplo em Python¶
nbdets = ECIGetPreemptionSetNbRequestDetectors( 203, 0.0 )
dets = intArray(nbdets)
report = ECIGetPreemptionSetRequestDetectors( 203, 0.0, 0, nbdets, dets )
if report == 0:
string = "Número de detectores: " + str(nbdets)
AKIPrintString(string)
for i in range(nbphases):
string = "Detector " + str(i) + ": " + str(dets[i])
AKIPrintString(string)
Obter o Número de Detectores Finais do Conjunto de Prioridade¶
Em C++ e Python¶
Explicação¶
Obtém o número de detectores finais do conjunto de prioridade para uma interseção no plano de controle atual.
Formato¶
int ECIGetPreemptionSetNbEndDetectors ( int idJunction, double timeSta, int index);
Parâmetros¶
- idJunction: Um identificador de interseção válido.
- timeSta: O tempo de simulação atual em segundos a partir da meia-noite, usado para encontrar o plano de controle que está sendo executado
- index: Um valor entre 0 e o ECIGetNbPreemptionSets -1
Saída¶
- ≥ 0: O número de detectores finais
- < 0: Erro
Obter os Detectores Finais do Conjunto de Prioridade¶
Em C++ e Python¶
Explicação¶
Obtém os detectores finais do conjunto de prioridade para uma interseção no plano de controle atual.
Formato¶
int ECIGetPreemptionSetEndDetectors ( int idJunction, double timeSta, int index, int nbDetectors, int * detectors );
Parâmetros¶
- idJunction: Um identificador de interseção válido.
- timeSta: O tempo de simulação atual em segundos a partir da meia-noite, usado para encontrar o plano de controle que está sendo executado
- index: Um valor entre 0 e o ECIGetNbPreemptionSets -1
- nbDetectors: O número de detectores finais
- detectors: Um array inteiro de tamanho igual a nbDetectors
Saída¶
- ≥ 0: Sem Erro
- < 0: Erro
Código de exemplo em Python:¶
nbdets = ECIGetPremptionSetNbEndDetectors( 203, 0.0 )
dets = intArray(nbdets)
report = ECIGetPreemptionSetEndDetectors( 203, 0.0, 0, nbdets, dets )
if report == 0:
string = "Número de detectores: " + str(nbdets)
AKIPrintString(string)
for i in range(nbphases):
string = "Detector " + str(i) + ": " + str(dets[i])
AKIPrintString(string)