Skip to content

API Aimsun Next 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)