API do Aimsun Next: Prioridade de Transporte Público¶
Funções relacionadas à Prioridade do Transporte Público¶
Desativar Prioridade ao Transporte Público em um Nó¶
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 coletivo será desabilitada.
Saída¶
- 0: Se a prioridade de ônibus tiver sido corretamente desativada.
- < 0: Erro
Habilitar Prioridade do Transporte Público em um Nó¶
Em C++ e Python¶
Explicação¶
Configura a interseção especificada para considerar as prioridades de transporte público definidas depois de elas terem sido previamente desabilitadas.
Formato¶
int ECIEnableBusPreemptionNode (int ajunction)
Parâmetros¶
- ajunction: O ID da interseção onde a prioridade ao transporte público será considerada novamente.
Saída¶
- 0: Se a prioridade de ônibus tiver sido habilitada corretamente.
- < 0: Erro
Verificar o estado de Prioridade do Transporte Público em um Nó¶
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 do transporte coletivo será desabilitada.
Saída¶
- 1: Se as prioridades de ônibus forem consideradas conforme definidas.
- 0: Se as prioridades de ônibus definidas tiverem sido desativadas.
- < 0: Erro
Obter o Número de Conjuntos de Prioridade¶
Em C++ e Python¶
Explicação¶
Obtenha 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 junção válido.
- timeSta: O tempo atual da simulação 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¶
Obtenha 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 junção válido.
- timeSta: O tempo atual da simulação em segundos a partir da meia-noite, usado para encontrar o plano de controle que está sendo executado
- índice: Um valor entre 0 e ECIGetNbPreemptionSets -1
Saída¶
- ≥0: Sem erro
- atraso: O número de segundos para atrasar o início da temporização de prioridade
- minDwell: A duração mínima em segundos da fase de permanência
- reservar: O intervalo durante o qual qualquer outra solicitação de prioridade é impedida.
- inibir: A duração, em segundos, do intervalo durante o qual a ativação de qualquer fase que não seja a fase de prioridade solicitada é impedida
- maxDwell: A duração máxima em segundos da fase de permanência
- type: O tipo de prioridade. 0 significa Alternative, 1 significa Serve All
- < 0: Erro
Código de exemplo em Python¶
O código a seguir lê os primeiros parâmetros de prioridade do nó 203 no tempo 0:00:00 e, se eles 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 = "Delay: " + str(delay.value())
AKIPrintString(string)
AKIPrintString("OK")
else :
AKIPrintString("Not OK")
Obter o Número do Conjunto de Prioridade das Linhas de Transporte Coletivo¶
Em C++ e Python¶
Explicação¶
Obter o número do conjunto de prioridade das linhas de transporte público consideradas para uma junção no plano de controle atual.
Formato¶
int ECIGetPreemptionSetNbLines( int idJunction, double timeSta, int index);
Parâmetros¶
- idJunction: Um identificador de junçã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
- índice: Um valor entre 0 e 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 com 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 junção válido.
- timeSta: O tempo atual da simulação em segundos a partir da meia-noite, usado para encontrar o plano de controle que está sendo executado
- índice: Um valor entre 0 e ECIGetNbPreemptionSets -1
- nbLines: O número de linhas retornadas por ECIGetPreemptionSetNbLines
- linhas: Um array de inteiros de tamanho igual a nbLines.
Saída¶
- ≥ 0: Sem erro
- linhas é 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 = "Number of lines: " + str(nblines)
AKIPrintString(string)
for i in range(nblines):
string = "Line " + str(i) + ": " + str(lines[i])
AKIPrintString(string)
Obter o Número de Fases do Conjunto de Prioridade¶
Em C++ e Python¶
Explicação¶
Obter o número do conjunto de prioridade das fases de permanência para uma junção no plano de controle atual.
Formato¶
int ECIGetPreemptionSetNbPhases( int idJunction, double timeSta, int index);
Parâmetros¶
- idJunction: Um identificador de junção válido.
- índice: Um valor entre 0 e 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 Prioridades¶
Em C++ e Python¶
Explicação¶
Obter as fases de dwell definidas por 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 nó válido.
- timeSta: O tempo atual da simulação em segundos a partir da meia-noite, usado para encontrar o plano de controle que está sendo executado
- índice: Um valor entre 0 e ECIGetNbPreemptionSets -1.
- nbPhases: O número de fases.
- fases: Um array de int de 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 = "Number of phases: " + str(nbphases)
AKIPrintString(string)
for i in range(nbphases):
string = "Line " + str(i) + ": " + str(phases[i])
AKIPrintString(string)
Obter o Número do Conjunto de Prioridade dos Detectores de Solicitação¶
Em C++ e Python¶
Explicação¶
Obter o número do conjunto de Prioridade dos detectores de solicitação para um cruzamento no plano de controle atual.
Formato¶
int ECIGetPreemptionSetNbRequestDetectors ( int idJunction, double timeSta, int index);
Parâmetros¶
- idJunction: Um identificador de junção válido.
- timeSta: O tempo atual da simulação em segundos a partir da meia-noite, usado para encontrar o plano de controle que está sendo executado
- índice: Um valor entre 0 e ECIGetNbPreemptionSets -1
Saída¶
- ≥ 0: O número de detectores de solicitação
- < 0: Erro
Obter os Detectores de Solicitação de Conjunto de Prioridade¶
Em C++ e Python¶
Explicação¶
Obtém os detectores de solicitação de prioridade definidos 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 junção válido.
- timeSta: O tempo atual da simulação em segundos a partir da meia-noite, usado para encontrar o plano de controle que está sendo executado
- índice: Um valor entre 0 e ECIGetNbPreemptionSets -1
- nbDetectors: O número de detectores de solicitação
- detectores: Um array int de tamanho igual a nbDetectors.
Saída¶
- ≥ 0: Sem erro
- detectores é um vetor de identificadores de detectores de solicitação
- < 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 = "Number of detectors: " + str(nbdets)
AKIPrintString(string)
for i in range(nbphases):
string = "Detector " + str(i) + ": " + str(dets[i])
AKIPrintString(string)
Obter o Número do Conjunto de Prioridade dos Detectores de Fim¶
Em C++ e Python¶
Explicação¶
Obtém o número do conjunto de prioridade dos detectores finais para uma junção no plano de controle atual.
Formato¶
int ECIGetPreemptionSetNbEndDetectors ( int idJunction, double timeSta, int index);
Parâmetros¶
- idJunction: Um identificador de junção válido.
- timeSta: O tempo atual da simulação em segundos a partir da meia-noite, usado para encontrar o plano de controle que está sendo executado
- índice: Um valor entre 0 e 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¶
Obtenha os detectores de fim do conjunto de prioridade para uma junçã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 junção válido.
- timeSta: O tempo atual da simulação em segundos a partir da meia-noite, usado para encontrar o plano de controle que está sendo executado
- índice: Um valor entre 0 e ECIGetNbPreemptionSets -1
- nbDetectors: O número de detectores finais
- detectores: Um array int 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 = "Number of detectors: " + str(nbdets)
AKIPrintString(string)
for i in range(nbphases):
string = "Detector " + str(i) + ": " + str(dets[i])
AKIPrintString(string)